Какой простой способ перекомпилировать ядро?

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

1
задан 10 August 2012 в 16:16

2 ответа

Вот шаги.

Загрузите и извлеките исходный код ядра, которое вы хотите построить.

Вы можете получить информацию о том, как это сделать: Скомпилировать Linux 2.6, но значительно модернизироваться. исходный исходный код ядра на kernel.org. Здесь будет использоваться версия 3.16.1 (последнее стабильное ядро ​​на момент написания этой статьи). Таким образом, вам может потребоваться изменить эти команды, если вы используете другую версию.

Исходный код ядра в настоящее время предоставляется. upstream .xz archives, поэтому нажмите «tar». xz "по любой желаемой версии:

После xz в каталог, в который вы загрузили архив, вы можете извлечь его с помощью kernel.org :

tar xf linux-3.16.1.tar.xz

Установите необходимые инструменты сборки и выполните конфигурацию ядра.

Чтобы получить инструментальную цепочку Ubuntu (gcc, make и т. д. вперед) установите метатеку сборки:

sudo apt-get update
sudo apt-get install build-essential

Два разумных способа настройки того, что входит в ваше ядро, предоставляются целевыми make xconfig и menuconfig.

xconfig запускает графическую конфигурационную утилиту, тогда как menuconfig является текстовым (т. е. его интерфейс полностью отображается в вашем терминале). Для каждого из них требуется некоторое дополнительное программное обеспечение . Эта процедура основана на «Практическое руководство для Linux Linux 2.6» nixCraft: но значительно модернизирована. предоставлена ​​ toolchain .

To сконфигурировать графически, установить libqt4-dev и build-essential и запустить make xconfig:

sudo apt-get install libqt4-dev pkg-config
make xconfig

Чтобы настроить графически , установите libncurses5-dev ( благодаря libqt4-dev для этой информации) и запустите make menuconfig:

sudo apt-get install libncurses5-dev
make menuconfig

Создайте сконфигурированное ядро.

Сначала запустите это, чтобы скомпилировать kernel и create vmlinuz:

make

vmlinuz - это «ядро». В частности, это изображение ядра будет несжато и загружено в память с помощью vmlinuz или любого другого загрузчика, который вы используете.

Затем создайте загрузчик ! d43]:

make modules

Установите новое построенное ядро.

Предполагая, что эти команды make выполнены успешно, пришло время установить новое ядро. Сначала Чтобы настроить графически

sudo make modules_install

Затем Чтобы настроить графически :

sudo make install
[d53 ] Это ставит vmlinuz-3.16.1 (копия vmlinuz), config-3.16.1 (текстовый файл, сохраняющий параметры конфигурации ядра) и System.map-3.16.1 (таблица поиска символов ядра) в /boot. Более подробную информацию см. В этом сообщении comp.os.linux.misc от Hadron и
3.16.1 .

Окончательная настройка, поэтому ядро ​​можно запустить и загрузить систему: [ ! d57]

Этот раздел частично основан на информации в nixCraft .

С ядром теперь, где это необходимо, ему необходимо:

запись в конфигурации загрузчика, поэтому вы можете выбрать и загрузить с нее. исходную файловую систему RAM, среду, из которой ядро ​​загружает драйверы и монтирует файловую систему /. (Если вы устанавливаете старое ядро ​​или настроили свое ядро ​​на использование devfs вместо нового udev, вам может понадобиться или вы хотите установить исходный ramdisk. Если вы знаете, что вам это нужно, см. [F33].)

Создайте свои initramfs с помощью таблицы поиска символов ядра :

cd /boot
sudo mkinitramfs -ko initrd.img-3.16.1 3.16.1

Когда вы обновляете конфигурацию загрузчика GRUB2, который был по умолчанию в Ubuntu с 9.10 - это сообщение comp.os.linux.misc от Hadron и добавьте возможность его загрузки.

sudo update-grub

Попробуйте свое ядро. [!d81 ]

Теперь вы можете перезагрузиться, чтобы протестировать новое ядро. Вам может потребоваться удерживать Shift во время загрузки, чтобы увидеть меню загрузки GRUB, где вы можете выбрать между различными установленными ядрами.

Чтобы сделать ваше ядро ​​(или другое) по умолчанию, см. [D79] по умолчанию в Ubuntu

16
ответ дан 25 May 2018 в 08:41
  • 1
    Шаг 3, make menuconfig требует apt get install libncurses5-dev – Hannu 19 August 2014 в 15:03
  • 2
    @ Ханну спасибо, я просто совсем забыл упомянуть об этом. 64-битным пользователям системы может потребоваться «ia32-libs». также для поддержки 32-разрядных программ для запуска. – Novice 19 August 2014 в 15:37
  • 3
    Может быть, лучше найти и независимый от версии пакет ... Я не уверен, что есть хоть что. – Hannu 19 August 2014 в 15:47
  • 4
    @EliahKagan Спасибо. Теперь все в порядке или я должен удалить его полностью? У меня нет проблем в этом. – Novice 19 August 2014 в 17:05
  • 5
    -1 Это не создает ядро ​​ Ubuntu . Он даже не создает файлы .deb. Это рецепт проблем. – Aleksandr Dubinsky 28 September 2016 в 15:11

Быстрые инструкции по созданию ядра Ubuntu (в отличие от ванили) можно найти здесь: https://wiki.ubuntu.com/Kernel/BuildYourOwnKernel.

Я не буду копировать весь wiki, но я перечислю минимальные шаги для компиляции версии ядра Ubuntu, которую вы в настоящее время установили. (Чтобы получить самую последнюю версию, клонируйте ядро ​​git-репозитория предстоящей версии Ubuntu.) Протестировано на Ubuntu 16.04.

# Get source code
apt-get source linux-image-$(uname -r)

# Install dependencies
sudo apt-get build-dep linux-image-$(uname -r)

# Compile
cd linux-4.4.0
fakeroot debian/rules clean
fakeroot debian/rules binary

# Install (obviously the versions will be different)
cd ..
sudo dpkg -i linux-image-4.4.0-38-generic_4.4.0-38.57_amd64.deb linux-headers-4.4.0-38_4.4.0-38.57_all.deb linux-headers-4.4.0-38-generic_4.4.0-38.57_amd64.deb
2
ответ дан 25 May 2018 в 08:41

Другие вопросы по тегам:

Похожие вопросы: