Zaloguj się

Jog Jajcusia

xmpp:jajcus@jajcus.net

Powrót na stronę główną

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)
      modules

      na (w przypadku używania kernela up, zamienić wszystkie smp na up):

      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.


Komentarze

AlchemyX

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

Krystek

12 kwietnia 2007 18:19:27

Ech, nasuwa mi się taka konstatacja: że jeśli na user-friendly dystrybucjach Linuksa trzeba by było robić takie hocki-klocki jakie opisałeś, żeby kamerka działała, to nadal wiele osób będzie to odstraszało od Linuksa.

Chaos

12 kwietnia 2007 18:22:50

Szefie, a zapuśc parę jakichś obrazków ;-P

AlchemyX

12 kwietnia 2007 18:25:20

Krystek: chyba coś przespałem, ale czy PLD kiedykolwiek miało być userfriendly?

W takim ubuntu pewnie by poszło od kliknięcia, ostatnio podłączyłem aparat i ku mojemu zaskoczeniu było jak w windowsie :)

Krystek

12 kwietnia 2007 18:27:32

To było ogólne spostrzeżenie: chodziło mi o dystrybucje dla przeciętnego użytkownika. Wcale bym się nie zdziwił, gdyby dla takiej kamerki dla Linuksa sterowniki trzeba by było napisać sobie samemu ;)

Jajcuś

12 kwietnia 2007 18:39:53

Krystek: Sterownik, którego użyłem, nie jest jakiś wyszukany. Nie jest włączony do źródeł kernela którego używam, ale bez problemowo z nim działa. Nie widziałem też żadnych dziwnych ograniczeń licencyjnych. Więc sądzę, że w dystrybucjach nastawionych na użytkownika ten sterownik już jest. A jak jest to po prostu działa.
Do tego widziałem, że sporo sterowników jest już dołączona do źródeł nowszych kerneli. Więc zapewne duża ilość kamerek „po prostu zadziała” w user-friendly dystrybucjach. Oczywiście pozostaje dużo innych, które nie zadziałają — taka polityka producenta. Mam nadzieję, że USB Video Class (coś do kamerek, jak USB Storage do dysków) to w końcu zmieni.
A druga część mojego wpisu jest skierowani do tych, którzy z różnych powodów będą chcieli lub musieli sami nad tym zapanować. Przy okazji pokazałem jak w środowisku PLD Ac budować ręcznie dodatkowe moduły kernela.

Medra

12 kwietnia 2007 20:39:17

w Ubuntu jest cos do obslugi kamerek – widzialam jak przegladalam jakis czas temu szukajac czegos innego.

Jajcus: ale z ta kure..ska vista bylo dobre :D

DeeJay1

12 kwietnia 2007 21:45:32

Spadłeś mi z nieba z tym postem, akurat czegoś takiego poszukuję :D

DeeJay1

13 kwietnia 2007 21:53:51

Nawet w pobliskim sklepie była :) Teraz tylko próba odpalenia tegoż...

DeeJay1

14 kwietnia 2007 09:47:40

Kurka, obraz jakiś taki paskudnie jasny jest :/ Hints?
jakby co to sip:deejay1.to.małpa.ekiga.net

Jajcuś

14 kwietnia 2007 09:49:36

DeeJay1: no jest… spcaview potrafi ściemniać, więc kamerka ma taką opcję... ale już ekiga sobie nie radzi, a ffmpeg/ffserver nie ma takiej opcji… Coś się wymyśli…

Jajcuś

14 kwietnia 2007 15:19:16

Po godzinie walki ze sterownikiem i spcaview problem jasności rozwiązany: założyliśmy na kamerkę okulary przeciwsłoneczne :-) Mam genialną żonę!

DeeJay1

14 kwietnia 2007 19:47:57

Ekiga sobie radzi jeśli jej się zachce – ustawiłem wszystkie suwaki na zero po czym zacząłem się bawić jasnością – tylko trzeba przytrzymać kliknięty suwak nad miejscem i czasem delikatnie masować ;>

AlchemyX

15 kwietnia 2007 23:54:14

A możecie podrzucić jakiś krótki film nagrany tą kamerką? Ciekawi mnie czy rzeczywiście wyciąga te 640×480 i robi to płynnie.

Chciałbym sobie zrobić przenośny rejestrator do motocykla i najtańsze na co wpadłem to jakiś zajechany laptop bez matrycy i baterii i do tego kamera na USB :)

Jajcuś

16 kwietnia 2007 08:16:15

AlchemyX: spróbuję coś przygotować.

Ale do motocykla to Ci się raczej nie nada, ze względu na ten ograniczony zakres czułości: w słoneczny dzień zarejestrujesz jedynie wielkie białe plamy.

AlchemyX

16 kwietnia 2007 09:37:54

Szkoda. Ciekawe czy to kwestia sprzętowa czy sterowników.

Jajcuś

16 kwietnia 2007 09:41:31

Mnie to wygląda na kwestie sprzętową. Sterowniki mają regulację jasności kontrastu (które jednak działają tylko w niektórych aplikacjach, jak spcaview), ale przyciemnienie obrazu w ten sposób nie ukazuje detali w prześwietlonych fragmentach obrazu. Wydaje mi się, że parametry ekspozycji są ustawione na sztywno, przy założeniu, że oświetlenie jest dość kiepskie (myślę że to rozsądne założenie dla webcama). No cóż... kupiłem tanie badziewie, ale wiedziałem o tym. :-)

Jajcuś

16 kwietnia 2007 21:27:39

No to dodałem pokazowy filmik do wpisu :)

mcv

16 kwietnia 2007 21:41:18

Eee… strzałek na monitorze nie widać… ;-)

AlchemyX

16 kwietnia 2007 21:49:50

Mam wrażenie, że obraz zwalnia i przyspiesza co chwila, albo może po prostu pora spać ;-). Jakość ogólnie jest zadowalająca.

PS. Widzę, że jak na Paskudę przystało to i ogon jej wyrósł :P

Jajcuś

16 kwietnia 2007 22:02:22

AlchemyX: możliwe, ale w takim wypadku to nie wina kamerki (ona pracuje real-time), ale mencodera, a raczej mojej umiejętności obsługi tegoż.

Andrzej "The Undefined&qu

18 kwietnia 2007 11:26:46

dzięki za informacje, 2 sztuki na allegro zakupione ;)

Jak to miło że akurat jak czegoś szukam, to ktoś inny to znajduje ;p

Khorne

20 kwietnia 2007 16:19:04

undefined: o, to to :-)

Minos

29 kwietnia 2007 15:32:40

http://allegro.pl/item189317670_rewelacyjna_kamera_a4tech_evolution_cam_note_od_ss.html
ej dzieki wlasnie zamawia ja…
spoko, obraz, spoko, cena, no i dziala bez problemu pod linuchem

Minos

29 kwietnia 2007 17:03:15

a propos Visty – ja mysle ze ta kobieta chciala po prostu zaszpanowac :) :P

Dodaj nowy komentarz

Dostępne jest formatowanie Textile

Podpis:
Treść:
Strona WWW (opcjonalnie):
Wpisz kod:code
 
 

Śledzenie komentarzy (RSS) TrackBack URI


Jesteście obserwowani...