특히 sysfs의 파일을 보고 있습니다./sys/bus/usb/devices
파일에는 "00"과 같이 두 문자로 표시되는 작은 숫자가 포함되어 있습니다.
내 모든 예제에는 "09" 이하의 숫자가 포함되어 있습니다.
나는 이것을 해석하기 위한 스크립트를 작성 중인데 다음 값으로 "0A" 또는 "10"을 예상해야 하는지 명확하지 않습니다(즉, 10진수인가요, 16진수인가요?)
나는 이것이 커널 kobject의 뷰라는 것을 보았지만 직렬화 소스를 찾을 수 없습니다.
이 숫자(예: bInterfaceNumber)가 10진수인지 16진수인지, 아니면 사례별로 다른지 알려주실 수 있나요? 차이가 있다면 소스 코드의 어디에서 sysfs의 특정 파일을 확인할 수 있습니까?
관련이 있다면 내 컴퓨터는 대부분 20.04와 22.04가 혼합된 Ubuntu입니다. 비교 대상으로 스크립트를 살펴보았는데 usb-devices
버전 간에 변경 사항이 있어서 스크립트가 하려는 작업에 대한 자신감이 떨어졌습니다.
답변1
이는 kobject 필드와 해당 직렬화 기능에 따라 다릅니다. 찾기가 항상 쉽지는 않지만 USB의 경우 편리합니다.그룹화. bInterfaceNumber
예그렇게 선언했다:
usb_intf_attr(bInterfaceNumber, "%02x\n");
두 번째 매개변수는 형식 문자열이므로 16진수 값을 표시합니다. 아래 줄은 bAlternateSetting
표시된 십진수 값을 보여줍니다.
모든 sysfs 항목은 다음과 같아야 합니다.녹음된, 다음 bInterfaceNumber
과 같이 설명 됩니다.
What: /sys/bus/usb/devices/usbX/bInterfaceNumber
Description:
Interface number, in hexadecimal.