1.准备环境(直接在pcduinov2上进行的命令操做)linux
1.#sudo apt-get update && sudo apt-get installpcduino-linux-headers-3.4.29+ubuntu
2.#cd /lib/modules/3.4.29+微信
3.#ln -s /usr/src/linux-headers-3.4.29+/ build网络
4.#ln -s /usr/src/linux-headers-3.4.29+/ sourceide
2.准备源文件函数
rtl8187L_linux_1041[1].0209.2012.tar.gzui
下载地址:ftp://WebUser:AxPL9s3k@58.211.24.153/cn/wlan/rtl8187L_linux_1041[1].0209.2012.tar.gzurl
3.编译spa
1#tar vxzf rtl8187L_linux_1041[1].0209.2012.tar.gzblog
2#cd rtl8187L_linux_1041[1].0209.2012
3#make
错误1:
gcc:error: -msoft-float and -mhard_float may not be used together
解决方法:
若是出现编译错误,说是编译器没法同时使用soft浮点运算和hard浮点运算,这个是编译器版本问题,能够分别在/ieee80211/Makefile和/rtl8187/Makefile中注释掉:
EXTRA_CFLAGS += -mhard-float-DCONFIG_FORCE_HARD_FLOAT=y
修改成:
#EXTRA_CFLAGS += -mhard-float-DCONFIG_FORCE_HARD_FLOAT=y
错误2:
/home/ubuntu/weiruming/rtl8187L_linux_1041.0209.2012/rtl8187/r8180_pm.c:36:5:error: conflicting types for ‘rtl8180_save_state’
/home/ubuntu/weiruming/rtl8187L_linux_1041.0209.2012/rtl8187/r8180_pm.h:34:5:note: previous declaration of ‘rtl8180_save_state’ was here
/home/ubuntu/weiruming/rtl8187L_linux_1041.0209.2012/rtl8187/r8180_pm.c:97:5:error: conflicting types for ‘rtl8180_enable_wake’
/home/ubuntu/weiruming/rtl8187L_linux_1041.0209.2012/rtl8187/r8180_pm.h:37:5:note: previous declaration of ‘rtl8180_enable_wake’
解决方法:
该错误说.h头文件和.c文件里面的两个函数有冲突,C语言不是先在头文件里面定义,而后在c文件里面包含头文件,而后对函数进行实现吗?为何这里,这两个函数会报错?是否是编译器的问题,没有搞懂,我解决的方法是先把.h文件里面的定义给注释掉了,想不到这样也能够。以下:
改成:
错误3:
Building modules, stage 2.
MODPOST 1 modules
WARNING:
"__aeabi_f2d"
[/home/ubuntu/weiruming/rtl8187L_linux_1041.0209.2012/rtl8187/r8187l.ko]undefined!
WARNING:
"__aeabi_d2uiz"
[/home/ubuntu/weiruming/rtl8187L_linux_1041.0209.2012/rtl8187/r8187l.ko]undefined!
WARNING:
"__aeabi_i2d"
[/home/ubuntu/weiruming/rtl8187L_linux_1041.0209.2012/rtl8187/r8187l.ko]undefined!
WARNING:
"__aeabi_dsub"
[/home/ubuntu/weiruming/rtl8187L_linux_1041.0209.2012/rtl8187/r8187l.ko]undefined!
WARNING:
"__aeabi_dadd"
[/home/ubuntu/weiruming/rtl8187L_linux_1041.0209.2012/rtl8187/r8187l.ko]undefined!
WARNING:
"__aeabi_fadd"
[/home/ubuntu/weiruming/rtl8187L_linux_1041.0209.2012/rtl8187/r8187l.ko]undefined!
提示警告,有几个函数没有定义。这个是由于前面咱们注释掉了浮点数,说明编译器不支持浮点类型,一样内核也不支持,因此内核里没有相关函数编译器提示没找到,这个影响后面的安装,在insmod模块的时候会提示:
insmod: can't insert '/lib/r8187l.ko': unknownsymbol in module or invalid parameter
解决方法:
在相应的r8187_cort.c源代码后面添上如下函数,在从新编译,就没问题了。
void__aeabi_fadd(void){}
void__aeabi_dadd(void){}
void__aeabi_dsub(void){}
void__aeabi_i2d(void){}
void__aeabi_d2uiz(void){}
void__aeabi_f2d(void){}
以下:
4.安装驱动模块
1#cd rtl1817/
2#ls
可见上图生成了r8187.ko驱动内核模块。
3#insmod r8187.ko
4#lsmod
如上图显示,模块成功安装。
5.配置网络
能够到图形界面进行配置。
更多资讯,请点击:华万微信图文