LINUX.ORG.RU

Изменение опций в конфиге ядра с учётом зависимостей с помощью скрипта - как реализовать?

 ,


0

2

SUBJ. Хочу, чтобы это выглядело примерно так:

  • есть файлик, в котором прописаны некоторые опции, например:
    CONFIG_EXT4_FS=y
    CONFIG_FUSE_FS=m
    CONFIG_UDF_FS=m
    CONFIG_PM_RUNTIME=y
    CONFIG_USB_SUSPEND=y
    CONFIG_IKCONFIG=m
    CONFIG_IKCONFIG_PROC=y
    CONFIG_DEVTMPFS=y
    CONFIG_DEVTMPFS_MOUNT=y
    CONFIG_KSM=y
    CONFIG_UKSM=y
    CONFIG_IOSCHED_BFQ=y
    DEFAULT_BFQ=y
    CONFIG_TUN=m
    CONFIG_EXT4_FS_SECURITY=y
    CONFIG_NETFILTER_XT_MATCH_COMMENT=m
    CONFIG_MK8=y
    CONFIG_DRM_RADEON=m
    CONFIG_DRM_RADEON_KMS=y
    CONFIG_USB_XHCI_HCD=m
    CONFIG_CONFIG_R8169=m
    CONFIG_USB_STORAGE_REALTEK=m
    CONFIG_SENSORS_IT87=m
    CONFIG_SENSORS_K10TEMP=m
    
  • emerge -av1 <новое ядро>
  • cd /usr/linux/src
  • запустить скрипт, который выставит вышеуказанные опции в конфигу, учитывая все зависимости, а остальные оставит в дефолтном состоянии.
  • make && make modules_install
  • ???
  • PROFIT!

Я знаю о существовании allyesconfig/allmodconfig/allnoconfig и переменной окружения KCONFIG_ALLCONFIG, но эти методы мне не подходят, так как они изменяют дефолтное состояние остальных опций, не перечисленных в файле, указанном в KCONFIG_ALLCONFIG.

Special cast megabaks: как ты относишься к автоматизации такой рутины? Как ты сейчас конфигуришь ядро - вручную или ты знаешь особую уличную магию?

//создал тему https://forums.gentoo.org/viewtopic-p-7163042.html, мне попытались объяснить, что лучше продолжать конфигурить руками.

я руками - точнее давно готовый конфиг, который кочует с версии на версию
а тау что-то типа oldconfig только и приходит в голову
ну или самому парсить кучу Kconfig, в коих описаны все зависимости

megabaks ★★★★
()

Опции могут изменять статус с experimental на ready-to-use, с ready-to-use на deprecated. Некоторые опции в будущих релизах могут по умолчанию включить, а с oldconfig они так и остануться выключенными или наоборот. Я не хочу следить за всем этим, как я не слежу, когда просто скачиваю новое ядро и устанавливаю только интересующие меня опции.

Chaser_Andrey ★★★★★
() автор топика
Ответ на: комментарий от Chaser_Andrey

Кстати, make разве сам не правит зависимости? У меня получалось собирать новые ядра даже с старыми конфигами.

tyakos ★★★
()
Ответ на: комментарий от megabaks

та вот пока нашёл Kconfiglib или попытаться выдрать парсер из xconfig или недр scripts/config.

Просто не хочется делать велосипед, но если ничего не найду - придётся пилить.

Chaser_Andrey ★★★★★
() автор топика
Ответ на: комментарий от tyakos

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

Chaser_Andrey ★★★★★
() автор топика
Ответ на: комментарий от tyakos

Не всем нравится, как что-то работает, даже если оно действительно работает и альтернатив не предвидится. Кто-то любит масло, а кто-то — маргарин. А кому-то нравится делать из генты слаку. Тут каждому своё.

Deleted
()

Подобное уже реализовано много раз. Один из примеров - kernel.opensuse.org в config/* заготовки настроек из которых в зависимости от установок и собирают ядро пропатченное нужными патчами и уже с готовыми настройками. Всем этим заведует хозяйство в rpm/* и scripts/*

init_6 ★★★★★
()

новые ядра конфигурирую командой make localyesconfig.

TuxR ★★★★
()

посмотри на ебилд busybox или uclibc - там используется /etc/portage/savedconfig - немного не то, что ты хочешь, но близко...

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.