Raspbmc mit Wifi Access Point bzw. W-LAN Hotspot

Ich habe einen kleinen Raspberry Pi, den ich zu Hause oder im Urlaub an vorhandene Stereoanlagen oder kleine Aktivboxen anschließen kann. Mit meinem Smartphone kann ich dann bequem von der Couch die Musikdatenbank durchstöbern und Lieder in die Playlist schieben.

Ein Raspberry Pi liegt neben einem Palm Pre
Der Raspberry Pi und seine Fernsteuerung

Ganz wesentlich für diese Funktionalitäten ist eine Netzwerkverbindung zwischen dem Smartphone und dem Raspberry Pi. Da der Raspberry Pi mit einem Smartphone-Ladegerät am Stromnetz hängt, macht es Sinn, dass dieser auch den W-LAN-Hotspot stellt. Nachfolgend erläutere ich Schritt für Schritt, wie man das hinbekommt.

Voraussetzungen

In meiner Anleitung gehe ich von einer fertigen Raspbmc-Installation aus. Anschließend sollte der Raspberry Pi funktionsfähig in einem Netzwerk mit einem PC hängen.
Zudem wird ein W-LAN-Stick benötigt. Ich habe mich hierbei für einen CSL USB Wlan (Wifi) für PC / Raspberry Pi / Mac / inkl. WPS Knopf entschieden, der für weniger als 10 € erhältlich ist. Die Reichweite deckt mein Wohnzimmer ab.
Für die Einrichtung wird Putty benötigt.

Links

Folgende Links waren mir eine große Hilfe, auch wenn ich an manchen Sackgassen viel Zeit für Nachforschungen investieren musste:

Schritt für Schritt

Hier also eine bebilderte ausführliche Anleitung, wie man den Hotspot bei obigen Voraussetzungen mit einer statischen IP-Adresse problemlos hinbekommen sollte.

  • Putty auf dem PC starten
  • IP-Adresse des Raspberry Pi eintragen (in meinem Fall 192.168.2.1) und auf „Open“ klicken

    Das Putty-Fenster
    IP-Adresse des Raspberry Pi eintragen
  • Bevor sich die Konsole öffnet sind bei der Erstbenutzung noch einige Konfigurationseinstellungen vorzunehmen.
    Wählen Sie im ersten Schritt mit Pfeiltasten und Leertaste die Spracheinstellung aus. Abweichend zum Bild sollten Sie die über der Markierung liegende UTF-8-Einstellung auswählen.
    Bestätigen Sie die Auswahl mit OK.

    Spracheinstellungsfenster
    Wählen Sie die UTF-8 Einstellung über der Markierung aus
  • Wählen Sie im nächsten Fenster de_DE@euro aus und bestätigen Sie mit OK

    Spracheinstellungsfenster
    Wählen Sie de_DE@euro aus
  • Nun wählen Sie als Gebiet „Europe“ aus und bestätigen mit OK

    Gebietsauswahlfenster
    Wählen Sie Europe
  • Zuletzt wählen Sie als Zeitzone „Berlin“ und bestätigen mit OK

    Auswahlfenster Zeitzone
    Wählen Sie Berlin
  • Jetzt sollte das Konsolenfenster schwarz werden und eine Eingabeaufforderung erscheinen. Sollten Sie aufgefordert werden, einen Benutzernamen einzugeben, so lautet dieser pi. Das zugehörige Passwort wäre raspberry.

    Eingabebereites Konsolenfenster
    Die Konsole wartet auf eine Eingabe
  • Um den make-Befehl zu installieren, geben Sie jetzt folgendes ein:
    sudo apt-get install build-essential
    Drücken Sie dann die Enter-Taste
    Sobald eine Bestätigung zur Fortsetzung der Installation erscheint, drücken Sie y

    Eine Konsole währen der Installation
    Bestätigen Sie die Installation mit y
  • Nach einiger Installationszeit wartet die Konsole auf eine Eingabe. Darüber ist jedoch ein Fehler zu entdecken.

    Fehlermeldung in Konsole
    Eine Fehlermeldung wird sichtbar
  • Geben Sie entsprechend der Empfehlung
    sudo apt-get update
    ein und drücken Sie dann die Enter-Taste
  • Anschließend geben Sie erneut
    sudo apt-get install build-essential
    ein und drücken die Enter-Taste
  • Bei diesem Versuch sollte jetzt kein Fehler mehr erscheinen
  • Laden Sie folgendes Archiv mit Treiberdateien, die zum obigen W-LAN Stick gehören, auf Ihren Rechner:
    https://github.com/jenssegers/RTL8188-hostapd/archive/v1.1.tar.gz
  • Gehen Sie auf Ihrem PC auf Computer und wählen Sie in der Linken Leiste Netzwerk aus
  • Auf der rechten Seite sollte Ihr Raspberry Pi zu finden sein
  • Öffnen Sie diesen durch doppelklick
  • Sollte ein Benutzer abgefragt werden, so lautet dieser pi
    Als Passwort geben Sie raspberry ein
  • Öffnen Sie den Ordner pi
  • Entpacken Sie das zuvor heruntergeladene Archiv mit einem Programm wie 7zip
  • Kopieren Sie den darin enthaltenen Ordner RTL8188-ostapd-1.1 in den soeben geöffneten Netzwerkordner pi

    Dateien werden in den Raspberry Pi kopiert
    Kopieren Sie die Treiberdateien in den Raspberry Pi
  • Geben Sie in Putty den Befehl
    cd RTL8188-hostapd-1.1/hostapd
    ein, um in diesen Ordner zu wechseln
  • Geben Sie jetzt ein
    sudo make
    um hostapd zu bauen
  • Geben Sie dann ein
    sudo make install
    um hostapd zu installieren
  • Sollte eine Aufforderung bezüglich einer vorhandenen hostapd-Datei erscheinen, geben Sie N ein

    Installation hostapd
    Geben Sie ggf. N ein
  • Geben Sie dann
    cd /
    ein, um ins Wurzelverzeichnis zu wechseln
  • Danach geben Sie ein
    sudo apt-get install hostapd udhcpd iptables
  • Mit
    cd etc/
    wechseln Sie erneut das Verzeichnis
  • Verändern Sie die Datei udhpcd.conf mit
    sudo nano udhcpd.conf
  • Der nachfolgend rot markierte Inhalt sollte entsprechend Ihren Einstellungswünschen verändert werden:
    • # Sample udhcpd configuration file (/etc/udhcpd.conf)# The start and end of the IP lease blockstart           192.168.42.2    #default: 192.168.0.20
      end             192.168.42.20   #default: 192.168.0.254# The interface that udhcpd will useinterface       wlan0           #default: eth0# The maximim number of leases (includes addressesd reserved
      # by OFFER’s, DECLINE’s, and ARP conficts#max_leases     254             #default: 254# If remaining is true (default), udhcpd will store the time
      # remaining for each lease in the udhcpd leases file. This is
      # for embedded systems that cannot keep time between reboots.
      # If you set remaining to no, the absolute time that the lease
      # expires at will be stored in the dhcpd.leases file.remaining       yes             #default: yes# The time period at which udhcpd will write out a dhcpd.leases
      # file. If this is 0, udhcpd will never automatically write a
      # lease file. (specified in seconds)#auto_time      7200            #default: 7200 (2 hours)# The amount of time that an IP will be reserved (leased) for if a
      # DHCP decline message is received (seconds).#decline_time   3600            #default: 3600 (1 hour)

      # The amount of time that an IP will be reserved (leased) for if an
      # ARP conflct occurs. (seconds

      #conflict_time  3600            #default: 3600 (1 hour)

      # How long an offered address is reserved (leased) in seconds

      #offer_time     60              #default: 60 (1 minute)

      # If a lease to be given is below this value, the full lease time is
      # instead used (seconds).

      #min_lease      60              #defult: 60

      # The location of the leases file

      #lease_file     /var/lib/misc/udhcpd.leases     #defualt: /var/lib/misc/udhcpd.$

      # The location of the pid file
      #pidfile        /var/run/udhcpd.pid     #default: /var/run/udhcpd.pid

      # Everytime udhcpd writes a leases file, the below script will be called.
      # Useful for writing the lease file to flash every few hours.

      #notify_file                            #default: (no script)

      #notify_file    dumpleases      # <— useful for debugging

      # The following are bootp specific options, setable by udhcpd.

      #siaddr         192.168.0.22            #default: 0.0.0.0

      #sname          zorak                   #default: (none)

      #boot_file      /var/nfs_root           #default: (none)

      # The remainer of options are DHCP options and can be specifed with the
      # keyword ‚opt‘ or ‚option‘. If an option can take multiple items, such
      # as the dns option, they can be listed on the same line, or multiple
      # lines. The only option with a default is ‚lease‘.

      #Examles
      opt     dns     8.8.8.8 4.2.2.2
      option  subnet  255.255.255.0
      opt     router  192.168.42.1
      opt     wins    192.168.42.10
      option  dns     129.219.13.81   # appened to above DNS servers for a total of 3
      option  domain  local
      option  lease   864000          # 10 days of seconds

      # Currently supported options, for more info, see options.c
      #opt subnet
      #opt timezone
      #opt router
      #opt timesrv
      #opt namesrv
      #opt dns
      #opt logsrv
      #opt cookiesrv
      #opt lprsrv
      #opt bootsize
      #opt domain
      #opt swapsrv
      #opt rootpath
      #opt ipttl
      #opt mtu
      #opt broadcast
      #opt wins
      #opt lease
      #opt ntpsrv
      #opt tftp
      #opt bootfile
      #opt wpad

      # Static leases map
      #static_lease 00:60:08:11:CE:4E 192.168.0.54
      #static_lease 00:60:08:11:CE:3E 192.168.0.44

  • Drücken Sie Strg+X, um die Bearbeitung zu beenden
  • Drücken Sie Y und die Enter-Taste um die Änderungen zu speichern
  • Wechseln Sie ins Verzeichnis etc/default mit dem Befehl
    cd default/
  • Ändern Sie die Datei udhcpd mit dem Befehl
    sudo nano udhcpd
  • Kommentieren Sie die Zeile 2 aus, so dass dort steht
    #DHCPD_ENABLED=“no“
  • Drücken Sie Strg+X, um die Bearbeitung zu beenden
  • Drücken Sie Y und die Enter-Taste um die Änderungen zu speichern
  • Wechseln Sie wieder in das Verzeichnis etc mit dem Befehl
    cd ..
  • Wechseln Sie in das Verzeichnis etc/network mit dem Befehl
    cd network/
  • Ändern Sie die Datei interfaces mit dem Befehl
    sudo nano interfaces
  • Tragen Sie folgende Inhalte ein
    iface wlan0 inet static
      address 192.168.42.1
      netmask 255.255.255.0up iptables-restore < /etc/iptables.ipv4.nat
  • Drücken Sie Strg+X, um die Bearbeitung zu beenden
  • Drücken Sie Y und die Enter-Taste um die Änderungen zu speichern
  • Wechseln Sie wieder in das Verzeichnis etc mit dem Befehl
    cd ..
  • Wechseln Sie in das Verzeichnis etc/hostapd mit dem Befehl
    cd hostapd/
  • Ändern bzw. Erstellen Sie die Datei hostapd.conf mit dem Befehl
    sudo nano hostapd.conf
  • Tragen Sie folgendes ein und passen Sie besonders die roten Einträge für eigene Bedürfnisse an:
    • # Basic configurationinterface=wlan0
      ssid=MeinWLAN
      channel=6
      #bridge=br0# WPA and WPA2 configurationmacaddr_acl=0
      auth_algs=1
      ignore_broadcast_ssid=0
      wpa=3
      wpa_passphrase=hfrGkhkhvihv45hVeqW4$JMqw5LhjPL32ArTpoCxfkW
      wpa_key_mgmt=WPA-PSK
      wpa_pairwise=TKIP
      rsn_pairwise=CCMP# Hardware configuration

      driver=rtl871xdrv
      ieee80211n=1
      hw_mode=g
      device_name=RTL8192CU
      manufacturer=Realtek

  • Drücken Sie Strg+X, um die Bearbeitung zu beenden
  • Drücken Sie Y und die Enter-Taste um die Änderungen zu speichern
  • Wechseln Sie wieder in das Verzeichnis etc mit dem Befehl
    cd ..
  • Wechseln Sie in das Verzeichnis etc/default mit dem Befehl
    cd default/
  • Ändern Sie die Datei hostapd mit dem Befehl
    sudo nano hostapd
  • Ändern Sie den Eintrag in Zeile 10von: #DAEMON_CONF=““
    auf: DAEMON_CONF=“/etc/hostapd/hostapd.conf“
  • Drücken Sie Strg+X, um die Bearbeitung zu beenden
  • Drücken Sie Y und die Enter-Taste um die Änderungen zu speichern
  • Wechseln Sie wieder in das Verzeichnis etc mit dem Befehl
    cd ..
  • Ändern Sie die Datei rc.local mit dem Befehl
    sudo nano rc.local
  • Tragen Sie hier ein:
    ifup wlan0
    service udhcpd restart
    exit 0
  • Drücken Sie Strg+X, um die Bearbeitung zu beenden
  • Drücken Sie Y und die Enter-Taste um die Änderungen zu speichern

Das war’s

Wenn Sie Schritt für Schritt alle Anpassungen vorgenommen haben, können Sie jetzt Ihren Raspberry Pi herunterfahren, das Netzwerkkabel ziehen und den Raspberry Pi mit eingestecktem USB W-Lan Stick neu starten.

Ihr Smartphone sollte anschließend den Namen (SSID) des Hotspots anzeigen, den Sie in der hostapd.conf eingetragen haben. Benutzen Sie das ebenfalls dort eingetragene Kennwort, um sich mit dem Netz zu verbinden.
Beachten Sie, dass Sie zudem noch die IP-Adressen festlegen müssen. Im obigen Beispiel wäre die IP des Smartphones 192.168.42.2 (siehe udhpcd.conf). Das Subnetz lautet 255.255.255.0, Gateway und DNS-Server 192.168.42.1.

Viel Spaß :-)

2 Kommentare

  1. Moin,

    Ich habe folgendes Problem: Ich kann mich problemlos mit dem Wlan des Raspberry verbinden, jedoch funktionieren sämtliche Netzwerkservices, die Raspbmc ausführen soll (Upnp, Zeroconf…) nicht

Kommentare sind geschlossen.