Главная » 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-файлы появляются где-то не там, где их ждёшь
я как новичок который первый раз пересобирал ядро просто офигел от слов "Теперь копируем вашу конфигурацию .config_mykernel как .config. " не проще это было назвать переименованием, или хоть пример навести
в посте много сырых моментов, кое-что всё равно придётся под себя править. Старался за собой основную последовательность записать, каким чудом у меня рабочее самосборное ядро получилось, да ещё и в deb-пакет упаковалось)
Добавлять комментарии могут только зарегистрированные пользователи. [ Регистрация | Вход ]