Извините, если это чрезвычайно глупый вопрос, но я новичок в Linux, и я хотел бы попытаться выяснить, как изменить мою собственную систему. Из того, что я немного знаю о Linux, я могу предположить, что на самом деле я ищу исходный код ядра. Я знаю, что есть некоторые ресурсы, которые позволили бы мне загрузить копию ядра (например, kernel.org), но, вероятно, это всего лишь копия, и я должен был бы переключиться с моего текущего ядра на это новое после того, как изменить его, чтобы увидеть, что изменения, которые я делаю, вступают в силу. Есть ли способ избежать этого и просто изменить ядро, которое у меня уже есть? И если нет, то как мне сказать Ubuntu использовать новое загруженное ядро, а не оригинальное? И как я узнаю, будут ли мои изменения испортить систему? Заранее спасибо за помощь!
Ваш вопрос может быть разбит на две части, так как вы можете настроить некоторые параметры ядра во время выполнения, а также путем генерации байт-патчей, но как новичок я бы настоятельно не рекомендовал вам использовать байт-патч.
В вашем случае для начала я настоятельно рекомендовал бы внести изменения в исходный код, перекомпилировать его, а также установить и протестировать. Также существуют способы тестирования вашего ядра в эмуляторах, например. без необходимости перезагрузки вашей системы, например. 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 во время запуска.
Выберите желаемое ядро для загрузки.
Если вы используете это руководство, не стесняйтесь его улучшать.
В Ubuntu Wiki есть статья на эту тему: Kernel / Compile
Статья немного устарела, но важное отличие от других методов заключается в том, что они объясняют, как получить источник из Git-репозиторий ядра, что важно, если вы когда-нибудь планируете обновить свое рабочее дерево до новой версии.
Есть несколько разных способов сделать это, но полезно знать как можно больше о своем компьютере (с точки зрения аппаратного обеспечения). Я использовал инструкции здесь: http: //www.howtogeek.com/howto/ubuntu/how-to-customize-your-ubuntu-kernel/. Мне пришлось делать некоторые вещи по-другому, потому что у сайта была более старая версия ядра, чем у меня.