Edimax 무선 USB 용 무선 드라이버 구축 : EW-7811UN


33

USB 무선 장치 용 모듈을 구축하기 위해 며칠 동안 켜고 노력했습니다.

그것은이다 Edimax EW-7811UN

데비안 용 모듈을 빌드하는 데 필요한 몇 가지 리소스를 찾았지만 아치에는 없습니다. 현재 Raspberry Pi GitHub에있는 ToolChain을 사용하여 크로스 컴파일하려고합니다 . 내가 취한 단계는 다음과 같습니다.

  • Edimax 웹 사이트 에서 드라이버 소스를 다운로드했습니다 .
  • 커널 소스 를 GitHub에서 다운로드했습니다 .
  • Edimax MakeFile에서 특정 make 규칙을 작성했습니다 (Edimax 문서에 따라).

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 커널 소스를 포함하는 디렉토리입니다.
  • MODDESTDIR 모듈을 끝내려는 디렉토리입니다.
  • CROSS_COMPILE내 툴체인입니다 (에 추가됨 PATH)

처음 시도 make하면이 오류가 발생합니다.

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

나는 이것이 오래된 헤더임을 발견하고 심볼을 연결 smp.h하여 문제를 해결해야합니다. 그러나 빌드는 여전히 다음과 같은 소스 오류로 실패합니다.

error: field 'recv_tasklet' has incomplete type

빌드가 최신 커널 버전을 지원하지 않는 것처럼 보이지만 데비안을 위해 어떻게 빌드 되었습니까?


추가 정보:


나는 아직 시도하지 않았지만 동일한 어댑터를 가지고 있습니다!
셰인 허드슨

당신이 그것을 어떻게 극복하는지 알려주고 나중에 부정적인 경우에도 경험을 추가하십시오.
Jivings 2016 년

@ 토마스, 더 많은 현상금! Alex가 이번에 그것을 얻지 못하도록하십시오 :)
Jivings

답변:


12

크로스 컴파일 지침

  1. Edimax 웹 사이트 에서 드라이버 소스를 다운로드했습니다 .

  2. 커널 소스 를 GitHub에서 복제하십시오 .

  3. cd커널 소스와 cdinclude/linux. 운영

    ln -s smp.h smp_lock.h`.
    
  4. unzipEdimax 다운로드 및 tar -xzf드라이버 패키지. cddriver/rtl...하위 디렉토리.

  5. 다른 포함에서 편집 include/rtw_xmit.h하고 추가 하십시오 #include <linux/interrupt.h>.

  6. 편집 os_dep/osdep_service.c및 추가

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

    다른 포함에서.

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

유사한 섹션에서.

  1. arm-bcm2708-linux-gnueabi-{gcc|ld}경로에 있다고 가정 하고 실행하십시오 make CONFIG_PLATFORM_PI=y modules.

이제 모듈이 컴파일되어야합니다.


빌드가 성공했습니다! 그러나 모듈은 어디에 구축됩니까? 파이에 복사 할 수 있습니다.
Jivings

내가 생각하는 드라이버 패키지의 뿌리.
Alex Chamberlain

1
흠, 거기에있는 것 같습니다. 기묘한. 요점은 무엇입니까 MODDESTDIR?
Jivings

몰라!!!!!!!!!
Alex Chamberlain

이것을 Raspberry Pi에서 빌드하려면 /lib/modules/3.1.9-30-ARCH+/build디렉토리를 커널 소스 에 심볼릭 링크해야했습니다 .
Jivings

-1

RPi의 /proc/config.gz에서 config.gz를 복사하십시오. 그런 다음 그것을 압축하여 이름을 .config로 바꾸고 위와 같이 만드십시오.


3
이것이 왜 대답에 유용한 지 설명 할 수 있습니까?
Jivings
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.