Linux

沃達丰 E3730 無法 usb_modeswitch

  • November 30, 2020

tl;博士

Vodafone E3730 HSPA Express 數據卡似乎在 Kubuntu 18.04 LTS 中根本不起作用。如何解決這個問題?


描述

該卡曾經工作。坦率地說,我不記得它是否在 18.04 LTS 或某些早期 LTS 版本中有效,但確實有效。在我目前在 18.04 LTS 中的 KDE Plasma 中,保存了曾經可以工作的網路設置。我希望他們在我插入卡後立即啟動,但沒有;就好像那張卡不存在一樣。

SIM 卡從未被移除,它應該仍然可以工作。

從它工作的那一刻起,我記得沒有任何問題。它可能幾乎是開箱即用的。硬體被辨識,我只需要設置像 APN 這樣的細節。


技術細節

此資訊印在不干膠標籤上:

Vodafone Mobile Connect

型號:E3730

HSPA Express 數據卡

由 Option 在歐盟設計由 Option QUALCOMM 3G CDMA

在愛爾蘭製造

這是來自lsusb

Bus 001 Device 006: ID 0af0:7301 Option

這是來自usb-devices

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  6 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0af0 ProdID=7301 Rev=00.00
S:  Manufacturer=Option N.V.
S:  Product=Globetrotter HSUPA Modem
S:  SerialNumber=Serial Number
C:  #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)

cat /etc/issue:

Ubuntu 18.04.5 LTS \n \l

uname -a:

Linux whatever 4.15.0-121-generic #123-Ubuntu SMP Mon Oct 5 16:16:40 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

研究

該設備的正確驅動程序似乎是option.

我學到了什麼usb_modeswitch是:

一些新的 USB 設備板載了其專有的 Windows 驅動程序,其中大多數是 WWAN 和 WLAN 加密狗。第一次插入時,它們就像快閃記憶體一樣,並從那裡開始安裝 Windows 驅動程序。如果安裝了驅動程序,它會使儲存設備消失,並出現一個新設備,主要是複合設備(例如帶有調製解調器埠)。

在 Linux 上,在大多數情況下,驅動程序可用作核心模組,例如usbserialoption. 但是,設備最初預設綁定到usb-storageusb_modeswitch 然後可以向設備發送提供的批量消息(很可能是大容量儲存命令);此消息必須通過分析 Windows 驅動程序的操作來確定。

我確認了軟體包usb-modeswitchusb-modeswitch-data已安裝。我相信他們應該自動工作。至少當我的卡過去工作時,他們似乎過去工作過,而我對此一無所知usb_modeswitch

我注意到該設備甚至不像快閃記憶體。在usb-devices(上面)它的輸出中Cls=08(stor.),我認為這表明Base Class 08h (Mass Storage);但司機是none。沒有塊設備出現。

然後我找到了這個答案並嘗試將其調整為我的硬體。

起初我創建了一個名為0af0:7301in的空文件/etc/usb_modeswitch.d/。我刪除並重新插入了設備。然後usb-device給了我這個:

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  7 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs=  1
P:  Vendor=0af0 ProdID=7301 Rev=00.00
S:  Manufacturer=Option N.V.
S:  Product=Globetrotter HSUPA Modem
S:  SerialNumber=Serial Number
C:  #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage

驅動程序是usb-storage,我實際上可以掛載一個新創建的塊設備(/dev/sr0在我的例子中)並看到它包含一個 Windows 驅動程序。我認為空文件阻止usb_modeswitch了對設備執行任何操作。

接下來我嘗試usb_modeswitch手動執行:

sudo usb_modeswitch -v 0x0af0 -p 0x7301 --option-mode
# or
sudo usb_modeswitch -v 0x0af0 -p 0x7301 --option-mode -C 0xff

上述任何命令都列印輸出表明它有效,但輸出的唯一變化usb-device是在這一行:

I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)

這是我在開始搗亂之前所看到的usb_modeswitch。看來我設法手動重新創建了usb_modeswitch自動執行的操作。我的解釋是該工具只能部分工作:它能夠刪除驅動程序(usb-storage更改為none),但它不會切換模式(08(stor.)保留)。


問題

如何從這裡開始?如何使調製解調器工作?

tl;博士

設備用Vendor=0af0,標識ProdID=7301。創建一個名為0af0:7301in的文件/etc/usb_modeswitch.d/(或編輯該文件,如果它存在)。它的內容應該是:

# Option HSO device
TargetClass=0xff
MessageContent="55534243785634120100000080000601000000000000000000000000000000"
NoDriverLoading=1

調查

(注意我是提問者,我正在回答我自己的問題。除了 tl;dr 答案實際上是故事的延續。)

這種解釋似乎是正確的:usb_modeswitch做的比它應該做的少。

為了了解該工具試圖對我的設備做什麼(當 中沒有0af0:7301文件時/etc/usb_modeswitch.d/),我諮詢了apt-file show usb-modeswitch-data. 其中一條看起來很有希望:

/usr/share/usb_modeswitch/configPack.tar.gz

是的,這個文件包含許多名為 like的文件vendorID:productID,其中包括0af0:7301

# Option HSO device
TargetClass=0xff
OptionMode=1

它指定了我已經手動嘗試過的選項(在問題中):

usb_modeswitch -v 0x0af0 -p 0x7301 --option-mode -C 0xff

因為硬體過去可以正常工作,我懷疑當時的文件已經不同了。我決定找到(或一個)舊文件。

我的主要條目/etc/apt/sources.list是:

deb http://pl.archive.ubuntu.com/ubuntu/ bionic main restricted

pl因為我是波蘭人)。我的意圖是usb-modeswitch-datapl.archive.ubuntu.com. 經過一番探勘,我找到了這個地址:

ftp://pl.archive.ubuntu.com/ubuntu/pool/main/u/usb-modeswitch-data/

並下載了這個文件:

ftp://pl.archive.ubuntu.com/ubuntu/pool/main/u/usb-modeswitch-data/usb-modeswitch-data_20151101.orig.tar.bz2

解壓後,我發現一個文件0af0:73010af0:7301./usr/share/usb_modeswitch/configPack.tar.gz


解決方案

找到的文件內容為:

# Option HSO device
TargetClass=0xff
MessageContent="55534243785634120100000080000601000000000000000000000000000000"
NoDriverLoading=1

我將文件複製到/etc/usb_modeswitch.d/,刪除並重新插入設備。然後usb-devices給了我這個輸出:

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#= 10 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs=  1
P:  Vendor=0af0 ProdID=7301 Rev=00.00
S:  Manufacturer=Option N.V.
S:  Product=Globetrotter HSUPA Modem
C:  #Ifs=11 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso
I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso
I:  If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso
I:  If#= 7 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso
I:  If#= 8 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=option
I:  If#= 9 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso

該設備被辨識為調製解調器,我的舊網路設置試圖啟動。但調製解調器無法連接。在我重新啟動作業系統後,情況變為:

T:  Bus=01 Lev=02 Prnt=02 Port=01 Cnt=02 Dev#=  4 Spd=480 MxCh= 0
D:  Ver= 2.00 Cls=ff(vend.) Sub=ff Prot=ff MxPS=64 #Cfgs=  1
P:  Vendor=0af0 ProdID=7301 Rev=00.00
S:  Manufacturer=Option N.V.
S:  Product=Globetrotter HSUPA Modem
C:  #Ifs=11 Cfg#= 1 Atr=c0 MxPwr=100mA
I:  If#= 0 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso
I:  If#= 1 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=(none)
I:  If#= 2 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 3 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso
I:  If#= 4 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 5 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 6 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso
I:  If#= 7 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso
I:  If#= 8 Alt= 0 #EPs= 2 Cls=ff(vend.) Sub=ff Prot=ff Driver=(none)
I:  If#= 9 Alt= 0 #EPs= 3 Cls=ff(vend.) Sub=ff Prot=ff Driver=hso

然後它開始工作了*。*驅動程序是option在重新啟動之前出現的問題嗎?我不知道。無論如何,該設備現在可以使用hso並且對我來說已經足夠好了。


最後的筆記

  • 似乎--option-mode據稱適用於所有 Option 設備並沒有真正切換我設備的模式。明確指定正確的資訊似乎至關重要。
  • 這個答案是使用相關設備發布的。

引用自:https://unix.stackexchange.com/questions/622183