티스토리 뷰

반응형


리눅스에 Realtek RTL8723BE 드라이버 설치 잘 못한 이야기

  한동안 RTL8723BE 라는 Realtek 사의 무선 네트워크 드라이버 모듈 때문에 애를 먹습니다. 심지어 2박 3일 동안 삽실을.. 여기에 그 기록을 남겨봅니다.

  니가 삽질 한 기록따위 필요없다. 빨리 설치하는 것만 보고 싶으신 분은 아래 링크 클릭

2014/06/28 - 리눅스에 Realtek RTL8723BE 드라이버 완벽 설치하기


  노트북에 Realtek RTL8723BE 라는 친구가 달려있습니다. 그런데 이 친구가 나온지 얼마 안되었는지 리눅스 드라이버 지원이 안되는 상황입니다. (Kernel 3.13 기준) 하지만 다행히도 오픈 소스로 lwfinger 라는 사람이 Github에 드라이버를 올려놨군요. 컴파일 해 사용했습니다.(http://crazyits.tistory.com/444) 노트북은 한성컴퓨터 u44x 2507s 이며, 배포판은 리눅스 민트 17 시나몬입니다.

  처음에는 컴파일하고 설치하니 무선이 뜨길래 잘 될줄 알았습니다. 그런데 그것도 잠시. 무선 접속이 거의 1분도 안되서 자꾸 끊어 집니다. 아무래도 오픈 소스이다 보니 그런 점이 이해가 가긴 했지만 그래도 열받는군요. 다른 방법이 없나 찾아봤습니다.



  마침 몇일 전 커널 3.15.2 버전이 나왔고, 3.15 버전 이후로는 RTL8723BE 드라이버를 지원한다고 합니다. http://kernel.org 에서 최신 커널을 받았습니다. (커스텀 커널 컴파일해서 올리는 방법 : http://bagjunggyu.blogspot.kr/2013/12/custom-kernel.html) make menuconfig 를 통해 필요한 설정하고 (혹시나 했는데 역시나 RTL723BE 모듈이 비활성화 되어있었다.) 컴파일을 하는데 4시간. 순수 컴파일만 4시간 정도 걸렸습니다마는 하여튼 이래저래 커널 3.15.2를 올리고 설레는 마음으로 재부팅. 근데 역시나 처음과 마찬가지로 불안정 합니다. 도대체 뭐가 문제지?

  문제는 바로 3.15 버전 이후에 들어간 드라이버 역시 lwfinger 유저가 만든 것을 거의 그대로 올렸기 때문. ㅋㅋㅋㅋ. 거의 엄청난 삽질을 한 것이다. 어찌보면 오픈 소스라 당연히 그럴 수 있는 일인데 커널이 stable 버전이라 방심했나봅니다.

  이래저래 하다하다 안되서 차라리 내가 리눅스 디바이스 드라이버를 공부하는게 빠르겠다 해서 인터넷을 보지만, 당장 필요한 정보는 보이지 않고, 결국 lwfinger 에게 안되는 영어 + 구글 번역기를 열심히 돌려 메일을 보냈는데 보내자 마자 다음과 같이 회신이 왔습니다.


  난 영어를 못해서 뭔 말인지 모르겠지만 버그 같은거 자기한테 메일보내지 말고 linux-wireless 라는 유저한테 보내라는 느낌입니다. 심지어 mail bot이 보냈네요 ㅎㅎ... 그리고 막상 저 메일주소로 메일을 보냈더니 도메인을 찾을수 없다고 반송됩니다 ㅋㅋㅋㅋ.. 차라리 리누즈 토발즈에게 보내고 말지. 하여튼 열받아서 누가 이기나 해보기로 했습니다. 본격 드라이버 모듈과 인간의 싸움.

  일단 무선 연결이 계속해서 끊어질 때를 추적해 봤습니다. dmesg | grep wlan0 명령어를 통해 무선 신호가 먹통이 될 때 시스템 상태를 확인해 봤습니다.


[ 3062.191529] wlan0: deauthenticating from 00:26:52:d8:1e:60 by local choice (Reason: 3=DEAUTH_LEAVING)
[ 3066.405155] wlan0: authenticate with 00:26:52:d8:1e:60
[ 3066.886795] wlan0: send auth to 00:26:52:d8:1e:60 (try 1/3)
[ 3066.888282] wlan0: authenticated
[ 3066.891722] wlan0: associate with 00:26:52:d8:1e:60 (try 1/3)
[ 3066.894593] wlan0: RX AssocResp from 00:26:52:d8:1e:60 (capab=0x431 status=0 aid=198)
[ 3066.894660] wlan0: associated
[ 3086.912443] wlan0: Connection to AP 00:26:52:d8:1e:60 lost
[ 3101.351708] wlan0: Connection to AP 00:00:00:00:00:00 lost

[ 3102.223327] wlan0: authenticate with 00:26:52:d8:1e:60
[ 3102.247394] wlan0: send auth to 00:26:52:d8:1e:60 (try 1/3)
[ 3102.251656] wlan0: authenticated
[ 3102.251908] rtl8723be 0000:03:00.0 wlan0: disabling HT as WMM/QoS is not supported by the AP
[ 3102.251912] rtl8723be 0000:03:00.0 wlan0: disabling VHT as WMM/QoS is not supported by the AP
[ 3102.251916] wlan0: associating with AP with corrupt probe response
[ 3102.254937] wlan0: associate with 00:26:52:d8:1e:60 (try 1/3)
[ 3102.256603] wlan0: RX AssocResp from 00:26:52:d8:1e:60 (capab=0x431 status=0 aid=199)
[ 3102.256669] wlan0: associated
[ 3111.739036] wlan0: deauthenticating from 00:26:52:d8:1e:60 by local choice (Reason: 3=DEAUTH_LEAVING)
[ 3116.175581] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[ 3117.091690] wlan0: authenticate with 00:26:52:d8:1e:60
[ 3117.106147] wlan0: send auth to 00:26:52:d8:1e:60 (try 1/3)
[ 3117.107735] wlan0: authenticated
[ 3117.108348] wlan0: associate with 00:26:52:d8:1e:60 (try 1/3)
[ 3117.110093] wlan0: RX AssocResp from 00:26:52:d8:1e:60 (capab=0x431 status=0 aid=200)
[ 3117.110157] wlan0: associated
[ 3117.110184] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[ 3128.185799] wlan0: Connection to AP 00:26:52:d8:1e:60 lost
[ 3142.600346] wlan0: Connection to AP 00:00:00:00:00:00 lost


  멀쩡히 인증 잘되고 잘 굴러가던 wlan0 이 갑자기 lost 가 되어버립니다. 이건 내 노트북 환경 때문에 생긴 문제가 아니라 펌웨어나 드라이버의 버그가 확실하다는 느낌이 들어 구글과 런처패드를 뒤졌습니다. 그랬더니 PCIe 기능인 MSI/MSI-X 가 무선 신호를 계속 Drop 하는 것이라는 글을 발견했습니다. 확실히 dmesge | grep rtl8723be 명령어를 사용하면 rtl8723be 모듈이 msi/msi-x를 사용한다는 메세지가 출력되기는 합니다. 런처패드의 Adam Lee 라는 유저가 올린 git을 뒤져보니  sw.c 에서 msi 관련 값을 변경해 주면 된다고 합니다.

  sw.c 어딨는지 find 명령어로 찾아봤습니다. 제일 처음에 받았던 컴파일해서 사용하는 드라이버에 들어있습니다. 들어가서 값을 변경해주고 재컴파일을 하는데.. 이런 드라이버를 설치하겠다고 업그레이드한 3.15.2 커널에서 이상하게 make 명령어가 안먹었습니다. 전화위복? 설상가상? 물론 이유는 알 수가 없네요. 당시 에러는 lib에 필요한 헤더파일 의존성이 안맞았습니다.

  결국 12시간만에 다시 3.13.24 커널로 다운그레이드해서 컴파일 했습니다. 다행이 다운그레이드는 deb 파일로 설치해서 금방 끝났습니다.사실 다시 4시간 동안 컴파일하라고 했으면 안했을 것 같긴 합니다마는... 소스코드 한줄 수정하고 컴파일해 모듈을 올렸더니 잘된다. 지금 이 글도 무선으로 열심히 쓰고 있는데 쓰는동안 와이파이가 단 한번도 안나갔습니다. 행복합니다. 새삼 Wifi의 소중함을 깨달았네요.


  2박 3일간 무선 모듈 잡겠다고 온갖 패키지 설치하고 지우고 커널 업그레이드 위해 컴파일하는 삽질 끝에 소스코드 한줄 수정하고 잘된 이야기 끝.

실제로 설정하는 방법을 정리해 놓은 글

2014/06/28 - 리눅스에 Realtek RTL8723BE 드라이버 완벽 설치하기



반응형
프로필사진

Yowu (Yu Yongwoo)

흔한 Node.js/Java 백엔드 개발자입니다
Ubuntu와 MacOS 데스크탑 개발 환경을 선호합니다
최근에는 vscode와 IntelliJ를 사용하고 있습니다
vscode에는 neovim, IntelliJ는 ideaVim
개발용 키보드는 역시 HHKB Pro 2 무각입니다
락 밴드에서 드럼을 쳤습니다

최근에 올라온 글
최근에 달린 댓글
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함
Total
Today
Yesterday