Nachdem ich im ersten Teil beschrieb, wie man ROS auf einem Raspberry Pi installiert, geht es nun um Anpassungen, die ich anschließend vornahm.
Da ich ein fertiges Image mit Ubuntu Mate verwendete, gab es hier auch bereits Änderungen, die mir nicht so gefielen. Hier nun die Änderungen, die ich für sinnvoll halte.
Anpassung des Tastaturlayouts
Nicht jeder mag eine englische Tastaturbelegung, ich habe daher über die Ubuntu GUI die Tastatur auf deutsch gestellt.
Passwort ändern
Selbstverständlich sollte im Image sofort das Passwort des Users pi geändert werden! Dieses und mehr geht über das Raspberry Pi-Anwendern allseits bekannte Tool raspi-config und ist als Superuser aufzurufen:
sudo raspi-config
Je nach Bedarf sollten unter Interfacing Options noch Schnittstellen wie
- Camera
- SSH
- SPI
- I2C
- Serial
- usw. …
aktiviert werden. Ich will hier nicht auf jedes Detail eingehen, was auf anderen Webseiten bereits tausendfach beschrieben wurde.
Abschalten der GUI – Headless System
Unter Boot Options kann die GUI deaktiviert werden; ein sogenanntes Headless-System. Dazu unter dem Unterpunkt Desktop / CLI den Punkt Console Text console aktivieren. Den beim Beenden des Tools vorgeschlagenen Reboot aber ablehnen und nicht sofort durchführen!
Änderung des Hostnamen
„Früher“ konnte man den Hostnamen auf dem Raspberry mittels raspi-config ändern. Den Menüpunkt dazu gibt es aber offenbar nicht mehr(?). Ich habe den Hostnamen unter Ubuntu Mate daher in diesen beiden Dateien angepasst:
sudo nano /etc/hosts sudo nano /etc/hostname
Den Hinweis darauf fand ich übrigens hier.
Setzen einer festen IP-Adresse
Lange Zeit suchte ich nach der richtigen Anleitung, wie ich dem Raspberry-Pi eine feste IP einstellen kann und wurde am Ende hier fündig. Eine feste IP-Adresse ist praktisch, wenn man sich per SSH verbindet und nicht immer die IP raten muss. Wenn man mit dem Pi immer im gleichen Netzwerk ist, kann man natürlich auch seinen Router, wie die fritz.box anweisen, dem Gerät immer die gleiche IP-Adresse zuzuweisen.
Um es unter Ubuntu ohne GUI wirksam werden zu lassen, waren in dem Ubuntu Mate ROS-Image folgende Schritte notwendig:
- Feststellen des Netzwerk-Interface-Namens, der nicht mehr wie früher eth0 ist, mit dem Befehl
ip link
- Abschalten(!) des Ubuntu NetworkManagers mittels
echo manual | sudo tee /etc/init/network-manager.override
Hinweis: Obwohl das Image Ubuntu 16 ist, musste dieser Befehl für Ubuntu 14 ausgeführt werden. Warum, hat sich mir noch nicht erschlossen.
- Anpassung der berühmten Datei /etc/interfaces. Zum Beispiel wie folgt:
# interfaces(5) file used by ifup(8) and ifdown(8) # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d # The loopback network interface auto lo iface lo inet loopback # IPV4, Statische IP für Ex-eth0 auto enxb4711eb08150f iface enxb4711eb08150f inet static address 192.168.1.174/24 gateway 192.168.1.1 dns-nameservers 192.168.1.1
Der blaue und grüne Teil ist hier individuell anzupassen (Netzwerkinterface, IP-Adresse/n)
Extra-Tipp
Wenn ihr euren Raspberry Pi mal im Netz sucht, also nicht wisst, welche IP-Adresse er per DHCP bekommen hat, verwendet diesen Befehl um alle Raspberry Pis im 192.168.1.*-Netz anzuzeigen:
sudo nmap -sP 192.168.1.0/24 | awk '/^Nmap/{ip=$NF}/B8:27:EB/{print ip}'
Abschalten/Anpassen des ROS-Autostarts
Da ich es sinnvoller fand, meinen eigenen ROS catkin-Workspace zu erstellen und den ROS master vorerst manuell zu starten, leerte ich den Inhalt folgender „Autostart“-Datei:
/etc/rc.local
Diese sieht nun wie folgt aus:
#!/bin/sh -e # # rc.local # # This script is executed at the end of each multiuser runlevel. # Make sure that the script will "exit 0" on success or any other # value on error. # # In order to enable or disable this script just change the execution # bits. # # By default this script does nothing. exit 0
[Update 13.5.2017] Schaffen von Speicherplatz
Zum Schluss habe ich noch ein paar Programme entfernt, die unter ROS auf einem Raspberry Pi nicht wirklich benötigt werden. Und ja, auch Minecraft ist standardmäßig offenbar installiert und kann entfernt werden:
sudo apt remove apache2 cups libreoffice-* printer-driver-* scratch vlc vlc-* minecraft-pi sudo apt autoremove
Das war’s. Im nächsten Teil zeige ich, wie man über ROS eine LED auf dem Raspberry Pi ansteuert.