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

磊科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


于是安装之,编译加载成功!

 

你可能感兴趣的:(linux,工作,Debian,function,Module,2010)