网络驱动移植(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
相关推荐
YH_DevJourney38 分钟前
Linux-C/C++《C/8、系统信息与系统资源》
linux·c语言·c++
一小路一1 小时前
Go Web 开发基础:从入门到实战
服务器·前端·后端·面试·golang
威哥爱编程1 小时前
Linux驱动开发13个实用案例
linux
去看日出1 小时前
Linux(centos)系统安装部署MySQL8.0数据库(GLIBC版本)
linux·数据库·centos
qq_448941081 小时前
10、k8s对外服务之ingress
linux·容器·kubernetes
D-river2 小时前
【如何基于Debian构建Kali Linux】
linux·网络·安全·网络安全
小金的学习笔记3 小时前
如何在本地和服务器新建Redis用户和密码
服务器·数据库·redis
年轮不改3 小时前
ARM-Linux 基础项目篇——简单的视频监控
linux·arm开发
EasyNVR3 小时前
EasyRTC:全平台支持与自研算法驱动的智能音视频通讯解决方案
运维·服务器·小程序·音视频·webrtc·p2p·智能硬件
程序员JerrySUN4 小时前
树莓派 4B:AI 物联网完整部署方案
linux·人工智能·嵌入式硬件·物联网·分类·数据挖掘