Приветствую Вас Гость | RSS

Суббота, 04.05.2024, 02:12
Главная » 2012 » Февраль » 16 » Как собрать и установить собственное ядро в Ubuntu 11.10?
23:50
Как собрать и установить собственное ядро в Ubuntu 11.10?
Рецепт взял здесь http://pingvinoff.net/2008/08/05/linux-kernel-compilation/, правда он с изьянами, зато по нему рабочее ядро 3.2.5 я получил. Нехорошие моменты ниже я отмечу, но если просто очень хочется собрать ядро, можно на замечания не обращать внимание, всё и так должно получиться.
Ядро собирал для своего букваря DNS 0128811 с убунтой 11.10.
Сперва качаем исходники с http://www.kernel.org.
Делаем sudo chmod 777 /usr/src чтоб можно было туда залить скаченный архив исходников. На самом деле лучше так не делать, просто так в источнике написано.
Заливаем в папку /usr/src скаченный архив с исходниками (по идее можно выбрать другое место).
Делаем cd /usr/src
Делаем tar -jxvf linux-3.2.5.tar.bz2
Получается папка linux-3.2.5
Делаем cd ./linux-3.2.5
Проверяем, чтоб в системе были установлены пакеты gcc, libc6-dev, kernel-package, libncurses5-dev, fakeroot и build-essential. Я проверял всех по очереди так:
sudo apt-get install gcc
sudo apt-get install libc6-dev
sudo apt-get install kernel-package
sudo apt-get install libncurses5-dev
sudo apt-get install fakeroot
sudo apt-get install build-essential
каких не хватало - устанавливались, которые ругались - те уже на месте.
Теперь всё готово к сборке. Для начала нужно сконфигурировать ядро (выбрать, под какое железо и с какими фичами должно быть ядро). Копируем себе конфиг текущего ядра системы
cp /boot/config-3.0.0-15-generic ./.config
(имя конфига в папке /boot может отличаться цифрами)
Предыдущий оратор предлагает отредактировать под себя строчку "EXTRAVERSION=" в Makefile, вроде как это часть имени будущего ядра, но если заполните её неправильно - сборка ядра потом вылетит на пол пути, так что можно ничего там не трогать и спать спокойно
gedit Makefile
Запускаем конфигуратор:
make menuconfig
Перед запуском он может задать несколько (много) вопросов, на которые можно просто нажимать Enter (будут вводиться ответы по умолчанию, которые потом в конфигураторе можно будет исправить)
"После настройки выбираем пункт «Сохранить конфигурацию в новый файл», где указываем имя файла, отличного от .config, например .config_mykernel. Затем переименовываем .config в .config_old. И у вас получается два файла — .config_old и .config_mykernel. Кстати, есть возможность посмотреть различия между стандартной и вашей конфигурацией так:
diff .config .config_mykernel
Теперь копируем вашу конфигурацию .config_mykernel как .config.
Далее приступим к компиляции. Перед этим, нужно очистить мусор командой:
make-kpkg clean
Компиляцию ядра стоит делать под суперпользователем. Для чего становимся рутом и запускаем процесс сборки ядра:
sudo -s -H
make-kpkg --initrd --revision=1 kernel_image kernel_headers
Операция компиляции занимает довольно продолжительное время, зависящее от мощности компьютера, у меня оно обычно занимало около получаса…"
После окончания у меня в папке /usr/src появились два файла .deb, которые теперь надо установить:
sudo dpkg -i /usr/src/linux-image-3.2.5_1_i386.deb
sudo dpkg -i /usr/src/linux-headers-3.2.5_1_i386.deb
Второй пакет у меня не встал, какая-то ошибка, не стал вникать, некогда было, просто перезагрузился. Система сразу успешно загрузилась, в системном мониторе на первой вкладке сиял новый номер версии ядра - 3.2.5.

Из недостатков рецепта:
Ставить права на /usr/src/ в 777 - плохо
Собирать исходники под рутом - плохо
.deb-файлы появляются где-то не там, где их ждёшь

Просмотров: 2077 | Добавил: intell | Теги: deb, Ubuntu, ядро, linux, сборка | Рейтинг: 0.0/0
Всего комментариев: 2
1 юзер  
0
я как новичок который первый раз пересобирал ядро просто офигел от слов "Теперь копируем вашу конфигурацию .config_mykernel как .config. "
не проще это было назвать переименованием, или хоть пример навести

2 intell  
0
в посте много сырых моментов, кое-что всё равно придётся под себя править. Старался за собой основную последовательность записать, каким чудом у меня рабочее самосборное ядро получилось, да ещё и в deb-пакет упаковалось)

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]