menuconfig это утилита конфигурации для ядра Linux (kernel), которая представляет в терминале "графический" интерфейс для удобного управления конфигурационными файлами с автоматической обработкой зависимостей элементов конфигурации. Другие подобные интерфейсы конфигурации включают nconfig и xconfig. Ниже описываются основные функции и операции menuconfig.
[1. Интерфейс конфигурации]
Чтобы открыть интерфейс конфигурации, выполните команды на хосте разработки:
$ cd < SDK directory>/sysdrv/source/kernel
$ cp ./arch/arm/configs/luckfox_rv1106_linux_defconfig .config
$ make ARCH=arm menuconfig
[2. Основные операции]
Команда ARCH=arm menuconfig запустит окно, которое выглядит следующим образом:

Это верхний уровень интерфейса конфигурации, где показан список базовых операций menuconfig и их объяснение.
Ключевые операции интерфейса:
• ↑, ↓, PgUp, PgDn: эти клавиши используются для перемещения курсора и навигации по пунктам меню функций ядра. • ←→: выбор операций, таких как Select, Exit, и т. п. • Enter: вход в подменю. • Y: выберет эту фичу. • N: исключит эту фичу. • M: выберет как модуль. • Esc: двойное нажатие Esc для возврата в предыдущее меню. • ?: просмотр информации подсказки по этой фиче. • /: поиск.
Легенда:
[*]: выбранный элемент. [ ]: не выбранный элемент. < M>: выбранный элемент (как модуль). < >: не выбранный элемент (как модуль).
В средней области окна вы можете выбирать различные фичи. Навигация осуществляется клавишами со стрелками вверх и вниз. Также можно нажать клавишу, соответствующую подкрашенной букве опции для быстрого её выбора, например нажатия клавиши k будет приводить к перескоку курсора между пунктами "Kernel Features" и "Kernel hacking".
В нижней части окна находятся "кнопки" для общих операций:
< Select >: вход в подменю для текущего выбранного элемента. < Exit >: выход из текущего меню (возврат на предыдущий уровень). < Help >: предоставляет информацию подсказки по текущему выбранному элементу конфигурации. < Save >: сохранит текущие изменения конфигурации без выхода из интерфейса конфигурации. < Load >: загрузка указанного конфигурационного файла.
[3. Обзор функций]
В интерфейсе menuconfig пользователи могут гибко конфигурировать ядро на основе требований к системе, выбирать требуемые фичи и драйверы, и собрать настроенное ядро (customized kernel), подходящее к определенной аппаратуре и назначению. Вот общее описание основных элементов интерфейса конфигурации Linux kernel:
General setup: основная конфигурация времени выполнения (basic runtime).
Kernel Features: конфигурация фич ядра, таких как модульность (modularity), поддержка блочных устройств (block device), и т. п.
CPU Power Management: конфигурация опций управления питанием процессора (CPU power management).
Enable loadable module support: поддерживать или нет модули ядра (kernel modules).
IO Schedulers: конфигурация планировщиков ввода/вывода диска (disk I/O schedulers).
Networking support: конфигурация поддержки сети, включая протоколы, устройства, и т. д.
Device Drivers: конфигурация различных драйверов, таких как устройства ввода (input devices), устройства USB, и т. д.
File systems: конфигурация поддержки файловых систем. Здесь можно выбрать, какие типы файловых систем поддерживаются.
Security options: конфигурация опций, связанных с безопасностью (kernel security).
Cryptographic API: конфигурация поддержки функций криптографии (cryptographic API).
[4. Модификация конфигурации]
В этом примере показано разрешение поддержки датчика влажности/температуры DHT11. Нажмите клавишу /, введите dht11 и нажмите Enter для поиска.

В результате будет показано вот такое окно:

Нажмите клавишу 1 для перехода к этой опции.

Для разрешения этой опции нажмите клавишу Y, между угловыми скобками появится символ *, что означает разрешение опции. Альтернативно можно нажимать клавишу пробела, чтобы переключаться между вариантами выбора < *>, < M>, < >.
[5. Сохранение конфигурации]
Клавишами со стрелками вправо влево выберите кнопку Save.

Нажмите Enter для сохранения конфигурации. При сохранении можно оставить имя файла конфигурации по умолчанию .config, также при желании можно ввести другое имя файла.
Альтернативно после внесения изменений можно несколько раз нажать Esc, чтобы выйти из системы конфигурации. На последнем шаге появится запрос - сохранять или нет изменения конфигурации? Подтвердите сохранение, если хотите сохранить изменения, выбором < Yes >, или для отмены изменений выберите < No >.
После выхода из интерфейса конфигурации menuconfig выполните команды:
$ make ARCH=arm savedefconfig
$ cp defconfig ./arch/arm/configs/luckfox_rv1106_linux_defconfig
[6. Перепрошивка firmware]
Перед компиляцией укажите модель платы разработчика:
~/luckfox-pico$ ./build.sh lunch
Выполните компиляцию:
~/luckfox-pico$ ./build.sh
Перепрошейте firmware платы:
~/luckfox-pico$ sudo upgrade_tool uf ./output/image/update.img
[Ссылки]
1. LuckFox Kernel Configuration site:wiki.luckfox.com. |