[SOLVED]Genkernel переписывает конфиг ядра?
Danhuu 25 февраля, 2019 - 12:57
Здравствуйте, уважаемые форумчане!
С какого-то обновления genkernel (примерно с осени 2018) при сборке ядра стал получать такое:
early-microcode: >> Preparing... * CONFIG_MICROCODE_INTEL=y set but no ucode available. Please install sys-firmware/intel-microcode[split-ucode] * >> adding AuthenticAMD.bin * early-microcode: >> Creating cpio...
Машина AMD, при сборке правлю/проверяю конфиг через xconfig (menuconfig для очистки совести пробовал, без разницы), естественно CONFIG_MICROCODE_INTEL отключаю. ЧСХ, после сборки в /etc/kernels он включён, как и при проверке текущего (cat /proc/config.gz
).
Надеялся, что само пройдёт, машина работает, но вот прилетело свежее ядро в stable, и опять резануло глаза.
Вопрос первый, риторический: нахрена так было делать, ведь всё работало нормально?
Вопрос второй, практический: можно ли это поведение исправить, если да, то как?
»
- Для комментирования войдите или зарегистрируйтесь
Покажи конфиг genkernel'я.
Покажи конфиг genkernel'я.
Вроде бы ты не новичок, а надо азы объяснять!..
?
/etc/genkernel.conf
# Add in early microcode support
#MICROCODE="no"
SysA написал(а): Покажи
http://dpaste.com/3TT3825
Фигня в том, что для моего процессора (AMD Phenom II X4) микрокод таки нужен. И раньше прекрасно работала такая конфигурация:
$ cat /etc/kernels/kernel-config-x86_64-4.9.95-gentoo-Shu | grep -i microcod
CONFIG_MICROCODE=y
# CONFIG_MICROCODE_INTEL is not set
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
И genkernel мне её не ломал. А теперь при конфигурации я выставляю то же самое, но получаю после обработки genkernel-ом:
$ cat /usr/src/linux/.config | grep -i microcod
CONFIG_MICROCODE=y
CONFIG_MICROCODE_INTEL=y
CONFIG_MICROCODE_AMD=y
CONFIG_MICROCODE_OLD_INTERFACE=y
При поиске по содержимому мне, в частности попалось такое (в /usr/share/genkernel/gen_configkernel.sh)
Т.е., теперь genkernel, ничтоже сумняшеся, считает, что если уж включать микрокод, то для всего. Привет от Билли! К сожалению, у меня не сохранилось старых версий, чтобы посмотреть, как это было там. Хотя примерно представляю, как это переписать, чтобы был выбор.
Итак, задача: при сборке ядра genkernel-ом получать микрокод для своего процессора.
Варианты:
MICROCODE="no"
и сидеть без микрокода. Хорошо ли это?Все просто! Делай как я! ;)
Все очень просто! Делай как я! ;)
В
/etc/genkernel.conf
поставитьи конфигурировать ядро вручную (отдавать это на откуп какому-либо автомату - по-любому плохая идея IMHO) :
Пункт 3 нужен, чтобы посмотреть, что вы там с автоконфигуратором натворили ;). Обычно при минорных изменениях меняется только версия.
Пункт 4, если нужны изменения.
Вот и все! Теперь генкернель будет брать то, что ты наконфигуришь... Только не забудь удалить копию конфигурации из
/etc/kernels/
(куда она сохраняется при успешной сборке ядра), если хочешь изменить/перекомпилировать ранее скомпилированное ядро той же версии. Иначе генкернел будет генеретить ядро, используя сохраненную копию конфигурации.Спасибо! 1) А в чём разница с
Спасибо!
1) А в чём разница с xconfig/menuconfig, запускаемыми из-под genkernel, как я обычно делаю?
2) И как же тогда грузить микрокод?
Danhuu
1) графический / псевдографический интерфейс конфигуратора параметров ядра
2) я гружу при старте ядра, к примеру
Всем спасибо! В итоге
Всем спасибо!
В итоге оказалось достаточно закомментить в
/etc/genkernel.conf
строчку про микрокод, тогда конфиг не переписывается. Ессно, в процессе ручной конфигурации (в рамках того же genkernel, в/etc/genkernel.conf
стоитXCONFIG="yes"
) выставляюНу, в общем, как в Вики написано. При этом,
также, как и в предыдущем ядре, когда в
/etc/genkernel.conf
стоялоMICROCODE="yes"
.Похоже, эта новомодная опция и состоит в том, чтобы вбивать в ядреный конфиг положительные ответы на оба микрокода для тех, кто
на бронепоездене пользуется[x]/[n]/[menu]config
.Помечаю вопрос решённым.