Re: [ANNOUNCE] GSoC project: Improving kconfig using a SAT solver

From: Pavel Machek
Date: Thu Jun 10 2010 - 09:55:38 EST


> >>Even if the problem is different from zypper's, it is also here
> >>possible to get an unsatisfiable instance. You are right that, yes,
> >>the kconfig files on their own should always be satisfiable. But
> >>that's before the user has made any choices at all. An example of an
> >>unsatisfiable instance would be one where the user demands that 1.
> >>some USB driver is enabled, while 2. USB support in general is
> >>disabled.
> >
> >Actually, these are two separate problems. The first is basic
> >consistency within the Kconfig subsytstem (something that select
> >currently damages for us). The second is what to present to the user,
> >which is where the inception of the select problem came from. A user
> >doesn't really want to know that USB device X depends on usb storage,
> >SCSI and a raft of other things ... they just want it to configure a
> >kernel that supports their device. In particular, we don't want to
> >present every possible option to users and then try to work out a
> >solution, we really need guided configuration (which, in some measure,
> >is what we have today: if you don't select general USB, you won't see
> >any USB drivers. Or more importantly, if you select an Adaptec SCSI
> >card, we just enable whichever transport library it needs).
> There are two modes people can be in when configuring a kernel.
> 1. I want to configure a kernel to support my hardware, enable
> anything else needed to make it work.
> 2. I really care about having a small kernel, don't enable anything
> I have disabled (but help me figure out why something I want isn't
> available)

There are more...

...part of the problem is that kconfig is both user-dependend (what
filesystems do I use) and machine dependend (what does hw need).

Current defconfig system is unfortunately not quite there :-(.

What would be nice for machines like Sharp Zaurus (spitz) would be
defconfig which answered =Y for hardware spitz definitely has (sound),
=N for hardware that can't be connected (anything pci), and something
different (=M?) for hardware that can be connected to it
(pcmcia)... leaving 'user' options like filesystems configured ... up
to the user.

(cesky, pictures)
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at