Компиляция и установка нового ядра в Ubuntu 10.04

1229
pineapple

У меня Ubuntu 10.04 работает на VMware на хосте Windows. Я изучаю программирование драйверов устройств Linux. В процессе я пытался настроить дерево исходных кодов Linux, а также собрать и загрузить собственное ядро. Я сделал два пакета .deb (собственное ядро) и установил их с помощью dpkg ( http://www.howtoforge.com/kernel_compilation_ubuntu_p2 ). Затем, когда я перезагружаюсь, он говорит: паника ядра, неспособность смонтировать root fs на unknown-block (0,0). Пожалуйста, руководство, что я должен делать?

Моя система имеет GRUB2.

Также, пожалуйста, расскажите, какой дистрибутив Linux является лучшим для изучения программирования драйверов устройств Linux. Я нахожу Ubuntu несколько сложным, так как большинство учебников, которые я нахожу в Интернете по сборке ядер, написаны для универсального linux, но в Ubuntu есть другой путь. Там не так много помощи, доступной.

0
Вы создали initramfs для нового ядра? Без этого он может не иметь всех модулей, необходимых для загрузки вашей системы. cdhowie 13 лет назад 1
Я новичок. Я не создал это. Что бы ни было упомянуто на этой странице http://www.howtoforge.com/kernel_compilation_ubuntu_p2, я сделал это. Я думаю, что пакет .deb имеет файл initrm pineapple 13 лет назад 0
Пакеты ядра Deb не содержат файлов initramfs, потому что они обычно собираются * для системы * как часть процесса установки / обновления. Взгляните на `man mkinitramfs` и попробуйте создать его для нового ядра. cdhowie 13 лет назад 0
Не могли бы вы порекомендовать простой дистрибутив Linux, который я могу легко использовать для своих целей. Я застрял в течение длительного времени только для создания ядра и до сих пор не удалось pineapple 13 лет назад 0
Нет лучшего распределения. Вы выбираете тот, который подходит для этой задачи, если только вы не выбрали один на основе апелляции. 13 лет назад 0
Я разделяю ваше мнение о том, что Ubuntu не является серьезной платформой для разработки (в конце концов, они пытаются работать с настольными системами для новичков); в результате их компоненты часто устарели. Когда дело доходит до «пяти лучших» дистрибутивов (как определено distrowatch.org), я могу поручиться за Fedora, openSUSE и (в настоящее время) Debian-6, отвечающие требованиям серьезных разработчиков. 13 лет назад 0
Что ж, вы * должны * уметь работать с дистро-агностическими учебниками (их масса, к которой вы, похоже, испытываете отвращение), даже на Unbunt. В конце концов, в этом и заключается смысл быть универсальным. Это не значит, что вы * обязаны * создавать бинарные пакеты для дистрибутивов. 13 лет назад 0

2 ответа на вопрос

2

To config, build, and install new kernel on Ubuntu 10.04 follow these steps:

  1. cd to the directory with the kernel source tree (assuming this is ~/linux):

    cd ~/linux 
  2. Copy your current kernel configuration to the source tree:

    cp /boot/config-2.6.32-32-generic .config 
  3. Config additional options (here I just accept defaults):

    yes '' | make oldconfig 

    Now you can change some options, if you don't want defaults. On my machine I chose 'Processor family' = 'Core 2' and 'Preemption model' = 'Preemptible kernel'. To do this run:

    make menuconfig 

    and chose options that you like. You can press ? on any option and there will be short description.

  4. Build the kernel:

    make -j4 > /dev/null 

    change 4 to the (number_of_physical_cores_on_your_machine * 2), this will make building of the kernel a lot faster. Don't be afraid of > /dev/null since all the warnings and errors still will be output.

  5. Install the new kernel:

    sudo -s make INSTALL_MOD_STRIP=1 modules_install 

    you can just make modules_install if you plan to debug the kernel

    make install update-initramfs -c -k `make kernelrelease` update-grub exit 

This how-to is based on New kernel on Ubuntu 10.04

0

I'll recomend Gentoo. It's a little bit harder to install and use then out of the box Ubuntu, but you are getting to know your system from the beginning. Even if you are newbie, installation instructions will guide you through the process, and compiling your own kernel is a part of it.