insmod移植好的wifi驱动,能正确加载,但却连不上wifi。一开始我以为是配置文件写的不对,改了下还是不行,最后把AP改成开放式连上了,分析应该是加解密有问题,因此打算移植wireless_tools手动配置看下。
下载wireless_tools解压,修改makefile,
CC = arm-linux-gcc
AR = arm-linux-ar
RANLIB = arm-linux-ranlib
然后make,把生成的可执行文件拷贝到开发板,执行时显示No such file or directory,发现官方BSP里的rootfs没有动态库。可以选择静态编译wireless-tools,也可以自己做动态库,这里先说静态编译。makefile中BUILD_STATIC = y, BUILD_NOLIBM = y。
%: %.o
$(CC) $(LDFLAGS) $(STRIPFLAGS) $(XCFLAGS) -o $@ $^ $(LIBS) -static
重新make拷贝,可以执行了。手动调试发现还是连不上wifi,网上看了下说要移植wpa_supplicant。
下载wpa_supplicant-0.7.3和依赖库openssl-0.9.8e,我用的版本比较老,新版本还需要libnl。
分别解压,mkdir openssl,openssl生成的库文件都放在这,不要用默认安装路径污染宿主机。
拷贝wpa_supplicant/patches下对应openssl版本的patch到openssl-0.9.8e下
cd openssl-0.9.8e