Forum: PC Hard- und Software Kein Device mit FTDI UM232H, Linux, Debian, Marvel, Arm5tel


von La. W. (flyingeagle)


Lesenswert?

Hallo,

wie bereits im Betreff aufgeführt will ich ein FTDI UM232H an einen 
Sheevaplug mit ARMv5Tel-Architektur anschließen der unter Debian läuft.

Kernel:
1
Linux sheevaplug 2.6.32-5-kirkwood #1 Wed Jan 12 15:27:07 UTC 2011 armv5tel GNU/Linux
Ausgabe von Lsmod:
1
sheevaplug:~# lsmod | grep -i ftdi
2
ftdi_sio               31136  0
3
usbserial              27000  1 ftdi_sio
4
usbcore               122183  5 ftdi_sio,usbserial,usb_storage,ehci_hcd
5
sheevaplug:~# lsmod | grep -i usb
6
usbserial              27000  1 ftdi_sio
7
usb_storage            34923  5
8
scsi_mod              119260  2 sd_mod,usb_storage
9
usbcore               122183  5 ftdi_sio,usbserial,usb_storage,ehci_hcd
10
nls_base                5367  1 usbcore
In der Syslog steht folgendes:
1
    usb 1-1.4: new high speed USB device using orion-ehci and address 9
2
    usb 1-1.4: New USB device found, idVendor=0403, idProduct=6014
3
    usb 1-1.4: New USB device strings: Mfr=1, Product=2, SerialNumber=3
4
    usb 1-1.4: Product: UM232H
5
    usb 1-1.4: Manufacturer: FTDI
6
    usb 1-1.4: SerialNumber: <<myserial>>
7
    usb 1-1.4: configuration #1 chosen from 1 choice
Ich habe dann nach I-Net-Recherchen noch eine UDEV-Regel erstellt:
1
SYSFS{idProduct}=="6014",SYSFS{idVendor}=="0403",SYSFS{serial}=="<<myserial>>",SYMLINK+="UM232H"
Nun habe ich zwar beim Anstöpseln ein Device /dev/UM232H, auf dieses 
kann ich aber nicht zugreifen.
Bei einem cat /dev/UM232H kommen ein paar Sonderzeichen und das wars und 
mit STTY kann ich keine Baudraten einstellen, da bekomme ich 
Fehlermeldungen (Die Operation ist nicht erlaubt).
Bei FTDI steht das ab 2.6.31 der FTDI-Treiber im Kernel sei, was er 
anscheinend auch ist, aber irgendwie auch wieder nicht :-) :-(
Normalerweisie sollte es nach dem Einstecken ein device "/dev/ttyUSBx" 
geben, was es aber nicht gibt.

Hat denn jemand von euch das schonmal probiert und zum Laufen gekriegt?

Grüße
Lars

PS: Gleicher Effekt im Übrigen auch an einem anderen PC mit Squezee und 
gleichem Kernel auf x86.

PPS: Die Treiber von FTDI kann ich nicht kompilieren, falls jemand 
selbst kompilierte Module (für ARM) hat, dann würde ich die gern testen 
wollen ;-)

von Andreas B. (andreas_b77)


Lesenswert?

Lars Witter schrieb:
> Nun habe ich zwar beim Anstöpseln ein Device /dev/UM232H, auf dieses
> kann ich aber nicht zugreifen.

Worauf zeigt dieser Link denn dann eigentlich?

von La. W. (flyingeagle)


Lesenswert?

Andreas B. schrieb:
> Worauf zeigt dieser Link denn dann eigentlich?
1
lrwxrwxrwx 1 root root 15 11. Jul 19:58 /dev/UM232H -> bus/usb/001/014
ein paar Tests noch:
1
sheevaplug:~# stty -F /dev/UM232H
2
stty: /dev/UM232H: Die Operation ist nicht erlaubt
3
4
sheevaplug:~# stty -aF /dev/UM232H
5
stty: /dev/UM232H: Die Operation ist nicht erlaubt
6
7
sheevaplug:~# od /dev/UM232H
8
0000000 000422 001000 000000 040000 002003 060024 004400 001001
9
0000020 000403 001011 000040 000401 120000 004455 000004 001000
10
0000040 177777 001377 002407 001201 001000 003400 001005 000002
11
0000060 000002
12
0000062
13
14
sheevaplug:~# stty  -F /dev/UM232H 1200 cs8 -parenb -crtscts -echo
15
stty: /dev/UM232H: Die Operation ist nicht erlaubt
16
17
sheevaplug:~# whoami
18
root
19
20
sheevaplug:~# stty  -F /dev/bus/usb/001/014 1200 cs8 -parenb -crtscts -echo
21
stty: /dev/bus/usb/001/014: Die Operation ist nicht erlaubt

von La. W. (flyingeagle)


Lesenswert?

Und noch ein Test:
1
sheevaplug:~# ls -l /dev/bus/usb/001/
2
crw-rw-r-- 1 root root 189, 13 11. Jul 19:58 014
3
4
sheevaplug:~# echo Hallo > /dev/UM232H
5
-bash: echo: write error: Das Argument ist ungültig
6
7
sheevaplug:~# echo Hallo > /dev/bus/usb/001/014
8
-bash: echo: write error: Das Argument ist ungültig

von Andreas B. (andreas_b77)


Lesenswert?

Lars Witter schrieb:
>> Worauf zeigt dieser Link denn dann eigentlich?
> lrwxrwxrwx 1 root root 15 11. Jul 19:58 /dev/UM232H -> bus/usb/001/014

Das ist keine serielle Schnittstelle, das ist ein Interface zum 
USB-Gerät selbst. Also wohl das, womit man direkt mit eigenem Treiber 
über die libusb zugreift.

Die udev-Regel kam mir schon etwas unpassend vor, da wird nämlich gar 
nicht geprüft, unter welchem Treiber das neue Device läuft. Also weg 
damit. Die Default-Namen (wenn der Treiber das Ding mal ansprechen 
würde) à la /dev/ttyUSBx werden ja erst mal reichen.

Evtl. fehlt dem ftdi-Treiber nur die Info, dass er mit dem Gerät auch 
umgehen kann. Schau ich später noch mal.

von La. W. (flyingeagle)


Lesenswert?

Andreas B. schrieb:
> Die Default-Namen (wenn der Treiber das Ding mal ansprechen
> würde) à la /dev/ttyUSBx werden ja erst mal reichen.

mehr will ich ja gar nicht :-)

> Also weg damit.

Dann kriege ich aber auch kein /dev/ttyUSBx Device.

von Andreas B. (andreas_b77)


Lesenswert?

Lars Witter schrieb:
> Dann kriege ich aber auch kein /dev/ttyUSBx Device.

Doch natürlich. Du bekommst generell immer die Devices mit von den 
Treibern vorgegebenen Namen. Mit udev-Regeln kannst du zusätzliche Links 
auf diese Devices erzeugen lassen und so einen selbst vorgegebenen Namen 
auf ein bestimmtes Device anlegen.

Die ttyUSBx Namen bekommen halt alle möglichen USB-Seriell Umsetzer mit 
einer Nummer, die entsprechend der Reihenfolge der Initialisierung / des 
Ansteckens vergeben wird, was eben jedes mal eine andere Nummer sein 
kann. Mit deiner Regel, die auch die Seriennummer einschließt, bekommt 
dieser eine (und nur dieser) Umsetzer immer den Namen UM232H.


Aber zum eigentlichen Problem: Ich habe nachgeschaut und herausgefunden, 
dass der Patch, der Unterstützung für FT232H Chips bietet, noch nicht in 
2.6.32 ist. Tatsächlich noch in keinem Release, erst ab 3.0-rc4 ist er 
enthalten. Ist aber auch nicht mehr als die IDs einzufügen, wäre also 
leicht zurückportierbar. Zumindest so lange man selber Kernel übersetzen 
kann.

Hier isser: 
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=309427b6351b763917caac3e4b2ab5651df99823

von La. W. (flyingeagle)


Lesenswert?

Andreas B. schrieb:
> Zumindest so lange man selber Kernel übersetzen kann.

Und da geht der Ärger los :-)

Erstmal 1000-Dank für deine Ausführliche Antwort. Hatte gehofft das mein 
Verdacht das es doch - entgegen der FTDI-Seite - nicht im Kernel sei, 
sich nicht bestätigt.

Nun denn, dann werde ich wohl versuchen müssen die Module selbst zu 
kompilieren.

Werde berichten.

Grüße

von Uwe Bonnes (Gast)



Lesenswert?

Bitte auch noch anhaengenden Patch verwenden, sonst stimmt die 
Baudratenberechnung nicht!

Unter Suse kann man mit
cd ../linux../drivers/usb/serial
make -C /lib/modules/`uname -r`/build/ M=`pwd` ftdi_sio.ko
gezielt nur das FTDI modul bauen

von La. W. (flyingeagle)


Lesenswert?

So, nen Kumpel hat mir das Modul fürn ARM gestrickt ... läuft 1a ... Nun 
habsch auch ein ttyUSB0 :-)

Danke!

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.