Отсутствует Modeline при использовании пассивного 2-портового VGA-коммутатора

1042
malat

Я пытаюсь использовать дешевый 2-портовый VGA-коммутатор (поиск:) Round Press Button Two Way VGA Switch Splitter Black.

Требуется только two VGA inи one VGA out( без подвода питания). Однако, когда я загружаю XFCEсеанс Debian, я не могу изменить разрешение на рекомендованное для моего монитора ( HP Pavilion v220 Monitor) 1680x1050.

Глядя на X logI можно увидеть следующее при загрузке с помощью переключателя:

[ 26.355] (II) intel(0): EDID for output VGA1 [ 26.355] (II) intel(0): Printing probed modes for output VGA1 [ 26.355] (II) intel(0): Modeline "1024x768"x60.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz e) [ 26.355] (II) intel(0): Modeline "800x600"x60.3 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz e) [ 26.355] (II) intel(0): Modeline "800x600"x56.2 36.00 800 824 896 1024 600 601 603 625 +hsync +vsync (35.2 kHz e) [ 26.355] (II) intel(0): Modeline "848x480"x60.0 33.75 848 864 976 1088 480 486 494 517 +hsync +vsync (31.0 kHz e) [ 26.355] (II) intel(0): Modeline "640x480"x59.9 25.18 640 656 752 800 480 489 492 525 -hsync -vsync (31.5 kHz e) [ 26.356] (II) intel(0): EDID for output HDMI1 

в то время как если я использую прямое кабельное соединение:

[ 26.404] (II) intel(0): EDID for output VGA1 [ 26.404] (II) intel(0): Manufacturer: HWP Model: 26fe Serial#: 16843009 [ 26.404] (II) intel(0): Year: 2008 Week: 13 [ 26.404] (II) intel(0): EDID Version: 1.3 [ 26.404] (II) intel(0): Analog Display Input, Input Voltage Level: 0.700/0.700 V [ 26.404] (II) intel(0): Sync: Separate [ 26.404] (II) intel(0): Max Image Size [cm]: horiz.: 47 vert.: 30 [ 26.404] (II) intel(0): Gamma: 2.20 [ 26.404] (II) intel(0): DPMS capabilities: StandBy Suspend Off; RGB/Color Display [ 26.404] (II) intel(0): Default color space is primary color space [ 26.404] (II) intel(0): First detailed timing is preferred mode [ 26.404] (II) intel(0): redX: 0.644 redY: 0.333 greenX: 0.286 greenY: 0.606 [ 26.404] (II) intel(0): blueX: 0.152 blueY: 0.076 whiteX: 0.313 whiteY: 0.329 [ 26.404] (II) intel(0): Supported established timings: [ 26.404] (II) intel(0): 720x400@70Hz [ 26.405] (II) intel(0): 640x480@60Hz [ 26.405] (II) intel(0): 640x480@75Hz [ 26.405] (II) intel(0): 800x600@60Hz [ 26.405] (II) intel(0): 800x600@75Hz [ 26.405] (II) intel(0): 832x624@75Hz [ 26.405] (II) intel(0): 1024x768@60Hz [ 26.405] (II) intel(0): 1024x768@75Hz [ 26.405] (II) intel(0): 1280x1024@75Hz [ 26.405] (II) intel(0): 1152x864@75Hz [ 26.405] (II) intel(0): Manufacturer's mask: 0 [ 26.405] (II) intel(0): Supported standard timings: [ 26.405] (II) intel(0): #0: hsize: 1152 vsize 720 refresh: 60 vid: 113 [ 26.405] (II) intel(0): #1: hsize: 1280 vsize 960 refresh: 60 vid: 16513 [ 26.405] (II) intel(0): #2: hsize: 1280 vsize 1024 refresh: 60 vid: 32897 [ 26.405] (II) intel(0): #3: hsize: 1440 vsize 900 refresh: 60 vid: 149 [ 26.405] (II) intel(0): #4: hsize: 1600 vsize 1000 refresh: 60 vid: 169 [ 26.405] (II) intel(0): #5: hsize: 1680 vsize 1050 refresh: 60 vid: 179 [ 26.405] (II) intel(0): Supported detailed timing: [ 26.405] (II) intel(0): clock: 146.2 MHz Image Size: 473 x 296 mm [ 26.405] (II) intel(0): h_active: 1680 h_sync: 1784 h_sync_end 1960 h_blank_end 2240 h_border: 0 [ 26.405] (II) intel(0): v_active: 1050 v_sync: 1053 v_sync_end 1059 v_blanking: 1089 v_border: 0 [ 26.405] (II) intel(0): Ranges: V min: 56 V max: 76 Hz, H min: 30 H max: 81 kHz, PixClock max 165 MHz [ 26.405] (II) intel(0): Monitor name: HP v220 [ 26.405] (II) intel(0): Serial No: CNT81361N2 [ 26.405] (II) intel(0): EDID (in hex): [ 26.405] (II) intel(0): 00ffffffffffff0022f0fe2601010101 [ 26.405] (II) intel(0): 0d120103682f1e78eed525a455499b27 [ 26.405] (II) intel(0): 135054a56b807100814081809500a900 [ 26.405] (II) intel(0): b3000101010121399030621a274068b0 [ 26.405] (II) intel(0): 3600d9281100001c000000fd00384c1e [ 26.405] (II) intel(0): 5110000a202020202020000000fc0048 [ 26.405] (II) intel(0): 5020763232300a2020202020000000ff [ 26.405] (II) intel(0): 00434e5438313336314e320a202000c5 [ 26.405] (II) intel(0): Printing probed modes for output VGA1 [ 26.405] (II) intel(0): Modeline "1680x1050"x60.0 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync (65.3 kHz eP) [ 26.405] (II) intel(0): Modeline "1600x1000"x60.0 133.16 1600 1704 1872 2144 1000 1001 1004 1035 -hsync +vsync (62.1 kHz) [ 26.405] (II) intel(0): Modeline "1280x1024"x75.0 135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync (80.0 kHz e) [ 26.405] (II) intel(0): Modeline "1280x1024"x60.0 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync (64.0 kHz e) [ 26.405] (II) intel(0): Modeline "1440x900"x59.9 106.50 1440 1520 1672 1904 900 903 909 934 -hsync +vsync (55.9 kHz e) [ 26.405] (II) intel(0): Modeline "1280x960"x60.0 108.00 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync (60.0 kHz e) [ 26.405] (II) intel(0): Modeline "1152x864"x75.0 108.00 1152 1216 1344 1600 864 865 868 900 +hsync +vsync (67.5 kHz e) [ 26.405] (II) intel(0): Modeline "1152x720"x60.0 67.28 1152 1208 1328 1504 720 721 724 746 -hsync +vsync (44.7 kHz) [ 26.405] (II) intel(0): Modeline "1024x768"x75.1 78.80 1024 1040 1136 1312 768 769 772 800 +hsync +vsync (60.1 kHz e) [ 26.405] (II) intel(0): Modeline "1024x768"x60.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz e) [ 26.405] (II) intel(0): Modeline "832x624"x74.6 57.28 832 864 928 1152 624 625 628 667 -hsync -vsync (49.7 kHz e) [ 26.405] (II) intel(0): Modeline "800x600"x75.0 49.50 800 816 896 1056 600 601 604 625 +hsync +vsync (46.9 kHz e) [ 26.405] (II) intel(0): Modeline "800x600"x60.3 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync (37.9 kHz e) [ 26.405] (II) intel(0): Modeline "640x480"x75.0 31.50 640 656 720 840 480 481 484 500 -hsync -vsync (37.5 kHz e) [ 26.405] (II) intel(0): Modeline "640x480"x60.0 25.20 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e) [ 26.405] (II) intel(0): Modeline "720x400"x70.1 28.32 720 738 846 900 400 412 414 449 -hsync +vsync (31.5 kHz e) [ 26.406] (II) intel(0): EDID for output HDMI1 

Поэтому до тех пор, пока X фактически не распознает Modeline, я не смогу выбрать его из сеанса XFCE ( xfce4-display-settings).

Что я должен сделать, чтобы это исправить? Теперь я хочу записать свой монитор, используя неправильную настройку Modeline. Я надеялся на инструмент для генерации правильного файла Xorg прямо из моего edid(например get-edid) файла:

$ xxd /sys/devices/pci0000:00/0000:00:02.0/drm/card0/card0-VGA-1/edid 0000000: 00ff ffff ffff ff00 22f0 fe26 0101 0101 ........"..&.... 0000010: 0d12 0103 682f 1e78 eed5 25a4 5549 9b27 ....h/.x..%.UI.' 0000020: 1350 54a5 6b80 7100 8140 8180 9500 a900 .PT.k.q..@...... 0000030: b300 0101 0101 2139 9030 621a 2740 68b0 ......!9.0b.'@h. 0000040: 3600 d928 1100 001c 0000 00fd 0038 4c1e 6..(.........8L. 0000050: 5110 000a 2020 2020 2020 0000 00fc 0048 Q... .....H 0000060: 5020 7632 3230 0a20 2020 2020 0000 00ff P v220. .... 0000070: 0043 4e54 3831 3336 314e 320a 2020 00c5 .CNT81361N2. .. 

Я не смог использовать известное CustomEDIDрешение даже для решения проблемы на уровне Xorg:

[ 25.360] (WW) intel(0): Option "ConnectedMonitor" is not used [ 25.360] (WW) intel(0): Option "UseEDID" is not used [ 25.360] (WW) intel(0): Option "CustomEDID" is not used [ 25.360] (WW) intel(0): Option "IgnoreEDID" is not used 

Конечно, недоделанным решением было бы жесткое программирование, xorg.confкак в каменный век (смешивание parse-editс отредактированным вручную файлом журнала X.org):

$ cat /etc/X11/xorg.conf  Section "Monitor" Identifier "HP v220" ModelName "HP v220" VendorName "HWP" # Monitor Manufactured week 13 of 2008 # EDID version 1.3 # Analog Display DisplaySize 470 300 Gamma 2.20 Option "DPMS" "true" Horizsync 30-81 VertRefresh 56-76 # Maximum pixel clock is 160MHz  # Modeline "Mode 0" -hsync +vsync  Modeline "1680x1050" 146.25 1680 1784 1960 2240 1050 1053 1059 1089 -hsync +vsync Modeline "1600x1000" 133.16 1600 1704 1872 2144 1000 1001 1004 1035 -hsync +vsync Modeline "1280x1024" 135.00 1280 1296 1440 1688 1024 1025 1028 1066 +hsync +vsync Modeline "1280x1024" 108.00 1280 1328 1440 1688 1024 1025 1028 1066 +hsync +vsync Modeline "1440x900" 106.50 1440 1520 1672 1904 900 903 909 934 -hsync +vsync Modeline "1280x960" 108.00 1280 1376 1488 1800 960 961 964 1000 +hsync +vsync Modeline "1152x864" 108.00 1152 1216 1344 1600 864 865 868 900 +hsync +vsync Modeline "1152x720" 67.28 1152 1208 1328 1504 720 721 724 746 -hsync +vsync Modeline "1024x768" 78.80 1024 1040 1136 1312 768 769 772 800 +hsync +vsync Modeline "1024x768" 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync Modeline "832x624" 57.28 832 864 928 1152 624 625 628 667 -hsync -vsync Modeline "800x600" 49.50 800 816 896 1056 600 601 604 625 +hsync +vsync Modeline "800x600" 40.00 800 840 968 1056 600 601 605 628 +hsync +vsync Modeline "640x480" 31.50 640 656 720 840 480 481 484 500 -hsync -vsync Modeline "640x480" 25.20 640 656 752 800 480 490 492 525 -hsync -vsync Modeline "720x400" 28.32 720 738 846 900 400 412 414 449 -hsync +vsync EndSection  Section "Screen" Identifier "Screen0" Monitor "HP v220" EndSection 

Но фреймбуфер все равно останется как:

$ fbset -i  mode "1024x768" geometry 1024 768 1024 768 32 timings 0 0 0 0 0 0 0 accel true rgba 8/16,8/8,8/0,0/0 endmode 

вместо чего-то вроде:

$ fbset -i   mode "1680x1050" geometry 1680 1050 1680 1050 32 timings 0 0 0 0 0 0 0 accel true rgba 8/16,8/8,8/0,0/0 endmode 

Мне также нравится тот факт, что мой GRUB2 работает в полном разрешении.

Я ищу что-то, что исправит проблему низкого уровня.

2
Современные мониторы не будут гореть из-за этого - ЭЛТ имеют защитное отключение, а ЖК-дисплеи / светодиоды даже не имеют соответствующей схемы в первую очередь. grawity 7 лет назад 0
Вы пытались добавить режим вручную? Кажется, в Интернете есть разные статьи об этом. Seth 7 лет назад 0
Проблема низкого уровня заключается в том, что ваш дешевый VGA-коммутатор не подключает контакты EDID, поэтому X не получает информацию EDID. Лично я бы использовал решение "каменный век" и добавил правильные модели в xorg.conf. Если вы беспокоитесь о правильной синхронизации, используйте xrandr --verbose без переключателя, чтобы увидеть синхронизацию режимов, которые предоставляет EDID. Что касается того, почему вы не можете использовать CustomEDID, и почему кадровый буфер по-прежнему имеет неправильное разрешение, даже если моделин принят, я понятия не имею. dirkt 7 лет назад 0
Я думаю, что также возможно использовать пользовательские файлы EDID для framebuffer / KMS при загрузке, но я никогда не делал это сам. dirkt 7 лет назад 0

1 ответ на вопрос

1
malat

Поскольку CustomEDIDне реализовано, intelсм. Здесь, альтернативное решение - просто использовать drm_kms_helper.edid_firmareмодуль. В моем случае:

# ls -al /lib/firmware/edid/HPv220.edid.bin  -rw-r--r-- 1 root root 128 Nov 14 15:32 /lib/firmware/edid/HPv220.edid.bin # cat /etc/default/grub  [...] GRUB_CMDLINE_LINUX="drm_kms_helper.edid_firmware=edid/HPv220.edid.bin" # update-grub # reboot 

Экран grub использует другое разрешение по умолчанию, но это приемлемо. Теперь моя сессия имеет правильное разрешение, нет необходимости настраивать xorg.confфайл каменного века . И поверх этого fb правильно инициализируется:

$ fbset -i  mode "1680x1050" geometry 1680 1050 1680 1050 32 timings 0 0 0 0 0 0 0 accel true rgba 8/16,8/8,8/0,0/0 endmode 

Теперь мой dmesgвывод на 100% идентичен (ну, кроме командной строки Kernel).

Похожие вопросы