저는 udev를 통한 동적 장치 이름 매핑을 작업 중입니다.
표적:
다중 사용자 시스템에서 각 사용자는 USB 직렬 변환기 또는 PCIe 카드(FPGA)와 같은 장치를 할당하고 해제할 수 있습니다. 사용자가 장치를 할당하는 경우 /dev/<user>/<device>
할당하는 사용자의 동적 이름과 권한을 사용하여 노드를 생성해야 합니다. 사용자가 장치를 해제하면 devfs 노드를 삭제/이름 변경하고 권한을 취소해야 합니다.
현재 상황:
나는 /dev/ttyUSB1
USB-직렬 변환기를 실험하고 있습니다. 개발 노드가 생성될 때 udev에서 호출되는 Python 스크립트를 작성했습니다. USB 장치의 VendorID, ProductID 및 SerialNo를 가져와 devfs 노드 이름을 반환합니다. 예: paebbels/ttyUSB
. 이는 심볼릭 링크에 대해 작동하므로 원래 devfs 노드가 ttyUSB1
여전히 존재합니다.
내 스크립트를 사용하여 원래 devfs 이름을 어떻게 변경할 수 있습니까?
udev 규칙에서 NAME 명령을 사용해 보았지만 작동하지 않습니다. 문서에 따르면 NAME은 한 번만 사용할 수 있습니다. 내 규칙 앞에 NAME을 사용하는 udev의 기본 규칙이 있습니까?
/etc/udev/...
그러한 규칙은 포함되어 있지 않습니다.
이후 단계에서 내 스크립트는 devfs 노드의 사용자 이름, 그룹 및 권한도 반환합니다.
사소한 질문:
/dev/<user>/<device>
또는 에서 계획한 대로 장치 파일을 만들어야 합니까 ~/fpga1/<device>
?
답변1
1. 질문:
잘 모르겠지만 한번 보세요/lib/udev/rules.d/60-persistent-serial.rules
2. 질문:
udev 자체가 장치 이름을 할당하는 경우 에는 모두 에 입력합니다 /dev
./run/$UID/devices