User Tools

Site Tools


lenz-static-linux-de

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

lenz-static-linux-de [2018/11/12 08:56] (current)
Line 1: Line 1:
 +======Lenz======
 +
 +
 + \\
 +===== Statische Methode (Treiber beim booten laden) =====
 +
 +Diese Methode wurde mit openSUSE 11.1 erfolgreich getestet.
 +
 +Für die Kommunikation mit dem LI-USB ist es erforderlich,​ die Datei ''​rocrail.ini''​ anzupassen. Nach der Installation von Rocrail gibt es aber noch keine solche Datei. Wir starten daher zunächst den Rocrail Server. Dadurch wird ein Ordner ''​rocrail''​ in dem Home-Verzeichnis des Benutzers angelegt. Dann starten wir den Rocview Client, wo wir in dem "​Datei"​-Menü links oben den Eintrag "​Rocrail Eigenschaften ..." auswählen. Dadurch öffnet sich ein Dialogfenster. Wir lassen uns nicht durch die Vielzahl der Register und Optionen verwirren, sondern schliessen das Fenster durch drücken auf "​OK"​. Dadurch wird im Verzeichnis "​rocrail"​ die Datei "​rocrail.ini"​ angelegt. Jetzt schliessen wir Rocrail mit "​Datei"​ -> "​Shutdown Rocrail und beenden"​.
 +
 +Nachdem wir nun eine Datei "​rocrail.ini"​ haben, können wir einen Editor benutzen, um die folgende Zeile zu ersetzen:
 + 
 +<code xml>
 +<digint lib="​virtual"​ iid="​vcs-1"​ stress="​false"​ libpath="/​opt/​rocrail"/>​
 +</​code>​
 +
 +durch diese neue Zeile:
 +
 +<code xml>
 +<digint iid="​lenz-1"​ lib="​lenz"​ sublib="​usb"​ device="/​dev/​ttyUSB0"/>​
 +</​code>​
 +
 +Möglicherweise muss ''/​dev/​ttyUSB0''​ noch angepasst werden, falls wir noch andere USB-Geräte angeschlossen haben. Dies können wir aber jetzt noch nicht testen und lassen es daher vorerst unverändert.
 +
 +In dem Interface benutzt Lenz einen Chip von Future Technology Devices International,​ Ltd. Dieser arbeitet mit dem Treiber ''​ftdi_sio''​. Leider kennt der Kernel (2.6.27) die Produkt- und Herstellerkennung (product-ID und vendor-ID) von Lenz aber nicht und lädt daher auch den Treiber nicht. Basierend auf
 + ​http://​forums.opensuse.org/​hardware/​395149-ftdi-usb-serial-adapter-unknown-vendor-device-id.html machen wir Folgendes:
 +
 +Wir verwenden einen Editor, um die Datei ''/​etc/​sysconfig/​kernel''​ so anzupassen, dass der Treiber ''​ftdi_sio''​ jedesmal beim booten geladen wird. Wir müssen uns dazu als root anmelden oder sudo benutzen. Die einzige erforderliche Änderung an der Datei ist, ''​ftdi_sio''​ zwischen ''""''​ so einzufügen wie in dem folgenden Auszug aus ''/​etc/​sysconfig/​kernel''​ gezeigt.
 +
 +<​code>​
 +## Type:​ string
 +## ServiceRestart:​ boot.loadmodules
 +#
 +# This variable contains the list of modules to be loaded
 +# once the main filesystem is active
 +# You will find a few default modules for hardware which
 +# can not be detected automatically.
 +#
 +MODULES_LOADED_ON_BOOT="​ftdi_sio"​
 +</​code>​
 +
 +Nun müssen wir dem Treiber noch die Produkt- und Herstellerkennung (product-ID und vendor-ID) von Lenz mitteilen. Dies geschieht durch einen Eintrag in ''/​etc/​modprobe.conf.local''​. Auch dazu benutzen wir als root einen Editor. Die Datei ''/​etc/​modprobe.conf.local''​ sieht dann z.B. so aus:
 +
 +<​code>​
 +#
 +# please add local extensions to this file
 +#
 +options ftdi_sio vendor=0x0403 product=0xd780
 +
 +</​code>​
 +
 +Die in dem Beispiel eingetragenen Produkt- und Herstellerkennungen sollten für alle Lenz LI-USB gelten.
 +
 +Möglicherweise hat aber Lenz aber auch einige Geräte mit den Werten vendor=0x1111 und product=0x1234 ausgeliefert.
 +Um dies zu überprüfen,​ schliessen wir die LI-USB an und geben in einer Konsole ''​lsusb''​ ein, z.B.:
 +
 +<​code>​
 +hans@Taurus:/>​ lsusb
 +Bus 008 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 +Bus 007 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
 +Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +Bus 005 Device 004: ID 0403:d780 Future Technology Devices International,​ Ltd
 +Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +Bus 003 Device 003: ID 046a:0050 Cherry GmbH
 +Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +Bus 002 Device 003: ID 0c4b:0100 Reiner SCT Kartensysteme GmbH cyberJack e-com/​pinpad
 +Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
 +hans@Taurus:/> ​  
 +</​code>​
 +
 +Nun wird das Gerät ''/​dev/​ttyUSB0''​ korrekt angelegt. Allerdings können wir immer noch nicht mit dem Gerät kommunizieren,​ da es mit Schreib-/​Leseberichtigung nur für den Benutzer root und die Gruppe uucp angelegt wird. Wir müssen daher alle Benutzer, die Rocrail verwenden möchten, in die Gruppe uucp eintragen.
 +
 +Dies können wir z.B. in Yast machen, über "​Sicherheit und Benutzer"​ -> "​Benutzer und Gruppenverwaltung"​ -> Dopppelklick auf den auszuwählenden Benutzer -> Häkchen setzen in dem Kästchen uucp (dazu muss man wahrscheinlich nach unten scrollen, um uucp zu sehen). Dann bestätigen wir zweimal mit OK.
 +
 +Jetzt:
 +  * starten wir den PC neu
 +  * schliessen wir das LI-USB an und schalten die Lenz Geräte alle ein
 +  * überprüfen wir in dem Verzeichnis ''/​dev''​ ob ''​ttyUSB0''​ das korrekte Gerät ist. Es könnte auch z.B. ''​ttyUSB1''​ oder ähnlich sein, falls wir mehrere Geräte am USB angeschlossen haben. In diesem Falll müssen wir ''​rocrail.ini''​ anpassen, um auf das richtige Gerät zu zeigen.
 +  * starten wir den Rocrail Server
 +  * starten wir  Rocview
 +  * in dem Menü "​Tabellen"​ wählen wir "​Lokomotiven ..." und erzeugen eine Lokomotiventabelle
 +  * die neu eingetragenen Lokomotiven erscheinen nun über der Uhr -> Doppelklick auf eine Lokomotive
 +  * nun dürfen wir nicht vergessen, im Menü "​Steuerung"​ die "​Gleisspannung ein" zu schalten
 +  * und hoffentlich kann's losgehen zu ersten Fahrt !!!!!!
 + 
  
lenz-static-linux-de.txt · Last modified: 2018/11/12 08:56 (external edit)