网络驱动移植(RTL8189)

1、把驱动放到内核文件夹中(linux/drivers/net/wireless),对应的驱动可以在网上下载
2、修改该目录下的Kconfig和Makefile文件

配置支持IEEE 802.11,选中8189模块,这里选择直接编译进内核,也可选择编译成模块,然后再动态加载即可。

配置支持Wifi设备

4、编译内核(make)
5、用新的内核镜像重新启动开发板

输入命令ifconfig -a,出现wlan0说明模块加载成功,这就是RTL8189对应的网卡

6、对网络进行配置

对无线网络进行配置需要借助一些工具(wpa_supplicant),wpa_supplicant依赖于openssl和libnl库,所以需要先交叉编译好这两个库

openssl库移植

cpp 复制代码
tar -xvf openssl-1.1.1d.tar.gz
mkdir openssl
./Configure linux-armv4 shared no-asm --prefix=/home/yan/linux/IMX6ULL/tool/openssl CROSS_COMPILE=arm-linux-gnueabihf-
make
make install

最后将lib下的libcrypto、libssl库拷贝到根文件系统lib目录下

libnl库移植

cpp 复制代码
tar -vxzf libnl-3.2.23.tar.gz
mkdir libnl
./configure --host=arm-linux-gnueabihf --prefix=/home/yan/linux/IMX6ULL/tool/libnl/
make
make install

最后将lib目录下所有文件拷贝到根文件系统/usr/lib目录下

wpa_supplicant移植

cpp 复制代码
tar -vxzf wpa_supplicant-2.7.tar.gz
cd wpa_supplicant/
cp defconfig .config

打开.config文件,在里面指定交叉编译器、openssl、libnl库的头文件路径

cpp 复制代码
CC = arm-linux-gnueabihf-gcc

#openssl 库和头文件路径
CFLAGS += -I/home/yan/linux/IMX6ULL/tool/openssl/include
LIBS += -L/home/yan/linux/IMX6ULL/tool/openssl/lib -lssl -lcrypto

#libnl 库和头文件路径
CFLAGS += -I/home/yan/linux/IMX6ULL/tool/libnl/include/libnl3
LIBS += -L/home/yan/linux/IMX6ULL/tool/libnl/lib
cpp 复制代码
export PKG_CONFIG_PATH=/home/yan/linux/IMX6ULL/tool/libnl/lib/pkgconfig:$PKG_CONFIG_PATH
make

编译结束后会在当前目录下生成wpa_cli和wpa_supplicant两个工具,把它拷贝到根文件系统的/usr/bin目录下

7、WiFi联网

打开wlan0网卡

cpp 复制代码
ifconfig wlan0 up

在etc目录下创建wpa_supplicant.conf文件

内容:

cpp 复制代码
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1
network={
ssid="ChinaNet-53F3" 
psk="88888888"   
}

创建/var/run/wpa_supplicant目录

cpp 复制代码
mkdir /var/run/wpa_supplicant -p

连接WiFi

cpp 复制代码
wpa_supplicant -Dnl80211 -c /etc/wpa_supplicant.conf -i wlan0 &

获取IP地址

cpp 复制代码
udhcpc -i wlan0

如果此时ifconfig没有IPV4地址

输入一下命令

cpp 复制代码
ifconfig wlan0 192.168.2.101

以下是驱动移植遇到的问题:

开发板网卡已经起来并且有IP地址了,但是ping windows ping不通,ping ubuntu也不通,但是windows 和 Ubuntu ping开发板可以。

①把windows防火墙关了

②Ubuntu和开发板不在同一网段,解决办法:手动配置一下IP地址

之后ping百度好像也不通:没有设置网关

cpp 复制代码
route add default gw 192.168.2.1 dev wlan0
相关推荐
大树883 小时前
金刚石散热越强,管路越先见顶
大数据·运维·服务器·人工智能·ai
摇滚侠3 小时前
Linux CentOS7 rpm 安装 MySQL 5.7
linux·运维·mysql
bush44 小时前
嵌入式linux学习记录十四、术语
linux·嵌入式
载数而行5204 小时前
Linux 11 动态监控指令top
linux
小宇宙Zz4 小时前
Maven依赖冲突
java·服务器·maven
不会C语言的男孩5 小时前
Linux 系统编程 · 第 8 章:进程基础
linux·c语言
古城小栈5 小时前
Unix 与 Linux 异同小叙
linux·服务器·unix
程序猿阿伟6 小时前
《Chrome离线扩展安装的底层逻辑与场景落地指南》
服务器·网络·chrome
凡人叶枫7 小时前
Effective C++ 条款42:了解 typename 的双重意义
java·linux·服务器·c++
AC赳赳老秦7 小时前
用 OpenClaw 搭建服务器故障应急响应系统,自动处理 80% 常见运维故障
android·运维·服务器·python·rxjava·deepseek·openclaw