장치 항목 의 udev
"속성"과 "속성"의 기술적 차이점은 무엇입니까 ? 일반적으로 어떻게 생성(생성?)되고 사용됩니까? 어느 것이 더 나은 진실의 원천입니까?
핫플러그된 직렬 포트 어댑터를 감지하고 사용자가 자신의 장치를 식별할 수 있도록 "관련" 장치 정보(그것이 무엇이든)를 표시하도록 되어 있는 Raspberrypi Python 응용 프로그램의 맥락에서 묻습니다. 특히, 나는pyudev
도서관인터페이스를 사용하여 내 계획은 하위 시스템 장치에서 제공하는 장치를 libudev
하위 시스템에서 검색하는 것입니다 . 어떤 값을, 어디에 제공하는지 알아보기 위해 제가 뒹굴고 있던 일부 테스트 장치의 속성과 속성을 살펴봤습니다. 지금까지의 공통점은 어댑터와 연결된 ->( ->) -> 장치 조상 체인 (USB 허브 아래)이 있고, 공급업체, 모델, 일련번호와 같은 값이 반복된다는 것입니다. 다양한 속성에서. 4개의 장치(때로는 3개,tty
usb-serial
subsystem: tty
subsystem: usb-serial
subsystem: usb, device_type: usb_interface
subsystem: usb, device_type: usb_device
ACM* tty
장비아니요 usb-serial
). 그럼 어느 곳을 방문해야 할까요? 이러한 장치와 함께 제공되는 속성/기능에 대한 (서면된) 규칙이 있습니까? 어디서 찾을 수 있습니까?
읽었습니다(또는 적어도 보았습니다).다양한 종류 문서 페이지, 그러나 그들은 주로 자신만의 udev 규칙을 작성하는 방법을 설명하는데, 이는 제가 추구하는 것이 아닙니다. 매뉴얼에서 배웠습니다 udev
([1],[2])은 ATTR
장치의 sysfs 속성에 저장된 값과 ENV
"장치 속성"에 사용되지만 둘 다 일치하여 쓸 수 있습니다. 상위 장치에서 하위 장치로 값을 상속하는 기본 규칙이 있다고 생각하는데, 속성과 특성 모두에서 이런 일이 발생합니까?
이 답변설명하다"ENV
둘 다 동일한 정보를 포함하는 경우 ATTR
차이 없이 둘 중 하나를 사용할 수 있습니다.”, 그것은 나를 더 현명하게 만들지 않습니다.
답변1
속성은 udev 규칙에 의해 설정되며 다른 규칙에 의해 수정될 수 있습니다.
udev는 sysfs 노드에서 속성을 읽습니다. udev 규칙의 속성에 값을 할당하면 해당 값이 sysfs 노드에 기록되고 장치 동작에 영향을 줍니다.
속성을 단순한 변수로 생각할 수 있습니다. 그러나 속성에는 getter와 setter가 있으므로 as와 같은 속성을 읽고 $(cat /sys/devpath/name)
속성에 값을 할당하는 것을 고려할 수 있습니다.echo value > /sys/devpath/name