参考https://blog.csdn.net/zl199203/article/details/78126355,非常感谢博主的分享。尝试在mini2440上来重现移植linux 4.9.2的过程.
主机:Ubuntu 20.04.1 LTS , 64 位
1)交叉编译工具安装
寻找参考文章里使用的交叉编译工具链,没有找到同一个版本,也许版本及其接近的会没有多大问题,在https://releases.linaro.org/网站上搜索得到以下版本
https://releases.linaro.org/components/toolchain/binaries/6.3-2017.05/arm-linux-gnueabihf/
mv gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz /opt
cd /opt
tar xvf gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf.tar.xz
解压之后尝试运行下面的命令:一般情况下不会有什么错误的,会打印出gcc的版本号:gcc 版本 6.3.1 20170404 (Linaro GCC 6.3-2017.05)
/opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc -v
2)下载linux kernel 4.9.2
wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.9.2.tar.gz
tar -zxvf linux-4.9.2.tar.gz
cd linux-4.9.2
3)准备编译kernel需要的环境,每个机器的环境都不太一样,请根据错误提示安装需要的包
apt install make
apt install libncurses5-dev
apt-get install libx11-dev:i386 libreadline6-dev:i386
apt-get install build-essential
apt-get install lib32stdc++6
apt-get install lib32z1
apt install bc
4)配置mini2440 config
make mini2440_defconfig
输出:
#
# configuration written to .config
#
5)编译 kernel
make ARCH=arm CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-