Pi 3 B WLan mit selbstkompiliertem Kernel

L I V E Stammtisch ab 20:30 Uhr im Chat
  • Hallo zusammen,

    ich möchte auf meinem Pi 3 den RT Patch für Linux nutzen. Dafür bin ich nach folgender Anleitung vorgegangen: http://www.frank-durr.de/?p=203 (Mit dem einzigen Unterschied, dass ich die aktuelle Version verwendet habe und alles auf dem Pi direkt kompilliert habe)

    Der damit erzeugte Kernel läuft auch, allerdings lässt sich das WLAN nicht starten.

    Um das Problem einzugrenzen habe ich den Kernel noch einmal ohne RT-Patch kompiliert mit dem selben Ergebnis, der Pi bootet aber das OnBoard-WLan funktioniert nicht. (Einzige Änderung in der Config ist ein Suffix was ich an den Namen vom Kernel angehängt habe um die Versionen zu unterscheiden)

    Ausgangspunkt ist das aktuelle Raspbian Jessie Lite vom März 2016 mit dem das WLAN anstandslos funktioniert.

    Wenn ich versuche das WLAN zu starten (sudo ifup wlan0) erscheint folgende Meldung:


    Code
    wpa_supplicant: /sbin/wpa_supplicant deamon failed to start
    run-parts: /etc/network/if-pre-up.d/wpa_supplicant exited with return code 1
    Failed to bring up wlan0

    Außerdem erscheinen in der syslog folgende Meldungen:

    Der Fehler führt bei Google immer nur zu Accesspoint mit dem RaspPi, was in meinem Fall aber nicht zutreffen sollte.

    Hat schon mal jemand einen Raspberrian Kernel auf einem Pi 3 selbst kompiliert?
    Hat jemand eine Idee wie ich den Fehler weiter eingrenzen kann?
    Ist der nl80211-Treiber vllt. nicht bei den Kernel-Quellen dabei und muss extern bezogen werden?

    Gruß
    Chris

    PS: Ich hoffe ich habe den Beitrag im richtigen Bereich erstellt, falls nein möchte ich einen Moderator/Admin bitten ihn für mich zu verschieben.

    Einmal editiert, zuletzt von ChrisvA (5. April 2016 um 17:17)

  • Hallo Chris,

    hast Du im Kernel-Konfiguratior / Menu-Konfigurator WLAN aktiviert?

    Ohne dürfte Dir da was Entscheidendes fehlen...

    Beste Grüße

    Andreas

    Ich bin wirklich nicht darauf aus, Microsoft zu zerstören. Das wird nur ein völlig unbeabsichtigter Nebeneffekt sein.
    Linus Torvalds - "Vater" von Linux

    Linux is like a wigwam, no windows, no gates, but with an apache inside dancing samba, very hungry eating a yacc, a gnu and a bison.


  • Ist der nl80211-Treiber vllt. nicht bei den Kernel-Quellen dabei und muss extern bezogen werden?

    Wie ist jetzt, auf deinem PI3, die Ausgabe von:

    Code
    ldd $(which wpa_supplicant)


    ?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample


  • Hallo Chris,

    hast Du im Kernel-Konfiguratior / Menu-Konfigurator WLAN aktiviert?

    Ohne dürfte Dir da was Entscheidendes fehlen...

    Beste Grüße

    Andreas

    Da ich die Config aus dem vorhandenen (Jessie Lite Kernel) übernommen habe, gehe ich mal davon aus.

    Das ist die entsprechende menuconfig-Seite

    Wie ist jetzt, auf deinem PI3, die Ausgabe von:

    Code
    ldd $(which wpa_supplicant)


    ?


    Gruß
    Chris

    Einmal editiert, zuletzt von ChrisvA (5. April 2016 um 18:05)

  • Servus,
    statt Dich da zu verkopfen ... nimm doch einfach das -> Image von EMLID <- ... ;)

    btw: was versprichst Du Dir von einem RT-Kernel?
    Für "normale" Systeme ( Web-Server, Mediacenter, ... ) ist so ein RT-Kernel afaik oft kontraproduktiv ...
    Ausserdem ist "Realtime" eh nicht möglich - nur die Latenzzeiten werden kleiner (das ist auf der EMLID-Seite schön dargestellt)

    cu,
    -ds-

  • Code
    libnl-3.so.200 => /lib/arm-linux-gnueabihf/libnl-3.so.200 (0x76d46000)
           libnl-genl-3.so.200 => /lib/arm-linux-gnueabihf/libnl-genl-3.so.200 (0x76d39000)

    Versuch mal manuell im Terminal, mit einer geeigneten "/etc/wpa_supplicant/wpa_supplicant.conf"-Datei, und poste die Ausgaben von:

    Code
    lsmod
    sudo wpa_supplicant -i wlan0 -Dnl80211 -c /etc/wpa_supplicant/wpa_supplicant.conf -d


    und

    Code
    iwconfig


    evtl. auch die anonymisierte Ausgabe von:

    Code
    sudo cat /etc/wpa_supplicant/wpa_supplicant.conf

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample


  • Servus,
    statt Dich da zu verkopfen ... nimm doch einfach das -> Image von EMLID <- ... ;)

    btw: was versprichst Du Dir von einem RT-Kernel?
    Für "normale" Systeme ( Web-Server, Mediacenter, ... ) ist so ein RT-Kernel afaik oft kontraproduktiv ...
    Ausserdem ist "Realtime" eh nicht möglich - nur die Latenzzeiten werden kleiner (das ist auf der EMLID-Seite schön dargestellt)

    cu,
    -ds-

    Da ich den Pi in einem balancierendem Roboter betreiben möchte, bin ich auf möglichst kleine maximale Latenzen angewiesen, vor allem wenn ich parallel was aufwändiges rechne, z.B. ne Bilderkennung für die Steuerung, die den Pi weitgehend auslasten dürfte.

    Den EMLID-Kernel habe ich auch schon mal gefunden, der stammt aber noch vom Januar und unterstützt damit nach meiner Information noch nicht den Raspberry Pi 3.


  • Wenn ich versuche das WLAN zu starten (sudo ifup wlan0) ...

    BTW: Du kannst auf dem PI3, den wpa_supplicant auch mit einer service-unit starten. Z. B.:

    Code
    :~ $ systemctl status wpa_supplicant-nl80211@wlan0.service
    ● wpa_supplicant-nl80211@wlan0.service - WPA supplicant daemon (interface- and nl80211 driver-specific version)
       Loaded: loaded (/lib/systemd/system/wpa_supplicant-nl80211@wlan0.service; enabled)
       Active: active (running) since Mon 2016-04-04 23:26:41 CEST; 19h ago
     Main PID: 286 (wpa_supplicant)
       CGroup: /system.slice/system-wpa_supplicant\x2dnl80211.slice/wpa_supplicant-nl80211@wlan0.service
               └─286 /sbin/wpa_supplicant -qq -c/etc/wpa_supplicant/wpa_supplicant-nl80211-wlan0.conf -Dnl80211 -iwlan0

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • @rpi444

    lsmod

    sudo wpa_supplicant -i wlan0 -Dnl80211 -c /etc/wpa_supplicant/wpa_supplicant.conf -d

    iwconfig

    Code
    lo        no wireless extensions.
    
    
    eth0      no wireless extensions.


    Hier fehlt das wlan0 schon, ich gehe mal davon aus, dass ich an dieser Stelle ansetzten muss.

    sudo cat /etc/wpa_supplicant/wpa_supplicant.conf

    Code
    country=GB
    ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
    update_config=1
    
    
    network={
    ssid="MySSID"
    psk="SecretKeyUnencrypted"
    key_mgmt=WPA-PSK
    }


    Die identische Datei funktioniert mit dem normalen Kernel, denke also nicht, dass hier das Problem ist.

    Gruß
    Chris

    PS: Schon mal danke für die Hilfe

    PS2:

    Code
    pi@RaspName:~ $ sudo systemctl status wpa_supplicant-nl80211@wlan0.service
    ● wpa_supplicant-nl80211@wlan0.service
      Loaded: not-found (Reason: No such file or directory)
      Active: inactive (dead)

    Einmal editiert, zuletzt von ChrisvA (5. April 2016 um 18:50)


  • [/b]lsmod

    Code
    country='GB'

    Der Treiber ist nicht geladen:

    Code
    brcmfmac              177635  0 
    brcmutil                5501  1 brcmfmac


    Wie sind auf deinem PI, die Ausgaben von:

    Code
    modinfo brcmfmac brcmutil
    sudo find /lib -iname '*brcmfmac*sdio.*'

    BTW: Betreibst Du deinen PI in GB?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (5. April 2016 um 19:00)


  • ... einem balancierendem Roboter ...


    ah ja, ok ... das ist natürlich ein Argument ...



    ... und unterstützt damit nach meiner Information noch nicht den Raspberry Pi 3.

    tja ... das deute ich mal als Hinweis, dass es nicht mit dem patchen getan ist und vermutlich irgendeine Firmware (noch) nicht angepasst wurde.
    Ich drück' Dir trotzdem mal die Daumen, dass Du das hinbekommst.
    cu,
    -ds-


  • PS2:

    Code
    pi@RaspName:~ $ sudo systemctl status wpa_supplicant-nl80211@wlan0.service
    ● wpa_supplicant-nl80211@wlan0.service
      Loaded: not-found (Reason: No such file or directory)
      Active: inactive (dead)

    Diese service-unit musst Du dir erstellen. Aber erst wenn das WLAN deines PI funktioniert.

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (5. April 2016 um 18:56)

  • Ich habe eben nochmal auf gut Glück etwas rumgespielt (iw dev wlan0 ausprobiert)

    und komme beim Kommando ifup wlan0 nun zu einer anderen Fehlermeldung in der syslog:

    Code
    Apr  5 18:21:18 raspName wpa_supplicant[596]: Could not read interface wlan0 flags: No such device
    Apr  5 18:21:18 raspName wpa_supplicant[596]: nl80211: Driver does not support authentication/association or connect commands
    Apr  5 18:21:18 raspName wpa_supplicant[596]: Could not read interface wlan0 flags: No such device
    Apr  5 18:21:18 raspName wpa_supplicant[596]: Could not read interface wlan0 flags: No such device
    Apr  5 18:21:18 raspName wpa_supplicant[596]: WEXT: Could not set interface 'wlan0' UP
    Apr  5 18:21:18 raspName wpa_supplicant[596]: wlan0: Failed to initialize driver interface

    Der Teil "Driver does not support ..." war bisher nicht da. An der "No such device" Meldung ändert das aber leider nichts.

    Wie ist der onboard WLAN-Chip eigentlich auf dem Board angeschlossen, per USB?

    Gruß
    Chris

    Einmal editiert, zuletzt von ChrisvA (6. April 2016 um 08:23)


  • An der "No such device" Meldung ändert das aber leider nichts.

    Wie sind auf deinem PI3, jetzt die Ausgaben von:

    Code
    modinfo brcmfmac brcmutil
    sudo find /lib -iname '*brcmfmac*sdio.*'
    lsmod | grep -i brcmfmac


    ?

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • pi@RaspName:~ $ modinfo brcmfmac brcmutil

    pi@raspName:~/tmp/t3 $ sudo find /lib -iname '*brcmfmac*sdio.*'


    lsmod | grep -i brcmfmac liefert keine Ausgabe.

    Gruß
    Chris
    PS: Habe in der Zwischenzeit selbst herausgefunden, dass der WLAN per SDIO angebunden ist. (Wie man auch der Ausgabe hier entnehmen kann :) )

    PS2:
    Bin gerade auf diesen Eintrag gestoßen um SDIO aufzulisten: https://www.raspberrypi.org/forums/viewtop…137932&p=917765
    Komischerweise heißt das Verzeichnis bei mit nicht mmc1 sondern mmc0.

    root@raspName:/sys/kernel/debug/mmc0# cat ios

    Code
    clock:          50000000 Hz
    actual clock:   41666666 Hz
    vdd:            21 (3.3 ~ 3.4 V)
    bus mode:       2 (push-pull)
    chip select:    0 (don't care)
    power mode:     2 (on)
    bus width:      2 (4 bits)
    timing spec:    2 (sd high-speed)
    signal voltage: 0 (3.30 V)

    root@raspName:/sys# ls -R /sys/bus/sdio/

    Code
    /sys/bus/sdio/:
    devices  drivers  drivers_autoprobe  drivers_probe  uevent
    
    
    /sys/bus/sdio/devices:
    
    
    /sys/bus/sdio/drivers:


    Er hat wohl Probleme mit dem sdio Bus

    Einmal editiert, zuletzt von ChrisvA (6. April 2016 um 09:41)


  • lsmod | grep -i brcmfmac liefert keine Ausgabe.

    Dann versuch mal:

    Code
    sudo modprobe -v brcmfmac
    lsmod | grep -i brcmfmac

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

  • pi@raspName:/sys/kernel $ sudo modprobe -v brcmfmac

    Code
    lsmod | grep -i brcmfmacinsmod /lib/modules/4.1.20-v7-MyComp+/kernel/drivers/net/wireless/brcm80211/brcmutil/brcmutil.ko
    
    
    insmod /lib/modules/4.1.20-v7-MyComp+/kernel/drivers/net/wireless/brcm80211/brcmfmac/brcmfmac.ko

    pi@raspName:/sys/kernel $ lsmod | grep -i brcmfmac

    Code
    brcmfmac              177589  0
    brcmutil                5493  1 brcmfmac
    cfg80211              407558  1 brcmfmac

    Jetzt ist zumindest einen sdio-Treiber da aber noch immer keine Geräte:
    pi@raspName:/sys/kernel $ sudo ls -R /sys/bus/sdio/

    Gruß Chris

    Einmal editiert, zuletzt von ChrisvA (6. April 2016 um 09:48)


  • Jetzt ist zumindest einen sdio-Treiber da aber noch immer keine Geräte:
    pi@raspName:/sys/kernel $ sudo ls -R /sys/bus/sdio/

    Code
    /sys/bus/sdio/:
    devices  drivers  drivers_autoprobe  drivers_probe  uevent
    
    
    /sys/bus/sdio/devices:

    Schreib mal den Treiber in die "/etc/modules"-Datei, mach ein reboot des PI3 und poste danach die Ausgaben von:

    Code
    ls -R /sys/bus/sdio/
    lsmod | grep -i brcmfmac
    iwconfig
    ip a

    EDIT:

    ... und die Ausgabe von:

    Code
    dmesg | grep -iE 'mmc1|brcm'

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (6. April 2016 um 09:56)

  • pi@raspName:~ $ cat /etc/modules

    Code
    # /etc/modules: kernel modules to load at boot time.
    #
    # This file contains the names of kernel modules that should be loaded
    # at boot time, one per line. Lines beginning with "#" are ignored.
    
    
    brcmfmac

    pi@raspName:~ $ lsmod | grep -i brcmfmac

    Code
    brcmfmac              177589  0
    brcmutil                5493  1 brcmfmac
    cfg80211              407558  1 brcmfmac

    pi@raspName:~ $ ls -R /sys/bus/sdio/

    pi@raspName:~ $ iwconfig

    Code
    lo        no wireless extensions.
    
    
    eth0      no wireless extensions.

    pi@raspName:~ $ ip a

    pi@raspName:~ $ dmesg | grep -iE 'mmc1|brcm'

    Code
    [    2.874051] usbcore: registered new interface driver brcmfmac


    Gruß
    Chris


  • pi@raspName:~ $ dmesg | grep -iE 'mmc1|brcm'

    Code
    [    2.874051] usbcore: registered new interface driver brcmfmac

    Hm, da wird betr. wlan-device nichts geladen. Schau mal in der Ausgabe von:

    Code
    systemctl list-units


    ob sich dort so ähnliche Zeilen befinden:

    Zitat


    sys-devices-platform-soc-3f300000.mmc-mmc_host-mmc1-mmc1:0001-mmc1:0001:1-net-wlan0.device loaded active plugged /sys/devices/platform/soc/

    Zitat


    sys-subsystem-net-devices-wlan0.device                     loaded active plugged /sys/subsystem/net/devices/wlan0


    Man kann auch den status abfragen, mit systemctl. Z. B.:

    Code
    :~ $ systemctl status sys-devices-platform-soc-3f300000.mmc-mmc_host-mmc1-mmc1:0001-mmc1:0001:1-net-wlan0.device
    ● sys-devices-platform-soc-3f300000.mmc-mmc_host-mmc1-mmc1:0001-mmc1:0001:1-net-wlan0.device - /sys/devices/platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/net/wlan0
      Loaded: loaded
      Active: active (plugged) since Tue 2016-04-05 23:29:18 CEST; 10h ago
      Device: /sys/devices/platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/net/wlan0
    Code
    :~ $ systemctl status sys-subsystem-net-devices-wlan0.device
    ● sys-subsystem-net-devices-wlan0.device - /sys/subsystem/net/devices/wlan0
      Loaded: loaded
      Active: active (plugged) since Tue 2016-04-05 23:29:18 CEST; 10h ago
      Device: /sys/devices/platform/soc/3f300000.mmc/mmc_host/mmc1/mmc1:0001/mmc1:0001:1/net/wlan0

    EDIT:

    Evtl. auch die Ausgaben von:

    Code
    systemctl --failed


    und eine evtl. lange Liste aller installierten units (... auch der z. Zt. nicht aktiven, geladenen units), mit:

    Code
    systemctl list-unit-files

    The most popular websites without IPv6 in Germany.  IPv6-Ausreden

    Meine PIs

    PI4B/8GB (border device) OpenBSD 7.4 (64bit): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server

    PI3B+ FreeBSD 14.0-R-p3 (arm64): SSH-Serv., WireGuard-Serv., ircd-hybrid-Serv., stunnel-Proxy, Mumble-Serv., ddclient

    PI4B/4GB Bullseye-lite (64bit; modifiziert): SSH-Server, WireGuard-Server, ircd-hybrid-Server, stunnel-Proxy, Mumble-Server, botamusique, ample

    Einmal editiert, zuletzt von rpi444 (6. April 2016 um 10:27)

Jetzt mitmachen!

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