Bug#182704: Debconf configuration sets use_fbdev without asking, making X unstartable
On Fri, Feb 28, 2003 at 11:59:43AM -0500, Branden Robinson <branden@debian.org> was heard to say:
> On Fri, Feb 28, 2003 at 10:28:31AM -0500, Daniel Burrows wrote:
> > On Fri, Feb 28, 2003 at 01:40:09AM -0500, Branden Robinson <branden@debian.org> was heard to say:
> > > Well, let's have a look at the code, shall we? Shell scripts are not
> > > rocket science.
> > >
> > > # use fbcon kernel functions?
> > > if [ -e /proc/fb ]; then
> > > if [ -n "$(cat /proc/fb)" ]; then
> > > auto_answer db_input high xserver-xfree86/config/device/use_fbdev "true"
> > > fi
> > > else
> > > db_get xserver-xfree86/config/device/use_fbdev || debug_report_status "db_get xserver-xfree86/config/device/use_fbdev" "$?"
> > > if [ "$RET" = "true" ]; then
> > > debug_echo "xserver-xfree86/config/device/use_fbdev is \"true\" but /proc/fb does not exist; setting template to \"false\""
> > > db_set xserver-xfree86/config/device/use_fbdev false
> > > fi
> > > fi
> > >
> > > Before you jump all over that "auto_answer" thing, hold your horses:
> >
> > [snip]
> >
> > It doesn't matter -- what I was trying to say (not very clearly)
> > earlier is that /proc/fb exists but is empty; thus, all the questions
> > above are skipped. "auto_answer" never runs.
>
> You're confusing me. "All the questions above"? There is only one:
>
> xserver-xfree86/config/device/use_fbdev
Oops, I misread the db_get/db_set as questions. Anyway, all the code
above is basically a no-op in the situation I encountered.
> > I think I may have set the option at some point in the past, and now
> > the script won't let me change it.
> >
> > *pokes around*
> >
> > aha. If I manually load the framebuffer driver, then (after I get
> > control over my console -- seems loading the driver while X is running
> > is not such a hot idea) X works with "usefbdev", and the config script
> > gives me the option to disable use of the framebuffer. Oh, and /proc/fb
> > contains actual data.
> >
> > Is there a good reason to leave the setting alone if /proc/fb is
> > empty? AIUI this corresponds to "no available framebuffer devices", and
> > so silently preserving a pre-existing "true" value doesn't make sense.
> > (at the least, asking seems like a good idea)
>
> Yes, it would appear that I shouldn't have nested those first two ifs,
> but rather anded them together, e.g.:
>
> > > if [ -e /proc/fb ]; then
> > > if [ -n "$(cat /proc/fb)" ]; then
>
> should be:
>
> if [ -e /proc/fb -a -n "$(cat /proc/fb)" ]; then
>
> ...that way the "else" catches *either* of those tests failing, not just
> the first.
>
> If you could test that change, I would appreciate it. Turn that
> use_fbdev option back on, unload the driver, and dpkg-reconfigure with
> the above change applied to /var/lib/dpkg/info/xserver-xfree86.config.
>
> What should happen is that use_fbdev will be forced off, *and* you won't
> be asked about it.
Yep, it works. :)
Daniel
--
/-------------------- Daniel Burrows <dburrows@debian.org> -------------------\
| Hi, I'm a .signature virus! |
| Copy me into your .signature to help me spread! |
\-Evil Overlord, Inc: planning your future today. http://www.eviloverlord.com-/
Reply to: