CubieBoard中文论坛

 找回密码
 立即注册
搜索
热搜: unable
查看: 9282|回复: 1

fedora19 wifi网卡驱动问题

[复制链接]
发表于 2014-6-26 16:04:42 | 显示全部楼层 |阅读模式

用的是 FAST FW150US 网卡
在 cubian 开机能自动识别该网卡并自动加载驱动,并且可以正常连接无线。
可是切换到 tf 卡里面的 fedora 19 后,却无法加载驱动。
1.        # lsusb
2.        Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
3.        Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
4.        Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
5.        Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
6.        Bus 002 Device 002: ID 0bda:8179 Realtek Semiconductor Corp. RTL8188EUS 802.11n Wireless Network Adapter
7.        Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

发现 fedora 19 自带了 8188us 的驱动,就是无法加载。
1.        # ls /lib/modules/3.4.61.sun7i+/kernel/drivers/net/wireless/rtl8188eu/
2.        8188eu.ko
3.       

尝试加载:
1.        # modprobe 8188eu
2.        modprobe: ERROR: could not insert '8188eu': Cannot allocate memory

用 insmod 也一样:
1.        # insmod 8188eu.ko
2.        insmod: ERROR: could not insert module 8188eu.ko: Cannot allocate memory

相关环境:
1.        # uname -a
2.        Linux obsidian 3.4.61.sun7i+ #212 SMP Sun Oct 13 12:11:09 CEST 2013 armv7l armv7l armv7l GNU/Linux
3.       

1.        # modinfo /lib/modules/3.4.61.sun7i+/kernel/drivers/net/wireless/rtl8188eu/8188eu.ko
2.        filename:       /lib/modules/3.4.61.sun7i+/kernel/drivers/net/wireless/rtl8188eu/8188eu.ko
3.        version:        v4.1.2_4787.20120803
4.        author:         Realtek Semiconductor Corp.
5.        description:    Realtek Wireless Lan Driver
6.        license:        GPL
7.        srcversion:     71DCD33F1AC9ABDB022C42C
8.        alias:          usb:v0BDAp8179d*dc*dsc*dp*ic*isc*ip*
9.        depends:        
10.        intree:         Y
11.        vermagic:       3.4.61.sun7i+ SMP mod_unload ARMv7 p2v8
12.        parm:           rtw_ips_mode:The default IPS mode (int)
13.        parm:           ifname:charp
14.        parm:           rtw_initmac:charp
15.        parm:           rtw_channel_plan:int
16.        parm:           rtw_chip_version:int
17.        parm:           rtw_rfintfs:int
18.        parm:           rtw_lbkmode:int
19.        parm:           rtw_network_mode:int
20.        parm:           rtw_channel:int
21.        parm:           rtw_mp_mode:int
22.        parm:           rtw_wmm_enable:int
23.        parm:           rtw_vrtl_carrier_sense:int
24.        parm:           rtw_vcs_type:int
25.        parm:           rtw_busy_thresh:int
26.        parm:           rtw_ht_enable:int
27.        parm:           rtw_cbw40_enable:int
28.        parm:           rtw_ampdu_enable:int
29.        parm:           rtw_rx_stbc:int
30.        parm:           rtw_ampdu_amsdu:int
31.        parm:           rtw_lowrate_two_xmit:int
32.        parm:           rtw_rf_config:int
33.        parm:           rtw_power_mgnt:int
34.        parm:           rtw_smart_ps:int
35.        parm:           rtw_low_power:int
36.        parm:           rtw_wifi_spec:int
37.        parm:           rtw_antdiv_cfg:int
38.        parm:           rtw_antdiv_type:int
39.        parm:           rtw_enusbss:int
40.        parm:           rtw_hwpdn_mode:int
41.        parm:           rtw_hwpwrp_detect:int
42.        parm:           rtw_hw_wps_pbc:int
43.        parm:           rtw_max_roaming_times:The max roaming times to try (uint)
44.        parm:           rtw_mc2u_disable:int


1.        # ls /lib/firmware/rtlwifi/
2.        rtl8188efw.bin     rtl8192cufw_B.bin     rtl8723aufw_A.bin
3.        rtl8188eufw.bin    rtl8192cufw.bin       rtl8723aufw_B.bin
4.        rtl8192cfw.bin     rtl8192cufw_TMSC.bin  rtl8723aufw_B_NoBT.bin
5.        rtl8192cfwU_B.bin  rtl8192defw.bin       rtl8723fw_B.bin
6.        rtl8192cfwU.bin    rtl8192sefw.bin       rtl8723fw.bin
7.        rtl8192cufw_A.bin  rtl8712u.bin          rtl8821aefw.bin


原因是 fedora 生成的 script.bin 没有启用 usb_wifi 参数。
使用 bin2fex 把 /boot 目录下的 script.bin 转成可文本编辑的 fex 格式后以纯文本打开,
找到
1.        [usb_wifi_para]
复制代码
字段然后修改为:
1.        [usb_wifi_para]
2.        usb_wifi_used = 1
3.        usb_wifi_usbc_num = 2
复制代码
启用 usb_wifi 特性然后使用 fex2bin 转成 script.bin 覆盖之前 /boot 目录下的文件并重启即可正常使用。
如果嫌修改麻烦可以使用我已经修改好的 fex 文件
http://pan.baidu.com/s/1i3xaZ0x


在论坛里面找到了这个,直接复制下来,可以使用,我已经用了,大家看看:

如何修改script.bin和script.fex

你是否经常看见其他帖子里或者其他人提到要修改script.bin或script.fex ,但你又不知道怎么改。

其实 script.bin就是script.fex通过 fex2bin生成的,script.fex是文本格式,方便人修改,修改好之后转换为script.bin二进制格式方便机器读取。

2013-6-24更新:
本文是假设 用户的cubieboard是安装的linaro/ubuntu/debian 而且 已连接上网、已安装编译工具、已安装git的情况下。
如果没安装的,可以先执行这句来安装编译工具和git:
sudo apt-get install build-essential make gcc g++ git-core
android用户请参考此贴:<Edit script.bin or script.fex for Android >

我们就说说在哪里修改这个文件,如果是nand上的系统,那么script.bin在第一个分区(/dev/nanda)中;如果是sd卡上的系统,也在第一个分区(/dev/mmcblk0p1)中。

如果是sd卡,你可以用读卡器在PC上面把script.bin 拷贝出来修改,不过我建议直接在cb上修改,很方便。

我以修改SD卡上的linaro系统的script.bin配置为例:
1. 首先正常启动cb上SD卡的系统ssh连接上去,把fex2bin和bin2fex工具下载编译好:
git clone git://github.com/linux-sunxi/sunxi-tools.git
cd sunxi-tools
make
再ls查看你就会看见fex2bin 和 bin2fex了

2.将你要修改的script.bin拷贝出来
mkdir /mnt/mmcp1
mount /dev/mmcblk0p1 /mnt/mmcp1
cp /mnt/mmcp1/script.bin ./

3.将刚刚拷贝过来的script.bin转为script.fex,然后修改script.fex
./bin2fex script.bin > ./script.fex   #将bin转为fex并写入到当前目录的script.fex文件
vi ./script.fex   #编辑里面的内容,然后保存退出
#比如我要固定我以太网的mac地址,就在末尾加上一段
[dynamic]
MAC = "123456789abc"   #12位的16进制字符串即为你想要的mac地址

4.将修改过的script.fex转回script.bin并放回原处
./fex2bin script.fex > ./script.bin
cp ./script.bin /mnt/mmcp1/
umount /mnt/mmcp1

然后重启动系统,你的新script配置就生效了

附录:
每一项配置的具体解释参见: http://linux-sunxi.org/Fex_Guide
回复

使用道具 举报

发表于 2014-6-27 10:34:27 | 显示全部楼层
谢谢分享!            
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|粤ICP备13051116号|cubie.cc---深刻的嵌入式技术讨论社区

GMT+8, 2024-5-4 05:27 , Processed in 0.022731 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2012 Comsenz Inc. | Style by Coxxs

返回顶部