一. 简介
前面实现了WIFI驱动的移植,而连接某个WIFI热点上就需要用到 wpa_supplicant 工具,所以,本文开始为 移植 wpa_supplicant 工具做准备。
wpa_supplicant 依赖于 openssl库 与 libnl库,前面一篇文章已经完成了 openssl库的移植。文章如下:
本文实现wpa_supplicant 工具所依赖的另一个库: libnl库的交叉编译及移植。
二. WIFI驱动移植实验: libnl 库的移植(wpa_supplicant 依赖库)
wpa_supplicant 也依赖于 libnl ,因此还需要移植一下 libnl 库, libnl 源码已经放到了开发板光盘中,路径为: 1 、例程源码 - 》 7 、第三方库源码 - 》 libnl-3.2.23.tar.gz 。
将 libnl 源码压缩包拷贝到 Ubuntu 系统的某个 目录下:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/tools$ cp /mnt/hgfs/Ubuntu_Shares/libnl-3.2.23.tar.gz ./
解压 libnl 源码压缩,使用如下命令进行解压:
tar -xvf libnl-3.2.23.tar.gz
得到解压完成以后会得到 libnl-3.2.23 文件夹,然后,在新建一个名为" libnl "的文件夹,用 于存放 libnl 的编译结果:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/tools$ mkdir libnl_tools
配置 libnl源码
进入到 libnl-3.2.23 文件夹中,然后执行如下命令进行配置:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/tools/libnl-3.2.23$ ./configure --host=arm-linux-gnueabihf --prefix=/home/wangtian/zhengdian_Linux/tools/libnl_tools
--host 用于指定交叉编译器的前缀,这里设置为" arm-linux-gnueabihf ", --prefix 用于指定编 译结果存放目录,这里肯定要设置为我们刚刚创建的 libnl 文件夹。
编译,安装
配置完成以后就可以执行如 下命令对 libnl 库进行编译、安装:
make //编译
make install //安装
三. 拷贝libnl库到开发板的文件系统下
编译安装完成以后,在 创建的 libnl_tools 目录会生成如下内容 :
我们需要 libnl_tools 目录中 lib 目录下的 libnl 库文件,将 lib 目录下的所有文件拷贝到开发板根 文件系统的 /usr/lib 目录下,命令如下所示:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/tools/libnl_tools$ sudo cp ./lib/* /home/wangtian/linux/nfs_File/rootfs/usr/lib/ -rf
至此, wpa_supplicant 工具所依赖的另一个库: libnl库的移植已经完成。