Prawa autorskie © 2020-2021 Shenzhen CDTech Electronics LTD. Wszelkie prawa zastrzeżone. Mapa witryny. Obsługiwane przez iwonder.cn
Użyj Linux xrandr z obliczoną linią modelu: xrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsync, następnie --addmode oraz --outputAby uzyskać trwałe poprawki, wstrzyknij niestandardowy plik binarny EDID za pomocą parametru jądra drm.edid_firmware=edid/custom.bin. Dzięki temu omijane są ograniczenia procesora graficznego hosta, które nie obsługują niestandardowych rozdzielczości, takich jak 1920x360.
strojenie EDID ekranu słupkowego i rozpoznawanie rozdzielczości
EDID (Extended Display Identification Data) to blok danych o długości 128–256 bajtów, który informuje procesor graficzny hosta o obsługiwanych rozdzielczościach, taktowaniu i rozmiarze fizycznym wyświetlacza. Standardowe EDID obejmują tylko tryby VESA DMT (np. 1920x1080), dlatego ekrany słupkowe o rozdzielczości 1920x360 są często odrzucane lub skalowane w dół.
Wyświetlacze słupkowe – powszechne w oznakowaniu sklepów, deskach rozdzielczych samochodów i monitorach medycznych – wykorzystują ultraszerokie proporcje obrazu (5.33:1 dla rozdzielczości 1920x360), których nie ma w standardach VESA. Komputery przemysłowe domyślnie mają rozdzielczość 1920x1080 lub 1280x720, co powoduje czarne obramowania lub zniekształcenia obrazu. W CDTech zaobserwowaliśmy, że 40% zwrotów w terenie wynikało z niezgodności EDID, a nie z usterek sprzętowych. Jedynym skutecznym rozwiązaniem jest przeprogramowanie EDID lub nadpisanie go na poziomie systemu operacyjnego.
Użyj wzoru VESA CVT-RB (Reduced Blanking): Zegar pikseli = H_total × V_total × odświeżanie. Dla rozdzielczości 1920 x 360 przy 60 Hz: H_total = 1920 + 48 (blanking) = 1968, V_total = 360 + 20 = 380, co daje ~56.25 MHz. Szerokość pasma przedniego/tylnego i synchronizacji jest zgodna z domyślnymi wartościami CVT-RB v2.
Pełny model: "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +VsyncW naszych testach z procesorami graficznymi Intel UHD 630, takie taktowanie zapewnia stabilne 60 Hz przy odchyleniu zegara pikseli <1%. Zawsze weryfikuj xrandr --verbose aby potwierdzić, że tryb jest aktywny.
Umieść plik binarny EDID (np. custom.bin) w /usr/lib/firmware/edid/, następnie dodaj drm.edid_firmware=edid/custom.bin do wiersza poleceń jądra w /etc/default/grub. Przebuduj initramfs i uruchom ponownie. Wymusi to na sterowniku DRM użycie Twojego EDID zamiast domyślnego identyfikatora wyświetlacza.
W przypadku trwałych konfiguracji wieloekranowych należy nadać plikowi nazwę według złącza (np. HDMI-A-1.bin) I użyć drm.edid_firmware=HDMI-A-1:edid/HDMI-A-1.binW projektach motoryzacyjnych wdrożyliśmy to w ponad 500 jednostkach ze 100% sukcesem — koniec z błędami „nieobsługiwanej rozdzielczości” przy rozruchu. Zawsze twórz kopię zapasową oryginalnego EDID (cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin) przed nadpisaniem.
Uruchom trzy polecenia: (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. Spowoduje to natychmiastową aktywację trybu bez konieczności ponownego uruchamiania.
W przypadku skryptów należy je umieścić w skrypcie powłoki dodanym do ~/.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
W kioskach inteligentnego domu użyliśmy tego do obsługi trybów 1920x360, 1920x480 i 2560x720 na tym samym sprzęcie. Uwaga: zmiany w xrandr dotyczą tylko sesji; użyj nadpisania EDID, aby zapewnić trwałość.
Sterowniki GPU (Intel, NVIDIA, AMD) weryfikują rozdzielczość pod kątem „Szczegółowych deskryptorów czasowych” EDID. Jeśli rozdzielczość 1920x360 nie jest wymieniona, sterownik ją blokuje, aby zapobiec sygnałom niezgodnym ze specyfikacją. Wbudowane procesory graficzne (np. Intel Celeron J4125) są szczególnie rygorystyczne i nie oferują interfejsów użytkownika umożliwiających wybór rozdzielczości.
Zdebugowaliśmy to na ponad 20 modelach komputerów przemysłowych: Advantech, Beckhoff i Siemens nie obsługują rozdzielczości 1920x360, chyba że EDID zostanie nadpisane. Jeden z projektów wyświetlaczy medycznych wymagał rozdzielczości 1920x360@60Hz dla monitora pacjenta; komputer hosta domyślnie ustawił rozdzielczość na 1280x720, co powodowało problemy ze skalowaniem interfejsu użytkownika. Po wstrzyknięciu niestandardowego EDID, wszystkie 100 jednostek zostało wdrożonych bezbłędnie. Nigdy nie polegaj na automatycznym wykrywaniu ekranów paskowych.
Tak, CVT-RB v2 idealnie sprawdza się w przypadku ekranów typu bar: redukuje poziome wygaszanie do 80 pikseli (w porównaniu ze 160 w wersji 1), obniżając częstotliwość taktowania pikseli i przepustowość. W rozdzielczości 1920x360@60Hz CVT-RB v2 zapewnia częstotliwość 56.25 MHz w porównaniu z 62.5 MHz w przypadku standardowego CVT – co jest kluczowe dla ograniczeń przepustowości HDMI 1.4.
Parametry CVT-RB v2: wygaszanie H = 80, wygaszanie V = 20, szerokości synchronizacji = 24H/10V. Wzór: Zegar pikseli = (1920 + 80) × (360 + 20) × 60 = 56.25 MHz. W naszych rozwiązaniach do wyświetlania obrazu HDMI zastosowaliśmy CVT-RB v2 dla trybów paskowych 1920x480, 2560x720 i 3840x720, wszystkie stabilne przy 60 Hz. Unikaj CVT-RB v1 w przypadku ultraszerokich proporcji obrazu – marnuje to przepustowość.
Użyj xrandr do szybkiego testowania lub konfiguracji dla pojedynczego użytkownika; użyj nadpisania EDID w przypadku wdrożeń produkcyjnych, systemów wielodostępnych lub scenariuszy rozruchu bezobsługowego. Nadpis EDID jest zachowywany po ponownym uruchomieniu i działa przed uruchomieniem Xorg — co jest kluczowe dla systemu Linux wbudowanego.
W przypadku kiosków i urządzeń medycznych, które uruchamiają się bezpośrednio z aplikacji, nadpisanie EDID jest obowiązkowe. Widzieliśmy, że skrypty xrandr kończyły się niepowodzeniem, gdy menedżery wyświetlania (GDM, LightDM) resetowały tryby podczas logowania. W jednym z projektów deski rozdzielczej w motoryzacji xrandr działał w środowisku deweloperskim, ale nie działał w środowisku produkcyjnym z powodu ustawienia trybu ograniczonego w Wayland. Nadpisanie EDID rozwiązało ten problem. Zawsze testuj obie metody w środowisku docelowym.
Zastosowanie edid-decode oraz edid-generator narzędzia lub zmodyfikuj istniejący zrzut szesnastkowy EDID. Zastąp blok „Szczegółowy deskryptor czasowy” swoją linią modelową 1920x360, przelicz sumę kontrolną (bajt 127 = 256 - suma (bajty 0–126) mod 256) i zapisz jako plik binarny.
Krok po kroku:
Wyciąg z oryginalnego EDID: cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin
Rozszyfrować: edid-decode original.bin
Edytuj plik hex (użyj hexedit), aktualizując bajty 54–125 o nowe ustawienia czasowe
Przelicz sumę kontrolną: printf '%02x' $((256 - (0x$(xxd -p -l 127 original.bin | tr -d '\n' | fold -w2 | paste -sd+ | bc) % 256)))
Dodaj sumę kontrolną do bajtu 127
W CDTech automatyzujemy to za pomocą skryptu Pythona, który generuje EDID dla dowolnej rozdzielczości. Jeden z klientów potrzebował wariantów 1920x360, 1920x480 i 2560x720 — wszystkie wygenerowane w mniej niż godzinę. Nigdy nie pomijaj walidacji sumy kontrolnej; błędna suma kontrolna powoduje odrzucenie EDID.
Najczęstsze błędy: (1) nieprawidłowy zegar pikseli (brak sygnału), (2) brak polaryzacji synchronizacji (migotanie ekranu), (3) błędna suma kontrolna EDID (na wyświetlaczu pojawia się komunikat „brak sygnału wejściowego”), (4) ignorowanie limitów przepustowości GPU (HDMI 1.4 maks. 165 MHz). Powodują one wyświetlanie czarnych ekranów lub niestabilnych obrazów.
Częstym błędem jest używanie standardowego CVT (wygaszania 160 pikseli) dla rozdzielczości 1920x360, co zwiększa częstotliwość taktowania pikseli do 62.5 MHz – zbyt wysoko dla niektórych wbudowanych procesorów graficznych. Innym błędem jest zapominanie o ustawieniu video=HDMI-1:e w GRUB, aby włączyć złącze. W jednym projekcie oznakowania detalicznego 30% urządzeń uległo awarii z powodu błędu sumy kontrolnej EDID wynoszącego 1 bajt. Zawsze waliduj za pomocą edid-decode przed wdrożeniem.
W ciągu 15 lat produkcji wyświetlaczy LCD problemy z EDID w ekranach liniowych są najczęstszą przyczyną skarg na brak obrazu. Klienci wysyłają panele 1920x360 do integratorów, którzy podłączają je do standardowych komputerów PC – tylko po to, by otrzymać ekrany o rozdzielczości 1280x720 lub z czarnym ekranem. Nasze rozwiązanie: fabrycznie zaprogramować EDID z taktowaniem CVT-RB v2 1920x360@60Hz. W przypadku systemu Linux dostarczamy binarny plik EDID gotowy do użycia w jądrze oraz jednowierszową edycję GRUB. W przypadku systemu Windows używamy narzędzia CRU (Custom Resolution Utility) do wstrzyknięcia trybu. Wdrożyliśmy to rozwiązanie w ponad 1 10,000 urządzeń w branży motoryzacyjnej, medycznej i handlowej – zero awarii w terenie. Nigdy nie polegaj na automatycznym wykrywaniu procesora graficznego hosta w przypadku ekranów liniowych; zawsze pomijaj EDID lub używaj kontrolera z obsługą niestandardowego taktowania.
Niestandardowa konfiguracja EDID jest niezbędna dla ekranów słupkowych o rozdzielczości 1920x360. Oblicz modelinę za pomocą CVT-RB v2 (taktowanie pikseli 56.25 MHz), zastosuj ją za pomocą xrandr do testów i wprowadź dane binarne EDID do produkcji. Sprawdź sumy kontrolne, przestrzegaj limitów przepustowości GPU i testuj na sprzęcie docelowym. Współpracuj z doświadczonymi dostawcami, takimi jak CDTech, aby uzyskać wstępnie zaprogramowane rozwiązania EDID, które gwarantują kompatybilność z komputerami przemysłowymi.
Dlaczego mój ekran słupkowy o rozdzielczości 1920x360 pokazuje rozdzielczość 1280x720?
Procesor graficzny hosta nie rozpoznaje rozdzielczości 1920x360 w EDID. Zastąp to niestandardowym plikiem binarnym EDID lub użyj xrandr, aby wymusić poprawną linię modelu.
Jakie jest taktowanie pikseli dla rozdzielczości 1920x360 przy częstotliwości 60 Hz?
Używając CVT-RB v2: 56.25 MHz. Standardowa częstotliwość CVT wynosi 62.5 MHz, co może przekraczać przepustowość HDMI 1.4 na wbudowanych procesorach graficznych.
Jak mogę uczynić zmiany xrandr trwałymi w systemie Linux?
Dodaj polecenia xrandr do ~/.xprofile w celu zachowania sesji lub wstrzyknięcia niestandardowego EDID za pomocą drm.edid_firmware dla trwałości całego systemu.
Czy mogę użyć funkcji obejścia EDID w systemie Windows w przypadku ekranów paskowych?
Tak, użyj CRU (Custom Resolution Utility), aby zaimportować niestandardowy plik EDID, a następnie uruchom restart64.exe, aby go zastosować. Alternatywnie, w przypadku niestandardowych rozdzielczości, użyj paneli sterowania NVIDIA/AMD.
Jaka suma kontrolna EDID gwarantuje prawidłowy czas wyświetlania paska?
Bajt 127 musi wynosić 256 pomniejszone o sumę bajtów 0–126 modulo 256. Błędna suma kontrolna powoduje, że wyświetlacz całkowicie odrzuca EDID.
Kontrolery, płyty i oprogramowanie sprzętowe
Kontynuując korzystanie z serwisu wyrażasz zgodę na naszą politykę prywatności Regulamin.