ARM加载Realtek-8188CUS USB无线网卡(一)_驱动编译与加载

平台参数:
内核: Linux 3.6
文件系统:Busybox-1.20.2
硬件参数:S3C2416
在 ARM-Linux支持并自动挂载U盘中已经验证好,USB接口是完全正常的,所以不用担心硬件上的故障,而且,顺带把内核的USB部分配置好了^ _ ^

一、引子

BZ使用的是“迅捷”(FAST)的一个USB接口无线网卡,型号FAST FW150US,关于这个网卡的故事、、、

实物如图:

ARM加载Realtek-8188CUS USB无线网卡(一)_驱动编译与加载_第1张图片

通过Linux的lsusb命令可以查看它内部使用的是Realtek 8188CUS芯片:

ARM加载Realtek-8188CUS USB无线网卡(一)_驱动编译与加载_第2张图片


二、正式开场

1、首先在Realtek官网下载对应的驱动源码包:

ARM加载Realtek-8188CUS USB无线网卡(一)_驱动编译与加载_第3张图片

通过阅读document\Quick_Start_Guide_for_Driver_Compilation_and_Installation.pdf文档我们知道,驱动源码在driver目录下,根据硬件平台,修改Makefile:

a、平台选择:CONFIG_PLATFORM_I386_PC = n        CONFIG_PLATFORM_ARM_S3C2K4 = y

b、修改使用的编译工具、对应的内核目录:

ifeq ($(CONFIG_PLATFORM_ARM_S3C2K4), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
CROSS_COMPILE := /usr/local/arm/4.2.2-eabi/usr/bin/arm-linux-
# KVER  := 2.6.24.7_$(ARCH)
KSRC := /home/uni/workspace/20141107_yisuo/linux_3_6/linux-3.6
endif
c、PS:先把节能功能取消了 CONFIG_POWER_SAVING = n

配置好上述选项,make后就得到驱动模块:8192cu.ko


2、模块加载:

上传该文件到文件系统,为了自动加载该模块,把它添加到Linux的启动脚本里:

/etc/init.d/rcS:
insmod  /lib/modules/8192cu.ko
这样,在系统启动的过程中,就可以看到无线网卡识别情况:

[    9.040000] rtl8192cu driver version=v4.0.2_9000.20130911
[    9.040000] build time: Apr  7 2015 10:42:16
[    9.050000] 
[    9.050000] usb_endpoint_descriptor(0):
[    9.050000] bLength=7
[    9.060000] bDescriptorType=5
[    9.060000] bEndpointAddress=81
[    9.060000] wMaxPacketSize=40
[    9.070000] bInterval=0
[    9.070000] RT_usb_endpoint_is_bulk_in = 1
[    9.070000] 
[    9.070000] usb_endpoint_descriptor(1):
[    9.080000] bLength=7
[    9.080000] bDescriptorType=5
[    9.080000] bEndpointAddress=2
[    9.090000] wMaxPacketSize=40
[    9.090000] bInterval=0
[    9.090000] RT_usb_endpoint_is_bulk_out = 2
[    9.100000] 
[    9.100000] usb_endpoint_descriptor(2):
[    9.100000] bLength=7
[    9.100000] bDescriptorType=5
[    9.110000] bEndpointAddress=3
[    9.110000] wMaxPacketSize=40
[    9.110000] bInterval=0
[    9.110000] RT_usb_endpoint_is_bulk_out = 3
[    9.120000] 
[    9.120000] usb_endpoint_descriptor(3):
[    9.120000] bLength=7
[    9.130000] bDescriptorType=5
[    9.130000] bEndpointAddress=84
[    9.130000] wMaxPacketSize=40
[    9.130000] bInterval=1
[    9.135000] RT_usb_endpoint_is_int_in = 4, Interval = 1
[    9.140000] nr_endpoint=4, in_num=2, out_num=2
[    9.140000] 
[    9.145000] NON USB_SPEED_HIGH
[    9.150000] CHIP TYPE: RTL8188C_8192C
[    9.150000] register rtw_netdev_ops to netdev_ops
[    9.160000] Chip Version ID: VERSION_NORMAL_TSMC_CHIP_88C.
[    9.165000] RF_Type is 3!!
[    9.170000] EEPROM type is E-FUSE
[    9.170000] ====> ReadAdapterInfo8192C
[    9.175000] Boot from EFUSE, Autoload OK !
[   11.320000] EEPROMVID = 0x0bda
[   11.320000] EEPROMPID = 0x8176
[   11.320000] EEPROMCustomerID : 0x00
[   11.325000] EEPROMSubCustomerID: 0x00
[   11.325000] RT_CustomerID: 0x00
[   11.330000] _ReadMACAddress MAC Address from EFUSE = 6c:e8:73:c7:6f:92
[   11.335000] EEPROMRegulatory = 0x0
[   11.340000] _ReadBoardType(0)
[   11.340000] BT Coexistance = disable
[   11.345000] mlmepriv.ChannelPlan = 0x02
[   11.350000] _ReadPSSetting...bHWPwrPindetect(0)-bHWPowerdown(0) ,bSupportRemoteWakeup(0)
[   11.355000] ### PS params=>  power_mgnt(0),usbss_enable(0) ###
[   11.360000] ### AntDivCfg(0)
[   11.360000] readAdapterInfo_8192CU(): REPLACEMENT = 1
[   11.365000] <==== ReadAdapterInfo8192C in 2195 ms
[   11.380000] rtw_macaddr_cfg MAC Address  = 6c:e8:73:c7:6f:92
[   11.380000] bDriverStopped:1, bSurpriseRemoved:0, bup:0, hw_init_completed:0
[   11.430000] _rtw_drv_register_netdev, MAC Address (if1) = 6c:e8:73:c7:6f:92
[   11.460000] usbcore: registered new interface driver rtl8192cu

你可能感兴趣的:(Linux内核)