리눅스 커널에서 지원하지 않는 무선랜 설정(센트리노 포함)
아시는 분은 아시겠지만 리눅스 커널에서 지원하는
무선 랜에 센트리노는 아직 포함되어 있지 않습니다.
그런 상황에 쓸 수 있는 팁입니다.
필요한 준비물은 다음입니다.
1. ndiswrapper.tar.gz
2. 리눅스 커널 소스
3. wireless-tools 패키지 (데비안 sid의 경우 wireless-tools 26-6 을 받았습니다)
4. WINDOWS 에서 사용하던 드라이버 ( sys와 inf , 장치관리자에서 드라이버 정보를 보면
됩니다)
무언가 메시지가 조금 나올겁니다.
ndiswrapper 라는 모듈로 windows 의 드라이버를 빌려와서 사용가능케 하는 거죠.
http://ndiswrapper.sf.net 에 가시면 구할 수 있고요 지원하는 무선랜 칩셋은
* Admtek
* Atheros
* Broadcom
* Intel PRO/Wireless Lan (Centrino)
등입니다 .(그 외에도 가능한지는 모르죠)
일단 소스를 http://sourceforge.net/projects/ndiswrapper/
에서 다운 받은 후에 임시 디렉토리에 압축을 풉니다.
이때 리눅스 커널 소스가 설치되어 있어야 하고
현재 리눅스 커널이 설정된 환경이어야 합니다. 버젼은 2.4, 2.6 모두 지원합니다.
압축이 풀린 디렉토리에서 간단히 make 명령을 내립니다.
/var/tmp/ndiswrapper$ make make -C driver make[1]: Entering directory `/var/tmp/ndiswrapper/driver' make -C /lib/modules/2.6.1-mm1/build SUBDIRS=/var/tmp/ndiswrapper/driver modules make[2]: Entering directory `/usr/src/linux-2.6.1-mm1' *** Warning: Overriding SUBDIRS on the command line can cause *** inconsistencies make[3]: `arch/i386/kernel/asm-offsets.s' is up to date. CC [M] /var/tmp/ndiswrapper/driver/wrapper.o CC [M] /var/tmp/ndiswrapper/driver/loader.o CC [M] /var/tmp/ndiswrapper/driver/winsyms.o CC [M] /var/tmp/ndiswrapper/driver/ndis.o CC [M] /var/tmp/ndiswrapper/driver/misc_funcs.o LD [M] /var/tmp/ndiswrapper/driver/ndiswrapper.o Building modules, stage 2. MODPOST CC /var/tmp/ndiswrapper/driver/ndiswrapper.mod.o LD [M] /var/tmp/ndiswrapper/driver/ndiswrapper.ko make[2]: Leaving directory `/usr/src/linux-2.6.1-mm1' make[1]: Leaving directory `/var/tmp/ndiswrapper/driver' make -C utils make[1]: Entering directory `/var/tmp/ndiswrapper/utils' cc -g -Wall -c -o loaddriver.o loaddriver.c flex -t inf-parser.l > inf-parser.c cc -g -Wall -c -o inf-parser.o inf-parser.c gcc -o loaddriver loaddriver.o inf-parser.o rm inf-parser.c make[1]: Leaving directory `/var/tmp/ndiswrapper/utils'
위와 같은 식으로 컴파일이 금방 끝납니다.
이제 루트 권한으로
# pwd /var/tmp/ndiswrapper # mkdir /lib/modules/$(uname -r)/misc # depmod -a # cp driver/ndiswrapper.ko /lib/modules$(uname -r)/misc // 2.4 라면 ndiswrapper.o # cp utils/loaddriver /usr/local/sbin/
자 이제 저 소스에서 하는 건 다 했습니다.
실제로 사용하는 걸 보겠습니다.
일단 자신의 노트북의 pci 정보에서 PCI ID , vendor id 등을 알아내야 합니다.
# lspci .... [b]01:0d.0[/b] Network controller: Intel Corp. PRO/Wireless LAN 2100 3B Mini PCI Adapter (rev 04) ....
01:0d.0 이 제 노트북의 무선랜 칩셋 PCI ID 입니다.
# lspci -n |egrep 01:0d.0 [b]01:0d.0[/b] Class 0280: [b]8086:1043[/b] (rev 04)
8086 이 인텔의 벤더 ID , 1043 이 제 칩셋의 디바이스 ID 입니다.
이 정보를 외우든지 적어 두시기 바랍니다.
다음은 각 노트북등에 포함된 윈도우즈 드라이버 파일이나 메이커에서 다운 받은 드라이버 파일안에서
*.sys 와 *.inf 를 추출해서 /usr/local/share/ndiswrapper 와 같은 디렉토리 안에 넣습니다.
그리고
# modprobe ndiswrapper # loaddriver 8086 1043 /usr/local/share/ndiswrapper/w70n51.sys /usr/local/share/ndiswrapper/w70n51.inf
어디까지나 제 노트북의 경우입니다. 메시지가 조금 나왔을 겁니다.
# iwconfig eth1 mode Managed # iwlist eth1 scannig // 가능한 무선랜 리스트가 나옵니다 # iwconfig eth1 essid "ESSID_이름" # ifconfig eth1 up # ifconfig eth1 x.x.x.x netmask m.m.m.m up //수동 IP 부여 또는 # dhclient eth1 // dhcp 를 사용한 IP 할당
이상입니다.
ndiswrapper 소스에 포함된 README 를 읽어보시면 자동화 하는 과정도
나와있습니다.
많은 분들이 리눅스에서도 무선 인터넷을 사용하시면 좋겠네요.
********
2.6.0 에서 모듈 로딩 확인했으며 무선 인터넷 이용가능합니다.
2.6.1 에서 가능합니다(기억상으로는)
2.6.1-mm2 에서 로딩 되지 않습니다. (__mdulf3 심볼때문에..)
(mm은 커널 패치입니다. linux커널 미러에서 kernel/people/akpm/patches/ 에서 찾을 수 있습니다.)
********
ndiswrapper version 0.4 가 나왔습니다. kernel version 2.6.1-mm3 에까지도
잘 올라가는 군요.
ethx 에서 wlanx 으로 바뀌었군요. 속도도 괜찮게 나옵니다.
그리고 loaddriver -> loadndisdriver 로 윈도 드라이버 로더 이름이 바뀌었습니다.
전 잘안되네요...
Compaq X-1083ap 에서 무선랜을 써보고자 하는참에 올려주신 글 잘 보았습니다. 저같은 경우는 lspci 해서 정보를 살펴보면, 디바이스에 대한 이름은 잡히지가 않네요. (Intel - Unknown Network device 정도로만 출력을 해주네요)
결정적인 문제는
# loaddriver ...... w70n51.sys w70n51.inf
명령어를 먹이고 나면 컴퓨터가 "정지" 해버는 겁니다.
혹시나 해서 2.6.1 로 커널을 업그레이드해서
실행해 봤는데, 역시나네요. ;;
무선랜사용법에 대한 글을 발견할 수 있어서, 너무 좋았는데...
아직까지는 암울모드군요. :twisted:
---------------
덕분에 2.6 깔아서 잘 사용하고 있습니다. :D
성공하면 덧글 하나 더 달지요~
(Ф_Ф) 언제까지나 즐거울 수 있도록...
댓글 달기