Benutzer-Werkzeuge

Webseiten-Werkzeuge


treiberinstallation:linux

Installation unter Linux

Die aktuellen Distributionen erkennen die OpenDCC-Baugruppen und weisen Namen und Schnittstelle korrekt zu. Für ältere Distribution gibt es einfache Möglichkeiten, den vorhandenen FTIO-Treiber mittels /new auch für die OpenDCC-Baugruppen zuzuweisen.

Berechtigung für Benutzer

Damit der Zugriff auf die Serielle Schnittstelle möglich ist, muss der Benutzer in der Gruppe „dialout“ sein. Um die aktuell zugewiesenen Gruppen abzufragen kann folgendes Kommando verwendet werden:

less /etc/group | grep my_user

:!: Bitte my_user mit dem echten Benutzernamen ersetzen.

Falls die Ausgabe von less nicht terminiert (z.B. mehr Zeilen als auf dem Bildschirm Platz hat) kann man den Befehlt mit q beenden.

Falls der Benutzer nicht in der dialout-Gruppe ist, kann man mit folgendem Kommando den Benutzer my_user der dialout-Gruppe hinzufügen:

sudo adduser my_user dialout

Für Debian:

su -
adduser my_user dialout

Anschliessend muss ein neuer Login (Logout oder Reboot) erfolgen um die geänderten Berechtigungen zu übernehmen.

Informationen lesen

Wenn der GBMboost angesteckt ist kann man über ein Termial / Konsole weitere Informationen über folgende Kommandos erhalten:

  • ls -la /dev/ttyUSB* : zeigt alle seriellen USB-Geräte an. Hier wird auch angezeigt unter welchem Anschluss der GBMboost verfügbar ist.
  • lsusb : Zeigt Infomartionen über alle angeschlossenen USB-Devices an. Über die ID 0403:bfdd kann der GBMboost mit der OpenDCC-Kennung identifiziert werden.
    Das IF2 und der GBMboost (mit Standard-Kennung) wird über die ID 0403:6001 identifiziert.
  • udevadm monitor : Monitoring der Events. Beim Ein- oder Ausstecken des GBMboost werden Statusmeldungen erzeugt in denen man erkennen kann unter welchem tty der GBMboost angelegt wurde.

Über den Befehl dmesg erhält man noch mehr Informationen wie z.B. die Seriennummer des GBMboost:

[ 3913.536190] usb 4-1: new full-speed USB device number 3 using uhci_hcd
[ 3913.944113] usb 4-1: New USB device found, idVendor=0403, idProduct=bfdd
[ 3913.944123] usb 4-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 3913.944129] usb 4-1: Product: USB-IF OpenDCC GBMBoost V1.0
[ 3913.944135] usb 4-1: Manufacturer: FTDI
[ 3913.944141] usb 4-1: SerialNumber: A9XI8TBD
[ 3913.957567] ftdi_sio 4-1:1.0: FTDI USB Serial Device converter detected
[ 3913.957746] usb 4-1: Detected FT232RL
[ 3913.957754] usb 4-1: Number of endpoints 2
[ 3913.957760] usb 4-1: Endpoint 1 MaxPacketSize 64
[ 3913.957766] usb 4-1: Endpoint 2 MaxPacketSize 64
[ 3913.957772] usb 4-1: Setting MaxPacketSize 64
[ 3913.962229] usb 4-1: FTDI USB Serial Device converter now attached to ttyUSB0

Manjaro Linux

Unter Manjaro Linux gibt es statt der dialout-Gruppe die uucp-Gruppe. Deshalb muss unter Manjaro Linux (und evtl. Arch Linux?) dieser Befehl verwendet werden:

sudo usermod -aG uucp xxx

xxx = Benutzername.

Linux Mint

Unter Linux Mint hat der User standardmässig keine Berechtigung um auf die serielle Schnittstelle zugreifen zu können. Der Befehl ls -la /dev/tty* führt zu folgender Ausgabe:

crw-rw—- 1 root dialout 188, 0 Jul 21 12:55 /dev/ttyUSB0

Um die Berechtigungen zu setzen, damit der User auf die Schnittstelle zugreifen kann, muss folgendes Kommando (als root, mit sudo) ausgefürt werden:
sudo chmod a+rw /dev/ttyUSB0

Anschliessend führt ls -la /dev/tty* zu folgender Ausgabe:

crw-rw-rw- 1 root dialout 188, 0 Jul 21 12:58 /dev/ttyUSB0

Raspbian

Unter neuem Raspian

pi@raspberrypi:~/Downloads $ uname -a
Linux raspberrypi 5.4.51-v7l+ #1333 SMP Mon Aug 10 16:51:40 BST 2020 armv7l GNU/Linux

haben die Berechtigungen für den Zugriff auch gefehlt:

pi@raspberrypi:~/Downloads $ ls -la /dev/tty*
...
crw-rw---- 1 root dialout 204, 64 Sep  2 19:35 /dev/ttyAMA0
...
pi@raspberrypi:~/Downloads $
pi@raspberrypi:~/Downloads $ sudo chmod a+rw /dev/ttyAMA0
pi@raspberrypi:~/Downloads $
pi@raspberrypi:~/Downloads $ ls -la /dev/tty*
...
crw-rw-rw- 1 root dialout 204, 64 Sep  2 21:17 /dev/ttyAMA0

Soll der GBMboost unter einem symbolischen Link statt dev/ttyUSB0 zur Verfügung stehen, kann eine udev-Rule unter /etc/udev/rules.d angelegt werden. Für diese Aktion werden Superuser-Rechte (sudo) benötigt.

sudo 
cd /etc/udev/rules.d
touch 90-bidib.rules
edit 90-bidib.rules

Für Debian:

su - 
cd /etc/udev/rules.d
touch 90-bidib.rules
edit 90-bidib.rules

Für Mint:

cd /etc/udev/rules.d
sudo touch 90-bidib.rules
sudo nano 90-bidib.rules

Mit dem edit-Befehl wird ein Editor geöffnet.

:!: Falls vi geöffnet wurde, kann man mit i in den Insert-Modus wechseln um die udev-Rule einzufügen. Mit der Esc-Taste kann der Insert-Modus verlassen werden. Mit :wq werden die Anpassungen gespeichert.

In meinem Fall habe ich folgende Rule definiert, welche einen symbolischen Link /dev/bidib_interface_master erzeugt der im BiDiB-Wizard oder anderen Tools (Rocrail) verwendet werden kann.

90-bidib.rules
KERNEL=="ttyUSB*" ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bfdd", SYMLINK+="bidib_interface_master", GROUP="dialout"

Mit cat 90-bidib.rules kann der Inhalt der Datei angezeigt werden.

Um den sudo-Mode zu verlassen muss exit eingegeben werden.

Falls mehr als 1 GBMboost verwendet wird (z.B. zusätzlicher GBMboost für Programmiergleis) muss die udev-Rule die SerialNumber als zusätzliches ATTRS{serial} beinhalten, damit die GBMboost unterschieden werden können. In diesem Fall kann über den Befehl dmesg die SerialNumber der beiden GBMboost ermittelt werden (siehe oben).

Im folgeden Beispiel wird der GBMboost mit der SerialNumber A9WG8ULI als bidib_interface_master und der 2. GBMboost mit der SerialNumber A9XI8TBD als bidib_interface_prog im System erscheinen.

90-bidib.rules
KERNEL=="ttyUSB*" ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bfdd", ATTRS{serial}=="A9WG8ULI", SYMLINK+="bidib_interface_master", GROUP="dialout"
KERNEL=="ttyUSB*" ATTRS{idVendor}=="0403", ATTRS{idProduct}=="bfdd", ATTRS{serial}=="A9XI8TBD", SYMLINK+="bidib_interface_prog", GROUP="dialout"

Unbekannte Product und Vendor ID

Die OpenDCC-Product und Vendor IDs sind in den meisten Linux-Distributionen bekannt. Falls eine unbekannte Product und Vendor ID verwendet wird, kann mit folgender Rule gearbeitet werden:

91-unknown-tams.rules
ACTION=="add", SUBSYSTEM=="usb", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="7908", RUN+="/sbin/modprobe ftdi_sio", RUN+="/bin/sh -c 'echo 0403 7908 > /sys/bus/usb-serial/drivers/ftdi_sio/new_id'"

Der erste RUN-Command lädt den ftdi_sio-Treiber (und erstellt das Verzeichnis usb-serial/drivers/ftdi_sio), der zweite RUN-Command piped die Product und Vendor ID in new_id. Anschliessend wird das Device als Serial-Device erkannt.

treiberinstallation/linux.txt · Zuletzt geändert: 2023/09/23 11:50 von akuhtz

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki