시작 시 udev 규칙 실행

시작 시 udev 규칙 실행

National Instruments USB<->GPIB 브리지가 있습니다. USB 보드이므로 사용하려면 특별한 절차가 필요합니다. 두 개의 커널 모듈을 제공하는 linux_gpib 패키지를 설치했습니다: gpib_commonni_usb_gpib. 또한 gpib_configGPIB 버스의 계측기와 통신하려면 먼저 도구를 실행해야 합니다. 중요한 점은 보드를 USB에 연결한 후 gpib_config명령이 적용되기 전에 내부적으로 초기화하는 데 약 2초가 걸린다는 것입니다. 따라서 99-gpib.rules작업을 완벽하게 수행하는 다음 udev 규칙이 있습니다 .

SUBSYSTEM=="usb", ACTION=="add", ATTR{idVendor}=="3923", ATTR{idProduct}=="709b", RUN+="/bin/sh -c '/usr/bin/sleep 2; /usr/sbin/gpib_config --minor 0'"

KERNEL=="gpib[0-9]*", MODE="0660", GROUP="gpib"

문제는 호스트 시스템이 실행 중인 동안 마더보드를 연결하는 경우에만 작동한다는 것입니다. 동글을 삽입한 후 재부팅하면 두 커널 모듈이 모두 로드된 것을 볼 수 있지만 보드를 사용할 수 없습니다. 이는 도구 gpib_config가 실행되지 않음을 의미합니다. 수동으로 실행하면 완벽하게 작동합니다.

시스템이 실행되는 동안 재부팅한 다음 연결하는 것이 더 현실적인 경우이기 때문에 부팅 시 udev가 이 작업을 수행하도록 하는 올바른 방법이 필요합니다. 물론 보드가 연결되어 있는지, 커널 모듈이 로드되었는지 확인하고 로딩 프로세스 중에 도구를 실행하기 위해 초기화 스크립트를 작성할 수도 있지만 하드웨어를 처리해야 하기 때문에 그것이 udev의 일이라고 생각합니다. 어떤 아이디어가 있나요?

답변1

문제는 RUN 콘텐츠를 실행하는 udev에 있습니다.앞으로해당 모듈이 로드되어 gpib_config보드를 구성할 수 없습니다. 해결책은 시스템 부팅 시 udev를 시작하기 전에 모듈을 로드하는 것입니다. 나는 이것이 진정한 해결책이라고 생각하지 않습니다.

관련 정보