2024-06-20

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

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

預覽

錯誤掛載

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

1
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)
並在檔案中輸入

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

或直接在 Terminal 輸入

1
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"

建立規則後,輸入

1
sudo service udev restart

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

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

總結

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

參考資料

沒有留言 :

張貼留言