Как отследить изменения конфигурации ядра Linux?

Я работаю над модулем ядра Linux и хотел бы отслеживать изменения конфигурации моего ядра (например, включение других модулей, активацию динамической отладки и т. Д.) Для дальнейшего использования.

git add .config не чувствует себя хорошо.

Есть ли лучший способ сделать это?

2 ответа

Решение

Имеющий .config под Git плохая идея, как вы правильно заметили (в основном потому, что после make distclean, так что это решение не является производимым). Кроме того, если у вас уже есть defconfig файл для вашей доски, вы не должны создавать другой, это может считаться плохой практикой.

Вместо этого взгляните на скрипт scripts / kconfig / merge_config.sh. Вы можете создать свой собственный файл конфигурации, который будет содержать только изменения в существующем файле defconfig, а затем объединить ваш файл с некоторыми основными defconfig файл, который вы используете.

Посмотрите на ветку ядра TI, например, они просто создают другой каталог (ti_config_fragments/) с конфигурационными блоками и скриптами для генерации финала .config файл.

Еще один способ использования merge_config.sh Сценарий должен изменить Makefile для вашей архитектуры, добавив новое правило, чтобы объединить ваш фрагмент конфигурации с уже существующим .config файл, как будто это сделано для kvmconfig правило в arch / x86 / Makefile.

В любом случае, основная идея заключается в том, чтобы сохранить дельту конфигурации в отдельном файле (где-то в arch/.../configs/ или в совершенно новом каталоге), а затем объединить фрагмент конфигурации с существующим .config файл (который обычно генерируется из некоторых defconfig файл). И, конечно, вы можете отследить ваш файл с фрагментами конфигурации в Git

Добавьте новый defconfig для вашей платы (аппаратное обеспечение).

ПУТЬ: арка / рука / конфиги / для архитектуры ARM.

Вы можете добавить новый через make menuconfig -> Сохранить. Чтобы применить свой собственный конфиг, просто запустите make your_board_defconfig

Другие вопросы по тегам