USB无线网卡驱动移植(2)

时间:2021-12-06 15:04:05

        210平台使用USB Wi-Fi无线网卡,市面上流行的无线网卡有Ralink Technology公司的RT5370STA系列和Realtek公司的RTL8188系列,我们希望在210开发板上可以兼容这几种流行的USB网卡。
        这两个系列的USB无线网卡都有开源的Linux驱动下载,但源码移植到我们的平台还需要一定的配置和修改,下面就分两部分介绍210 USB无线网卡驱动的移植过程。

 

移植Realtek RTL8188

 

        通过网络下载或者购买设备附送光盘得到Realtek公司的RTL8188系列USB无线网卡设备的Linux驱动。

a) 解压查看源码

$ tar xvf rtl8192CU_linux_v2.0.tar.bz2

$ cd rtl8192CU_linux_v2.0

 

USB无线网卡驱动移植(2)


 

b) 修改Makefile文件

i. 修改平台为ARM(这里我们选择ARM_S3C6K4)。36行设置为’n’,30行ARM_S3C6K4设置为’y’;

 

USB无线网卡驱动移植(2)  

ii. 修改Linux内核路径(146行)及指定交叉工具链(144行);

 

USB无线网卡驱动移植(2)
 

c) 修改源代码文件;

i. 在新版本的内核中,smp_lock.h头文件已经被移除,一般情况下可以用hardirq.h文件代替。修改以下文件中包含头文件;

./include/rtw_io.h
./core/rtw_security.c
./core/rtw_cmd.c
./core/rtw_mlme.c
./core/rtw_io.c
./hal/rtl8192c/usb/rtl8192c_cmd.c
./hal/.rtl8192c_d_hal_init.o.cmd
./hal/.hal_init.o.cmd
./os_dep/linux/mlme_linux.c

    //修改
# include <linux/smp_lock.h>
//为
# include <linux/hardirq.h>

// Linux替换命令
sed -i "s/smp_lock/hardirq/g" `grep smp_lock -rl ./`

ii. 在新版本的内核中,函数init_MUTEX(&sem)已经被移除,一般情况下可以用函数sema_init(&sem, 1)代替。修改os_dep/osdep_service.c文件292行;

 

USB无线网卡驱动移植(2) 

d)        编译源码;

$ make clean

$ make –j2//编译

          如下即编译成功:
 
USB无线网卡驱动移植(2)

 
        拷贝编译生成的驱动文件(8192cu.ko)到Android文件系统目录。

e) 测试(在开发板运行)

i. 在FS210开发板加载驱动文件,加载成功可以看到RT5370模块上的LED闪烁;

# insmod 8192cu.ko

USB无线网卡驱动移植(2)

ii. 使用ifconfig查看网络;

# ifconfig

USB无线网卡驱动移植(2)

iii. 在安卓上设置网络;

USB无线网卡驱动移植(2) USB无线网卡驱动移植(2) USB无线网卡驱动移植(2)