CubieBoard 安装 Fedora 的 8188eu 驱动 编译血泪史
之前提问帖子是http://forum.cubietech.com/forum.php?mod=viewthread&tid=511,超版想看错误信息,于是我又另起新帖,希望能在这个帖子中解决这个问题,至少能救了一大堆想在Fedora安装淘宝官方提供的牛逼水星wifi驱动血泪史如下:
首先通过该牛人弄得https://fedoraproject.org/wiki/Architectures/ARM/AllwinerA10把fedora装到TF卡中然后正常运行没任何问题
#uname -a
#Linux localhost.localdomain 3.4.29.sun4i #21 Sat Feb 16 18:18:25 CET 2013 armv7l armv7l armv7l GNU/Linux
于是从https://github.com/mmplayer/linux-sunxi中下载了sunxi-3.4的源码传到板子上的fedora中:
#/home/psyduck/linux-sunxi-sunxi-3.4.zip
解压(如果不把两个标准输出信息扔到/dev/null中,TTL线用SecureCRT连接然后直接unzip竟然能让我的win8崩溃重启!已经不下快10次了!!!)
#unzip linux-sunxi-sunxi-3.4.zip > /dev/null 2>&1 &
解压后路径为
#/home/psyduck/linux-sunxi-sunxi-3.4
#cd /home/psyduck/linux-sunxi-sunxi-3.4
以下参考该帖
#make mrproper
#make sun4i_defconfig
#make prepare
#make modules_prepare
#cd drivers/net/wireless/rtl8188eu/
#CONFIG_RTL8188EU=m make -C /home/psyduck/linux-sunxi-sunxi-3.4 M=`pwd`
最后报错
#...........usb_intf.c:1140:29: fatal error: mach/sys_config.h: No such file or directory compilation terminated
将usb_intf.c中的mach改为plat重新编译,不出意外的话应该生成8188eu.ko驱动
但是depmod -a && modprobe 8188eu报错:
#[ 4202.590000] 8188eu: version magic '3.4.29 preempt mod_unload modversions ARMv7 p2v8 ' should be '3.4.29.sun4i mod_unload ARMv7 p2v8 'ERROR: could not insert '8188eu': Exec format error
#modinfo 8188eu.ko
filename: /home/psyduck/linux-sunxi-sunxi-3.4/drivers/net/wireless/rtl8188eu/8188eu.ko
version: v4.1.2_4787.20120803
author: Realtek Semiconductor Corp.
description: Realtek Wireless Lan Driver
license: GPL
srcversion: 43413332785027284FC989C
alias: usb:v0BDAp8179d*dc*dsc*dp*ic*isc*ip*
depends:
vermagic: 3.4.29 preempt mod_unload modversions ARMv7 p2v8
parm: rtw_ips_mode:The default IPS mode (int)
parm: ifname:charp
parm: rtw_initmac:charp
parm: rtw_channel_plan:int
parm: rtw_chip_version:int
parm: rtw_rfintfs:int
parm: rtw_lbkmode:int
parm: rtw_network_mode:int
parm: rtw_channel:int
parm: rtw_mp_mode:int
parm: rtw_wmm_enable:int
parm: rtw_vrtl_carrier_sense:int
parm: rtw_vcs_type:int
parm: rtw_busy_thresh:int
parm: rtw_ht_enable:int
parm: rtw_cbw40_enable:int
parm: rtw_ampdu_enable:int
parm: rtw_rx_stbc:int
parm: rtw_ampdu_amsdu:int
parm: rtw_lowrate_two_xmit:int
parm: rtw_rf_config:int
parm: rtw_power_mgnt:int
parm: rtw_smart_ps:int
parm: rtw_low_power:int
parm: rtw_wifi_spec:int
parm: rtw_antdiv_cfg:int
parm: rtw_antdiv_type:int
parm: rtw_enusbss:int
parm: rtw_hwpdn_mode:int
parm: rtw_hwpwrp_detect:int
parm: rtw_hw_wps_pbc:int
parm: rtw_max_roaming_times:The max roaming times to try (uint)
parm: rtw_mc2u_disable:int
于是想到用fedora自己当前的kernel源码进行如上编译应该可以
#make clean
#yum install kernel-develop
#CONFIG_RTL8188EU=m make -C /usr/src/kernels/3.9.3-201.fc18.armv7hl M=`pwd`
报错:
make: Entering directory `/usr/src/kernels/3.9.3-201.fc18.armv7hl'
LD /home/psyduck/linux-sunxi-sunxi-3.4/drivers/net/wireless/rtl8188eu/built-in.o
CC /home/psyduck/linux-sunxi-sunxi-3.4/drivers/net/wireless/rtl8188eu/core/rtw_cmd.o
In file included from /home/psyduck/linux-sunxi-sunxi-3.4/drivers/net/wireless/rtl8188eu/core/rtw_cmd.c:23:0:
/home/psyduck/linux-sunxi-sunxi-3.4/drivers/net/wireless/rtl8188eu/include/osdep_service.h: In function ‘thread_enter’:
/home/psyduck/linux-sunxi-sunxi-3.4/drivers/net/wireless/rtl8188eu/include/osdep_service.h:1397:2: error: implicit declaration of function ‘daemonize’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make: *** Error 1
make: *** Error 2
make: Leaving directory `/usr/src/kernels/3.9.3-201.fc18.armv7hl'
将sunxi4i的rtl8188eu驱动源码拷入系统kernel源码中再试
#cp -r /home/psyduck/linux-sunxi-sunxi-3.4/drivers/net/wireless/rtl8188eu /usr/src/kernels/3.9.3-201.fc18.armv7hl/drivers/net/wireless/
#cd /usr/src/kernels/3.9.3-201.fc18.armv7hl/drivers/net/wireless/rtl8188eu
#CONFIG_RTL8188EU=m make -C /usr/src/kernels/3.9.3-201.fc18.armv7hl M=`pwd`
报了一样的错:
make: Entering directory `/usr/src/kernels/3.9.3-201.fc18.armv7hl'
LD /usr/src/kernels/3.9.3-201.fc18.armv7hl/drivers/net/wireless/rtl8188eu/built-in.o
CC /usr/src/kernels/3.9.3-201.fc18.armv7hl/drivers/net/wireless/rtl8188eu/core/rtw_cmd.o
In file included from /usr/src/kernels/3.9.3-201.fc18.armv7hl/drivers/net/wireless/rtl8188eu/core/rtw_cmd.c:23:0:
/usr/src/kernels/3.9.3-201.fc18.armv7hl/drivers/net/wireless/rtl8188eu/include/osdep_service.h: In function ‘thread_enter’:
/usr/src/kernels/3.9.3-201.fc18.armv7hl/drivers/net/wireless/rtl8188eu/include/osdep_service.h:1397:2: error: implicit declaration of function ‘daemonize’ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors
make: *** Error 1
make: *** Error 2
make: Leaving directory `/usr/src/kernels/3.9.3-201.fc18.armv7hl'
重新初始一下内核:
#cd /usr/src/kernels/3.9.3-201.fc18.armv7hl
#make mrproper
报错:
scripts/Makefile.clean:17: /usr/src/kernels/3.9.3-201.fc18.armv7hl/drivers/infiniband/hw/amso1100/Makefile: No such file or directory
make: *** No rule to make target `/usr/src/kernels/3.9.3-201.fc18.armv7hl/drivers/infiniband/hw/amso1100/Makefile'.Stop.
make: *** Error 2
make: *** Error 2
make: *** Error 2
各种尝试以失败告终,希望有牛人给个解决方案
先把内核完整编译一遍,无误后再编译驱动试试。 swn1012 发表于 2013-5-29 12:42 static/image/common/back.gif
先把内核完整编译一遍,无误后再编译驱动试试。
恩 的确
不过sunxi-3.4我真试了 一样的错误
而fedora用yum install kernel-devel的内核根本没法编译,上面也提到了 sunxi 3.4是3.4的kernel,你下的fedora的kernel是3.9的,应该编不过去。
在第一步得到8188eu.ko后,modprobe出错后,用dmesg看一下出错信息,贴出来。
也可以用modprobe -f 8188eu.ko试一下,可能还是kernel的版本信息不一致导致的。
正常的编译过程是要先编译内核,得到Module.symvers文件,再编译驱动,以使版本信息一致,模块才可以装入。
添加编译项需要修改当前目录以及上一层目录下的Makefile,kconfig。
还有交叉编译环境有没有问题。 siriux 发表于 2013-5-29 20:18 static/image/common/back.gif
添加编译项需要修改当前目录以及上一层目录下的Makefile,kconfig。
还有交叉编译环境有没有问题。 ...
怎么改 求教~
我上面的操作都是在板子上用ttl线直接ssh操作的,应该不用什么交叉吧 求中奖 udoo 发表于 2013-5-29 18:40 static/image/common/back.gif
sunxi 3.4是3.4的kernel,你下的fedora的kernel是3.9的,应该编不过去。
在第一步得到8188eu.ko后,modprob ...
关键yum安装的3.9的竟然没法编译,回头我看看sunxi的有没有3.9的 daemonize在高版本内核中被去掉了,你可以用lxr看看。 标记下,以后需要
页:
[1]
2