【ubuntu】ubuntu中找不到串口設備問題排查

ubuntu中找不到串口問題排查

    • 1. 檢查設備識別情況
    • 2. 檢查并安裝驅動
    • 3. 檢查內核消息
    • 4. 禁用brltty服務
      • 1. 停止并禁用 brltty 服務
      • 2. 完全移除 brltty 包
      • 3. 重啟系統或重新插拔設備
    • 5.輸出結果

問題:虛擬機ubuntu中,已經顯示串口設備連接成功,但是在/dev/tty* 設備下找不到串口設備,虛擬機設置無誤,排查ubuntu內部問題。

1. 檢查設備識別情況

打開Ubuntu的終端,依次輸入以下命令,觀察系統是否識別到了硬件:

bash

# 查看系統日志中是否有串口設備相關的信息
dmesg | grep tty
# 或者嘗試更具體的篩選
dmesg | grep usb
# 列出所有已識別的串口設備
ls /dev/tty*
# 特別注意 /dev/ttyS*, /dev/ttyUSB*, /dev/ttyACM* 等設備文件
# 查看USB設備列表
lsusb

如果 lsusb 顯示了當前設備下串口轉換芯片(如CH340、FT232、CP2102等),但 /dev/ 下沒有對應的 ttyUSB*ttyACM* 設備,問題可能出在驅動或權限上。

2. 檢查并安裝驅動

對于常見的CH340芯片,在較新的Linux內核(如Ubuntu 22.04使用的內核)中可能存在驅動問題。

  1. 首先檢查當前內核是否識別了硬件:

    bash

    # 查看驅動信息
    lsmod | grep ch34
    # 或者更廣泛地查看usbserial
    lsmod | grep usbserial
    
  2. 如果沒有任何輸出,或者設備識別為 ttyCH341USBx 而不是 ttyUSBx,你可能需要重新編譯安裝驅動。可以參考搜索結果中的方案:

    • 卸載現有驅動(如果有):

      sudo rmmod ch341
      
    • 下載并編譯正確的驅動(具體步驟可能因驅動版本和內核版本而異,請參考相關驅動源碼的說明)。

    • 安裝新驅動后,重新插拔USB設備或重啟虛擬機。

操作記錄:

ant@ant-virtual-machine:~$ lsusb 
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub 
Bus 001 Device 011: ID 1a86:7523 QinHeng Electronics CH340 serial converter 
Bus 001 Device 004: ID 0e0f:0008 VMware, Inc. Virtual Bluetooth Adapter 
Bus 001 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub 
Bus 001 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse 
Bus 001 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub ant@ant-virtual-machine:~$ lsmod | grep ch34 
ch341                  24576  0 
usbserial              69632  1 ch341

從輸出結果來看,ubuntu系統已經正確識別到了串口,并且串口驅動也正常。

lsusb 已經識別到了 CH340 轉換器(ID 1a86:7523)

lsmod 顯示 ch341 驅動模塊已經加載,并且關聯了 usbserial 模塊

3. 檢查內核消息

查看內核日志中關于CH340的詳細信息:

sudo dmesg | grep -i ch34

這會顯示設備創建過程中出現的任何錯誤。

操作記錄:

ant@ant-virtual-machine:~$ sudo dmesg | grep -i ch34
[ 2248.192716] usbcore: registered new interface driver ch341
[ 2248.192724] usbserial: USB Serial support registered for ch341-uart
[ 2248.192735] ch341 1-2.2:1.0: ch341-uart converter detected
[ 2248.201560] usb 1-2.2: ch341-uart converter now attached to ttyUSB0
[ 2248.729083] usb 1-2.2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[ 2248.732131] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[ 2248.732147] ch341 1-2.2:1.0: device disconnected
[ 2357.621916] ch341 1-2.2:1.0: ch341-uart converter detected
[ 2357.639750] usb 1-2.2: ch341-uart converter now attached to ttyUSB0
[ 2358.194838] usb 1-2.2: usbfs: interface 0 claimed by ch341 while 'brltty' sets config #1
[ 2358.198221] ch341-uart ttyUSB0: ch341-uart converter now disconnected from ttyUSB0
[ 2358.198235] ch341 1-2.2:1.0: device disconnected

dmesg 輸出可以非常清楚地看到問題:brltty 服務正在與 ch341 驅動程序競爭對 USB 串口設備的控制權,導致設備反復連接和斷開。
解決方案是停止并禁用brltty服務,然后重新連接設備。

4. 禁用brltty服務

brltty 是一個為視障用戶提供盲文顯示支持的服務,但它有時會錯誤地嘗試控制串口設備,與正常的串口驅動程序發生沖突。

1. 停止并禁用 brltty 服務

# 停止 brltty 服務
sudo systemctl stop brltty# 禁用 brltty 服務,防止它開機自啟動
sudo systemctl disable brltty# 確認服務已停止
systemctl status brltty

2. 完全移除 brltty 包

如果不需要盲文支持,最好完全移除 brltty:

# 卸載 brltty
sudo apt remove brltty# 或者徹底清除(包括配置文件)
sudo apt purge brltty

3. 重啟系統或重新插拔設備

完成上述步驟后,請重新插拔您的 CH340 設備,或者重啟系統:

# 重新插拔設備后檢查
ls /dev/ttyUSB*# 查看內核消息確認沒有沖突
dmesg | grep -i ch34 | tail -5

5.輸出結果

最終,查看串口設備:

virtual-machine:~$ ls /dev/ttyUSB*
/dev/ttyUSB0

正確顯示了串口設備,之后,就可以設置串口設備讀寫權限,使用串口設備。
最終,查看串口設備:

virtual-machine:~$ ls /dev/ttyUSB*
/dev/ttyUSB0

正確顯示了串口設備,之后,就可以設置串口設備讀寫權限,使用串口設備。

ubuntu 系統重啟后,再次查看串口驅動模式消息:

virtual-machine:~/Desktop$ sudo dmesg | grep -i ch34
[    3.247739] usbcore: registered new interface driver ch341
[    3.247747] usbserial: USB Serial support registered for ch341-uart
[    3.247758] ch341 1-2.2:1.0: ch341-uart converter detected
[    3.256254] usb 1-2.2: ch341-uart converter now attached to ttyUSB0

usb 串口模塊已經沒有沖突了。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/96881.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/96881.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/96881.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Unity 性能優化 之 靜態資源優化 (音頻 | 模型 | 紋理 | 動畫)

Unity 之 性能優化 -- 靜態資源優化參考性能指標靜態資源資源工作流程資源分類原理小結Audio 實戰優化建議模型導入工作流程DCC中模型導出.DCC中Mesh生產規范模型導出檢查流程模型優化建議紋理優化紋理基礎概念紋理類型紋理大小紋理顏色空間紋理壓縮紋理圖集紋理過濾紋理Mipmap…

GitHub 熱榜項目 - 日榜(2025-09-13)

GitHub 熱榜項目 - 日榜(2025-09-13) 生成于:2025-09-13 統計摘要 共發現熱門項目:18 個 榜單類型:日榜 本期熱點趨勢總結 本期GitHub熱榜項目呈現三大技術熱點:AI開發工具化(如GenKit、ROMA多智能體框架&#xff…

Pytest 常見問題及其解決方案

常見問題及解決方案 1. 測試通過了,但覆蓋率不達標 現象: 雖然所有測試都通過了,但覆蓋率報告顯示某些代碼沒有被覆蓋。 解決方案: 檢查覆蓋率配置:確保 .coveragerc 或 pytest.ini 中正確設置了要分析的源代碼路徑。 使用標記(markers)排除測試文件本身:避免測試代…

直擊3D內容創作痛點-火山引擎多媒體實驗室首次主持SIGGRAPH Workshop,用前沿技術降低沉浸式內容生成門檻

當3D、VR技術在游戲、教育、醫療、文化領域遍地開花,“內容短缺”卻成了制約行業爆發的關鍵瓶頸——傳統3D/4D創作不僅耗時耗力、依賴專業技能,還難以適配消費級設備,讓許多創作者望而卻步。近日,由火山引擎多媒體實驗室聯合領域頂…

華為基本命令

我們使用的是華為官方的模擬器eNSP 一、華為設備的模式 華為的設備有兩種模式: 用戶視圖和系統視圖 用戶視圖只能讀取,或者進行一些基礎查詢 系統視圖能對設備和接口進行一些配置管理,和一些高級操作 在“用戶視圖”下使用system-view系統可…

2025.9.14英語紅寶書【必背16-20】

單詞組合 中文速記句子 英文句子 confine, misery, necessitate, negotiate, preach, precaution, precision, stretch 病人被 confine(限制) 在床上,感受 misery(痛苦),情況 necessitate(需要) 醫生 negotiate(商討),牧師 preach(布道) 并提醒 precaution(預防)…

HUST-STAR電控組視覺任務

視覺任務 注意:視覺部分建議采用 python 完成,下面教程也大多針對 python。其原因在于 python 配置相應環境更為輕松,且內置庫較為豐富,屬于初學者友好類型。沒接觸過 python 也不必擔心,它的大體邏輯與 C 相近&#…

壓縮和歸檔 文件傳輸

壓縮和歸檔壓縮:4G----1.5Gbzip2-bunzip2 gzip-gunzip xz-unxzgzip 要壓縮的文件原來的文件就會被刪除 (壓縮和解壓縮)會生成一個 aaa.gz 的文件歸檔: 4G----4G 打包tarc 創建歸檔文件 v 看到創建的詳細過程 f 文件類型 t 不展開歸檔文件&…

深入探索 C++ 元組:從基礎到高級應用

在現代 C 編程中,元組(std::tuple)是一個強大且靈活的容器,能夠存儲和操作多個不同類型的數據。它在標準庫中扮演著重要角色,并在實際開發中提供了諸多便利。本文將全面探討 C 元組的各個方面,從基礎用法到…

Excel批量處理一列數據---分列功能

0 Preface/Foreword當有多行數據需要處理時,為了減少手動操作,可以EXCEL數據分列功能可以提高效率。1 數據分列1.1 數據分類步驟如下:選中需要處理的一列數據;選擇菜單欄中的“數據”;選擇分列按照需求設置即可1.2 查找…

HTTPS + 域名 + 雙向證書認證(下)

文章目錄1. .p12文件1.1 主要特點1.2 常見用途1.3 常見操作1.4 與其他格式的區別1.5 與公鑰的區別和聯系1.6 安全性注意事項2. Nginx 配置2.1 location指令2.2 alias 與 root 指令的區別3 雙向認證配置3.1 創建根證書3.1.1 生成根CA的私鑰3.1.2 生成請求證書3.1.3 生成自簽署CA…

嵌入式 - ARM3

一、arm啟動C語言1. 配置異常向量表2. 實現了軟件中斷的部分注:ldmfd sp!, {r0-r12, lr} ldmfd sp!, {r0-r12, pc}^ bx lr 左半部分:繁瑣易理解的返回方式:先彈出所有通用寄存器和lr &…

如何通過標簽和分類提升知識復用效率

通過標簽和分類提升知識復用效率,其核心在于構建一個結構化與靈活性兼備的知識組織體系。這需要將分類的“確定性”與標簽的“多維性”進行有效結合,為知識的存儲與檢索建立清晰的“骨架”和豐富的“神經網絡”。具體實踐中,要求我們進行頂層…

ZYNQ PS讀寫PL BRAM

一、實驗室任務 本章的實驗任務是 PS 將數據寫入BRAM,然后從 BRAM 中讀出數據,并通過串口打印出來;與此同時,PL 從通過自定義ip核從BRAM中同樣讀出數據,并通過ILA 來觀察讀出的數據與串口打印的數據是否一致。這里是通…

LinuxC++項目開發日志——高并發內存池(5-page cache框架開發)

PageCachepage cache 設計邏輯一、PageCache 的核心定位:理解它與 CentralCache 的本質區別二、PageCache 的內存分配流程:從 “精確匹配” 到 “拆分適配”三、PageCache 的內存釋放流程:合并小 Span,解決內存碎片問題page cache…

Matplotlib:繪制你的第一張折線圖與散點圖

Matplotlib入門:繪制你的第一張折線圖與散點圖導語 歡迎來到 Matplotlib 的世界!對于任何使用 Python 進行數據分析或機器學習的人來說,數據可視化都是一項至關重要的技能。Matplotlib 是 Python 中最流行、最基礎的可視化庫,它功…

MySQL保姆級安裝教程

MySQL 安裝詳細文檔,適用于 Windows、macOS 和 Linux 系統,包含了從下載到驗證安裝的完整步驟: 一、Windows 系統安裝 MySQL 1. 下載 MySQL 安裝包 訪問 MySQL 官方下載頁:https://dev.mysql.com/downloads/installer/選擇 “MySQ…

重塑你的大腦:從理解突觸到掌控人生

重塑你的大腦:從理解突觸到掌控人生你是否曾對自己的某些行為感到無力?明知應該早睡,卻總忍不住刷手機;下定決心要鍛煉,卻常常半途而廢。這些困擾我們的習慣,并非簡單的意志力問題,其根源深深植…

《C++進階之STL》【哈希表】

【哈希表】目錄前言------------概念介紹------------1. 什么是哈希?------------核心術語------------一、哈希函數1. 哈希函數的核心特點是什么?2. 哈希函數的設計目標是什么?3. 常見的哈希函數有哪些?直接定址法除法散列法乘法…

機器學習-模型驗證

驗證泛化誤差 在一個數據集上估計誤差,數據集只能使用一次驗證數據集:可以被使用多次 基本是訓練數據集中的一部分 當使用“test”時,大多數時候指的是驗證數據集 生成驗證數據集方法 1、數據隨機分入訓練集或驗證集 總是隨機選n%的數據作為驗…