Obsługa kamer internetowych w nowszych jądrach Linuksa
- Dodano: 23 grudnia 2008
- Wprowadził: Zajec
- Komentarze: 60
Jądro Linuksa 2.6.27 zostało wydane ponad dwa miesiące temu, ale dopiero teraz zaczyna być instalowane na szerszą skalę i stwarzać pewne problemy z obsługą kamer. Chciałem za pomocą OSnews.pl podzielić się rozwiązaniem tego problemu.
Na pierwszy rzut oka wszystko powinno być idealnie: poprawione sterowniki kamer internetowych oraz dodanie gspca (dawniej zwanego gspcav2) obsługującego ponad 100 urządzeń. Jednak w liście zmian można znaleźć również informację o okrojeniu niektórych modułów o kod konwertujący obraz z kamery do uniwersalnego formatu zrozumiałego dla końcowych aplikacji typu MPlayer czy Skype.
Jeśli więc twoja kamera przestała działać z instalacją nowego jądra (również przy aktualizacji całego systemu), oznacza to, że musisz użyć libv4l. Metody instalacji biblioteki nie będę opisywać, tu wystarczy skorzystać z oprogramowania zarządzającego pakietami w danej dystrybucji. Istotny jest natomiast nowy sposób uruchamiania aplikacji, gdyż należy podać zmienną LD_PRELOAD wskazując na zainstalowany plik libv4l1compat.so. Przykładowo więc będzie to:
LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so mplayer tv:// -tv device=/dev/video0
Po skorzystaniu z tej metody, kamera powinna już odpowiednio działać. Należy tylko pamiętać o architekturze, na którą został przygotowany dany program. Dotyczy to np. Skype, który jest 32-bitowy i w przypadku uruchamiania go na systemie 64-bitowym należy pamiętać o instalacji libv4l w wersji dla x86.
Zainteresowanych całym zamieszaniem skromnie zapraszam do swojego pełnego opisu. Jeżeli chodzi o samo rozwiązanie, jest ono w całości podane powyżej.
Więcej informacji: http://zajec.net/blog/2008-nowe-jadro-li...nternetowe
Znalazłeś literówkę? Zgłoś ją używając formularza!
Jeśli uważasz, że ten nius jest nieobiektywny, przedstawia nieprawdziwe wydarzenie, jest spamem lub nie spełnia standardów serwisu, napisz raport.
Niusy na podobny temat:
Komentarze są prywatnymi opiniami dodających je osób. Prosimy o zachowanie kultury wypowiedzi. Komentarze obraźliwe oraz obniżające poziom serwisu będą usuwane. Więcej w regulaminie komentowania.
60 komentarzy
Wszystkie autorskie niusy w serwisie publikowane są na licencji Creative Commons Uznanie autorstwa 2.5 Polska.
To jest chyba problem, w ktorym Linus musi przyznac racje Tanenbaumowi. Wydaje mi sie, ze upychanie sterownikow do takich rzeczy jak kamery w kernelu nie moze skonczyc sie dobrze i jest to rownia pochyla dla Linuksa. Nie wiem jak dlugo jeszcze kernel to wytrzyma, ale patrzac na tempo przyrostu ilosc kodu (w kernelu) w ostatnim czasie nie wrozy to nic dobrego.
Fajnie tylko kto będzie płacił za utrzymanie sterowników które będą ściągane z serwera?
IMO jest OK jezeli tylko moduly moga byc niekompilowane/nieinstalowane/nieladowane/nieuzywane w przypadku braku sprzetu tego rodzaju
Dokładnie tak jest. Większość dystrybucji dostarczy jądro z modułami gspca_*, ale nie będą one ładowane przy brak podpiętego sprzętu (który obsługują). Jeżeli natomiast zależy Ci na zaoszczędzeniu (w tym przypadku) tych 5MB, to możesz samemu skompilować jądro bez gspca.
no to w czym problem?
Jakoś tak przez użyte w Twojej wypowiedzi "jezeli" zrozumiałem komentarz jako pytanie/wątpliwość
Problem w utrzymywaniu w ryzach tych wszystkich milionow linii kodu. Kernel niestety nie jest zwyklym programem i pewne zmiany moga miec dziwny wplyw na inne miejsca w kodzie. Zapanowanie nad tym wszystkim to nie lada sztuka, a wraz ze wzrostem ilosci kodu bedzie coraz trudniej..
Jak zmiany w nieużywanych sterownikach, które leżą sobie na dysku i nigdy nie są ładowane do pamięci mają mieć "dziwny wpływ" na cokolwiek?
Co innego w przypadku zmian wewnętrzkernelowego API. Ale tu właśnie prościej poprawić wszystkie sterowniki jak są w jednym miejscu, niż jak są porozrzucane po całej sieci.
Nie mowie o tym zeby je porozrzucac po sieci. Mowie o samym fakcie tych sterowniku w kernelu. Uwazam, ze lepiej byloby gdyby takie rzeczy byly wykonywane w przestrzeni systemu, a nie w przestrzeni jadra (patrz Hurd – tak wiem, projekt umarl). Takie podejscie jest trudniejsze w momencie projektowania, lecz zwraca sie w czasie implementacji i testowania.
Jak dla mnie aktualny wygląd jądra odpowiada. Nie muszę przeszukiwać setek stron w poszukiwaniu sterowników i oprogramowania, co szczególnie przy starszym sprzęcie bywa męczące.
Oczywiście pojawiają się problemy takie jak w/w. Tutaj powstaje pytanie czy na pewno dobrze, że ktoś zabierał się za przebudowę/poprawę/modyfikacje danego modułu pomimo tego, że aktualnie spełniał swoje zadanie. Oczywiście, że tak. Przecież rozwój to nie tylko dodawanie nowych funkcji, czy obsługa nowego sprzętu, ale optymalizacja już istniejących. Pozostaje tylko pytanie czy trzeba było włączać tak szybko to do stabilnej wersji jądra. Przecież system git stosowany przez deweloperów Linuksa umożliwia dodanie starej wersji modułu w kilka minut.
Dokopałem się jeszcze do wątku dot. wykorzystania libv4l w MPlayerze:
http://lists.mplayerhq.hu/pipermail/mplayer-dev-e…
yyy, ale przeciez mplayer obsluguje v4l2 tak wiec nie trzeba stosowac obejscia w postaci wymienionej w arcie biblioteki (ona potrzebna jest dla aplikacji v4l1)
generalnie to wlasnie chlopaki od gspca zaczeli porzadkowanie kodu v4l i idzie im to dosc dobrze.
btw. sam sie przykladalem do poprawy tego sterownika, bo moja kamerka (najtanszy badziew dostepny w realu/tesco
) nie miala obslugi – ale juz ma
Nie do końca. Zauważ, że v4l2 to nie to samo co libv4l. Wspomniane przez Ciebie v4l2 to tylko API, nie zapewnia konwertowania formatów.
v4l2 to nie tylko api (interface do kernela), ale i biblioteka /usr/lib/libv4l2.so, ktora zawiera wspomniane konwertery.
zostaly one poprostu przeniesione do userspace, czyli tam, gdzie ich miejsce…
Uh, zaczyna się wszystko jeszcze bardziej zakręcąć
jellonek: jeżeli MPlayer używa v4l2 razem z biblioteką konwertującą tego v4l2, to coś jest nie do końca tak. Mam taką starą kamerę 0c45:600d i ona w MPlayerze nie działa, chyba, że właśnie skorzystam z newsowego LD_PRELOAD. Więc w jakiś sposób ta v4l1compat.so radzi sobie z większą ilością przypadków niż MPlayer ze swoim v4l2.
Poza tym czy to wspomniane przez Ciebie /usr/lib/libv4l2.so nie jest cześcią libv4l, do którego się odnoszę w newsie? W moim systemie libv4l2.so przyszło właśnie z instalacji libv4l. Przeglądając źródła libv4l znajdziesz zarówno "libv4l1" jak i "libv4l2".
ja mam tez microdie, a dokladniej 0xc45:6128
LD_PRELOAD jest niepotrzebny, jak sie zajrzy do manuala mplayera
hint: tv:// -tv driver=v4l2
(nie wiedziec czemu mplayer domyslnie nadal uzywa v1 api)
v4l1compat, jak sama nazwa wskazuje – jest "dodatkiem" dla aplikacji wykorzystujacych stare (od jakiegos czasu ze statusem 'deprecated') api v4l1
tak, obecnie libv4l2.so jest czescia wspomnianego _pakietu_ libv4l.
Cholerka, dlaczego to nie może być zrobione dobrze od początku do końca? :/ Pozostaje mieć nadzieję, że poszczególne dystrybucje zajmą się tym tak, aby wszystko działało z buta, po podpięciu sprzętu, bez drażnienia użytkownika.
W linuksie nic nie jest proste. Jak coś już dobrze działa, czyli wspomniane kamery (sam nie miałem nidy problemów z moją kamerką) to muszą coś zrobić, żeby to popsuć i utrudnić maksymalnie życie użytkownikowi, tak żeby bez linii komend się nie obyło. Jak już zostawiają wsparcie to powinni zostawić całe razem z tym konwerterem, przecież i tak będzie to w module jakimś siedziało i będzie ładowane tylko w razie potrzeby. Jeszcze przynajmniej 10 lat przed nami za nim linux będzie dobry na biurko dla zwykłego usera. Po co dają w ogóle obsługę kamer do jądra? Do zastosowań serwerowych i tak kamery nie potrzebne.
Fakt, mogli to zrobić płynniej. Pozwolić libv4l na rozwinięcie się, a aplikacjom dać czas na przejście i rozpoczęcie korzystania niej. Nie wiem czemu nie postąpiono w ten sposób.
To o czym piszesz, czyli konwertowanie w jakimś module, nie będzie miało miejsca. Opisywana libv4l to biblioteka, która się tym zajmie i która działa w user-space, więc nie jako moduł jądra.
W ostatniej sprawie: jeśli stawiasz prawdziwy serwer to na pewno kompilujesz ręcznie jądro, prawda? Wtedy po prostu nie włączasz kompilacji zbędnych sterowników.
> jeśli stawiasz prawdziwy serwer to na pewno kompilujesz ręcznie
> jądro, prawda?
Prawdę mówiąc nie rozumiem dlaczego miałby to robić, no ale ja truskawki cukrem posypuję :->.
Prosta przyczyna – nie od razu pisząc jakąś rzecz da się wszystko przewidzieć. Gdy tylko jeden moduł konwertował nietypowy format do bgr24 wszystko było dobrze. Gdy pojawiało się ich więcej, trzeba było coś zrobić z powstającym powoli bałaganem.
Ja też tego nie rozumiem. Zawsze coś popsuje z dobrego na gorsze – w 8.04 kamera mojego laptopa działała… W 8.10 już nie ;(
Mariusz, właśnie dlatego powinieneś przeczytać ze zrozumieniem ten artykuł. Jest w nim opisane, jakie zmiany zaszły w nowym jądrze (które ZTCW jest w Ubu 8.10?) i co trzeba zrobić, żeby kamera znowu działała.
Jeśli nie umiesz się posługiwać swoim Linuksem i nie chcesz mieć żadnych problemów, powinieneś zostać przy wersji "stabilnej" 8.04 LTS.
Pozdrawiam i życzę Wam wszystkim wesołych Swiąt:)
Skądś znam ten problem. Czyżby nazywał się Ricoh R5U870? W wielu laptopach to dziadostwo montują (pod różnymi nazwami i kodami urządzeń) i teraz trzeba (znowu) kombinować. Niedawno zaczęło z nim działać narzędzie r5u87x w miejsce modułu r5u870.
I to właśnie jeden z powodów, dla którego żaden kolejny rok nigdy nie będzie rokiem linuksa na desktopie (conajwyżej rokiem porażki linuksa na desktopie).
Dla mnie każdy rok to rok Linuksa na moim desktopie
Z niczym nie mam problemów, kamerę udało się odpalić bez większych problemów. Wszystko było w repozytoriach AUR
Nie prościej to dopisać do pliku /etc/ld.so.preload?
Fajnie że teraz gdy już jądro 2.6.28 piszecie że w 2.6.27 śa problemy z kamerami.
Pomysł umieszczenia sterowników jądrze spoko ale wykonanie porażka.
LD_PRELOAD działa jak kamera ejst widoczna w systemie ale przy 2.6.27 to jest największy problem.
Ja to rozwiązałem tak i działa:
wget http://linuxtv.org/hg/~jfrancois/gspca/archive/ti…
tar -zxvf tip.tar.gz
cd gspca-*
make
sudo rm -f /lib/modules/`uname -r`/kernel/drivers/usb/media/gspca.ko
sudo /sbin/depmod -aq
sudo make install
Przepis jest wzięty z jakiejś francuskiej strony ale niestety nie pamiętam jakiej bo ostatnio upgradowałem Firefoxa.
Dodatkowo te sterowniki są upgradowane często tak że można sprawdzać co jakiś czas czy są jakieś poprawione.
Jurek
Ok znalazłem to była ta strona:
http://blognux.free.fr/?p=171
Jurek
Nicely this sort of information is in fact worth searching for, good information for readers and certainly shows top quality writing. Its cool to have these kinds of posts around to help keep the information flow. Assisting these who actually love this, excellent perform! Thanks once more for taking the time to put this on line. I unquestionably liked just about every component of it.
This is a really great blog. Thx to the auther
I have really enjoyied reading your well written article. It looks like you spend a lot of effort and time on your blog. I have bookmarked it and I am looking forward to reading new articles. Keep up the good work!
This post seems to recieve a large ammount of visitors. How do you promote it? It gives a nice individual twist on things. I guess having something authentic or substantial to give info on is the most important thing.
As I noted on my submission, I’m not comfortable sharing my address and phone number with all that would care to learn it on the web. Is it viable for us to email it to you or possibly the victor could be got hold of by email?
Hey, nice blog with pleasant info. I really like coming back here often. There is only 1 thing that bothers me and that is the misfunctioning of comment posting. I normally get a 500 error page, and have to type the entry twice.
I like your site plain and simple. Keep up the good work and I will keep coming back.
Sorry for the huge review, but I’m really loving the new Zune, and hope this, as well as the excellent reviews some other people have written, will help you decide if it’s the right choice for you.
Is there anywhere to buy this online as it seems very good.
Thanks a lot for the blog post, I’ve got to point out My spouse and I absolutely understand the last guy who commented. I think I’m going to take note of this post so I could watch all the responses. You have definitely stimulated my interest with this, plus I await observing exactly what everybody else will have to point out.
Hello! I’m at work surfing around your blog from my new iphone! Just wanted to say I love reading your blog and look forward to all your posts! Carry on the great work!
You have observed very interesting points ! ps decent site.
Your articles is quite educational, keep up the good work!!!!
Aw, this was a really nice post. In idea I would like to put in writing like this moreover – taking time and actual effort to make a very good article… but what can I say… I procrastinate alot and certainly not seem to get one thing done.
I conceive you have mentioned some very interesting details , appreciate it for the post.
Someone essentially help to make seriously posts I would state. This is the first time I frequented your web page and thus far? I surprised with the research you made to make this particular publish extraordinary. Wonderful job!
It’s onerous to search out educated people on this matter, but you sound like you realize what you’re speaking about! Thanks
One more important aspect is that if you are an older person, travel insurance intended for pensioners is something you should really take into account. The elderly you are, the more at risk you will be for making something negative happen to you while overseas. If you are not really covered by many comprehensive insurance, you could have several serious challenges. Thanks for discussing your suggestions on this web blog.
Hello there. I just witnessed that your web page looks like it’s a formatting difficulty in the quite base of the web page. I’m not totally sure if every person is viewing this very same glitch when browsing your web page? Perhaps it is just my browser i am utilizing Opera
This really answered my drawback, thanks!
I’d need to verify with you here. Which is not something I often do! I take pleasure in reading a submit that may make individuals think. Additionally, thanks for allowing me to comment!
Based on my research, after a foreclosed home is sold at an auction, it is common to the borrower to be able to still have some sort ofthat remaining balance on the loan. There are many loan companies who aim to have all fees and liens paid off by the upcoming buyer. Even so, depending on specified programs, laws, and state guidelines there may be some loans that aren’t easily solved through the switch of loans. Therefore, the obligation still remains on the customer that has received his or her property in foreclosure process. Thank you sharing your notions on this blog.
The Zune concentrates on being a Portable Media Player. Not a web browser. Not a game machine. Maybe in the future it’ll do even better in those areas, but for now it’s a fantastic way to organize and listen to your music and videos, and is without peer in that regard. The iPod’s strengths are its web browsing and apps. If those sound more compelling, perhaps it is your best choice.
This website is known as a stroll-by means of for all of the information you needed about this and didn’t know who to ask. Glimpse right here, and also you’ll definitely uncover it.
According to my observation, after a foreclosures home is sold at a bidding, it is common for any borrower to be able to still have some sort ofthat remaining balance on the personal loan. There are many lenders who seek to have all costs and liens repaid by the future buyer. Nevertheless, depending on selected programs, laws, and state guidelines there may be a few loans which are not easily handled through the switch of financial products. Therefore, the responsibility still falls on the lender that has had his or her property in foreclosure. Thank you for sharing your notions on this web site.
This is something definitely worth understanding. There are lots of sites that simply make no sense. Do keep up the good posting and loads more visitors will keep coming.
This seems a very active website. How do you keep up with approving all the comments?
great article,however I get some trouble in reading the last paragraph, could you please explain a bit more in depth?
I agree with post analysis Very great Site number one topic thanx you..
Hands down, Apple’s app store wins by a mile. It’s a huge selection of all sorts of apps vs a rather sad selection of a handful for Zune. Microsoft has plans, especially in the realm of games, but I’m not sure I’d want to bet on the future if this aspect is important to you. The iPod is a much better choice in that case.
One thing I like regarding reading through websites like this, is that there aren’t any spelling or grammatical mistakes! Causes it to be tough on the reader sometimes. Very good work on that and also the subject of this website. Thanks!