网站如何做后台留言,怎样组建企业网站,网络公司是干什么的,杭州做网站seoLinux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 数字化、现代化的今天#xff0c;随处的WIFI给与了大众极大的方便#xff0c;也感受到了科技的力量。万物互联、无线互联越来越成为一个不可逆转的趋势。现在比较火…Linux版本号4.1.15 芯片I.MX6ULL 大叔学Linux 品人间百味 思文短情长 数字化、现代化的今天随处的WIFI给与了大众极大的方便也感受到了科技的力量。万物互联、无线互联越来越成为一个不可逆转的趋势。现在比较火的马斯克的卫星网络一旦组网成功在地球的每个角落都能畅联不仅信号强、速度快将指数级别的催发科技的进一步突飞猛进各种应用将层出不穷。如果将地球看做是一个局域网卫星网络将类似WiFi靠无线通信的互联深化蓝星的交流互通。 本章的思维导图如下 一、WiFi驱动添加与编译
1、向Linux内核添加WiFi驱动 只需要将 WIFI 驱动源码添加到 Linux 内核中然后通过图形化界面配置选择将其编译成模块即可.
1)rtl81xx 驱动文件浏览 2)删除 linux 内核自带的 RTL8192CU 驱动
3)将 rtl81xx 驱动添加到 Linux 内核中 将 realtek 整个目录拷贝到 ubuntu 下 Linux 内核源码中的 drivers/net/wireless 目录下. 4)修改 drivers/net/wireless/Kconfig 打开 drivers/net/wireless/Kconfig在里面加入下面这一行内容 source drivers/net/wireless/realtek/Kconfig
5)drivers/net/wireless/Makefile 在里面加入下面一行内容obj-y realtek/
2.配置Linux内核
1)配置 USB 支持设备
路径如下
- Device Drivers - * USB support - * Support for Host-side USB - * EHCI HCD (USB 2.0) support - * OHCI HCD (USB 1.1) support - * ChipIdea Highspeed Dual Role Controller - [*] ChipIdea device controller - [*] ChipIdea host controller
2配置支持 WIFI 设备
路径如下
- Device Drivers - [*] Network device support - [*] Wireless LAN - * IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP) - [*] Support downloading firmware images with Host AP driver - [*] Support for non-volatile firmware download
3配置支持 IEEE 802.11
路径如下
- Networking support - -*- Wireless - [*] cfg80211 wireless extensions compatibility - * Generic IEEE 802.11 Networking Stack (mac80211) 重新编译一下 Linux 内核得到新的 zImage。 3.编译WiFi驱动 执行“make menuconfig”命令打开 Linux 内核配置界面然后按照如下路径选择将 rtl81xx驱动编译为模块。 - Devices Drivers - Network device support (NETDEVICES [y]) - Wireless LAN (WLAN [y]) - Realtek wifi (REALTEK_WIFI [m]) - rtl8189ftv sdio wifi - rtl8188eus usb wifi - Realtek 8192C USB WiFi 选中“rtl8189fs/ftv sdio wifi”、“rtl8188eus usb wifi” 和“Realtek 8192C USB WiFi”将其编译为模块。执行如下命令编译模块 make modules -j12 //编译驱动模块 编译完成以后就会在 rtl8188EUS、 rtl8189FS 和 rtl8192CU 文件夹下分别生成 8188eu.ko、8189fs.ko 和 8192cu.ko 这三个.ko 文件 8188eu.ko、 8189fs.ko 和 8192cu.ko 就是我们需要的 RTL8188EUS、RTL8189FS 和 RTL8188CUS/8192CU 的 驱 动 模 块 文 件 将 这 三 个 文 件 拷 贝 到rootfs/lib/modules/4.1.15 目录中命令如下
sudo cp 8189fs.ko /home/zuozhongkai/linux/nfs/rootfs/lib/modules/4.1.15/ -rf
sudo cp 8188eu.ko /home/zuozhongkai/linux/nfs/rootfs/lib/modules/4.1.15/ -rf sudo cp 8192cu.ko /home/zuozhongkai/linux/nfs/rootfs/lib/modules/4.1.15/ -rf 将新编译出来的zImage镜像文件拷贝到 Ubuntu 中的 tftpboot 目录下命令如下 cp arch/arm/boot/zImage /home/zuozhongkai/linux/tftpboot/ -f 然后重启开发板
4.驱动加载测试
1)RTL8188 USB WIFI 驱动测试 加载一下 8188eu.ko、 8189fs.ko 和 8192cu.ko 这三个驱动文件:
depmod //第一次加载驱动的时候需要运行此命令
modprobe 8188eu.ko //RTL8188EUS 模块加载 8188eu.ko 模块
modprobe 8192cu.ko //RTL8188CUS 模块加载 8192cu.ko 模块 输入“ifconfig -a”命令查看 wlanX(X0….n)网卡是否存在. 2)RTL8189 SDIO WIFI 驱动测试 输入命令加载 8189fs.ko 这个驱动模块:
depmod //第一次加载驱动的时候需要运行此命令
modprobe 8189eu.ko //加载驱动模块 使用“ifconfig -a”命令查看一下是否有 wlanX(X0…n)网卡存在。
二、wireless tools工具移植与测试
1.wireless tools移植 wireless tools 是操作 WIFI 的工具集合最常用的就是 iwlist【扫描】 和 iwconfig 【设置】这两个工具。 进入到 iwlist_for_visteon-master 文件夹里面打开Makefile 文件修改 Makefile 中的 CC、 AR 和 RANLIB 这三个变量。 修改完成以后就可以使用如下命令编译
make clean //先清理一下工程
make //编译 sudo cp iwlist iwconfig iwspy iwpriv ifrename /home/zuozhongkai/linux/nfs/rootfs/usr/bin/ -f
sudo cp libiw.so.29 /home/zuozhongkai/linux/nfs/rootfs/usr/lib/ -f
2.wireless tools工具测试 工具iwlist 将 RTL8188 WIFI 模块插到开发板的 USB HOST 接口上然后加载 RTL8188 驱动模块 8188eu.ko驱动加载成功以后在打开 wlan0 网卡命令如下
modprobe 8188eu.ko ifconfig wlan0 up//加载 RTL8188 驱动模块 //打开 wlan0 网卡 wlan0 网卡打开以后就可以使用 iwlist 命令查找当前环境下的 WIFI 热点信息也就是无线 路由器输入如下命令 iwlist wlan0 scan 上述命令就会搜索当前环境下的所有 WIFI 热点然后将这些热点的信息信息答应出来 包括 MAC 地址、 ESSID(WIFI 名字)、频率、速率信号质量等等。
三、wpa_supplicant移植
1.openss移植 要想连接到指定的 WIFI热点上就需要用到 wpa_supplicant 工具。 先移植 openssl。 解压tar -vxzf openssl-1.1.1d.tar.gz
./Configure linux-armv4 shared no-asm --prefix/home/zuozhongkai/linux/IMX6ULL/tool/openssl
CROSS_COMPILEarm-linux-gnueabihf- 配置成功以后会生成 Makefile输入如下命令进行编译 make make install 将 lib 目录下的 libcrypto 和 libssl 库拷贝到开发板根文件系统中的/usr/lib 目录下命令如下 sudo cp libcrypto.so* /home/zuozhongkai/linux/nfs/rootfs/lib/ -af sudo cp libssl.so* /home/zuozhongkai/linux/nfs/rootfs/lib/ -af
2.libnl库移植 在编译 libnl 之前先安装 biosn 和 flex
sudo apt-get install bison
sudo apt-get install flex 移植libnl库
/configure --hostarm-linux-gnueabihf --prefix/home/zuozhongkai/linux/IMX6ULL/tool/libnl/
--host 用于指定交叉编译器的前缀这里设置为“arm-linux-gnueabihf” --prefix 用于指定编
译结果存放目录 对 libnl 库进行编译、安装
make -j12 //编译
make install //安装 将 lib 目录下的所有文件拷贝到开发板根文件系统的/usr/lib 目录下
sudo cp lib/* /home/zuozhongkai/linux/nfs/rootfs/usr/lib/ -rf
3.wpa_supplicant移植 wpa_supplicant 的配置
cd wpa_supplicant/
cp defconfig .config 打开.config 文件在里面指定交叉编译器、 openssl、 libnl 库和头文件路径
1 CC arm-linux-gnueabihf-gcc
2 3
#openssl 库和头文件路径
4 CFLAGS -I/home/zuozhongkai/linux/IMX6ULL/tool/openssl/include
5 LIBS -L/home/zuozhongkai/linux/IMX6ULL/tool/openssl/lib -lssl
-lcrypto
6 7
#libnl 库和头文件路径
8 CFLAGS -I/home/zuozhongkai/linux/IMX6ULL/tool/libnl/include/libnl3
9 LIBS -L/home/zuozhongkai/linux/IMX6ULL/tool/libnl/lib 编译 wpa_supplicant
export PKG_CONFIG_PATH/home/zuozhongkai/linux/IMX6ULL/tool/libnl/lib/pkgconfig:
$PKG_CONFIG_PATH //指定 libnl 库 pkgconfig 包位置
make -j12 //编译 wpa_cli 和 wpa_supplicant 这两个文件拷贝到开发板根文件系统的/usr/bin目录中
sudo cp wpa_cli wpa_supplicant /home/zuozhongkai/linux/nfs/rootfs/usr/bin/ -f 输入“wpa_supplicant -v”命令查看一下 wpa_supplicant 版本号
四、WiFi联网测试 联网步骤
①、插上 WIFI 模块如果是板子集成的就不需要这一步。如果是 SDIO WIFI 的话确保 WIFI 所使用的 SDIO 接口没有插其他的模块比如 SD 卡防止其他模块对 SDIO WIFI 造成影响。 ②、加载 RTL8188 或者 RTL8189 驱动模块。 ③、使用 ifconfig 命令打开对应的无线网卡比如 wlan0 或 wlan1…… ④、无线网卡打开以后使用 iwlist 命令扫描一下当前环境下的 WIFI 热点一来测试一下 WIFI 工作是否正常。二来检查一下自己要连接的 WIFI 热点能不能扫描到扫描不到的话肯定就没法连接了。 当上述步骤确认无误以后就可以使用 wpa_supplicant 来将 WIFI 连接到指定的热点上实现 联网功能。
1.RTL8188 USB WIFI联网测试 RTL8188EUS 请使用 8188eu.ko 驱动 RTL8188CUS 请使用 8192cu.ko 驱动 RTL8188 USB WIFI 联网测试确保 RTL8188 能扫描出要连接的 WIFI 热点。 在开发板根文件系统的/etc 目录下创建一个名为“wpa_supplicant.conf”的配置文件此文件用于配置要连接的 WIFI 热点以及 WIFI 秘密。
1 ctrl_interface/var/run/wpa_supplicant
2 ap_scan1
3 network{
4 ssidZZK
5 pskxxxxxxxx/*wpa_supplicant.conf 文件对于格式要求比较严格“”前后一定不能有空格也不要
用 TAB 键来缩进*/
6 } 创建目录
mkdir /var/run/wpa_supplicant -p 使用 wpa_supplicant 工具让 RTL8188 USB WIFI 连接到热点上
wpa_supplicant -D wext -c /etc/wpa_supplicant.conf -i wlan0 设置 wlan0 的 IP 地址
udhcpc -i wlan0 //从路由器获取 IP 地址
2.RTL8189 SDIO WIFI联网测试 本笔记为参考正点原子开发板配套教程整理而得仅用于学习交流使用不得用于商业用途。