Re: [Lug-bg] драйвер за монитор
- Subject: Re: [Lug-bg] драйвер за монитор
- From: Валентин Стойков <vstoykov@xxxxxxxxxxxxxxxxxxxxx>
- Date: Tue, 21 Aug 2007 19:55:26 +0300
В повечето дистрибуции не би трябвало да има проблеми с това.
Във Васт ГНУ/Линукс се опитвам да направя програмата за създаване
на /etc/fstab така, че във всички случаи да избира оптималните настройки на
монитора. При LCD мониторите е много важно да е правилно избрана
разделителната способност.
В случай, че работи DDC може да се получи информация за модела на монитора
("EISA ID") и чрез проверка в базата от данни с мониторите да се разбере дали
даден монитор е LCD или не. За сега правенето на база данни с LCD монитори е
на етап идея и в момента програмата за построяване на xorg.conf разчита на
други методи (проверява дали интерфейсът е цифров, проверява дали компютърът
е лаптоп). В случай, че работи DDC не е проблем да се определи максималната
разделителна способност, която мониторът поддържа (и ако знаем, че мониторът
е LCD ще знаем и, че точно тази разделителна способност е оптималната!). В
случай, че мониторът е CRT, програмата за построяване на xorg.conf избира
1024x768 (ако според информацията от DDC се поддържа), защото повечето
монитори поддържат добре тази разделителна способност. Максималната
разделителна способност при CRT мониторите обикновено не се препоръчва,
защото честотата на опресняване на много малка (затова не залагам
правилото "ако има DDC да се ползва максимална разделителна способност").
Това с базата от данни не ми се струва красив вариант. Може би има
по-интелигентен начин чрез DDC да се получи информация дали мониторът е LCD,
но до момента не съм намерил...
Обмислям и варианта да направя база от данни с оптималните разделителни
способности за различните монитори (главно CRT, защото при LCD се знае, че
оптималната разделителна способност е най-голямата). Но може и да има друг
по-красив вариант (напр. ако производителят е заложил да се получава чрез DDC
информацията за оптималната (не максималната) разделителна способност).
Може да се ползват програмите ddcxinfo-kanotix (ddcxinfo-knoppix и т.н.) и
ddcprobe за да се разберат настройките на монитора:
root@darkstar:~# ddcxinfo-kanotix -modes
Modes "1280x1024" "1152x864" "1024x768" "800x600" "640x480"
root@darkstar:~# ddcxinfo-kanotix -monitor
Section "Monitor"
Identifier "Monitor0"
Option "DPMS"
VendorName "HWP"
ModelName "HWP2649"
HorizSync 30 - 83 # DDC-probed
VertRefresh 50 - 76 # DDC-probed
# These are the DDC-probed settings reported by your monitor.
# 1280x1024, 75.0Hz; hfreq=79.98, vfreq=75.03
ModeLine "1280x1024" 135.00 1280 1296 1440 1688 1024 1025 1028 1066
+hsync +vsync
# 1024x768, 75.0Hz; hfreq=60.02, vfreq=75.03
ModeLine "1024x768" 78.75 1024 1040 1136 1312 768 769 772 800
+hsync +vsync
# 1024x768, 70.0Hz; hfreq=56.48, vfreq=70.07
ModeLine "1024x768" 75.00 1024 1048 1184 1328 768 771 777
806 -hsync -vsync
# 800x600, 75.0Hz; hfreq=46.88, vfreq=75.00
ModeLine "800x600" 49.50 800 816 896 1056 600 601 604 625
+hsync +vsync
# 800x600, 72.0Hz; hfreq=48.08, vfreq=72.19
ModeLine "800x600" 50.00 800 856 976 1040 600 637 643 666
+hsync +vsync
# 800x600, 60.0Hz; hfreq=37.88, vfreq=60.32
ModeLine "800x600" 40.00 800 840 968 1056 600 601 605 628
+hsync +vsync
# 640x480, 75.0Hz; hfreq=37.50, vfreq=75.00
ModeLine "640x480" 31.50 640 656 720 840 480 481 484
500 -hsync -vsync
# 640x480, 60.0Hz; hfreq=31.47, vfreq=59.94
ModeLine "640x480" 25.17 640 648 744 784 480 482 484
509 -hsync -vsync
# Extended modelines with GTF timings
# 640x480 @ 100.00 Hz (GTF) hsync: 50.90 kHz; pclk: 43.16 MHz
ModeLine "640x480" 43.16 640 680 744 848 480 481 484 509 -HSync
+Vsync
# 768x576 @ 60.00 Hz (GTF) hsync: 35.82 kHz; pclk: 34.96 MHz
ModeLine "768x576" 34.96 768 792 872 976 576 577 580 597 -HSync
+Vsync
# 768x576 @ 72.00 Hz (GTF) hsync: 43.27 kHz; pclk: 42.93 MHz
ModeLine "768x576" 42.93 768 800 880 992 576 577 580 601 -HSync
+Vsync
# 768x576 @ 75.00 Hz (GTF) hsync: 45.15 kHz; pclk: 45.51 MHz
ModeLine "768x576" 45.51 768 808 888 1008 576 577 580 602 -HSync
+Vsync
# 768x576 @ 85.00 Hz (GTF) hsync: 51.42 kHz; pclk: 51.84 MHz
ModeLine "768x576" 51.84 768 808 888 1008 576 577 580 605 -HSync
+Vsync
# 768x576 @ 100.00 Hz (GTF) hsync: 61.10 kHz; pclk: 62.57 MHz
ModeLine "768x576" 62.57 768 816 896 1024 576 577 580 611 -HSync
+Vsync
# 800x600 @ 100.00 Hz (GTF) hsync: 63.60 kHz; pclk: 68.18 MHz
ModeLine "800x600" 68.18 800 848 936 1072 600 601 604 636 -HSync
+Vsync
# 1024x600 @ 60.00 Hz (GTF) hsync: 37.32 kHz; pclk: 48.96 MHz
ModeLine "1024x600" 48.96 1024 1064 1168 1312 600 601 604
622 -HSync +Vsync
# 1024x768 @ 100.00 Hz (GTF) hsync: 81.40 kHz; pclk: 113.31 MHz
ModeLine "1024x768" 113.31 1024 1096 1208 1392 768 769 772
814 -HSync +Vsync
# 1152x864 @ 60.00 Hz (GTF) hsync: 53.70 kHz; pclk: 81.62 MHz
ModeLine "1152x864" 81.62 1152 1216 1336 1520 864 865 868
895 -HSync +Vsync
# 1152x864 @ 85.00 Hz (GTF) hsync: 77.10 kHz; pclk: 119.65 MHz
ModeLine "1152x864" 119.65 1152 1224 1352 1552 864 865 868
907 -HSync +Vsync
# 1152x864 @ 100.00 Hz (GTF) hsync: 91.50 kHz; pclk: 143.47 MHz
ModeLine "1152x864" 143.47 1152 1232 1360 1568 864 865 868
915 -HSync +Vsync
# 1280x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 80.14 MHz
ModeLine "1280x768" 80.14 1280 1344 1480 1680 768 769 772
795 -HSync +Vsync
# 1280x800 @ 60.00 Hz (GTF) hsync: 49.68 kHz; pclk: 83.46 MHz
ModeLine "1280x800" 83.46 1280 1344 1480 1680 800 801 804
828 -HSync +Vsync
# 1280x960 @ 72.00 Hz (GTF) hsync: 72.07 kHz; pclk: 124.54 MHz
ModeLine "1280x960" 124.54 1280 1368 1504 1728 960 961 964
1001 -HSync +Vsync
# 1280x960 @ 75.00 Hz (GTF) hsync: 75.15 kHz; pclk: 129.86 MHz
ModeLine "1280x960" 129.86 1280 1368 1504 1728 960 961 964
1002 -HSync +Vsync
# 1280x960 @ 100.00 Hz (GTF) hsync: 101.70 kHz; pclk: 178.99 MHz
ModeLine "1280x960" 178.99 1280 1376 1520 1760 960 961 964
1017 -HSync +Vsync
# 1280x1024 @ 100.00 Hz (GTF) hsync: 108.50 kHz; pclk: 190.96 MHz
ModeLine "1280x1024" 190.96 1280 1376 1520 1760 1024 1025 1028
1085 -HSync +Vsync
# 1368x768 @ 60.00 Hz (GTF) hsync: 47.70 kHz; pclk: 85.86 MHz
ModeLine "1368x768" 85.86 1368 1440 1584 1800 768 769 772
795 -HSync +Vsync
# 1400x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 122.61 MHz
ModeLine "1400x1050" 122.61 1400 1488 1640 1880 1050 1051 1054
1087 -HSync +Vsync
# 1400x1050 @ 72.00 Hz (GTF) hsync: 78.77 kHz; pclk: 149.34 MHz
ModeLine "1400x1050" 149.34 1400 1496 1648 1896 1050 1051 1054
1094 -HSync +Vsync
# 1400x1050 @ 75.00 Hz (GTF) hsync: 82.20 kHz; pclk: 155.85 MHz
ModeLine "1400x1050" 155.85 1400 1496 1648 1896 1050 1051 1054
1096 -HSync +Vsync
# 1400x1050 @ 85.00 Hz (GTF) hsync: 93.76 kHz; pclk: 179.26 MHz
ModeLine "1400x1050" 179.26 1400 1504 1656 1912 1050 1051 1054
1103 -HSync +Vsync
# 1400x1050 @ 100.00 Hz (GTF) hsync: 111.20 kHz; pclk: 214.39 MHz
ModeLine "1400x1050" 214.39 1400 1512 1664 1928 1050 1051 1054
1112 -HSync +Vsync
# 1440x900 @ 60.00 Hz (GTF) hsync: 55.92 kHz; pclk: 106.47 MHz
ModeLine "1440x900" 106.47 1440 1520 1672 1904 900 901 904
932 -HSync +Vsync
# 1440x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 126.27 MHz
ModeLine "1440x1050" 126.27 1440 1536 1688 1936 1050 1051 1054
1087 -HSync +Vsync
# 1600x1200 @ 100.00 Hz (GTF) hsync: 127.10 kHz; pclk: 280.64 MHz
ModeLine "1600x1200" 280.64 1600 1728 1904 2208 1200 1201 1204
1271 -HSync +Vsync
# 1680x1050 @ 60.00 Hz (GTF) hsync: 65.22 kHz; pclk: 147.14 MHz
ModeLine "1680x1050" 147.14 1680 1784 1968 2256 1050 1051 1054
1087 -HSync +Vsync
# 1920x1200 @ 60.00 Hz (GTF) hsync: 74.52 kHz; pclk: 193.16 MHz
ModeLine "1920x1200" 193.16 1920 2048 2256 2592 1200 1201 1204
1242 -HSync +Vsync
EndSection
root@darkstar:~#
root@darkstar:~# ddcprobe
VESA 2.0 detected.
OEM Name: ATI RADEON 9200
Memory installed = 256 * 64k blocks = 16384kb
Supported standard modes:
800x600x16
1024x768x16
320x200x32k
320x200x64k
320x200x16m
1600x1200x256
640x400x256
640x480x256
640x480x32k
640x480x64k
640x480x16m
1600x1200x32k
800x600x256
800x600x32k
800x600x64k
800x600x16m
1600x1200x64k
1024x768x256
1024x768x32k
1024x768x64k
1024x768x16m
1280x1024x256
1280x1024x32k
1280x1024x64k
1280x1024x16m
132x25 (text)
132x43 (text)
EDID ver. 1 rev. 3.
Manufacturer: HWP
ID: 2649
EISA ID: HWP2649
Serial number: 01010101.
Manufactured in week 11 of 2005.
Input signal type: digital signal.
Screen size max 33 cm horizontal, 27 cm vertical.
Gamma: 2.200000.
DPMS flags: RGB, active off, suspend, standby.
Established timings:
720x400 @ 70 Hz (VGA 640x400, IBM)
640x480 @ 60 Hz (VGA)
640x480 @ 67 Hz (Mac II, Apple)
640x480 @ 75 Hz (VESA)
800x600 @ 60 Hz (VESA)
800x600 @ 72 Hz (VESA)
800x600 @ 75 Hz (VESA)
832x624 @ 75 Hz (Mac II)
1024x768 @ 87 Hz Interlaced (8514A)
1024x768 @ 70 Hz (VESA)
1024x768 @ 75 Hz (VESA)
1280x1024 @ 75 Hz (VESA)
Standard timing 0: 60 Hz, 1280x1024
Detailed timing 0:
Pixel clock: 108000000
Horizontal active time (pixel width): 256
Horizontal blank time (pixel width): 1432
Vertical active time (pixel height): 0
Vertical blank time (pixel height): 1066
Horizontal sync offset: 48
Horizontal sync pulse width: 112
Vertical sync offset: 3
Vertical sync pulse width: 1
Dimensions: 338x270
Monitor details 1:
Timing ranges: horizontal = 30 - 83, vertical = 50 - 76
Monitor details 2:
Name: HP L1740
Monitor details 3:
Serial number: CNK5110GJN
root@darkstar:~#
Използвайки изходен код от ddcprobe направих програма monitoriface, която
връща digital, ако интерфейсът на монитора е цифров, което означава, че е
LCD. Смятам да напиша monitoris, която да връща lcd, ако е LCD и crt, ако е
CRT, но след като се поразровя повече в изходните кодове и намеря по-красив
начин от правенето на база от данни или се окаже, че такъв начин няма. Ако не
намеря по-красив начин, програмата първо ще проверява интерфейса, и ако е
цифров - ще връща lcd, а ако е crt - ще се рови в базата от данни и ако
мониторът е включен в нея, ще върне lcd, ако не - връща crt.
Повече информация по темата:
openfmi.net/viewtopic.php?t=23
--
Валентин Стойков
http://vstoykov.hit.bg/
_______________________________________________
Lug-bg mailing list
Lug-bg@xxxxxxxxxxxxxxxxxx
http://linux-bulgaria.org/mailman/listinfo/lug-bg
|