操作系统实验:构建linux内核系统(linux内核编译)

Linux 专栏收录该内容
1 篇文章 0 订阅

实验环境:VMware Workstation 14, Ubuntu 18.04.2 LTS

一、获取linux内核

Linux内核可从官网www.kernel.org下载,如果国内下载慢,可前往国内的一些镜像站下载,如清华大学开源软件镜像站

这里下载了linux5.0-tar.xz。

解压:

sudo tar -xvJf linux-5.0.tar.xz

二、内核初始化

将解包后的内核放到/usr/src/下。如果要重新构建内核,可使用make mrproper和make distclean将内核源代码恢复到初始状态。

三、内核配置

安装依赖项:

sudo apt-get install build-essential

sudo apt-get install libncurses5-dev

sudo apt-get install kernel-package

sudo apt-get install flex

sudo apt-get install bison

sudo apt-get install libelf-dev

sudo apt-get install libssl-dev

切换目录

cd /usr/src/linux-5.0

最常用的配置内核的方法是“make menuconfig”。“make config”太简陋,“make xconfig”虽然更加直观,但需要庞大的qt类库支持,menuconfig应该是最佳的折中。

执行

sudo make menuconfig

出现以下界面。

 设置好后选择save,生成.config文件。

四、内核构建

使用以下命令:


sudo make-kpkg --initrd --revision 1.0liuyjsdust --append-to-version -20190414 kernel_image -j4

参数说明:

1、--initrd选项会让make-kpkg自动帮我们生成initramfs;

2、--revision会给生成的deb文件加上一个版本信息。这个参数只是影响到文件名,如果不指定,默认会是“10.00.Custom”;

3、--append-to-version也是一种版本信息,它不仅出现在deb安装包的文件名里,也会影响到kernel的名称。

4、kernel_image表示生成内核和默认模块的安装包,另外您也可以加上kernel_headers,这样make-kpkg会再生成一个内核头文件的安装包。

5、-j4表示使用4个线程进行编译,根据你机器的配置来设定。

接下来,等待内核编译完成,这个过程很漫长,并且会占用很大的硬盘空间,建议至少分给虚拟机30G的空间。

编译完成:

在/usr/src下会生成一个deb包 

安装内核:

sudo dpkg -i *.deb   ##安装此目录所有deb包

这样,内核便安装完成,可以重启一下。在开机时按住shift键可以进入grub界面,选择启动的内核。

 

常见错误:

(1)执行make config时出现的两个错误,代码127:

解决方法:安装flex和bison

sudo apt-get install flex
sudo apt-get install bison

(2)执行make-kpkg开始编译时报错:

解决方法:安装libssl-dev 

sudo apt-get install libssl-dev

 

  • 3
    点赞
  • 0
    评论
  • 9
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

参与评论 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页

打赏作者

weixin_42606045

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值