компиляция ядра linux



сборка ядра linux

Автор Drozofil drozofil задал вопрос в разделе Другое

Как компилировать ядро Linux? и получил лучший ответ

Ответ от Ёергей Иванов[гуру]
Итак, ядро скачано… Задаем команду:
sudo chmod 777 /usr/src
После этого, забрасываем его (скачанный архив) в папку /usr/src. Распаковываем архив командой:
tar -jxvf xxxxx.tar.bz2
В этой команде xxxxx.tar.bz2 – это название файла архива с ядром… Как только закончится распаковка, ваши исходники будут находиться в каталоге /usr/src/xxxxx.
Прежде, чем приступить к настройке ядра, точно выяснить спецификации вашего компьютера:
1) тип процессора,
2) чипсет материнской платы,
3) тип видеокарты,
4) тип сетевой платы,
5) тип саунд-карты,
6) тип жестких дисков,
7) usb-устройства и прочее…
Далее, перед сборкой ядра необходимо установить сопроводительные пакеты: gcc, libc6-dev, kernel-package, libncurses5-dev, fakeroot и build-essential.
Когда все установлено и изучено, можно приступать собственно к конфигурированию ядра.
Заходим в директорию /boot, и видим там файл примерно такого названия config-2.6.24-19-generic. Он нам и нужен. Копируем его в каталог с исходниками /usr/src/xxxxx и переименовываем его в .config.
Также предварительно открываем файл Makefile, и в строчке «EXTRAVERSION=» дописываем свое название для ядра, например, EXTRAVERSION=-mykernel. Никакой другой функции эта строчка не несет, кроме, как удобства в опознании собственного ядра.
Далее запускаем конфигуратор ядра, для чего, находясь в папке /usr/src/xxxxx, даем команду:
make menuconfig
Эта команда запускает консольный интерфейс настройки. Ежели вам более по душе графический конфигуратор, то для его запуска нужно использовать команду:
make xconfig
Есть еще вариант консольной настройки:
make oldconfig
Этот вариант очень полезен только тогда, когда уже имеется сформированный файл настроек .config (можно использовать файл настроек от старого ядра) . В этом варианте задаются только вопросы по возможностям, появившимся с той версии ядра, для которой сделан файл настроек.
Если вы хотите, чтобы ядро работало стабильно и максимально быстро, ответственно подойдите к вопросу настройки. Внимательно читайте каждый пункт. Если чего-то не понимаете, то ищите ответы в интернете. Например, здесь, можно найти описание многих настроек и советы по оптимальному их использованию. Кстати, там же в разделе «3.4 Пример настройки ядра» имеется и несколько советов по оптимизации ядра.
После настройки выбираем пункт «Сохранить конфигурацию в новый файл» , где указываем имя файла, отличного от .config, например .config_mykernel. Затем переименовываем .config в .config_old. И у вас получается два файла – .config_old и .config_mykernel. Кстати, есть возможность посмотреть различия между стандартной и вашей конфигурацией так:
diff .config .config_mykernel
Теперь копируем вашу конфигурацию .config_mykernel как .config. Т. е. у вас получится три файла конфигурации. При компиляции будет использоваться файл .config. Файлы .config_ubuntu и .config_mykernel нам помогут в будущем для новой компиляции. Это на тот случай, если новое ядро окажется неработоспособным.
Далее приступим к компиляции. Перед этим, нужно очистить мусор командой:
make-kpkg clean
Компиляцию ядра стоит делать под суперпользователем. Для чего становимся рутом и запускаем процесс сборки ядра:
sudo -s -H
make-kpkg –initrd –revision=mykernel.1 kernel_image kernel_headers
в этой строчке mykernel.1 обозначает название ядра. Можно писать все что душе угодно.
Операция компиляции занимает довольно продолжительное время, зависящее от мощности компьютера, у меня оно обычно занимало около получаса…
По окончании процесса создадутся два deb-файла с ядром, сконфигурированным конкретно под ваши нужды. Поздравляю, ядро готово.
Теперь необходимо установить собранное ядро в систему:
sudo dpkg -i linux-image-xxxxx.deb
sudo dpkg -i linux-headers-xxxxx.deb
Замените на точные названия созданных вами deb-файлов. Далее перегружаемся и видим, в меню свое ядро.

Ответ от 22 ответа[гуру]
Привет! Вот подборка тем с похожими вопросами и ответами на Ваш вопрос: Как компилировать ядро Linux?
 

Ответить на вопрос:

Имя*

E-mail:*

Текст ответа:*
Проверочный код(введите 22):*