Я заинтересован в компиляции нового ядра под Ubuntu 12.04 x86 64 bit.
Я нашел эту вики-страницу, которая в основном является зеркалом для этого блога, и есть много шагов ( мерзавец и т. Д.), Которые кажутся мне бесполезными.
В более ранних выпусках / дистрибутивах я использовал для создания .config
файла и изменения, Makefile
если нужно, затем просто запускаю make
и все готово.
Есть ли простой способ сделать это под Ubuntu?
Ответы:
1. Используйте
apt-get source
для загрузки версии ядра Ubuntuдает папку, которая содержит, например:
Дифференциал с жирным шрифтом включает в себя все настройки Ubuntu / Debian.
2. Чтобы собрать собственное ядро
.config
, используйте «старомодный»make-kpkg
метод DebianЭто альтернативный старомодный способ, описанный в вики:
Если вы собираете ядро впервые:
Затем
cd
в исходный каталог (здесь,linux-3.2.0
) и либо запустите,make oldconfig
чтобы создать.config
файл с конфигурацией вашего работающего ядра, либо скопируйте третью часть.config
в этот каталог.В зависимости от того, хотите ли вы текстовую или графическую конфигурацию, установите:
(Текст)
(Графический)
А затем запустите:
(Текст)
(Графический)
Когда закончите, просто запустите:
где
N
сколько параллельных заданий (обычно это количество процессоров у вас есть), иmy-very-own-kernel
также пользовательская строка для идентификации этой сборки.Когда все будет готово, образ ядра и файлы заголовков будут готовы в качестве debs в родительском каталоге; вы можете установить их с помощью
sudo dpkg -i
, что также позаботится о добавлении записей GRUB и т. д.источник
linux-3.2.0
каталог и запуститьpatch -p1 <../patch.diff
?apt-get source ...
сделал это для вас уже!fakeroot debian/rules editconfigs
,fakeroot debian/rules clean
,fakeroot debian/rules binary
Является правильным, без проблем способа.Вот шаги. Эта процедура основана на nixCraft «S Как: Compile Linux ядра 2.6 --but значительно модернизирован.
Скачайте и распакуйте исходный код ядра, которое вы хотите собрать.
Вы можете получить на входе ядра исходный код на kernel.org . Версия 3.16.1 (последнее стабильное ядро на момент написания статьи) будет использоваться здесь. Поэтому вам может потребоваться изменить эти команды, если вы используете другую версию.
Исходный код ядра в настоящее время предоставляется в. деготь . архивы xz , поэтому нажмите ссылку «tar.xz» для любой версии:
После того, как
cd
ING в каталог , куда вы скачали архив, вы можете извлечь егоtar
:Установите необходимые инструменты сборки и выполните настройку ядра.
Для того, чтобы получить в Ubuntu набор инструментов (
gcc
,make
и так далее) установить встраиваемый существенно метапакет:Два разумных и удобных способа настройки того, что входит в ваше ядро, обеспечиваются
make
целевыми объектамиxconfig
иmenuconfig
.xconfig
запускает утилиту графической конфигурации, в то время какmenuconfig
работает на основе текста (т. е. ее интерфейс полностью отображается в вашем терминале) Каждому требуется дополнительное программное обеспечение, не предоставляемое build-essential .Для графической настройки установите libqt4-dev и pkg-config и выполните
make xconfig
:Для настройки в терминале установите
libncurses5-dev
(спасибо Hannu за эту информацию) и запуститеmake menuconfig
:Соберите настроенное ядро.
Сначала запустите это, чтобы скомпилировать ядро и создать
vmlinuz
:vmlinuz
это «ядро». В частности, это образ ядра, который будет распакован и загружен в память GRUB или любым другим используемым вами загрузчиком .Затем создайте загружаемые модули ядра :
Установите ваше новое ядро.
Предполагая, что эти
make
команды выполнены успешно, пришло время установить новое ядро. Сначала установите модули:Затем установите само ядро :
Это помещает
vmlinuz-3.16.1
(копиюvmlinuz
),config-3.16.1
(текстовый файл, хранящий параметры конфигурации ядра) иSystem.map-3.16.1
( таблицу поиска символов ядра ) в/boot
. Для получения более подробной информации см. Этот пост comp.os.linux.misc от Hadron иman installkernel
.Окончательная настройка, чтобы ядро можно было запустить и загрузить систему:
Этот раздел частично основан на информации в Kernel / Compile .
Теперь, когда ядро находится там, где оно должно быть, оно должно:
запись в конфигурации загрузчика , так что вы можете выбрать и загрузить из нее.
начальный RAM файловой системы , среда , из которой ядро загружает драйверы и монтирует
/
файловую систему .(Если вы устанавливаете старое ядро или настроили свое ядро на использование devfs вместо более нового udev , вам может потребоваться или вы захотите вместо этого установить начальный ramdisk . Если вы знаете, что вам это нужно, см
man initrd
.).Создайте ваши initramfs с
mkinitramfs
:Когда вы обновляете конфигурацию загрузчика GRUB2, который был установлен по умолчанию в Ubuntu с 9.10, он должен автоматически обнаружить новое ядро и добавить опцию загрузки с него.
Попробуйте свое ядро.
Теперь вы можете перезагрузиться, чтобы протестировать ваше новое ядро. Возможно, вам придется удерживать Shiftили нажатьEsc во время загрузки, чтобы увидеть меню загрузки GRUB, где вы можете выбирать между различными установленными ядрами.
Чтобы сделать ядро (или другое) по умолчанию, см. Раздел Как изменить порядок загрузки GRUB?
источник
make menuconfig
требуетсяapt get install libncurses5-dev
Краткие инструкции по сборке ядра Ubuntu (в отличие от vanilla) можно найти здесь: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel .
Я не буду копировать всю вики, но я перечислю минимальные шаги для компиляции версии ядра Ubuntu, которое вы в настоящее время установили. (Чтобы получить самую последнюю версию, клонируйте репозиторий git для ядра в следующем выпуске Ubuntu.) Протестировано в Ubuntu 16.04.
источник