Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.



Как изменить ядро Ubuntu Linux

Метки: | |
Четверг, 26 июня 2008 г.
Просмотров: 27926
Подписаться на комментарии по RSS


Изменение ядра не для каждого. Пожалуйста обратите внимание, что если вы попробуете сделать это, вы можете разрушить вашу систему.

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

Эта статья не объясняет как патчить ваше ядро, только как изменить текущее. Я попробую объяснить как пропатчить ядро в следующих статьях, и какие практические причины могут быть для этог.

Для начала, вам нужно посмотреть какая версия ядра у вас сейчас. Используйте для этого команду uname:

$ uname -r
2.6.17-10-generic
Теперь вам необходимо установить исходные коды Linux для вашего ядра, обратите внимание что у меня ядро 2.6.17-10. Вы можете заменить номер ядра на тот, который используется у вас. Вам также необходимо установить библиотеки и некоторые дополнительные программы, которые помогут вам при компиляции.

sudo apt-get install linux-source-2.6.17 kernel-package libncurses5-dev fakeroot
Если вам любопытно куда инсталлируются исходные коды ядра, вы можете использовать команду dpkg, которая расскажет вам это. Ниже вывод с моей системы:

$ dpkg -L linux-source-2.6.17
/.
/usr
/usr/src
/usr/src/linux-source-2.6.17.tar.bz2
/usr/share
/usr/share/doc
/usr/share/doc/linux-source-2.6.17 
(trimmed)
Вы можете увидеть что исходники устанавливаются в директории /usr/src в архивированном файле.

Для облегчения дальнейших действий, вы можете перейти в режим root используя команду sudo для открытия нового шелла. Есть другие пути для этого, но я предпочитаю этот путь.

sudo /bin/bash
Теперь смените директорию. Заметьте что вам необходимо установить утилиту bunzip если её нет в вашей системе.

cd /usr/src
bunzip2 linux-source-2.6.17.tar.bz2
tar xvf linux-source-2.6.17.tar
ln -s linux-source-2.6.17 linux
Сделайте копию текущей конфигурации ядра перед изменением. Обратите внимание, что символ `находиться под символом тильда ~.

cp /boot/config-`uname -r` /usr/src/linux/.config
Теперь мы можем запустить утилиту, которая позволит нам изменить ядро:

cd /usr/src/linux
make menuconfig
Сперва, перейдем в меню Load an Alternate Configuration File, и загрузим файл .config (просто нажав enter).

Теперь находясь внутри утилиты, мы можем установить опции для настройки ядра. Навигация очень простая. Я решил выбрать Networking и нажал клавишу Enter для перехода в эту категорию:

Amateur Radio Support? Зачем мне это? Вы можете видеть символ *, который означает что это есть в ядре.

Нажав клавишу ?, вы перейдете в справку для выбранного элемента:

Итак, я собираюсь отключить это немедленно. Зачем вообще это установлено в моем ядре? Я нажимаю Esc для выхода из окна справки, и потом нажму N для удаления этого элемента из ядра.

Когда вы закончите делать изменения, которые вам нужны, нажмите Exit и сохраните конфигурационный файл.

Теперь конфигурация готова для компиляции. Сперва сделаем очистку, просто для того чтобы убедиться, что все готово к компиляции.

make-kpkg clean
Далее мы действительно компилируем ядро. Это делается чертовски долго, так что пойдите займитесь чем нибудь ещё.

fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers
Этот процесс создаст два .deb файла в директории /usr/src. Файл linux-image**** содержит актуальный образ ядра, а другой файл содержит измененный. Имена файлов могут быть отличными в вашей системе.

Пожалуйста обратите внимание что когда вы запустите следующие команды, вы установите новое ядро как ядро по умолчанию. Это может разрушить вашу систему. Если ваша машина не загружается, вы можете нажать Esc и меню загрузки GRUB и выбрать старое ядро. Вы можете заблокировать неверное ядро в /boot/grub/menu.lst и попробовать скомпилировать его заново.

dpkg -i linux-image-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.17.14-ubuntu1-custom_2.6.17.14-ubuntu1-custom-10.00.Custom_i386.deb
Теперь перегрузите вашу машину. Если все работает, должно загрузиться новое измененное ядро. Проверьте это, испольльзуя uname.

uname -r
2.6.17.14-ubuntu1-custom
Я планирую написать серию статей о изменении ядра, так что подпишитесь на рассылку для обновлений.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Комментариев: 6

  1. обязательно подпишусь! Спасибо...

  2. "...что символ `находиться под символом тильда ~." --- вопрос: что делаеТ? ответ: находиТся (без "мягкого знака"!!!!!!!!!!!!!!!!!)

  3. Не надо меня учить!!!!!!!!!!!! smile Я это и так знаю. Мне лень делать проверку орфографии, к стыду своему.

  4. Как изменить переключение между консольными с Alt+F1, Alt+F2 и т.д. на F1, F2?

    Спасибо.

  5. When you're in not good state and have got no money to move out from that, you will have to take the business loans. Just because it will aid you definitely. I take college loan every year and feel myself great just because of that.

  6. Руслан | 2012-07-24 в 14:12:14

    tar -jvxf linux-source-2.6.17.tar.bz2

    так быстрее

Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)