Arm架构Linux内核编译记录

一、下载内核

下载地址,命令如下:

wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.2.1.tar.xz

二、解压内核

命令如下:

sudo tar -xvJf linux-6.2.1.tar.xz

三、安装编译内核所需软件

命令如下:

sudo apt install kernel-package libncurses-dev

四、配置内核

使用arm64架构下的默认配置,覆盖主目录(linux-6.2.1)下的隐藏文件".config",可以使用“ls -a”命令查看该文件。

cp arch/arm64/configs/defconfig /home/liujianguo/Down/linux-5.0/.config

五、编译内核

  1. 命令如下:

make menuconfig 点击load 再save 再exit
sudo fakeroot make-kpkg --initrd --append-to-version -1 kernel_image kernel_headers -j 6 --config menuconfig
进入menuconfig 时再按照第一步的方式进行配置。
  1. 命令解释:

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

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

--append-to-version是一种版本信息,它不仅出现在deb安装包的文件名里,也会影响到kernel的名称,比如本例中,内核更新完成之后,用“uname -r”察看会得到“6.2.1-1”;

kernel_image表示生成内核和默认模块的安装包;

kernel_headers表示生成一个内核头文件的安装包;如果不生成这个deb包,那么我们就无法在/usr/src目录下生成linux-headers-x.x.x,这样就无法编译自己的内核模块(虽然可以通过apt-get来安装,但是通过这个方式安装的不一定是自己正在使用的内核版本)。

--config=menuconfig表示以menuconfig的方式编译。

六、安装内核

  1. 编译后文件位置:编译过程执行完毕之后,会在上层目录(即,linux-6.2.1的上一级目录)里生成deb安装包,之后就可以用dpkg命令或者在文件浏览器中双击安装了,安装完毕之后,直接重启就可以选择进入新的内核。

  1. 使用make-kpkg来编译内核好处:因为我们是通过包管理器来安装新的内核,当不再需要这个内核时,就可以简单的通过dpkg命令、新立得软件包管理器或者Ubuntu软件中心来完全卸载,而不需要一个个手动删除修改。

以上内容参考来源:https://blog.csdn.net/u010059563/article/details/41824541https://m.dandelioncloud.cn/article/details/1495430124085542914

七、交叉编译内核优秀文章

  1. 注意,在本次实验中,使用x86下的Ubuntu虚拟机进行编译arm架构的Linux内核,使用交叉编译方法报错,最后采用在arm架构的Ubuntu上进行编译,错误消失,未找到原因。

  1. 文章一:https://doc.embedfire.com/lubancat/build_and_deploy/zh/latest/building_image/building_kernel/building_kernel.html

  1. 文章二:https://blog.csdn.net/CNflysky/article/details/125417838

  1. 文章三:https://zhuanlan.zhihu.com/p/360906351

  1. 文章四:https://m.dandelioncloud.cn/article/details/1495430124085542914


  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值