ROS auf dem Raspberry Pi – Teil 2: Ubuntu Mate anpassen

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:

  1. Feststellen des Netzwerk-Interface-Namens, der nicht mehr wie früher eth0 ist, mit dem Befehl
    ip link
  2. 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.

  3. 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.

 

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert