记录移植无线网卡驱动遇到的各种问题:
从官网上下载8821的驱动源码
在这里插入图片描述
复制一份上面的CONFIG_PLATFORM_ARM_RK2818,改成3588,然后选项改成y,并把autodetect关掉。
找到CONFIG_PLATFORM_ARM_RK2818,复制一份,改成RK3588,然后把交叉编译工具链、内核目录改好
在这里插入图片描述
make编译成.ko内核模块

出现问题
在这里插入图片描述
问了AI回复如下,仔细看了一下网卡驱动的README,发现它是提供monitor的版本,于是我重新下了一个普通版的
在这里插入图片描述
普通版的链接如下:
https://github.com/brektrou/rtl8821CU
这里边依然有一些问题:

下面这俩函数过时了,没有在一个命名空间内,在当前目录通过如下命令,可以定位到哪个源文件使用了这个函数,最终找到是osdep_service.c。

grep -r "kernel_read" .

只需要在该源文件加上,下面的声明,明确告诉内核:“我这个驱动程序需要访问文件系统内部命名空间中的符号”。这样,modpost 阶段就不会再报错了

MODULE_IMPORT_NS(VFS_internal_I_am_really_a_filesystem_and_am_NOT_a_driver);

在这里插入图片描述

make,编译出.ko文件,拷贝到板端
板端实验,在加载ko前,不管插不插网卡,都是四个节点。
在这里插入图片描述
加载网卡驱动,在用ifconfig看,依然是四个,需要找出问题。
在这里插入图片描述
查看内核日志,可以看到,驱动加载正常,但是usb网卡被识别成usb设备了
在这里插入图片描述
在这里插入图片描述
使用命令进行模式切换
在这里插入图片描述

 sudo usb_modeswitch -KW -v 0bda -p 1a2b

在这里插入图片描述
然后再lsusb,可以看到它的id变成了0bda:c820,和内核源码进行比对,如果有的话,就是对的。
且后面也写了NIC(Network Interface Card),已经识别成功。
在这里插入图片描述
再次ifconfig,已经多了一个节点。
在这里插入图片描述
测试:如果要给新的节点分配ip,记得要绕开同一网段,因为如果是同一个网段,手动设置的 IP 地址与系统中已有的默认路由规则可能会产生冲突,导致ssh失效。

sudo ifconfig enx0826ae302ae0 down
sudo ifconfig enx0826ae302ae0 192.168.1.100 netmask 255.255.255.0
sudo route add -net 192.168.1.0 netmask 255.255.255.0 dev enx0826ae302ae0

但是实际测试不能这么做,按照以下步骤进行:
第一步1.检查物理状态和驱动:
首先,确认系统已经识别了你的无线网卡。

lsusb | grep -i network 

如下图所示,虽然没有network字样,但是有NIC,证明系统已经识别了无线网卡:
在这里插入图片描述

第二步:扫描附近的Wi-Fi网络,这是测试无线网卡射频功能是否正常的关键。需要使用 iwlist 或 nmcli 工具。
(找到自己的节点名,我一开始用ifconfig看以为是enx0826ea…,结果是上一次这是旧的、无效的接口名,看状态为"down"可以知道。输出如下,已经找到网络,证明无线网卡使用正常。)

# 先确保接口已UP
sudo ip link set enx0826ae302ae0 up
# 扫描
sudo iwlist enx0826ae302ae0 scan | grep ESSID

在这里插入图片描述
第三步:连接网络。

# 查看可用的Wi-Fi列表(更友好的方式)
nmcli device wifi list# 连接到你的Wi-Fi网络(将 MyWiFi 和 your_password 替换成你的实际名称和密码)
nmcli device wifi connect "MyWiFi" password "your_password" 

用第一条命令命名能发现wifi,但是用第二条连接的时候却说没有找到ssid。需找到问题。看一下是不是被软屏蔽了。

# 检查无线接口的射频状态(是否被软屏蔽)
sudo rfkill list# 如果显示软屏蔽(soft blocked: yes),请解除屏蔽
sudo rfkill unblock wifi

可以看到确实是被软屏蔽了。
在这里插入图片描述
解决办法:

# 解除所有无线接口的软屏蔽
sudo rfkill unblock all
#再次检查
sudo rfkill list

所有的都变成no了
在这里插入图片描述
重新启用无线网口:

#重新启用无线网口:
sudo ip link set enxbcfd0c4f2669 up
#重新扫描:
nmcli device wifi list

在这里插入图片描述
在这里插入图片描述

新问题:找得到wifi,但是连不上。解决:重启wifi,重新up网卡sudo ip link set enxbcfd0c4f2669 up
在这里插入图片描述
又有一个问题:
在这里插入图片描述
尝试解决
从内核日志可以看出,驱动 rtl8821cu 成功识别了USB网卡,它最初创建了一个名为 wlan1 的标准无线网络接口。但是,系统随后强制将这个接口的名称从 wlan1 重命名(renamed) 为了 enxbcfd0c4f2669。
这是由 systemd 的 predictable network interface names(可预测的网络接口名称) 策略导致的。该系统策略旨在根据固件、拓扑和MAC地址为接口分配稳定的名称,以防止接口名(如 wlan0, wlan1)在每次启动时发生变化。它给无线设备命名的规则就是 wlx<MAC地址>,而有线设备是 enx<MAC地址>。

问题的核心是: 这个策略错误地将您的无线网卡识别并命名为了一个有线网卡的格式 (enx…),这导致 iw 等工具无法正确识别它为无线设备。
解决方案:禁用这个“可预测”的命名规则
我们需要告诉系统:“不要给这个特定的网卡重命名,就用驱动创建的名字(wlan1)”。

方法:创建链接文件(推荐,永久有效)
这是最正规的解决方法。我们创建一个 udev 规则来覆盖系统的默认重命名行为。

找出您网卡的MAC地址。从名称 enxbcfd0c4f2669 可以看出,它就是 bcfd0c4f2669(即 BC:FD:0C:4F:26:69)。
创建udev规则
sudo vim /etc/udev/rules.d/70-disable-rename-usb-wifi.rules
在文件中输入SUBSYSTEM==“net”, ACTION==“add”, ATTR{address}==“bcfd0c4f2669”, NAME=“wlan1”。
然后再输入下面命令。实测无效

sudo udevadm control --reload-rules
sudo udevadm trigger

在这里插入图片描述
是不是网络安全协议的原因呢?今天是第二天,该问题仍未解决。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/96496.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/96496.shtml
英文地址,请注明出处:http://en.pswp.cn/web/96496.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MCP专题五、MCP 的未来趋势与展望

MCP专题五:MCP 的未来趋势与展望 5.1 引言 本专题前四章我们系统性地学习了 MCP(Model Context Protocol)的 发展背景、核心机制、Python 实战方法以及典型应用场景。可以看到,MCP 并不仅仅是一个技术标准,它更像是 大模型与外部世界沟通的桥梁,推动了 AI 应用从“实验…

C++ Dijkstra堆优化算法

时间复杂度为&#xff1a;O((nm)logn)算法特点&#xff1a;非负边权、单源最短路、顶点数、边数<1000000&#xff0c;数据结构前置&#xff1a;领接表、哈希表、二叉堆算法&#xff1a;第一步&#xff0c;建图&#xff0c;任何算法我们都要去思考&#xff0c;用什么数据结构…

网页设计作业02

<!DOCTYPE html> <html> <head><meta charset"utf-8"/><title>网页设计作业</title> </head> <body><h2>问卷调查</h2><p><strong>1、你是通过什么途径来到绿叶学习网的&#xff1f;</s…

每日算法题推送-->今日专题——双指针法

题目1&#xff1a;https://leetcode.cn/problems/move-zeroes 小编刚看到这道题的时候&#xff0c;想到的第一个方法就是建立一个与原数组等大的新的数组&#xff0c;然后遍历原数组&#xff0c;如果遇到元素值不为0的元素&#xff0c;就将这个元素放到新数组中&#xff0c;直到…

告别单次对话:上下文工程如何重塑AI应用架构

1. 前言人工智能应用开发领域正在经历一场静悄悄的变革。去年此时&#xff0c;提示工程&#xff08;Prompt Engineering&#xff09;还是各大技术论坛的热门话题&#xff0c;开发者们热衷于分享各种精心设计的提示词模板&#xff0c;试图通过单次交互获得理想的大模型输出。然而…

PM2 管理后端(设置项目自启动)

查看pm2管理pm2 list ┌────┬──────────────┬─────────────┬─────────┬─────────┬──────────┬────────┬──────┬───────────┬──────────┬──────────┬──…

CCN中商再获三项知识产权,为数字化服务添动能

上海中商网络股份有限公司&#xff08;CCN中商&#xff09;依托持续的研发投入与深厚的技术积淀&#xff0c;在知识产权领域再获重要突破——成功收获三项知识产权&#xff0c;囊括实用新型专利《一种3D霓彩智感双条光柱印刷用全自动生产线》、发明专利《一种一物一码关联系统及…

使用LTspice仿真一个异步BUCK电路

确定异步BUCK的规格 输入电压&#xff08;Vin&#xff09;&#xff1a;12V 输出电压&#xff08;Vout&#xff09;&#xff1a;6V 最大输出电流&#xff08;Iout&#xff09;&#xff1a;3A 开关频率&#xff08;fsw&#xff09;&#xff1a;400kHz 输出电压纹波&#xff08;Δ…

R语言对excel中多个sheet子表批量进行地理探测器计算

## 基本设置 ## 1) 设定你的工作目录&#xff08;保持你的原路径不变&#xff09; setwd("D:/*****/*****/******")## 2) 文件名&#xff08;与xlsx实际名字保持一致&#xff09; xlsx_file <- "驱动因素&#xff08;中低收入&#xff09;.xlsx"## 依…

C++ JSON 数据库:jsoncpp

jsoncpp1. JSON数据1.1 JSON 的基本语法规则1. 基础语法要求两种核心数据结构JSON 与其他数据格式的对比1.2 JSON 的典型应用场景1.3 JSON 解析与生成工具2. 编程语言库&#xff08;解析/生成&#xff09;1.4 常见错误与注意事项2. jsoncpp2.1 基本用法1. 安装与集成2. 核心类与…

《苍穹外卖》项目日记_Day9

前言&#xff1a; 上午就把今天任务完成了&#xff0c;就继续往后学了一些知识&#xff0c;晚上写下笔记总结一下。 今日完成任务&#xff1a; 调用百度地图开放平台&#xff0c;优化用户下单业务学习SpringTask&#xff0c;定时处理超时、派送中订单学习WebSocket&#xff0c;…

人工智能学习:Transformer结构中的编码器层(Encoder Layer)

Transformer结构中的编码器层(Encoder Layer) 一、编码器层介绍 概念 编码器层(Encoder Layer)是Transformer编码器的基本构建单元,它重复堆叠形成整个编码器,负责逐步提取输入序列的特征。每个编码器层由两个核心子层组成: 多头自注意力机制(Multi-Head Self-Attentio…

2018年下半年 系统架构设计师 综合知识

1.在磁盘调度管理中&#xff0c;应先进行移臂调度&#xff0c;再进行旋转调度。假设磁盘移动臂位于21 号柱面上&#xff0c;进程的请求序列如下表所示。如果采用最短移臂调度算法&#xff0c;那么系统的响应 序列应为(D )。A. ②⑧③④⑤①⑦⑥⑨ …

数据库的连接_qt

数据库的连接形式可以通过cmd查看 1.获取 UI 输入的连接参数 // 获取主机名&#xff08;如"localhost"或IP地址&#xff09; QString hostStr hostEdit->text(); // 从hostEdit控件获取文本 QByteArray hostBa hostStr.toUtf8(); // 转换为UTF-8编码的字节数…

HTML 设计与使用入门

HTML 设计与使用入门 一、完整示例&#xff08;基础页面模板&#xff09;这是一个结构清晰、可直接拷贝运行的最小 HTML 模板&#xff1a;<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"utf-8"><meta name"vie…

Gradio全解11——Streaming:流式传输的视频应用(2)——Twilio:网络服务提供商

Gradio全解11——Streaming&#xff1a;流式传输的视频应用&#xff08;2&#xff09;——Twilio&#xff1a;网络服务提供商11.2 Twilio&#xff1a;网络服务提供商11.2.1 Twillo穿透服务与TURN服务器1. 什么是STUN、TURN和ICE&#xff1f;2. Twilio介绍及网络穿透服务3. Twil…

【更新至2024年】2009-2024年各地级市金融科技水平数据

【更新至2024年】2009-2024年各地级市金融科技水平数据 1、时间&#xff1a;2009-2024年 2、来源&#xff1a;天眼查 3、指标&#xff1a;年份、省份、地级市、地级市代码、当年新注册金融科技公司数量、累计注册金融科技公司数量、金融科技水平 4、范围&#xff1a;地级市…

一般软件加载显示图片的流程

目录 1、一般图片浏览软件的流程&#xff08;Qt 或类似框架&#xff09;&#xff1a; 1️⃣ 读取原始数据 2️⃣ 解析图片格式 3️⃣ 存储到内部可用的绘制对象 4️⃣ 显示到界面 ✅ 总结 2、那什么叫“QPixmap 在 Qt 里就是“显示专用的像素缓存”&#xff0c;不是原始…

【论文阅读】REFRAG:一个提升RAG解码效率的新思路

引言 看到一则报道[1]&#xff0c;重组后的Meta实验室在9月1号发布了一篇关于提升RAG解码效率的论文&#xff0c;提出的思路有点启发作用&#xff0c;于是把原文下载下来仔细看下。 论文标题&#xff1a;REFRAG: Rethinking RAG based Decoding 论文地址&#xff1a;https://ar…

QT M/V架构开发实战:QFileSystemModel介绍

目录[TOC](目录)前言一、QFileSystemModel初步介绍二、基本功能1.创建2.基本属性与方法三、示例&#xff08;简单的文件浏览器&#xff09;四、性能注意事项前言 本文主要介绍的是使用代码生成的情况下对控件的介绍&#xff0c;包括拥有的功能及能修改的样式&#xff0c;也会说…