Kamerka pod Linuksem
Żonka ostatnio wspominała, że chciałaby mieć kamerkę internetową. Ja lubię takie zabawki, więc od razu podchwyciłem pomysł i postanowiłem jej kamerkę kupić. No to zajrzałem na Allegro co tam mają... cała masa do wyboru... no to biorę parę z brzegu i Googlam za ich wsparciem w Linuksie. Ciężko to idzie. Nic na temat wsparcia w Linuksie dokładnie tych urządzeń co znalazłem na Allegro w Google nie było. Jak coś znalazłem, co miało wsparcie, to albo tego na Allegro nie było, albo kosztowało więcej niż byłem w stanie zapłacić. Na Allegro był tak wielki wybór, że nie sposób było sprawdzić wszystkiego. Podobnie na wygooglanych listach sprzętu obsługiwanego przez Linuksa. Oczywiście każdy producent chipsetu zrobił interfejs po swojemu (urządzenia oparte o standard UVC się dopiero pojawiają i do tych najtańszych nie należą), a który chipset jest w której kamerce to dopiero po podłączeniu można stwierdzić...
Na Allegro i tak nie chciałem tego kupować (w końcu to kot w worku), uznałem, że wybiorę się do sklepu. Normalnie wziąłbym ze sobą listę obsługiwanego sprzętu, żeby porównać z tym co jest na półkach. Ale dostępne listy są olbrzymie... a i tak niekompletne... Poszedłem więc bez listy, parę popularniejszych nazw zapamiętałem, a w ogóle, to uznałem, że może trafię. I umówię się ze sprzedawcą, że jak nie uruchomię tego, to zwrócę...
No więc przyszedłem do sklepu. Przerażanie w oczach – chyba z
dziesięć różnych kamerek na półce, żadna nie przypomina niczego o czym
czytałem... No nic, mówię, że chcę kamerkę i nieśmiało dodaję ale taką,
żeby działała pod Linuksem
. A sprzedawczyni, ku mojemu zaskoczeniu, bierze
jedną kamerkę z półki (i to chyba taką, jakiej żonka oczekuje – na
laptopa, z klipsem) i mówi, że ta będzie na pewno działać. Okazało się, że był
tam już jeden klient z takimi wymaganiami, przyszedł z laptopem i na miejscu
sprawdził. Zapytałem jeszcze o parametry, bo kosztowała mniej niż byłem
przygotowany na to wydać. Pani zaproponowała, że może podłączyć do jakiegoś
laptopa i pokazać. Już brała jednego laptopa, ale stwierdziła: Ale ten ma
zainstalowaną tę kurewską... oj, przepraszam... na nim jest ta Vista
.
Kobieta była rzeczywiście przerażona, że jej się takie słowo wymsknęło. Widać
szczerze. :-D
W końcu dała mi jakiegoś laptopa z Windows XP, żebym sobie podłączył i sprawdził.
Taaa... równie dobrze mogłaby mnie posadzić przed sterami helikoptera, żebym
się przeleciał ;-). Ale jakoś sobie w tym egzotycznym systemie, i
to jeszcze z jakimiś dodatkowymi przeszkadzajkami, poradziłem. Kamerka
zadziałała, obraz był zadowalający (przynajmniej jak na tą cenę). Biorę.
Za sterownikami rozglądałem się wcześniej, więc jakiś miałem już w pracy skompilowany, dla najnowszego kernela PLD AC. Okazało się, że pasuje do tej kamerki. Załadował się bez problemu i xawtv pokazało obraz. Ale Ekiga marudziła, że nie może otworzyć urządzenia. Bałem się, że kamerka z Ekigą niezgodna (może dlatego, że JPEG)... ale okazało sie, że po prostu ten sterownik to V4L1, a w Ekidze miałem załadowane tylko V4L2. Doinstalowałem libpw-vide-v4l i ruszyło!
Teraz trochę danych praktycznych:
- Kamerka to: A4Tech Evo Cam Note
- Sterownik do niej to: gscpav1 (wersja: 20070110)
- Aby
ręcznie
zbudować ten sterownik na PLD Ac trzeba:- Zainstalować pakiet kernel-module-build w wersji zgodnej z używanym kernelem (zrobić upgrade kernela i zainstalować najnowszy kernel-module-build)
- Rozpakować źródła sterownika gdzieś w katalogu domowym.
- Poprawić Makefile:
Zamienić:
default: $(MAKE) -C $(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC) modulesna (w przypadku używania kernela
up
, zamienić wszystkiesmp
naup
):default: mkdir -p o/include/linux ln -sf $(KERNELDIR)/config-smp o/.config ln -sf $(KERNELDIR)/Module.symvers-smp o/Module.symvers ln -sf $(KERNELDIR)/include/linux/autoconf-smp.h o/include/linux/autoconf.h $(MAKE) SYSSRC=$(KERNELDIR) SYSOUT=$(PWD)/o O=$(PWD)/o -C $(KERNELDIR) CC=$(CC) prepare scripts $(MAKE) SYSSRC=$(KERNELDIR) SYSOUT=$(PWD)/o O=$(PWD)/o -C $(KERNELDIR) SUBDIRS=$(PWD) CC=$(CC) modules - Przelogować się na roota, skopiować zbudowany gspca.ko do /lib/modules/`uname -r`/misc, zmienić mu właściciela na root:root, odpalić depmod -a.
Dopiero teraz zobaczyłem, że w repozytorium PLD jest gspca.spec i się nawet buduje, więc można zapomnieć o tym, co napisałem wyżej i po prostu zbudować sobie pakiet. Wersja w specu jakby trochę inna, jeszcze nie sprawdzałem czy działa, najwyżej trzeba by speca nieco poprawić.
Update: Nagrałem mały testowy filmik, żeby pokazać co kamerka może. No, nie do końca pokazuje on co chciałem – podczas nagrywania obraz stracił nieco na jakości, bo nie znalazłem jeszcze sposobu na nagrywanie z tego w optymalnej jakości. Na bezpośrednim podglądzie w spcaview/xawtv/mplayer obraz jest odrobinę lepszy.
Śledzenie komentarzy (RSS)
12 kwietnia 2007 18:19:12
A ja mam takie szczęście, że jaką bym kamerę nie podłączył to działa. Zazwyczaj jest tak, że to wszystko jeden pies, bo pomimo różnych producentów, niby funkcji itd, to i tak korzystają z kilku ogólnie znanych chipsetów.
Pytanie teraz gdzie – efekty: http://pr0n.ika.jajcus.net:8080/ ? :D