您的位置:首页 > 运维架构

openSUSE 11.4 安装磊科336无线网卡(NW336 V2)

2011-04-06 15:08 393 查看
磊科336及v2使用rtl8188cus芯片。在给定的document(随光盘附带)里面说支持的内核是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

于是安装之,编译加载成功!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: