天天看點

openSUSE 11.4 安裝磊科336無線網卡(NW336 V2)

磊科336及v2使用rtl8188cus晶片。在給定的document(随CD光牒附帶)裡面說支援的核心是2.6.18-2.6.33,opensuse11.4的核心版本已經是2.6.37。

openSUSE:/usr/src/linux # lsusb

Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

Bus 004 Device 002: ID 1c4f:0002 SiGma Micro

Bus 004 Device 003: ID 0e8f:0016 GreenAsia Inc. 4 port USB 1.1 hub UH-174

Bus 004 Device 004: ID 192f:0416 Avago Technologies, Pte.

Bus 004 Device 005: ID 0bda:8176 Realtek Semiconductor Corp. RTL8188CUS 802.11n WLAN

openSUSE:/usr/src/linux # uname -a

Linux openSUSE.me 2.6.37.1-1.2-desktop #1 SMP PREEMPT 2011-02-21 10:34:10 +0100 i686 i686 i386 GNU/Linux

首先得安裝核心源碼和核心頭檔案(這個很多發行版都沒自動安裝):

zypper in kernel-source kernel-devel kernel-firmware kernel-desktop kernel-desktop-devel kernel-devel

現在在/usr/src目錄下面應該又了2.6.37的核心源碼:

openSUSE:/usr/src/linux # ls /usr/src

linux linux-2.6.37.1-1.2 linux-2.6.37.1-1.2-obj linux-obj packages

然後進入到336的驅動目錄下面把config檔案拷貝到/usr/src/linux(linux是linux-2.6.37.1-1.2的軟連接配接),

這樣在編譯的時候就不會出現找不到config的錯誤了。

如果用的晶片是8192(336v2)的話,現在切換到336v2的目錄下,開始操作:

下面在編譯的時候還是會出現問題,問題是什麼呢?

/home/wolf/temp/NW336v2/Linux/RTL8192CU_8188CUS_8188CE-VAU_linux_v2.0.974.20100803/driver/rtl8192CU_linux_v2.0.974.20100803/os_dep/osdep_service.c:291:2: error: implicit declaration of function ‘init_MUTEX’

這個是由于:新核心使用了sema_init() 代替了 init_MUTEX(),于是修改os_dep/osdep_service.c中的init_MUTEX(prwlock)為sema_init(prwlock,1)。

做完這些工作以後再make吧。

#make

如果迫不及待的想體驗以下,就

#insmod 8192cu.ko

當然,如果長期使用可以安裝一下子產品

#make install

也可以通過

#modprobe 8192cu.ko

開加載子產品。

******************************************************************************************************************

openSUSE下面本來我是通過指令行方式上網的,但是後來覺得使用networkmanager也不錯,就改用networkmanager來上網

(可以通過yast來設定,不要兩種方式混着使用,很容易沖突)

參考:

http://www.nerdlinux.com/post/124/

***********************************************************************************************************************************

Debian Squeeze(stable) 和Debian Wheezy的核心都是2.6.32,但是在安裝的時候可能需要自己注意一下.

Debian Wheezy安裝完核心源碼和頭檔案後(其實隻是需要頭檔案),會自動建立/lib/modules/2.6.32-5-686/build到/usr/src/linux-headers-2.6.32-5-686的軟連接配接:

wolf@wheezy:~$ ls -l /lib/modules/2.6.32-5-686/build

lrwxrwxrwx 1 root root 35 3月 23 13:02 /lib/modules/2.6.32-5-686/build -> /usr/src/linux-headers-2.6.32-5-686

是以在編譯的時候能夠省一步(也就沒有那麼莫名其妙的錯誤了),安裝

核心頭檔案和源代碼:

#aptitude install linux-source-2.6.32 linux-headers-2.6.32-5-686

接着在make的時候還會出現錯誤,說沒有/usr/src/linux-headers-2.6.32-5-common/autoconf_rtl8192c_usb_linux.h,

需要把autoconf_rtl8192c_usb_linux.h服知道/usr/src/linux/headers-2.6.32-5-common裡面.(很奇怪為什麼會用到common頭檔案)。

不需要複制config檔案,但是init_MUTEX(prwlock)還是要改為sema_init(prwlock,1)(因為這是核心裡面)

Debian Sid和Wheezy很類似。

在Debian Squeeze中,雖然也是使用的2.6.32的核心,但是沒有為我們自動添加上面提到的軟連接配接,是以在make的時候,會有沒有

/lib/modules/2.6.32-5-686/build的錯誤出現,這時隻需要建立一個連接配接就可以了(在上面的步驟的基礎上)

#ln -s /lib/modules/2.6.32-5-686/build /usr/src/linux-headers-2.6.32-5-686/

剩下的就和Debian Wheezy 和Sid一樣了。

*************************************************************************************************************

Mandriva 2010.2中,似乎還要簡單一些,隻需要把 init_MUTEX(prwlock)改為sema_init(prwlock,1),

然後安裝核心都檔案和核心源碼

[root@localhost src]# uprmi kernel-desktop586-2.6.33.7-2mnb kernel-desktop586-devel-2.6.33.7-2mnb

[root@localhost src]# pwd

/usr/src

[root@localhost src]# ls

linux-2.6.33.7-desktop-2mnb/

然後make編譯。

******************************************************************************************************************

最新的核心2.6.39已經有了這個網卡的固件,是以無須手動安裝,下載下傳固件即可,在Debian Sid中為

firmware-realtek

****************************************************************************************************************************************

在最新的Mageia 1(核心2.6.38)中編譯好核心子產品時8192cu.ko,發現insmode 不成功,出現

1 Invalid module format

這是由于正在運作的核心版本和編譯時連結的核心版本(頭檔案)不一緻造成的,原來,我安裝的核心頭檔案是:

kernel-tmb-desktop-devel-2.6.38.7-1.mga

而不是我PC上正在運作的核心的頭檔案,運作的核心的頭檔案應該是:

kernel-desktop-devel-2.6.38.7-1.mga

于是安裝之,編譯加載成功!

繼續閱讀