1、安装GNU交叉编译工具
sudo apt-get install gcc-arm-linux-gnueabi
也可自行到官网下载并安装
CotexA系列 GNU Toolchain | GNU-A Downloads – Arm Developer
CotexR、M系列 GNU Toolchain | 9-2019-q4-major – Arm Developer
GNU官网的交叉编译工具与各个芯片厂家的编译工具有何区别?请参考 交叉编译工具链官方的和开发板提供的区别?-电子芯吧客(www.icxbk.com)
2、下载Linux内核源码(The Linux Kernel Archives),以linux-5.10.16为例
3、编译Linux内核源码
要以某块开发板的配置文件(xxx_deconfig)为基础去编译,这里以arm官方的vexpress_defconfig为例
(1)正式编译前安装必要的工具和依赖库(根据自己的Ubuntu是否已包含来决定安装与否)
sudo apt-get install make
sudo apt-get install gcc
sudo apt-get install flex
sudo apt-get install bison
根据编译情况,继续安装必要的库
sudo apt-get install libncurses5-dev libssl-dev
sudo apt-get install build-essential openssl
sudo apt-get install zlibc minizip
sudo apt-get install libidn11-dev libidn11
(2)配置交叉编译环境
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabi-
在Linux源码顶层Makefile中有如下定义:
当我们指定编译器前缀CROSS_COMPILE的值后,Makefile即可自动找到完整的编译器名称。
当然,我们也可以在Makefile中写死这两个宏配置:
ARCH=arm
CROSS_COMPILE=arm-linux-gnueabi-
(3)在Linux