Edimax Kablosuz USB için Kablosuz Sürücü Oluşturma: EW-7811UN


33

USB kablosuz cihazım için modül oluşturmak için günlerdir açık ve kapalı çalışıyorum.

Bu bir Edimax EW-7811UN’dur.

Debian için modüller inşa etmek için birkaç kaynak buldum, ancak Arch için yok. Şu anda Raspberry Pi GitHub'da bulunan ToolChain'i kullanarak çapraz derlemeye çalışıyorum . Bunlar attığım adımlar:


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/lib/modules/3.1.9-30-ARCH+/build 
  MODDESTDIR := /pi-sources/lib/modules/3.1.9-30-ARCH+/kernel/drivers/net/wireless/
  INSTALL_PREFIX :=
endif
  • KSRC çekirdek kaynaklarını içeren dizindir.
  • MODDESTDIR modülün sona ermesini istediğiniz dizin.
  • CROSS_COMPILE(benim eklendi PATH) benim takım

İlk deneme şu makehatayı veriyor:

fatal error: linux/smp_lock.h: No such file or directory

Bunun eski bir başlık olduğunu ve sorunun çözülmesi için eşleştirildiğini buldum smp.h. Ancak, derleme şuna benzeyen kaynak hatalarıyla başarısız oluyor:

error: field 'recv_tasklet' has incomplete type

Derlemenin en son çekirdek sürümünü desteklemiyormuş gibi göründüğünü bilmek için yeterince derleme yaptım, fakat öyleyse nasıl Debian için yapılmış?


Ekstra bilgi:


Aynı adaptöre sahibim, ancak denemek için henüz bulamadım!
Shane Hudson,

Lütfen bununla nasıl başa çıktığınızı bana bildirin ve daha sonra olumsuz olsa bile deneyiminizi ekleyin.
Jivings,

@ Tom, daha fazla ödül! Alex bu sefer alamadığından emin olun :)
Jivings

Yanıtlar:


12

Çapraz derleme talimatları

  1. Sürücü kaynaklarını Edimax web sitesinden indirdi .

  2. Çekirdek kaynaklarını GitHub'dan klonlayın .

  3. cdçekirdek kaynağınıza ve cdiçine include/linux. Koşmak

    ln -s smp.h smp_lock.h`.
    
  4. unzipEdimax indirme ve tar -xzfsürücü paketi. cdiçine driver/rtl...alt dizinin.

  5. Düzen include/rtw_xmit.hve eklenti #include <linux/interrupt.h>alt alta içerir.

  6. Düzenle os_dep/osdep_service.cve ekle

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

    diğer içerir altında.

  7. düzenleme Makefileekleyerek

    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
    MODDESTDIR := ~/pi-sources/lib/modules/3.1.9-30-ARCH+/kernel/drivers/net/wireless/
    INSTALL_PREFIX :=
    endif
    

benzer bölümler altında.

  1. Varsayalım arm-bcm2708-linux-gnueabi-{gcc|ld}yolunda, koş make CONFIG_PLATFORM_PI=y modules.

Modül şimdi derlenmelidir.


İnşa başarılı! Fakat modül nereye kurulur? Böylece Pi'ye kopyalayabilirim.
Jivings

Sürücü paketinin kökü sanırım.
Alex Chamberlain

1
Hm, orada gözüküyor. Tuhaf. O zamandaki amaç ne MODDESTDIR?
Jivings

Fikrim yok!!!!!!!!!
Alex Chamberlain

Bunu Ahududu Pi'ye dayandırmak için ayrıca /lib/modules/3.1.9-30-ARCH+/builddizini çekirdek kaynaklarına bağlamak zorunda kaldım .
Jivings

-1

Config.gz 'yi /proc/config.gz' dan RPI’nize kopyalamayı deneyin. Sonra gunzipleyin ve .config olarak yeniden adlandırın ve yukarıdaki gibi yapın.


3
Bunun cevabında neden faydalı olduğunu söyleyebilir misin?
Jivings
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.