Ubuntu12.04下安装TP-LINK TL-WN823N无线网卡驱动(RTL8192CU芯片组)

最近实验室买了一块TP-LINK TL-WN823N USB无线网卡,Windows下驱动很好安装,Ubuntu下网卡的安装方式同我之前安装TL-WN322G+网卡,链接: http://blog.163.com/thinki_cao/blog/static/8394487520134514629561 ,这里简要说明:
1 查看无线网卡的USB ID号
终端下输入lsusb:
 
     

thinki@G31T - M2 :~ $ 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 001 Device 004: ID 0bda:8178 Realtek Semiconductor Corp. 
Bus 002 Device 002 : ID 0e8f : 0022 GreenAsia Inc .  
Bus 004 Device 002 : ID 046d : c52f Logitech , Inc . Wireless Mouse M305

红色粗体字即为USB网卡的ID号
2 根据USB ID号查找芯片组驱动
在google上搜索0bda 8178ID号,即可以发现该序列号对应的是Realtek的RTL8192CU芯片组,最后一个“U”指的即是USB接口。在Realtek官网上找到rtl8192cu驱动:
http://152.104.125.41/downloads/downloadsView.aspx?Langid=1&PNid=48&PFid=48&Level=5&Conn=4&DownTypeID=3&GetDown=false&Downloads=true#RTL8192CU,不过悲剧的是realtek的网站貌似出了问题,怎么都下载不了,后来终于在一个第三方网站找到了驱动,链接送上: http://www.strapp.co.uk/downloads/RTL819xCU_USB_linux_v3.4.3_4369.20120622.zip,还有一个稍旧一点的驱动,也送上链接: http://www.gallot.be/resources/RTL819xCU_USB_linux_v3.4.2_3727.20120404.zip,这两个都可以。
3 安装驱动
realtek rtl8192cu的驱动包里面包含了很多安装说明,这一点还是很人性化的:
 
    

document ├── HowTo_enable_driver_to_support_WIFI_certification_test.pdf ├── HowTo_enable_the_power_saving_functionality.pdf ├── HowTo_support_more_VidPids.pdf ├── linux_dhcp_server_notes.txt ├── Quick_Start_Guide_for_Bridge.pdf ├── Quick_Start_Guide_for_SoftAP.pdf ├── Quick_Start_Guide_for_Station_Mode.pdf ├── RTK_Wi-Fi_Direct_Programming_guide.pdf ├── SoftAP_Mode_features.pdf ├── Wireless_tools_porting_guide.pdf └── wpa_cli_with_wpa_supplicant.pdf

现在解压安装包:
 
    

tar xvf RTL819xCU_USB_linux_v3.4.3_4369.20120622.zip

cd driver

tar xvf rtl8188C_8192C_usb_linux_v3.4.3_4369.20120622

这里有一点需要注意的是,当你的USB插入电脑的USB接口时,对应驱动的加载与否取决于你的USB ID号,因此,对于没有在驱动中注册过相应USB ID号的网卡,我们需要人为添加USB ID号,可以参考document下的HowTo_support_more_VidPids.pdf。具体的做法是修改driver/rtl8188C_8192C_usb_linux_v3.4.3_4369.20120622/os_dep/linux/usb_intf.c,找到rtw_usb_id_tbl数组,添加对应的PID,(VID已经定为0BDA,即代表realtek),我们可以找到如下几行:

 
    

/****** 8192CUS ********/
{USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8177)},//8191cu 1*2
{USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8178)},//8192cu 2*2
{USB_DEVICE(USB_VENDER_ID_REALTEK, 0x817C)},//8192CE-VAU USB minCard

由于在驱动中已经添加了TL-WN727N网卡的PID号,因此我们不需要修改, 如果是新设备的话则需要在这里添加,否则USB设备将无法被linux识别!
进入驱动目录,即 driver/rtl8188C_8192C_usb_linux_v3.4.3_4369.20120622/,在终端下直接:
 
    

make
sudo make install

这里在make的过程中会出现一个error:
thinki@G31T-M2:~/rtl8188eu$ make
make ARCH=i386 CROSS_COMPILE=arm-xilinx-linux-gnueabi- -C /lib/modules/3.2.0-37-generic-pae/build M=/home/thinki/rtl8188eu  modules
make[1]: 正在进入目录 `/usr/src/linux-headers-3.2.0-37-generic-pae'
/usr/src/linux-headers-3.2.0-37-generic-pae/arch/x86/Makefile:81: stack protector enabled but no compiler support
  CC [M]  /home/thinki/rtl8188eu/core/rtw_cmd.o
Assembler messages:
Error: unknown architecture `i686'

Error: unrecognized option -march=i686
cc1: error: unrecognized command line option '-mregparm=3'
cc1: error: bad value (i686) for -march switch

make[2]: *** [/home/thinki/rtl8188eu/core/rtw_cmd.o] 错误 1
make[1]: *** [_module_/home/thinki/rtl8188eu] 错误 2
make[1]:正在离开目录 `/usr/src/linux-headers-3.2.0-37-generic-pae'
make: *** [modules] 错误 2
在网上google了好一会也没找到是什么问题,后来在国外的网站上发现了问题,原来是 我之前安装了Xilinx zynq的交叉编译工具链,在/etc/profile定义了CROSS_COMPILE宏,然后在make的时候被作为了gcc的前缀,也就是我在用交叉编译工具链编译x86的驱动,自然会报-march=i686是未识别的选项了!
make改成 make CROSS_COMPILE=     即可!
即编译安装,然后使用modprobe加载驱动:
 
   

sudo modprobe 8192cu

即可在面板上看到无线网卡被识别出来,并且能够通过Network Manager配置无线网络,如下图:
接下来将驱动模块添加到开机启动列表即可,注意这一步需要在root用户下操作
 
    

sudo - i
echo 8192cu >> /etc/ modules

 不过经我个人验证,即使不加入开机启动列表,网卡在重启后也能正常工作。

你可能感兴趣的:(嵌入式)