HI3556V200配置RTL8189FS
参考文档:海思官方提供的《WIFI使用指南》,其他文档和网站
之前先检查下WiFi的引脚是否连接好了,这里由于我之前模组没焊好,导致之后管脚复用一直不成功。
第一步:将厂商提供的WIFI驱动文件夹放在SDK的下任意比较方便的位置
这里放置在/osdrv/opensource/下
第二步:配置内核
进入内核目录:make ARCH=arm CROSS_COMPILE=arm-himix100-linux- menuconfig
配置 CFG80211 :
配置 GPIO :
最后还要修改下:.config里面的 CONFIG_RFKILL,要不然在后面出现如下图的提示:rfkill: Cannot open RFKILL control device
710:
CONFIG_RFKILL=y711;
CONFIG_RFKILL_INPUT=y712;
CONFIG_RFKILL_GPIO=y;
SDIO中断配置:
/osdrv/opensource/kernel/linux-4.9.y/arch/arm/boot/dts下的hi3556v200.dtsi文件中,找到mmc2,加入如图所示的cap-sdio-irq;
配置 BOOT
有两种方法:
第一种:这里查看原理图和通过 Hi3556V200_PINOUT_CN.xlsx 的描述,配置在 osdrv/tools/pc/uboot_tools 目录下的 Hi3556V200-DMEB-DDR3_1800M_16bit_128MB-A7_900M-SYSBUS_300M.xlsm 文件,将SDIO1的各个IO复用为sdio1的功能。
第二种方法:不用修改表格在,直接修改代码/reference/samplecam/modules/init/amp/liteos/src/hi_product_init_hi3559v200.c 中,大约在380行添加如下的代码
staticvoidsdio1_wifi_pin_mux()
{
himm(0x112f0008,0x681);
himm(0x112f000c,0x581);
himm(0x112f0010,0x581);
himm(0x112f0014,0x581);
himm(0x112f0018,0x581);
himm(0x114F001C,0x581);
}
并在下面的函数中调用
配置修改完成后重新编一下kernel:make ARCH=arm CROSS_COMPILE=arm-himix100-linux- uImage
第三步:编译WIFI驱动
进入驱动放置的同级目录下执行:
1.make ARCH=arm CROSS_COMPILE=arm-himix100-linux-clean2.make-C rtl8189FS/ARCH=arm CROSS_COMPILE=arm-himix100-linux-KSRC=/home/*****/usbcam_hi3556v200_imx335/osdrv/opensource/kernel/linux-4.9.y/
PS:这个KSRC为kernel的绝对路径
编译完成后可以看到rtl8189FS目录下生成了rtl8192eu.ko文件。
第四步:编译WIFI工具
根据官方文档进行下载并编译等操作
PS:找一些老版本安装,要不然安装出来的wpa_supplicant太大,最后flash放不下
编译完成后将其中有用的文件放到一个文件下
第五步:WIFI测试
首先将需要的工具文件打包到板子目录下,就直接在SDK下 \reference\samplecam\rootfs 目录下的Makefile 文件中修改
注意这几文件都需要
PS: 另外连接AP时还需要udhcpc 这个文件,先到根文件系统下的sbin目录下看看有没有,如果没有就去busybox里面配置编译下,将生成的udhcpc放到单板目录下(如上图)。
第六步:连接AP
进入开发板后,先到WiFi驱动模块目录下安装模块
insmod rtl8192eu.ko
接着创建软链接
ln -s libnl.so.1.1 libnl.so.1
打开WiFi:
ifconfig wlan0 up
使用wpa_passphrase配置wifi并加密密码
./wpa_passphrase wifi名 密码 >> /etc/wpa_supplicant.conf
启动 wpa_supplicant 进程
./wpa_supplicant -i wlan0 -D nl80211 -c /etc/wpa_supplicant.conf -B
自动获取IP地址
udhcpc -i wlan0
PS:这里可以提前在外面设置好配置文件wpa_supplicant.conf,参考网上的,在里面配置如下:
ctrl_interface=/var/run/wpa_supplicantnetwork={ssid="iPhone"#psk="123456789"psk=4533d2b21868ec5e40c7a89e5fabff4ccbe17804bfce566cf1c26074ebf77591}
这样就剩了wpa_passphrase这一步了,或者还可以通过wpa_cli来扫描热点进行配置,具体步骤在官方文档中很详细。
最后ifconfig看下分配的ip和网关之类的
显示分配成功和ping以下网关和外网看是否成功
版权声明:本文为makejiec原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/makejiec/article/details/107214733