build linux kernel

本文详细介绍了如何使用Linaro工具链在Ubuntu上编译ARM64架构的Linux内核,包括工具链的下载与安装、环境变量设置、内核下载、配置与编译过程,以及常见错误的解决方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

一、首先安装toolchains

1. download Linaro toolchains

Linaro toolchains是由 Linaro 公司基于GCC推出的的ARM交叉编译工具。可用于交叉编译ARM系统中所有环节的代码,包括裸机程序、u-boot、Linux kernel、filesystem和App应用程序。当然,也可以选用gcc toolchains。

网址:

https://www.linaro.org/downloads/

https://releases.linaro.org/components/toolchain/binaries/latest-7/aarch64-linux-gnu/

下载: gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz

 

 

2. install Linaro toolchains

2.1 解压

cd /
sudo mkdir tools
cd tools
sudo cp ~/samba-share/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz .
sudo tar xvJf gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu.tar.xz

 

2.2 设置环境变量

1) 打开~/.bashrc

sudo source ~/.bashrc

2) 在最后添加:

export PATH=$PATH:/tools/gcc-linaro-7.4.1-2019.02-x86_64_aarch64-linux-gnu/bin

3) 更新:

source ~/.bashrc

 

 

二、编译kernel

1. download kernel

根据需要下载相应版本的kernel,我们选择4.19,以下两个网址都可

https://www.kernel.org/

https://cdn.kernel.org/pub/linux/kernel/

 

 

2. configure kernel

2.1 产生内核配置文件 .config

make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- defconfig

注: 

  • defconfig 一般在arch/arm64/configs/目录下

  • 不能直接copy arch/arm64/configs/deconfig .config

  • 也不能直接采用make ARCH=arm64 menuconfig来生成.config

 

没有此步骤直接编译kernel会提示:Configuration file ".config" not found!

 

 

2.2 配置kernel(可选)

make ARCH=arm64 menuconfig

 

 

3. build kernel

执行:make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8

 

3.1 提示如下错误

scripts/extract-cert.c:21:25: fatal error: openssl/bio.h: No such file or directory

scripts/sign-file.c:25:30: fatal error: openssl/opensslv.h: No such file or directory

解决:

执行 sudo apt-get install libssl-dev

 

3.2 继续执行make ARCH=arm64 CROSS_COMPILE=aarch64-linux-gnu- -j8

大约20分钟后,编译完成!

vmlinux在~/code/linux-4.19.84/

Image在~/code/linux-4.19.84/arch/arm64/boot/

 

4. other error

新安装的Ubuntu可能还会遇到以下错误,但都很好解决。

 

4.1 Command 'make' not found

解决:sudo apt install make

 

4.2 /bin/sh: 1: bison: not found

解决:sudo  apt-get install bison -y

 

4.3 /bin/sh: 1: flex: not found

解决:sudo apt-get install flex

 

4.4 Unable to find the ncurses package.

解决:sudo apt-get install ncurses-dev

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hello-linux

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

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

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

打赏作者

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

抵扣说明:

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

余额充值