Перейти к основному содержимому

Конфигурационные цели и редакторы

к сведению

Этот файл содержит инструкции по использованию make *config.

Используйте make help для получения списка всех возможных конфигурационных целей.

Программы xconfig (‘qconf’), menuconfig (‘mconf’) и nconfig (‘nconf’) также имеют встроенный вспомогательный текст. Обязательно проверьте его для навигации, поиска и другой общей вспомогательной информации.

В программе gconfig ('gconf') вспомогательный текст ограничен.

Основное

Новые релизы ядра часто вводят новые символы конфигурации. Часто более важно то, что новые релизы ядра могут переименовывать уже существующие символы. Когда это происходит, использование ранее работающего файла .config и запуск команды "make oldconfig" не обязательно создаст вам новое работающее ядро, поэтому может потребоваться узнать, какие НОВЫЕ символы ядра были введены.

Для того чтобы получить список новых символов воспользуйтесь:

cp user/some/old.config .config
make listnewconfig

и программа конфигурации выведет все новые символы построчно.

Или же вы можете воспользоваться методом перебора:

make oldconfig
scripts/diffconfig .config.old .config | less

Переменные окружения

Переменные окружения для *config:

  • KCONFIG_CONFIG

    Эта переменная окружения может быть использована для указания имени файла конфигурации ядра по умолчанию для замены стандартного имени ".config".

  • KCONFIG_DEFCONFIG_LIST

    Эта переменная задает список файлов конфигурации, которые могут быть использованы в качестве базовой конфигурации, в случае если файл .config ещё не создан. Элементы в списке разделяются между собой пробелами, и используется первый из них, который существует.

  • KCONFIG_OVERWRITECONFIG

    Если вы установите KCONFIG_OVERWRITECONFIG в окружении, то Kconfig не разорвет символические ссылки (symlinks), когда .config является символической ссылкой куда-то ещё.

  • KCONFIG_WARN_UNKNOWN_SYMBOLS

    Эта переменная окружения заставляет Kconfig предупреждать о всех нераспознанных символах в пользовательском вводе конфигурации.

  • KCONFIG_WERROR

    Если установлена – Kconfig воспринимает предупреждения, как ошибки.

  • CONFIG_

    Если вы установите переменную CONFIG_ в окружении, Kconfig будет добавлять значение этой переменной в начало названий всех символов при сохранении конфигурации, вместо использования значения по умолчанию, которым является CONFIG_.

Переменные окружения для {allyes/allmod/allno/rand}config:

  • KCONFIG_ALLCONFIG

    Варианты allyesconfig/allmodconfig/allnoconfig/randconfig также могут использовать переменную окружения KCONFIG_ALLCONFIG как флаг или имя файла, который содержит конфигурационные символы, которым пользователь хочет установить определённые значения. Если KCONFIG_ALLCONFIG используется без указания имени файла, то там где KCONFIG_ALLCONFIG == “” или KCONFIG_ALLCONFIG == “1”, команда make *config проверяет наличие файла с именем all{yes/mod/no/def/random}.config (соответствующего используемой команде *config), где заданы значения символов, которые должны быть установлены принудительно. Если такой файл не найден, проверяется наличие файла с именем “all.config”, который также может содержать принудительно установленные значения.

    Это позволяет вам создавать "миниатюрные" конфигурационные (miniconfig) или пользовательские файлы конфигурации, содержащие только символы конфигурации, которые вас интересуют. Затем система конфигурации ядра генерирует полный файл .config, включая символы из вашего miniconfig.

    Этот файл KCONFIG_ALLCONFIG является файлом конфигурации, который содержит (обычно подмножество) заранее установленных символов конфигурации. Эти настройки переменных все еще подлежат проверке зависимостей.

    Примеры:

    KCONFIG_ALLCONFIG=custom-notebook.config make allnoconfig

    или:

    KCONFIG_ALLCONFIG=mini.config make allnoconfig

    или:

    make KCONFIG_ALLCONFIG=mini.config allnoconfig

    Эти примеры отключат большинство опций (allnoconfig), но включат или отключат опции, перечисленные явно в указанных мини-конфигурационных файлах.

Переменные окружения для randconfig:

  • KCONFIG_SEED

    С помощью KCONFIG_SEED вы можете установить целочисленное значение, используемое для инициализации генератора случайных чисел (RNG), если вы хотите как-то отлаживать поведение парсера/интерфейсов kconfig. Если не установлено, будет использовано текущее время.

  • KCONFIG_PROBABILITY

    Эта переменная может быть использована для искажения вероятностей. Эта переменная может быть сброшена или пустой, либо установлена в три различных формата:

    KCONFIG_PROBABILITYy:n splity:m:n split
    незадана или пуста50 : 5033 : 33 : 34
    NN : 100-NN/2 : N/2 : 100-N
    [1] N:MN+M : 100-(N+M)N : M : 100-(N+M)
    [2] N:M:LN : 100-NM : L : 100-(M+L)

    здесь N, M и L - целые числа (в десятичной системе) в промежутке от 0 до 100, и таким образом:

    • [1] N+M находятся в промежутке [0,100]
    • [2] M+L находятся в промежутке [0,100]

    Примеры:

    KCONFIG_PROBABILITY=10
    10% boolean переменным будут назначены 'y', 90% – 'n'
    5% tristates переменным будут назначены 'y', 5% – 'm', 90% – 'n'
    KCONFIG_PROBABILITY=15:25
    40% boolean переменным будут назначены 'y', 60% – 'n'
    15% tristates переменным будут назначены 'y', 25% – 'm', 60% – 'n'
    KCONFIG_PROBABILITY=10:15:15
    10% boolean переменным будут назначены 'y', 90% – 'n'
    15% tristates переменным будут назначены 'y', 15% – 'm', 70% – 'n'

Переменные окружения для syncconfig:

  • KCONFIG_NOSILENTUPDATE

    Если у этой переменной значение, отличается от пустой строки, это предотвращает тихие обновления конфигурации ядра (требует явное обновление).

  • KCONFIG_AUTOCONFIG

    Эта переменная окружения может быть установлена для указания пути и имени файла "auto.conf". Её значение по умолчанию – "include/config/auto.conf".

  • KCONFIG_AUTOHEADER

    Эта переменная окружения может быть установлена для указания пути и имени (заголовочного) файла "autoconf.h" . Её значение по умолчанию – "include/generated/autoconf.h".

Поиск в menuconfig:

Функция поиска ищет имена символов конфигурации ядра, поэтому вам нужно знать что-то близкое к тому, что вы ищете.

Пример:

/hotplug
Выводит список всех символов содержащих в названии "hotplug",
например: HOTPLUG_CPU, MEMORY_HOTPLUG.

Для вызова справки введите / и нажмите TAB-TAB (чтобы выделить <Help>) и Enter. Это покажет вам, что вы также можете использовать регулярные выражения (regex) в строке поиска, так что если вам не интересен MEMORY_HOTPLUG, вы можете попробовать:

/^hotplug

Во время поиска символы отсортированны следующим образом:

  • сначала точные совпадения, отсортированные в алфавитном порядке (точное совпадение - это когда результат поиска полностью соответствует имени символа);
  • затем, остальные совпадения, отсортированные в алфавитном порядке.

Например, ^ATH.K вернёт следующие совпадения:

ATH5K ATH9K ATH5K_AHB ATH5K_DEBUG [...] ATH6KL ATH6KL_DEBUG [...] ATH9K_AHB ATH9K_BTCOEX_SUPPORT ATH9K_COMMON [...]

из которых, только ATH5K и ATH9K совпадают полностью и соответственно стоят вначале (и в алфавитном порядке). После них идут все остальные символы также отсортированные в алфавитном порядке.

В этом меню, нажатие клавиши с префиксом (#) приведет к переводу непосредственно на эту позицию. После выхода из этого нового меню вы вернетесь к текущим результатам поиска.

Параметры пользовательского интерфейса для menuconfig:

С помощью этого параметра можно выбрать другую цветовую тему. Для выбора используйте:

make MENUCONFIG_COLOR=<theme> menuconfig

Доступны следующие темы:

- mono       => выбирает цвета, подходящие для монохромных дисплеев
- blackbg => выбирает цветовую схему с черным фоном
- classic => классическая тема с синим фоном
- bluetitle => подходящая для ЖК-дисплеев версия "classic" темы (по умолчанию)

Этот режим выводит все подменю в одном большом дереве.

Пример:

make MENUCONFIG_MODE=single_menu menuconfig

nconfig

nconfig - это альтернативный текстовый конфигуратор. Внизу терминала расположены клавиши функций, которые выполняют команды. Вы также можете использовать соответствующую числовую клавишу для выполнения команд, если не находитесь в окне ввода данных. Например, вместо F6 для сохранения можно просто нажать 6.

Используйте клавишу F1 для глобальной справки или клавишу F3 для краткого меню помощи.

Поиск в nconfig:

Вы можете искать как в "prompt" строках в меню, так и среди конфигурационных символах.

Используйте / для начала поиска по пунктам меню. Поддержки регулярных выражений (regexp) при этом не будет. Используйте <Down> или <Up> для следующего и предыдущего совпадения соответственно. Используйте <Esc>, чтобы завершить режим поиска.

Используйте F8 (SymSearch) для поиска среди символов конфигурации. Вы можете указать строку или регулярное выражение.

Когда вы находитесь в SymSearch, нажатие клавиши с префиксом (#) перенесет вас непосредственно на выбранное место. После выхода из этого нового меню вы вернетесь к текущим результатам поиска.

Переменные окружения:

NCONFIG_MODE

Этот режим выводит все подменю в одном большом дереве.

Пример:

make NCONFIG_MODE=single_menu nconfig

xconfig

Поиск в xconfig:

Функция поиска ищет имена символов конфигурации ядра, поэтому вам нужно знать что-то близкое к тому, что вы ищете.

Пример:

Ctrl-F hotplug

или:

Menu: File, Search, hotplug

отображает все записи символов конфигурации, которые содержат «hotplug» в своём имени. В этом диалоговом окне поиска вы можете изменить настройки конфигурации для любой из записей, которые не выделены серым цветом. Вы также можете ввести другую строку для поиска, не возвращаясь в главное меню.

gconfig

Поиск в gconfig:

В gconfig нет команды поиска. Однако в gconfig есть несколько различных вариантов отображения, режимов и настроек.