![모니터 제조업체, 제품 ID 및 일련번호를 알아보세요.](https://linux55.com/image/149972/%EB%AA%A8%EB%8B%88%ED%84%B0%20%EC%A0%9C%EC%A1%B0%EC%97%85%EC%B2%B4%2C%20%EC%A0%9C%ED%92%88%20ID%20%EB%B0%8F%20%EC%9D%BC%EB%A0%A8%EB%B2%88%ED%98%B8%EB%A5%BC%20%EC%95%8C%EC%95%84%EB%B3%B4%EC%84%B8%EC%9A%94..png)
목표는 Linux 플랫폼에서 모니터의 제조업체, 제품 ID 및 일련 번호를 얻는 것입니다. 궁극적으로 C++ 프로그램에서 이 정보를 얻어야 합니다. 그러나 나는 또한 명령줄 방법도 받아들입니다.
답변1
이 정보는 /sys/class/drm
하위 시스템을 통해 제공됩니다. 이와 같은 도구 xrandr
가 널리 사용됩니다. 이 하위 시스템의 각 디스플레이에는 이제 파일이 포함된 디렉터리가 있습니다 edid
.식별 데이터의 확장된 표시.
데비안 기반 시스템에서도 두 가지 패키지를 사용할 수 있습니다 edid-decode
. read-edid
둘 다 잘 작동하는 것 같지만, 오래되고 오래된 모델에서는 오류를 반환 read-edid
하면서도 충분히 잘 작동하는 것 같습니다 .edid-decode
EDID block does NOT conform to EDID 1.3!
Detailed block string not properly terminated
EDID block does not conform at all!
Bad year of manufacture
read-edid
그래서 패키지를 설치하는 것이 좋습니다 . 설치가 완료되면 parse-edid
다음 명령을 사용하십시오.
$ parse-edid < /sys/class/drm/card0-HDMI-A-1/edid
Checksum Correct
Section "Monitor"
Identifier "X20G-NagaIII"
ModelName "X20G-NagaIII"
VendorName "SPT"
# Monitor Manufactured week 42 of 2005
# EDID version 1.3
# Digital Display
DisplaySize 410 310
Gamma 2.20
Option "DPMS" "true"
Horizsync 30-92
VertRefresh 40-86
# Maximum pixel clock is 170MHz
또 다른 명령은 get-edid
i2c 버스에 연결하여 어떤 디스플레이가 연결되어 있고 어떤 데이터를 사용할 수 있는지 자동으로 파악하는 것 같습니다. 물론 이것은 C++ 접근 방식은 아니지만 이 두 도구는 아마도 C로 작성되었을 것입니다. 소스 코드를 살펴보고 어떤 라이브러리를 사용하는지 기록해 두세요.
답변2
거의 동일한(edid 출력 구문 분석에는 차이 없음) 두 개의 Dell U3014 모니터가 있지만 5번째 및 6번째 디스플레이 포트에 대한 edid 파일을 확인할 때 다른 일련 번호를 볼 수 있습니다.
# Compare edid output
diff -a /sys/class/drm/card0-DP-{5,6}/edid
1c1
PT�K���qO�@�����h��@.`0 6��!�P1V6N45V001L
---
PT�K���qO�@�����h��@.`0 6��!�P1V6N45V002L
4c4
< ��P� # �:�q8-@X,E��!�q X,%��!�rQ� n(U��!�
---
> ��P� # �:�q8-@X,E��!�q X,%��!�rQ� n(U��!�
# Better view of just serial numbers:
grep -ao 'P1V6N45V00.L' /sys/class/drm/card0-DP-*/edid
/sys/class/drm/card0-DP-5/edid:P1V6N45V001L
/sys/class/drm/card0-DP-6/edid:P1V6N45V002L
또한 주목할 가치가 있는 점은 Card0-DP가 1-8로 표시되는 반면 arandr에서는 0-7로 표시된다는 점입니다. 따라서 edid를 arandr에 일치시키려면 1을 뺍니다(DP-5=DP-4 및 DP-6=DP-5).