[도움 요청] Jaunty에서 BCM4328 무선랜 설정하기

오늘 Ubuntu 9.04 Alpha 6를 설치했습니다. 개인적인 느낌으로는 Intrepid보다는 빠른 것 같네요.
물론 설치된게 없으니 그럴 수도 있겠죠. ^^

Intrepid에서는 ndiswrapper를 설치해야만 wireless가 잡혔는데 이건 그건 아니더군요.

[code:3jz9z40q]
sudo modprobe -r b43 ssb ndiswrapper wl bcm43xx
sudo modprobe wl
sudo /etc/init.d/networking restart
sudo iwlist scan
[/code:3jz9z40q]
위의 코드를 실행하니 eth1에 wireless가 잡힙니다. 제한된 하드웨어 드라이버를 보니
Broadcom STA wireless driver가 잡혀 있더군요. 그리고 나서 'dhw’라는 무선 네트워크로 접속을
시도합니다. PEAP와 로긴에 필요한 아이디 패스워드를 입력하고 나면 상단 오른쪽에 있는 녹색
구슬(?)이 빙글빙글 돌다가 시스템에 그냥 freeze되어 버리네요. 완전혀 멎어버립니다. 마우스도
안됩니다. 단지 Caps lock키 옆에 램프가 번쩍번쩍거리기만 하네요. 어쩔 수 없이 전원버튼으로
끄고 나서 다시 시작해야 합니다. 하지만 다시 연결을 시도하면 다시 freezing 됩니다.

어떻게 해야할까요? 제가 참고한 싸이트는

http://backports.ubuntuforums.com/showt ... 71e0da7cb&

입니다.

ndiswrapper를 사용해야 하는것일까요? 이번에는 다행히 인증서를 선택하지 않아도 크게 문제는
되지 않는 듯 보이는데 이 문제가 작용하는 것일까요?

그럼 여러분의 도움을 기다립니다.

그럼 이만…
이곳 플로리다에는 이제 봄이 아니라 여름입니다. ^^

Broadcom STA wireless driver가
BCM4328을 공식지원하는게 맞는지요?

참고하신 쓰레드를 전부 읽지는 않았습니다만
만약 공식적으로 지원한다면 직접 드라이버를 받으시고
컴파일해서 설치해 보시면 어떨까요?

http://www.broadcom.com/support/802.11/linux_sta.php

참고로 저는 BCM4312를 쓰고 있고, 8.10의 기본 드라이버를 사용하다가
직접 드라이버를 받아서 컴파일해서 쓰다가
지금은 ndiswrapper를 쓰고 있습니다-_-;;

공식 드라이버가 꼭 누구한테나 좋은건 아닌것 같아요.
주기적으로 접속이 끊어지는 알려진 버그가 있어서 불편했는데
버전업 된듯하여 받아서 써봤지만 똑같더군요.
ndiswrapper도 불만이 많지만,
그나마 문제가 심하지 않은듯하여 쓰고 있습니다.

[quote="yanagi":15tka59z]Broadcom STA wireless driver가
BCM4328을 공식지원하는게 맞는지요?
[/quote:15tka59z]
저도 확실치 않아서 어제 학교에 가서 해보니 wireless가 되더군요.
STA wireless driver가 BCM4328을 지원하는건 맞는가 봅니다.
학교에서는 WPA2를 사용하지 않는 public이라서 말이죠. 접속해서
학교에서 등록한 아이디와 패스워드를 입력하는 웹페이지가 나오고
로긴을 해야만 인터넷에 연결이 되는 구조입니다. public인 무선인터넷은
보통 이런 방식인 듯 싶은데… 한국에서는 제가 사용해본 적이 없어서
잘 모르겠습니다. 아무튼 WPA2 방식을 사용하지 않을 경우에는 아무런
문제가 없이 접속도 되고 인터넷도 원활하게 되는 것 같습니다. 그런데
약간 의심스러운건 용량이 큰(약 700메가 정도…)파일을 다운받는 도중에
접속이 끊어집니다. 모든 접속이 끊어지는게 아니라 4개를 동시에 받는데
한두개 정도의 일부분만 접속이 끊어지는군요. 다른 연결은 모두 정상적
입니다. 혹시 지적하신 이 드라이버의 버그가 아닐까 의심해봅니다.

[quote="yanagi":15tka59z]
참고하신 쓰레드를 전부 읽지는 않았습니다만
만약 공식적으로 지원한다면 직접 드라이버를 받으시고
컴파일해서 설치해 보시면 어떨까요?

http://www.broadcom.com/support/802.11/linux_sta.php

참고로 저는 BCM4312를 쓰고 있고, 8.10의 기본 드라이버를 사용하다가
직접 드라이버를 받아서 컴파일해서 쓰다가
지금은 ndiswrapper를 쓰고 있습니다-_-;;

공식 드라이버가 꼭 누구한테나 좋은건 아닌것 같아요.
주기적으로 접속이 끊어지는 알려진 버그가 있어서 불편했는데
버전업 된듯하여 받아서 써봤지만 똑같더군요.
ndiswrapper도 불만이 많지만,
그나마 문제가 심하지 않은듯하여 쓰고 있습니다.[/quote:15tka59z]

저도 반신반의하면서 Alpha 6를 설치했는데 다시 돌아가야할 듯 싶습니다.
어제 학교에서 사용하면서 커널 업데이트가 되더군요. 업데이트 후에
랩탑이 리부팅을 하지 못합니다. 진행상황을 보여주는 바가 주욱 지나가다가
2/3 정도 지점에서 멈춰버립니다. Ctrl+Alt+Del 또는 전원 버튼을 누르면
삑하는 소리가 나면서 다시 바가 새로 나타나고 처음부터 진행되는 듯 하다가는
똑같은 지점에서 그냥 멈춰버립니다. 어쩔 수 없이 전원버튼 꾸욱꾹 눌러서
강제로 끌 수 밖에 없더군요. Alpha 버젼의 문제점일 듯 싶습니다. 나중에 정식
으로 출시되면 해야 할 듯 싶습니다.

그런데 Intrepid와 Hardy 중에 어떤게 나을까요? 8.04.2도 요즘 좋다는 평이
많던데… ^^ 의견 좀 주세요!!

[code:3205nzhb]
tail /var/log/syslog
[/code:3205nzhb]

에서 BSSID :none에서 쓰고 계신 AP로 주기적으로 roaming하고 있다면
제가 말씀드린 문제와 관련 있을 것입니다.

Intrepid와 Hardy는 제가 다 써본게 아니라서요.
다른 분들께서 좋은 말씀 해주시길…

9.04…
말이 좋아서 최신버젼이지 아직은 버그가 상당히 많은 것 같습니다.
제가 사용해도 눈에 보이는 버그가 몇인지… 암튼 나중에 정식이 되면
그 때 다시 사용해보렵니다.

8.04.2를 설치해서 다시 Broadcom 무선랜카드를 어떻게 할까 고민을
했는데 의외로 그냥 쉽게 되버리네요. 보안관련 부분도 아무런 문제가 없이
됩니다… 물론 한단계를 거쳐야 하지만…

[code:5ujub6qm]
sudo modprobe -r b43 b44 b43legacy ndiswrapper wl
sudo modprobe wl
sudo iwlist scan
[/code:5ujub6qm]
이렇게 하면 현재 보이는 access point가 화면에 주욱 뜹니다… 그리고 조금
있으면 wireless 목록이 표시되죠…

이 단계를 부팅하면서 자동화할 수 있나요? 저의 짧은 식격으로
/etc/modprobe.d/blacklist 파일에 모듈을 각각 입력해서 부팅을 하니
작동을 하지 않네요. 물론 wl 모듈은 넣지 않았는데도 말이죠. 부팅하고 나서
매번 하기가 귀찮은데 방법을 알고 싶습니다.

그런데 배포판마다 약간 무선랜 접속에 대한 설정이 다른 것 같네요.
Ibex에서는 보안 설정에서 WPA2 Enterprise를 선택해야 했지만 Hardy에서는
WPA Enterprise를 선택해야 하더군요. WPA2 Enterprise를 선택하게 되면 연결이
되질 않습니다. 왜 이런 차이를 만들었는지 궁금할 따름입니다. ^^

sudo iwlist scan은 안넣으셔도 될거 같은데…
아닐라나…
아무튼…

/etc/rc.local에 순서대로 넣어주세요.
(sudo는 빼고 넣어주세요)

sudo vi /etc/rc.local

드디어 무선랜에 연결을 했습니다. 무척이나 기나긴(?) 시간이었네요…
역시 구글신이 최고라고 봅니다. ^^

http://www.broadcom.com/support/802.11/linux_sta.php

위의 페이지에 가보면 3월 5일에 버젼 5.10.79.10의 드라이버가 올라와
있습니다. 일단 다운받고 아래에 보면 3월 20일에 WPA-Enterprise 관련
패치가 하나더 있더군요. hanging이라는걸 보니 컴퓨터가 맛이 가는거겠죠.

패치의 내용을 보니 wl_iw.c라는 소스 파일에서 하나만 고치면 되는거였습니다.
그거 하나에 이렇게 많은 사람들이 고생을 했으니 말이죠…

일단 드라이버가 tar.gz로 되어 있는 것을 풀어보면 lib와 src 디렉토리 그리고
Makefile 파일이 보입니다.
src/wl/sys 디렉토리에 가시면 해당 파일을 찾으실 수가 있습니다. 편한 편집기로
열어서 2393행으로 가셔서

[code:1gejzhxz]count = pmkcandlist->npmkid_cand;[/code:1gejzhxz]

[code:1gejzhxz]count = ntoh32(pmkcandlist->npmkid_cand);[/code:1gejzhxz]
로 바꾸시면 됩니다.
그리고

[code:1gejzhxz]
make -C /lib/modules/<2.6.xx.xx>/build M=pwd
[/code:1gejzhxz]
를 실행하면 드라이버 최상위 디렉토리에 wl.ko 파일이 만들어집니다.

다음으로 저는

[code:1gejzhxz]
sudo modprobe -r b43 b44 b43legacy ssb ndiswrapper wl
sudo modprobe ieee80211_crypt_tkip
sudo insmod wl.ko
[/code:1gejzhxz]
이렇게 하니 아무런 문제없이 BCM4328 무선칩을 사용하면서 WPA2 및 PEAP를
사용하는 무선 네트워크에 연결할 수 있었습니다.

그런데 질문 하나요!!
새로 만든 wl.ko 파일을 /lib/modules/<2.6.xx.xx>/volatile/에 복사하고 나서

[code:1gejzhxz]
sudo modprobe -r b43 b44 b43legacy ssb ndiswrapper wl
sudo modprobe ieee80211_crypt_tkip
sudo modprobe wl
[/code:1gejzhxz]
을 /etc/rc.local에 넣은 후에 부팅을 하고 나니 다시 freezing이 되는군요.
무슨 이유에서 이런 문제가 또 되는건지 알 수가 없네요… 비책을 다시금 알게 하옵소서~~~

글타래와 상관없는 댓글을 남겨 죄송하오나…[quote="sfeone":3azqv5z8]9.04…
말이 좋아서 최신버젼이지 아직은 버그가 상당히 많은 것 같습니다.[/quote:3azqv5z8]9.04는 절대로 최신버전이 아닙니다.
최신버전은 8.10이지요.
9.04는 어디까지나 그저 알파버전입니다. 아직 미완성이라는 뜻이죠.
당연히 버그가 많습니다.

말씀대로 9.04가 최신버젼은 아니지만 최신버젼으로 가는 도중에 있으니 제가 그렇게 표현한건데
일단 문제가 있는 듯 하네요. ^^ 너그러이 양해를 해주시길!!

버그가 많은 것도 사실입니다. 8.10을 꽤 오랫동안 사용했지만 거의 경험하지 않았던 문제가 많이
발생합니다. 일례로 매우 자주 Firefox가 freeze되어 버리네요. 절대로 돌아오지도 않고 말이죠.
또한 사운드에도 문제가 있는 것 같습니다. System-Sound에 들어가서 네 가지 선택사항 옆에
있는 Test 버튼을 누르면 소리가 잘 나오는 것도 있고 잡음만 잔뜩 나는 것도 있으며 처음에는
잘 나오다가 도중에 찌직거리는 잡음을 낸다거나 처음에 잡음이 있고 도중에 멀쩡하게 나오고…
물론 Auto Detect에서 PulseAudio로 바꿔보지만 결과를 별로 다르질 않네요. 8.10에서는 절대로
없었던 문제였는데… 그래도 쓰다가 보면 배포판 업그레이드를 통해서 베타버젼이 되고 나중에
정식버젼으로 바뀌면 좀 달라질까 하는 기대를 가져봅니다.

[quote="하노스":2ncn94i6]글타래와 상관없는 댓글을 남겨 죄송하오나…[quote="sfeone":2ncn94i6]9.04…
말이 좋아서 최신버젼이지 아직은 버그가 상당히 많은 것 같습니다.[/quote:2ncn94i6]9.04는 절대로 최신버전이 아닙니다.
최신버전은 8.10이지요.
9.04는 어디까지나 그저 알파버전입니다. 아직 미완성이라는 뜻이죠.
당연히 버그가 많습니다.[/quote:2ncn94i6]

이제 대충 무선카드로 네트워크 연결하는게 감이 오는데… 새발의 피겠지만 말이죠. ^^

일단 현재 커널은 2.6.28-11-generic입니다. 아침에 컴퓨터 커고 업글을 하니 이렇게 올라가네요.
이 커널에 들어가있는 wl 모듈의 버젼은 5.10.29.xx로 나옵니다. 하지만 위글에서 언급된 것처럼
드라이버를 다운받아 설치하면 버젼이 5.10.79.10으로 나오죠. 물론 패치를 했습니다.

이후 아무런 문제가 없습니다. 가끔 컴퓨터를 가만히 두니 약 10분 뒤에 네트웤이 죽는 것 같기는
합니다. 하지만 계속 써준다면(?) 이런 문제는 발생하지 않았습니다. 혹시 일정시간 가만히 두면
접속을 suspend 또는 disconnect 시키는 기능 때문일까요? 그건 아니라고 보는데… 암튼…

부팅을 하고 나서

[code:3bylyuw9]
modprobe -r b43 b44 ndiswrapper wl ssb b43legacy
modprobe ieee802-crypt-tkip
insmod /home/sfeone/Work/wl.ko
[/code:3bylyuw9]
를 실행합니다. 그래야 새로 컴파일 해서 만든 최신의 모듈이 로드되니까요… 그렇지 않을 경우에는
자동으로 이전 버젼의 모듈이 커널에 올라가는 것 같습니다. 혹시 새로 만든 모듈을 커널에 붙여서
자동으로 새로 만든 wl 모듈이 로드되도록 할 수는 없는지요? 제가 봐서는
/lib/modules/2.6.28-11-generic/volatile 아래에 있는 모듈들은 부팅하면서 커널로부터 자동으로
만들어지는 것 같더군요. 결국 커널이 최신 버젼의 wl 모듈이 아니다 보니 이런 문제가 생기는 것
같은데 어떻게 wl 모듈을 커널에 넣어서 사용할 수 있을지 좀 알려주셨으면 합니다.

또 커널이 업글이 되니 wl 모듈 드라이버도 컴파일을 다시 해줘야 하더군요. 커널 업글을 하고 나서
insmod로 wl 모듈 로드를 하려고 하니 에러가 나서 찬찬히 살펴보다가 커널 업글로 인한 문제라는걸
알았습니다. nvidia 모듈은 자동으로 커널 이미지 만들면서 재컴파일을 하던데 wl 또한 자동화되었으면
하는 바램으로 질문을 남겨봅니다.

그럼 이만…