DannyWu带你学习Linux 内核编译,高效不走坑

前言

  • Linux操作系统最重要的部分莫过于内核了,它负责管理系统的进程、内存、驱动程序、文件系统和网络系统,系统的性能和稳定性也由内核来决定。由于Linux是开源的,因此Danny就在想,能不能自己将Linux内核源码进行编译,根据自己的需求打造一个更高效、更稳定的Linux内核呢?下面Danny以Ubuntu为例带你学习如何编译Linux内核。

1.下载Linux内核源码压缩包

  • 首先去Linux内核官网(http://www.kernel.org)下载Linux内核的压缩文件。

2.解压内核源码并复制到/usr/src下

  • 在此说明一下,一般都将内核源码放到/usr/src下,并创建链接linux,类似快捷方式,便于切换到内核路径下。**

  • 我下载的内核版本是:linux-4.19.1.tar.xz;接着将内核源码压缩包解压并复制到/usr/src路径下,此时可能需要1-2分钟时间;解压时注意一下你的内核源码所在的路径,例如我的是在虚拟机的共享文件夹下;之后切换到/usr/src路径下,再创建一个名为linux的链接:**

root@dannylinux:/# tar xf /mnt/hgfs/Desktop/ubuntu/linux-4.19.1.tar.xz -C /usr/src/
root@dannylinux:/usr/src# ln -sv linux-4.19.1 linux
  • 此时,输入:
root@dannylinux:/usr/src# ls
  • 就可以看到生成了一个名为linux-4.19.1的文件夹和一个名为linux的链接。

3.安装编译环境

  • 由于Danny在编译Linux内核时遇到了各种坑,为了让大家少走坑,我们先安装编译时需要的依赖环境:
root@dannyLinux:/# sudo apt-get install gcc
root@dannyLinux:/# sudo apt-get install make 
root@dannyLinux:/# sudo apt-get install ncurses-dev
root@dannyLinux:/# sudo apt-get install bison
root@dannylinux:/# sudo apt-get install flex
root@dannylinux:/# sudo apt-get install libssl-dev
root@dannyLinux:/# sudo apt-get install libelf-dev

4.配置

root@dannylinux:/usr/src/linux# make menuconfig`
  • 使用默认配置,save 后 exit


    image
image
image
image
  • 注意:在我踩过深坑之后,才知道,Makefile是有问题的,要修改595行在开头加一横杠“-”,不然你会浪费n多小时。
image

5.编译(4线程编译)

  • 编译时间大概在两个小时左右,根据你的电脑配置来决定。**
root@dannylinux:/usr/src/linux# make -j 4
  • 编译好之后,我们将进行下一步安装内核模块。

6.安装内核模块

root@dannylinux:/usr/src/linux# sudo make modules_install
  • 此步完成之后,在/lib/modules/路径下就会生成一个以版本号命名的一个内核模块了,快大功告成了,继续安装内核。

7.安装内核

root@dannylinux:/usr/src/linux#  sudo make install
  • 安装完内核之后,会在/boot/路径下生成一个内核文件vmlinuz-4.19.1和其他几个文件。

  • 到此Linux内核就编译完了,可以打开grub.cfg配置文件看一下,会有一个新的版本:

root@dannylinux:/usr/src/linux# vim /boot/grub/grub.conf
  • 别着急,你以为重启就好了吧(如果是安在物理机上重启是可以了),但是如果安装在虚拟机上,要将内存调至4G才可以,不然会报内存不足的错误。

  • 然后重启吧,进入启动项会提示你选择内核版本,这时候你选择ubuntu4.19.1就可以使用你新编译的Lniux内核了!

原创申明:本文为DannyWu原创,转载务必注明本文链接,否则视为侵权!

你可能感兴趣的:(DannyWu带你学习Linux 内核编译,高效不走坑)