Патчительное отношение к ядру
Как было показано в предыдущих топиках, сборка программ и даже ядра из исходников (см. mtaalamu.ru/blog/linux/942, mtaalamu.ru/blog/linux/936.html и mtaalamu.ru/blog/linux/916.html) — дело вполне посильное даже для начинающих пользователей. Но, конечно, бывают ситуации специфические, когда нужно придать ядру особые свойства. Например пропатчить его под нестандартную, но весьма популярную систему для создания LiveCD aufs, о которой я тоже недавно писал.
На первый взгляд процедура наложения и установки данного патча на ядро выглядит довольно страшно. Автор модуля aufs — Junjiro R. Okajima — как будто зарекся оформлять свои мысли в каком-либо виде, кроме голимого plain-текста, набранного, судя по всему, в каком-то гикнутом редакторе. Вот ссылка на страничку проекта, вселяющую ужас при первом посещении: aufs.sourceforge.net/.
Однако самураю не откажешь в умении добротно формулировать свои мысли на английском, и за кажущейся суровостью кроется вполне адекватная инструкция. Мне остаенся только переложить ее на русский с учетом опыта установки и успешного запуска aufs на своем компьютере.
Итак, первым делом входим в каталог /usr/src.
Свои наработки Junjiro R. Okajima-сан не хранит в виде тарболов (tar.gzip — архивов), а использует репозитарии git, в полном соответствии с идеологией разработчиков ядра Linux. Поэтому чтобы вытянуть исходники модуля aufs нужно ввести
где XX — номер версии ядра, исходники которого, конечно же, предварительно должны уже быть установлены всё в тот же /usr/src. Например, если патч налагается на ядро 2.6.34, то последняя строка в вышеприведенном фрагменте должна выглядеть как
В результате этих действий должен появиться каталог /usr/src/aufs2, в котором находятся каталоги Documentation, fs, include и несколько патчей. Перечисленные каталоги следует скопировать в каталог ядра, например так (находясь в /usr/src/aufs2)
Сам я выполняю подобные операции с помощью Midnight Commander'a.
Выходим из каталога aufs2, входим в исходники ядра и накладываем 3 патча:
Теперь входим в конфигуратор ядра
находим в списке файловых систем Aufs2 (она появилась в списке только после наложения патчей), говорим, что она нам нужна (в виде модуля) и, подтвердив сохранение изменений, выходим из конфигуратора.
Всё!
Естественно, модуль будет работать лишь с родным ядром, которое следует выбрать при загрузке. А вот о том, как организовать многовариантную загрузку (с разными ядрами) речь пойдет в следующем топике.
Продолжение следует.
На первый взгляд процедура наложения и установки данного патча на ядро выглядит довольно страшно. Автор модуля aufs — Junjiro R. Okajima — как будто зарекся оформлять свои мысли в каком-либо виде, кроме голимого plain-текста, набранного, судя по всему, в каком-то гикнутом редакторе. Вот ссылка на страничку проекта, вселяющую ужас при первом посещении: aufs.sourceforge.net/.
Однако самураю не откажешь в умении добротно формулировать свои мысли на английском, и за кажущейся суровостью кроется вполне адекватная инструкция. Мне остаенся только переложить ее на русский с учетом опыта установки и успешного запуска aufs на своем компьютере.
Итак, первым делом входим в каталог /usr/src.
cd /usr/src
Свои наработки Junjiro R. Okajima-сан не хранит в виде тарболов (tar.gzip — архивов), а использует репозитарии git, в полном соответствии с идеологией разработчиков ядра Linux. Поэтому чтобы вытянуть исходники модуля aufs нужно ввести
$git clone http://git.c3sl.ufpr.br/pub/scm/aufs/aufs2-standalone.git aufs2
$ cd aufs2
$ git checkout origin/aufs2-XX
где XX — номер версии ядра, исходники которого, конечно же, предварительно должны уже быть установлены всё в тот же /usr/src. Например, если патч налагается на ядро 2.6.34, то последняя строка в вышеприведенном фрагменте должна выглядеть как
$ git checkout origin/aufs2-34
В результате этих действий должен появиться каталог /usr/src/aufs2, в котором находятся каталоги Documentation, fs, include и несколько патчей. Перечисленные каталоги следует скопировать в каталог ядра, например так (находясь в /usr/src/aufs2)
cp -R Documentation /linux-2.6.34
cp -R fs /linux-2.6.34
cp -R include /linux-2.6.34
Сам я выполняю подобные операции с помощью Midnight Commander'a.
Выходим из каталога aufs2, входим в исходники ядра и накладываем 3 патча:
cd /linux-2.6.34
patch -p1 < /aufs2/aufs2-kbuild.patch
patch -p1 < /aufs2/aufs2-base.patch
patch -p1 < /aufs2/aufs2-standalone.patch
Теперь входим в конфигуратор ядра
make menuconfig
находим в списке файловых систем Aufs2 (она появилась в списке только после наложения патчей), говорим, что она нам нужна (в виде модуля) и, подтвердив сохранение изменений, выходим из конфигуратора.
Всё!
make && make modules_install
Естественно, модуль будет работать лишь с родным ядром, которое следует выбрать при загрузке. А вот о том, как организовать многовариантную загрузку (с разными ядрами) речь пойдет в следующем топике.
Продолжение следует.
Комментарии (5)
RSS свернуть / развернутьМолодeжь!
Кодинг — дело здоровых. Кушайте больше море-продуктов!
Бросайте курить !
Markony
yababay
Markony
FREExLOADER
по сабжу пасиб)
ksandras
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.