Ich versuche, eine RS485-PCI-Karte auf einem Computer zum Laufen zu bringen, auf dem Debian Jessie installiert ist (mit systemd). Ich habe den Kernel mit einem Patch des Kartenherstellers angepasst. Dies scheint zu funktionieren, da die Karte erkannt wird und alle acht seriellen Anschlüsse initialisiert werden.
Der Kernel sollte die folgenden Eigenschaften festlegen:
Als ich versuchte, mit diesen Ports zu arbeiten, sah ich immer die Baudrate von 921600. Seitdem habe ich Folgendes geändert: Ich habe den ModemManager deinstalliert (da er die seriellen Ports nicht gestoppt hat und auf diesem Computer kein Modem vorhanden ist) . Ich habe /etc/udev/rules.d/ Regeln hinzugefügt, um symbolische Links zu erstellen und Benutzer und Gruppe dieser RS485-Ports zu ändern. Ich habe die Gruppen so angepasst, dass ich diese Ports nicht nur als root lesen und schreiben kann.
Seitdem merke ich merkwürdiges Verhalten. Die Baudrate wird mit 921600 initialisiert (ich schaue dies mit "dmsg" nach), aber wenn ich es auslese, wird es auf 9600 gesetzt (mit "stty -F / dev / stty11 -a").
Zum Schluss habe ich folgende Ausgaben:
me@my-system:$ sudo udevadm info -a -p $(udevadm info -q path -n /dev/ttyS11) Udevadm info starts with the device specified by the devpath and then walks up the chain of parent devices. It prints for every device found, all possible attributes in the udev rules key format. A rule to match, can be composed by the attributes of the device and the attributes from one single parent device. looking at device '/devices/pci0000:00/0000:00:1b.2/0000:06:00.0/0000:07:0f.0/tty/ttyS11': KERNEL=="ttyS11" SUBSYSTEM=="tty" DRIVER=="" ATTR=="17" ATTR=="11" ATTR=="0x0" ATTR=="21" ATTR=="0x13000040" ATTR=="0xDF100000" ATTR=="0" ATTR=="0" ATTR=="14745600" ATTR=="64" ATTR=="50" ATTR=="3000" ATTR=="2" looking at parent device '/devices/pci0000:00/0000:00:1b.2/0000:06:00.0/0000:07:0f.0': KERNELS=="0000:07:0f.0" SUBSYSTEMS=="pci" DRIVERS=="serial" ATTRS=="17" ATTRS=="0x0702" ATTRS=="0" ATTRS=="0x070002" ATTRS=="(null)" ATTRS=="1" ATTRS=="32" ATTRS=="32" ATTRS=="00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000f" ATTRS=="0x90f0" ATTRS=="" ATTRS=="0-3" ATTRS=="0x1402" ATTRS=="0x0010" ATTRS=="-1" ATTRS=="0" looking at parent device '/devices/pci0000:00/0000:00:1b.2/0000:06:00.0': KERNELS=="0000:06:00.0" SUBSYSTEMS=="pci" DRIVERS=="" ATTRS=="18" ATTRS=="0x0000" ATTRS=="0" ATTRS=="0x060401" ATTRS=="(null)" ATTRS=="1" ATTRS=="32" ATTRS=="32" ATTRS=="00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000f" ATTRS=="0x8892" ATTRS=="1" ATTRS=="0-3" ATTRS=="0x1283" ATTRS=="0x0000" ATTRS=="-1" ATTRS=="1" looking at parent device '/devices/pci0000:00/0000:00:1b.2': KERNELS=="0000:00:1b.2" SUBSYSTEMS=="pci" DRIVERS=="pcieport" ATTRS=="18" ATTRS=="0x8086" ATTRS=="0" ATTRS=="0x060400" ATTRS=="(null)" ATTRS=="1" ATTRS=="32" ATTRS=="32" ATTRS=="00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,00000000,0000000f" ATTRS=="0xa169" ATTRS=="1" ATTRS=="0-3" ATTRS=="0x8086" ATTRS=="0x7270" ATTRS=="-1" ATTRS=="0" looking at parent device '/devices/pci0000:00': KERNELS=="pci0000:00" SUBSYSTEMS=="" DRIVERS==""
Was ist hier falsch? Warum ändert sich die Baudrate? Wie kann ich das vermeiden? Ist "UART: undefined" in Ordnung?
Ignorieren Sie die im Kernel log / dmesg angegebene Baudraten-Nummer. Legen Sie den Inhalt der Dateien in `/ proc / tty / driver 'ab.
sawdust vor 7 Jahren
1
@sawdust Ich habe die entsprechenden Informationen von `/ proc / tty / driver 'hinzugefügt. In diesem Verzeichnis ist nur eine Datei "serial" enthalten.
Schnoof vor 7 Jahren
0
1 Antwort auf die Frage
1
Schnoof
Das Problem ist gelöst und es ist wirklich dumm. Derjenige, der mich gebeten hat, den Computer einzurichten, sagte mir, dass der Computer eine RS485-Karte enthält, aber eine RS232-Karte wurde bestellt und gekauft. Beide Karten werden unter demselben Namen unter Verwendung der gleichen Handbücher und Patches vertrieben. Es war also nicht leicht zu sehen. Ich habe mir die RS486-Karte einer anderen Maschine geliehen und alles funktioniert einwandfrei.
Ich fühle mich sehr unwohl dabei, aber es war zumindest nicht meine Schuld.