User Tools

Site Tools


lenz-static-linux-de
no way to compare when less than two revisions

Differences

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


lenz-static-linux-de [2018/11/12 08:56] (current) – created - external edit 127.0.0.1
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 by 127.0.0.1