Stable update proposal: xdebconfigurator 1.34
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 <white@debian.org> Mon, 19 Nov 2007 12:05:26 +1100
+ -- Petter Reinholdtsen <pere@debian.org> 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 <pere@debian.org> 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 <pere@debian.org> 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 <pere@debian.org> 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 <holger@debian.org> 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 <debian-edu@lists.debian.org>
-Uploaders: Petter Reinholdtsen <pere@debian.org>, Andreas Schuldei <andreas@debian.org>, Morten Werner Forsbring <werner@debian.org>, Steffen Joeris <white@debian.org>
+Uploaders: Petter Reinholdtsen <pere@debian.org>, Andreas Schuldei <andreas@debian.org>, Morten Werner Forsbring <werner@debian.org>, Steffen Joeris <white@debian.org>, Holger Levsen <holger@debian.org>
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 dar@swirve.com on
+This package was debianized by Kristoffer Tjærnås dar@swirve.com 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+) ?@.*$/)
{
- # 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: 640x480@60 Hz (VGA)
+timing: 640x480@75 Hz (VESA)
+timing: 800x600@60 Hz (VESA)
+ctiming: 640x480@60
+ctiming: 640x480@85
+ctiming: 800x600@85
+ctiming: 1024x768@85
+ctiming: 1280x1024@60
+dtiming: 1024x768@104
+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: 720x400@70 Hz (VGA 640x400, IBM)
+timing: 640x480@60 Hz (VGA)
+timing: 640x480@67 Hz (Mac II, Apple)
+timing: 640x480@72 Hz (VESA)
+timing: 640x480@75 Hz (VESA)
+timing: 800x600@60 Hz (VESA)
+timing: 800x600@72 Hz (VESA)
+timing: 800x600@75 Hz (VESA)
+timing: 832x624@75 Hz (Mac II)
+timing: 1024x768@87 Hz Interlaced (8514A)
+timing: 1024x768@70 Hz (VESA)
+timing: 1024x768@75 Hz (VESA)
+timing: 1280x1024@75 (VESA)
+ctiming: 1152x864@75
+ctiming: 1280x1024@76
+ctiming: 1280x1024@60
+ctiming: 1280x1024@72
+ctiming: 800x600@75
+ctiming: 1024x768@60
+dtiming: 1280x1024@70
+dtiming: 640x350@70
+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: 720x400@70 Hz (VGA 640x400, IBM)
+timing: 640x480@60 Hz (VGA)
+timing: 640x480@75 Hz (VESA)
+timing: 800x600@60 Hz (VESA)
+timing: 800x600@72 Hz (VESA)
+timing: 800x600@75 Hz (VESA)
+timing: 1024x768@87 Hz Interlaced (8514A)
+timing: 1024x768@75 Hz (VESA)
+ctiming: 1280x1024@60
+ctiming: 1600x1200@60
+ctiming: 1152x864@75
+dtiming: 1600x1200@78
+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
Reply to: