2010年10月5日 星期二

RALINK RT3070

最近很常用到這個模組,紀錄一下安裝方式。

~$ tar jxf DPO_RT3070_LinuxSTA_V2.3.0.2_20100412.tar.bz2
~$ cd DPO_RT3070_LinuxSTA_V2.3.0.2_20100412


由於make後insmod時會產生很多Unknown symbol,所以修改以下檔案
~$ vi os/linux/rt_linux.c
35 #endif // OS_ABL_SUPPORT //
36 #endif //RTMP_MAC_USB //
37 MODULE_LICENSE("GPL") << 加入這個

~$ make
~$ make install (雖然會產生不少錯誤訊息,但是還是讓他做一些事情 XD)

由於 rt3070sta這隻驅動在載入時會去讀 /etc/Wireless/RT2870STA/RT2870STA.dat (由 kernel message得知)
~$ mkdir -p /etc/Wireless/RT2870STA/
~$ cp RT2870STA.dat /etc/Wireless/RT2870STA/


原先kernel會載入不對得module - rt2800usb,所以必須將他disable。
將以下這幾個加入blacklist
~$ vi /etc/modprobe.d/blacklist.conf

blacklist rt2800usb
blacklist rt2x00usb
blacklist rt2x00lib
blacklist crc_ccitt

再將新的module搬到對的位置就結束了!
~$ cp os/linux/rt3070sta.ko /lib/modules/`uname -r`/kernel/net/wireless/
~$ depmod -a


重開機~結束!

linux/bounds.h No such file or directory

make clean後,會刪除一些檔案,除了.ko之外,也會刪除一些include檔

linux/bounds.h並不是一開始就在kernel source內,而是透過Kbuild產生

~$ make prepare

CHK include/linux/version.h
CHK include/linux/utsrelease.h
SYMLINK include/asm -> include/asm-x86
CC kernel/bounds.s
GEN include/linux/bounds.h
CC arch/x86/kernel/asm-offsets.s
GEN include/asm/asm-offsets.h
CALL scripts/checksyscalls.h

linux/bounds.h就產生了。