Fråga:
Bygga trådlösa drivrutiner för Edimax Wireless USB: EW-7811UN
Jivings
2012-06-13 01:06:20 UTC
view on stackexchange narkive permalink

Jag har försökt på och av i flera dagar för att bygga modulen för min trådlösa USB-enhet.

Det är en Edimax EW-7811UN

Jag har hittat flera resurser för att bygga moduler för Debian, men inga för Arch. För närvarande försöker jag korskompilera med ToolChain som finns på Raspberry Pi GitHub. Det här är stegen jag har tagit:

  • Nedladdade drivrutinkällor från Edimax-webbplatsen.
  • Nedladdade kärnkällorna från GitHub.
  • Skapade en specifik make-regel (enligt Edimax-dokumentationen) i Edimax MakeFile:

  ifeq ($ (CONFIG_PLATFORM_PI), y) EXTRA_CFLAGS + = -DCONFIG_LITTLE_ENDIAN ARCH: = arm CROSS_COMPILE: = arm-bcm2708-linux-gnueabi- KVER: = 3.1.9-30-ARCH + KSRC: = /pi-sources/l. 9-30-ARCH + / bygg MODDESTDIR: = /pi-sources/lib/modules/3.1.9-30-ARCH+/kernel/drivers/net/wireless/ INSTALL_PREFIX: = endif  
  • KSRC är den katalog som innehåller kärnkällorna.
  • MODDESTDIR är den katalog som du vill att modulen ska hamna i.
  • CROSS_COMPILE är min verktygskedja (som har lagts till PATH)

Första försöket till make ger detta fel:

  fatal error: linux / smp_lock.h: Ingen sådan fil eller katalog  

Jag tyckte att det här är en föråldrad rubrik och att symlinka den till smp.h borde lösa problemet. Byggnaden misslyckas dock fortfarande med källfel, det ser ut så här:

  fel: fältet 'recv_tasklet' har ofullständig typ  

Jag har gjort tillräckligt med att sammanställa för att det här ser ut som om byggnaden inte stödja den senaste kärnversionen, men om så är fallet, hur har det byggts för Debian?


Extra information:

Jag har samma adapter, men har ännu inte fått prova det!
Låt mig veta hur du fortsätter med det och lägg till din upplevelse efteråt, även om det är negativt.
@Tomas, mer bounty! Se till att Alex inte får det den här gången :)
Två svar:
#1
+13
Alex Chamberlain
2012-07-19 16:43:12 UTC
view on stackexchange narkive permalink

Instruktioner för tvärkompilering

  1. Nedladdade drivrutinkällor från Edimax-webbplatsen.

  2. Klona kärnkällorna från GitHub.

  3. cd i din kärnkälla och cd till include / linux . Kör

      ln -s smp.h smp_lock.h `.  
  4. unzip Edimax ladda ner och tar -xzf drivrutinspaketet. cd i underkatalogen drivrutin / rtl ... .

  5. Redigera inkludera / rtw_xmit.h kod> och lägg till #include <linux / interrupt.h> under den andra inkluderar.

  6. Redigera os_dep / osdep_service.c och lägg till

      #include <linux / semaphore.h> # define init_MUTEX (sem) sema_init (sem, 1)  

    under den andra inkluderar.

  7. Redigera Makefile lägga till

      ifeq ($ (CONFIG_PLATFORM_PI), y) EXTRA_CFLAGS + = -DCONFIG_LITTLE_ENDIANARCH: = armCROSS_COMPILE: = arm-bcm2708-linux-gnueabi-KVER: = 3.1.9-30-ARCH + KSRC: = ~ / pi-sourcesMODDESTDIR: = ~ / pi-sources / lib / modules / 3.1.9-30-ARCH + / kernel / drivrutiner / nät / trådlöst / INSTALL_PREFIX: = endif  

under liknande avsnitt.

  1. Förutsatt att arm-bcm2708 -linux-gnueabi- {gcc | ld} är i din väg, kör gör CONFIG_PLATFORM_PI = y-moduler .

Modulen ska nu vara komp iled.

Bygg är framgångsrikt! Men var bygger modulen sig? Så jag kan kopiera den till Pi.
Roten till drivrutinspaketet tror jag.
Hm, verkar vara där. Konstig. Vad är poängen i `MODDESTDIR` då?
Ingen aning !!!!!!!!!
För att få detta att bygga på Raspberry Pi var jag också tvungen att länka katalogen `/ lib / modules / 3.1.9-30-ARCH + / build till kärnkällorna.
Även om det fortfarande inte fungerar, hjälpte det här inlägget mig att faktiskt bygga modulen framgångsrikt. Således tilldelar jag bounty!
@Jivings snälla meddela oss om du kan få det att fungera!
@Tomas: Hittills bygger modulen och jag kan ladda den. Jag kan se 'wlan0', men kan inte skanna på gränssnittet, så det fungerar fortfarande inte.
Tar du upp gränssnittet först?
Jag får en sammanställningsvarning i filen `rtl8192CU_linux_v2.0.939.20100726 / os_dep / linux / usb_intf.c, rad 849." "DENNA_MODUL" förklaras inte. Hjälpa någon?
Jag använde tarballen som länkades i den här artikeln för att kompilera drivrutinen framgångsrikt: http://tamcore.eu/raspberry-pi-archlinux-und-der-rtl8188cus-chipsatz/
#2
-1
Felix Furak
2012-07-19 17:28:03 UTC
view on stackexchange narkive permalink

Försök kopiera config.gz från /proc/config.gz på din RPi. Packa sedan upp den och byta namn på den till .config och gör som ovan.

Kan du ange varför detta är användbart i ditt svar?


Denna fråga och svar översattes automatiskt från det engelska språket.Det ursprungliga innehållet finns tillgängligt på stackexchange, vilket vi tackar för cc by-sa 3.0-licensen som det distribueras under.
Loading...