lkml.org 
[lkml]   [2008]   [Sep]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: diet-kconfig: a script to trim unneeded kconfigs
Takashi Iwai wrote:
> Hi,
>
> a topic that just came up in kernel summit is a script to remove
> unneeded kernel configs automatically to reduce the compile time.
> Incidentally, I already wrote such a script during the last SUSE hack
> week a couple of weeks ago, so I'd like to share here, hopefully to
> give an idea for further improvements.
>
> The script checks the currently loaded modules and trims other
> CONFIG_XXX=m simply, and tries make oldconfig, and writes out the
> resultant .config in the current directory after some checks.
> You can specify the config file via option, as default, it reads from
> /proc/config.gz.
>
> The script is VERY hackish. I should have begun with perl or whatever
> better script language, but I chose bash and co. So, don't expect
> much code quality. I'm no script guy after all :)

Check my AutoKernConf (http://cateee.net/autokernconf/), it has
huge (and automatically generated) database about drivers, modules,
and configuration, and it gives a minimal kernel configuration for the
most of the hardware hardware.

It needs a real maintainer and tools for non-hardware drivers
(fs, net, ...) and special hardware (CPU capabilities,
architecture specific drivers, etc).


>
>
> Takashi
> ---
>
> #!/bin/sh
>
> # this magic makes grep and co a lot faster
> export LANG=C
>
> kroot=
> subarch=$(uname -i)

-i is wrong (gives "unkwnown" on Debian).
Check the main Makefile how to extract the architecture from uname.

> c)
> oldconfig="$OPTARG"
> if [ ! -f "$oldconfig" ]; then
> echo "Cannot find old config $oldconfig"
> exit 1
> fi

Check also the config-* in /boot

> find_kconfig () {
> module=$1
> modregex=$(echo $1 | sed -e's/_/[_-]/g')
>
> grep -E '^[[:space:]]*obj-\$\([A-Za-z0-9_]*\)[[:space:]]*[+:]=.*[[:space:]]'"$modregex"'\.o' $tmpd/makefiles | \
> sed -e's/^.*://g' -e's/^[[:space:]]*obj-\$(\(.*\)).*$/\1/g'
> }

My python code works better (handle "alias", etc.).
Anyway I should send some cleanup patches to correct and
improve some ugly kernel Makefile.


ciao
cate


\
 
 \ /
  Last update: 2008-09-18 16:11    [W:0.103 / U:0.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site