WLAN Stick Treiber kompilieren unter Kernel rbp2-4.19.122-2-osmc

  • Hallo zusammen.


    ich nutze schon ein paar Jahre den Raspi als Mediaplayer unter OSMC.

    jetzt bin ich gezwungen einen WLAN Stick statt des internen WLAN zu verwenden.

    Warum, wollte ich jetzt nicht unbedingt darlegen, da mein Posting eh schon recht lang wird.

    ich sage nur soviel: der Raspberry 3B wird in einem Metallgehäuse verbaut und muss trotzdem mit Speed über eine größere Distanz senden.

    Ich habe jetzt 2 WLAN Sticks zu Auswahl.

    1.) tp-link TL-WN823N mit einem rtl8192eu Chip

    2.) Netgear AC600 Model A6100 mit einem rtl8811 Chip

    mir persönlich wäre der Netgear lieber, darum bezieht sich mein Posting auf diesen, obwohl das Problem beim tp-link identisch ist.


    also....


    nachdem ich mehrere Tage versucht habe den treiber zu kompilieren, habe ich nochmal ganz vorne angefangen, damit ich alle Schritte und Fehlermeldungen für die Spezialisten unter euch zusammen habe.


    um nachzusehen ob das Problem auch schon früher bestand habe ich eine ältere Version vom OSMC installiert, und zwar : OSMC_TGT_rbp2_20180805.img mit dem Kernel rbp2-4.14.34-4-osmc

    dann habe ich für den nächsten Schritt das gemacht:


    sudo apt-get install usbutils


    dann


    usb-devices


    erhalten habe ich dann unter anderem das:


    T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 4 Spd=480 MxCh= 0

    D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1

    P: Vendor=0846 ProdID=9052 Rev=02.00

    S: Manufacturer=Realtek

    S: Product=802.11ac WLAN Adapter

    S: SerialNumber=00e04c000001

    C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA

    I: If#= 0 Alt= 0 #EPs= 6 Cls=ff(vend.) Sub=ff Prot=ff Driver=rtl8812au


    Man sieht deutlich dass das OSMC den Treiber onboard hat.

    aber OSMC wird ja spätestens alle 2 Montate geupdatet.

    das habe ich dann mit :


    sudo apt-get dist-upgrade


    erledigt.

    dabei wurde der Kernel rbp2-4.19.122-2-osmc installiert.


    ein weiteres :


    usb-devices


    ergab das hier:


    T: Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 4 Spd=480 MxCh= 0

    D: Ver= 2.10 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1

    P: Vendor=0846 ProdID=9052 Rev=02.00

    S: Manufacturer=Realtek

    S: Product=802.11ac WLAN Adapter

    S: SerialNumber=00e04c000001

    C: #Ifs= 1 Cfg#= 1 Atr=e0 MxPwr=500mA

    I: If#=0x0 Alt= 0 #EPs= 6 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)


    der Treiber ist weg.

    ich hätte mich ja gefreut wenn ich im normalen Repository einen Treiber gefunden hätte den ich mit apt-get hätte installieren können.

    Aber wenn man nicht weiß wonach man suchen muss, findet man auch nichts.

    Und so gut bin ich weiß Gott nicht.

    Also fand ich im internet das hier:


    https://github.com/morrownr/8812au


    Ich folgte den Anweisungen:


    sudo apt-get install -y rbp2-headers-$(uname -r) bc build-essential dkms git libelf-dev


    mkdir ~/src


    cd ~/src


    git clone https://github.com/morrownr/8812au.git


    cd 8812au


    sudo ./raspi32.sh


    sudo ./install-driver.sh


    bis hier hin war es noch einefach.

    aber beim letzten Befehl bekam ich das hier:


    Running: install-driver.sh version 20210421

    Start installation.

    Copying source files to: /usr/src/rtl8812au-5.9.3.2

    Copying 8812au.conf to: /etc/modprobe.d


    Creating symlink /var/lib/dkms/rtl8812au/5.9.3.2/source ->

    /usr/src/rtl8812au-5.9.3.2


    DKMS: add completed.

    Error! Your kernel headers for kernel 4.19.122-2-osmc cannot be found.

    Please install the linux-headers-4.19.122-2-osmc package,

    or use the --kernelsourcedir option to tell DKMS where it's located

    An error occurred. dkms build error = 1

    Please report this error.


    bei meiner weiteren Recherche im Internet fand ich eine Lösung:


    sudo ln -s /usr/src/rbp2-headers-$(uname -r) /lib/modules/$(uname -r)/build


    und nach einem (der sudo ./install-driver.sh verlangte das von mir):


    sudo ./remove-driver.sh


    machte ich erneut:


    sudo ./install-driver.sh


    und erhielt das hier:


    Running: install-driver.sh version 20210421

    Start installation.

    Copying source files to: /usr/src/rtl8812au-5.9.3.2

    Copying 8812au.conf to: /etc/modprobe.d


    Creating symlink /var/lib/dkms/rtl8812au/5.9.3.2/source ->

    /usr/src/rtl8812au-5.9.3.2


    DKMS: add completed.


    Kernel preparation unnecessary for this kernel. Skipping...


    Building module:

    cleaning build area....

    'make' -j4 KVER=4.19.122-2-osmc KSRC=/lib/modules/4.19.122-2-osmc/build....(bad exit


    status: 2)

    Error! Bad return status for module build on kernel: 4.19.122-2-osmc (armv7l)

    Consult /var/lib/dkms/rtl8812au/5.9.3.2/build/make.log for more information.

    An error occurred. dkms build error = 10

    Please report this error.


    Naja, nicht sehr aussagekräftig.

    darum machte ich alleine wegen den besseren aussagen:


    make


    und bekam das, was mich unter anderem bei 2 Sticks tagelang beschäftigt hat :


    make ARCH=arm CROSS_COMPILE= -C /lib/modules/4.19.122-2-osmc/build


    M=/home/osmc/src/8812au modules

    make[1]: Entering directory '/usr/src/rbp2-headers-4.19.122-2-osmc'

    CC [M] /home/osmc/src/8812au/core/rtw_cmd.o

    In file included from ./include/linux/compat.h:16,

    from ./include/linux/ethtool.h:17,

    from ./include/linux/netdevice.h:41,

    from /home/osmc/src/8812au/include/osdep_service_linux.h:31,

    from /home/osmc/src/8812au/include/osdep_service.h:53,

    from /home/osmc/src/8812au/include/drv_types.h:27,

    from /home/osmc/src/8812au/core/rtw_cmd.c:17:

    ./include/linux/if.h:28:10: fatal error: sys/socket.h: No such file or directory

    #include <sys/socket.h> /* for struct sockaddr. */

    ^~~~~~~~~~~~~~

    compilation terminated.

    make[2]: *** [scripts/Makefile.build:304: /home/osmc/src/8812au/core/rtw_cmd.o] Error 1

    make[1]: *** [Makefile:1522: _module_/home/osmc/src/8812au] Error 2

    make[1]: Leaving directory '/usr/src/rbp2-headers-4.19.122-2-osmc'

    make: *** [Makefile:2412: modules] Error 2


    OK...


    irgendwo fand ich noch dir Empfehlung die socket.h aus dem linux Verzeichnis zu nehmen und ein sys Verzeichnis zu erstellen und diese dort hinein zu kopieren.

    das habe ich damals auch gemacht und erhielt weitere Fehlermeldungen.

    Diese waren aber derart unverständlich das ich aufgegeben habe und neu anfing.

    leider kann ich diese Fehler momentan nicht reproduzieren, womit ich die leider auch momentan nicht posten kann.



    Zu diesem gesamten Vorgang habe ich jetzt das ganze Internet rauf und runter.

    aber zum ersten habe ich nicht viel gefunden, und zum zweiten sind meine Englisch Kentnisse auch nicht die allerbesten.


    Ich hoffe mir kann jemand hier helfen.



    Herzlichen Dank schonmal im Voraus.

  • Vielleicht hift Dir dieser Beitrag RE: Treiber für externen WLAN-Stick installieren von Bernd666 weiter.



    //Edit: Fast übersehen, willkommen im Forum! ;)

    Danke schön für das "willkommen" :)


    und herzlichen Dank für die schnelle Antwort


    ich habe mir den Beitrag und den treiber angesehen.

    Prinzipiell ist es die gleiche Anleitung wie bei dem Treiber den ich verwendet habe, sowohl bei dem einen als auch bei dem anderen Stick.

    Das der Beitrag aus dem Jahr 2018 stammt wie das alte Image was ich verwendet habe und wo der treiber auch schon onboard war, lässt mich vermuten das ich auf die gleichen Probleme stoßen werde.

    Zumal ich vermute das bei dem neuen Kernel irgendetwas geändert wurde was sich auf die kompilierung auswirkt.


    aber trotzdem werde ich es versuchen sobald ich diese Zeile aus der Anleitung:


    Code
    sudo apt-get install linux-image-rpi-rpfv linux-headers-rpi-rpfv raspberrypi-kernel-headers dkms build-essential bc


    für das OSMC angepasst bekomme.

    ich glaube "linux" werde ich durch "rbp2" ersetzen müssen und noch einiges mehr..

    kannst du mir dabei helfen?

    Leider bin ich ein "Windows" verwöhneter und versauter "Schnösel".. ^^

  • wie vermutet, bei "make":


    make ARCH=arm CROSS_COMPILE= -C /lib/modules/4.19.122-2-osmc/build M=/home/osmc/rtl8812AU/rtl8812AU_8821AU_linux modules

    make[1]: Entering directory '/usr/src/rbp2-headers-4.19.122-2-osmc'

    CC [M] /home/osmc/rtl8812AU/rtl8812AU_8821AU_linux/core/rtw_cmd.o

    In file included from ./include/linux/compat.h:16,

    from ./include/linux/ethtool.h:17,

    from ./include/linux/netdevice.h:41,

    from /home/osmc/rtl8812AU/rtl8812AU_8821AU_linux/include/osdep_service_linux.h:35,

    from /home/osmc/rtl8812AU/rtl8812AU_8821AU_linux/include/osdep_service.h:41,

    from /home/osmc/rtl8812AU/rtl8812AU_8821AU_linux/include/drv_types.h:32,

    from /home/osmc/rtl8812AU/rtl8812AU_8821AU_linux/core/rtw_cmd.c:22:

    ./include/linux/if.h:28:10: fatal error: sys/socket.h: No such file or directory

    #include <sys/socket.h> /* for struct sockaddr. */

    ^~~~~~~~~~~~~~

    compilation terminated.

    make[2]: *** [scripts/Makefile.build:304: /home/osmc/rtl8812AU/rtl8812AU_8821AU_linux/core/rtw_cmd.o] Error 1

    make[1]: *** [Makefile:1522: _module_/home/osmc/rtl8812AU/rtl8812AU_8821AU_linux] Error 2

    make[1]: Leaving directory '/usr/src/rbp2-headers-4.19.122-2-osmc'

    make: *** [Makefile:1622: modules] Error 2


    bei diesem Kernel gibt es kein "sys" Verzeichnis in /usr/src/rbp2-headers-4.19.122-2-osmc und somit auch keine "socket.h"


    aber danke für deine Mühen.

  • Hallo..


    Ich bin ein Schritt weiter, obwohl ich mir nicht sicher bin ob es der Richtige ist.


    Ich habe die socket.h aus dem Verzeichnis :

    /usr/src/rbp2-headers-4.19.122-2-osmc/include/linux

    (es gibt mehrere verschieden "socket.h, aber es ist die einzige in der struct sockaddr. mehrfach vorkomt)

    in zwei "sys" verzeichnisse kopiert.

    zu einen /sys/ (bereits vorhaden aber leer)

    und

    /usr/src/rbp2-headers-4.19.122-2-osmc/sys/ (selbst erstellt, da nicht vorhanden)


    Dann habe ich wieder "make" versucht und das erhalten:



    und das ist der Punkt wo ich mit "probieren definitiv nicht weiter komme.


    ich bin für jede Hilfe dankbar.

  • Tja....ich weiß echt nicht was mit diesem kernel los ist...


    der Edimax EW-7811Un funtioniert auch nicht..


    Code
    T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  4 Spd=480 MxCh= 0
    D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
    P:  Vendor=7392 ProdID=7811 Rev=02.00
    S:  Manufacturer=Realtek
    S:  Product=802.11n WLAN Adapter
    S:  SerialNumber=00e04c000001
    C:  #Ifs= 1 Cfg#= 1 Atr=80 MxPwr=500mA
    I:  If#=0x0 Alt= 0 #EPs= 4 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)

    Und ein treiber lässt sich genauso wenig installieren.

    dabei habe ich es mit einer ganz frischen unveränderten installation versucht.


    Hat denn keiner eine Idee oder (das wäre der Wahnsinn) eine Lösung?

  • Danke..

    Aber damals (vor ein paar Jahren) habe ich mich für OSMC entschieden weil es das einzige war das zum ersten ohne KDE und Konsorten schneller startet und als einziges Image mit Kodi die Installation vom shutdown.py zuließ.

    (ja die Schaltung verwende ich selbst, allerdings zusammen mit einer infrarot empfänger Schaltung, zum bequemen ein und aus schalten vom Sofa aus mit meiner Harmony 650)

    Und jetzt scheue ich mich auf ein anderes Linux zu wechseln und weitere Überraschungen zu erleben da ich momentan dabei bin ein weiteres Media Center zu bauen das als Geburtstagsgeschenk gedacht ist, deswegen habe ich ne Deadline Ende nächster Woche.