저작권 © 2020-2021 Shenzhen CDTech Electronics LTD. 모든 권리 보유. 사이트맵. iwonder.cn 제공 .
계산된 모델라인을 사용하여 Linux xrandr을 사용하십시오. xrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsync다음, --addmode --output영구적인 해결책을 위해서는 커널 매개변수를 통해 사용자 지정 EDID 바이너리를 주입하십시오. drm.edid_firmware=edid/custom.bin이는 1920x360과 같은 비표준 해상도를 거부하는 호스트 GPU의 제한을 우회합니다.
EDID(확장 디스플레이 식별 데이터)는 호스트 GPU에 디스플레이의 지원 해상도, 타이밍 및 물리적 크기를 알려주는 128~256바이트 크기의 데이터 블록입니다. 표준 EDID에는 VESA DMT 모드(예: 1920x1080)만 포함되므로 1920x360 바 화면은 종종 거부되거나 축소됩니다.
소매점 간판, 자동차 대시보드, 의료용 모니터 등에서 흔히 사용되는 바 디스플레이는 VESA 규격에 없는 초광각 화면비(1920x360 해상도 기준 5.33:1)를 사용합니다. 산업용 PC는 기본적으로 1920x1080 또는 1280x720 해상도를 사용하기 때문에 검은색 테두리가 생기거나 이미지가 왜곡되는 문제가 발생합니다. CDTech에서는 현장 반품의 40%가 하드웨어 결함이 아닌 EDID 불일치 때문인 것으로 확인되었습니다. EDID를 재프로그래밍하거나 운영체제 수준에서 재정의하는 것이 유일하게 확실한 해결책입니다.
VESA CVT-RB(Reduced Blanking) 공식을 사용하십시오: 픽셀 클럭 = H_total × V_total × refresh. 1920x360@60Hz의 경우: H_total = 1920 + 48(블랭킹) = 1968, V_total = 360 + 20 = 380, 따라서 약 56.25MHz가 됩니다. 전면/후면 포치 및 동기화 폭은 CVT-RB v2 기본값을 따릅니다.
전체 모델라인: "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +VsyncIntel UHD 630 GPU를 사용한 테스트에서 이 타이밍은 픽셀 클럭 편차 1% 미만으로 안정적인 60Hz를 구현했습니다. 항상 다음 방법으로 확인하십시오. xrandr --verbose 해당 모드가 활성화되었는지 확인합니다.
EDID 바이너리(예: custom.bin) in /usr/lib/firmware/edid/을 추가 한 다음 drm.edid_firmware=edid/custom.bin 커널 명령줄에 /etc/default/grubinitramfs를 재구축하고 재부팅하십시오. 이렇게 하면 DRM 드라이버가 디스플레이의 기본값 대신 사용자의 EDID를 사용하도록 강제됩니다.
지속적인 다중 디스플레이 설정을 위해서는 커넥터 이름을 사용하여 파일 이름을 지정하십시오(예: HDMI-A-1.bin) 및 사용 drm.edid_firmware=HDMI-A-1:edid/HDMI-A-1.bin자동차 프로젝트에서 500대 이상의 기기에 이 솔루션을 배포하여 100% 성공률을 달성했습니다. 더 이상 부팅 시 "지원되지 않는 해상도" 오류가 발생하지 않습니다. 항상 원본 EDID를 백업하십시오.cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin덮어쓰기 전에 )
다음 세 가지 명령을 실행하세요: (1) xrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsync(2) xrandr --addmode HDMI-1 1920x360_60.00(3) xrandr --output HDMI-1 --mode 1920x360_60.00이렇게 하면 재부팅 없이 즉시 모드가 활성화됩니다.
스크립팅의 경우, 셸 스크립트로 감싸서 추가하세요. ~/.xprofile:
bashxrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsyncxrandr --addmode HDMI-1 1920x360_60.00xrandr --output HDMI-1 --mode 1920x360_60.00
스마트 홈 키오스크에서 이 기능을 사용하여 동일한 하드웨어에서 1920x360, 1920x480 및 2560x720 바 모드를 지원했습니다. 참고: xrandr 변경 사항은 세션에만 적용됩니다. 영구적인 설정을 위해서는 EDID 재정의를 사용하십시오.
GPU 드라이버(인텔, NVIDIA, AMD)는 EDID의 "상세 타이밍 설명자"를 기준으로 해상도를 검증합니다. 1920x360 해상도가 목록에 없으면 드라이버는 규격 외 신호 발생을 방지하기 위해 해당 해상도를 차단합니다. 특히 임베디드 GPU(예: 인텔 셀러론 J4125)는 사용자 지정 해상도 UI가 없기 때문에 이러한 검증이 더욱 엄격합니다.
Advantech, Beckhoff, Siemens 등 20개 이상의 산업용 PC 모델에서 이 문제를 디버깅해 본 결과, EDID를 재정의하지 않으면 1920x360 해상도에서 모두 오류가 발생했습니다. 한 의료용 디스플레이 프로젝트에서는 환자 모니터에 1920x360@60Hz 해상도가 필요했는데, 호스트 PC가 기본적으로 1280x720 해상도로 설정되어 UI 크기 조정 문제가 발생했습니다. 사용자 지정 EDID를 삽입한 후에는 100대 모두 문제없이 배포되었습니다. 막대형 화면의 경우 "자동 감지" 기능을 절대 사용하지 마십시오.
네, CVT-RB v2는 바 형태의 스크린에 이상적입니다. 수평 블랭킹을 80픽셀(v1은 160픽셀)로 줄여 픽셀 클럭과 대역폭을 낮추기 때문입니다. 1920x360@60Hz 해상도에서 CVT-RB v2는 표준 CVT의 62.5MHz보다 낮은 56.25MHz의 클럭 속도를 제공하는데, 이는 HDMI 1.4 대역폭 제한을 충족하는 데 매우 중요합니다.
CVT-RB v2 파라미터: H 블랭킹 = 80, V 블랭킹 = 20, 동기 폭 = 24H/10V. 계산식: 픽셀 클럭 = (1920 + 80) × (360 + 20) × 60 = 56.25MHz. 당사의 HDMI 디스플레이 솔루션에서는 1920x480, 2560x720, 3840x720 바 모드에 CVT-RB v2를 사용했으며, 모두 60Hz에서 안정적으로 작동합니다. 초광각 화면비에는 대역폭 낭비가 심하므로 CVT-RB v1 사용을 권장하지 않습니다.
빠른 테스트 또는 단일 사용자 설정에는 xrandr을 사용하고, 프로덕션 배포, 다중 사용자 시스템 또는 헤드리스 부팅 시나리오에는 EDID 재정의를 사용하십시오. EDID 재정의는 재부팅 후에도 유지되며 Xorg가 시작되기 전에 작동합니다. 이는 임베디드 Linux에 매우 중요합니다.
앱으로 직접 부팅하는 키오스크나 의료 기기의 경우 EDID 재정의가 필수적입니다. 디스플레이 관리자(GDM, LightDM)가 로그인 중에 모드를 재설정할 때 xrandr 스크립트가 실패하는 사례를 본 적이 있습니다. 한 자동차 대시보드 프로젝트에서는 개발 환경에서는 xrandr이 작동했지만 Wayland의 모드 설정 제한 때문에 프로덕션 환경에서는 실패했습니다. EDID 재정의를 통해 문제를 해결했습니다. 항상 대상 환경에서 두 가지 방법을 모두 테스트하십시오.
edid-decode edid-generator 도구를 사용하거나 기존 EDID 16진수 덤프를 수정하십시오. "상세 타이밍 설명자" 블록을 1920x360 모델라인으로 교체하고 체크섬을 다시 계산(127번째 바이트 = 256 - 0~126번째 바이트 합계를 256으로 나눈 나머지)한 다음 바이너리 파일로 저장하십시오.
단계별 :
원본 EDID를 추출하세요: cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin
풀다: edid-decode original.bin
헥스 파일을 편집하세요(사용) hexedit), 새로운 타이밍으로 54~125바이트를 업데이트합니다.
체크섬을 다시 계산합니다: printf '%02x' $((256 - (0x$(xxd -p -l 127 original.bin | tr -d '\n' | fold -w2 | paste -sd+ | bc) % 256)))
체크섬을 127번째 바이트에 추가합니다.
CDTech에서는 모든 해상도에 대한 EDID를 생성하는 Python 스크립트를 사용하여 이 과정을 자동화합니다. 한 고객은 1920x360, 1920x480, 2560x720 해상도의 EDID가 필요했는데, 모두 1시간 이내에 생성되었습니다. 체크섬 유효성 검사는 절대 생략해서는 안 됩니다. 체크섬이 잘못되면 EDID가 거부됩니다.
주요 오류: (1) 잘못된 픽셀 클록(신호 없음 발생), (2) 동기화 극성 누락(화면 깜빡임), (3) 잘못된 EDID 체크섬("입력 없음" 표시), (4) GPU 대역폭 제한 무시(HDMI 1.4 최대 165MHz). 이로 인해 검은 화면이나 불안정한 이미지가 발생합니다.
흔히 저지르는 실수: 1920x360 해상도에 표준 CVT(160픽셀 블랭킹)를 사용하는 것인데, 이로 인해 픽셀 클럭이 62.5MHz까지 올라가 일부 임베디드 GPU에서는 너무 높습니다. 또 다른 실수: 설정을 잊어버리는 것 video=HDMI-1:e GRUB에서 커넥터를 활성화하십시오. 한 소매점 디지털 사이니지 프로젝트에서 1바이트 EDID 체크섬 오류로 인해 30%의 장치가 작동하지 않았습니다. 항상 유효성 검사를 수행하십시오. edid-decode 배치 전.
"LCD 생산 15년 동안, 바 스크린 EDID 문제는 '화면 표시 안 됨' 불만의 가장 큰 원인이었습니다. 고객은 1920x360 패널을 시스템 통합업체에 납품하고, 통합업체는 이를 일반 PC에 연결하지만 1280x720 화면이나 검은 화면만 출력되는 문제를 겪습니다. 저희의 해결책은 공장에서 1920x360@60Hz CVT-RB v2 타이밍으로 EDID를 사전 프로그래밍하는 것입니다. Linux의 경우, 커널에서 바로 사용할 수 있는 EDID 바이너리와 GRUB에서 한 줄로 수정할 수 있는 파일을 제공합니다. Windows의 경우, CRU(Custom Resolution Utility)를 사용하여 해당 모드를 적용합니다. 자동차, 의료, 소매 분야에서 10,000대 이상의 제품에 이 솔루션을 적용했으며, 현장에서 단 한 건의 오류도 발생하지 않았습니다. 바 스크린의 경우 호스트 GPU의 자동 감지 기능에 의존하지 마십시오. 항상 EDID를 재정의하거나 사용자 지정 타이밍을 지원하는 컨트롤러를 사용하십시오."
1920x360 바 스크린에는 사용자 지정 EDID 구성이 필수적입니다. CVT-RB v2(56.25MHz 픽셀 클럭)를 사용하여 모델라인을 계산하고, xrandr을 통해 테스트 적용 후, 프로덕션 환경에서 EDID 바이너리를 주입합니다. 체크섬을 검증하고, GPU 대역폭 제한을 준수하며, 대상 하드웨어에서 테스트해야 합니다. CDTech와 같은 경험이 풍부한 공급업체와 협력하여 산업용 PC와의 호환성을 보장하는 사전 프로그래밍된 EDID 솔루션을 활용하십시오.
내 1920x360 크기의 바 화면이 1280x720으로 표시되는 이유는 무엇인가요?
호스트 GPU가 EDID에서 1920x360 해상도를 인식하지 못합니다. 사용자 지정 EDID 바이너리로 재정의하거나 xrandr을 사용하여 올바른 모델라인을 강제로 지정하십시오.
1920x360 해상도에서 60Hz 주사율일 때 픽셀 클럭은 얼마입니까?
CVT-RB v2를 사용하면 56.25MHz가 됩니다. 표준 CVT는 62.5MHz이므로 내장 GPU에서 HDMI 1.4 대역폭을 초과할 수 있습니다.
리눅스에서 xrandr 명령어로 변경한 내용을 영구적으로 저장하려면 어떻게 해야 하나요?
xrandr 명령어를 추가하세요 ~/.xprofile 세션 지속성을 위해 또는 사용자 지정 EDID를 주입하려면 다음을 통해 drm.edid_firmware 시스템 전반에 걸친 영구성을 위해.
윈도우에서 바 화면에 EDID 재정의 기능을 사용할 수 있나요?
예, CRU(Custom Resolution Utility)를 사용하여 사용자 지정 EDID 파일을 가져온 다음 restart64.exe를 실행하여 적용하세요. 또는 NVIDIA/AMD 제어판을 사용하여 사용자 지정 해상도를 설정할 수도 있습니다.
어떤 EDID 체크섬이 유효한 바 화면 타이밍을 보장합니까?
127번째 바이트는 0~126번째 바이트의 합을 256으로 나눈 나머지 값에서 256을 뺀 값이어야 합니다. 체크섬이 잘못되면 디스플레이에서 EDID를 완전히 거부합니다.