您的位置:首页 > 其它

wifi无线网卡(zd1211b芯片)移植到mini2440全过程(二)遇到的问题总结&&解决方案

2012-05-05 16:30 621 查看
遇到的问题一:应经做了步骤二:“下载到zd1211 firmware 1.4后,根据firmware的说明,将其中的zd1211_*文件拷贝到根文件系统/lib/firmware/zd1211目录中。”

问题:执行命令:ifconfig wlan0 up 后,死活说找不到固件firmware,无法加载驱动所需的firmware文件zd1211b_ub ???但是我的这个文件已经放在了指定的/lib/firware/zd1121/的目录下了。如图:



但是我的这个文件已经放在了指定的/lib/firware/zd1121/的目录下了。如图:



解决方案:后来我经过对比发现问题:

原来下载的下载到zd1211 firmware 1.4解压后的目录中有如下几个文件,如图:



我按照原来参考的博文的步骤二:其中一句“将其中的zd1211_*
文件 拷贝到根文件系统/lib/firmware/zd1211目录中。

即在zd1211-firmware目录下执行: cp zd1211_* /nfsroot/rootfs/ lib/firmware/zd1211

但我发现,其实这样只拷贝了上图,蓝色下划线的文件拷贝过去了,而绿色下划线的文件没有拷贝过去,(因为绿色下划线也拷贝过去应该是: zd1211* 而不是zd1121_)

其实红色笔圈起来的文件都要拷贝,但是错误的命令 zd1211_* 导致 只拷贝了一部分,拷贝的文件不全当然会报告没有找到固件了!

后来红色圈的文件全部拷进根文件系统/lib/firmware/zd1211目录中。这个问题便解决了!

遇到的问题二:上面的问题解决后又出现了另一个问题,iwconfig wlan0 、iwlist scanning 这些命令找不到 ,如图:





但是我已经按照步骤三:编译了wireless-tools 工具。将生成的命令iwconfig、 iwlist 文件拷贝到我的根文件系统目录/nfsroot/rootfs的/bin目录下了.[注意:bin目录是放命令的]同时将libiw.so.29拷贝到/lib目录下了。

解决方案:后来知道了是根文件系统库的问题,即iwconfig 、和iwlist 命令所需要的动态库,文件系统里的/lib目录下没有。

解决方法:用命令:arm-linux-readelf -d iwlist(目标文件/命令) 查看iwlist使用的动态库

如图:我的iwlist命令使用的动态库是libiw.so.29 、libm.so.6 和libc.so.6



于是我便去交叉编译器所在目录/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib下的动态库中寻找所需的上面三个库libiw.so.29 、libm.so.6 和libc.so.6 ,并复制到根文件系统的bin目录下:

(注意:这里我使用交叉编译器的版本为4.3.2的版本所以目录4.3.2有所不同即到/usr/local/arm/(编译器版本)/arm-none-linux-gnueabi/libc/armv4t/lib下的动态库中寻找)



之后,找不到命令 的问题也解决了!具体有关问题可以看我的博客:关于-/bin/sh:xx(命令) not found 的几种原因和解决办法

之后一切正常!如图:我搜到了我的 无线网卡 “TP-508”



另外说一下:

第一点:其实无线路由可以不设密,这样无线网卡连接起来就不需要 执行命令:iwconfig wlan0 key 123456

第二点:制作的根文件系统不能是NFS根文件系统,因为NFS需要有线网络挂接;

第三点:搜索可用的无线网络时,可以用命令: iwlist scan |grep ESSID 这个命令比:“iwlist scan |grep ESSID”命令更高效,能一下这看到可用的网络列表:



#! /bin/sh

ifconfig wlan0 up

iwconfig wlan0 key 123456

iwconfig wlan0 essid "rat-linux"

iwconfig wlan0 ap auto

ifconfig wlan0 192.168.1.30 netmask 255.255.255.0

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐