嵌入式Linux學習_rk3588移植無線網卡驅動

記錄移植無線網卡驅動遇到的各種問題:
從官網上下載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;也會說…