반응형

Model: Raspberry Pi 2 Model B

OS: Raspbian Jessie (2015.09.24)

Kernel: 4.1.7-v7+

gcc: 4.7.3

WLAN device: Netis WF2190 (RTL8812au)


라즈베리파이에 RTL8812au를 소스코드에서 빌드하는 순서는 PC에서 하는 것과 같고, 다만 Makefile 내용만 약간 수정하면 된다. [1]



<선행 요구사항>

*리눅스 헤더 소스가 설치되어 있어야 한다.

*그외 빌드에 필요한 패키지들이 필요할 수 있다. Make 과정에서 빌드 에러가 나는 경우 해당 에러를 없애줄 관련 소스코드를 설치하는 식으로 해야 할 듯.

*라즈베리파이가 인터넷에 연결되어 있어야 한다.



<참고: 라즈베리파이 리눅스 헤더 설치>

사실 커널 버전 4.1.7-v7+ 를 apt-get install에서 설치할 수 없다. 그래서 직접 리눅스 헤더 소스를 받아서 수동 설치해야 하고, 수동으로 설치하려면 특정 버전의 gcc와 dkms가 필요하다. 현재는 gcc-4.7을 필요로 하고 이것은 apt-get install로 되길래 설치했다.


$ sudo apt-get install gcc-4.7

$ sudo apt-get install dkms

(참고로 둘다 수십 MB의 저장 공간을 필요로 한다.)


헤더 소스 설치파일은 deb 파일로 되어 있어서 dpkg로 설치한다.


$ sudo dpkg -i linux-headers-4.1.7-v7+_4.1.7-v7+-2_armhf.deb




<RTL8812AU 드라이버 설치>


PC용 설치와 마찬가지로 git에서 드라이버 소스코드를 받는다.


$ git clone https://github.com/gnab/rtl8812au.git

$ cd rtl8812au



Makefile을 열고 아래와 같이 일부분을 수정한다.


...(생략)...


CONFIG_MP_INCLUDED = n

CONFIG_POWER_SAVING = n

CONFIG_USB_AUTOSUSPEND = n

CONFIG_HW_PWRP_DETECTION = n

CONFIG_WIFI_TEST = n

CONFIG_BT_COEXIST = n

CONFIG_RTL8192CU_REDEFINE_1X1 = n

CONFIG_INTEL_WIDI = n

CONFIG_WAPI_SUPPORT = n

CONFIG_EFUSE_CONFIG_FILE = n

CONFIG_EXT_CLK = n

CONFIG_FTP_PROTECT = n

CONFIG_WOWLAN = n


...(중략)...


CONFIG_PLATFORM_I386_PC = n

CONFIG_PLATFORM_ANDROID_X86 = n

CONFIG_PLATFORM_JB_X86 = n

CONFIG_PLATFORM_ARM_S3C2K4 = n

CONFIG_PLATFORM_ARM_PXA2XX = n

CONFIG_PLATFORM_ARM_S3C6K4 = n

CONFIG_PLATFORM_ARM_RPI = y

CONFIG_PLATFORM_MIPS_RMI = n


...(생략)...


이어서 빌드 및 설치 과정을 진행하면 된다.

$ make
$ sudo make install
$ sudo mobprobe 8812au





<참고자료>

[1] https://www.raspberrypi.org/forums/viewtopic.php?p=706261



반응형
블로그 이미지

Bryan_

,
반응형

OS: Ubuntu 14.04 Desktop (amd64)

Device: NETIS WF2190 (Realtek RTL8812au) (802.11ac)


실험에 5GHz 대역으로 작동하는 IEEE 802.11ac를 쓰기 위해서 NETIS NF2190 무선랜카드를 꺼냈다.

대충 이렇게 생겼다.


 



우분투 머신에 USB로 연결했더니 바로 인식되지는 않았다.

lsusb에서는 인식되고 있기 때문에 드라이버만 설치하면 된다.


$ lsusb


...(생략)...

Bus 001 Device 005: ID 0bda:8812 Realtek Semiconductor Corp. RTL8812AU 802.11a/b/g/n/ac WLAN Adapter

...(생략)


내 PC가 그동안 Atheros 계열 무선랜카드를 컴파일하는 데만 집중하느라 Realtek 계열 드라이버가 모두 날아갔을 수도 있고, 원래 인식이 안되는 것일 수도 있다. 아무튼 드라이버를 설치하기 위해서 동봉된 CD에서 linux 디렉토리에 있는 설치 파일이 들어 있는 디렉토리를 복사해 와서 설치를 시도했다.

최상위 위치에 있는 install.sh 실행했더니 중간에 빌드 에러 발생.


인터넷을 뒤져 보다가, 그냥 git에 있는 최신 코드를 가져와서 빌드하기로 했다. [1]


$ git clone https://github.com/gnab/rtl8812au.git

$ cd rtl8812au
$ make
$ sudo make install
$ sudo modprobe 8812au


make는 문제없이 됐다.

sudo make install 명령도 문제없이 되는 듯 했다.

하지만 sudo modprobe 8812au가 되지 않았다.

/lib/modules/($uname -r)/kernel/drivers/net/wireless/ 위치에 8812au.ko가 있는데도 실행이 안됐다.


make 과정 중간에 mcount가 없다는 경고 메세지가 있었고 에러가 아니길래 그냥 넘겼는데, 이게 실제 드라이버의 정상 실행을 막는 원인이었다.

확인해 보니 gcc 버전을 4.8로 바꾸면 해결된다고 한다. [2] 그러고 보니 퀄넷 시뮬레이션 때문에 gcc 버전을 낮춰뒀던 것이 생각났다. 

gcc 버전 변경: http://skylit.tistory.com/23



gcc 버전을 바꾸고 다시 make; sudo make install; sudo modprobe 8812au 를 했더니 랜카드가 드디어 인식이 되었다.

iwconfig 명령으로 새로 보이는 무선랜 인터페이스가 있는지 확인할 수 있다.


$ iwconfig


... (생략)

wlan7     unassociated  Nickname:"<WIFI@REALTEK>"

          Mode:Auto  Frequency=2.412 GHz  Access Point: Not-Associated   

          Sensitivity:0/0  

          Retry:off   RTS thr:off   Fragment thr:off

          Power Management:off

          Link Quality:0  Signal level:0  Noise level:0

          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0

          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

...(생략)




<참고자료>

[1] http://ubuntuforums.org/showthread.php?t=2258715

[2] http://askubuntu.com/questions/468758/modprobe-ndiswrapper-error


반응형
블로그 이미지

Bryan_

,