编译Linux内核,听起来似乎是一件难度极高的事情。事实上,真的如此吗?
1.准备工作
- 下载Linux
1 | git clone https://github.com/torvalds/linux |
- 进入linux目录
1 | cd linux |
- 切换分支
1 | 本文使用4.4版本 |
2.配置内核
make defconfig:使用默认配置
make menuconfig:使用图形界面,依赖库ncurses
make xconfig:
1 | make menuconfig |
3.编译
本文采用ARM64交叉编译,如果系统中没有安装,可以使用如下方式进行安装:
1 | GNU C compiler for the arm64 architecture |
下面开始编译:
1 | make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- Image -j8 |
如果编译成功,最后会输出如下信息:
1 | OBJCOPY arch/arm64/boot/Image |
表示编译后的内核文件为arch/arm64/boot/Image
。
当然,编译过程中可能会出现一些问题,比如:
1 | /bin/sh: 1: bc: not found |
原因分析:找不到bc
解决办法:安装bc
1 | Ubuntu |