前言
由于笔者的日常工作都是基于MacOs的笔记本,日常的工作总需要切换跳转机到aarch64的机器上编译内核,因此想在本地修改直接本地交叉编译,也踩了不少坑。目前看网上也没有相关的踩坑的资料,这里仅以记录,希望对各位有帮助
安装交叉编译工具
直接使用github上一个同学做好的工具:
brew tap messense/macos-cross-toolchains
# install x86_64-unknown-linux-gnu toolchain
brew install x86_64-unknown-linux-gnu
# install aarch64-unknown-linux-gnu toolchain
brew install aarch64-unknown-linux-gnu
安装gcc
brew install gcc cpp
#修改默认gcc连接到gcc
cat ~/.zprofile
alias gcc="gcc-11"
alias g++="g++-11"
alias c++="c++-11"
编译内核
git clone https://github.com/torvalds/linux.git
#生成.config
make defconfig ARCH=arm64 cross_compile=aarch64-unknown-linux-gnu-
#编译内核
make Image ARCH=arm64 cross_compile=aarch64-unknown-linux-gnu- -j8
踩坑实录
问题一: ld: unknown option: --version