Kodak C713 i zabawa z gphoto2

27/12/2007 – 19:46

Cześć…

Jakimś to cudem w święta tego roku wpadł mi w rękę aparat cyfrowy – Kodak C713. Niewielki rozmiar i waga, prosta obsługa, dobra jakość zdjęć – wszystko to sprawia, że go polubiłem. Wcześniej nie miałem cyfrówki, więc aparat się na pewno przyda.

Jednak nie chcę teraz dokonywać opisu nowego aparatu. Chciałbym bowiem napisać jak to się męczyłem z połączeniem Linux <–> aparat.

Po otrzymaniu aparatu porobiłem parę zdjęć (co powinno być oczywiste). Chciałem w końcu je skopiować na komputer. Podłączam aparat i tu niespodzianka… cisza. W tym momencie przeszła mnie myśl, że jakimś to cudem Linux nie potrafi obsłużyć mojego aparatu. Myśl ta jednak szybko mnie opuściła gdy uruchomiłem system na jądrze dystrybucyjnym (bardzo często używam własnoręcznie konfigurowanego kernela) – system wykrył aparat, a po chwili moim oczom ukazało się okienko do zgrywania zdjęć (GNOME). Ucieszony tym faktem zgrałem wszystkie zdjęcia i zacząłem się zastanawiać czemu aparat nie chce działać na własnym kernelu. Po krótkich namysłach doszedłem do wniosku, że najprawdopodobniej nie zaznaczyłem czegoś podczas konfiguracji (i tak było w rzeczywistości).

Pozmieniałem trochę w konfiguracji jądra, skompilowałem, uruchomiłem i już maleńki postęp… Wspomniane „okienko” znowu u mnie zagościło, ale z prezentem (błędem jak ktoś woli ;-) o następującej treści:

Wystąpił błąd w bibliotece io (Nie udało się odnaleźć żądanego urządzenia na porcie USB): Nie udało się odnaleźć urządzenia USB (klasa 0x6, podklasa 0x1, protokół 0x1). Należy upewnić się, że to urządzenie jest podłączone do komputera).

Cóż, zapytałem wujka Google i niewiele się dowiedziałem – wręcz zostałem zmylony. Znalazłem bardzo dużo podobnych sytuacji do mojej, gdzie praktycznie w każdym przypadku winne były uprawnienia. Postanowiłem zatem porównać sobie prawa do urządzenia na kernelu dystrybucyjnym i własnym:

Dystrybucyjny:

kaka@debian:/dev/bus/usb/001$ ls -la
[…]
crw-rw-r– 1 root plugdev 189, 3 2007-12-26 10:36 004
kaka@debian:/dev/bus/usb/001$

A oto własny kernel:

kaka@debian:/dev/bus/usb/002$ ls -la
[…]
crw-rw-r– 1 root root 189, 129 2007-12-26 01:04 002
kaka@debian:/dev/bus/usb/002$

Sprawdziłem czy ls przypadkiem nie kłamie: wpisałem spod roota `gphoto2 -P`, po czym aparat został wykryty, a zdjęcia zaczęły być kopiowane.

Niby problem już rozwiązany, bo aparat jest wykrywany i mogę pobierać zdjęcia. Nic bardziej mylnego – nie potrafiłem żyć w przeczuciu, że zdjęcia będę mógł pobierać tylko z konta administratora ;).

Tak więc jako pierwszy podejrzany wystąpił udev. Poszperałem w /etc/udev/ i znalazłem pliczek libgphoto2.rules. Jak byk była tam wymieniona grupa plugdev, więc zacząłem podejrzewać, że na własnym jądrze udev ignoruje ten plik. Niestety, była to zła droga. Po kilku godzinach znowu zacząłem podejrzewać kernel i ponownie zabrałem się za jego konfigurację.

Z początku podejrzewałem, że muszę coś pozmieniać w USB support – niestety, błędne miejsce. To samo tyczy się HID Devices, Multimedia devices oraz SCSI device support (szczerze mówiąc, sugerowałem się także podpowiedziami jakie otrzymałem od kolegów).

Nadszedł wreszcie „ten” dzień. Dalej szukałem pomocy u kolegów, ale niestety nie potrafili mi pomóc. W końcu postanowiłem jeszcze raz przejrzeć całą konfigurację jądra. Podczas tej ponownej konfiguracji, zaznaczyłem wszystko co było w Memory Technology Device (MTD) support – i to był klucz do sukcesu (jak dobrze pamiętam ;-).

Aparat został poprawnie wykryty i przypisany do odpowiedniej grupy, a ja mogłem się cieszyć z rozwiązania problemu :)

Ale… Przez zabawę z konfiguracją, namieszałem nieźle ze wsparciem dla dysków IDE, czego skutkiem było odmówienie współpracy CD-ROMu. Nie miałem jednak już sił na kolejną kompilację – zostawiłem to na następny dzień. Następnego dnia dość szybko rozwiązałem i ten problem (okazało się, że nie miałem paru sterowników zaznaczone).

Tak oto spędziłem całe trzy dni (+ parę godzin czwartego dnia) nad konfiguracją jądra. Ten kto do mnie napisał na GG/Jid, mógł poczuć jak wkurzony byłem ;-). Dodatkowo przez te wszystkie dni, skompilowałem chyba z kilkadziesiąt razy jądro (Sic!) :D

  1. komentarze 4 dla “Kodak C713 i zabawa z gphoto2”

  2. Dlatego wolę rozwiązanie:

    karta pamięci z aparatu –> czytnik kart (usb) –> laptop

    Podziwiam za wytrwałość.

    By Radek on Gru 28, 2007

  3. Szczerze mówiąc, chciałem już pobiegnąć do sklepu po czytnik, ale jak widać dobrze, że się wstrzymałem :)

    By Kaka' on Gru 28, 2007

  4. Ja moj aparat (Olympus mju750) obsluguje przez kabelek USB bo niestety czytnik Texas Ins. 5-1 w lapku nie obsluguje pod Linuksem kart xD ;/
    Kupic drugi czytnik to mija sie z celem ;)

    By bns on Gru 28, 2007

  5. tak się kończą zabawy z konfiguracją jądra samemu. kiedyś nawet i się w to bawiłem, ale obecnie (Debian SID) przyjmuję zasadę, że dopóki wszytko działa, to nie mieszam, bo zawsze niewiedzieć czemu tracę czas na sprawdzanie co też tam nowego przybyło. a zatem tracę jakąś godzinę z życia:)

    ostatnio jednak byłem zmuszony do konfigurowania jądra. vmware był kompilowany inną wersją gcc niż debianowy kernel i za chiny nie chciał się skompilować moduł. zazwyczaj robię tak, że wgrywam plik konfiguracyjny z /boot i dopiero potem modyfikuję konfigurację pod make gconfig. lepiej trochę rzeczy powyłączać, trochę powłączać(nie lubię initrd, więc reiserfs mam zawsze wkompilowany), niż wszystko konfigurować od zera. polecam ten sposób na przyszłość

    By shutdownrunner on Gru 28, 2007

Napisz komentarz