All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC] Simplifying kernel configuration for distro issues
@ 2012-07-13 20:37 Linus Torvalds
  2012-07-13 20:54 ` Myklebust, Trond
                   ` (8 more replies)
  0 siblings, 9 replies; 86+ messages in thread
From: Linus Torvalds @ 2012-07-13 20:37 UTC (permalink / raw)
  To: Dave Jones, Greg Kroah-Hartman, Ubuntu Kernel Team,
	Debian Kernel Team, OpenSUSE Kernel Team
  Cc: Linux Kernel Mailing List

So this has long been one of my pet configuration peeves: as a user I
am perfectly happy answering the questions about what kinds of
hardware I want the kernel to support (I kind of know that), but many
of the "support infrastructure" questions are very opaque, and I have
no idea which of the them any particular distribution actually depends
on.

And it tends to change over time. For example, F14 (iirc) started
using TMPFS and TMPFS_POSIX_ACL/XATTR for /dev. And starting in F16,
the initrd setup requires DEVTMPFS and DEVTMPFS_MOUNT. There's been
several times when I started with my old minimal config, and the
resulting kernel would boot, but something wouldn't quite work right,
and it can be very subtle indeed.

Similarly, the distro ends up having very particular requirements for
exactly *which* security models it uses and needs, and they tend to
change over time. And now with systemd, CGROUPS suddenly aren't just
esoteric things that no normal person would want to use, but are used
for basic infrastructure. And I remember being surprised by OpenSUSE
suddenly needing the RAW table support for netfilter, because it had a
NOTRACK rule or something.

The point I'm slowly getting to is that I would actually love to have
*distro* Kconfig-files, where the distribution would be able to say
"These are the minimums I *require* to work". So we'd have a "Distro"
submenu, where you could pick the distro(s) you use, and then pick
which release, and we'd have something like

 - distro/Kconfig:

    config DISTRO_REQUIREMENTS
        bool "Pick minimal distribution requirements"

    choice DISTRO
        prompt "Distribution"
        depends on DISTRO_REQUIREMENTS

    config FEDORA
    config OPENSUSE
    config UBUNTU
    ...

    endchoice

and then depending on the DISTRO config, we'd include one of the
distro-specific ones with lists of supported distro versions and then
the random config settings for that version:

 - distro/Kconfig.suse:

    config OPENSUSE_121
        select OPENSUSE_11
        select IP_NF_RAW  # ..

 - distro/Kconfig.Fedora:

    config FEDORA_16
        select FEDORA_15
        select DEVTMPFS               # F16 initrd needs this
        select DEVTMPFS_MOUNT  # .. and expects the kernel to mount
DEVTMPFS automatically
        ...

    config FEDORA_17
        select FEDORA_16
        select CGROUP_xyzzy
        ...

and the point would be that it would make it much easier for a normal
user (and quite frankly, I want to put myself in that group too) to
make a kernel config that "just works".

Sure, you can copy the config file that came with the distro, but it
has tons of stuff that really isn't required. Not just in hardware,
but all the debug choices etc that are really a user choice. And it's
really hard to figure out - even for somebody like me - what a minimal
usable kernel is.

And yes, I know about "make localmodconfig". That's missing the point
for the same reason the distro config is missing the point.

Comments? It doesn't have to start out perfect, but I think it would
*really* help make the kernel configuration much easier for people.

In addition to the "minimal distro settings", we might also have a few
"common platform" settings, so that you could basically do a "hey, I
have a modern PC laptop, make it pick the obvious stuff that a normal
person needs, like USB storage, FAT/VFAT support, the core power
management etc". The silly stuff that you need, and that
"localyesconfig" actually misses because if you haven't inserted a USB
thumb drive, you won't necessarily have the FAT module loaded, but we
all know you do want it in real life. But that's really independent
issue, so let's keep it to just distro core things at first, ok?

Would something like this make sense to people? I really think that
"How do I generate a kernel config file" is one of those things that
keeps normal people from compiling their own kernel. And we *want*
people to compile their own kernel so that they can help with things
like bisecting etc. The more, the merrier.

                    Linus

^ permalink raw reply	[flat|nested] 86+ messages in thread
* Re: [RFC] Simplifying kernel configuration for distro issues
@ 2012-07-18  9:55 Tom Gundersen
  2012-07-22 20:10 ` David Greaves
  0 siblings, 1 reply; 86+ messages in thread
From: Tom Gundersen @ 2012-07-18  9:55 UTC (permalink / raw)
  To: Linus Torvalds, LKML

Linus,

[sorry for the messed up threading, I could not figure out how to make
gmail use in-relp-to]

> The point I'm slowly getting to is that I would actually love to have
> *distro* Kconfig-files, where the distribution would be able to say
> "These are the minimums I *require* to work". So we'd have a "Distro"
> submenu, where you could pick the distro(s) you use, and then pick
> which release, and we'd have something like

As someone working on one of the smaller distributions (Arch), I think
it would be even better if rather than having "distro" entries, we'd
have "application" entries. I.e., entries for applications that have
specific kernel requirements/suggestions (udev, systemd, upstart,
bootchart, pulseaudio, networkmanager, etc). If applications have soft
requirements, they could have sub-entries explaining the benefit of
enabling each.

In most cases, what a distro needs depends just on what applications
they ship, so you'd get the distro entries almost for free (fedora
selects systemd, udev, ...).

As was pointed out by someone else in this thread, it might easily
happen that applications change their kernel requirements without the
packagers noticing, or at least without the kernel packager being
told. If it had been possible for applications to ship drop-in Kconfig
files that they would install to a certain location, and the kernel
would simply pick them up, that would put the responsibility of
maintaining these things in the hands of the people who know the best
(the application developers).

Cheers,

Tom

^ permalink raw reply	[flat|nested] 86+ messages in thread

end of thread, other threads:[~2012-07-22 20:29 UTC | newest]

Thread overview: 86+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-13 20:37 [RFC] Simplifying kernel configuration for distro issues Linus Torvalds
2012-07-13 20:54 ` Myklebust, Trond
2012-07-13 21:41   ` [opensuse-kernel] " richard -rw- weinberger
2012-07-14 10:37     ` Borislav Petkov
2012-07-14 12:12       ` Pekka Enberg
2012-07-14 12:43         ` Cyrill Gorcunov
2012-07-14 17:48           ` Borislav Petkov
2012-07-14 18:51             ` Cyrill Gorcunov
2012-07-14 19:51               ` david
2012-07-19 14:42             ` Steven Rostedt
2012-07-19 16:48               ` Borislav Petkov
2012-07-19 17:02                 ` Steven Rostedt
2012-07-19 17:34                   ` Borislav Petkov
2012-07-19 17:57                     ` Steven Rostedt
2012-07-19 18:09                       ` Borislav Petkov
2012-07-19 17:06                 ` Linus Torvalds
2012-07-19 17:53                   ` Borislav Petkov
2012-07-19 18:42                     ` Konrad Rzeszutek Wilk
2012-07-15 10:14         ` Borislav Petkov
2012-07-15 10:17           ` Pekka Enberg
2012-07-15 21:18             ` Borislav Petkov
2012-07-15 21:48               ` Cyrill Gorcunov
2012-07-15 22:09                 ` david
2012-07-15 22:22                   ` Cyrill Gorcunov
2012-07-15 23:06                     ` david
2012-07-16  8:24                   ` Borislav Petkov
2012-07-16 16:43                     ` david
2012-07-16 16:50                       ` Linus Torvalds
2012-07-16 19:26                         ` david
2012-07-16 20:56                           ` Linus Torvalds
2012-07-16 22:21                             ` david
2012-07-18  7:04                               ` Ingo Molnar
2012-07-18  8:42                                 ` david
2012-07-18  9:13                                   ` Ingo Molnar
2012-07-17  8:03                             ` Geert Uytterhoeven
2012-07-19 16:01                               ` Michal Marek
2012-07-16 17:01                     ` Alan Cox
2012-07-16 17:05                       ` david
2012-07-13 21:02 ` Dave Jones
2012-07-13 21:17   ` Linus Torvalds
2012-07-13 22:26     ` Josh Boyer
2012-07-19 15:26     ` Steven Rostedt
2012-07-19 15:43       ` Linus Torvalds
2012-07-19 16:12         ` Steven Rostedt
2012-07-19 15:45       ` Josh Boyer
2012-07-19 16:08         ` Steven Rostedt
2012-07-19 17:19           ` Josh Boyer
2012-07-19 17:30             ` Alan Cox
2012-07-19 17:38               ` Josh Boyer
2012-07-19 21:13               ` Ben Hutchings
2012-07-20  2:44                 ` david
2012-07-19 17:33             ` Steven Rostedt
2012-07-19 17:41               ` Alan Cox
2012-07-19 17:56               ` Josh Boyer
2012-07-19 18:13                 ` Steven Rostedt
2012-07-19 18:36                   ` Josh Boyer
2012-07-19 21:04                     ` david
2012-07-19 22:35                       ` Josh Boyer
2012-07-19 22:49                         ` Steven Rostedt
2012-07-21 20:47                 ` valdis.kletnieks
2012-07-19 18:20             ` Paul Bolle
2012-07-19 18:22               ` Josh Boyer
2012-07-19 18:49                 ` Geert Uytterhoeven
2012-07-19 18:55                   ` Paul Bolle
2012-07-19 21:30                 ` Geert Uytterhoeven
2012-07-13 21:29   ` Geert Uytterhoeven
2012-07-13 21:50   ` Paul Bolle
2012-07-13 21:55     ` Dave Jones
2012-07-13 22:11       ` Tony Luck
2012-07-13 22:20       ` Paul Bolle
2012-07-13 23:07       ` Frank Rowand
2012-07-13 21:06 ` Khalid Aziz
2012-07-13 21:17 ` Casey Schaufler
2012-07-13 21:20   ` Linus Torvalds
2012-07-13 22:13     ` david
2012-07-13 21:59 ` Hans de Bruin
2012-07-13 22:33 ` Jesper Juhl
2012-07-13 22:46   ` david
2012-07-14  9:44   ` Olivier Galibert
2012-07-14  4:18 ` Ben Hutchings
2012-07-14 12:35   ` Josh Boyer
2012-07-19  1:48 ` Steven Yong
2012-07-20  9:47 ` Jiri Kosina
2012-07-20 10:26   ` Sam Ravnborg
2012-07-18  9:55 Tom Gundersen
2012-07-22 20:10 ` David Greaves

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.