新しいVID&PIDをusb_serialモジュールに自動的にロードする方法

新しいVID&PIDをusb_serialモジュールに自動的にロードする方法

実行する必要がある4Gモジュールがあります。

echo '03f0 581d' > /sys/bus/usb-serial/drivers/generic/new_id

起動/再開するたびにモデムが表示されるようにします。自動的に行うにはどうすればよいですか?

  • USBシリアルポートソースにVID&PIDを追加して再コンパイル
  • 起動/再開時に実行されるスクリプトを生成し、動的に追加します。
  • 一種のudevルールですか?

最良の方法は何ですか?私はこのudevアプローチが最も合理的だと思います。一時停止/再開中でもこれが機能すると思いますか?

モデムはHP lt4112 LTE / HSPA + Gobi 4Gモデム(Huawei ME906E)です。

ボーナスの質問:一時停止/再開サイクル後にコマンドを再実行する必要があるのはなぜですか?ラップトップがRAMに停止すると、カーネルモジュールはアンロードまたはリセットされますか?

ベストアンサー1

デバイスのベンダーと製品IDが上記のように構成されていると仮定すると03f0581dウデブルールは自動的にデバイスを初期化してバインドします。くみ、次のようになります。

file /etc/udev/rules.d/98-modem-rules.rules

sudoよく使用するテキストエディタ(適切な権限が必要)を使用して、次の内容を含むファイルを作成します。

ACTION!="add|change", GOTO="mbim_to_qmi_rules_end"
SUBSYSTEM!="usb|drivers", GOTO="mbim_to_qmi_rules_end"

# load qmi_wwan module
SUBSYSTEM=="usb", \
ATTR{idVendor}=="03f0", ATTR{idProduct}=="581d", \
RUN+="/sbin/modprobe -b qmi_wwan"

# Initialize the LTE lt112 module to operational status:
SUBSYSTEM=="usb", \
ATTR{idVendor}=="03f0", ATTR{idProduct}=="581d", \
ATTR{bConfigurationValue}="3"

# add the new id in the qmi_wwan driver
SUBSYSTEM=="drivers", \
ENV{DEVPATH}=="/bus/usb/drivers/qmi_wwan", \
ATTR{new_id}="03f0 581d"

# load qcserial module
SUBSYSTEM=="usb", \
ATTR{idVendor}=="03f0", ATTR{idProduct}=="581d", \
RUN+="/sbin/modprobe -b qcserial"

# add the new id in the qcserial driver
SUBSYSTEM=="drivers", \
ENV{DEVPATH}=="/bus/usb-serial/drivers/qcserial", \
ATTR{new_id}="03f0 581d"
LABEL="mbim_to_qmi_rules_end"

コンピュータに適切なパッケージもインストールする必要があります。

Ubuntuを想定すると(配布情報が提供されていないため)、次を実行します。

sudo apt install libqmi libqmi-utils

完了したら、新しいudevルールを有効にします。

sudo udevadm control --reload-rules
sudo udevadm trigger

また、見つけることができますモデムマネージャ、ネットワーク信号強度などのモデム統計を表示するためのGUIフロントエンド。

以下からインストールできます。

sudo apt install modem-manager-gui

SIMカードを挿入した後、コールドブートが必要です。

修正する:

別の方法はパッケージをインストールすることですusb-modeswitch-dataUSBモードスイッチ依存関係として)。

このパッケージには、usb-modeswitchがデバイスを適切に初期化し、複数のデバイスに複数のエントリを提供できるようにするudevルールが含まれています。同じ内容については、変更ログを参照してください。ここ

パッケージのudevルールはというファイルに保存されます40-usb_modeswitch.rules。特定のハードウェアの場合、これは32〜33行にあります。

# HP hs4112
ATTR{idVendor}=="03f0", ATTR{idProduct}=="581d", RUN+="usb_modeswitch '/%k'"

インストールusb-modeswitch後は、usb-modeswitch-dataSIMカードが認識される前にudevルールを再ロードしても再起動する必要があります。

おすすめ記事