Randy Dunlap | 2af238e | 2008-02-29 14:21:53 -0800 | [diff] [blame] | 1 | This file contains some assistance for using "make *config". |
| 2 | |
| 3 | Use "make help" to list all of the possible configuration targets. |
| 4 | |
| 5 | The xconfig ('qconf') and menuconfig ('mconf') programs also |
| 6 | have embedded help text. Be sure to check it for navigation, |
| 7 | search, and other general help text. |
| 8 | |
| 9 | ====================================================================== |
| 10 | General |
| 11 | -------------------------------------------------- |
| 12 | |
| 13 | New kernel releases often introduce new config symbols. Often more |
| 14 | important, new kernel releases may rename config symbols. When |
| 15 | this happens, using a previously working .config file and running |
| 16 | "make oldconfig" won't necessarily produce a working new kernel |
| 17 | for you, so you may find that you need to see what NEW kernel |
| 18 | symbols have been introduced. |
| 19 | |
| 20 | To see a list of new config symbols when using "make oldconfig", use |
| 21 | |
| 22 | cp user/some/old.config .config |
| 23 | yes "" | make oldconfig >conf.new |
| 24 | |
| 25 | and the config program will list as (NEW) any new symbols that have |
| 26 | unknown values. Of course, the .config file is also updated with |
| 27 | new (default) values, so you can use: |
| 28 | |
| 29 | grep "(NEW)" conf.new |
| 30 | |
| 31 | to see the new config symbols or you can 'diff' the previous and |
| 32 | new .config files to see the differences: |
| 33 | |
| 34 | diff .config.old .config | less |
| 35 | |
| 36 | (Yes, we need something better here.) |
| 37 | |
| 38 | |
| 39 | ====================================================================== |
| 40 | menuconfig |
| 41 | -------------------------------------------------- |
| 42 | |
| 43 | SEARCHING for CONFIG symbols |
| 44 | |
| 45 | Searching in menuconfig: |
| 46 | |
| 47 | The Search function searches for kernel configuration symbol |
| 48 | names, so you have to know something close to what you are |
| 49 | looking for. |
| 50 | |
| 51 | Example: |
| 52 | /hotplug |
| 53 | This lists all config symbols that contain "hotplug", |
| 54 | e.g., HOTPLUG, HOTPLUG_CPU, MEMORY_HOTPLUG. |
| 55 | |
| 56 | For search help, enter / followed TAB-TAB-TAB (to highlight |
| 57 | <Help>) and Enter. This will tell you that you can also use |
| 58 | regular expressions (regexes) in the search string, so if you |
| 59 | are not interested in MEMORY_HOTPLUG, you could try |
| 60 | |
| 61 | /^hotplug |
| 62 | |
| 63 | |
| 64 | ______________________________________________________________________ |
| 65 | Color Themes for 'menuconfig' |
| 66 | |
| 67 | It is possible to select different color themes using the variable |
| 68 | MENUCONFIG_COLOR. To select a theme use: |
| 69 | |
| 70 | make MENUCONFIG_COLOR=<theme> menuconfig |
| 71 | |
| 72 | Available themes are: |
| 73 | mono => selects colors suitable for monochrome displays |
| 74 | blackbg => selects a color scheme with black background |
| 75 | classic => theme with blue background. The classic look |
| 76 | bluetitle => a LCD friendly version of classic. (default) |
| 77 | |
| 78 | ______________________________________________________________________ |
| 79 | Environment variables in 'menuconfig' |
| 80 | |
| 81 | KCONFIG_ALLCONFIG |
| 82 | -------------------------------------------------- |
| 83 | (partially based on lkml email from/by Rob Landley, re: miniconfig) |
| 84 | -------------------------------------------------- |
| 85 | The allyesconfig/allmodconfig/allnoconfig/randconfig variants can |
| 86 | also use the environment variable KCONFIG_ALLCONFIG as a flag or a |
| 87 | filename that contains config symbols that the user requires to be |
| 88 | set to a specific value. If KCONFIG_ALLCONFIG is used without a |
| 89 | filename, "make *config" checks for a file named |
| 90 | "all{yes/mod/no/random}.config" (corresponding to the *config command |
| 91 | that was used) for symbol values that are to be forced. If this file |
| 92 | is not found, it checks for a file named "all.config" to contain forced |
| 93 | values. |
| 94 | |
| 95 | This enables you to create "miniature" config (miniconfig) or custom |
| 96 | config files containing just the config symbols that you are interested |
| 97 | in. Then the kernel config system generates the full .config file, |
| 98 | including dependencies of your miniconfig file, based on the miniconfig |
| 99 | file. |
| 100 | |
| 101 | This 'KCONFIG_ALLCONFIG' file is a config file which contains |
| 102 | (usually a subset of all) preset config symbols. These variable |
| 103 | settings are still subject to normal dependency checks. |
| 104 | |
| 105 | Examples: |
| 106 | KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig |
| 107 | or |
| 108 | KCONFIG_ALLCONFIG=mini.config make allnoconfig |
| 109 | or |
| 110 | make KCONFIG_ALLCONFIG=mini.config allnoconfig |
| 111 | |
| 112 | These examples will disable most options (allnoconfig) but enable or |
| 113 | disable the options that are explicitly listed in the specified |
| 114 | mini-config files. |
| 115 | |
| 116 | KCONFIG_NOSILENTUPDATE |
| 117 | -------------------------------------------------- |
| 118 | If this variable has a non-blank value, it prevents silent kernel |
| 119 | config udpates (requires explicit updates). |
| 120 | |
| 121 | KCONFIG_CONFIG |
| 122 | -------------------------------------------------- |
| 123 | This environment variable can be used to specify a default kernel config |
| 124 | file name to override the default name of ".config". |
| 125 | |
| 126 | KCONFIG_OVERWRITECONFIG |
| 127 | -------------------------------------------------- |
| 128 | If you set KCONFIG_OVERWRITECONFIG in the environment, Kconfig will not |
| 129 | break symlinks when .config is a symlink to somewhere else. |
| 130 | |
| 131 | KCONFIG_NOTIMESTAMP |
| 132 | -------------------------------------------------- |
| 133 | If this environment variable exists and is non-null, the timestamp line |
| 134 | in generated .config files is omitted. |
| 135 | |
| 136 | KCONFIG_AUTOCONFIG |
| 137 | -------------------------------------------------- |
| 138 | This environment variable can be set to specify the path & name of the |
| 139 | "auto.conf" file. Its default value is "include/config/auto.conf". |
| 140 | |
| 141 | KCONFIG_AUTOHEADER |
| 142 | -------------------------------------------------- |
| 143 | This environment variable can be set to specify the path & name of the |
| 144 | "autoconf.h" (header) file. Its default value is "include/linux/autoconf.h". |
| 145 | |
| 146 | ______________________________________________________________________ |
| 147 | menuconfig User Interface Options |
| 148 | ---------------------------------------------------------------------- |
| 149 | MENUCONFIG_MODE |
| 150 | -------------------------------------------------- |
| 151 | This mode shows all sub-menus in one large tree. |
| 152 | |
| 153 | Example: |
| 154 | MENUCONFIG_MODE=single_menu make menuconfig |
| 155 | |
| 156 | ====================================================================== |
| 157 | xconfig |
| 158 | -------------------------------------------------- |
| 159 | |
| 160 | Searching in xconfig: |
| 161 | |
| 162 | The Search function searches for kernel configuration symbol |
| 163 | names, so you have to know something close to what you are |
| 164 | looking for. |
| 165 | |
| 166 | Example: |
| 167 | Ctrl-F hotplug |
| 168 | or |
| 169 | Menu: File, Search, hotplug |
| 170 | |
| 171 | lists all config symbol entries that contain "hotplug" in |
| 172 | the symbol name. In this Search dialog, you may change the |
| 173 | config setting for any of the entries that are not grayed out. |
| 174 | You can also enter a different search string without having |
| 175 | to return to the main menu. |
| 176 | |
| 177 | |
| 178 | ====================================================================== |
| 179 | gconfig |
| 180 | -------------------------------------------------- |
| 181 | |
| 182 | Searching in gconfig: |
| 183 | |
| 184 | None (gconfig isn't maintained as well as xconfig or menuconfig); |
| 185 | however, gconfig does have a few more viewing choices than |
| 186 | xconfig does. |
| 187 | |
| 188 | ### |