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입니다.

관련 정보