2024-06-20

避免 USB WiFi 裝置被當作 USB儲存裝置 掛載

最近一直使用的 USB WiFi 裝置突然無法使用,連 LED指示燈 都沒有亮著
以為已經損壞,但電腦卻能偵測到裝置的名稱,只是名稱上有一些特殊的描述
因此在下又要尋找解決方便

預覽

錯誤掛載

USB WiFi 裝置連接後,在 Terminal 輸入

lsusb

雖然找到正在使用的 USB WiFi 裝置,但卻附加 Driver CDROM Mode 的描述

由於在下曾經在 Windows 使用相同的裝置,連接後, Windows 會將裝置當作 USB儲存裝置 掛載
需要退出 USB儲存裝置 後才會識別為 USB WiFi 裝置
因此在下認為 USB WiFi 裝置並沒有損壞,只是錯誤地被識別為 USB儲存裝置
(但 Linux 或 Mac 都只能掛載但沒法顯示,有機會這個模式只支援 Windows)

在下嘗試將 USB WiFi 裝置的 Driver CDROM Mode 設定為 黑名單 ,避免掛載為 USB儲存裝置
希望能正常使用 USB WiFi 裝置的 WiFi 功能

設定udev規則

/etc/udev/rules.d 建立一個 .rules 的 udev規則檔案
(檔案名稱可以自由輸入,例如在下使用 99-prevent-rtl8188gu-driver-cdrom-mode.rules)
並在檔案中輸入

SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", ATTR{bInterfaceClass}=="08", ATTR{bInterfaceSubClass}=="06", ATTR{bInterface Protocol}=="50", ENV{UDISKS IGNORE}="1"

或直接在 Terminal 輸入

echo 'SUBSYSTEM=="usb", ATTR{idVendor}=="0bda", ATTR{idProduct}=="1a2b", ATTR{bInterfaceClass}=="08", ATTR{bInterfaceSubClass}=="06", ATTR{bInterface Protocol}=="50", ENV{UDISKS IGNORE}="1"' | sudo tee "/etc/udev/rules.d/99-prevent-rtl8188gu-driver-cdrom-mode.rules"

建立規則後,輸入

sudo service udev restart

重新啟動 udev服務 (需要使用 root 或 sudo) (或重新開機亦可)
(udev規則 會根據檔案名稱的順序決定優先度,因此前綴數值使用 99 是為了降低優先度,避免優先度高於重要的規則)

重新拔插 USB WiFi 裝置後,裝置便正常運作

總結

這個 USB WiFi 裝置就是在下之前 USB 外殼受損,需要額外垾接 USB插頭 的 USB裝置
最近在下將 Linux核心 升級,有可能因為這個情況而將 USB WiFi 裝置 辨識為 USB儲存裝置

參考資料

沒有留言 :

張貼留言