duke at splatterworld dot de)05. November 2004
Canon Ixus I Digitalkamera in Verbindung mit Linux zur Übertragung und Aufbereitung der Bilder
Wir besitzen einen selbstgebauten Linux Kernel der Sparte 2.6 und eine Canon Ixus I mit USB – Digital Kabel zur Übertragung der Daten
Wir stellen sicher, dass USB Unterstützung im Bios aktiviert ist und unter Linux die USB Ports auch erkannt werden. Anbei die Ausgabe meines Systems mit 4 aktiven Ports.
lspci -v | grep USB
0000:00:1d.0 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #1 (rev 02)
0000:00:1d.1 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #2 (rev 02)
0000:00:1d.2 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #3 (rev 02)
0000:00:1d.3 USB Controller: Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #4 (rev 02)
Nach dieser Kontrolle machen wir uns an die Arbeit, unserem System USB Unterstützung beizubringen.
Wir gehen davon aus, dass sich auf unserem System bereits ein selbstgebauter Kernel befindet, den wir nun anpassen. In meinem Fall befinden sich die Kernel Quellen unter „/usr/src/linux-2.6.9“ Dieser Pfad, kann bei eurem System abweichen.
cd /usr/src/linux-2.6.9
Nun befinden wir uns im Verzeichniss unseres Kernels und wir beginnen mit der Anpassung des Kernels. (Achtung hierzu benötigen wir die Ncurses Bibliotheken)
make menuconfig
Folgende Änderungen sind nun im Konfigurationsmenü vorzunehmen, um den Kernel für USB tauglich zu machen. (jeweils im genannten Untermenü)
Device Drivers ---> USB support --->
<*> Support for Host-side USB
[*] USB device filesystem
<Modul> EHCI HCD (USB 2.0) support
<Modul> OHCI HCD support
<Modul> UHCI HCD (most Intel and VIA) support
<*> USB Mass Storage support
Nun beenden wir die Konfiguration und speichern die Änderungen ab. Jetzt erstellen wir unseren Kernel auf alt bekannte Weise unter Verwendung von Lilo als Linux Bootmanager (Bei Abweichungen zur individuellen Kernel Generierung und Bootloader Einstellung bitte anpassen)
make bzImage && make modules && make modules_install
Nun rattert unser Compiler den Kernel durch und wir gönnen uns eine Tasse Kaffee.
Sollte unser Kernel ohne Fehler erstellt worden sein, koppieren wir in unserem Fall das erstellte Kernel Image in den Boot Ordner und verlinken auf die neue Quelle und lassen anschliesend Lilo erneut darüber laufen.
cp arch/i386/boot/bzImage /boot/bzImage-2.6.9
mv /vmlinuz /vmlinuz.old
ln -s /boot/bzImage-2.6.9 /vmlinuz
Wenn jetzt alles geklappt hat, ist es an der Zeit unserem Boot Loader mitzuteilen, dass eine neues Kernel Boot Image vorliegt.
lilo
Nach dem positiven Einbinden des neuen Kernels in unser System sollte die Ausgabe in etwa so lauten.
Added Linux *
Added Linux-old
Added Windows-XP
Nun starten wir unser System neu
shutdown -r now
Wenn alles geklappt hat, installieren wir die restlichen Abhängigkeiten, die USB benötigt. (In unserem Fall auf einem Debian System, bitte an eure Distribution anpassen, oder alternative Quellen verwenden.
apt-get install libusb-0.1-4 libusb-dev
Alternativ unter http://libusb.sourceforge.net/
Jetzt prüfen wir nach, ob die Unterstützungen für USB korrekt geladen wurden.
dmesg | grep usb
usbcore: registered new driver usbfs
usbcore: registered new driver hub
usbcore: registered new driver usb-storage
lsmod
uhci_hcd 29072 0
cat /proc/bus/usb/devices
T: Bus=04 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.9 uhci_hcd
S: Product=Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #4
S: SerialNumber=0000:00:1d.3
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
T: Bus=03 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.9 uhci_hcd
S: Product=Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #3
S: SerialNumber=0000:00:1d.2
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
Sollte uns jetzt „dmesg“ die erforderlichen Ausgaben gebracht haben, „lsmod“ das Modul anzeigen, dass wir zuvor mit dem Kernel generiert haben und die „cat“ Ausgabe in etwa so wie bei meinem System erfolgen, ist unsere Kiste USB tauglich.
Nun ist es das erste mal an der Zeit unsere Kamera mit dem PC zu verbinden. Hierzu benutzen wir das mitgelieferte Kabel und stöpsel das USB Ende an unseren ersten USB Port. Anschliesend prüfend wir erneuet die Ausgabe von „dmesg“ und „cat“ und versichern uns, dass die Kamera erkannt wurde.
dmesg | grep USB
usb 2-1: new full speed USB device using address 3
cat /proc/bus/usb/devices
T: Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3 Spd=12 MxCh= 0
D: Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=32 #Cfgs= 1
P: Vendor=04a9 ProdID=309b Rev= 0.01
S: Manufacturer=Canon Inc.
S: Product=Canon Digital Camera
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 3 Cls=06(still) Sub=01 Prot=01 Driver=(none)
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl=0ms
E: Ad=83(I) Atr=03(Int.) MxPS= 8 Ivl=96ms
T: Bus=01 Lev=00 Prnt=00 Port=00 Cnt=00 Dev#= 1 Spd=12 MxCh= 2
B: Alloc= 0/900 us ( 0%), #Int= 0, #Iso= 0
D: Ver= 1.10 Cls=09(hub ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0000 ProdID=0000 Rev= 2.06
S: Manufacturer=Linux 2.6.9 uhci_hcd
S: Product=Intel Corp. 82801EB/ER (ICH5/ICH5R) USB UHCI #1
S: SerialNumber=0000:00:1d.0
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=09(hub ) Sub=00 Prot=00 Driver=hub
E: Ad=81(I) Atr=03(Int.) MxPS= 2 Ivl=255ms
Nach diesem Aufruf machen wir uns daran, gphoto2( und gtkam, das frontend) für unsere USB Zugriffe der Kamera zu installieren.
apt-get install gtkam
apt-get install gphoto2
Alternativ unter http://sourceforge.net/projects/gphoto/
Nach der erfolgreichen Installation, steht uns gphoto2 für den ersten Feldversuch zur Verfügung. (Alternativ die GUI Oberfläche „gtkam“) Achtung! Hierzu muss die Kamera eingeschaltet sein und sich im Vorschaumodus befinden.
gphoto2 -P
Lade »IMG_0022.JPG« aus Verzeichnis »/store_00010001/DCIM/100CANON«...
Speichere Datei als IMG_0022.JPG
Viel Spass mit eurer Digital Kamera und Linux :)
Dieses HOWTO wurde mit groesster Sorgfalt erstellt.
Trotzdem koennen Fehler nicht vollstaendig ausgeschlossen werden.
Ich
kann fuer fehlerhafte Angaben und deren Folgen weder eine juristische
Verantwortung noch irgendeine Haftung uebernehmen.
Fuer
Verbesserungsvorschlaege und Hinweise auf Fehler bin ich dankbar.