前几天因FreeBSD10.0在我的笔记本上接投影无法双屏,然后新安装了 Linux mint 17 一切的完美,非常不错的一个发行版。完美支持 X61s 的多功能键,休眠,我想要的双屏也支持。唯一就是我的网件(Netgear)WNA1000M 150M迷你USB无线网卡无法驱动,通过 lsusb 命令可查看到这块网卡所用芯片为 Realtek RTL8188CUS。说明内核可以认这块网卡,Google 之发现问题是内核自带的驱动不正常,原因是内核太新了,Realtek 官方的驱动源代码 (Version 4.0.2_9000) 只支持 Linux Kernel 2.6.18~3.9,而这个系统使用的内核如下:
3.13.0-42-generic lsusb Bus 004 Device 004: ID 0846:9041 NetGear, Inc. WNA1000M 802.11bgn [Realtek RTL8188CUS]
按照 http://blog.chinaunix.net/uid-22883023-id-4392914.html 这篇博文的方法编译也无效,系统启动的时候报:
dmesg | grep 8192 8192cu module verification failed signature and/or required key missing - tainting kernel
折腾几个小时后,决定装个 ubuntu-14.04.1 这个内核正好是上面博文中讲到的 3.13.0-32-generic。可是当我装好正常编译后,也同样遇到上面这个问题,不过这是我这么多年再次装 Ubuntu 字体显示效果比 xfce4 好太太妈多了,都不舍得换其它发行版系统鸟。
再次想找个内核版本旧一点的系统,这次必须拿出 Debian 这个号称最稳定的版本了。下载 debian-7.7.0-amd64-xfce-CD-1.iso ,量产 U 盘一气呵成。安装的过程中最好插上网线联上网,因为我是要安装 xfce 桌面环境,这样在安装的过程中会安装最新的软件,以及字体,还有一些驱动。
安装好之后首先查看内核版本是多少(其实下载 iso 镜像的时候我就查过了在 2.6.18~3.9 之内,就是怕安装的过程中更新了内核)。
javasboy:~$ uname -a Linux javasboy 3.2.0-4-amd64 #1 SMP Debian 3.2.63-2+deb7u2 x86_64 GNU/Linux
很好,内核版本为 3.2.0-4-amd64,这次我是到 Realtek 官网下载的RTL8188CUS源代码驱动。
下载地址如下:
http://www.realtek.com/downloads/downloadsView.aspx?Langid=1&PNid=48&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false&Downloads=true#2742
下载好的文件名为:
RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911.zip
解压、进入 RTL8188C_8192C_USB_linux_v4.0.2_9000.20130911/driver 目录,再把这个目录下的 rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911.tar.gz 解压。
这份驱动默认是使能了网卡节能功能,并且打开了debug信息,我对比了关闭节能功能,传输速度从 2M/s 提升到了 2.8M/s,暂时还不清楚关掉这个节能功能对笔记本有啥影响,反正我这电池只能坚持30分钟的样子,到哪都带着电源线。
补丁如下:
diff -uNr rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911/include/rtw_debug.h rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911_patch2/include/rtw_debug.h --- rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911/include/rtw_debug.h 2013-09-11 11:56:55.000000000 +0800 +++ rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911_patch2/include/rtw_debug.h 2014-12-21 17:32:12.457692312 +0800 @@ -310,6 +310,7 @@ #define DBG_871X_LEVEL LOG_LEVEL +#undef _dbgdump #if defined (_dbgdump) #undef DBG_871X // #define DBG_871X _dbgdump diff -uNr rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911/Makefile rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911_patch2/Makefile --- rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911/Makefile 2013-09-11 11:56:55.000000000 +0800 +++ rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911_patch2/Makefile 2014-12-21 17:30:52.749296924 +0800 @@ -29,7 +29,7 @@ CONFIG_SDIO_HCI = n CONFIG_MP_INCLUDED = n -CONFIG_POWER_SAVING = y +CONFIG_POWER_SAVING = n CONFIG_USB_AUTOSUSPEND = n CONFIG_HW_PWRP_DETECTION = n CONFIG_WIFI_TEST = n
(1) 编译准备工作:
sudo apt-get install build-essential linux-headers-3.2.0-4-amd64
(2) 进入编译目录 driver/rtl8188C_8192C_usb_linux_v4.0.2_9000.20130911 (其实也可以使用官方提供的 install.sh 脚本)
sudo make modules sudo make install
(3) 编译好的 8192cu.ko 文件将会自动安装到 /lib/modules/3.2.0-4-amd64/kernel/drivers/net/wireless/ 目录下。
(4) 禁止内核默认的rtl8192cu模块加载:
sudo echo "blacklist rtl8192cu" >> /etc/modprobe.d/blacklist.conf
(5) 最后重新加载 modules
sudo depmod -a 3.2.0-4-amd64
(6) 重启动系统,进入桌面后网络连接里已经可以看到无线网卡列出的可用网络,连接家里的无线,通过台式机传送了一个1G多的电影,速度达到了2.8M/s,这样的小网卡有这个速度已经不错了。就是ping 网关的延迟有6-8 ms。
(7)
- 测试 USB 网卡插拔也能正常工作。
- 系统挂起(睡眠)后 wifi 也能正常工作。
- 系统休眠启动后也能正常工作。
- 发热也不能高,在 FreeBSD 系统下巨热。
文章评论