Telif hakkı © 2020-2021 Shenzhen CDTech Electronics LTD. Tüm hakları saklıdır. Site Haritası iwonder.cn tarafından desteklenmektedir .
Linux xrandr'ı hesaplanmış bir model çizgisiyle kullanın: xrandr --newmode "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +Vsync, Daha sonra --addmode hem de --outputKalıcı çözümler için, çekirdek parametresi aracılığıyla özel bir EDID ikili dosyası ekleyin. drm.edid_firmware=edid/custom.binBu, 1920x360 gibi standart olmayan çözünürlükleri reddeden ana işlemci (GPU) sınırlamalarını ortadan kaldırır.
Çubuk ekran EDID ayarı ve çözünürlük tanıma
EDID (Genişletilmiş Ekran Tanımlama Verileri), ana GPU'ya ekranın desteklediği çözünürlükleri, zamanlamalarını ve fiziksel boyutunu bildiren 128-256 baytlık bir veri bloğudur. Standart EDID'ler yalnızca VESA DMT modlarını (örneğin, 1920x1080) içerir, bu nedenle 1920x360 çubuk ekranlar genellikle reddedilir veya küçültülür.
Perakende tabelalarında, otomotiv gösterge panellerinde ve tıbbi monitörlerde yaygın olarak kullanılan çubuk ekranlar, VESA tablolarında bulunmayan ultra geniş en boy oranlarını (1920x360 için 5.33:1) kullanır. Endüstriyel PC'ler varsayılan olarak 1920x1080 veya 1280x720 çözünürlüğe sahiptir ve bu da siyah kenarlıklara veya bozuk görüntülere neden olur. CDTech'te, saha iadelerinin %40'ının donanım arızalarından değil, EDID uyumsuzluklarından kaynaklandığını gördük. EDID'yi yeniden programlamak veya işletim sistemi düzeyinde geçersiz kılmak tek güvenilir çözümdür.
VESA CVT-RB (Azaltılmış Boşluk) formülünü kullanın: Piksel Saati = H_toplam × V_toplam × yenileme hızı. 1920x360@60Hz için: H_toplam = 1920 + 48 (boşluk) = 1968, V_toplam = 360 + 20 = 380, bu da yaklaşık 56.25 MHz verir. Ön/arka boşluk ve senkronizasyon genişlikleri CVT-RB v2 varsayılanlarını takip eder.
Tam model çizgisi: "1920x360_60.00" 56.25 1920 1968 2000 2080 360 363 373 380 -HSync +VsyncIntel UHD 630 GPU'larla yaptığımız testlerde, bu zamanlama %1'den az piksel saat sapmasıyla kararlı 60Hz üretir. Her zaman doğrulamayı Intel UHD 630 GPU'larla yapın. xrandr --verbose Modun etkin olduğunu doğrulamak için.
EDID ikili dosyasını yerleştirin (örneğin, custom.bin) içinde /usr/lib/firmware/edid/, sonra Ekle drm.edid_firmware=edid/custom.bin çekirdek komut satırına /etc/default/grub. initramfs'yi yeniden oluşturun ve yeniden başlatın. Bu, DRM sürücüsünün ekranın varsayılanı yerine sizin EDID'inizi kullanmasını sağlar.
Kalıcı çoklu ekran kurulumları için dosyayı bağlantı elemanına göre adlandırın (örneğin, HDMI-A-1.bin) ve kullan drm.edid_firmware=HDMI-A-1:edid/HDMI-A-1.binOtomotiv projelerinde bunu 500'den fazla ünitede %100 başarıyla uyguladık; artık önyüklemede "desteklenmeyen çözünürlük" hataları yok. Orijinal EDID'nin yedeğini her zaman alın (cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin) üzerine yazmadan önce.
Üç komut çalıştırın: (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.00Bu, yeniden başlatmaya gerek kalmadan modu hemen etkinleştirir.
Betik çalıştırmak için, eklenen bir kabuk betiğine sarın. ~/.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
Akıllı ev kiosklarında, aynı donanım üzerinde 1920x360, 1920x480 ve 2560x720 çubuk modlarını desteklemek için bunu kullandık. Not: xrandr değişiklikleri yalnızca oturum süresince geçerlidir; kalıcılık için EDID geçersiz kılma özelliğini kullanın.
GPU sürücüleri (Intel, NVIDIA, AMD), çözünürlükleri EDID'nin "Ayrıntılı Zamanlama Tanımlayıcıları"na göre doğrular. 1920x360 listede yoksa, sürücü standart dışı sinyalleri önlemek için bunu engeller. Gömülü GPU'lar (örneğin, Intel Celeron J4125) özellikle katıdır ve özel çözünürlük arayüzlerine sahip değildir.
Bu sorunu 20'den fazla endüstriyel PC modelinde (Advantech, Beckhoff ve Siemens) test ettik ve EDID geçersiz kılınmadığı sürece 1920x360 çözünürlükte başarısız olduklarını tespit ettik. Bir tıbbi ekran projesinde hasta monitörü için 1920x360@60Hz gerekiyordu; ana bilgisayar varsayılan olarak 1280x720 çözünürlüğe geçti ve bu da kullanıcı arayüzü ölçeklendirme sorunlarına neden oldu. Özel bir EDID eklendikten sonra, 100 ünitenin tamamı sorunsuz bir şekilde devreye alındı. Çubuk ekranlar için asla "otomatik algılama"ya güvenmeyin.
Evet, CVT-RB v2 çubuk ekranlar için idealdir: yatay boşluğu 80 piksele (v1'deki 160'a kıyasla) düşürerek piksel saatini ve bant genişliğini azaltır. 1920x360@60Hz için, CVT-RB v2, standart CVT için 62.5 MHz'e karşılık 56.25 MHz üretir; bu da HDMI 1.4 bant genişliği sınırları için kritiktir.
CVT-RB v2 parametreleri: Yatay boşluk = 80, Dikey boşluk = 20, senkronizasyon genişlikleri = 24H/10V. Formül: Piksel Saati = (1920 + 80) × (360 + 20) × 60 = 56.25 MHz. HDMI ekran çözümlerimizde, 1920x480, 2560x720 ve 3840x720 çubuk modları için CVT-RB v2 kullandık ve tümü 60Hz'de kararlıydı. Ultra geniş en boy oranları için CVT-RB v1'den kaçının; bant genişliğini boşa harcar.
Hızlı testler veya tek kullanıcılı kurulumlar için xrandr kullanın; üretim ortamlarında, çok kullanıcılı sistemlerde veya başsız önyükleme senaryolarında EDID geçersiz kılma yöntemini kullanın. EDID geçersiz kılma işlemi yeniden başlatmalar arasında kalıcıdır ve Xorg başlamadan önce çalışır; bu, gömülü Linux için kritik öneme sahiptir.
Doğrudan bir uygulamaya önyükleme yapan kiosklar veya tıbbi cihazlar için EDID geçersiz kılma zorunludur. Ekran yöneticileri (GDM, LightDM) oturum açma sırasında modları sıfırladığında xrandr komut dosyalarının başarısız olduğunu gördük. Bir otomotiv gösterge paneli projesinde, xrandr geliştirme ortamında çalıştı ancak Wayland'ın kısıtlı mod ayarı nedeniyle üretim ortamında başarısız oldu. EDID geçersiz kılma sorunu çözdü. Hedef ortamınızda her zaman her iki yöntemi de test edin.
Kullanım edid-decode hem de edid-generator Araçlardan yararlanın veya mevcut bir EDID hex dökümünü değiştirin. "Detailed Timing Descriptor" bloğunu 1920x360 model satırınızla değiştirin, sağlama toplamını yeniden hesaplayın (bayt 127 = 256 - toplam(bayt 0–126) mod 256) ve ikili dosya olarak kaydedin.
Adım adım:
Orijinal EDID'yi çıkarın: cat /sys/class/drm/card0-HDMI-A-1/edid > original.bin
Kod çözme: edid-decode original.bin
Hex dosyasını düzenleyin (kullanın) hexedit), 54-125 baytlarını yeni zamanlama ile güncelliyor.
Sağlama toplamını yeniden hesapla: printf '%02x' $((256 - (0x$(xxd -p -l 127 original.bin | tr -d '\n' | fold -w2 | paste -sd+ | bc) % 256)))
127. bayta sağlama toplamını ekle.
CDTech'te, herhangi bir çözünürlük için EDID oluşturan bir Python betiği ile bunu otomatikleştiriyoruz. Bir müşterimiz 1920x360, 1920x480 ve 2560x720 varyantlarına ihtiyaç duydu ve bunların tümü 1 saatten kısa sürede oluşturuldu. Sağlama toplamı doğrulamasını asla atlamayın; hatalı bir sağlama toplamı EDID'nin reddedilmesine neden olur.
En sık karşılaşılan hatalar: (1) yanlış piksel saati (sinyal olmamasına neden olur), (2) eksik senkronizasyon polaritesi (ekran titrer), (3) hatalı EDID sağlama toplamı (ekranda "giriş yok" gösterir), (4) GPU bant genişliği sınırlarının göz ardı edilmesi (HDMI 1.4 maksimum 165 MHz). Bunlar siyah ekranlara veya kararsız görüntülere yol açar.
Sık yapılan bir hata: 1920x360 çözünürlük için standart CVT (160 piksel boşluk) kullanmak, bu da piksel saatini 62.5 MHz'e çıkarır; bu da bazı gömülü GPU'lar için çok yüksek bir değerdir. Bir diğeri: ayarlamayı unutmak. video=HDMI-1:e GRUB'da bağlayıcıyı etkinleştirmek için. Bir perakende tabela projesinde, ünitelerin %30'u 1 baytlık EDID sağlama toplamı hatası nedeniyle başarısız oldu. Her zaman doğrulamayı şu şekilde yapın: edid-decode konuşlandırmadan önce.
"15 yıllık LCD üretim tecrübemizde, çubuk ekran EDID sorunları 'ekran yok' şikayetlerinin en büyük nedenidir. Müşteriler 1920x360 panelleri entegratörlere gönderiyor ve entegratörler bunları standart bilgisayarlara takıyorlar; sonuç olarak 1280x720 veya siyah ekranlar elde ediyorlar. Çözümümüz: Fabrikada EDID'i 1920x360@60Hz CVT-RB v2 zamanlamasıyla önceden programlamak. Linux için, çekirdeğe hazır bir EDID ikili dosyası ve tek satırlık bir GRUB düzenlemesi sağlıyoruz. Windows için, modu enjekte etmek için CRU (Özel Çözünürlük Yardımcı Programı) kullanıyoruz. Bunu otomotiv, tıp ve perakende sektörlerinde 10,000'den fazla ünitede uyguladık ve sıfır saha arızası yaşadık. Çubuk ekranlar için asla ana bilgisayar GPU'sunun otomatik algılamasına güvenmeyin; her zaman EDID'i geçersiz kılın veya özel zamanlama desteğine sahip bir kontrol cihazı kullanın."
1920x360 çözünürlüğe sahip çubuk ekranlar için özel EDID yapılandırması şarttır. Model çizgisini CVT-RB v2 (56.25 MHz piksel saati) ile hesaplayın, test için xrandr aracılığıyla uygulayın ve üretim için EDID ikili dosyasını enjekte edin. Sağlama toplamlarını doğrulayın, GPU bant genişliği sınırlarına uyun ve hedef donanım üzerinde test edin. Endüstriyel PC'lerde uyumluluğu garanti eden önceden programlanmış EDID çözümleri için CDTech gibi deneyimli tedarikçilerle iş birliği yapın.
1920x360 çözünürlüğündeki ekranımda neden 1280x720 çözünürlük görünüyor?
Ana GPU, EDID'de 1920x360 çözünürlüğünü tanımıyor. Özel bir EDID ikili dosyasıyla geçersiz kılın veya doğru model satırını zorlamak için xrandr kullanın.
1920x360 çözünürlükte 60Hz için piksel saati nedir?
CVT-RB v2 kullanılıyor: 56.25 MHz. Standart CVT ise 62.5 MHz olur ki bu, gömülü GPU'larda HDMI 1.4 bant genişliğini aşabilir.
Linux'ta xrandr değişikliklerini nasıl kalıcı hale getirebilirim?
xrandr komutlarını ekleyin ~/.xprofile oturum sürekliliği için veya özel bir EDID eklemek için drm.edid_firmware Sistem genelinde kalıcı olması için.
Windows'ta çubuk ekranlar için EDID geçersiz kılma özelliğini kullanabilir miyim?
Evet, özel bir EDID dosyasını içe aktarmak için CRU'yu (Özel Çözünürlük Yardımcı Programı) kullanın, ardından uygulamak için restart64.exe'yi çalıştırın. Alternatif olarak, özel çözünürlükler için NVIDIA/AMD kontrol panellerini kullanabilirsiniz.
Hangi EDID sağlama toplamı, çubuk ekranı zamanlamasının geçerli olmasını sağlar?
127. bayt, 0-126 baytlarının toplamının 256'ya göre modülünün çıkarılmasıyla elde edilen değer olmalıdır. Hatalı bir sağlama toplamı, ekranın EDID'yi tamamen reddetmesine neden olur.
Siteyi kullanmaya devam ederek gizlilik politikamızı ve Şartlar ve Koşullarımızı kabul etmiş olursunuz.