Jak na USB digitální fotoaparát v Linuxu?!

Možná byste rádi na svém počítači vyzkoušeli Linux, ale nevíte, zda v něm budou fungovat všechny vaše periferie. Jak jsou na tom digitální foťáky připojované přes USB? Udělal Olympus chybu?
V tomto článku se nebudu zabývat digitálními foťáky připojenými přes sériový kabel, protože ty jsou již na smetišti dějin a také jejich podpora projektem gphoto je dostatečná. Zaměříme se tedy na fotoaparáty připojované přes USB. Snad všechny současné digitální fotoaparáty totiž podporují specifikaci USB Storage Class a jsou přístupné v počítači jako další externí disk.

Vlastníte-li některou z moderních distribucí Linuxu, máte podporu těchto zařízení přímo v systému a nepotřebujete žádné další úpravy. Pro připojení kamery se však musíte v terminálu přihlásit jako superuživatel root. Abyste mohli pracovat s kamerou jako s dalším pevným diskem, musíte mít zavedeny moduly pro podporu zařízení USB Mass Storage Class a podporu SCSI disků – jako takové se totiž USB disky mapují. Zajistěte tedy spuštění těchto modulů příkazy

modprobe sd_mod
modprobe usb-storage

Nyní připojte sériovým kabelem foťák k počítači a správnou detekci zjistíte tímto příkazem:

less /proc/bus/usb/devices

Vypíšou se vám všechna připojená USB zařízení. Pracujete-li v grafickém prostředí (a kdo ne .-), můžete využít funkcí utility usbview nebo kontrolního panelu KDE. Zařízení je nyní zobrazeno a je detekováno (driver=usb-storage). Není-li tomu tak, máte patrně fotoaparát Olympus, o kterém si povíme závěrem.

Je-li tedy v pořádku detekován ovladač, můžete vytvořit příslušný připojovací adresář – nejčastěji příkazem

mkdir /mnt/camera

a připojit souborový systém fotoaparátu do tohoto adresáře obligátním

mount -t vfat /dev/sda1 /mnt/camera

A je to, máte svůj foťák připojen do Linuxu a můžete s ním bez problémů pracovat jako s dalším pevným diskem. Pokud chcete, aby se vám připojoval automaticky po startu systému, přidejte do souboru /etc/modules řádky

sd_mod
usb-storage

které zajistí spuštění odpovídajících modulů při startu počítače. Dále – využíváte-li výhod systému Automount – přidejte do souboru /etc/fstab řádek:

/mnt/camera /mnt/camera supermount dev=/dev/sda1,fs=vfat,defaults,noauto 0 0

a od této chvíle, kdykoli připojíte fotoaparát ke svému linuxovému počítači, automaticky se připojí do příslušného adresáře. Stejný postup bude fungovat nejen pro digitální fotoaparáty, ale také pro nejrůznější externí disky včetně externích CD mechanik.

Co Olympus nezvládl

Problémy ovšem nastanou, budete-li chtít k Linuxu připojit některý z fotoaparátů Olympus Camedia C1, C1Zoom, C100 nebo podobný. Olympus se totiž odchýlil od standardu a všechny tyto fotoaparáty se hlásí nestandardním řetězcem – identifikují se jako USBU namísto běžného USBS. Což Linux (ani ostatní starší operační systémy) správně nerozpozná a nedovolí uživateli s takto připojeným fotoaparátem pracovat.

Naštěstí je náprava poměrně jednoduchá a podle následujícího návodu ji zvládne téměř každý. Je totiž zapotřebí znovu přeložit příslušný modul – k tomu musíte mít nainstalovány zdrojové kódy jádra k vašemu Linuxu. Měly by se nacházet v adresáři /usr/src/linux; pokud je tam nemáte, pomocí instalátoru je doinstalujte.

Nyní se přihlaste jako superuživatel root, přepněte se do příslušného adresáře příkazem

cd /usr/src/linux

a opravte kontrolní řetězec souboru transport.h příkazem

perl -pi.BAK -e `s/0x534/0x554/` drivers/usb/storage/transport.h

Chcete-li provést tuto změnu ručně, otevřete si tento soubor ve svém oblíbeném textovém editoru a zaměňte u řetězce US_BULK_CS_SIGN hodnotu 0x53425355 na 0x55425355. Nyní můžete přeložit nové moduly příkazem

make modules

Po ukončení kompilace (jejíž délka je závislá na rychlosti vašeho počítače) můžete zavést moduly pro SCSI disky i nově přeložený USB modul příkazy

modprobe ./drivers/usb/storage/sub-storage.o

Nyní, pokud vše proběhlo v pořádku, můžete připojit kameru a běžným příkazem

mount -t vfat /dev/sda1 /mnt/camera

ji připojit k souborovému systému. Pokud již v počítači nějaký SCSI disk máte, bude kamera připojena na prvním volném disku – její umístění zjistíte příkazem cat /proc/scsi/scsi.

Nyní máte v Linuxu připojen svůj digitální fotoaparát stejně, jako v kterémkoli jiném operačním systému. A ani to nebylo příliš složité, že? :-)

Diskuze (39) Další článek: Interkamera 2002

Témata článku: , , , , , , , , , , , , , , , , , , , , , , , ,