Gentoo kernel upgrade: различия между версиями

Материал из AlexNook
Перейти к навигацииПерейти к поиску
Строка 1: Строка 1:
==Обновление ядра Gentoo Linux==
==Общие слова о обновлении ядра в Gentoo Linux==
Сидел я долгое время на ядре версии 2.4. Потом обновил железо и решил поставить новую систему с новым ядром - 2.6 на 64 bit. Всё было отлично, но прошёл год, мне к тому времени понадобилось внести некоторые изменения в ядро и пересобрать его. Думал как всегда вызвать '''genkernel''' и '''menuconfig''' и не трудиться особенно, но потом решил проверить, а может вышли новые версии ядра. И действительно - за год версия немного изменилась. Ну что же, раз пересобирать ядро и править '''.config''', то тогда сразу на новое из портажей. С предисловием закончил приступим к делу =).
Сидел я долгое время на ядре версии 2.4. Потом обновил железо и решил поставить новую систему с новым ядром - 2.6 на 64 bit. Всё было отлично, но прошёл год, мне к тому времени понадобилось внести некоторые изменения в ядро и пересобрать его. Думал как всегда вызвать '''genkernel''' и '''menuconfig''' и не трудиться особенно, но потом решил проверить, а может вышли новые версии ядра. И действительно - за год версия немного изменилась. Ну что же, раз пересобирать ядро и править '''.config''', то тогда сразу на новое из портажей. С предисловием закончил приступим к делу =).


==Подготовка к обновлению ядра==
==Подготовка к обновлению ядра Gentoo==
Для начала обновим портажи
Для начала обновим портажи
{{root|emerge --sync}}
{{root|emerge --sync}}
Строка 33: Строка 33:
Если всё в порядке, то мы должны увидеть в папке подпапку с исходниками нового ядра Gentoo. Теперь переходим к настройке системы, самого ядра и его компиляции (сборки ядра Gentoo).
Если всё в порядке, то мы должны увидеть в папке подпапку с исходниками нового ядра Gentoo. Теперь переходим к настройке системы, самого ядра и его компиляции (сборки ядра Gentoo).


==Настройка системы, ядра==
==Настройка системы и конфигурирование исходников ядра==
Если вы не сохранили свой конфиг ядра при его первоначальной сборке, то самое время сделать это сейчас. Настраивать ядро с нуля (особенно если последний раз вы этим занимались не вчера и даже не полгода назад) не очень простая задача и достаточно трудоёмка. Есть смысл иметь конфиг, где потом просмотреть только необходимые места.
Если вы не сохранили свой конфиг ядра при его первоначальной сборке, то самое время сделать это сейчас. Настраивать ядро с нуля (особенно если последний раз вы этим занимались не вчера и даже не полгода назад) не очень простая задача и достаточно трудоёмка. Есть смысл иметь конфиг, где потом просмотреть только необходимые места.


Строка 57: Строка 57:


==Компиляция нового ядра из исходников==
==Компиляция нового ядра из исходников==
Для этого запускаем любимый мною genkernel
Для сборки нового ядра из исходников запускаем любимый мною genkernel
{{root| genkernel --menuconfig all}}
{{root| genkernel --menuconfig all}}


Строка 75: Строка 75:
Всё теперь находясь в главном меню menuconfig'а нажимаем два раза '''esc''' и наше ядро начинает компилироваться!
Всё теперь находясь в главном меню menuconfig'а нажимаем два раза '''esc''' и наше ядро начинает компилироваться!


Когда все эти операции позади - мы получаем новое ядро. Теперь надо подмонтировать /boot и прописать в GRUB загрузку этого ядра. Но это уже совсем другая статья дожна быть =).
Когда все эти операции позади - мы получаем новое ядро. Теперь надо подмонтировать {{path|/boot}} и прописать в '''GRUB''' загрузку этого ядра. Но это уже совсем другая статья дожна быть =).


Далее мы можем пересобрать все внешние модули, которые мы не встроили в ядро, а выбрали букву M вместо *.
Далее мы можем пересобрать все внешние модули, которые мы не встроили в ядро, а выбрали букву M вместо *.

Версия 16:47, 30 января 2010

Общие слова о обновлении ядра в Gentoo Linux

Сидел я долгое время на ядре версии 2.4. Потом обновил железо и решил поставить новую систему с новым ядром - 2.6 на 64 bit. Всё было отлично, но прошёл год, мне к тому времени понадобилось внести некоторые изменения в ядро и пересобрать его. Думал как всегда вызвать genkernel и menuconfig и не трудиться особенно, но потом решил проверить, а может вышли новые версии ядра. И действительно - за год версия немного изменилась. Ну что же, раз пересобирать ядро и править .config, то тогда сразу на новое из портажей. С предисловием закончил приступим к делу =).

Подготовка к обновлению ядра Gentoo

Для начала обновим портажи

emerge --sync

Я привык уже пользоваться sys-kernel/genkernel, так что обновляем и это приложение.

emerge genkernel

Теперь обновим пакеты app-admin/eselect и sys-kernel/module-rebuild (или если их нет то поставим с нуля)

emerge eselect
emerge module-rebuild && module-rebuild populate

С подготовкой закончили. Теперь самое время приступать к обновлению.

Установка исходников (source) ядра

Для начала давайте посмотрим, а что за систему мы имеем в данный момент:

uname -a

Теперь проверим, а что есть нового в портажах к данному моменту.

emerge -pv gentoo-sources

Мы получим на экране что-то типа

Calculating dependencies... done!
[ebuild  NS   ] sys-kernel/gentoo-sources....

где NS будет означать, что исходники ядра будут установлены рядом со старым в новый слот. В общем ставим их, а точнее качаем с нета, стандартно выполнив:

emerge gentoo-sources

Можем теперь посмотреть на них

ls -la /usr/src

Если всё в порядке, то мы должны увидеть в папке подпапку с исходниками нового ядра Gentoo. Теперь переходим к настройке системы, самого ядра и его компиляции (сборки ядра Gentoo).

Настройка системы и конфигурирование исходников ядра

Если вы не сохранили свой конфиг ядра при его первоначальной сборке, то самое время сделать это сейчас. Настраивать ядро с нуля (особенно если последний раз вы этим занимались не вчера и даже не полгода назад) не очень простая задача и достаточно трудоёмка. Есть смысл иметь конфиг, где потом просмотреть только необходимые места.

В общем сохраняем конфиг старого ядра:

cp /usr/src/linux/.config ~/.config_backup

При просмотре исхдников в предыдущем пункте вы наверняка обратили внимание на файл linux, который явдяется simlink'ом, и указывает на текущую версию ядра. Для того, чтобы "нацелить" его на свежие исходники, выполняем следующие действия. Сперва есть смысл посмотреть список всех текущих доступных версий ядра.

eselect kernel list

Будет выведено что-то типа:

Available kernel symlink targets:
  [1]   linux-2.6.25-gentoo-r6
  [2]   linux-2.6.27-gentoo-r8
  [3]   linux-2.6.31-gentoo-r6 *
Note: Звёздочкой (*) выделена текущая версия ядра

Нацеливаем файл linux на свежие исходники командой

eselect kernel set 3

Всё теперь смело можем приступать к сборке нового ядра!

Компиляция нового ядра из исходников

Для сборки нового ядра из исходников запускаем любимый мною genkernel

genkernel --menuconfig all

Внутри интерфейса консольной программы, написанного с использованием ncurses, находим пункт меню

Load an Alternate Configuration File

Что позволяет нам загрузить наш конфигурационный файл. Соответственно нам просто надо указать путь, куда мы забэкапили старый конфиг (например /root/.config_backup.

Всё файл загружен и мы имеем уже наше старое настроенное ядрышко. При этом в связи с изменением ядра на более новое, все новшества и новые опции и фичи будут отмечены ключевыми словами NEW. Настраиваем как нам угодно наше ядро, меняем то что хотели в нём и, и компилируем его? - Нет сперва надо сохранить наш конфигурационный файл с правками в папку, где genkernel будет его искать, то есть по адресу /usr/src/linux/.config. Но т.к. мы находимся в menuconfig, то нам надо выполнить лишь действия сохранения из главного меню:

Save an Alternate Configuration File

Где в качестве полного имени файла указываем .config, что и сохранит его сразу в нужную папку (/usr/src/linux/).

Note: Можем выполнить эту процедуру ещё раз, чтобы забэкапить новонастроенный под новое ядро конфиг, но на этот раз указав пусть типа домашней папки root'а или куда-то ещё.

Всё теперь находясь в главном меню menuconfig'а нажимаем два раза esc и наше ядро начинает компилироваться!

Когда все эти операции позади - мы получаем новое ядро. Теперь надо подмонтировать /boot и прописать в GRUB загрузку этого ядра. Но это уже совсем другая статья дожна быть =).

Далее мы можем пересобрать все внешние модули, которые мы не встроили в ядро, а выбрали букву M вместо *.

module-rebuild rebuild


Ссылки