Linux内核编译

下面简单介绍一下Linux内核编译过程。(附注:本博客所讲的内容是在Ubuntu上进行操作的,Cent OS并未验证)

1、下载内核源码,可以到kernel.org上进行下载。

2、解压内核源文件(注意:要先使用cd命令进入压缩包所在目录),可以使用如下命令:

tar -xvf  压缩包名称

3、进入解压后的文件夹:

如下图:

4、配置内核:

使用 make menuconfig 命令

menuconfig是基于ncurse库编制的图形工具界面,截图如下:

进入到该图形界面后,进行内核配置。配置时,大部分都是使用其默认选项,小部分才根据需要进行选择。

其中,每一个配置选项有三种选择,它们的含义如下:

<*>或[*]:表示将该功能编译进内核

[ ]:表示不将该功能编译进内核

[M]:表示将该功能编译成在需要时动态插入到内核的代码

用户根据需要进行配置。

注意:

(1)如果在这一步中,输入make menuconfig命令时出现了下面的错误:

    

    说明你没有进入内核解压后的文件夹中。

 (2)如果在这一步中,输入make menuconfig命令时缺少相应的文件,可以使用如下命令进行解决:

apt-get install libncurses5-dev libncursesw5-dev

5、使用如下命令,进行编译:

sudo make -j4
sudo make modules_install
sudo make install 
reboot

其中,j4表示分成4个任务运行,以加快速度,建议使用机器的所有CPU核来进行编译以加快速度,为此可以使用指令“make -j `getconf _NPROCESSORS_ONLN`”。

如果在这一步骤出现了错误:“openssl/opensslv.h: No such file or directory”

则说明系统缺乏OpenSSL开发包,执行如下指令:

sudo apt-get install libssl-dev

5、如果重启系统后,出现了选择内核的界面,说明内核编译成功。

如果重启后直接开机,没有出现选择内核的页面,则在进入系统后,执行下面的命令:

vi /etc/default/grub

然后将GRUB_HIDDEN_TIMEOUT=0使用#注释掉,如下图:

之后执行如下指令,然后重启机器就好了。

sudo update-grub

当然,你如果想将你刚才编译的内核版本作为系统默认启动的版本的话,可以使用如下方法:

方法一:

查看可选的启动项。直接执行如下命令:

cat /boot/grub/grub.cfg | grep Ubuntu

可以看到类似于"with Linux xxx.xxx.xxx-xx-generic"之类的句子,当然也可以看到我们自己编译的"with Linux 3.14.69"这个。

然后设置启动项:

编辑/etc/default/grub这个文件,修改其中的GRUB_DEFAULT这一项,然后设置我们编译的3.14.69作为默认的启动内核版本,设置的结果如下:

GRUB_DEFAULT='Advanced options for Ubuntu>Ubuntu, with Linux 3.14.69'

方法二:

(1)如果你的系统中存在多个内核的话,可以在启动界面高级选项中看到内核版本,如下图:

(2)现在系统默认的启动版本为Linux 4.15.0.39-generic(也就是前面有“*”的那个),如果你想将Linux 3.14.69作为默认启动内核版本的话,只需要修改/etc/default/grub文件中的GRUB_DEFAULT选项(该选项默认值是GRUB_DEFAULT=0),如下图:

其中“1>3”中的“1”表示前一个选项,“3”表示你想默认启动的内核版本的顺序,如(1)中的图,linux 3.14.69的顺序是3(从0开始编号),然后再使用 sudo update-grub指令更新grub文件,最后重启机器就会3.14.69作为默认启动的内核版本了。

  • 33
    点赞
  • 297
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值