Aiptek USB Keychain MP3 Player einrichten

Aus Fedorawiki.de

Wechseln zu: Navigation, Suche


Dieser Artikel ist Teil der HOWTO Sammlung

Der Grund für diesen Eintrag ist, daß der MP3-Player vom nativen Kernel nicht erkannt wird. Es ist deshalb notwendig die Geräteinformationen des Aiptek MP3 Players in der Datei unusual_devs.h bekannt zu geben und einen neues Kernelmodul usb-storage zu erstellen.

Inhaltsverzeichnis

Programm-Abhängigkeiten installieren

Als Beispiel dient die Kernelversion 2.6.19-1.2895.fc6 i686. Im ersten Schritt überprüfen wir, ob das Paket kernel-devel installiert ist.

rpm -q kernel-devel

Ausgabe z.B.:

kernel-devel-2.6.19-1.2895.fc6

Installierte Kernel Version ermitteln

rpm -q kernel

Ausgabe z.B.:

2.6.19-1.2895.fc6 i686

yum-utils installieren

Es wird das Programm yumdownloader aus den yum-utils benötigt um die Kernel-Sourcen bequem herunterladen zu können.

[root]# yum install yum-utils


Kernel-Sourcen

Kernel-Sourcen herunterladen

[root]# yumdownloader --source kernel --enablerepo core-source --enablerepo updates-source

Kernel-Sourcen installieren

[root]# rpm -ivh kernel-$(uname -r).src.rpm

Kernel-Sourcen entpacken

In das /usr/src/redhat/SPECS wechseln

[root]# cd /usr/src/redhat/SPECS

und das Paket entpacken

[root]# rpmbuild -bp --target $(uname -m) kernel-2.6.spec

Kernel-Quelle verschieben

Die Quellen befinden sich jetzt unter /usr/src/redhat/BUILD/kernel-2.6.19/, wir wollen diese jedoch nach /usr/src/ verschieben.

[root]# mv /usr/src/redhat/BUILD/kernel-2.6.19/linux-2.6.19.i686 /usr/src/

Link auf die aktuellen Kernelsourcen erstellen

Dann wechseln wir in das Verzeichnis /usr/src und legen dort einen Link an, der auf die aktuellen Kernelsourcen zeigt.

[root]# cd /usr/src

Link zu den Sourcen

[root]# ln -s linux-2.6.19.i686/ linux

Editieren der Kernelsourcen

Nun muss ein Eintrag in das /usr/src/linux/drivers/usb/storage/unusual_devs.h gemacht werden.

[root]# vim /usr/src/linux/drivers/usb/storage/unusual_devs.h

Dieser Eintrag muss hinzugefügt werden.

UNUSUAL_DEV(  0x08ca, 0x3103, 0x0100, 0x0100,
               "AIPTEK",
               "Aiptek USB Keychain MP3 Player",
               US_SC_DEVICE, US_PR_DEVICE, NULL,
               US_FL_IGNORE_RESIDUE),


Kernel-Module erstellen

Durch Absetzen des Kommandos make modules werden alle Kernelmodule erstellt. Dies kann man natürlich auf die benötigten Module einschränken, dazu sind dann aber weitere Kenntnisse über die erforderlichen Module notwendig. Zuerst muss in das Verzeichnis gewechselt werden.

[root]# cd /usr/src/linux

Nun können die Module erstellt werden

[root]# make modules


Kernelmodul usb-storage laden

Um sicherzugehen, dass kein USB-Storage-Modul geladen ist, entladen wir dieses mit dem Kommando

[root]# rmmod usb-storage

Nun können wir das selbst kompilierte Modul laden

[root]# insmod /usr/src/linux/drivers/usb/storage/usb-storage.ko

Damit das neue Modul dem aktuellen Kernel zur Verfügung steht, kopieren wir es in das Modules-Verzeichnis. Zuerst sichern wir aber das originale Kernelmodul.

[root]# mv /lib/modules/`uname -r`/kernel/drivers/usb/storage/usb-storage.ko /lib/modules/`uname -r`/kernel/drivers/usb/storage/usb-storage.ko.orig

Nun kopieren wir das neue Modul

[root]# cp /usr/src/linux/drivers/usb/storage/usb-storage.ko /lib/modules/`uname -r`/kernel/drivers/usb/storage


USB-Device auflisten

Nun können die Informationen über die USB-Geräte ausgelesen werden.

cat /proc/bus/usb/devices

Die Ausgabe sieht in etwa so aus.

T:  Bus=03 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 12
Spd=12  MxCh= 0
D:  Ver= 1.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64
#Cfgs=  1
P:  Vendor=08ca ProdID=3103 Rev= 1.00
S:  Product=AIPTEK      
S:  SerialNumber=SDC/MMC     
C:* #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=05 Prot=50
Driver=usb-storage
E:  Ad=81(I) Atr=02(Bulk) MxPS=  64 Ivl=0ms
E:  Ad=02(O) Atr=02(Bulk) MxPS=  64 Ivl=0ms


Zugriff auf den Stiftspeicher des MP3 Players

Das Standard-Dateisystem des Stiftspeichers ist vfat. Der USB-Massenspeicher wird als SCSI-Schnittstelle durch den Kernel behandelt, folglich muss eine der /dev/sd* Gerätedevices, gewöhnlich /dev/sda1 zum Einhängen verwendet werden.

Speicher in Dateisystem ein- und aushängen

Einhängen unter der Voraussetzung, dass das Verzeichnis /media/usbdisk existiert.

[root]# mount -t vfat /dev/sda1 /media/usbdisk

Aushängen

[root]# umount /media/usbdisk


Weitere Links