Как я могу изменить ядро, когда на моей машине уже работает Ubuntu?

Извините, если это чрезвычайно глупый вопрос, но я новичок в Linux, и я хотел бы попытаться выяснить, как изменить мою собственную систему. Из того, что я немного знаю о Linux, я могу предположить, что на самом деле я ищу исходный код ядра. Я знаю, что есть некоторые ресурсы, которые позволили бы мне загрузить копию ядра (например, kernel.org), но, вероятно, это всего лишь копия, и я должен был бы переключиться с моего текущего ядра на это новое после того, как изменить его, чтобы увидеть, что изменения, которые я делаю, вступают в силу. Есть ли способ избежать этого и просто изменить ядро, которое у меня уже есть? И если нет, то как мне сказать Ubuntu использовать новое загруженное ядро, а не оригинальное? И как я узнаю, будут ли мои изменения испортить систему? Заранее спасибо за помощь!

3
задан 11 December 2012 в 05:02

3 ответа

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

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

Существует множество способов разработки ядра, вот способ, который должен быть простым, если у вас есть некоторый опыт использования ubuntu.

Быстро и грязно (вам нужно указать несколько аргументов \ путей):

sudo apt-get install libncurses5-dev binutils-dev linux-source 
sudo apt-get install fakeroot build-essential crash kernel-wedge kernel-package  

mkdir ~/src
cd ~/src
apt-get source linux-image-$(uname -r)
cd linux-3._LINUX_SRC_FOLDER_

Просто войдите в меню, если хотите, или просто выйдите и сохраните.

make menuconfig

Уровень параллелизма при его составлении. (количество ядер процессора +1)

export CONCURRENCY_LEVEL=5

Выберите целевую систему, Google или пропустите. Два примера

export CHOST="x86_64-pc-Linux-gnu"
export CHOST="i686-pc-linux-gnu"

Если вы хотите оптимизировать компилятор, например.

export CFLAGS="-march=native -O2 -pipe"
export CXXFLAGS="$CFLAGS"

Сделайте ваши настройки, например.

vim ~/src/LINUX_SRC_FOLDER/include/linux/hid.h 
cd  ~/src/LINUX_SRC_FOLDER

Скомпилируйте ядро ​​и создайте пакеты deb, а также сообщите использованное время.

time fakeroot make-kpkg --initrd --append-to-version=-tweak-CUSTOM-NAME kernel-image kernel-headers

Установите ваше скомпилированное ядро ​​и заголовки.

sudo dpkg -i ../linux-image-3._YOUR_DEB_FILE_
sudo dpkg -i ../linux-headers-3._YOUR_DEB_FILE_

Ваше ядро ​​должно быть установлено и отображено в вашем grub-boot-menu. Reboot.

sudo reboot

Включите меню загрузки grub или несколько раз нажмите shift во время запуска.

Выберите желаемое ядро ​​для загрузки.

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

0
ответ дан 11 December 2012 в 05:02

В Ubuntu Wiki есть статья на эту тему: Kernel / Compile

Статья немного устарела, но важное отличие от других методов заключается в том, что они объясняют, как получить источник из Git-репозиторий ядра, что важно, если вы когда-нибудь планируете обновить свое рабочее дерево до новой версии.

0
ответ дан 11 December 2012 в 05:02

Есть несколько разных способов сделать это, но полезно знать как можно больше о своем компьютере (с точки зрения аппаратного обеспечения). Я использовал инструкции здесь: http: //www.howtogeek.com/howto/ubuntu/how-to-customize-your-ubuntu-kernel/. Мне пришлось делать некоторые вещи по-другому, потому что у сайта была более старая версия ядра, чем у меня.

0
ответ дан 11 December 2012 в 05:02

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

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