LINUX.ORG.RU

Правильная последовательность действий по изменению конфига ядра?

 , ,


0

2

есть скрипт genkernel-next, он сохраняет конфиг в директорию
ls -1 /etc/kernels
kernel-config-x86_64-4.14.65-gentoo

об этом мы узнаём читая
https://wiki.gentoo.org/wiki/Genkernel

--[no-]save-config
Saves [or does not save] the kernel configuration to a file in the /etc/kernels directory for later use.

теоретически, можно передать параметр --menuconfig при вызове genkernel all, т.е.
genkernel --menuconfig all

Что при этом произойдёт - не ясно. Будет ли взят конфиг из директории /etc/kernels или нет, если мы собираем новую версию ядра? Проверяем:
$ readlink /usr/src/linux
linux-4.18.8-gentoo
$ cd /usr/src/linux
# genkernel --menuconfig all

* Gentoo Linux Genkernel; Version 68
* Running with options: --menuconfig all

* Using genkernel.conf from /etc/genkernel.conf
* Sourcing arch-specific config.sh from /usr/share/genkernel/arch/x86_64/config.sh ..
* Sourcing arch-specific modules_load from /usr/share/genkernel/arch/x86_64/modules_load ..

* Linux Kernel 4.18.8-gentoo for x86_64...
* .. with config file /usr/share/genkernel/arch/x86_64/kernel-config
* kernel: Using config from /usr/share/genkernel/arch/x86_64/kernel-config
* kernel: --mrproper is disabled; not running 'make mrproper'.
*         >> Running oldconfig...
* kernel: --clean is disabled; not running 'make clean'.
* kernel: >> Invoking menuconfig...
Видим ли мы тут, что используется конфиг из /etc/kernel ?

Не видим! Ну и как тогда доконфигурировать ядро правильно? Какая правильная последовательность действий?

Ищем в гугле:
https://www.google.com/search?q=how to update kernel "gentoo-sources"
https://wiki.gentoo.org/wiki/Kernel/Upgrade

в этом гайде предлагают выполнять команды
cp /etc/kernels/kernel-config-x86_64-4.14.65-gentoo /usr/src/linux/.config
make olddefconfig
или
make oldconfig

но блин, это хорошо у меня в /etc/genkernel.conf стоят no-mrproper и no-clean,
а как правильно-то делать? На что genkernel-next рассчитывает?

by default genkernel uses the config from the previous build of the same kernel version or a default kernel config if there isn’t a previous config.

Как жить при апдейте версии?

пишут «simply install a post_pkg_postinst». А как это сделать-то?

★★☆

Последнее исправление: Einstok_Fair (всего исправлений: 4)

Как жить при апдейте версии?

aptitude safe-upgrade

Upd. Всё-таки дистрибутив Gentoo предназначен для опытных пользователей, способных решить проблемы самостоятельно. Не стоит надеяться, что инструменты вроде genkernel решат все проблемы магическим образом. Они помогают избавиться от рутины, но для этого понадобится инвестировать время в обучение. Серебряной пули нет.

i-rinat ★★★★★
()
Последнее исправление: i-rinat (всего исправлений: 2)

make nconfig и проверять все опции вручную.

anonymous
()

нифига не понятно че ты там не понимаешь

Как жить при апдейте версии?

        zcat /proc/config.gz > /usr/src/linux/.config

вопрос кто знает как обрабатывать постинстал

ну т.е. прилетело новое ядро и запуск скрипта после установки пакета.

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

мне говорят, что существуют функции pre_ и post_ для каждой фазы ebuild-а, но это нигде не задокументировано.

afaik you can pre_ and post_ every phase function mentioned here: https://devmanual.gentoo.org/ebuild-writing/functions/index.html im not sure where the pre_ post_ stuff is documented exactly

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

я хз че ты там задумал, но genkernel нафиг ненужно. Собери конф с дефолта, есть вика есть старая ядерная физика для домохозяек, есть куча гайдов — будет тебе счастье.

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

Опасаюсь, что напишут вирус, который будет распространяться, дописывая в /etc/portage/env для разных пакетов функцию post_src_compile.

И никто его не сможет найти, потому что фича недокументированная.

Einstok_Fair ★★☆
() автор топика
Последнее исправление: Einstok_Fair (всего исправлений: 1)
Ответ на: комментарий от Deleted
  WARNING: "silentoldconfig" has been renamed to "syncconfig"
            and is now an internal implementation detail.
            What you want is probably "oldconfig".
            "silentoldconfig" will be removed after Linux 4.19
anonymous
()
Ответ на: комментарий от Einstok_Fair

Тебе лучше знать, о неосилятор манов. Я просто показал, что эта цель-опция работает.

anonymous
()
Ответ на: комментарий от Einstok_Fair

И никто его не сможет найти, потому что фича недокументированная.

Интересно, что же по этому поводу думает Portage documentation(ссылка на него есть тут)

Ах вот же оно:

Chapter 1. Bashrc Configuration
Ebuild Phase Hooks

A phase hook function name begins with a pre_ or post_ prefix to indicate that it will be called before or after one of the ebuild phases. The prefix is followed by the name of the ebuild function that the hook will be associated with. For example, a hook named pre_src_compile will be called before src_compile, and a hook named post_src_compile will be called after src_compile. 

Вывод: то, что ты не умеешь искать документацию, еще не означает, что её нет

Pinkbyte ★★★★★
()
Последнее исправление: Pinkbyte (всего исправлений: 3)
  1. сносишь genkernel
  2. копируешь старый конфиг в директорию с исходниками ядра
  3. make oldconfig
  4. make menuconfig
  5. вносишь свои изменения
  6. make
  7. make install
  8. make modules_install
  9. ????????
  10. PROFIT
eternal_sorrow ★★★★★
()
Ответ на: комментарий от Einstok_Fair

olddefconfig

и он навтыкает тебе всё по дефолту, и не факт, что это то, что тебе нужно. за ним глаз да глаз, лучше самому всё проверить.

eternal_sorrow ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.