Hi! Ref. item 9 on <URL:http://wiki.debian.org/DebianEdu/Meeting/20070813>, here is a update proposal for the stable release.
I propose to update the version of xdebconfigurator in the stable repository from1.30.edu.etch.1 to 1.34~edu.etch.1. This solves problems on many clients with screens that support more than 1024x768 by correcting the ddcprobe parsing, adding xresprobe parsing, improving the MonitorsDB parsing and adding the option to provide monitor frequency overrides in /etc/xdebconfigurator/MonitorsDB. It also remove the obsolete base-config files. The new version is a clean backport from 1.34 which was uploaded to Debian a few days ago. Here is the diff -r output between the two versions: diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/changelog /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/changelog --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/changelog 2007-11-19 02:05:57.000000000 +0100 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/changelog 2008-06-25 19:40:46.000000000 +0200 @@ -1,8 +1,60 @@ -xdebconfigurator (1.30.edu.etch.1) terra; urgency=low +xdebconfigurator (1.34~edu.etch.1) terra; urgency=low - * Remove the crafted .svn files from the package + * Backport to Debian Edu/Etch. - -- Steffen Joeris <[EMAIL PROTECTED]> Mon, 19 Nov 2007 12:05:26 +1100 + -- Petter Reinholdtsen <[EMAIL PROTECTED]> Wed, 25 Jun 2008 19:38:09 +0200 + +xdebconfigurator (1.34) unstable; urgency=low + + * Rewrite how ddcprobe output is processed, to handle all listed + resolutions and fetch monitor frequence. + * Add example output from ddcprobe on a few machines. + * Add support for xresprobe, and prefer it over ddcprobe. Recommend + it instead of read-edid (Closes: #286668, #305423, #305426, + #418746). + * Rewrite handling of the monitor database + (/usr/share/hwdata/MonitorsDB), to use the values there if the + eisa ID is there. This allow us to override monitors with + incorrect DDC information. + * Start on our own MonitorsDB file, to allow us to include our own + override values, and also use a file in /etc/ for site specific + overrides. + * Remove obsolete base-config fragments. + * Updated standards-version to 3.8.0. + * Avoid bashism in init.d script (Closes: #486061). + + -- Petter Reinholdtsen <[EMAIL PROTECTED]> Wed, 25 Jun 2008 19:32:45 +0200 + +xdebconfigurator (1.33) unstable; urgency=low + + * Force removal of init.d symlinks when updating the runlevels + (Closes: #472773). + + -- Petter Reinholdtsen <[EMAIL PROTECTED]> Sat, 26 Apr 2008 22:53:22 +0200 + +xdebconfigurator (1.32) unstable; urgency=low + + [ Petter Reinholdtsen ] + * Do not use kudzu and detect by default, as both are obsolete in Debian. + * Make sure init.d/xdebconfigurator is only used as a start script, + and start after syslog and before (xdm kdm gdm ldm). + + -- Petter Reinholdtsen <[EMAIL PROTECTED]> Tue, 25 Mar 2008 16:54:55 +0100 + +xdebconfigurator (1.31) unstable; urgency=low + + [ Petter Reinholdtsen ] + * Drop the default-stop values from init.d/xdebconfigurator. This + script is only useful as a start script. + + [ Holger Levsen ] + * bumped standards version to 3.7.3, upgraded link to + /usr/share/common/licences/GPL-2 in copyright + * fix national encoding in copyright + * added myself to uploaders + * don't ignore errors from "make clean" in rules + + -- Holger Levsen <[EMAIL PROTECTED]> Thu, 14 Feb 2008 14:20:46 +0000 xdebconfigurator (1.30) unstable; urgency=low diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/control /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/control --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/control 2007-11-19 01:28:38.000000000 +0100 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/control 2008-06-23 11:41:24.000000000 +0200 @@ -2,15 +2,15 @@ Section: x11 Priority: optional Maintainer: Debian Edu Developers <[email protected]> -Uploaders: Petter Reinholdtsen <[EMAIL PROTECTED]>, Andreas Schuldei <[EMAIL PROTECTED]>, Morten Werner Forsbring <[EMAIL PROTECTED]>, Steffen Joeris <[EMAIL PROTECTED]> +Uploaders: Petter Reinholdtsen <[EMAIL PROTECTED]>, Andreas Schuldei <[EMAIL PROTECTED]>, Morten Werner Forsbring <[EMAIL PROTECTED]>, Steffen Joeris <[EMAIL PROTECTED]>, Holger Levsen <[EMAIL PROTECTED]> Build-Depends: debhelper (>= 4) -Standards-Version: 3.7.2 +Standards-Version: 3.8.0 Package: xdebconfigurator Architecture: all Depends: ${misc:Depends}, perl-modules, discover | discover1, hwinfo -Recommends: read-edid -Suggests: kudzu, xresprobe | kudzu-vesa, detect, lsb-base +Recommends: xresprobe +Suggests: read-edid, kudzu, detect, lsb-base Description: A script used with debconf to autoconfigure xserver-xorg A script-package used in conjunction with debconf to autoconfigure xserver-xfree86 and xserver-xorg. This script is supposed to help setup diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/copyright /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/copyright --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/copyright 2007-07-10 12:32:13.000000000 +0200 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/copyright 2008-03-25 16:52:20.000000000 +0100 @@ -1,9 +1,9 @@ -This package was debianized by Kristoffer Tjærnås [EMAIL PROTECTED] on +This package was debianized by Kristoffer TjærnÃ¥s [EMAIL PROTECTED] on Fri, 12 Apr 2002 19:58:53 +0200. -Created by Kristoffer Tjærnås +Created by Kristoffer TjænÃ¥ -Copyright: (c) 2002 Kristoffer Tjærnås +Copyright: (c) 2002 Kristoffer TjærnÃ¥ Licensed under the GNU General Public License, version 2. See the file -/usr/share/common-licenses/GPL or <http://www.gnu.org/copyleft/gpl.txt>. +/usr/share/common-licenses/GPL-2 or <http://www.gnu.org/copyleft/gpl.txt>. diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/dirs /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/dirs --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/dirs 2007-07-10 12:32:13.000000000 +0200 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/dirs 2008-06-25 08:48:57.000000000 +0200 @@ -1,3 +1,4 @@ +etc/xdebconfigurator usr/sbin usr/share/lintian/overrides usr/share/xdebconfigurator diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/preinst /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/preinst --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/preinst 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/preinst 2008-03-26 11:50:14.000000000 +0100 @@ -0,0 +1,9 @@ +#!/bin/sh + +set -e + +if [ ! -z $2 ] && dpkg --compare-versions "$2" le "1.31"; then + update-rc.d -f xdebconfigurator remove # Replacing with updated settings +fi + +#DEBHELPER# diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/rules /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/rules --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/rules 2007-07-10 12:32:13.000000000 +0200 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/rules 2008-03-25 16:52:20.000000000 +0100 @@ -18,7 +18,7 @@ clean: dh_testdir # Add here commands to clean up after the build process. - -$(MAKE) clean + $(MAKE) clean dh_clean @@ -49,7 +49,7 @@ # dh_installemacsen # dh_installpam # dh_installmime - dh_installinit + dh_installinit --no-restart-on-upgrade --no-start --update-rcd-params="start 20 2 3 4 5 ." # dh_installcron # dh_installinfo dh_installman xdebconfigurator.8 diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/xdebconfigurator.init /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/xdebconfigurator.init --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/debian/xdebconfigurator.init 2007-07-10 12:32:13.000000000 +0200 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/debian/xdebconfigurator.init 2008-06-25 19:18:40.000000000 +0200 @@ -3,10 +3,11 @@ # ### BEGIN INIT INFO # Provides: xdebconfigurator -# Required-Start: $syslog -# Required-Stop: $syslog +# Required-Start: $remote_fs $syslog +# Required-Stop: $remote_fs $syslog +# X-Start-Before: xdm kdm gdm ldm # Default-Start: 2 3 4 5 -# Default-Stop: 0 1 6 +# Default-Stop: # Short-Description: Genererate xfree86 configuration at boot time # Description: Preseed X configuration and use dexconf to # genereate a new configuration file. @@ -46,7 +47,7 @@ stop|restart|force-reload|status) ;; *) - echo $"Usage: $0 {start|stop|restart|force-reload|status}" + echo "Usage: $0 {start|stop|restart|force-reload|status}" exit 2 ;; esac diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/Makefile /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/Makefile --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/Makefile 2007-07-10 12:32:13.000000000 +0200 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/Makefile 2008-06-24 17:55:51.000000000 +0200 @@ -10,34 +10,26 @@ pkgdir = $(datadir)/$(package) docdir = $(datadir)/doc/$(package) -baseconfigdir = $(prefix)/lib/base-config - -XDFILES = Xdriver.pl +XDPROG = Xdriver.pl +XDDATA = MonitorsDB all: -install-baseconfig: - $(INSTALL) -d $(DESTDIR)$(baseconfigdir)/menu - # Install Sarge fragment - $(INSTALL_DATA) base-config/menu/xdebconfigurator.mnu \ - $(DESTDIR)$(baseconfigdir)/menu/xdebconfigurator.mnu - $(INSTALL) base-config/76xdebconfigurator \ - $(DESTDIR)$(baseconfigdir)/menu/xdebconfigurator - # Install Woody fragment - ln -s menu/xdebconfigurator \ - $(DESTDIR)$(baseconfigdir)/76xdebconfigurator - -install: install-baseconfig +install: $(INSTALL) -d $(DESTDIR)$(sbindir) $(INSTALL) -d $(DESTDIR)$(pkgdir) $(INSTALL) -d $(DESTDIR)$(docdir) $(INSTALL) xdebconfigurator $(DESTDIR)$(sbindir)/xdebconfigurator - for xd in $(XDFILES); do \ + for xd in $(XDPROG); do \ $(INSTALL) $$xd $(DESTDIR)$(pkgdir)/$$xd; \ done + for xd in $(XDDATA); do \ + $(INSTALL_DATA) $$xd $(DESTDIR)$(pkgdir)/$$xd; \ + done + $(INSTALL_DATA) README $(DESTDIR)$(docdir)/README clean: diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/MonitorsDB /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/MonitorsDB --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/MonitorsDB 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/MonitorsDB 2008-06-24 17:51:00.000000000 +0200 @@ -0,0 +1,12 @@ +# +# Monitor information for use by xdebconfigurator. Using the same +# format as the MonitorsDB file in hwdata from kudzu/RedHat +# +# Each line has format: +# <Manufacturer>; <Monitor name>; <EISA ID (if any)>; <horiz sync in \ +# Khz>; <vert sync in Hz>; DPMS support +# +# Horiz and vert sync should be a range; like 35.2-55.75 or 30-81 +# BUT remember to use ';' to separate fields +# +#ADI; ADI ADIV30; adi3230; 30.0-48.5; 50.0-100.0; 1 diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/xdebconfigurator /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/xdebconfigurator --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/xdebconfigurator 2007-11-19 01:28:38.000000000 +0100 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/xdebconfigurator 2008-06-25 15:00:40.000000000 +0200 @@ -26,7 +26,8 @@ -k : kudzu (can detect video card driver and mouse device) -l : libdetect (can detect video card, mouse device and protocol) -m : mdetect (can detect mouse device, but not fully functional yet) - -r : read-edid (monitor detection.) + -r : read-edid (monitor detection) + -p : xresprobe (monitor detection) -x : dry-run, report only - do not actually update debconf -v : verbose, print debug output during run -h : this (help) message @@ -37,7 +38,7 @@ } use Getopt::Std; # command line options processing -my $opt_string = 'cdhiklmrxv'; +my $opt_string = 'cdhiklmprxv'; getopts( "$opt_string", \my %opt ); if (not scalar %opt or (scalar keys %opt == 1 and $opt{"x"})) { # no options selected so do some of them @@ -45,9 +46,11 @@ "c" =>"true", "d" =>"true", "i" =>"true", - "k" =>"true", - "l" =>"true", +# Kudzu and detect is obsolete in Debian. Disable as default +# "k" =>"true", +# "l" =>"true", # It might be better to use ddcprobe (-c) + "p" =>"true", # "r" =>"true", "s" =>"true" ); @@ -63,6 +66,7 @@ my $hwinfo = "/usr/sbin/hwinfo"; my $ddcprobe = "/usr/sbin/ddcprobe"; +my $xresprobe = "/usr/sbin/xresprobe"; my $mdetect = "/usr/bin/mdetect"; # path to mdetect my $detect = "/usr/sbin/detect"; # path to detect (libdetect) my $kudzu = "/usr/sbin/kudzu"; # path to kudzu @@ -70,6 +74,10 @@ chomp($getedid = `which get-edid`); # read-edid exists? # Monitor table (part of package hwdata) my $MONITORDB = "/usr/share/hwdata/MonitorsDB"; +# Our own list of overrides +my $MONITORDB2 = "/usr/share/xdebconfigurator/MonitorsDB"; +# The local admins list of overrides +my $MONITORDB3 = "/etc/xdebconfigurator/MonitorsDB"; # Establish some variables - which don't exist in debconf my $mdriv = ""; #mouse driver? @@ -195,6 +203,7 @@ #multiselect, use defaults: $xdebc_map{'config/display/modes'} = ''; $xdebc_type{'config/display/modes'} = 'multiselect'; + $modessource = "none"; # '1024x768 @ 70Hz'); #this default should be ok on 15 inch+ $xdebc_map{'config/monitor/mode-list'} = ''; @@ -398,8 +407,10 @@ $monitorID .= $1; # + device ID } elsif($line =~ /Vert\. Sync Range: (\d+)\-(\d+) \w+/i) { $xdebc_map{'config/monitor/vert-refresh'} = $1.'-'.$2; + $freqsource = "hwinfo"; } elsif($line =~ /Hor\. Sync Range: (\d+)\-(\d+) \w+/i) { $xdebc_map{'config/monitor/horiz-sync'} = $1.'-'.$2; + $freqsource = "hwinfo"; } } close(HW); @@ -467,6 +478,7 @@ $xdebc_map{'config/display/modes'} = $temp_depths{ $xdebc_map{'config/display/default_depth'} }; + $modessource = "hwinfo"; } sub hwinfo_display() @@ -609,23 +621,16 @@ # VertRefresh 47-160 if ($line =~ /HorizSync (\d+)\-(\d+)/i) { $xdebc_map{'config/monitor/horiz-sync'} = $1 . "-" . $2; + $freqsource = "edid"; } elsif ($line =~ /VertRefresh (\d+)\-(\d+)/i) { $xdebc_map{'config/monitor/vert-refresh'} = $1 . "-" . $2; + $freqsource = "edid"; } # Bomb out if edid if this happens, or it might loop! last LINE if($line =~ /Something special has happened/i); } close(ED); - - if ($xdebc_map{'config/monitor/horiz-sync'} && - $xdebc_map{'config/monitor/vert-refresh'} ) { - #we got refresh rates so we can use "Advanced mode" - $xdebc_map{'config/monitor/selection-method'} = "Advanced"; - } else { - # no refresh rates - use simple configuration? - $xdebc_map{'config/monitor/selection-method'} = "Simple"; - } } } @@ -635,64 +640,79 @@ # what do we need to know about monitor: # horizSync, VertRefresh, a def Mode list (pick highest?!), screen # size, modes, def depth - - my $temp_mode = "1024x768 @ 70Hz"; + print "ddcprobe() called\n" if $debug; open (HW,"$ddcprobe |"); # output from ddcprobe piped to HW while ($line = <HW>) # <HW> give line-by-line of ddcprobe-output { - #ID: 4538 - #EISA ID: API4538 - #Screen size max 27 cm horizontal, 20 cm vertical. - # 640x480 @ 75 Hz (VESA) - - if($line =~ /(\d+x\d+ @ \d+ Hz) \(VESA\)/i) + chomp $line; + print " L: '$line'\n" if $debug; + if($line =~ /^[cd]*timing: (\d+x\d+) [EMAIL PROTECTED]/) { - # we'll use the greatest one as def - # TODO: change selection of default mode - # It's better to have a smaller resolution with high refresh - # rate, than vice versa - # Maybe test 1024x768 against these modes and pick it with a - # high refresh if it exists - # Then next try 800x600 with a high refresh. - # 14 inches aparently wanna have max 800x600 @ 60Hz - $temp_mode = $1; - - # let's first get the best refresh rate at 800x600, then - # 1024x768 if possible - if($temp_mode =~ /800x600/) { - # this will eventually store 800x600 with best refresh rate - $xdebc_map{'config/monitor/mode-list'} = $temp_mode; - $modesource = "ddcprobe"; - } elsif($temp_mode =~ /1024x768/) { - # this will eventually store 1024x768 with best refresh rate - $xdebc_map{'config/monitor/mode-list'} = $temp_mode; - $modesource = "ddcprobe"; - } - } elsif($line =~ /EISA ID: (\S+)/i) { + # Pass all supported resolutions to X and let it pick the + # one to use. + print "D: $1\n" if $debug; + $xdebc_map{'config/display/modes'} = + join(", ", + split(/, ?/, $xdebc_map{'config/display/modes'}), $1); + $modessource = "ddcprobe"; + } elsif($line =~ /eisa: (\S+)/i) { $monitorID = $1; - } elsif($line =~ /Memory installed .+ (\d+)kb/i) { - # Memory installed = 32 * 64k blocks = 2048kb - $xdebc_map{'config/device/video_ram'} = $1; - } elsif($line =~ /Screen size max (\d+) cm horizontal, (\d+) cm vertical/i) { + } elsif($line =~ /monitorname: (\S+)/i) { + $monitorname = $1; + } elsif($line =~ /monitorserial: (\S+)/i) { + $monitorserial = $1; + } elsif($line =~ /screensize: (\d+) (\d+)$/i) { $screenX = $1; $screenY = $2; } # On some monitors the timings range is reported as: Timing ranges: # horizontal = 30 - 130, vertical = 50 - 160 - if($line =~ /Timing ranges\: horizontal \= (\d+) \- (\d+)\, vertical \= (\d+) \- (\d+)/i) + if($line =~ /monitorrange: (\d+)-(\d+), (\d+)-(\d+)/) { $xdebc_map{'config/monitor/horiz-sync'} = $1 . "-" . $2; $xdebc_map{'config/monitor/vert-refresh'} = $3 . "-" . $4; - #we got refresh rates so we can use "Advanced mode" - $xdebc_map{'config/monitor/selection-method'} = "Advanced"; + $freqsource = "ddcprobe"; } } close (HW); - # fix: slightly different format than what config wants - $xdebc_map{'config/monitor/mode-list'} =~ s/(\d+) Hz/$1Hz/i; - #$xdebc_map{'config/display/default_depth'} = ''; #select default 24 ok + if ($monitorname && $monitorserial) { + $xdebc_map{'config/monitor/identifier'} = + "$monitorname $monitorserial"; + } +} + + +sub xresprobe() +{ + # using xresprobe to look for monitor + my $driver = $xdebc_map{'config/device/driver'}; + return unless $driver; + open (HW,"$xresprobe $driver|"); + my $modes; + while ($line = <HW>) + { + chomp $line; + # id: BenQ FP73GS + #res: 1280x1024 1152x864 1024x768 832x624 800x600 720x400 640x480 640x350 + #freq: 30-82 56-76 + #disptype: crt + if($line =~ /^ id:: (\S+)/) { + $monitorID = $1; + } elsif ($line =~ m/^res: (.+)$/) { + $modes = join(", ", split(/ +/, $1)); + } elsif ($line =~ m/^freq: (\d+-\d+) (\d+-\d+)$/) { + $xdebc_map{'config/monitor/horiz-sync'} = $1; + $xdebc_map{'config/monitor/vert-refresh'} = $2; + $freqsource = "xresprobe"; + if ($modes) { + $xdebc_map{'config/display/modes'} = $modes; + $modessource = "xresprobe"; + } + } + } + close (HW); } @@ -769,31 +789,39 @@ sub lookup_monitor() { - $mu = ''; # init monitor-unused dump variable + return unless $monitorID; # get sync and refresh from MonitorDB - greping on $monitorID - if(-f $MONITORDB && $monitorID) - { - open (FIL,$MONITORDB) or die "Failed to open $MONITORDB !\n"; - $line = <FIL>; # <FIL> return a line from the file - READDB: { - while ($line = <FIL>) # <FIL> returning an empty string at file-end + for my $file ($MONITORDB3, $MONITORDB2, $MONITORDB) { + if(-f $file) + { + unless (open (FILE,$file)) { + warn "Failed to open $file !\n"; + next; + } + $line = <FILE>; # <FIL> return a line from the file + while (<FILE>) # <FIL> returning an empty string at file-end { - # Acer; Acer 56e; API4538; 30.0-69.0; 50.0-110.0 - if($line =~ /$monitorID/i) - { - chomp($dbstring = $line); - last READDB; + chomp; + my ($vendor, $name, $id, $hfreq, $vfreq, $dpms) = + split(/\s*\;\s*/); + # Acer; Acer 56e; API4538; 30.0-69.0; 50.0-110.0; 1 + if(lc($id) eq lc($monitorID)) { + if (( $xdebc_map{'config/monitor/horiz-sync'} && + $xdebc_map{'config/monitor/horiz-sync'} ne $hfreq) || + ($xdebc_map{'config/monitor/vert-refresh'} && + $xdebc_map{'config/monitor/vert-refresh'} ne $vfreq)) + { + warn("Freq mismatch for id '$monitorID' in $file\n"); + } + $xdebc_map{'config/monitor/horiz-sync'} = $hfreq; + $xdebc_map{'config/monitor/vert-refresh'} = $vfreq; + $freqsource = "monitordb $file"; + return 1; } } } - if ( ! defined $dbstring ) { - warn("Unable to find Monitor '$monitorID' in " . "$MONITORDB\n"); - return 0; - } else { - ($mu,$xdebc_map{'config/monitor/identifier'},$mu,$xdebc_map{'config/monitor/horiz-sync'},$xdebc_map{'config/monitor/vert-refresh'},$mu) = split(/\;/, $dbstring); - return 1; - } } + return 0; } sub test_existion($) @@ -884,12 +912,6 @@ # Run through opts # we're testing the availability of each prog here, so no need do it in # the subs -if($opt{c}){ - if(test_existion("$ddcprobe") && - $xdebc_map{'config/monitor/selection-method'} ne "Advanced" ) { - ddcprobe(); - } -} if($opt{d}){ if(test_existion("$discover")) { if ( !$xdebc_map{'config/device/driver'} ) { @@ -904,6 +926,18 @@ } } } +if($opt{p}){ + if(test_existion("$xresprobe") && + $xdebc_map{'config/monitor/selection-method'} ne "Advanced" ) { + xresprobe(); + } +} +if($opt{c}){ + if(test_existion("$ddcprobe") && + $xdebc_map{'config/monitor/selection-method'} ne "Advanced" ) { + ddcprobe(); + } +} if($opt{i}) { if(test_existion("$hwinfo")) { if( !$xdebc_map{'config/device/driver'} ) { @@ -1090,8 +1124,7 @@ ### Monitor detection -if ((!$xdebc_map{'config/monitor/horiz-sync'} || - !$xdebc_map{'config/monitor/vert-refresh'} ) && $monitorID ) { +if ( $monitorID ) { if (lookup_monitor()) { #we got refresh rates so we can use "Advanced mode" $xdebc_map{'config/monitor/selection-method'} = "Advanced"; @@ -1138,6 +1171,7 @@ # default value for 15 inches $xdebc_map{'config/monitor/vert-refresh'} = '43-75'; + $freqsource = "default"; } } @@ -1145,6 +1179,7 @@ if (!$xdebc_map{'config/display/modes'} ) { $xdebc_map{'config/display/modes'} = '1024x768, 800x600, 640x480'; + $modessource = "default"; } # couldn't determine mode - use default for 15 incher @@ -1282,11 +1317,16 @@ warn "MONITOR ID: $monitorID\n"; warn "SUGGESTED METHOD: $xdebc_map{'config/monitor/selection-method'}\n"; warn "MONITOR SIZE: $xdebc_map{'config/monitor/screen-size'}\n"; -warn "MONITOR HOR SYNC: $xdebc_map{'config/monitor/horiz-sync'}\n"; -warn "MONITOR VER REFR: $xdebc_map{'config/monitor/vert-refresh'}\n"; warn "MONITOR MODES: $xdebc_map{'config/display/modes'}\n"; -warn "MONITOR MODE: $xdebc_map{'config/monitor/mode-list'}\n"; -warn "MONITOR MODE SRC: $modesource\n"; +warn "MONITOR MODES SRC: $modessource\n"; +if ($xdebc_map{'config/monitor/selection-method'} eq "Advanced") { + warn "MONITOR HOR SYNC: $xdebc_map{'config/monitor/horiz-sync'}\n"; + warn "MONITOR VER REFR: $xdebc_map{'config/monitor/vert-refresh'}\n"; + warn "MONITOR FREQ SRC: $freqsource\n"; +} else { + warn "MONITOR MODE: $xdebc_map{'config/monitor/mode-list'}\n"; + warn "MONITOR MODE SRC: $modesource\n"; +} warn "MONITOR DEFAULT DEPTH: $xdebc_map{'config/display/default_depth'}\n"; # die if the driver/xserver to use was not found @@ -1301,4 +1341,3 @@ #system(dexconf); exit(0); - diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/base-config/76xdebconfigurator /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/base-config/76xdebconfigurator --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/base-config/76xdebconfigurator 2007-07-10 12:32:13.000000000 +0200 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/base-config/76xdebconfigurator 1970-01-01 01:00:00.000000000 +0100 @@ -1,65 +0,0 @@ -#!/bin/sh -# -# Call xdebconfigurator and dexconf to set up the X config file. -# -# Do this after 75apt-get to make sure it happen after the XFree86 -# package is installed and the debconf templates are loaded. -# Do this before 77Xhack, to make sure the HW detection tools are -# still installed. - -set -e - -# Run Xdebconfigurator to set values in the debconf-db. Next it will -# run dexconf to write a new XF86Config-4 file. - -xdebconf="/usr/sbin/xdebconfigurator" -dexconf="/usr/bin/dexconf" - -if [ -x "$xdebconf" ]; then - # run xdebconfigurator - - # First we find out which server package to use - pkg=`xdebconfigurator 2>&1 |grep 'DEBIAN PACKAGE: '|awk '{print $3}'` - - # Only xserver-xfree86 is supported at the moment - if [ xserver-xfree86 != "$pkg" ] ; then - echo "error: Skipping xdebconfigurator. Only xserver-xfree86 is supported." - exit 1 - fi - - # Then we configure - logger -p user.info -t xdebconfigurator \ - "Generating new XFree86 config file." - echo "info: Generating XFree86 config file using xdebconfigurator/dexconf." - if $xdebconf -dcik; then - # run dexconf, and keep going even if it fails. - - # Make backup copy just in case - cfg="/etc/X11/XF86Config-4" - if [ -f $cfg ] ; then - timestamp=`date +%Y%m%d-%H%M` - cp $cfg $cfg-$timestamp - fi - - # an alternative to running dexconf would be to run - # "dpkg-reconfigure xserver-xfree86" but in the end package - # xserver-xfree86 will still use dexconf for writing the - # file. - if $dexconf ; then - # update the md5sum to allow xserver-xfree86 reconfiguration - md5sum $cfg > /var/lib/xfree86/`basename $cfg`.md5sum - if diff -u $cfg-$timestamp $cfg > /dev/null ; then - # Files are identical, no need to keep the backup file. - rm $cfg-$timestamp - fi - else - echo "error: failed to run $dexconf." - exit 2 - fi - else - echo "error: failed to run $xdebconf." - exit 3 - fi -fi - -exit 0 diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/base-config/menu/xdebconfigurator.mnu /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/base-config/menu/xdebconfigurator.mnu --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/base-config/menu/xdebconfigurator.mnu 2007-07-10 12:32:13.000000000 +0200 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/base-config/menu/xdebconfigurator.mnu 1970-01-01 01:00:00.000000000 +0100 @@ -1,3 +0,0 @@ -Only-New: false -Debconf: false -Order: 91 diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/ddcprobe-examples/test1 /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/ddcprobe-examples/test1 --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/ddcprobe-examples/test1 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/ddcprobe-examples/test1 2008-06-20 15:29:47.000000000 +0200 @@ -0,0 +1,44 @@ +vbe: VESA 3.0 detected. +oem: SiS +vendor: +product: +memory: 32768kb +mode: 800x600x16 +mode: 640x480x256 +mode: 640x400x256 +mode: 800x600x256 +mode: 1024x768x16 +mode: 1024x768x256 +mode: 1280x1024x256 +mode: 320x200x32k +mode: 320x200x64k +mode: 640x480x32k +mode: 640x480x64k +mode: 800x600x32k +mode: 800x600x64k +mode: 1024x768x32k +mode: 1024x768x64k +mode: 1280x1024x32k +mode: 1280x1024x64k +edid: +edid: 1 3 +id: 0027 +eisa: SAM0027 +serial: 41563137 +manufacture: 11 2004 +input: sync on green, analog signal. +screensize: 32 24 +gamma: 2.070000 +dpms: RGB, active off, no suspend, no standby +timing: [EMAIL PROTECTED] Hz (VGA) +timing: [EMAIL PROTECTED] Hz (VESA) +timing: [EMAIL PROTECTED] Hz (VESA) +ctiming: [EMAIL PROTECTED] +ctiming: [EMAIL PROTECTED] +ctiming: [EMAIL PROTECTED] +ctiming: [EMAIL PROTECTED] +ctiming: [EMAIL PROTECTED] +dtiming: [EMAIL PROTECTED] +monitorrange: 30-71, 50-160 +monitorname: SyncMaster +monitorserial: H9KX314010 diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/ddcprobe-examples/test2 /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/ddcprobe-examples/test2 --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/ddcprobe-examples/test2 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/ddcprobe-examples/test2 2008-06-20 15:30:24.000000000 +0200 @@ -0,0 +1,55 @@ +vbe: VESA 3.0 detected. +oem: Brookdale-G Graphics Chip Accelerated VGA BIOS +vendor: Intel Corporation +product: Brookdale-G Graphics Controller Hardware Version 0.0 +memory: 8000kb +mode: 1280x1024x256 +mode: 640x480x16m +mode: 800x600x16m +mode: 1024x768x32k +mode: 1024x768x64k +mode: 1024x768x16m +mode: 1280x1024x64k +mode: 1280x1024x16m +mode: 132x25 (text) +mode: 132x43 (text) +mode: 132x50 (text) +mode: 132x60 (text) +mode: 640x480x256 +mode: 800x600x256 +mode: 1024x768x256 +mode: 640x480x64k +mode: 800x600x64k +edid: +edid: 1 3 +id: 7708 +eisa: BNQ7708 +serial: 000005b1 +manufacture: 16 2007 +input: composite sync, sync on green, analog signal. +screensize: 33 27 +gamma: 2.200000 +dpms: RGB, active off, suspend, standby +timing: [EMAIL PROTECTED] Hz (VGA 640x400, IBM) +timing: [EMAIL PROTECTED] Hz (VGA) +timing: [EMAIL PROTECTED] Hz (Mac II, Apple) +timing: [EMAIL PROTECTED] Hz (VESA) +timing: [EMAIL PROTECTED] Hz (VESA) +timing: [EMAIL PROTECTED] Hz (VESA) +timing: [EMAIL PROTECTED] Hz (VESA) +timing: [EMAIL PROTECTED] Hz (VESA) +timing: [EMAIL PROTECTED] Hz (Mac II) +timing: [EMAIL PROTECTED] Hz Interlaced (8514A) +timing: [EMAIL PROTECTED] Hz (VESA) +timing: [EMAIL PROTECTED] Hz (VESA) +timing: [EMAIL PROTECTED] (VESA) +ctiming: [EMAIL PROTECTED] +ctiming: [EMAIL PROTECTED] +ctiming: [EMAIL PROTECTED] +ctiming: [EMAIL PROTECTED] +ctiming: [EMAIL PROTECTED] +ctiming: [EMAIL PROTECTED] +dtiming: [EMAIL PROTECTED] +dtiming: [EMAIL PROTECTED] +monitorrange: 30-82, 56-76 +monitorname: BenQ FP73GS diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/ddcprobe-examples/test3 /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/ddcprobe-examples/test3 --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/ddcprobe-examples/test3 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/ddcprobe-examples/test3 2008-06-20 15:33:34.000000000 +0200 @@ -0,0 +1,55 @@ +vbe: VESA 2.0 detected. +oem: ATI RV370 +memory: 16384kb +mode: 800x600x16 +mode: 1024x768x16 +mode: 320x200x32k +mode: 320x200x64k +mode: 320x200x16m +mode: 1600x1200x256 +mode: 640x400x256 +mode: 640x480x256 +mode: 640x480x32k +mode: 640x480x64k +mode: 640x480x16m +mode: 1600x1200x32k +mode: 800x600x256 +mode: 800x600x32k +mode: 800x600x64k +mode: 800x600x16m +mode: 1600x1200x64k +mode: 1024x768x256 +mode: 1024x768x32k +mode: 1024x768x64k +mode: 1024x768x16m +mode: 1280x1024x256 +mode: 1280x1024x32k +mode: 1280x1024x64k +mode: 1280x1024x16m +mode: 132x25 (text) +mode: 132x43 (text) +edid: +edid: 1 3 +id: a008 +eisa: DELa008 +serial: 3138324c +manufacture: 16 2004 +input: analog signal. +screensize: 41 31 +gamma: 2.200000 +dpms: RGB, active off, suspend, standby +timing: [EMAIL PROTECTED] Hz (VGA 640x400, IBM) +timing: [EMAIL PROTECTED] Hz (VGA) +timing: [EMAIL PROTECTED] Hz (VESA) +timing: [EMAIL PROTECTED] Hz (VESA) +timing: [EMAIL PROTECTED] Hz (VESA) +timing: [EMAIL PROTECTED] Hz (VESA) +timing: [EMAIL PROTECTED] Hz Interlaced (8514A) +timing: [EMAIL PROTECTED] Hz (VESA) +ctiming: [EMAIL PROTECTED] +ctiming: [EMAIL PROTECTED] +ctiming: [EMAIL PROTECTED] +dtiming: [EMAIL PROTECTED] +monitorserial: C088144F182L +monitorname: DELL 2001FP +monitorrange: 31-80, 56-76 diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/ddcprobe-examples/thinkpad-x41 /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/ddcprobe-examples/thinkpad-x41 --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/ddcprobe-examples/thinkpad-x41 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/ddcprobe-examples/thinkpad-x41 2008-06-20 15:32:12.000000000 +0200 @@ -0,0 +1,19 @@ +vbe: VESA 3.0 detected. +oem: Intel(r)915GM/910ML/915MS Graphics Chip Accelerated VGA BIOS +vendor: Intel Corporation +product: Intel(r)915GM/910ML/915MS Graphics Controller Hardware Version 0.0 +memory: 12288kb +mode: 1280x1024x256 +mode: 1280x1024x64k +mode: 1280x1024x16m +mode: 1024x768x256 +mode: 1024x768x64k +mode: 1024x768x16m +mode: 640x480x16m +mode: 800x600x64k +mode: 800x600x16m +mode: 640x480x256 +mode: 800x600x256 +mode: 640x480x64k +edid: +edidfail diff -Nru /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/ddcprobe-examples/vmware /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/ddcprobe-examples/vmware --- /tmp/ybZl7JDDTe/xdebconfigurator-1.30.edu.etch.1/ddcprobe-examples/vmware 1970-01-01 01:00:00.000000000 +0100 +++ /tmp/etM9sHxjvC/xdebconfigurator-1.34~edu.etch.1/ddcprobe-examples/vmware 2008-06-20 16:45:22.000000000 +0200 @@ -0,0 +1,17 @@ +vbe: VESA 2.0 detected. +oem: V M ware, Inc. VBE support 2.0 +memory: 16384kb +mode: 1600x1200x256 +mode: 1600x1200x32k +mode: 1600x1200x64k +mode: 640x400x256 +mode: 640x480x256 +mode: 800x600x256 +mode: 1024x768x256 +mode: 1280x1024x256 +mode: 320x200x64k +mode: 640x480x64k +mode: 800x600x64k +mode: 1024x768x64k +mode: 1280x1024x64k +noedid -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

