Forum: Mikrocontroller und Digitale Elektronik /dev/ttyUSBx wird nicht erstellt


von Hardy F. (hflor)


Lesenswert?

Hallo,

vielleicht hat schon mal jemand dieses Problem und kennt die Lösung.
An meinem Raspi 4 mit debian 11 sind einmal direkt ein 
USB-Serial-Wandler mit pl2303 und an einen USB-Hub nochmal 2 
RS485-USB-Wandler mit ch341 und pl2303.
Den Seriellen Wander wird an ein Steuerrechner mit virtualhere 
weitergreicht.
Die beiden verbleibenden sind nach einem reboot als /dev/ttyUSBx 
sichtbar.
Wenn ich sie dann entferne und neu verbinde sind sie nicht wieder da. 
Auch ein neuladen der Treiber pl2303, ch341 und usbserial bringen die 
Einträge nicht wieder. Nur zur Vollständigkeit, es ist auch noch ein 
Zigbee-Empfänger am USB.

Gibt es da eine Lösung ohne reboot?

Nach dem neuladen der Treiber gibt dmesg nicht viel aus:
1
[  977.003807] usbcore: registered new interface driver pl2303
2
[  977.003943] usbserial: USB Serial support registered for pl2303
3
[  982.310835] usbcore: registered new interface driver ch341
4
[  982.310927] usbserial: USB Serial support registered for ch341-uart

und das nach dem neuverbinden des USB-Hubs:
1
[ 1792.711677] usb 2-1: new SuperSpeed USB device number 4 using xhci_hcd
2
[ 1792.971152] usb 2-1: New USB device found, idVendor=2109, idProduct=8110, bcdDevice=90.91
3
[ 1792.971172] usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
4
[ 1792.971178] usb 2-1: Product: USB3.0 Hub
5
[ 1792.971183] usb 2-1: Manufacturer: VIA Labs, Inc.
6
[ 1792.981696] hub 2-1:1.0: USB hub found
7
[ 1792.981987] hub 2-1:1.0: 4 ports detected
8
[ 1793.047385] usb 1-1.1: new high-speed USB device number 23 using xhci_hcd
9
[ 1793.149134] usb 1-1.1: New USB device found, idVendor=2109, idProduct=2811, bcdDevice=90.90
10
[ 1793.149154] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
11
[ 1793.149160] usb 1-1.1: Product: USB2.0 Hub
12
[ 1793.149165] usb 1-1.1: Manufacturer: VIA Labs, Inc.
13
[ 1793.150993] hub 1-1.1:1.0: USB hub found
14
[ 1793.151252] hub 1-1.1:1.0: 4 ports detected
15
[ 1793.455411] usb 1-1.1.1: new full-speed USB device number 24 using xhci_hcd
16
[ 1793.571889] usb 1-1.1.1: New USB device found, idVendor=067b, idProduct=2303, bcdDevice= 4.00
17
[ 1793.571909] usb 1-1.1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
18
[ 1793.571915] usb 1-1.1.1: Product: USB-Serial Controller D
19
[ 1793.571920] usb 1-1.1.1: Manufacturer: Prolific Technology Inc.
20
[ 1793.667461] usb 1-1.1.2: new full-speed USB device number 25 using xhci_hcd
21
[ 1793.785888] usb 1-1.1.2: New USB device found, idVendor=1a86, idProduct=7523, bcdDevice= 2.54
22
[ 1793.785917] usb 1-1.1.2: New USB device strings: Mfr=0, Product=2, SerialNumber=0
23
[ 1793.785924] usb 1-1.1.2: Product: USB2.0-Ser!

[Mod: Code-Tags hinzugefügt]
: Bearbeitet durch Moderator
von Hans W. (hanswieland)


Lesenswert?

Möglicherweise sind die vermissten Device noch in laufenden Programmen 
geöffnet. Dann können sie zwar (für andere Programme scheinbar) gelöscht 
aber nicht neu erstellt werden.
von Gerd E. (robberknight)


Lesenswert?

Beobachte doch mal mit "udevadm monitor" was beim ersten Einstecken 
passiert wenn es klappt und vergleiche das mit der Ausgabe wenn es 
später nicht mehr klappt.
von Alexander S. (alesi)


Lesenswert?

Hardy F. schrieb:
> Nach dem neuladen der Treiber gibt dmesg nicht viel aus:

Neben dmesg gibt es auch noch lsusb, z.B.
1
sudo lsusb
2
sudo lsusb -v
3
sudo lsusb -v -s 001:001
von Hardy F. (hflor)


Lesenswert?

Vielen Dank für Eure Hilfe, das udevadm hatte mir sehr geholfen.

Die Lösung ist in virtualhere das Gerät zu ignorieren. Dann wird auch 
beim Anstecken der Eintrag /dev/ttyUSBx errzeugt.

Nur bei den USB-Serial- und USB-RS485-Wandler mit dem pl2303 ist die 
gleiche Kombination venid/devid und der eine soll aber weitergereicht 
werden.

Hier muß ich mal noch etwas bei virtualhere suche, ob ich auch Ports 
ignorieren kann.
von Gerd E. (robberknight)


Lesenswert?

Hardy F. schrieb:
> Nur bei den USB-Serial- und USB-RS485-Wandler mit dem pl2303 ist die
> gleiche Kombination venid/devid und der eine soll aber weitergereicht
> werden.
>
> Hier muß ich mal noch etwas bei virtualhere suche, ob ich auch Ports
> ignorieren kann.

virtualhere und dessen Möglichkeiten kenne ich nicht. Ich würde eine 
udev-Regel erstellen die die Ports anhand der udev-Kriterien erkennt und 
dann entsprechend kennzeichnet. Entweder mit "TAG+=" wenn das 
virtualhere das versteht, oder z.B. mit bestimmten Benutzergruppen oder 
Symlinks.
von Stefan P. (form)


Lesenswert?

Hardy F. schrieb:
> Hier muß ich mal noch etwas bei virtualhere suche, ob ich auch Ports
> ignorieren kann.

IgnoredBuses=1-1.1,1-1.2,1-1.3,1-1.4,1-1.5,1-1.6,1-1.7
Das ignoriert alle Ports 1-1.1 bis 1-1.7 auf einem Raspi.
Nimm den entsprechenden Port aus der Liste raus und VirtualHere findet 
dann nur noch das eine Gerät.
von Hardy F. (hflor)


Lesenswert?

Vielen Dank an Stefan, diese Option kannte ich noch nicht.

Da alle RS485-Wandler an einen USB-Hub hängen, dachte ich der Raspi-Port 
reicht. Aber man muß wirklich jeden Port einzeln angeben, das war aber 
nur eine Zahl mehr dran. Jetzt ist nur noch das eine Gerät sichtbar...
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.