其他分享
首页 > 其他分享> > USB WIFI网卡在S5PV210上的移植和使用最全攻略(2)

USB WIFI网卡在S5PV210上的移植和使用最全攻略(2)

作者:互联网

目录

一、在自己制作的rootfs中移植网卡

1、确认自己制作的rootfs可正常工作并启动

(1)busybox交叉编译制作根文件系统

(2)启动后直接nfs方式挂载文件夹形式的rootfs,测试ok后再做成镜像烧录

(3)挂载参数bootargs:

#设置启动参数
setenv bootargs root=/dev/nfs nfsroot=192.168.1.141:/root/rootfs ip=192.168.1.10:192.168.1.141:192.168.1.1:255.255.255.0::eth0:off  init=/linuxrc console=ttySAC2,115200 

#设置开机自启动命令
set bootcmd 'tftp 30008000 zImage; bootm 30008000'

2、需要的工具集确认

(1)iwconfig工具集:另外移植的,不是busybox中的(我们上边使用的根文件系统是我使用busybox制作的)

查看命令在哪:which iwconfig
然后:ls -al 看看是否指向busybox,若是则是其的一个链接,若不是则不是busybox的

(2)dhcp工具集:是busybox中集成的,确认busybox的menuconfig中配置支持了这个

(3)wpa_supplicant工具集:另外移植的,不是busybox中的

3、交叉编译iwconfig

(1)源码下载
https://hewlettpackard.github.io/wireless-tools/Tools.html#latest
(2)修改Makefile进行配置

配置一:设置软件的安装目录(make install),我设为了/home/rootfs
PREFIX = /home/rootfs
ifndef PREFIX
	PREFIX = /usr/local
endif

配置二:
CC = arm-linux-gcc
AR = arm-linux-ar
RANLIB = arm-linux-ranlib

配置三:我并未修改,但这设置要清楚,便于以后的开发,动态库与静态库
# Select which library to build and to link tool with
ifdef BUILD_STATIC
	IWLIB=$(STATIC)
	IWLIB_INSTALL=install-static
else
	IWLIB=$(DYNAMIC)
	IWLIB_INSTALL=install-dynamic
endif

(3)交叉编译

make
file iwconfig #根据打印出的信息可知是动态链接生成的 (dynamically linked)

(4)部署安装
make install
(5)测试

iwconfig ra0 //   可查看到该无线网卡的相关信息,如名称等,若要修改则修改
			 //    /etc/Wireless/RT2870STA/RT2870STA.dat文件

iwlist ra0 scanning //搜索当前环境可以使用的无线网络

二、移植wpa_supplicant并制作镜像

https://www.cnblogs.com/wanglouxiaozi/p/12829235.html

1、交叉编译 wpa_supplicant

(1)下载wpa_supplicant源码并配置编译。参考http://blog.csdn.net/hktkfly6/article/details/48949863

我使用的是wpa_supplicant-2.6.tar.gz:

tar -zxvf wpa_supplicant-2.6.tar.gz
cd wpa_supplicant-2.6
cd wpa_supplicant
vi README #在其中查看符合这个版本的openssl进行下载

/**************************************************************************/
ptional libraries for EAP-TLS, EAP-PEAP, and EAP-TTLS:
- OpenSSL (tested with 1.0.1 and 1.0.2 versions; assumed to
work with most relatively recent versions; this is likely to be
available with most distributions, http://www.openssl.org/)
/**************************************************************************/

(2)下载配套版本的openssl并配置编译

我使用的是	openssl-1.0.1.tar.gz
1、tar -zxvf openssl-1.0.1.tar.gz
2、cd openssl-1.0.1
3、mkdir install //建立一个安装目录

4、vi Makefile   //修改Makefile
	CC=arm-linux-gcc
	AR=arm-linux-ar$(ARFLAGS) r
	RANLIB=arm-linux-ranlib
	INSTALLTOP=建立的安装目录,要使用绝对路径,不然在make install的时候会出错
	OPENSSLDIR=建立的安装目录,要使用绝对路径,不然在make install的时候会出错

	
5、报错:make: *** [install_docs] Error 255
修改Makefile中的选项,doc是用于生成man手册的,可以不用
	install: all install_sw
	
至此所需的openssl已配置好,返回之前(1)配置wpa_supplicant继续操作
1、cd /home/usb_network_card/wpa_supplicant-2.6/wpa_supplicant
首先建立配置文件:
2、cp defconfig .config

然后修改Makefile:
CC=arm-linux-gcc
CFLAGS+=-I openssl安装目录/include
LIBS+=-Lopenssl安装目录/lib

3、make
再次出现报错:../src/drivers/driver_nl80211.c:17: fatal error: netlink/genl/genl.h: No such file or directory,表明缺少libnl库,具体操作可参考

(1)去掉配置NL相关的选项省去移植libnl。参考:http://www.cnblogs.com/helloworldtoyou/p/6145995.html
下载网址:https://www.linuxfromscratch.org/blfs/view/svn/basicnet/libnl.html

(2)我们选择修改.config文件,注释掉
# Driver interface for Linux drivers using the nl80211 kernel interface
CONFIG_DRIVER_NL80211=y#注释掉,我们没用到这个

4、再次make,就会我们需要的那两个程序:wpa_cli    wpa_supplicant 

5、将这两个程序移植到开发板的/usr/bin目录下,进行测试

命令行能否运行,若不能,在ubuntu中 file 生成的可执行程序名,查看程序是否是动态链接,若是,则无法执行可能是所用的动态链接库没找到。

2、在nfs中测试wpa_supplicant使用

wpa_supplicant这个文件会自动创建,但目录我们要手动创建。
mkdi -p /var/run/
chmod -R 777 /var/ 要有足够的权限

  移植成功后,仍需按照之前上篇文章《USB WIFI网卡在S5PV210上的移植和使用最全攻略(1)》所讲的内容进行配置。

3、制作ext2镜像并刷机测试

附:/etc/wpa_supplicant.conf文件内容:

ctrl_interface=/var/run/wpa_supplicant

network={
        key_mgmt=WPA-PSK
        ssid="zhulaoshi"
        psk="www.zhulaoshi.org"
}

  移植成功后,仍需按照之前上篇文章《USB WIFI网卡在S5PV210上的移植和使用最全攻略(1)》所讲的内容进行配置。

注:本文章参考了《朱老师物联网大讲堂笔记》,并结合了自己的实际开发经历以及网上他人的技术文章,综合整理得到。如有侵权,联系删除!水平有限,欢迎各位在评论区交流。

标签:busybox,USB,supplicant,openssl,全攻略,网卡,install,wpa,移植
来源: https://blog.csdn.net/weixin_45842280/article/details/121757484