Способ пройтись по новым настройкам ядра, используя cl-kernel

Сейчас очередной момент сборки ядра. Раньше, перед самой сборкой, я запускал make oldconfig, чтобы пройтись по всем новым параметрам - хотя бы узнать, что нового, если не настроить. Однако я не уверен, как это лучше сочетать с cl-kernel, а сейчас я даже не помню, как это делал.

Например, я заметил, в некоторых топиках упоминаются опции cl-kernel, которых нет в выводе --help: --use-own-config, --lvm. Обычно я делаю сборку в 2 шага:

cl-kernel -s
cl-kernel --skip-config

Если память мне не изменяет - раньше я копировал конфиг старого (текущего ядра) в новый, и затем запускал make oldconfig. Скорее всего, я это делал перед cl-kernel -s.
Сейчас я заметил (хоть может и раньше видел), что там уже готовый .config из имеющегося шаблона.
Хочу убедиться, что ручное копание с make не ломает результат cl-kernel, заодно узнать про более подходящие способы.

Кстати, было бы неплохо добавить make oldconfig в сам cl-kernel. Как вариант - в виде опции, чтобы запускать перед make menuconfig.

UPDATE:
Сейчас заметил - в конфиге работающего ядра выбрано:

CONFIG_MCORE2=y
...
# CONFIG_GENERIC_CPU is not set

Однако в конфиге в дереве даже для текущего ядра - наоборот, стоит CONFIG_GENERIC_CPU=y. Я точно помню - проверял выбранный ЦП во время cl-kernel -s и думал, что этого хватит. Видимо, нет.

calculate-toolkit-0.2.6

UPDATE 2:
Пока решил проблему с шиблоном конфига так:

cd /usr/src/linux
zcat /proc/config.gz > .config
make oldconfig
cl-kernel -s --convert
1 Like

make oldconfig следует выполнять при переходе на новую версию ядра. В этом случае вы указываете опцией --kver-old предыдущий конфиг ядра, тогда cl-kernel выполняет make oldconfig для миграции с последующим вызовом make menuconfig.

cl-kernel удобен тем, что он не только создает ядро, но и генерирует шаблон ваших изменений. Удобно взять за основу дефолтные настройки и их менять. В этом случае выполнять какие-то дополнительные действия с переносом конфигов не нужно, все это cl-kernel возьмет на себя.

“zcat /proc/config.gz > .config” - это все не нужно, первое что делает cl-kernel это пересоздает этот файл из шаблонов оверлея и ваших изменений, которые находятся так же в шаблоне в /var/calculate/templates/kernel/10-calculate-x86_64-5.15

make oldconfig следует выполнять при переходе на новую версию ядра. В этом случае вы указываете опцией --kver-old предыдущий конфиг ядра, тогда cl-kernel выполняет make oldconfig для миграции с последующим вызовом make menuconfig.

Спасибо, вот про это я не знал. Опцию --kver-old я, конечно, видел. Но не понимал, для чего она. Как дойду опять до обновления - попробую.

Хотя мне кажется, для --kver-old мог быть дефолт - например, текущее работающее ядро. Как минимум, если оно из того же пакета, что и --kver (отличаясь только версиями / слотами). Даже могло бы быть значение для --kver / --kver-old, указывающее на текущее работающее ядро, например uname, runing, working, current. Тогда конфиг мог бы читаться прямо из /proc/config.gz если он включен.

Конечно, трудно найти идеальный дефолт для --kver-old при наличии ядер из разных пакетов (calculate, gentoo, rt, ck, pf). Как вариант, мог бы браться конфиг из предыдущего настроенного ядра из того же пакета - только из /usr/src, а не /proc/config.gz. Но теперь мне нужно понять, как могло выйти, что работающий конфиг отличался от того, который в /usr/src (выбранный ЦПУ).

Кстати, я правильно понимаю, что для подставления стороннего (напр. /proc/config.gz) конфига в шаблон - лучше не --convert, а просто дождаться make menuconfig и скопировать нужный конфиг в .config перед тем, как закрыть menuconfig?

Если берется сторонний конфиг, то да, make menuconfig, а затем cl-kernel --convert.

Недавно открыл Америку (опцию --kver-old, про которую мне уже ответили).

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

Запоминать, если не уверены, и искать описание, чтобы разобраться. Ничего лучше пока не придумали )

Здравствуйте. Решил задать вопрос здесь, чтобы не плодить новую тему.
Мне надо добавить несколько модулей драйверов устройств, но ядро полностью перелопачивать я не хочу.
Устраивает то ядро, которое сделали разработчики. Как мне в этом случае поступить? Система CSS.
Выполняю:

USE=“-minimal -vmlinuz” emerge -a sys-kernel/calculate-sources

Это установит исходники ядра, но само ядро не установит.
Далее запускаю cl-kernel и появляется меню. В этот момент какой конфиг подгружен? Дефолтный какой-то или от этого ядра? Добавляю нужные модули, сохраняюсь и запускается компиляция.
Т.к. я убрал vmlinuz ядро придется ставить ручками или как в генте?
Если мои предположения ошибочны, тогда можно использовать конфиг из /boot? Как его правильно подгрузить?
Заранее спасибо! Есть еще вопрос по разметке диска и два раздела под корень, но наверное надо создать новую тему или можно тут?

cl-kernel запускает конфиг уже после наложения шаблона с изменениями. Так что просто добавьте нужные модули.