Linux arm 4.19.65 usb wifi(rtl8821cu) 适配工作

30 篇文章 2 订阅

arm Linux usb wifi(rtl8821cu) 适配工作

1. 环境介绍

开发板环境:Linux arm 4.19.65 #1 SMP Wed Jan 12 14:14:38 CST 2022 armv7l armv7l armv7l GNU/Linux
交叉编译器:arm-linux-gnueabihf-
驱动:WG217rtl8821CU_WiFi_linux_v5.8.1.1
工具:wpa_supplicantwpa_cliiwlistiwconfighostapd

2. 内核配置

2.1配置USB设备支持

Device Drivers > USB support
在这里插入图片描述

2.2 配置设备支持wifi

Networking support > Wireless
在这里插入图片描述

2.3 配置设备支持AP模式

Device Drivers > Network device support > Wireless LAN
在这里插入图片描述
注:编译驱动之前,一定要先编译kernel,这样在编译驱动所指定的kernel才是okd的,否则会有kernel warning , unkonw symable 等异常或错误,导致设备不可用

3. 驱动编译

新建平台:

CONFIG_PLATFORM_NEW = y

添加编译选项

ifeq ($(CONFIG_PLATFORM_NEW), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
EXTRA_CFLAGS += -DCONFIG_IOCTL_CFG80211 -DRTW_USE_CFG80211_STA_EVENT #开启AP模式需要配置此处
ARCH := arm
CROSS_COMPILE := arm-linux-gnueabihf-	#指定交叉编译器
KVER  := 4.19.65						#内核版本
KSRC ?= /home/zacha/yulong810/kernel	#指定kernel
endif

编译驱动并生成.ko

make

4.工具安装

在线安装

sudo apt-get install wpasupplicant
sudo apt-get install hostapd
sudo apt-get install wireless-tools

离线编译
离线编译移植的方法比较繁琐,这里给出官网安装包的路径,和一些驱动移植的方法,自行处理。
openssl-1.1.1m.tar.gz
libnl-3.2.25.tar.gz
wpa_supplicant-2.9.tar.gz
hostapd-2.9.tar.gz
wireless_tools.29.tar.gz

软件移植方法✈ wpa
软件移植方法✈wireless tools

5. 驱动安装

5.1 硬件连接
#lsusb
Bus 002 Device 002: ID 0bda:c811 Realtek Semiconductor Corp. 
5.2 驱动安装
#insmod 8821cu.ko
.......
#cat /proc/net/wireless 
Inter-| sta-|   Quality        |   Discarded packets               | Missed | WE
 face | tus | link level noise |  nwid  crypt   frag  retry   misc | beacon | 22
wlan0: 0000    0.    0.    0.       0      0      0      0      0        0

#ifconfig
wlan0: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 30:eb:1f:43:09:c6  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

看到以上信息,表示硬件连接正常,驱动安装正常,并且通过ifconfig可以看到无线网卡设备。

6. WIFI 模块STA模式

touch /etc/wpa_supplicant/wpa_supplicant.conf
#添加以下内容
ctrl_interface=/run/wpa_supplicant
update_config=1
wpa_supplicant -B -i wlx30eb1f4309c6 -c /etc/wpa_supplicant/wpa_supplicant.conf
wpa_cli 							#进入wpa_cli工具交互模式 
> scan
> scan_results
> add_network
> set_network 0 ssid '"Wifi Name"'
> set_network 0 psk '"Wifi Passwd"'
> enable_network 0
> save_config
> quit
cat /etc/wpa_supplicant/wpa_supplicant.conf	 #cat 可以看到wifi的简单配置信息
wpa_supplicant -Dnl80211 -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B
#wpa_cli -p/var/run/wpa_supplicant remove_network 0
wpa_cli -p/var/run/wpa_supplicant ap_scan 1
wpa_cli -p/var/run/wpa_supplicant add_network
wpa_cli -p/var/run/wpa_supplicant set_network 0 ssid '"Wifi Name"' 
wpa_cli -p/var/run/wpa_supplicant set_network 0 psk '"Wifi Passwd"'
wpa_cli -p/var/run/wpa_supplicant select_network 0
udhcpc -b -i wlan0 -q 						#动态分配IP

注意:在设置wifi 的SSID名称的时候,一定是‘ “ Wifi Name” ’ ,单引号中间双引号,否则会出现:Invalid symbols 类似的错误,我不知道其他是不是我这个平台的问题。

完成上面的步骤:没有出错的话,wifi 的STA模式就连接成功了:

#ifconfig
wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 192.168.199.222  netmask 255.255.255.0  broadcast 192.168.199.255
        ether 30:eb:1f:43:09:c6  txqueuelen 1000  (Ethernet)
        RX packets 836  bytes 149670 (149.6 KB)
        RX errors 0  dropped 1  overruns 0  frame 0
        TX packets 6  bytes 3226 (3.2 KB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
#ping baidu.com
PING baidu.com (220.181.38.148) 56(84) bytes of data.
......
64 bytes from 220.181.38.251 (220.181.38.251): icmp_seq=10 ttl=1 time=67.9 ms
64 bytes from 220.181.38.251 (220.181.38.251): icmp_seq=11 ttl=1 time=40.4 ms
--- baidu.com ping statistics ---
11 packets transmitted, 11 received, 0% packet loss, time 14198ms
rtt min/avg/max/mdev = 40.480/62.122/78.889/14.304 ms

7. WIFI 模块AP模式

touch /etc/hostapd/rtl_hostapd_5G.conf
#添加以下内容
##### hostapd configuration file ##############################################

interface=wlx30eb1f4309c6
ctrl_interface=/var/run/hostapd
ssid=Test
channel=36
wpa=2
wpa_passphrase=123456789
#bridge=br0


##### Wi-Fi Protected Setup (WPS) #############################################

eap_server=1

# WPS state
# 0 = WPS disabled (default)
# 1 = WPS enabled, not configured
# 2 = WPS enabled, configured
wps_state=2

uuid=12345678-9abc-def0-1234-56789abcdef0

# Device Name
# User-friendly description of device; up to 32 octets encoded in UTF-8
device_name=RTL8821CU

# Manufacturer
# The manufacturer of the device (up to 64 ASCII characters)
manufacturer=Realtek

# Model Name
# Model of the device (up to 32 ASCII characters)
model_name=RTW_SOFTAP

# Model Number
# Additional device description (up to 32 ASCII characters)
model_number=WLAN_CU

# Serial Number
# Serial number of the device (up to 32 characters)
serial_number=12345

# Primary Device Type
# Used format: <categ>-<OUI>-<subcateg>
# categ = Category as an integer value
# OUI = OUI and type octet as a 4-octet hex-encoded value; 0050F204 for
#       default WPS OUI
# subcateg = OUI-specific Sub Category as an integer value
# Examples:
#   1-0050F204-1 (Computer / PC)
#   1-0050F204-2 (Computer / Server)
#   5-0050F204-1 (Storage / NAS)
#   6-0050F204-1 (Network Infrastructure / AP)
device_type=6-0050F204-1

# OS Version
# 4-octet operating system version number (hex string)
os_version=01020300

# Config Methods
# List of the supported configuration methods
config_methods=label display push_button keypad


##### default configuration #######################################

driver=nl80211
beacon_int=100
hw_mode=a
ieee80211n=1
wme_enabled=1
ht_capab=[SHORT-GI-20][SHORT-GI-40][HT40+]
wpa_key_mgmt=WPA-PSK
wpa_pairwise=CCMP
max_num_sta=8
wpa_group_rekey=86400
touch /etc/udhcpc/udhcpd.conf
#添加以下内容
start 192.168.175.2
end 192.168.175.254
interface ap0
max_leases 234
opt router 192.168.175.1
ifconfig eth0 down
ifconfig wlan0 up
ifconfig wlan0 192.168.1.1
hostapd /etc/hostapd/rtl_hostapd_5G.conf -B
udhcpd /etc/udhcpd/udhcpd.conf &

完成上面步骤,就可以用手机或者PC 查看当前WiFI 是否存在。
在这里插入图片描述

8.参考

https://www.eet-china.com/mp/a46566.html
https://blog.csdn.net/wit_732/article/details/121038477

  • 1
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

疯狂的蕉尼基

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值