Raspbmc als Wlan/Lan Bridge

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hast Du schon mal versucht

    Code
    "Can't add wlan0 to br0: Operation not supported"


    einer Suchmaschine zum Frass vorzuwerfen? Dann findest Du u.a. auch die von DS verlinkte Seite :shy: Wichtig sind die Tüdelchen am Anfang und Ende um die Suche auf die Fehlermeldung direkt zu beschränken.

  • Okay...erstmal vielen Dank für die Antworten [font="Wingdings"]J[/font]
    Mit der glorreichen Einleitung wollte ich eigentlich nur bezwecken, dass nicht der Eindruck entsteht, ich wäre jemand der zu faul zum googlen ist.

    Ich habe jetzt (ungelogen) eine ganze Woche taglich ca. 5 Stunden versucht das Teil ans Laufen zu bringen.
    Ich habe dabei viel Neues über Linux gelernt. Jedoch hat mich nichts ans Ziel gebracht.

    Ich nutze ein Siriproxy-image, welches auf Rasbian basiert.
    Mehrere Anleitungen habe ich schon versucht.
    Meine „interfaces-datei“ sieht folgendermaßen aus:

    „auto lo
    iface lo inet loopback
               
    auto wlan0
    iface wlan0 inet manual
    wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

    auto eth0
    iface eth0 inet manual
               
    auto br0
    iface br0 inet dhcp
    bridge_ports all
    bridge_ageing 300
    bridge_fd 1
    post-up /etc/init.d/hostapd start“

    Meine wpa-conf ist:

    „#ctrl_interface=/var/run/wpa_supplicant
    #DIR=/var/run/wpa_supplicant
    #GROUP=netdev
    #update_config=1

    ctrl_interface=/var/run/wpa_supplicant
    eapol_version=1
    # 0: Der Treiber des Interfaces kümmert sich um das Scannen von Netzen und die $
    # Dieser Modus sollte benutzt werden, wenn man eine Verschlüsselung auf ein $
    # 1: wpa_supplicant kümmert sich um das Scannen von Netzen und die AP-Auswahl.
    # 2: Fast wie 0, es wird aber mit Hilfe von Sicherheitsrichtlinien und der SSID$
    #
    # Normalerweise funktioniert entweder Modus 1 oder Modus 2.
    ap_scan=1

    network={
    ssid="MEINESSID"
    scan_ssid=1
    proto=RSN
    key_mgmt=WPA-PSK
    pairwise=CCMP
    group=TKIP
    psk="MEINPSK"
    }

    Es gibt mehrere Fehler die abwechselnd bei unveränderter Konfiguration auftreten.

    1.[font="Times New Roman"] [/font]Das System bleibt bei „Configuring network interfaces...“ stehen und läuft erst weiter, wenn der WLAN-Stick entfernt wird.
    2.[font="Times New Roman"] [/font]Die Interfaces werden erfolgreich konfiguriert, jedoch bekommt die Bridge keine DHCP-Adresse. Daraufhin steht noch ein Fehler: „starting advanced IEEE 802.11 management: hostapdrmdir[ctrl_interface]: No such file or directory

    Der Fehler „can’t add wlan0 to bridge br0“ tritt seltsamer Weise nicht mehr auf seitdem ich den Post geschrieben habe.

    In der hostapd.conf gibt es eine Variable die „ctrl_interface“ heißt. Diese ist auch definiert mit „ctrl_interface=/var/run/hostapd“.

    Ich hoffe Ihr könnt mir weiterhelfen.
    (Danke auch für den Tipp mit den Anführungszeichen beim googlen; auf die Idee bin ich gar nicht gekommen. Hat nur leider auch keine ordentlichen Ergebnisse gegeben! [font="Wingdings"]L[/font])

    Ich wollte noch erwähnen, dass es bei Fehler 1 oft hilft den Stick in den anderen USB-Port zu stecken. Außerdem reicht selbst ein 2A Netzteil nicht aus, dass der Raspberry nicht abstürzt wenn ich den WLAN-Stick reinstecke.

    Einmal editiert, zuletzt von Bier123 (29. September 2013 um 13:17)

  • Ich versuche meine Xbox 360 mit ins Netzwerk einzubinden. Mein Raspberry muss jedoch weiterhin übers Netzwerk zu erreichen sein(mpd...)

    Als Ich die Interfacedatei der ersten Threadseite genommen habe, war mein Pi übers Internet nichtmehr zu erreichen. Er verbindet sich nicht mit dem Wlan Netz.


    Hat jemand eine Idee?

  • Hallo,
    so kann das nicht funktionieren
    * entferne die Konfiguration der Bridge (bridge-utils deinstallieren)
    * und auch die für hostapd (hostapd deinstallieren) (nur Bier123)

    hostapd erzeugt einen WLAN-Accesspoint, das brauchst Du ja nicht, es soll ja eine „normale“ Verbindung im Infrastrukturmodus zum vorhandenen WLAN-Router aufgebaut werden

    Du kannst ein WLAN-Interface nur zu eine Bridge hinzufügen, wenn dieses sich im AP-Mode befindet, was hier ja nicht geht. hostapd selbst würde in diesem Fall die Bridge erzeugen und die WLAN-Schnittstelle hinzufügen.

    Über Ethernet des Pi soll die Verbindung an die xBox durchgereicht werden.

    Dazu muss
    * die Ethernetschnittstelle des Pi statisch konfiguriert werden
    * wähle dazu eine IP-Adresse die nicht im Adresspool des DHCP-Servers des Routers verwendet wird
    * dadurch wird automatisch eine entsprechende Netzwerkroute angelegt
    * aktiviere dann IP-Forwarding
    * wenn es sich um die ältere xBox mit fast Ethernet handelt, dann benötigst Du vermutlich noch ein sog. Crosskabel für die Verbindung
    * xBox ebenfalls statisch konfigurieren

    das war es.

    Die WLAN-Verbindung war ja bereits ok, der Fehler dürfte nur durch die fehlerhafte Konfiguration der Bridge entstehen.

    Ist wpa_supplicant installiert?

    Code
    dpkg -S wpasupplicant


    Probleme/funktioniert nicht?

    * Alternative über NAT
    * DHCP-Server
    * die xBox bekommt automatisch über DHCP eine IP-Adresse
    * wpa_supplicant.conf ist nicht erforderlich

    Konfiguration der interfaces:


    Konfiguration starten:

    Code
    sudo /etc/init.d/networking restart


    Konfiguration anschließend überprüfen:

    Code
    ifconfig -a
    iwconfig wlan0
    route -n
    ps aux | grep -i [d]ns

    Einmal editiert, zuletzt von Flashmob (16. Dezember 2013 um 14:56)

  • Danke Flashmob.

    Also ich deinstalliere die Bridge Utils.

    Danach konfiguriere ich folgendermaßen: (interfaces)
    Wlan0 static
    Adresse Gateway und Netmask aus meiner Routerpool (192.168.178.255)
    Danach setze ich die eth0 auf static
    Hier setze ich die Adresse und die Netmask aus einem eigenen Pool (192.168.137.255)
    Hierbei nutze ich die selbe wie Windows sie dem Lanport zuordnet, da die Xbox aus der Vergangenheit so funktionierend am Windows lief.

    Dann habe ich ja 2 logisch getrennte Netze.

    Ab hier wird es spannend.
    Wpa Supplicant ist nicht installiert. Mein Stick verbindet sich durch den wpa-ssid und dem wpa-psk Schlüssel in der interfaces.
    Wie verbinde ich nun die beiden Netze?

    Einmal editiert, zuletzt von SparklingCell8655 (16. Dezember 2013 um 15:23)


  • Also ich deinstalliere die Bridge Utils.


    Genau.


    Wpa Supplicant ist nicht installiert. Mein Stick verbindet sich durch den wpa-ssid und dem wpa-psk Schlüssel in der interfaces.


    Das startet den Supplicanten. Dieser gehört zur Basisinstallation des Systems.

    Beachte das zweite Beispiel (Nachtrag) in meinem vorhergehenden Beitrag, das funktioniert ganz sicher. WLAN kannst Du statisch oder wie zuvor über DHCP konfigurieren. Die xBox ebenfalls automatisch über DHCP.

  • Hallo zusammen.

    Ich habe auch vor eine Bridge zu machen. Der Minicomputer ist jetzt per Lan am Router und automatisch so im Internet. Mit meinem USB Wlan Stick habe ich einen AP erstellt.
    Meine Grundlage ist diese Anleitung:

    http://wiki.debianforum.de/WLAN-Access-Po…d_und_USB-Stick

    Bei
    # brctl addif br0 eth0
    stürzt Debian ab.

    Gibt es eine andere Möglichkeit über den USB Stick ins Internet zu gelangen?

    Danke!

    Edit:
    http://wiki.ubuntuusers.de/WLAN_Router

    Auf dieser Seite hat es ein Script, das ohne eine Bridge mein Wunsch erfüllen könnte.
    Kann das jemand bestätigen?

    Einmal editiert, zuletzt von medi (18. Februar 2014 um 13:30)

  • ...Kann das jemand bestätigen?


    Bestätigen kann ich das nicht, da ich meine Router manuell konfiguriert habe. Ich habe mal flüchtig über die 350 Zeilen gesehen. Das sieht ganz gut aus. Warum probierst Du es nicht einfach aus? BTW: Da geht es um einen Router - keine Bridge.

  • Hallo,
    ein Bridge ist auch kein Problem, wenn du hostapd entsprechend konfigurierst. hostapd erzeugt dann die Bridge, Du musst der Bridge anschließend nur die Ethernetschnittstelle hinzufügen.

    DHCP-Server bleibt dann weiterhin der vorgeschaltete vorhandene Router, die Verbindung zwischen Ethernet und WLAN des Pi ist transparent.

    Einmal editiert, zuletzt von Flashmob (24. Februar 2014 um 08:18)

  • Hallo,

    nachdem ich den Thread ganz durchgelesen habe, melde ich mich jetzt auch mal.

    Mein Ziel ist die WLAN-Bridge, um ein Gerät ohne WLAN aber mit eth-Port ans Netz zu bringen.

    Im Prinzip funktioniert meine Lösung, die der von flashmob entspricht schon.

    Aber leider nur "halbautomatisch". Nach dem booten ist br0 vorhanden und hat eine statische IP.

    Es wird aber die wlan0-Section in /etc/network/interfaces nicht (richtig) abgearbeitet. Zeilenende des Files ist LF, hostapd ist im rc2.d dekativiert. Hostapd funktioniert übrigens hervorragend, wenn ich es aktiviere!

    Wahrscheinlich passiert ein Fehler, aber er wird beim Booten nirgends ausgegeben. Im syslog ist auch nichts zu erkennen.

    Am Raspi (Kernel 3.6.11, Raspian) habe ich eine serielle Console dran, um die manuellen Kommandos absetzen zu können.

    Ich suche schon ein paar Tage nach einer Debugmöglichkeit für /etc/networks/interfaces. Auf der Console erscheinen die Startupmeldungen dummerweise nicht, die man an einem angeschlossenen Monitor sehen würde.

    Das ifup command kommt dem am Nächsten was beim Booten passiert. Ich führe es also nach dem Booten manuell aus. Mit verbose sehe ich, dass alle commands in /etc/network/interfaces abgearbeitet werden:

    Trotz einiger Fehlermeldungen (RTNETLINK answers: File exists, Failed to bring up wlan0), ist die Verbindung dann hergestellt.

    Aber wie gesagt nur bei der "zu Fuß" Aktion.

    Hier noch der Inhalt von /etc/network/interfaces:

    Wie bekomme ich am Besten heraus, welche Fehler beim Abarbeiten von /etc/network/interfaces passieren?

    Gruß, Onurbi

    Einmal editiert, zuletzt von onurbi (3. März 2014 um 23:02)

  • Weitere Forschung ergab folgendes:

    die MAC-Adresse des br0 ist die selbe wie die vom wlan0. Muß ich mal drüber nachdenken, ob das so sein muß. Ich dachte eine Bridge kann ich mit einem Switch vergleichen und der hat pro Port auch eine andere MAC.

    Darüber habe ich nochmal die Konfig von ruedigerp verglichen: iface wlan0 inet manual!

    Ich hatte mir eingebildet dem wlan0 eine andere IP geben zu müssen, als dem br0.

    Das geht auch, wenn ich "ifup wlan0" manuell ausführe. Aber eben nicht, beim Booten. Mir ist zwar nicht klar wo der Unterschied liegt, aber jetzt bin ich erst mal happy, dass es mit manual überhaupt funktioniert!

    Beim Googlen habe ich allerdings schon gelesen, dass das brctl Package nach einem Update auf den Kernel 3.10.25+ nicht mehr funktioniert.

    Aber es gibt schon Abhilfe:

    http://www.linux-tips-and-tricks.de/raspberry/238-…ebian-raspberry

    Die Lösung geht über einen Router. Das iptables Thema ist ganz schön umfangreich zum Einlesen, zuerst kann man aber erst mal die Lösung blind testen, so wie sie da beschrieben ist.

    Gruß, Onurbi

  • Nachdem ich auch sehr lange mit den Bridge-Utils herumprobiert und nicht zum Laufen bekommen habe fand ich im Raspian die NetworkManager Lösung am simpelsten. Diese wollte ich auch gerne bei Raspbmc anwenden, das den NetworkManager ja schon vorinstalliert hat.
    Leider stellte sich das als gar nicht so einfach heraus, weil die Erstellung einer Bridge in den Raspbmc Settings so nicht vorgesehen ist.
    Von meiner Rapian-Konfiguration hatte ich allerdings noch die "Wired connection 1", die in /etc/NetworkManager/system-connections zu finden ist. Diese unterscheidet sich lediglich von der in Raspbmc vorgebenen "Wired connection 1" in den Zeilen unter "[ipv4]". In der Rasbian-Version mit Bridge über NetworkManager steht nämlich lediglich "method=shared" und das war's.
    Wenn man die "Wired connection 1" im Raspbmc händisch ändert und NetworkManager neu startet wird die Bridge eingerichtet.
    Beim Start wird diese Änderung jedoch wieder mit den Default-Werten überschrieben und meine Suche nach der Änderung der Default-Werte in den "Eingeweiden" des Raspbmc-Systems waren erfolglos.

    Nach vielem Herumprobieren habe ich dann ein Skript geschrieben und analog wie hier beschrieben in den Startvorgang von Raspbmc "geschmuggelt". Das Skript kopiert eine modifizierte "Wired connection 1" in /etc/NetworkManager/system-connections und startet NetworkManager neu. Das ist zwar nicht direkt kanonisch, aber es funktioniert und sollte für die meisten Fälle ausreichen. Hier ist die Schritt-für-Schritt Anleitung.

    Code
    sudo cp "/etc/NetworkManager/system-connections/Wired connection 1" /home/pi"
    Code
    sudo nano "/home/pi/Wired connection 1"

    Den Text so anpassen, dass er wie folgt aussieht

    Code
    [ipv4]
    method=shared


    Alles andere unterhalb der [ipv4] kann raus.

    Jetzt das Skript anlegen

    Code
    sudo nano /scripts/nm-overwrite.sh

    Das Skript besteht aus den folgenden Zeilen

    Bash
    #!/bin/bash
    cp "/home/pi/Wired connection 1" /etc/NetworkManager/system-connections
    service network-manager restart

    Nun das Skript mit

    Code
    sudo chmod +x /scripts/nm-overwrite.sh


    ausführbar machen

    Nun das Ganze in den Startvorgang z.B. bei update-checker.conf integrieren

    Code
    sudo nano /etc/init/update-checker.conf

    Der entscheidende "script"-Part in der Datei update-checker.conf sieht dann so aus

    Code
    script
      cd /scripts/upd_sys
      if [ ! -f getfile.sh ]; then mv getfile.sh.bak getfile.sh; fi
      chmod +x *.sh
      ./getfile.sh
      # overwrite NetworkManager settings
      cd /scripts
      ./nm-overwrite.sh
    end script

    Neu starten, läuft :thumbs1:

    Einmal editiert, zuletzt von Lard!!! (3. August 2014 um 12:57)

  • Hallo Lard!!!,

    die Lösung müß ich mir demnächst auch anschauen!

    Mich interessiert dann, ob es unter dem normalen Raspian durch nachinstallieren vom NetworkManager auch funktioniert.

    /etc/init/update-checker.conf ist anscheinend Bestandteil des Raspbmc, aber es kommt ja nur darauf an, dass das Script beim Hochfahren läuft. Ich schreibe dann halt ein Startscript, das ich in rc2.d verlinke.

    Könntest Du bitte noch die Kernelversion nennen, unter der Du arbeitest?

    Gruß, Onurbi

  • Hallo Onurbi!

    Für Raspian gibt es diese Beschreibung hier. Das ist ein wirklich simpler Weg.
    Dein Startskript würde mich auch interessieren, denn die Lösung mit update-checker.conf ist nicht direkt "sauber". Ein Eintrag des Skripts in die rc.local ist vielleicht auch möglich, scheinbar wrid die rc.local teilweise einfach nicht ausgeführt.
    Kernelversion:

    Code
    pi@raspbmc:~$ uname -a
    Linux raspbmc 3.12.21 #2 PREEMPT Wed Jun 11 04:53:06 UTC 2014 armv6l GNU/Linux


    Schreib mal, ob erfolgreich! Ich finde, das sollte auch in die Raspbmc settings aufgenommen werden, weil wirklich eine simple Einstellung. Wenn das verifiziert ist, tun sich die Entwickler dort mit der Aufnahme sicherlich leichter.

  • Hallo Lard!!!,

    die Doku zum NetworkManager ist eine gute Quelle.

    Da mein Einsatz headless erfolgen soll, wird die erste Suche sein, ob auch alles auf der commandline zu konfigurieren und zu managen möglich ist.

    Werde aber erst dazu kommen, wenn das Wetter schlechter wird.

    Gruß, Onurbi.

    Einmal editiert, zuletzt von onurbi (3. August 2014 um 14:35)

  • Hi,

    mit der Anleitung von Lard hat es bei mir super geklappt.
    Aber um von Geräten aus dem Netzwerk auch auf Geräte an der Bridge zugreifen zu können war bei mir noch ein flush der iptables nötig

    Code
    sudo iptables -F


    Das einzige was jetzt noch gut wäre wäre jetzt die Geräte am eth0 in das gleiche Subnetz zu bekommen wie am wlan0. Hat da noch wer eine Idee?
    Hab nur herausgefunden dass das Subnetz 10.42.0.x am eth0 hardcoded ist.


    Danke und Gruß
    Scanto

    Einmal editiert, zuletzt von scanto (14. September 2014 um 16:02)

Jetzt mitmachen!

Du hast noch kein Benutzerkonto auf unserer Seite? Registriere dich kostenlos und nimm an unserer Community teil!