Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched. Close

Raspberry Pi mit EDIMAX als Wlan AccessPoint verwenden

2014-11-14
2023-08-17
  • eschwellinger

    eschwellinger - 2014-11-14

    Anbei die Anleitung wie man den Pi zum Wlan AccesPoint macht + dhcp Server & WPA2 Verschlüsselung
    Wofür könnte man gebrauchen?
    - Schulungen
    - Wenn man kein Wlan Router an der Stelle hat wo die CODESYS Raspberry SPS im einsatz ist,
    ich aber trotzdem mit Android/Iphone die Webvisu bedienen will.
    - der Ethenet Port des Pi's mit Feldbus verbunden ist

    Was brauchts an Hardware?
    Raspberry Pi
    Edimax Wlan USB Stick EDIMAX-EW-7811UN-Wireless-Adapter

    Also auf dem Pi über putty (google it) folgendes ausführen und einstellen / editieren (die Befehle kopieren und im Putty Fenster einfügen)

    sudo apt-get updatesudo apt-get install bridge-utils hostapdsudo apt-get install isc-dhcp-server Code:wget http://www.daveconroy.com/wp3/wp-content/uploads/2013/07/hostapd.zipunzip hostapd.zip sudo mv /usr/sbin/hostapd /usr/sbin/hostapd.baksudo mv hostapd /usr/sbin/hostapd.edimax sudo ln -sf /usr/sbin/hostapd.edimax /usr/sbin/hostapd sudo chown root.root /usr/sbin/hostapd sudo chmod 755 /usr/sbin/hostapdsudo nano /etc/dhcp/dhcpd.conf
    In dieser Datei suchen wir nur die Zeilen

    option domain-name "example.org";
    option domain-name-servers ns1.example.org, ns2.example.org;
    und kommentieren diese mit Hilde eines "#" vor jeder Zeile aus. Deweiteren nehmen wir den Kommentar im folgednen Block bei "authoritative" raus.

    # If this DHCP server is the official DHCP server for the local
    # network, the authoritative directive should be uncommented.
    # authoritative;
    wird zu:

    # If this DHCP server is the official DHCP server for the local
    # network, the authoritative directive should be uncommented.
      authoritative;
    Ganz am Ende des Files fügen wir noch folgenden Block ein:

    subnet 192.168.42.0 netmask 255.255.255.0 {range 192.168.42.10 192.168.42.50;option broadcast-address 192.168.42.255;option routers 192.168.42.1;default-lease-time 600;max-lease-time 7200;option domain-name "local";option domain-name-servers 8.8.8.8, 8.8.4.4;}Danach schließen wir wie gewohnt mit "Strg+X" und J bzw. Y die Datei.

    Anschließend öffnen wir die Interfacc Config des dhcp Servers mit

    sudo nano /etc/default/isc-dhcp-server
    ändern " INTERFACES="" " in " INTERFACES="wlan0 " und schließen diese Datei wieder.

    wlan0 statische IP zuweisen
    Solltet ihr bereits das WLAN am Pi aktiv haben so fahrt das Interface mit

    sudo ifdown wlan0 

    herunter. Danach öffnen wir die Netzwerk Interfaces mit 

    sudo nano /etc/network/interfaces

    und fügen hier unsere statische Zuweisung ein. Je nach vorheriger Konfiguration sieht das Ganze anders aus. Wichtig ist dass die Ip-Zuweisung nach "allow hotplug wlan0" erfolgt und die Zeilen danach auskommentiert werden und sollte dann so aussehen:

    auto loiface lo inet loopbackiface eth0 inet dhcpallow-hotplug wlan0iface wlan0 inet staticaddress 192.168.42.1netmask 255.255.255.0#iface wlan0 inet manual#wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf#iface default inet dhcp

    Access Point konfigurieren
    Nun werden die Details des AP eingestellt. In diesem Fall wird dem AP ein Password zugewiesen damit nicht jeder beliebige Nachbar das verschlüsselte Netz nutzen kann.
    Hierzu erstellen wir eine neue Datei:

    **sudo nano /etc/hostapd/hostapd.conf **

    und fügen folgendes ein:
    interface=wlan0driver=rtl871xdrvssid=MyAccessPhw_mode=gchannel=6macaddr_acl=0auth_algs=1ignore_broadcast_ssid=0wpa=2wpa_passphrase=MEINWLanPWwpa_key_mgmt=WPA-PSKwpa_pairwise=TKIPrsn_pairwise=CCMP

    Die "SSID" sowie die "wpa_passphrase" kann beliebig gewählt werden. Nach dem Einfügen wie immer speichern und schließen.
    Als nächstes bringen wir dem Pi wo er diese eben erstelle Config-Datei finden kann. Wir editieren hierzu nochmal die Default Einstellungen von hostapd:

    sudo nano /etc/default/hostapd
    Hier suchen wir die Zeile " #DAEMON_CONF="" " löschen das Kommentarzeichen und fügen in die Anführungszeichen den Pfad der Configdatei ein. Die Zeile lautet dann
    DAEMON_CONF="/etc/hostapd/hostapd.conf" 

    Testen und Fertig stellen

    sudo ifconfig wlan0 192.168.42.1

    Um den AP zu testen starten wir hostapd manuell mit unserer erstellen Konfiguration:

    sudo /usr/sbin/hostapd /etc/hostapd/hostapd.conf

    Passt das so kann man jetzt am Laptop oder Handy versuchen sich an dem eben erstellten AP einzuloggen.
    War auch das erfolgreich können wir das ganze als Daemon beim Start des Pi einrichten. Hierzu starten wir die Services mit:

    sudo service hostapd startsudo service isc-dhcp-server start

    Anschließend tragen wir diese für den Systemstart ein mit 

    sudo update-rc.d hostapd enablesudo update-rc.d isc-dhcp-server enable

    Wichtig ist das beide Befehle fehlerfrei durchlaufen.
    Den Status der Services können wir jederzeit überprüfen mit:

    sudo service hostapd statussudo service isc-dhcp-server status

    Das funktioniert mit anderen Wlan Adaptern auch wenn diese Accesspoint fähig sind (dieser EDIMAX ist es nur mit diesem speziellen Treiber aus der Beschreibung)

    Grüße
    Edwin

    IMG: EDIMAX.jpg

     
  • madax - 2015-01-29

    Hallo Edwin,

    super beschrieben. Leider bekomme ich beim testen eine Fehlermeldung (die ich mit ^C abbrechen muss) und krieg nicht raus woran es liegt.
    Kannst Du bitte mal nachschauen:

    Configuration file: /etc/hostapd/hostapd.conf
    drv->ifindex=3
    l2_sock_recv==l2_sock_xmit=0x0x1f0a638
    +rtl871x_sta_deauth_ops, ff:ff:ff:ff:ff:ff is deauth, reason=2
    rtl871x_set_key_ops
    rtl871x_set_key_ops
    rtl871x_set_key_ops
    rtl871x_set_key_ops
    Using interface wlan0 with hwaddr 80:1f:02:f7:02:85 and ssid 'PiNet'
    rtl871x_set_wps_assoc_resp_ie
    rtl871x_set_wps_beacon_ie
    rtl871x_set_wps_probe_resp_ie
    rtl871x_set_key_ops
    rtl871x_set_beacon_ops
    rtl871x_set_hidden_ssid_ops
    ioctl[RTL_IOCTL_HOSTAPD]: Invalid argument

    mfg DxM

     
  • eschwellinger

    eschwellinger - 2015-01-29

    Hallo,

    denke das passt trotzdem, einfach mal booten und dann schauen ob es funktioniert.

    Grüße
    Edwin

     
  • madax - 2015-01-30

    Hallo Edwin,

    Danke für die schnelle Antwort. Mal geht's und mal eben nicht. Teilweise sind eth0 und wlan0 nicht richtig inititalisiert.
    Ich hab die Dienste aus init.d rausgeschmissen und die rc.local darür benutzt.
    Ist zwar nicht schön, funktioniert aber (auch mit einer zweiten Wifi wlan1).
    Da müsste man wohl ein Skript schreiben das die Netzwerkeinstellungen überwacht und dann ggf. erst die Dienste startet.

    (sleep 10; ifdown eth0; ifdown wlan0)&
    (sleep 12; ifup eth0)&
    (sleep 15; ifup wlan0)&
    (sleep 20; service hostapd start)&
    (sleep 25; service isc-dhcp-server start)&
    exit 0

    mfg DxM

     
  • spsheini - 2015-02-07

    Hallo

    Das Beispiel scheint leider nicht auf dem Raspberry Pi 2 zu laufen
    Habe es mehrmals versucht ohne Erfolg. B+ einwandfreie
    und stabile Sache und man gewöhnt sich natürlich daran.

    Es scheint so als hat sich an der DHCP Konfiguration einiges geändert,
    AP Funktion und Registrierung scheint zu funktionieren, aber eben keine
    IP vom DHCP.

    Grüsse

     
  • spsheini - 2015-02-08

    Hallo

    Für diejenigen mit RPI2. Anbei eine modifizierte Anleitung
    wie es auf dieser Version funktioniert. Codesys RT ist
    (noch) nicht installiert.

    Grüsse

    RPI2_AP_Konfiguration.pdf [330.63 KiB]

     

Log in to post a comment.