当我已经在我的机器上运行Ubuntu时,如何修改内核?

对不起,如果这是一个非常愚蠢的问题,但我是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 

选择目标系统,谷歌或留下它。 两个例子

 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菜单中。 重启。

 sudo reboot 

在启动期间启用grub启动菜单或点击移动几次。

选择要引导的所需内核。

如果您使用本指南,请随时改进它。

有几种不同的方法可以做到这一点,但最好尽可能多地了解您的计算机(硬件方面)。 我使用了这里的说明:http://www.howtogeek.com/howto/ubuntu/how-to-customize-your-ubuntu-kernel/。 我不得不做一些不同的事情,因为网站的内核版本比我的版本要旧。

Ubuntu Wiki上有一篇文章: 内核/编译

这篇文章有点陈旧,但与其他方法的重要区别在于它们解释了如何从内核的Git存储库获取源代码,如果您计划将工作树更新为新版本,这一点非常重要。