usb_modeswitch
パッケージには通常、モデムモードを自動的に切り替えるための定義済みのudevルールが付属しています。 ppp
、それとは独立して、それ自体とは別に、悪魔のためのサービスを含んでいます。 これらの構成は互いに独立しています。
それらを同時に使用すると、 競合が発生する可能性がありますusb_modeswitch -J
モデムを切り替える前にpppd
が起動します。
RestartSec=5s
でRestart=on-failure
することができますが、それはスポーツですか?
「ただ救われたくて...」収束
まず、usb_modeswitch.conf- DisableSwitching=yes
編集しDisableSwitching=yes
。 このファイルは「デフォルト」ルールで暗黙的に使用されます-干渉はしませんが、有用ではありません。
今systemctl disable ppp@….service
。 multi-user.target
からユニットをmulti-user.target
する必要はなくなりました。 [Install]
もはや有用で[Install]
ません。
別の方法で-それを再び動作させるために残っています。
「目を覚まして再び殺人を起こそう。」PsyOpus
新しいudevルールは、以前に提起された問題を解決することを目的としています。最初にusb_modeswitch
タスクを伝え、それからsystemdに連絡する必要があります。
USBサブシステムでは、デバイスはidVendor
とidProduct
2つの属性識別子で定義できます。 それらはlsusb thで見ることができます-それらはそれぞれ「ID」の後にあります。
上記は、新しい構成の最初の行にほぼ正確に対応しています。
$ su - $ cd /etc/udev/rules.d $ cat > 20-provider-modem.rules <<< …
SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="…", ATTR{idProduct}=="…", RUN+="/usr/sbin/usb_modeswitch -v $attr{idVendor} -p $attr{idProduct} -J"
-番号体系( 0x
)を指定する必要はありません。
次に、別のサブシステムの検討にttyUSB0
ますttyUSB0
私たちにとって重要です。 繰り返しますが、私たちはお気に入りのテキストエディタを使用します。
$ cat >> 20-provider-modem.rules <<< …
SUBSYSTEM=="tty", KERNEL=="ttyUSB0", TAG+="systemd", ENV{SYSTEMD_WANTS}="ppp@provider.service"
-ここで適切なタイミングでudevがsystemdにppp@
を起動する可能性を伝えます。
最後に:
$ udevadm control --reload
「苦痛をやめるだけで、それは私の心、あなたがかける圧力に重きを置いている...」TesseracT
systemdとudevの関係に関する intelfxの推論に興味がありました。
udevとsystemdは、互いに補完する非常に強力なフレームワークです。
systemdは依存関係モデルに基づいています。Yが使用可能な場合はXを実行します。
udev-イベントモデル:Yが使用可能になったら、Xを実行します。
ユーザー空間とカーネルの接続は、非常に表現力豊かに強調されており、これは感心せざるを得ません。 実証済みの例-少し前途有望または平凡かもしれません-は、このツールの可能性を完全に明らかにしています。