Ubuntu 13.04 ttyUSBx-Problem

Begonnen von Jojo11, 04 Januar 2014, 17:59:09

Vorheriges Thema - Nächstes Thema

Jojo11

Hallo zusammen,

ich habe FHEM bisher auf einem Raspberry unter wheezy betrieben. Da dieser allerdings zur Zeit mit Stabilitätsproblemen zu kämpfen hat, habe ich einen PC mit Ubuntu 13.04 zum FHEM-Server umfunktioniert. Soweit läuft auch alles sehr gut - und besonders schnell im Vergleich. Leider kann ich aber auf keinerlei USB-Geräte zugreifen (JeeLink, RFXtrx). Als normaler user erhalte ich die Fehlermeldung "Can't open /dev/ttyUSB0: Keine Berechtigung", obwohl ich den user der Gruppe dialout hinzugefügt habe. Starte ich FHEM als su, kann das entsprechende device zwar erkannt werden, aber dann erhalte ich folgende Meldung:
"Can't open /dev/ttyUSB0: Unpassender IOCTL (I/O-Control) für das Gerät"
Dies ist unabhängig davon, welches von den beiden Geräten ich anschließe. Unter wheezy funktioniert die selbe Konfiguration einwandfrei  :-\
Gefunden habe ich bisher diesen bug, aber geholfen hat es nicht: https://bugs.launchpad.net/ubuntu/+source/gtkterm/+bug/949597
Hat evtl. jemand unter Ubuntu ähnliche Schwierigkeiten?

schöne Grüße
Jo

Rohan

Hallo Jo,

bist du dir sicher, die richtigen Gerätenamen zu verwenden ("/dev/ttyUSB0")?

Zieh mal bitte deine USB-Geräte ab, und (bei neueren Linus-Distries heißt das dann wohl jetzt so) in einer Konsole-Sitzung


sudo tail -f /var/log/syslog


und mach mal den Guttenberg (Copy&Paste) aller ab dem Anstöpseln erscheinenden Meldungen im Konsolenfenster.

Ich glaube, die Dev-Namen lauten eher so wie /dev/ttyA....

Gruß
Thomas

Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Jojo11

Hallo Thomas,

das ergibt dann


Jan  4 18:52:00 ServerA kernel: [ 3467.983639] usb 4-2: Number of endpoints 2
Jan  4 18:52:00 ServerA kernel: [ 3467.983647] usb 4-2: Endpoint 1 MaxPacketSize 64
Jan  4 18:52:00 ServerA kernel: [ 3467.983653] usb 4-2: Endpoint 2 MaxPacketSize 64
Jan  4 18:52:00 ServerA kernel: [ 3467.983660] usb 4-2: Setting MaxPacketSize 64
Jan  4 18:52:00 ServerA kernel: [ 3467.986559] usb 4-2: FTDI USB Serial Device converter now attached to ttyUSB0
Jan  4 18:52:00 ServerA kernel: [ 3467.989201] usbcore: registered new interface driver ftdi_sio
Jan  4 18:52:00 ServerA kernel: [ 3467.989213] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver
Jan  4 18:52:00 ServerA gpsd.hotplug: add /dev/ttyUSB0
Jan  4 18:52:00 ServerA gpsdctl: gpsd_control(action=add, arg=/dev/ttyUSB0)
Jan  4 18:52:00 ServerA gpsdctl: launching gpsd  -F /var/run/gpsd.sock


Ein
ls -al /dev|grep ttyUSB
ergibt

crw-rw-rw-   1 root dialout   188,   0 Jan  4 18:52 ttyUSB0
lrwxrwxrwx   1 root root            15 Jan  4 18:51 ttyUSB-FHEM1 -> bus/usb/004/003

In den udev-Rules habe ich das entsprechend so eingerichtet, um dieses Gerät immer unter ttyUSB-FHEM1 erreichen zu können.

schöne Grüße
Jo

Rohan

Hallo Jo,

hmmm... ich bin (erst) bei (k)ubuntu 12.04.3 LTS und werde da auch noch 'ne Weile bleiben. Mein bisheriger Umgang mit udev bestand darin, bei manueller Einflussnahme auf die Devices auch immer gleich die Rechte auf 666 zu setzen. Warum dein symbolischer Link Rechte wieder nur für root/root hat müsstest du wissen.

Und warum (d)ein gps-Dämon (gpsd.hotplug) die Finger da mit drin hat, kannst auch nur du wissen.

Gruß
Thomas

Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Jojo11

Hallo Thomas,

in den udev-Rules habe ich die Rechte schon auf 666 gesetzt.
Die root/root-Rechte waren auf dem RPi ähnlich: http://forum.fhem.de/index.php/topic,18056.msg120114.html#msg120114 Deswegen habe ich das (noch) nicht hinterfragt. Ich bin aber auch wirklich kein Linux-Experte  :-[
Das mit dem gps-Dämon kann ich mir nicht erklären. Das werde ich mal genauer unter die Lupe nehmen.

schöne Grüße
Jo

Rohan

Hi Jo,

Zitat von: Jojo11 am 04 Januar 2014, 19:58:50... Das mit dem gps-Dämon kann ich mir nicht erklären. Das werde ich mal genauer unter die Lupe nehmen. ...

tue das, denn ich vermute, dass hier ein Dämon/Dienst die USB-Schnittstelle exclusiv belegt (Link).

Gruß
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Jojo11

Hallo Thomas,

ein komplettes Entfernen dieses GPS-Dämons hat leider auch keine Besserung gebracht.
sudo chmod o+rw /dev/ttyUSB-FHEM1
hat immerhin schonmal den Fehler mit der permission behoben, wenn gleich ich das eigentlich schon eingegeben hatte  ???
Allerdings kommt nun im FHEM-logfile wieder
Can't open /dev/ttyUSB-FHEM1: Inappropriate ioctl for device
Wieder die gleiche Meldung für beide Geräte.

schöne Grüße
Jo

Rohan

Hallo Jo,

ich würde jetzt erst mal den ganzen Sermon rund um "/dev/ttyUSB-FHEM1" zurücknehmen und den generischen Zugriff bis hin zu Fhem ans laufen bringen. Da sind zu viele Folgefehler-Möglichkeiten und eine Fernwartung gänzlich unmöglich, weil ich deine udev-Aktionen nicht nachvollziehen kann bzw. kenne.

Wenn das dann mit einem USB-Device funktioniert, könnte man die Erstellung eines eindeutigen symbolischen Links wieder angehen, fertig stellen und danach dann das nächste USB-Device konfigurieren.

Welche libusb-Version(en) hast du installiert?
Steckst du die USB-Devices an USB 3 Ports?

Gruß
Thomas
Fhem auf Mini-ITX mit Celeron 2-Core, HMLAN (> 55 Devices), CUL (FS20 und EM), RFXtrx 433E, Arduino (einige DS18B20), RPi mit 1-Wire (DS2423 für S0-Signale, DS18B20+), RPi/Arduino mit MQ-5 und MQ-9 (CO- und CNG/LPG-Sensor), CO-20 IAQ Sensor

Jojo11

Hallo Thomas,

ja, das werde ich mal machen.
Folgende Versionen habe ich installiert:

libusb-0.1-4 - Userspace USB-Programmierbibliothek
libusb-1.0-0 - Userspace USB-Programmierbibliothek
libusb-1.0-0-dev - userspace USB programming library development files


USB 3.0 kann ich definitiv ausschließen - dafür ist der Rechner zu alt  :-\

schöne Grüße
Jo

Wernieman

Kleiner Hinweis wegen der Rechte im Link:
Dieses sind die rechte des links, nicht die Zugriffsrechte auf die "Zieldatei". Das der link root-Gehört liegt daran, das udev Ihn anlegt. Aber nur User mit den rechten der "Zieldatei" können Zugreifen.

Nur zur Behebung von "Verständigungsproblemen"
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html

Jojo11

Kleines update: Ich habe die symbolischen Links deaktiviert und die ursprünglichen Adressen ttyUSB0/1 verwendet. Seitdem funktioniert alles bestens. Jetzt werde ich mal versuchen zu verstehen, warum die symbolischen Links auf dem RPi funktionieren, auf dem Ubuntu-System aber nicht.

schöne Grüße
Jo

Wernieman

Kleiner Tip:
bei meinem gentoo findet man die "Device" auch unter: /dev/serial/by-id/

Da sie dort mit Seriennummer, sond sie Eindeutig .. und ich brauchte UDEV nicht anpassen. Weiß jetzt aber nicht, ob Ubuntu schon so weit ist ...
- Bitte um Input für Output
- When there is a Shell, there is a Way
- Wann war Dein letztes Backup?

Wie man Fragen stellt: https://tty1.net/smart-questions_de.html