Ограничение скорости загрузки в wget 3D Desktop! TouchScreen and XGL on Linux
Nov 20



Как скомпилировать ядро – путь Убунту.

Каждый дистрибутив имеет свои специфические инструменты для сборки самостоятельно настроенного ядра из исходников. Эта статья – о компилировании ядра Linux в ОС Ubuntu. Она объясняет, как построить «своё» ядро используя последние неизмененные исходные тексты с сайта www.kernel.org («ванильное ядро»), оставив систему независимой от ядер, предоставляемых разработчиками вашего дистрибутива. Статья также показывает, как установить патчи для исходных текстов ядра, если вам понадобятся возможности, здесь не описанные.
Я проверил это на Ubuntu 6.10 Server (”Edgy Eft”) и на Ubuntu 6.06 Desktop (”Dapper Drake”). В первую очередь хочу сказать, что это не единственный путь такой настройки системы. Есть много путей к достижению цели, но я пошел этой дорогой. Я не гарантирую, что это сработает у вас!

1.Предварительное замечание.

Я предпочитаю совершать все нижеописанные действитя как суперпользователь. Если вы еще не создали аккаунт суперпользователя, сделайте это сейчас:

sudo passwd root

Затем войдите в систему как суперпользователь:

su

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

apt-get update

вы должны запустить

sudo apt-get upgrade

и так далее.

1.1.В Убунту 6.10 /bin/sh – символическая ссылка на /bin/dash по умолчанию. Мне кажется, что /bin/dash вызывает проблемы при сборке из исходников (по крайней мере, у меня такое впечатление). Именно поэтому я сделал /bin/sh символической ссылкой на /bin/bash
Если вы пользователь Убунту 6.10, сделайте сейчас вот что:

rm -f /bin/sh
ln -s /bin/bash /bin/sh

2.Установка пакетов, необходимых для компиляции ядра.

Сначала мы обновим нашу базу данных пакетов:

apt-get update

Затем установим все необходимые пакеты:

apt-get install kernel-package libncurses5-dev fakeroot wget bzip2

3.Скачайте исходные тексты ядра.

Теперь мы скачаем исходники предполагаемого ядра и разместим их в /usr/src. На сайте www.kernel.org выберите ядро, которое вы хотели бы установить. (все ядра 2.6 вы можете найти здесь: http://www.kernel.org/pub/linux/kernel/v2.6/
Затем вы можете скачать их в папку /usr/src следующим образом.

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.1.tar.bz2

Теперь мы распакуем исходники и создадим символическую ссылку на директорию с исходниками ядрами.

tar xjf linux-2.6.18.1.tar.bz2
ln -s linux-2.6.18.1 linux
cd /usr/src/linux

4.Установка патчей на исходные коды ядра (опционально)

Иногда вам нужны драйвера для устройства, которое по умолчанию не поддерживается новым ядром, или вам нужна поддержка для технологий виртуализаций или других новейших технологий, которые еще не нашли своего отражения в ядре. Во всех этих случаях вам необходимо установить патчи (буде таковые имеются) для исходников ядра.
Теперь давайте убедимся в том, что вы скачали нужный патч (я назвал его для примера patch.bz2) в директорию /usr/src. Так вы установите патч для ядра (вы все еще должны быть в директории /usr/src/linux):

bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1

Первая команда – всего лишь тест. Он ничего не делает с вашими исходниками. Если первая команда не показала ошибок, переходим ко второй, которая и установит патч. Не делайте этого, если первая команда выдала ошибку!

Вы также можете установить пре-патчи ядра для ваших исходников ядра. К примеру, если вам нужна возможность, доступная только в ядре 2.6.19-rc4, но исходный код актуального ядра не содержит нужной вам возможности. Однако, доступен файл patch-2.6.19-rc4.bz2. Вы можете установить этот патч на исходники ядра 2.6.18, но не на 2.6.18.1 или 2.6.18.2 и т.д. Почему так происходит – читайте на http://kernel.org/patchtypes/pre.html:
Пре-патчи эквивалентны альфа-релизам ядра Линукс; они «живут» в тестируемых директориях в архивах. Пре-патчи устанавливаются с помощью утилиты patch(1) на исходный код предыдущего полного релиза с трехзначным номером версии (к примеру, пре-патч 2.6.12-rc4 может быть установлен на исходники ядра 2.6.11, но не на 2.6.11.10).
Так что если вы хотите скомипилровать ядро версии 2.6.19-rc4, вы должны скачать исходный код ядра версии 2.6.18 (http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.18.tar.bz2), вместо 2.6.18.1, упомянутый в шаге 3.
Установить патч 2.6.19-rc4 на код ядра 2.6.18 вы можете так:

cd /usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/testing/patch-2.6.19-rc4.bz2
cd /usr/src/linux
bzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1 --dry-run
bzip2 -dc /usr/src/patch-2.6.19-rc4.bz2 | patch -p1

5.Конфигурирование ядра.

Хорошей мыслью будет использование конфигурации вашего текущего ядра в качестве базиса для конфигурирования нового ядра. Скопируем текущую конфигурацию в /usr/src/linux:

cp /boot/config-`uname -r` ./.config

Затем запускайте

make menuconfig

Вы попадете в меню конфигурации ядра. Выберите Load an Alternate Configuration File, затем выберите .config (который содежит вашу текущую конфигурацию ядра) в качестве файла конфигурации.
Компиляция ядра - The Ubuntu Way

Компиляция ядра - The Ubuntu Way

Затем просмотрите меню конфигурации ядра и… сделайте ваш выбор! (о том, что нужно убрать, а что – оставить, можно книгу написать. В 2.6.18 много экспериментальных фич, многое из поддержки железа вам не понадобится в силу того, что этого железа у вас не и не будет… смотрите сами) Когда вы закончите, выберите Exit и на последующий вопрос (Do you wish to save your new kernel configuration?) ответьте Yes.
Компиляция ядра - The Ubuntu Way
6.Компиляция ядра.

Чтобы скомпилировать ядро, выполните следующие команды:

make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers

После –append-to-version= вы можете вписать все что угодно – все, что поможет вам в дальнейшем идентифицировать «ваше» ядро, но это название должно начинаться на минус («-») и не содержать пробелов.
Теперь потерпите – компиляция ядра может занять несколько часов, все зависит от того, как вы сконфигурировали ядро и от того, насколько быстр ваш процессор.

7.Инсталляция нового ядра.

После того, как компиляция нового ядра успешно завершится, в директории /usr/src появятся два deb-файла:
cd /usr/src
ls -l

В моей системе они назывались linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb (который содержал само ядро) и linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb (который содержал файлы, которые могут понадобиться, если вы в дальнейшем захотите скомпилировать дополнительные модули ядра). Я их установил так:
dpkg -i linux-image-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb
dpkg -i linux-headers-2.6.18.1-custom_2.6.18.1-custom-10.00.Custom_i386.deb

(Кстати, теперь вы можете аналогичным образом устанавливать «свое» ядро и на других машинах с Убунту, то есть вам не надо еще раз собирать ядро) (что, впрочем, не означает, что оно заработает на другой машине – прим.пер.)

Вы сделали это. (That’s it. :) – прим.пер). Теперь вы можете проверить /boot/grub/menu.lst – там вы найдете две новых записи для вашего нового ядра:

vi /boot/grub/menu.lst

(а еще можно nano /boot/grub/menu.lst – прим.пер).

Записи в menu.lst на моей системе выглядели так:

title Ubuntu, kernel 2.6.18.1-custom
root (hd0,0)
kernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro quiet splash
initrd /boot/initrd.img-2.6.18.1-custom
savedefault
boot
title Ubuntu, kernel 2.6.18.1-custom (recovery mode)
root (hd0,0)
kernel /boot/vmlinuz-2.6.18.1-custom root=/dev/sda1 ro single
initrd /boot/initrd.img-2.6.18.1-custom
boot

Теперь перезагружайтесь:
shutdown -r now
Если все прошло гладко, вы загрузите свою ОС с использованием нового ядра. Чтобы проверить, действительно ли используется новое ядро:

uname -r
На дисплей будет выведено что-то вроде 2.6.18.1-custom.
Если же система не грузится, перезагружайтесь и на экране GRUB’а нажмите Esc чтобы попасть в меню загрузки.
Компиляция ядра - The Ubuntu Way
Компиляция ядра - The Ubuntu Way
Выберите ваше старое ядро и запускайте систему. Теперь вы можете еще раз попробовать собрать работающее ядро. Не забудьте удалить нерабочие записи из /boot/grub/menu.lst.

Дополнения:

Trident:
Одна из проблем с которой сталкиваются пользователи видеокарт nVidia – бинарные драйвера. Они откажутся работать с новым ядром (соответственно, вы не получите Иксов) до тех пор, пока вы их не переустановите. Но тут еще одна проблемка – нужна соответствующая версия заголовков ядра и соответствующая версия gcc… Я думаю, что методом проб и ошибок каждый может дойти до цели, а если пробы и ошибки не помогают, то:
1.http://forum.ubuntu.ru
2.Don’t ask for ask – just ask: #ubuntu-russian at irc.freenode.net (UTF-8 here).

Trident:
автор предпочел производить все свои действия в /usr/src. Однако практика показывает что лучше это сделать где-нибудь в домашнем каталоге. Это безопаснее ;)

От меня:
также возможен вариант добавления юзера в группу src, чтобы использовать права суперпользователя только для инсталяции уже собранного ядра
sudo adduser a_username src

Статью предоставил: Лысов Дмитрий aka Trident
Вирсия: 1.1

Print This Print This

Tags:

18 Responses to “HowTo: Компиляция ядра – The Ubuntu Way”

  1. Drakula Says:

    Хочу заметить что если команду

    make-kpkg clean

    сделать после

    make menuconfig

    то файлик .config весело сотрется :)
    и еще, команду

    fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers

    лучше писать (по крайней мере в моем убунту 7.04)

    fakeroot make-kpkg –initrd –append-to-version=-custom kernel_image kernel_headers

  2. Drakula Says:

    в дополнение к коментарию выше: на страничке заменяется двойное тире на длинное, когда пишем команды надо учитывать

  3. xlibs Says:

    Да, это такая интересная специфика движка данного сайта, автозамена двух минусов на длинное тире.

  4. Soft Says:

    я пользовался другой командой… правда собрал Debian kernel, но тем не менее это работает :)
    # make-kpkg --initrd --revision=custom kernel_image

  5. vestel Says:

    **Dracula**, зачем же так пугать? Я тормознул компиляцию, полез смотреть, не поменялось ли у меня что в .config, все в порядке make-kpkg clean ничего не удаляет.

  6. jt3k Says:

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

    листинг в разделе 6 “Компиляция ядра” абсолютно безграмотный. В нём нумерация строк идёт до трёх, а команд всего две ну это из за того, что цифры нумерации строк это обычная картинка. тут уж ничего не поделаешь

    и в последнем блоке текста возможна опечатка в слове “scr”.. ниже идёт команда sudo adduser a_username src

    Спасибо автору!

  7. jfs2 Says:

    00 make-kpkg clean
    01 fakeroot make-kpkg –initrd –append-to-version=-custom
    02 kernel_image kernel_headers
    bash: kernel_image: команда не найдена

    и все у них так. по советски…

  8. lexx Says:

    make-kpkg clean – вот уже заметили , что ооооооочень невовремя ты эту команду вставил..
    Большой незачет!!

  9. nerh Says:

    У меня возникла следующая проблема. При установке ошибок не возникло, но в menu.lst все осталось без изменений. Пробовал прописать сам, но при загрузке ОС появлялся бизибокс, сообщавший о том, что устройство не найдено.
    В чем может заключаться причина необновления menu.lst после инсталляции?

  10. Scorp Says:

    А мне не понятно вот что… В процессе выполнения 6 шага (компиляции ядра) появляется ошибка о недостаточном свободном месте, и действительно папка с ядром к этому моменту весит больше 2 Гб. Разве это нормально? Ядро так и должно весить???

  11. Drakula Says:

    Я осознал свою ошибку. .config не удаляется, просто у меня в файловом менеджере не включено было отображение скрытых файлов

  12. Dehmer Says:

    really…

    Fat women and girls always worried because of their ugly shaped bodies. They want to wear expensive and stylish outfits . http://swrtyjy.jigsy.com/#dialog:close but they can not wear these outwears…

  13. Gander Says:

    Greate…

    It’s such a great site! http://harveygnhunter.blogdrive.com/archive/19.html Great post, I just bookmarked it on Digg….

  14. venzingS Says:

    Great One…

    I must say, its worth it! My link, http://www.thoughts.com/ashley11,thanks haha…

  15. ctilde Says:

    Great One…

    I must say, its worth it! My link, http://anast.bloging.ro/,thanks haha…

  16. Chantelle Says:

    very helpful…

    I preferred to thank you for this good article. http://oldright.com/wp-admin/user/ I by all odds liked every little bit of it…

  17. Chantelle Says:

    Great…

    What is a good sport that is enjoyable and recommended for computer overworkers?, http://jtxyl.blogs.experienceproject.com/…

  18. portable ice maker reviews Says:

    portable ice makers for sale…

    http://www.kamusta.ph/topic/haydenpnrodriguez/117564…

Leave a Reply

  • Buy Cheapest double dose of cialis Now Best Prices. Drugs, Health And Beauty.
  • Buy Cheapest buying medication Online Best Online. No Prescription Needed.
  • Buy Cheap phentermine without doctors perscription Now Free Viagra Pills! No Prescription Needed.
  • Buy Cheapest blue pills 180 Now Best Internet. Online Prices For blue pills 180!
  • Buy Cheap buy prescription drugs Now Cheap Pharmacy Online. Cheap Online Pharmacy.
  • Buy Cheapest fat burn weight loss pills Online Pharmacy Store. 24/Online Pharmacy.
  • Buy Cheap cheap diet pills Online Pharmacy Store. Buy Medications Online.
  • Buy Cheapest dietary supplement Online Cheap Online Pharmacy. Best Internet.
  • Buy Cheap substitute for viagra Now Low Prices. No Prescription Needed For Drugs.
  • Buy xenical online Online Without Prescription. Internet Prices For xenical online!
  • Buy Cheap finasteride Online Online Prices For finasteride! Best Online.
  • Buy Cheapest free trail of cialis Now 24/Online Pharmacy. Top Online Pharmacy.
  • Buy Cheap ambien purchase Now WorldWide Shipping. Cheap Pharmacy Online.
  • Buy Cheap color of viagra Online Low Prices. Top Online Pharmacy Supplier.
  • Buy Cheapest internet pharmacies no prescription Online Best Drugstore. Cheap Pharmacy Online.
  • Buy Cheap erectile dysfunction pills Now Best Drugstore. Top Online Pharmacy Supplier.
  • Buy Cheap diflucan dosing Now WorldWide Shipping. Online Medical Shop.
  • Buy Cheapest female viagra cheap Online Free Viagra Pills! Best Drugstore.
  • Buy Cheap buying medication online Now WorldWide Shipping. Cheap Prescription Drugs.
  • Buy Cheap cheaper viagra Online 24/Internet)(safe Pharmacy. Best Prices.
  • Buy Cheap purchase proactive acne solution Online Buy Medications Online. Free Viagra Pills!
  • Buy Cheapest canadian pharmacy drug Online Best Online. Drugs, Health And Beauty.
  • Buy Cheap pain pills ordering Online Pharmacy Store. Online Medical Shop.
  • Buy Cheap prozac zoloft Online Best Drugstore. Cheap Prescription Drugs.
  • Buy Cheap tips to curb your appetite Now Top Online Pharmacy Supplier. Best Online.
  • Buy Cheap fluoxetine cheap Now Cheap Prescription Drugs. WorldWide Shipping.
  • Buy Cheapest safe online ordering for diet pills Now WorldWide Shipping. Guaranteed Shipping.
  • Buy Cheapest lipitor order Online Online Medical Shop. WorldWide Shipping.
  • Buy Cheap what is the generic for viagra Now No Prescription Needed For Drugs. Best Prices.
  • Buy Cheapest geniune cialis no prescription Online Low Prices. Special Prices For geniune cialis no prescription!
  • Buy Cheapest prices levitra Now Best Online. Order Cheap Meds Without Rx.
  • Buy Cheapest order levitra online Now Cheap Pharmacy Online. Best Internet.
  • Buy Cheapest viagra next day shipment Online Best Prices. 24/Online Pharmacy.
  • Buy Cheapest erectile function and cialis Now Best Drugstore. No Prescription Needed.
  • Buy Cheap weight loss medicine buy online Now No Prescription Needed. Top Online Pharmacy.
  • Buy Cheap canadian online pharmacies Now 24/Online Pharmacy. Cheap Online Pharmacy.
  • Buy Cheap buy klonopin online Now Best Drugstore. Discount Online Pharmacy.
  • Buy Cheap new diet pill released by fda Online Buy Medications Online. Free Viagra Pills!
  • Buy Cheapest ambien cheapest Now Discount Pharmacy Online. Best Prices.
  • Buy Cheapest natural neck pain relief Now Order Cheap Meds Without Rx. Best Prices.
  • Buy Cheap organic vitamins Now Buy Medications Online. Cheap Online Pharmacy.
  • Buy Cheap propecia cheapest Now Buy Medications Online. Free Viagra Pills!
  • Buy Cheapest non prescription pain relief Online 24/Online Pharmacy. Low Prices.
  • Buy Cheapest viagra generic brand Now Best Drugstore. Special Prices For viagra generic brand!
  • Buy Cheap ativan effects Now Top Online Pharmacy. Guaranteed Shipping.
  • Buy Cheap low price cost prescription drugs Online Safe And Secure Payment System. Low Prices.
  • Buy Cheap sale cheap pain killer Now Online Medical Shop. Free Viagra Pills!
  • Buy Cheap diet weight loss supplements Now Guaranteed Shipping. 24/Online Pharmacy.
  • Buy Cheapest ambien cheap generic Now Cheap Online Pharmacy. Guaranteed Shipping.
  • Buy Cheapest canadian infertility Now 24/Online Pharmacy. WorldWide Shipping.
  • Buy Cheap cheap viagra pill Now Best Internet. Drugs, Health And Beauty.
  • Buy Cheap drug stores Online 24/Online Pharmacy. Best Internet.
  • Buy Cheapest buy tenormin Now Pharmacy At The Best Price! Best Prices.
  • Buy Cheapest viagra online canada Now Best Drugstore. Cheap Online Pharmacy.
  • Buy Cheapest free diet pills samples Online Drugs, Health And Beauty. Low Prices.
  • Buy Cheap herbs that suppress appetite Now Pharmacy Store. Buy Medications Online.
  • Buy Cheap buy generic levitra online Now Online Medical Shop. Drugs, Health And Beauty.
  • Buy Cheapest xanax and alcohol Online Online Prices For xanax and alcohol! Best Prices.
  • Buy Cheap paypal cialis Now Top Online Pharmacy. Buy Medications Online.
  • Buy Cheap ultram drug interaction Now Order Cheap Meds Without Rx. Best Prices.
  • Buy Cheap prescription drug interactions Now Best Prices. Safe And Secure Payment System.
  • Buy Cheapest zoloft for anxiety Online Buy Medications Online. Low Prices.
  • cod tramadol online Online Without Prescription Best Online. Best Prices.
  • Buy Cheapest human parasites infection pills Online Pharmacy Store. WorldWide Shipping.
  • Buy Cheapest discount viagra europe Now Guaranteed Shipping. Free Viagra Pills!
  • Buy Cheap discount erectile dysfunction medications Now Discount Online Pharmacy Shopping. Low Prices.
  • Buy Cheap information ultram Now Cheap Meds Without Prescription. Best Prices.
  • Buy Cheap cheap vpxl Online Low Prices. Top Online Pharmacy Supplier.
  • Buy Cheapest women using viagra Now Cheap Pharmacy Online. Top Online Pharmacy.
  • Buy Cheapest bayer levitra cheapest price Online No Prescription Needed. Best Drugstore.
  • Buy Cheap effects of tadalafil Now Low Prices. Top Online Pharmacy Supplier.
  • Buy Cheap online pharmacy mexico Now The Largest Internet Pharmacy. Best Drugstore.
  • Buy Cheap viagra for her Now Discount Pharmacy Online. Top Online Pharmacy.
  • Buy Cheapest fat burner Online No Prescription Needed. Best Prices.
  • Buy Cheap new drug levitra Now Discount Pharmacy Online. WorldWide Shipping.
  • Buy Cheap prescribed weight loss medication Online WorldWide Shipping. Buy Medications Online.
  • Buy Cheapest generic cialis prices Now Top Online Pharmacy Supplier. Best Prices.
  • Buy Cheap levitra canada Online Best Internet. Discount Online Pharmacy.
  • Buy Cheapest valium without a prescription Now Cheap Online Pharmacy. Guaranteed Shipping.
  • Buy Cheapest levitra professional international mail order Now Safe And Secure Payment System. Low Prices.
  • Buy Cheapest prescription meds online Online 24/Online Pharmacy. Best Online.
  • order zoloft online Online Without Prescription Top Online Pharmacy. Low Prices.
  • Buy Cheapest xanax consultation us doctor Now Pharmacy Store. Top Online Pharmacy.
  • Buy Cheap klonopin long term effects Now Order Cheap Meds Without Rx. Best Internet.
  • Buy Cheap cialis precautions Online Low Prices. Pharmacy At The Best Price!
  • Buy Cheap cialis drugs Now Online Prices For cialis drugs! Top Online Pharmacy.
  • Buy Cheap online pharmacy valium Now Discount Pharmacy Online. Pharmacy Store.
  • Buy Cheap valium and alcohol Online Discount Online Pharmacy. Pharmacy Store.
  • Buy Cheap valium drug identification Online Guaranteed Shipping. 24/Online Pharmacy.
  • xanax warnings Online Without Prescription WorldWide Shipping. Best Online.
  • Buy Cheapest best over the counter diet pill Now Low Prices. Discount Online Pharmacy.
  • Buy Cheapest pinworm cure Now Online Medical Shop. Pharmacy Store.
  • Buy Cheapest muscle relaxer pain pill Now Best Prices. Cheap Prescription Drugs.
  • Buy Cheapest viagra erection duration Online Cheap Pharmacy Online. Best Internet.
  • Buy Cheap no prescription pharmacy Now Free Viagra Pills! Pharmacy At The Best Price!
  • Buy Cheap viagra products Now Low Prices. Internet Prices For viagra products!
  • Buy Cheapest cheapest ultram Now Discount Online Pharmacy. Pharmacy Store.
  • compare levitra Online Without Prescription Best Prices. Best Online.
  • Buy Cheapest viagra online uk Now Drugs, Health And Beauty. Low Prices.
  • Buy Cheapest viagra affiliate Online Buy Medications Online. Best Drugstore.