Сборка ядра. Есть вопросы.

Автор saifuddin, 10 августа 2016, 13:07:46

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

saifuddin

Всем привет.
Как собрать ядро я знаю.
Но, вот вопрос, как установить патчи?
Я для этого раньше использовал программу path
И, в ней приходилось все время нажимать Y, если соглашаешься с установкой патча.
Все хорошо, когда так нужно раз 10 нажать, А, если 1500 раз и не на одной машине еще установить)))
Тут, нужно прибегать к автоматизации процесса. Кто, как это решает?

ferum

Почитайте руководство разработчика debian там всё написано. Каков вопрос таков ответ.
Русские дебианщики против цифрового слабоумия !

saifuddin

Ну, так дайте ссылку на это руководство.

ferum

Вверху большими синими буквами для всех написано.
Русские дебианщики против цифрового слабоумия !

saifuddin

5.26. Файлы patches/*
Здесь говорится о внесении заплат к исходный код.

Это то, о чем вы говорили?

ferum

Да но это мэйнтейнерские патчи. Берётся наиболее подходяший (длительной поддержки) код ядра с linux.org и делаются изменения в соответствии с политикой дистрибутива. Для автоматизации процесса как вы прочитали патчи размещаются в отдельный каталог при дебианизации исходного кода и накладываются автоматически в процессе сборки.
[ot]И тут Остапа понесло...[/ot]
На практике подозреваю что интерес ваш не праздный и вам необходимо что бы какой то модуль изменённый или дополнительный автоматически сохранялся при обновлении ядра ?
Если это так то мне известны 2 способа, первый это конечно dkms так например собираются модули ядра для видеокарт nvidia и подобные вещи.
Второй способ наверное хорошо работает как раз на debian который в отличии от очень многих дистрибутивов сохраняет одну и ту же версию ядра а стало быть постоянный каталог /lib/modules/версия_ядра/ а там у нас есть уникальный каталог /updates в котором можно сохранять собранные изменённые или дополнительные модули ядра и они будут оставаться в прежнем рабочем виде после обновления ядра.
Например я ставил debian на компьютер другу  а у негоэтот компьютер получает интернет через свисток который в свою очередь ядром не поддерживается. Я собрал из исходников этот модуль, установил его, при этом прошивка как положено упала в /lib/firmware а сам модуль в /lib/modules/версия_ядра/kernel/drivers/net/wirelles/... дополнительно я скопировал его в /lib/modules/версия_ядра/updates ( в jeesie он есть по умолчанию в других случаях его возможно надо создать) теперь после обновления проблем с интернетом нет.
Другой случай когда необходимо пересобрать модуль именно с наложением патча я описал http://gomel-sat.bz/forums/index.php?showtopic=231&p=684659 и это так же практический случай.
Русские дебианщики против цифрового слабоумия !

saifuddin

Более внимательно прочитал README в ядре. Привожу отрывок.
ЦитироватьAlternatively, the script patch-kernel can be used to automate this
   process.  It determines the current kernel version and applies any
   patches found.

     linux/scripts/patch-kernel linux

   The first argument in the command above is the location of the
   kernel source.  Patches are applied from the current directory, but
   an alternative directory can be specified as the second argument.

- Make sure you have no stale .o files and dependencies lying around:

     cd linux
     make mrproper

   You should now have the sources correctly installed.
Выходит, для автоматической установки нам нужно.
cd /usr/src/
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.17.tar.xz
wget https://cdn.kernel.org/pub/linux/kernel/v4.x/patch-4.4.17.xz
xz -d patch-4.4.17.xz
tar xJf linux-4.4.17.tar.xz
mkdir linux
cp patch-4.4.17 linux/
linux-4.4.17/scripts/patch-kernel linux
После этого собираем ядро Linux

Я правильно понял ход выполнения?