Ersteinrichtung des Raspberry Pi's ohne Tastatur+Monitor

  • Ersteinrichtung des Raspberry Pi's ohne Tastatur+Monitor



    Wer nicht die möglichkeit hat (oder nicht extra Geld für ein HDMI->DVI Kabel o.ä. ausgeben möchte) einen Monitor zur Ersteinrichtung seines RaspberryPI's zu verwenden, kann trotzdem durchstarten.
    Es gibt (wie immer) mehrere Möglichkeiten:

    • [al=Netzwerk]Über Netzwerk[/al]
    • [al=UART]Über UART (serielles Kabel)[/al]


    Für den RaspberryPi Zero (W) sowie A und A+ existieren zudem weitere Möglichkeiten:

    • [al=OTG]USB OTG Mode[/al]
    • [al=PiZeroW]PiZero: WLAN[/al]



    [hr]



    [an=Netzwerk][/an]1.Möglichkeit - Über Netzwerk, sofern folgende Bedingungen gegeben sind:


    • Ein DHCP-Server in eurem Netzwerk -> Normalerweise hat jeder Router ein DHCP-Server aktiviert (darüber wird jedem Gerät die Netzwerkeinstellungen automatisch zugewiesen)
    • Ein aktiver SSH-Server auf dem Raspberry
    • Ein SSH-Client wie zum Beispiel PuTTY


    Wer keinen DHCP hat kann aber trotzdem folgenden Trick anwenden:


    - SD Karte in den Windows oder MAC Rechner stecken und auf die vFat Partition zugreifen in der nicht nur die config.txt sondern auch cmdline.txt Datei liegt
    - cmdline.txt bearbeiten und folgendes in die erste und einzige Zeile einfügen:

    Code
    1. ip=192.168.1.200::192.168.1.1:255.255.255.0:rpi:eth0:off


    Da gibt es aber folgendes zu beachten.
    Die Syntax dieser Einstellung ist folgende:

    Code
    1. ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>


    client-ip: Die IP die der Raspberry haben/bekommen soll.
    server-ip: Definiert normalerweise die IP des Netboot-Server's, wird in diesem Fall aber nicht benötigt!
    gw-ip: Die Gateway-IP, normalerweise die IP eures Routers.
    netmask: Ist eigentlich immer 255.255.255.0 aber sollte für euer Netzwerk passen.
    hostname: Hostname des RaspberryPI, über den er im LAN ansprechbar wäre (DNS). Wird hier nicht benötigt!
    device: Das Netzwerk Device für das diese Zuweisung gelten soll, in diesem Fall fürs Kabel: eth0
    autoconf: erlaubt die Aktivierung/Deaktivierung der automatischen Konfiguration. Hier wählen Sie off


    Wichtig ist das ihr keine IP doppelt belegt, die client-ip darf also noch nicht benutzt werden!


    Achtet außerdem darauf das ihr in cmdline.txt nur eine Zeile habt!


    Die Datei sollte also ungefähr folgenden Inhalt haben:

    Code
    1. dwc_otg.lpm_enable=0 console=ttyAMA0,115200 kgdboc=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait ip=192.168.1.200::192.168.1.1:255.255.255.0:rpi:eth0:off


    Unter Umständen reicht es aber auch nur ip=192.168.0.200 einzutragen, manchmal klappts manchmal aber leider auch nicht..


    Seit ca. 2015 sieht die cmdline.txt geringfügig anders aus - wichtig ist hier einfach nur der letzte Teil!

    Code
    1. dwc_otg.lpm_enable=0 console=serial0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait ip=192.168.1.200::192.168.1.1:255.255.255.0:rpi:eth0:off



    Wenn ihr eine Fritzbox nutzt ist euer Netzwerk Standardmäßig 192.168.178.xxx , also die ip= dann halt entsprechend anpassen.



    Der Standard SSH Port ist normalerweise 22 , ihr könnt also anschließend normalerweise eine SSH Verbindung mit der in cmdline.txt eingestellten IP herstellen



    Für gewöhnlich könnt ihr die aktuelle IP eures RaspberryPI's auch dem WebInterfaces eures Routers entnehmen, üblicherweise unter DHCP oder Netzwerkgeräte o.ä.



    Nachdem ihr eine Verbindung hergestellt habt, könnt ihr den regulären Weg über die Datei /etc/network/interfaces gehen, die Standardmässig wie folgt aussieht:

    Code
    1. # interfaces(5) file used by ifup(8) and ifdown(8)
    2. auto lo
    3. iface lo inet loopback
    4. allow-hotplug eth0
    5. iface eth0 inet dhcp


    Oder für einer Festen / Static IP:


    Vergesst aber nicht /boot/cmdline.txt anzupassen :)



    [hr]



    [an=UART][/an]2.Möglichkeit - Über UART (serielles kabel)
    (quelle1, quelle2)


    Der Pi verfügt über eine UART Schnittstelle an den Pins 8 (GPIO14, RX) und 10 (GPIO15, TX). Diese "Modem-Verbindung" ist der Klassiker unter den Schnittstellen. Mit einem Programm wie PuTTY unter Windows oder GtkTerm unter Linux kann so auf die Konsole des Pi zugegriffen werden.
    Über UART wird Standardmäßig auch der Bootvorgang ausgegeben und dient daher auch zur Fehlersuche/Debug.


    Der Vorteil einer Konsole über die serielle Schnittstelle ist, dass man sowohl auf den Anschluss eines Monitors und Tastatur an den Pi verzichten kann, als auch ein Netzwerk nicht notwendig ist. Das ist zum Beispiel sehr hilfreich bei der Einrichtung eines WLAN-Sticks. Die WLAN-Konfiguration kann dann nämlich auf der seriellen Konsole eingerichtet werden und man muss nicht erst eine SSH-Verbindung per Netzwerkkabel herstellen.


    Es gibt relativ günstige Serielle/UART Adapter-Kabel für USB wie zum Beispiel mit einem CP2102 oder PL2303 Chip (letzterer ist nicht mit Win8.1 kompatibel)
    (Auch "USB to TTL Serial Cable/Adapter" genannt)


    Wichtig und worauf unbedingt geachtet werden muss ist das die TTL Signal-Leitungen (RX und TX) nur mit maximal 3V3 arbeiten! Die GPIO's des RaspberryPi's vertragen nämlich nur max. 3.3V , alles da drüber würde den Pi beschädigen/zerstören! Es gibt nämlich auch TTL Kabel die mit 5V oder sogar 12V arbeiten.


    Aus dem Adapter kommen mindestens vier Anschlüsse (siehe Bild im Spoiler):


    • Schwarz: GND ...anschließen an... Raspberry Pin#6 (GND)
    • Weiß: RX ...anschließen an... Raspberry Pin#10 (TX)
    • Grün: TX ...anschließen an... Raspberry Pin#8 (RX)
    • Rot: +5V VCC ...anschließen an... Raspberry Pin#2 (5V) ... NICHT anschließen wenn der Pi Strom vom Micro-USB bekommt!


    RX steht für: Receive
    TX steht für: Transmit


    Was also der PI sendet (TX) muss der PC empfangen (RX) und andersherum: was der PC sendet (TX) muss der PI empfangen (RX)


    ACHTUNG:
    Falls ihr vor habt den PI ausschließlich über UART mit Strom zu versorgen sei an dieser Stelle auch noch angemerkt das über USB 2.0 nur maximal 500mA geliefert werden, was für manche Pi's aber nicht reicht! Siehe dazu Wie hoch ist der Stromverbrauch?
    In dem Fall müsst ihr also das VCC Kabel weg lassen und den PI regulär mit Strom versorgen. Es ist aber auch enorm wichtig auf keinen Fall beides anzuschließen, dann brutzelt ihr den Pi ebenfalls.


    Wenn der Adapter korrekt verdrahtet ist, bringt ein Terminal (PuTTY o.ä.) die Konsole des Pi auf den Schirm. Die Einstellungen sind folgende:

    • Port:
      • Linux: /dev/ttyUSB0
      • Windows: COM3 oder ähnlich (je nachdem wie der USB Adapter eingebunden wurde)


    • Baud-Rate: 115200
    • Parity: None
    • Bits: 8
    • Stop-bits: 1
    • Flow-Control: None
    • XON/XOFF Flow Control: None

    Wenn die Konsole funktioniert, kann der RasPi ohne weiteres Zubehör wie Netzwerk konfiguriert werden.



    [hr]
    [hr]



    [an=OTG]USB OTG Mode:[/an]


    Siehe dazu =>
    ..Übersetzung folgt..



    [hr]



    [an=PiZeroW]PiZero: WLAN[/an]


    Seit Einführung des "RaspberryPi Zero W", welcher WLAN Onboard verbaut hat, besteht für diesen die Möglichkeit direkt im /boot/ Verzeichnis eine wpa_supplicant.conf abzulegen, die dann direkt beim Systemstart integriert, aktiviert und gelöscht wird.
    Das /boot/ Verzeichnis bzw genauer gesagt eine FAT32 Partition, ist jene die euch unter Windows angezeigt wird. Wichtig ist das ihr die Datei mit einem Linux kompatiblen Editor erstellt/bearbeitet.


    Quelle: http://www.forum-raspberrypi.d…aden?pid=271582#pid271582



    [hr]



  • Hallo,
    ich hab für Linux einen etwas einfacheren Weg gefunden um eine direkte Verbindung zwischen dem Pi und einem PC/Laptop herzustellen. Erstmal was brauchen wir:

    • natürlich einen Pi
    • für den Pi brauchen wir natürlich auch eine Stromversorgung
    • eine SD-Karte mit installiertem Betriebssystem(ich benutze Raspbian aber alle anderen sollten auch funktionieren solange SSH aktiviert ist)
    • einen PC/Laptop mit Linux(ich weiß nicht genau ob es mit Windows oder Mac OS auch funktioniert. Das kann ich leider nicht überprüfen, da mir die beiden Betriebssysteme nicht zu Verfügung stehen. Auf meinem Laptop läuft übrigens Ubuntu 13.04)
    • ein LAN-Kabel(ich hab es sowohl mit einem Crossover- als auch mit einem Patchkabel probiert. Bei mir funktioniert beides)


    so jetzt aber zur Praxis. Bevor wir den Pi anschalten, müssen wir erst ein paar Einstellung an unserem PC/Laptop vornehmen. Dazu öffnen wir erstmal unsere Netzwerkeinstellungen und wählen die LAN-Verbindung aus.



    Danach klicken wir auf Optionen und wählen den Reiter IPv4-Einstellungen. Bei mir ist dort bei Methode standardmäßig "Automatisch (DHCP)" ausgewählt:



    Aus dem Pulldown-Menu wählen wir dann stattdessen die Option "Gemeinsam mit anderen Rechnern":



    So jetzt klicken wir auf Speichern und schließen die Einstellungen. Jetzt ist es Zeit den Pi anzuschließen. Einfach den Pi mit Hilfe des LAN-Kabels mit dem PC/Laptop verbinden und die Stromversorgung anschließen.
    Jetzt haben wir natürlich das Problem, dass wir die IP-Adresse des Pi nicht kennen. Diese lässt sich aber ganz leicht herausfinden. Wir öffnen ein Terminal und geben folgenden Befehl ein:

    Code
    1. cat /var/lib/misc/dnsmasq.leases


    Ihr sollte ungefähr folgenden Ausgabe bekommen:


    Mit dieser IP könne wir uns ganz normal per SSH auf den Pi aufschalten. Viel Spaß :)


  • FruitDealer : Was ist jetzt bei Deiner Beschreibung einfacher? :cool:
    Vielleicht hält ja - von Kleinigkeiten abgesehen - doppelt besser? :)


    Gruß, mmi


    Ok "einfacher" liegt natürlich immer im Auge des Betrachters :D. Aber richtig doppelt hält besser und vielleicht funktioniert die erste Methode bei dem ein oder anderem nicht. Und bevor er oder sie, dann seinen schönen Pi aus Frust zurückschickt kann er oder sie ja noch meinen Weg ausprobieren :)

  • Nach etwas Gefrickel wegen überzähliger Leerzeichen ist es mir nun mehrmals gelungen meinen Raspberry Pi 3 ohne Bildschirm und Tastatur drahtlos über WLAN in Betrieb zu nehmen. Hier die Ergebnisse meiner Erfahrungen.


    1) Was man braucht
    Bei der Software bevorzuge ich immer die Original-Seiten der Hersteller.


    Nicht für diesen Ablauf notwendig, aber später nützlich um Dateien zzwischen PC und Raspbian auszutauschen oder Dateien Remote zu editieren (siehe RJ-TextEd ist FTP: Auf Raspbian das Paket proftpd installieren und auf dem PC Filezilla https://filezilla-project.org/ installieren.


    2) Ablauf

    • Alle benötigte Software auf dem PC installieren (siehe oben)
    • SD-Card in den Adapter stecken und Adapter an einen PC-USB-Anschluss stecken
    • mit Wind32Diskimager das Raspbian-Image auf die SD-Card schreiben
    • USB Storage auswerfen und danach den Adapter abziehen
    • Adapter wieder anstecken. Jetzt sollte die Boot-Partition und die Unix-Partition im Windows-Dateimanager sichtbar sein
    • die Dateien auf der SD-Card editieren (siehe Kapitel 3) )
    • USB Storage auswerfen und danach den Adapter abziehen
    • SD-Card in den Raspberry Pi stecken
    • Stromkabbel in den Raspberry Pi stecken und eine Minute warten
    • auf dem PC putty starten und mit dem Raspberry Pi verbinden
    • einloggen in user pi mit Passwort saspberry
    • raspi-config aufrufen, Passwort ändern, Partition erweitern, ...
    • "sudo apt-get update" und "sudo apt-get dist-upgrade" aufrufen
    • wenn gewünscht "sudo apt-get proftpd" ausführen um einen FTP-CLient auf dem Raspi zu haben


    3) Dateiänderungen
    Partition boot, Datei cmdline.txt:
    An die eine vorhandene Zeile in dieser Datei anhängen und hostname durch den gewünschten Namen deine RasPI ersetzen:

    Code
    1. ip=192.168.1.101::192.168.1.1:255.255.255.0:hostname:wlan0:off


    Partition boot, Datei config.txt:
    Konfigurationswerte für den Konsolen-Bildschirm eintragen, wenn man einen Bildschirm anschließen will. Vorteil ist, das man beim Booten auftretende Fehler sieht. Die Werte sind in https://www.raspberrypi.org/do…nfiguration/config-txt.md beschrieben. Typische Werte für einen Full-HD-HDMI-Bildschirm mit 60Hz wären:


    Code
    1. hdmi_drive=2
    2. hdmi_group=2
    3. hdmi_mode=82


    Linux-Partition, Datei /etc/networking/interfaces
    Ich rate zur Nutzung einer statischen IP-Adresse, denn dann weiß man die Adresse des RasPi. Die "address" und den "gateway" muss man entsprechend seinem eigenen Netzwerk anpassen. Die Werte müssen übereinstimmen mit den Angaben in cmdline.txt




    Linux-Partition, Datei /etc/wpa_supplicant/wpa_supplicant.conf
    Hier trägst Du die Parameter Deines WLAN-Netzwerks ein.

    Code
    1. country=DE
    2. ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    3. update_config=1
    4. ap_scan=1
    5. network={
    6.   scan_ssid=1
    7.   ssid="Deine SSID"
    8.   psk="Dein Passwort"
    9.   key_mgmt=WPA-PSK
    10. }


    scan_ssid=1 ist oft nicht nötig und verzögert das Booten. Man braucht es, wenn der Router die SSID versteckt. Bitte ausprobieren, ob es bei Dir auch ohne diese Zeile geht.


    Linux-Partition, Datei /etc/hostname
    Hier trägst du den Namen deines Raspi ein, so wie er in cmdline.txt angegeben wurde.


    Linux-Partition, Datei /etc/hosts
    Hier ersetzt Du den Namen "rasphost" durch deinen RasPi-Namen


    Anhang A) Tipps


    Log-Dateien bei Problemen
    Bei Problemen kann man sich auf der SD-Card (zum Beispiel mit SD-Card im Adapter) auf der Linux-Partition die Dateien im verzeichnis /var/log ansehen, insbesondere die Datei syslog.


    Auch die Datei bootstrap.log ist bei boot-Problemen sehr interessant


    Carriage Return von Dateien entfernen
    Allgemein sollte man wissen, das Linux und Windows in Textdateien verschiedene Zeilenabschlüsse haben. Linux schließt jede Zeile mit einem Lienefeed ab (Strg-J). Windows schließt jede Zeile mit Carriage Return + Linefeed ab (Strg-M + Strg-J). Editiert man in Windows eine Unix-Datei mit einem Editor, der nicht prüft, ob es sich um eine Linux-Datei handelt, dann bekommt man in jeder Zeile in Linux ein zusätzliches Strg-M angehängt.



    Code
    1. sudo vi dateiname
    2. :1,$s/Strg-VStrg-M//g
    3. :w


    Strg-V heißt die Strg-Taste festhalten und gleichzeitig Taste V drücken (Bedeutung in vi: nehme das nächste Zeichen als Inhalt, nicht als Steuerzeichen)
    Strg-M heißt die Strg-Taste festhalten und gleichzeitig Taste M drücken


  • ... Raspberry Pi 3 ohne Bildschirm und Tastatur drahtlos über WLAN in Betrieb zu nehmen. ...
    3) Dateiänderungen
    ...


    BTW: Wenn man den PI3 mit dem built-in WIFI verwendet, dann sollte man vorsichtshalber, auch:

    Code
    1. IPQoS cs0 cs0


    in die "/etc/ssh/sshd_config"-Datei schreiben.
    Siehe z. B.: https://www.raspberrypi.org/fo…38631&hilit=IPQoS+cs0+cs0


    https://www.raspberrypi.org/fo…336e16fd4f641ce78ca9c3a7f


    und diverse Beiträge/Threads in diesem Forum.

  • Ist ja alles ganz net, nur seid Ihr sicher, dass das funktioniert, denn
    1. ist meines wissen der ssh server default nicht gestartet, als keine Verbindung via putty etc. möglich.
    2. braucht man erst am die mit DHCP vergeben Adresse des Pi, gut bekommt man mit nmap etc. raus


    Sobald mann eine SSH Verbindung hat ist alle weiter peanuts.


    Rainer


  • hostname: Diesen Hostname erhällt euer RaspberryPI, über die er im LAN ansprechbar wäre (DNS)
    autoconf: ...entzieht sich momentan auch meiner Kentniss, aber auf off stellen funktioniert :)



    Hallo Meigrafd,


    zwei Fragen dazu:


    1. Hast Du schon was zu autoconf rausbekommen?
    2. Wie soll das mit dem hostname funktionieren, so dass der Name im Netz bekannt ist? Es müsste ja ein Nameserver auf dem Raspberry laufen, den ich damit konfiguriere.



    Gruß


    [TOM]
    Automatisch zusammengefügt:[hr]
    Weil es zum Thema passt eine Ergänzung zu dem Post von Meigrafd:


    Man kann in der /boot/cmdline.txt auch eine MAC-Adresse vergeben. Klappt nicht immer, aber meistens. Dazu einfach folgenden Eintrag anhängen:

    Code
    1. smsc95xx.macaddr=XX:XX:XX:XX:XX:XX


    Prinzipiell kann man jede beliebige MAC-Adresse verwenden. Man sollte aber eine "private" bevorzugen. Diese hat den Aufbau

    Code
    1. x2:xx:xx:xx:xx:xx
    2. x6:xx:xx:xx:xx:xx
    3. xA:xx:xx:xx:xx:xx
    4. xE:xx:xx:xx:xx:xx


    Die Xe könnt ihr beliebig mit den HEX-Ziffern 0-F ersetzen.



    [TOM]

  • 1. ist meines wissen der ssh server default nicht gestartet, als keine Verbindung via putty etc. möglich.


    Das war bei mir jetzt auch so. Kannte ich so nicht nach langer Abwesenheit.


    Ein

    Code
    1. touch ssh


    unter /boot


    oder halt unter Windows das Erstellen einer leeren Datei namens "ssh" ohne Dateiendung hilft ihm wieder auf die Sprünge.

  • Willkommen im Forum.
    Nimm den aktuellen RasPi3B. Der geringe Preisunterschied zu älteren Modellen lohnt nicht.
    Beispiel:
    https://www.reichelt.de/Einpla…RRY+PI+3&SEARCH=raspberry


    Kauf dazu ein vernünftiges Netzteil, eine Micro-SD und schon kann es los gehen.


    Bitte für headless Betrieb beachten: SSH ist seit einiger Zeit nicht mehr aktiviert.
    So wird es aktiviert:
    https://www.elektronik-kompend…/raspberry-pi/1906281.htm