Re: [PATCH] kbuild: make *config usage docs

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Randy.

On Tue, Feb 12, 2008 at 03:52:28PM -0800, Randy Dunlap wrote:
> Hi,
> 
> I'm trying to catch up on some old/dropped patches.
> Here's from from Oct./2006:
>   http://marc.info/?l=linux-kernel&m=116114965011388&w=2
> 
> Any interest in this or should I just nuke it?
Please - do not nuke it...
We need documentation for both kconfig and kbuild.

General comments...
I would have preferred an asciidoc compatible format but no big deal.

Should we combine kconfig and kbuild stuff in a single file?
People often confuse the two things - and they are also closely
interrelated so documenting then in the same file makes sense.


> Mostly contains user interface and search topics, along with
> mini.config/custom.config usage.
> 
> Signed-off-by: Randy Dunlap <randy.dunlap@xxxxxxxxxx>
> ---
>  Documentation/kbuild/00-INDEX         |    2 
>  Documentation/kbuild/make-configs.txt |  167 ++++++++++++++++++++++++++++++++++
>  README                                |   17 +--
>  3 files changed, 175 insertions(+), 11 deletions(-)
> 
> --- linux-2619-rc2-ppc.orig/Documentation/kbuild/00-INDEX
> +++ linux-2619-rc2-ppc/Documentation/kbuild/00-INDEX
> @@ -4,5 +4,7 @@ kconfig-language.txt
>  	- specification of Config Language, the language in Kconfig files
>  makefiles.txt
>  	- developer information for linux kernel makefiles
> +make-configs.txt
> +	- usage help for make *config
>  modules.txt
>  	- how to build modules and to install them
> --- /dev/null
> +++ linux-2619-rc2-ppc/Documentation/kbuild/make-configs.txt
> @@ -0,0 +1,167 @@
> +This file contains some assistance for using "make *config".
> +
> +Use "make help" to list all of the possible configuration targets.
> +
> +The xconfig ('qconf') and menuconfig ('mconf') programs also
> +have embedded help text.  Be sure to check it for navigation,
> +search, and other general help text.
> +
> +======================================================================
> +General
> +--------------------------------------------------
> +
> +New kernel releases often introduce new config symbols.  Often more
> +important, new kernel releases may rename config symbols.  When
> +this happens, using a previously working .config file and running
> +"make oldconfig" won't necessarily produce a working new kernel
> +for you, so you may find that you need to see what NEW kernel
> +symbols have been introduced.
> +
> +To see a list of new config symbols when using "make oldconfig", use
> +
> +	cp user/some/old.config .config
> +	yes "" | make oldconfig >conf.new
> +
> +and the config program will list as (NEW) any new symbols that have
> +unknown values.  Of course, the .config file is also updated with
> +new (default) values, so you can use:
> +
> +	grep "(NEW)" conf.new
> +
> +to see the new config symbols or you can 'diff' the previous and
> +new .config files to see the differences:
> +
> +	diff .config.old .config | less
> +
> +(Yes, we need something better here.)
Thats for sure!

> +
> +
> +======================================================================
> +menuconfig
> +--------------------------------------------------
> +
> +SEARCHING for CONFIG symbols
> +
> +Searching in menuconfig:
> +
> +	The Search function searches for kernel configuration symbol
> +	names, so you have to know something close to what you are
> +	looking for.
> +
> +	Example:
> +		/hotplug
> +		This lists all config symbols that contain "hotplug",
> +		e.g., HOTPLUG, HOTPLUG_CPU, MEMORY_HOTPLUG.
> +
> +	For search help, enter / followed TAB-TAB-TAB (to highlight
> +	<Help>) and Enter.  This will tell you that you can also use
> +	regular expressions (regexes) in the search string, so if you
> +	are not interested in MEMORY_HOTPLUG, you could try
> +
> +		/^hotplug
> +
> +
It is not entirely obvious that '/' brings up a dialog.

> +______________________________________________________________________
> +Color Themes for 'menuconfig'
> +
> +It is possible to select different color themes using the variable
> +MENUCONFIG_COLOR.  To select a theme use:
> +
> +	make MENUCONFIG_COLOR=<theme> menuconfig
> +
> +Available themes are:
> +  mono       => selects colors suitable for monochrome displays
> +  blackbg    => selects a color scheme with black background
> +  classic    => theme with blue background. The classic look
> +  bluetitle  => a LCD friendly version of classic. (default)
> +
> +______________________________________________________________________
> +Environment variables in 'menuconfig'
> +
> +KCONFIG_ALLCONFIG
> +--------------------------------------------------
> +(partially based on lkml email from/by Rob Landley, re: miniconfig)
> +--------------------------------------------------
> +The allyesconfig/allmodconfig/allnoconfig/randconfig variants can
> +also use the environment variable KCONFIG_ALLCONFIG as a flag or a
> +filename that contains config symbols that the user requires to be
> +set to a specific value.  If KCONFIG_ALLCONFIG is used without a
> +filename, "make *config" checks for a file named
> +"all{yes/mod/no/random}.config" (corresponding to the *config command
> +that was used) for symbol values that are to be forced.  If this file
> +is not found, it checks for a file named "all.config" to contain forced
> +values.
> +
> +This enables you to create "miniature" config (miniconfig) or custom
> +config files containing just the config symbols that you are interested
> +in.  Then the kernel config system generates the full .config file,
> +including dependencies of your miniconfig file, based on the miniconfig
> +file.
> +
> +This 'KCONFIG_ALLCONFIG' file is a config file which contains
> +(usually a subset of all) preset config symbols.  These variable
> +settings are still subject to normal dependency checks.
> +
> +Examples:
> +	KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig
> +or
> +	KCONFIG_ALLCONFIG=mini.config make allnoconfig
> +or
> +	make KCONFIG_ALLCONFIG=mini.config allnoconfig
> +
> +These examples will disable most options (allnoconfig) but enable or
> +disable the options that are explicitly listed in the specified
> +mini-config files.
> +
> +KCONFIG_NOSILENTUPDATE
> +--------------------------------------------------
> +If this variable has a non-blank value, it prevents silent kernel
> +config udpates (requires explicit updates).
> +
Can I ask you to document the others:
conf.c:         name = getenv("KCONFIG_ALLCONFIG");
conf.c:         name = getenv("KCONFIG_NOSILENTUPDATE");
confdata.c:     char *name = getenv("KCONFIG_CONFIG");
confdata.c:     env = getenv("KCONFIG_OVERWRITECONFIG");
confdata.c:     env = getenv("KCONFIG_NOTIMESTAMP");
confdata.c:     name = getenv("KCONFIG_AUTOCONFIG");
confdata.c:     name = getenv("KCONFIG_AUTOHEADER");
confdata.c:     name = getenv("KCONFIG_AUTOCONFIG");

Their usage should be more or less self explanatory,
otherwise look at the commit when they were added.

> +______________________________________________________________________
> +menuconfig User Interface Options
> +----------------------------------------------------------------------
> +LINES and COLUMNS
> +--------------------------------------------------
> +See the menuconfig embedded help text.

We do not check these anymore. I do not see the need to reference these here.

> +
> +MENUCONFIG_MODE
> +--------------------------------------------------
> +This mode shows all sub-menus in one large tree.
> +
> +Example:
> +	MENUCONFIG_MODE=single_menu make menuconfig
> +
> +======================================================================
> +xconfig
> +--------------------------------------------------
> +
> +Searching in xconfig:
> +
> +	The Search function searches for kernel configuration symbol
> +	names, so you have to know something close to what you are
> +	looking for.
> +
> +	Example:
> +		Ctrl-F hotplug
> +	or
> +		Menu: File, Search, hotplug
> +
> +	lists all config symbol entries that contain "hotplug" in
> +	the symbol name.  In this Search dialog, you may change the
> +	config setting for any of the entries that are not grayed out.
> +	You can also enter a different search string without having
> +	to return to the main menu.
> +
> +
> +======================================================================
> +gconfig
> +--------------------------------------------------
> +
> +Searching in gconfig:
> +
> +	none (gconfig isn't maintained as well as xconfig or menuconfig);
> +	however, gconfig does have a few more viewing choices than
> +	xconfig does.
> +
> +###
> --- linux-2619-rc2-ppc.orig/README
> +++ linux-2619-rc2-ppc/README
> @@ -50,9 +50,9 @@ DOCUMENTATION:
>  
>   - The Documentation/DocBook/ subdirectory contains several guides for
>     kernel developers and users.  These guides can be rendered in a
> -   number of formats:  PostScript (.ps), PDF, and HTML, among others.
> -   After installation, "make psdocs", "make pdfdocs", or "make htmldocs"
> -   will render the documentation in the requested format.
> +   number of formats:  PostScript (.ps), PDF, HTML, & man-pages, among others.
> +   After installation, "make psdocs", "make pdfdocs", "make htmldocs",
> +   or "make mandocs" will render the documentation in the requested format.

Unrelated change...


	Sam
-
To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux