Hallo Foren-Gemeinde.
Ich bin gerade auf einem meiner Router von OpenWRT 18.06.2 auf 18.06.4 (https://openwrt.org/releases/18.06/notes-18.06.4) umgestiegen und habe feststellen müssen, dass ser2net nicht mehr wie gewohnt funktioniert. Ich konnte es lösen und möchte hier meine Erfahrungen teilen - hoffentlich kann es jmd. gebrauchen.
Nachdem man die Firmware von OpenWRT aktualisiert hat, muss man ser2net nachinstallieren.
Hinweis: solange man nicht selbst baut, müssen die Schritte nach
jedem sysupgrade wiederholt werden.
Für meinen nanoCUL ist das auf der Console (via ssh):
opkg update
opkg install ser2net kmod-usb2 kmod-usb-serial kmod-usb-serial-ftdi
Hierbei kann es Warnungen geben, dass
/etc/ser2net.conf vom Packet abweicht und daher die Packet-Version nach
/etc/ser2net.conf-opkg kopiert worden ist.
Nach der Installation sollte man zunächst kontrollieren, dass der CUL einem Device zugewiesen ist. Ich tat dies via
dmesg | grep usb
und erhalte eine Ausgabe wie:
usb 1-1: Detected FT232RL
usb 1-1: FTDI USB Serial Device converter now attached to ttyUSB0
Der CUL ist via
/dev/ttyUSB0 erreichbar.
Mit der nun ausgelieferten ser2net Version (mWn 3.5 (https://openwrt.org/packages/pkgdata/ser2net)) wird ser2net auch über UCI konfiguriert (siehe auch source (https://github.com/openwrt/packages/tree/openwrt-18.06/net/ser2net/files)). Dies bedeutet, dass man die Port-Konfiguration entweder im config file (
/etc/ser2net.conf) oder über die UCI Datei ausprägen kann (
/etc/config/ser2net). Das deutlich komplexere Startup-Script (
etc/initd/ser2net) parst dabei beide Dateien und kopiert diese zu einer neuen config datei unter tmp (
/tmp/ser2net.conf) zusammen. Dies heisst, ohne Zutun startet ser2net nicht sauber und FHEM hat keine Verbindung zum CUL. Zum Bearbeiten der Dateien nutze ich den mitgeliefertn vi (https://de.wikibooks.org/wiki/Vi-Befehlsreferenz:_Bearbeitung) auf der Console via SSH.
Zunächst stoppe ich den Service
/etc/init.d/ser2net stop
Die config datei
/etc/ser2net.conf habe ich angepasst in dem ich die relevante Zeile einfach auskommentiert habe - folgenden Inhalt hat diese Datei (ich nutze den Port 28682):
#28682:raw:0:/dev/ttyUSB0:38400 8DATABITS NONE 1STOPBIT HANGUP_WHEN_DONE
(Die Datei
/etc/ser2net.conf-opkg habe ich mittels
rm /etc/ser2net.conf-opkg gelöscht)
Die UCI-Datei
/etc/config/ser2net habe ich wie folgt angepasst:
- Auskommentieren der config default Sektion
- config controlport enabled bleibt 0 (deaktiviert)
- ein config proxy wird aktiviert (enabled 1 und die Daten aus dem ser2net.conf werden kopiert - siehe Eintrag unter # nanoCUL)
- alle anderen config proxy bleiben auf enabled 0
config controlport
option enabled 0
option host localhost
option port 2000
#config default
# option speed 115200
# option databits 8
# option parity 'none'
# option stopbits 1
# option rtscts false
# option local false
# option remctl true
#config led rx
# option driver sysfs
# option device 'duckbill:green:rs485'
# option duration 20
# option state 1
#config led tx
# option driver sysfs
# option device 'duckbill:red:rs485'
# option duration 20
# option state 1
config proxy
option enabled 0
option port 5000
option protocol telnet
option timeout 0
option device '/dev/ttyAPP0'
option baudrate 115200
option databits 8
option parity 'none'
option stopbits 1
# option led_tx 'tx'
# option led_rx 'rx'
option rtscts false
option local false
option xonxoff false
list options ''
# nanoCUL
config proxy
option enabled 1
option port 28682
option protocol raw
option timeout 0
option device '/dev/ttyUSB0'
option baudrate 38400
option databits 8
option parity 'none'
option stopbits 1
config proxy
option enabled 0
option port 5002
option protocol raw
option timeout 0
option device '/dev/ttyUSB1'
option baudrate 9600
option databits 8
option parity 'none'
# option stopbits 1
Achtung: die
/etc/config/ser2net überlebt kein sysupgrade und muss vorher gesichert werden (sollte im Backup drin sein, überprüfen).
Mittels
/etc/init.d/ser2net enable
/etc/init.d/ser2net start
starte ich den service ser2net neu, dann sieht man den Prozess mittels
ps:
3114 root 992 S /usr/sbin/ser2net -n -c /tmp/ser2net.conf
Die generierte config Datei
/tmp/ser2net.conf hat dann folgenden Inhalt (die erste Zeile ist aus der
/etc/ser2net.conf:
#28682:raw:0:/dev/ttyUSB0:38400 8DATABITS NONE 1STOPBIT HANGUP_WHEN_DONE
#
# Following part is auto-generated from UCI settings in /etc/config/ser2net
#
28682:raw:0:/dev/ttyUSB0:38400 8DATABITS NONE 1STOPBIT
Hinweis: der Port auf dem Router muss noch in der Firewall geöffnet werden, sonst wird der Zugriff geblockt. Beispielhafter Auszug aus der
/etc/config/firewall (kann aber auch über LUCI gepflegt werden;
dest ip ist die IP des Routers):
config rule
option target 'ACCEPT'
option proto 'tcp udp'
option name 'ser2net_nanoCUL'
option family 'ipv4'
option src 'lan'
option dest_ip '192.168.10.1'
option dest_port '28682'
FHEM kann dann direkt auf den CUL Zugreifen, Definition via
define ser2netCUL CUL 192.168.10.1:28682 0000
Hilfreiche FHEM-Wiki-Einträge:
https://wiki.fhem.de/wiki/OpenWRT#CUL
https://wiki.fhem.de/wiki/CUL_ueber_Netz#ser2net
Ich hoffe, es hilft dem ein oder anderen. :)
Ich weiss gar nicht genau ob das eher ein CUL, Netzwerk oder Linux Thema ist - deswegen stelle ich das Thema erstmal hier ein. ::)
Zitat von: eehmke am 05 Oktober 2020, 17:42:01ich bin dieser Anleitung gefolgt und war nur teilweise erfolgreich. [...] am USB-Port steckt ein PL2303 Kabel. Das Kabel steckt an meinem PC auf /dev/ttyS0. Auf dem Port läuft ein Minicom. Auf dem ser2net Port ist en Telnet geöffnet. Es werde Daten übertragen, jedoch egal welche Baudrate ich in Minicom einstelle, sind es unlesbare Zeichen.
Irgendwelche Ideen?
Wenn ich in einer Suchmaschine nach
OpenWRT PL2303 suche, finde ich kmod-usb-serial-pl2303 (https://openwrt.org/packages/pkgdata/kmod-usb-serial-pl2303) sowie USB serial adapter PL2303 (http://www.ibuyopenwrt.com/index.php/8-yun-compatible/142-usb-serial-adapter-pl2303).
Hast du den richtigen Treiber
kmod-usb-serial-pl2303 installiert? Wenn du dieser Anleitung gefolgt bist, hast du auch einen ftdi Treiber installiert welchen du wahrscheinlich gar nicht benötigst.
opkg update
opkg remove kmod-usb-serial-ftdi
opkg install ser2net kmod-usb2 kmod-usb-serial kmod-usb-serial-pl2303
Danke für die Antwort.
Ich habe
opkg remove kmod-usb-serial-ftdi
ausgeführt.
opkg install ser2net kmod-usb2 kmod-usb-serial kmod-usb-serial-pl2303
hat nur bestätigt, dass diese Pakete bereits in der aktuellen Version installiert sind. Am Verhalten hat sich nichts verändert.
Das Kommando stty zeigt immer die Speed von /dev/ttyUSB0 als 9600 baud, unabhängig von der Einstellung in ser2net. Auch wenn ich Minicom auf diese Baudrate einstelle, werden nur unlesbare Zeichen übertragen.
Hast du dich mal hier->USB serial adapter PL2303 (http://www.ibuyopenwrt.com/index.php/8-yun-compatible/142-usb-serial-adapter-pl2303) langgehangelt?
Den Adapter abstecken, den ganzen driss deinstallieren, neu anfangen:
Zitat von: ibuyopenwrtopkg update
opkg remove kmod-usb-serial-ftdi
opkg remove kmod-usb-serial-pl2303
opkg install kmod-usb-serial-pl2303
lsmod
pl2303 6688 0
usbserial 17633 1 pl2303
Zwischendurch mal den Router(?) neustarten könnte helfen, bezgl ser2net hilft auch mal den Service bzw das Netzwerk-Interface neuzustarten.
Und dann muss erst der pl2303 richtig laufen bevor ser2net konfiguriert wird.
Es läuft! Mein Fehler war, anzunehmen dass die USB-Seriel Adapter alle PL2303 kompatibel wären. Mein Adapter brauchte aber den kmod-usb-serial-ch341 Treiber. Kaum macht man es richtig... Danke, deine Hinweise waren hilfreich, den Fehler zu finden.