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.配置網絡
能夠到圖形界面進行配置。
更多資訊,請點擊:華萬微信圖文