systemctl daemon-reload後、Linuxデバイスデバイスは無効(無効)になります。

systemctl daemon-reload後、Linuxデバイスデバイスは無効(無効)になります。

私はこの記事でgaletsが提案したソリューションを使用して独自のudevルールを追加しました。 サービスを開始する前に /dev/video0 を待つ方法

Linuxが起動すると、私のデバイスが検出され、ルールに従ってsys-bus-pci-drivers-mydevice.deviceセルが作成されます。私は含まれているBindsTo=sys-bus-pci-drivers-mydevice.deviceサービスを作成し、Requires=sys-bus-pci-drivers-mydevice.deviceサービスは私のハードウェアを検出し、そのドライバをロードした後にのみロードされます。完璧!

私の問題は、サービスを管理するためにsystemctlコマンドを実行するたびに、デバイスデバイスが非アクティブ(非アクティブ)状態になることです。たとえば、

systemctl daemon-reload
systemctl unmask whatever.service

これらのいずれかが実行された後に実行されると、次のようにsystemctl status sys-bus-pci-drivers-mydevice.device報告されます。

*  sys-bus-pci-drivers-mydevice.device
   Loaded: loaded
   Active: inactive (dead)

Jan 25 09:25:41 FLABADO systemd[1]: Found device /sys/bus/pci/drivers/mydevice.

この時点で、依存関係を含むサービスを再起動しようとするとRequires=失敗します。回復するにはシステムを再起動する必要がありました。

デバイスがまだ存在し、ドライバがアクティブで、ハードウェアを使用するために実行するコマンドが完全に機能していることを確認しました。

もしこのような現象を経験した方がいるのか気になります。それでは、再起動せずに回避または回復する方法はありますか?

私はYocto 2.1(Krogoth)を使ってLinuxディストリビューションを構築しています。カーネルバージョンは4.4.26-yocto-standardです。

ベストアンサー1

おすすめ記事