前端开发入门到精通的在线学习网站

网站首页 > 资源文章 正文

linux内核编译和安装

qiguaw 2024-12-03 00:48:10 资源文章 19 ℃ 0 评论

1.编译环境

ubuntu 16.04.6 LTS,当前linux版本号是4.15.0-142-generic

  • generic:当前内核版本为通用版本,另有表示不同含义的server(针对服务器)、i386(针对老式英特尔处理器)
  • x86_64:采用的是64位的CPU
  • SMP:对称多处理机,表示内核支持多核、多处理器
  • Tue Apr 13 09:27:15 UTC 2021 内核的编译时间

Ubuntu——系统版本查看_ubuntu版本-CSDN博客

Linux内核版本介绍与查询_centos 查看arm-CSDN博客

2.linux内核源码获取

路径:https://git.kernel.org/

本次使用的版本https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/?h=v5.10.188

解压.xz文件:xz -d linux-5.10.188.tar.xz

解压文件:tar -xvf linux-5.10.188.tar -C ./linux_5 解压到当前目录下的linux_5目录下。

3.下载编译需要使用到的命令工具

sudo apt-get update
sudo apt-get install make
sudo apt-get install gcc g++
sudo apt-get install flex 
sudo apt-get install bison
sudo apt-get install libncurses-dev 
sudo apt-get install build-essential
sudo apt-get install kernel-package 
sudo apt-get install libssl-dev
sudo apt-get install libc6-dev 
sudo apt-get install bin86  
sudo apt-get install qttools5-dev
sudo apt-get install libelf-dev

Minimal requirements to compile the Kernel  The Linux Kernel documentation

ubuntu上编译Linux内核步骤_ubuntu编译内核-CSDN博客

Linux内核编译与安装(完整过程)【Ubuntu18.04下】_编译linux内核-CSDN博客

4.清理

首次编译可以不用清理,编译之后如果想完整重新编译,可以使用清理命令

此路径下执行:~/Desktop/linux_5/linux-5.10.188

# make mrproper会删除配置的.config以及其他备份
sudo make mrproper 
# make clean会删除编译过程中生成的中间文件和内核镜像文件
sudo make clean

5.内核配置

sudo make menuconfig

6.编译

可以单独编译或者全部编译

单独编译:
# 编译内核镜像
sudo make bzImage -j6
# 编译其他所有模块
sudo make modules -j6

全部编译:
# 编译内核镜像及其他所有模块,-j指定6个线程进行编程,提升编译效果
sudo make -j6

编译报错提示空间不足

unbuntu硬盘扩容:

1.先到/var/cache/apt/archives 中删掉一部分下载的工具

2.安装分区工具 sudo apt-get install gparted,使用分区工具扩容

ubuntu硬盘空间不足,扩容_ubuntu重新分配磁盘空间_树先生~的博客-CSDN博客

Linux内核开发——编译Ubuntu 20.04内核代码_ubuntu编译内核_-飞鹤-的博客-CSDN博客

7.安装内核

(1) 将生成的bzImage文件和System.map文件拷贝到/boot/目录下

 sudo cp System.map /boot/System.map-5.10.188 
 sudo cp arch/x86/boot/bzImage /boot/vmlinuz-5.10.188

(2)建立镜像文件:

sudo mkinitramfs /lib/modules/5.10.188 -o /boot/initrd.img-5.10.188 

(3)更新GRUB:

更新grub文件,命令会自动检测boot目录中的initrd文件,将最新的initrd文件设置为默认启动版本。

sudo update-grub

8.重启 sudo reboot

重启在Advanced options for ubuntu中选择5.10.188内核

出现的问题:在重启的时候,Ubuntu会出现”System is deadlocked on memory”

解决办法
关闭虚拟机,打开Ubuntu设置,选择”内存“增大到4GB(4096MB),然后重新启动ubuntu。

Linux内核开发——编译Ubuntu 20.04内核代码_ubuntu编译内核_-飞鹤-的博客-CSDN博客

9.重启后查看内核版本信息

内核版本为5.10.188,说明编译的新内核ok。

参考:(1)csdn 相关文章,链接已给出

(2)《linux内核设计与实现》第三版

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表