Page 1 of 2

WLAN mit Edimax-Antenne

Posted: 27 Jan 2020, 17:38
by dennis.boldt
Hallo,

wir haben für den RevPi die folgenden WLAN-Antenne gekauft (bessere Reichweite als nur ein kleiner Dongle):

https://www.amazon.de/Edimax-EW-7811UAC ... 00JML3S66/

Leider wird die WLAN-Antenne nicht erkannt.

1) ifconfig: Zeigt leider kein wlan0 an
2020-01-27 17_32_02-pi@RevPi30265_ ~.png
2020-01-27 17_32_02-pi@RevPi30265_ ~.png (19.98 KiB) Viewed 12213 times
2) dmesg: Erkennt das Modell AC 600.
2020-01-27 17_34_19-pi@RevPi30265_ ~.png
2020-01-27 17_34_19-pi@RevPi30265_ ~.png (8.27 KiB) Viewed 12213 times
3) lsusb: Erkennt, dass es ein Edimax-Gerät ist
2020-01-27 17_32_38-pi@RevPi30265_ ~.png
2020-01-27 17_32_38-pi@RevPi30265_ ~.png (9.15 KiB) Viewed 12213 times
Was kann ich noch machen?

Viele Grüße
Dennis

Re: WLAN mit Edimax-Antenne

Posted: 27 Jan 2020, 18:11
by nicolaiB
Hallo Dennis,

der Treiber (Realtek rtl8812au) ist nicht im Kernel enthalten, weswegen du ihn selbst übersetzen musst. Eine Anleitung findest du z.B. hier:

https://edimax.freshdesk.com/support/so ... -than-v4-1

Gruß Nicolai

Re: WLAN mit Edimax-Antenne

Posted: 27 Jan 2020, 22:07
by dennis.boldt
Mit Umwegen haben ich den Treiber nun kompiliert bekommen.

Die Hauptherausforderung war, dass nicht alle Kernel-Scripte in raspberrypi-kernel-headers vorhanden sind.

1) Kernel header installieren

Code: Select all

# Verify, folder exists
cd /usr/src/linux-headers-4.9.76-rt60-v7+/

# Install headers 
sudo apt install raspberrypi-kernel-headers

# Verify, folder exists
cd /usr/src/linux-headers-4.9.76-rt60-v7+/
2) Build schlägt fehl

Nun kann man versuchen den Treiber entsprechend der Anleitung zu kompilieren:

Code: Select all

git clone https://github.com/aircrack-ng/rtl8812au.git
cd rtl8812au
make
Dabei kommt es zu dem folgeden Fehler:
scripts/basic/fixdep: not found
Es stellt sich heraus, dass u.a. fixdep nicht in komplilierter Variante vorhanden ist, wie es auf dem Raspi der Fall ist.

Siehe auch: [url]http://revolution.kunbus.de/forum/viewtopic.php?f=6&t=1270[/url]

3) Fehlende Kernel-Scripte installieren

Folgendes führt zu dem zu sehenden Fehler:

Code: Select all

cd /usr/src/linux-headers-4.9.76-rt60-v7+/
sudo make scripts
2020-01-27 21_45_05-pi@RevPi30229_ _usr_src_linux-headers-4.9.76-rt60-v7+.png
2020-01-27 21_45_05-pi@RevPi30229_ _usr_src_linux-headers-4.9.76-rt60-v7+.png (32.26 KiB) Viewed 12203 times
Um diesen Fehler zu verhindern habe ich das Build-Script folgendermaßen angepasst:

Code: Select all

sudo nano /usr/src/linux-headers-4.9.76-rt60-v7+/scripts/Makefile
In dieser Datei habe ich die Zeile mit sortextable auskommentiert:

Code: Select all

#hostprogs-$(CONFIG_BUILDTIME_EXTABLE_SORT) += sortextable
Anschließend kann man die Kernel-Scripte bauen.

4) Treiber bauern

Anschließend klappt es auch mit dem Treiber:

Code: Select all

make
sudo make install
Verifizieren Teil 1:

Code: Select all

ll /lib/modules/4.9.76-rt60-v7+/kernel/drivers/net/wireless/88XXau.ko
Nach einem Neustart zeigt modinfo den Treiber an:

Code: Select all

modinfo 88XXau
filename:       /lib/modules/4.9.76-rt60-v7+/kernel/drivers/net/wireless/88XXau.ko
version:        v5.6.4.2_35491.20191025

Re: WLAN mit Edimax-Antenne

Posted: 27 Jan 2020, 22:33
by nicolaiB
Hallo Dennis,

Danke das du deinen Weg aufgeschrieben hast. Ich denke das wird anderen, vielleicht weniger erfahrenen Anwendern helfen ähnliche WLAN Sticks mit dem selben Chipsatz zu installieren.

Gruß Nicolai

Re: WLAN mit Edimax-Antenne

Posted: 28 Jan 2020, 08:22
by dennis.boldt
Hallo Nicolai,

das finde ich wichtig, dass ich meinen Weg dokumentiere. Auch für mich selbst :)

Fragen die ich mir noch stelle:

1) Warum sind die Kernel-Scripte nicht bereits vorkompiliert, wie es beim RevPi der fall ist? (Fehler scripts/basic/fixdep: not found)
2) Warum lässt sich das Kernel-Script sortextable nicht bauen? Es kann ja durchaus auch mal einen Treiber geben, welcher sortextable benötigt.

Ohne diese beiden Hürden würden sich Treiber wie [url=http://revolution.kunbus.de/forum/viewtopic.php?f=6&t=1270]USB2CAN[/url] oder dieser rtl8812au viel einfacher bauen lassen.

Viele Grüße
Dennis

Re: WLAN mit Edimax-Antenne

Posted: 28 Jan 2020, 09:34
by dennis.boldt
Leider war das Ganze noch nicht erfolgreich. Sobald ich die Antenne an den USB-Port anschließe stützt der RevPi ab:
2020-01-28 09_33_13-Window.png
2020-01-28 09_33_13-Window.png (15.73 KiB) Viewed 12183 times

Re: WLAN mit Edimax-Antenne

Posted: 28 Jan 2020, 10:05
by nicolaiB
Hallo Dennis,

wie es scheint muss im Makefile noch die Zielarchitektur angepasst werden. Obige Anleitung ist nicht explizit für die ARM-Architektur.

Passe das Makefile für den Realtek Treiber mal bitte wie folgt an (Zeile 88ff.):

Code: Select all

CONFIG_PLATFORM_I386_PC = n
CONFIG_PLATFORM_ARM_RPI = y
Danach bitte noch mal make und make install.

Gruß Nicolai

Re: WLAN mit Edimax-Antenne

Posted: 28 Jan 2020, 10:22
by nicolaiB
dennis.boldt wrote: 28 Jan 2020, 08:22 1) Warum sind die Kernel-Scripte nicht bereits vorkompiliert, wie es beim RevPi der fall ist? (Fehler scripts/basic/fixdep: not found)
2) Warum lässt sich das Kernel-Script sortextable nicht bauen? Es kann ja durchaus auch mal einen Treiber geben, welcher sortextable benötigt.
Das kann ich leider nicht beantworten. Wie in dem von dir verlinkten Beitrag bereits vorgeschlagen, ist es durchaus sinnvoll die Scripte mitzuliefern - wie es ja auf dem RaspberryPi üblich ist. Vielleicht kann Dirk mal bei seinen Kollegen nachfragen, ob es einen bestimmten Grund für das Fehlen gibt und falls nein anregen, das in zukünftigen Versionen anzupassen?

Gruß Nicolai

Re: WLAN mit Edimax-Antenne

Posted: 30 Jan 2020, 10:16
by dirk
Hallo zusammen, wir haben die Anfrage auf dem Schirm und werden uns dazu nochmal melden.

Re: WLAN mit Edimax-Antenne

Posted: 09 Jun 2020, 15:11
by lukas
Hallo Dennis, Hallo Nicolai,

bitte entschuldigt die verzögerte Antwort.
dennis.boldt wrote: 28 Jan 2020, 08:22 1) Warum sind die Kernel-Scripte nicht bereits vorkompiliert, wie es beim RevPi der fall ist? (Fehler scripts/basic/fixdep: not found)
Das liegt daran, dass wir den Kernel auf x86 cross-compilieren. Das kbuild System vom Kernel baut diese Tools wie fixdep, die man zum Kompilieren von Modulen braucht, nur für die Host-Architektur. Also jene, auf der man den Kernel cross-compiliert. Nicht für die Target-Architektur. Deshalb fehlen die in unserem raspberrypi-kernel-headers Paket.

Die Raspberry Pi Foundation kompiliert den Kernel offensichtlich nativ auf ARM. Entweder auf einem Raspberry Pi oder in einer VM. So können sie die Tools für ARM kompiliert mitliefern in ihrem raspberrypi-kernel-headers Paket. Das ist halt deutlich langsamer als cross-compilieren, deshalb machen wir das nicht.

Allerdings gibt es jetzt eine Lösung für das Problem: Ich habe das kbuild System erweitert, so dass es die Tools zum Kompilieren von Modulen auf Wunsch auch für die Target-Architektur kompiliert, nicht nur für die Host-Architektur. Die Änderungen dafür findest du im obersten Commit auf dem revpi-4.19 Branch. Wir werden einen Kernel mit dieser Änderung sowie ein Image mit diesem Kernel jetzt im Juni veröffentlichen.

Damit ist es dann möglich, externe Module zu kompilieren, ohne vorher die Scripte kompilieren zu müssen.
dennis.boldt wrote: 28 Jan 2020, 08:22 2) Warum lässt sich das Kernel-Script sortextable nicht bauen? Es kann ja durchaus auch mal einen Treiber geben, welcher sortextable benötigt.
Das liegt daran, dass dieses Programm das File tools/include/tools/be_byteshift.h inkludieren möchte, und das fehlt im raspberrypi-kernel-headers Paket. In diesem Paket sind nämlich nur Files enthalten, die man wirklich zum Bauen von Modulen braucht, nicht der komplette Kernel Source Tree.

Allerdings macht das nichts, denn sortextable ("sort exception table") wird nur zum Bauen von vmlinux benötigt, also dem Kernel selbst, und nicht für Module.
dennis.boldt wrote: 28 Jan 2020, 08:22 Leider war das Ganze noch nicht erfolgreich. Sobald ich die Antenne an den USB-Port anschließe stützt der RevPi ab:
Konntest du dieses Problem lösen oder besteht das noch? Falls letzteres könntest du es mal mit unserem kommenden 4.19 Kernel probieren, es wäre denkbar dass das Problem nur auf 4.9 auftritt.