[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#521060: xserver-xorg: postinst unsets DRIVERS_LIST, disabling FBDEV



Package: xserver-xorg
Version: 1:7.3+18
Severity: normal

balloon:/home/neil# grep '^0' /proc/fb
0 PXA
balloon:/home/neil# grep '^0 ' /proc/fb | sed 's/[^[:space:]] //'
PXA

The postinst contains:
  if [ -e /proc/fb ]; then
    FB_TYPE="$(grep '^0 ' /proc/fb | sed 's/[^[:space:]] //')"
    # did we actually get back anything?
    if [ -n "$FB_TYPE" ]; then
      if echo "$FB_TYPE" | grep -Eiq '(OFfb|VESA|VGA16)'; then
        USE_FBDEV=false
      else
        # other framebuffers do support UseFBDEV
        USE_FBDEV=true
      fi
    fi
  else
    USE_FBDEV=false
  fi

Copying that snippet into a shell script shows that USE_FBDEV=true on
the target machine. (Balloon3 armel board running Emdebian Grip.)

However, DRIVERS_LIST is being unset and this is then being used to
unset xserver-xorg/config/device/driver:

db_subst xserver-xorg/config/device/driver choices "$DRIVERS_LIST"

(DRIVERS_LIST is only defined on sparc, so this clears the available
choices.)

This results in dpkg-reconfigure putting in the line:
Option          "UseFBDev"              "true"

But omitting the equally important line:
        Driver          "fbdev"

At this point, startx fails:

balloon:/home/neil# startx

X: warning; process set to priority -1 instead of requested priority 0

X.Org X Server 1.4.2
Release Date: 11 June 2008
X Protocol Version 11, Revision 0
Build Operating System: Linux Debian (xorg-server 2:1.4.2-10)
Current Operating System: Linux balloon 2.6.25.2-pxa270 #14 Tue Mar 3
15:41:37 GMT 2009 armv5tel
Build Date: 09 January 2009  03:05:47AM

        Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
Module Loader present
Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/var/log/Xorg.0.log", Time: Thu Jan  1 00:50:29 1970
(==) Using config file: "/etc/X11/xorg.conf"
xf86PciVideoInfo is not set
Could not get primary PCI info

Backtrace:
0: /usr/bin/X11/X(xf86SigHandler+0x70) [0x8abb4]

Fatal server error:
Caught signal 11.  Server aborting


waiting for X server to begin accepting connections
giving up.
xinit:  Connection reset by peer (errno 104):  unable to connect to X
server
xinit:  No such process (errno 3):  Server error.

To try and fix this, I used:

balloon:/home/neil# cat debconf-test 
xserver-xorg xserver-xorg/config/device/use_fbdev boolean true
xserver-xorg xserver-xorg/config/device/driver select fbdev
xserver-xorg xserver-xorg/config/device/driver string fbdev

balloon:/home/neil# debconf-set-selections debconf-test 
balloon:/home/neil# debconf-show xserver-xorg
* xserver-xorg/config/inputdevice/keyboard/model: pc105
* xserver-xorg/config/device/driver: fbdev
  xserver-xorg/config/null_string_error:
* xserver-xorg/config/device/use_fbdev: true
* xserver-xorg/config/inputdevice/keyboard/variant:
  xserver-xorg/config/nonnumeric_string_error:
  xserver-xorg/config/device/bus_id_error:
  xserver-xorg/config/doublequote_in_string_error:
* xserver-xorg/config/inputdevice/keyboard/layout: gb
  xserver-xorg/config/device/bus_id:
* xserver-xorg/config/inputdevice/keyboard/options:
* xserver-xorg/config/inputdevice/keyboard/rules: xorg
* xserver-xorg/autodetect_keyboard: false

balloon:/home/neil# dexconf 

At this point X starts cleanly.

balloon:/home/neil# dpkg-reconfigure -phigh xserver-xorg

and X fails again:

(==) Using config file: "/etc/X11/xorg.conf"
xf86PciVideoInfo is not set
Could not get primary PCI info

Not only that, dpkg-reconfigure has just unset the fbdev driver:

balloon:/home/neil# debconf-show xserver-xorg
* xserver-xorg/config/inputdevice/keyboard/model: pc105
* xserver-xorg/config/device/driver:
  xserver-xorg/config/null_string_error:
* xserver-xorg/config/device/use_fbdev: true
* xserver-xorg/config/inputdevice/keyboard/variant:
  xserver-xorg/config/nonnumeric_string_error:
  xserver-xorg/config/device/bus_id_error:
  xserver-xorg/config/doublequote_in_string_error:
* xserver-xorg/config/inputdevice/keyboard/layout: gb
  xserver-xorg/config/device/bus_id:
* xserver-xorg/config/inputdevice/keyboard/options:
* xserver-xorg/config/inputdevice/keyboard/rules: xorg
* xserver-xorg/autodetect_keyboard: false

Commenting out these lines in the postinst:
db_subst xserver-xorg/config/device/driver choices "$DRIVERS_LIST"
auto_answer db_input low xserver-xorg/config/device/driver
"$DISCOVERED_VIDEO"

allows the setting to be preserved and X works fine.

In debian/xserver-xorg.postinst.in , these lines are numbers 554 and
555.

Are these lines meant to be inside the preceding conditional?

(The usual reportbug data did not relate to the board itself, it related
to the desktop machine that I use to connect to the board. reportbug is
not currently installed on the board itself.)



Reply to: