|
|
Log in / Subscribe / Register

Quotes of the week

The good news is that I’ve made enough mistakes to think there aren’t that many left for a project this size.
Casey Schaufler

The guiding principle is: kernel configuration is (still...) our worst barrier of entry for new users/developers, and kernel configuration still sucks very much from a UI point of view.

In fact our kernel configuration UI and workflow is still so bad that it's an effort to stay current even with a standalone and working .config, even for experienced kernel developers...

Ingo Molnar

to post comments

Quotes of the week

Posted Jan 21, 2016 7:21 UTC (Thu) by blackwood (guest, #44174) [Link] (4 responses)

As a fairly experienced kernel maintainer I agree, the Kconfig stuff is beyond graspable. Same really for trying to figure out whether you should sprinkle more depends or more selects into the Kconfig files of your driver/subsystem, but I disgress. Anyway for me this has been solved years ago with a simple cp /boot/config-$distro_kernel_I_just_boooted .config; make localmodconfig. Once that .config goes bad after a few kernel releases, or because I've screwed it up or whatever, I throw it away and start over. And for compile-testing all the combinatorial Kconfig madness I simply rely on 0day.

Quotes of the week

Posted Jan 22, 2016 2:05 UTC (Fri) by robclark (subscriber, #74945) [Link]

heh, you think kconfig is bad, try it on arm

Back in the board-file days, you at least had a reasonable chance that enabling some board would select at least some of the other drivers you needed in order to boot. We really need some way to say "hey, I want to use this dtb, please enable the corresponding drivers" :-(

Quotes of the week

Posted Jan 22, 2016 10:15 UTC (Fri) by error27 (guest, #8346) [Link] (2 responses)

I'm trying to upgrade from v4.0 from Debian testing to v4.4 and that doesn't work. "make localmodconfig" errors out with "snd_hda_controller config not found!!". Make oldconfig complains that SCSI_DH has to be built into the kernel these days, it can't be built as a module. Any small failure means you have to restart from scratch.

Hm... If I do `rm .config ; make nconfig` it uses my oldconfig almost successfully except for SCSI_DH it defaults to off instead of to on. Or if a config has new dependencies then it silently turns it off instead of turning on the dependencies. For some reason it builds CONFIG_THERMAL into the kernel instead of as a module. But it almost works, and it seems like it should actually work ok for me. Woohoo!

Really menus are a rubbish interface. You have to search for the symbol you want, then look for what dependencies you don't have, then search the dependency symbols, then remember four submenu names, then look for the submenus. Some of the menus have over a hundred items in them so it can take a while to find the submenu you want.

Quotes of the week

Posted Jan 22, 2016 18:01 UTC (Fri) by jani (subscriber, #74547) [Link] (1 responses)

Did you try booting the kernel built using the vanilla distro config first, and only then doing the make localmodconfig part? I've found that works more reliably.

Agreed on menuconfig. I just git grep for configs, edit .config by hand, run make olddefconfig, iterate...

Quotes of the week

Posted Jan 25, 2016 9:03 UTC (Mon) by error27 (guest, #8346) [Link]

Yeah, I was booted to the distro kernel and when I tested.

Editing the .config doesn't work because if you add something with dependencies then it *silently* removes all the config entries that you added. I hack a whack at writing something better one day last year.

https://lkml.org/lkml/2015/5/12/287

It let's you search the Kconfig file from the command line, then enable a config and it prompts you for dependencies. But it was a quick hack. I was re-using code the other config tools and they are designed for menu interfaces. I didn't have a way to show the help text, only the one line prompt. To do it properly, you would have to write a ball of code. I think I was on the right track though...

Quotes of the week

Posted Jan 21, 2016 20:31 UTC (Thu) by roblucid (guest, #48964) [Link] (2 responses)

Kconfig couldn't esr knock something up in python to solve this?

Quotes of the week

Posted Jan 22, 2016 10:17 UTC (Fri) by darrylb123 (subscriber, #85709) [Link] (1 responses)

I was waiting for that

Dammit.

Posted Jan 22, 2016 14:53 UTC (Fri) by kena (subscriber, #2735) [Link]

Beat me to it.

Quotes of the week

Posted Jan 23, 2016 7:36 UTC (Sat) by dirtyepic (guest, #30178) [Link] (4 responses)

It also doesn't help that a lot of the option help is written in such a way that the only people it would make any sense to are the ones that already understand what the option does.

Quotes of the week

Posted Jan 25, 2016 22:14 UTC (Mon) by chloe_zen (guest, #8258) [Link] (3 responses)

Well if you don't know what it does, why would you try to change it?

Quotes of the week

Posted Jan 26, 2016 1:24 UTC (Tue) by error27 (guest, #8346) [Link] (1 responses)

Distros have sometimes screwed up the configs because the descriptions were bad. Ooops this was experimental and the performance totally sucks? We thought it was a networking protocol.

There are simple ways that we could make the descriptions better, like we could make a rule that you have to spell out your acronyms. There is probably a way we could highlight new Kconfig entries so they can be reviewed better.

Quotes of the week

Posted Jan 26, 2016 2:42 UTC (Tue) by dirtyepic (guest, #30178) [Link]

What does this do?
What breaks if you don't enable it?
Where's the LWN article?

Quotes of the week

Posted Jan 26, 2016 2:44 UTC (Tue) by raven667 (guest, #5198) [Link]

I shouldn't have to read the source code to figure out what an option actually does if I'm familiar enough with the general area to read and understand a more meaningful description, I'm not sure why you'd argue otherwise. Aka, I would know what it does if it was labeled more descriptively.


Copyright © 2016, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds