|
|
(18 intermediate revisions by the same user not shown)
|
Line 55: |
Line 55: |
| ==USB Adapter mithilfe der On-Board UART Schnittstelle== | | ==USB Adapter mithilfe der On-Board UART Schnittstelle== |
| | | |
− | === Hardware requirements === | + | ===Hardware Anforderungen=== |
| | | |
− | The on-board UART runs at 0V/3.3V levels, and the AVR USB board has to run at 5V to operate at 16MHz (running at 3.3V would only allow to operate at 8MHz).<br />
| + | <b>ACHTUNG DIES IST EINE ÜBERSETZUNG - Bei unklarheiten das Original in Englisch durch lesen!</b> |
− | Connecting the RPi and the AVR USB board directly may damage the hardware!<br />
| + | |
− | One cheap solution is to use a voltage divider:<br />
| + | Das On-Board UART läuft mit Spannungen von 0V/3.3V, das AVR USB-Board muss mit einer Spannung von 5V und 16MHz laufen (Spannungen von 3.3V würden nur mit 8MHz arbeiten).<br /> |
− | * Connect both GNDs | + | Das direkte Verbinden der RPi mit dem AVR USB-Board könnte die Hardware beschädigen! |
− | * It's safe to connect the TXD pin of the RPi to the Rx pin of the AVR USB board (the GIMX firmwares configure the Rx pin as an input) | + | Eine günstige Lösung ist es einen Spannungsteiler zu verwenden:<br /> |
− | * To connect the Tx pin of the AVR USB board to the RXD pin of the RPi, you'll need to convert the voltage level from 0..5V to 0..3.3V.<br /> | + | * Beide GNDs verbinden |
− | This can be done with a simple resistive divider:
| + | * Es ist sicher den TXD Pin der RPI mit dem Rx Pin vom AVR USB-Board zu verbinden (Die GIMX Firmware konfiguriert den Rx Pin als eingabe) |
| + | *Um den Tx pin vom AVR USB-Board zum RXD pin der RPi zu verbinden, muss man die Spannung von 0..5V auf 0..3.3V anpassen.<br /> |
| + | Dies kann mit einem Spannungsteiler gemacht werden: |
| <div class="image200px">[https://gimx.fr/img/wiki/Resistive_divider.png https://gimx.fr/img/wiki/Resistive_divider.png]</div> | | <div class="image200px">[https://gimx.fr/img/wiki/Resistive_divider.png https://gimx.fr/img/wiki/Resistive_divider.png]</div> |
− | Vin is the Tx pin of the AVR USB board, Vout is the RXD pin of the RPi, R1=2.2kΩ , R2=3.3kΩ | + | Vin ist der TX Pin vom AVR USB-Board, Vout ist der RXD Pin der RPi, R1=2.2kΩ , R2=3.3kΩ |
− | * Do not connect any other pin! | + | *Keine anderen Pins verbinden ! |
| | | |
− | === Sotware adjustments === | + | ===Software Einstellungen=== |
| | | |
− | By default, the RPi UART is configured as a serial console.<br />
| + | Standardmässig ist der RPi UART als Serielle Konsole konfiguriert.<br /> |
− | Disable this serial console using raspi-config:
| + | Deaktivierung der Seriellen Konsole mittels raspi-config: |
| <pre> | | <pre> |
| sudo raspi-config | | sudo raspi-config |
| </pre> | | </pre> |
− | Then select:
| + | Dann folgendes auswählen: |
| <pre> | | <pre> |
| "Advanced Options", "Serial", "No", "Finish" | | "Advanced Options", "Serial", "No", "Finish" |
| </pre> | | </pre> |
− | The default configuration does not allow high baudrates.<br />
| + | Die Standardkonfiguration erlaubt keine hohe Baudrate.<br /> |
− | Enable high baudrates editing /boot/config.txt:
| + | Hohe Baudrate durch das anpassen von /boot/config.txt aktivieren: |
| <pre> | | <pre> |
| sudo nano /boot/config.txt | | sudo nano /boot/config.txt |
| </pre> | | </pre> |
− | Add the following line at the end of the file:
| + | Folgende Zeile am Schluss der Datei hinzufügen: |
| <pre> | | <pre> |
| init_uart_clock=8000000 | | init_uart_clock=8000000 |
| </pre> | | </pre> |
− | Reboot to apply the changes:
| + | Neustart um die Änderungen wirksam zu machen: |
| <pre> | | <pre> |
| sudo reboot | | sudo reboot |
| </pre> | | </pre> |
| | | |
− | == GIMX installation == | + | ==GIMX Installation== |
| <pre>wget https://gimx.fr/download/gimx-raspbian -O gimx.deb | | <pre>wget https://gimx.fr/download/gimx-raspbian -O gimx.deb |
| sudo dpkg -i gimx.deb | | sudo dpkg -i gimx.deb |
Line 101: |
Line 103: |
| <pre>sudo apt-get update && sudo apt-get upgrade</pre> | | <pre>sudo apt-get update && sudo apt-get upgrade</pre> |
| | | |
− | == Stop/disable triggerhappy service == | + | ==Triggerhappy Dienst stoppen/deaktivieren== |
− | [https://github.com/wertarbyte/triggerhappy/blob/master/README Triggerhappy] is a daemon that opens every input device for reading, and that consumes a few percent of the CPU time. | + | [https://github.com/wertarbyte/triggerhappy/blob/master/README Triggerhappy] ist ein dienst der jedes Eingabegerät zum lesen öffnet und dadurch etwas an CPU Zeit resp. Leistung verbraucht. |
| + | |
| + | Es ist von vorteil den Dienst zu beenden, wenn GIMX benutzt wird. |
| | | |
− | It seems a good idea to stop it while running GIMX.
| + | Um Triggerhappy zu stoppen: |
| + | <pre>sudo service triggerhappy stop</pre> |
| + | Um Triggerhappy zu deaktivieren: |
| + | <pre>sudo update-rc.d triggerhappy disable</pre> |
| | | |
− | To stop triggerhappy:
| + | ==GIMX Starten== |
− | sudo service triggerhappy stop
| + | Den [[Quick_Start|Quick start page]] lesen um GIMX mit Benutzeroberfläche zu starten.<br /> |
− | To disable triggerhappy:
| + | Es ist eine gute Idee GIMX direkt via Terminal, ohne grafische Oberfläche zu starten. Dies kann über Netzwerk, mit einem SSH Client oder mittels [[#Autostart GIMX at boot without GUI]] bewerkstelligt werden<br /> |
− | sudo update-rc.d triggerhappy disable
| |
| | | |
− | == Run GIMX ==
| + | Idealerweise sollte GIMX nicht via Netzwerkport gestartet werden (Da es an der USB Schnittstelle verbunden ist).<br /> |
− | Read the [[Quick_Start|Quick start page]] to learn how to run GIMX through the GUI.<br />
| + | Weitere Informationen für Terminalbefehle [[Command_line|this page]].<br /> |
− | A good idea is to run GIMX directly from a terminal, without starting a graphical session, which can be done over the network, using a ssh client, or you can [[#Autostart GIMX at boot without GUI]]<br />
| |
− | Ideally, GIMX should be launched without using the Ethernet port (because it is connected on the USB bus).<br />
| |
− | More details on command line options on [[Command_line|this page]].<br />
| |
| | | |
− | == Autostart GIMX at boot without GUI == | + | ==Automatisches starten von GIMX ohne Benutzeroberfläche== |
− | Simply create a file /etc/systemd/system/gimx.service (as root) with the following content:
| + | Als root /etc/systemd/system/gimx.service Datei mit folgendem Inhalt erstellen: |
| | | |
| <pre> | | <pre> |
Line 136: |
Line 139: |
| </pre> | | </pre> |
| | | |
− | Replace ttyUSB0 with your device and LogitechDrivingForceGT_G29.xml with your mapping file (which should be available in the pi home directory as /home/pi/.gimx/config/LogitechDrivingForceGT_G29.xml)
| + | ttyUSB0 mit deinem Gerät ersetzen und LogitechDrivingForceGT_G29.xml mit deiner Konfigurationsdatei ersetzen (welche im pi home Verzeichnis liegen sollte: /home/pi/.gimx/config/LogitechDrivingForceGT_G29.xml). |
| | | |
− | Run <pre>sudo systemctl daemon-reload</pre> to notify systemd about the new file and <pre>sudo systemctl enable gimx && sudo systemctl start gimx</pre> to enable the gimx service start at boot and start it in the same line.
| + | Ausführen: <pre>sudo systemctl daemon-reload</pre> Um systemd die neue Datei bekannt zu machen und <pre>sudo systemctl enable gimx && sudo systemctl start gimx</pre> um den GIMX Dienst automatisch zu starten. |
| | | |
| == Notify when GIMX is running using a led == | | == Notify when GIMX is running using a led == |
Line 186: |
Line 189: |
| </pre> | | </pre> |
| | | |
− | As a bonus, you can add a button so when it is pressed, there is a little blink effect, and the pi is shutted down.
| + | Als Bonus kann man einen Knopf hinzufügen, welcher beim Drücken einen Blinkeffekt ergibt und den RPi herunterfährt. |
| | | |
| <div class="image200px">[https://gimx.fr/img/wiki/PiButtonLed.png https://gimx.fr/img/wiki/PiButtonLed.png]</div> | | <div class="image200px">[https://gimx.fr/img/wiki/PiButtonLed.png https://gimx.fr/img/wiki/PiButtonLed.png]</div> |
| | | |
| To start at boot, simply add it to the pi user crontab (crontab -e) as <pre>@reboot python /home/pi/blink.py &</pre> | | To start at boot, simply add it to the pi user crontab (crontab -e) as <pre>@reboot python /home/pi/blink.py &</pre> |
Warnung: RPi Unterstützung sollte als experimentell betrachtet werden.Es kann zu Problemen kommen, wenn GIMX auf dem RPi ausgeführt werden soll.
GIMX läuft unter verschiedenen Linux Geräten und der Raspberry Pi ist einer davon !
Hardware Empfehlungen
Nutze nur einen USB HUB wenn am RPi keine resp. zu wenige Ports verfügbar sind.
Es ist empfehlenswert einen USB HUB mit externer Stromversorgung zu nutzen.
Firmware aktualisierung
Erste Firmwares hatten Probleme mit den USB Ports, deshalb ist es empfehlenswert die Firmware Updates vor der Nutzung von GIMX durchzuführen.
Die Firmware zu aktualisieren kann auch hilfreich sein, wenn geplant ist ein Logitech Force Feedback Wheel einzusetzen (Das uhid Kernel Modul fehlte in früheren Firmwares).
Folgende befehle ausführen (Terminal/SSH):
sudo rpi-update
sudo reboot
Falls Probleme mit der aktuellsten Firmware auftreten, sollte diese installiert werden:
sudo rpi-update 771a503cfc2a1130e2df2a4ddfc45ffa0f592b3f
sudo reboot
Getestete RPi Firmware:
pi@raspberrypi ~ $ uname -a
Linux raspberrypi 4.1.21+ #873 Mon Apr 11 18:00:37 BST 2016 armv6l GNU/Linux
USB Adapter mithilfe der On-Board UART Schnittstelle
Hardware Anforderungen
ACHTUNG DIES IST EINE ÜBERSETZUNG - Bei unklarheiten das Original in Englisch durch lesen!
Das On-Board UART läuft mit Spannungen von 0V/3.3V, das AVR USB-Board muss mit einer Spannung von 5V und 16MHz laufen (Spannungen von 3.3V würden nur mit 8MHz arbeiten).
Das direkte Verbinden der RPi mit dem AVR USB-Board könnte die Hardware beschädigen!
Eine günstige Lösung ist es einen Spannungsteiler zu verwenden:
- Beide GNDs verbinden
- Es ist sicher den TXD Pin der RPI mit dem Rx Pin vom AVR USB-Board zu verbinden (Die GIMX Firmware konfiguriert den Rx Pin als eingabe)
- Um den Tx pin vom AVR USB-Board zum RXD pin der RPi zu verbinden, muss man die Spannung von 0..5V auf 0..3.3V anpassen.
Dies kann mit einem Spannungsteiler gemacht werden:
Vin ist der TX Pin vom AVR USB-Board, Vout ist der RXD Pin der RPi, R1=2.2kΩ , R2=3.3kΩ
- Keine anderen Pins verbinden !
Software Einstellungen
Standardmässig ist der RPi UART als Serielle Konsole konfiguriert.
Deaktivierung der Seriellen Konsole mittels raspi-config:
sudo raspi-config
Dann folgendes auswählen:
"Advanced Options", "Serial", "No", "Finish"
Die Standardkonfiguration erlaubt keine hohe Baudrate.
Hohe Baudrate durch das anpassen von /boot/config.txt aktivieren:
sudo nano /boot/config.txt
Folgende Zeile am Schluss der Datei hinzufügen:
init_uart_clock=8000000
Neustart um die Änderungen wirksam zu machen:
sudo reboot
GIMX Installation
wget https://gimx.fr/download/gimx-raspbian -O gimx.deb
sudo dpkg -i gimx.deb
sudo apt-get -f install
If you get a "Dependency is not satisfiable: ..." error message, upgrade Raspbian:
sudo apt-get update && sudo apt-get upgrade
Triggerhappy Dienst stoppen/deaktivieren
Triggerhappy ist ein dienst der jedes Eingabegerät zum lesen öffnet und dadurch etwas an CPU Zeit resp. Leistung verbraucht.
Es ist von vorteil den Dienst zu beenden, wenn GIMX benutzt wird.
Um Triggerhappy zu stoppen:
sudo service triggerhappy stop
Um Triggerhappy zu deaktivieren:
sudo update-rc.d triggerhappy disable
GIMX Starten
Den Quick start page lesen um GIMX mit Benutzeroberfläche zu starten.
Es ist eine gute Idee GIMX direkt via Terminal, ohne grafische Oberfläche zu starten. Dies kann über Netzwerk, mit einem SSH Client oder mittels #Autostart GIMX at boot without GUI bewerkstelligt werden
Idealerweise sollte GIMX nicht via Netzwerkport gestartet werden (Da es an der USB Schnittstelle verbunden ist).
Weitere Informationen für Terminalbefehle this page.
Automatisches starten von GIMX ohne Benutzeroberfläche
Als root /etc/systemd/system/gimx.service Datei mit folgendem Inhalt erstellen:
[Unit]
Description=GIMX
After=syslog.target network.target
[Service]
User=pi
Type=simple
ExecStart=/usr/bin/gimx -p /dev/ttyUSB0 -c LogitechDrivingForceGT_G29.xml --nograb
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
ttyUSB0 mit deinem Gerät ersetzen und LogitechDrivingForceGT_G29.xml mit deiner Konfigurationsdatei ersetzen (welche im pi home Verzeichnis liegen sollte: /home/pi/.gimx/config/LogitechDrivingForceGT_G29.xml).
Ausführen:
sudo systemctl daemon-reload
Um systemd die neue Datei bekannt zu machen und
sudo systemctl enable gimx && sudo systemctl start gimx
um den GIMX Dienst automatisch zu starten.
Notify when GIMX is running using a led
In order to have a proper confirmation about if the gimx service is up and running, you can add a simple python script that turns a led on if the gimx service is running.
The file will be located at /home/pi/blink.py:
#!/usr/bin/python
import os
import time
import RPi.GPIO as GPIO
led = 23
button = 18
GPIO.setmode(GPIO.BCM)
GPIO.setup(led, GPIO.OUT)
GPIO.setup(button, GPIO.IN, pull_up_down = GPIO.PUD_UP)
def Shutdown(channel):
GPIO.output(led, True)
time.sleep(0.2)
GPIO.output(led, False)
time.sleep(0.2)
GPIO.output(led, True)
time.sleep(0.2)
GPIO.output(led, False)
os.system("sudo shutdown -h now")
GPIO.add_event_detect(18, GPIO.FALLING, callback = Shutdown, bouncetime = 2000)
while True:
found = False
time.sleep(5)
pids = [pid for pid in os.listdir('/proc') if pid.isdigit()]
for pid in pids:
try:
cmd = open(os.path.join('/proc', pid, 'cmdline'), 'rb').read()
if "gimx" in cmd:
found = True
except IOError: # proc has already terminated
continue
if found == True:
GPIO.output(led, True)
else:
GPIO.output(led, False)
Als Bonus kann man einen Knopf hinzufügen, welcher beim Drücken einen Blinkeffekt ergibt und den RPi herunterfährt.
To start at boot, simply add it to the pi user crontab (crontab -e) as
@reboot python /home/pi/blink.py &