好像所有的版本都无法使用,可能是我的打开方式不对
tn-imx_4.14.98_2.0.0_ga-stable
会报 undefined instruction

尝试了用 gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf 和 x86_64-gcc-10.3.0-nolibc-arm-linux-gnueabi
用了 tn_imx_defconfig 和 mutil_v7_defconfig 都是如此
tn-imx_5.4.70_2.3.0-stable
可以用 tn_imx_defconfig 和 mutil_v7_defconfig 编译成功,但是 dtbs 没办法编译出 imx7d-pico-pi.dtb,看上去是 baseboard_pico_pi.dtsi 里面有一些问题,包括且不限于 PICO_PI_GPIO_DEFS 和 PICO_I2CA 缺少定义。
tn-imx_5.10.9_1.0.0-next
无法通过 tn_imx_defconfig 编译,可以用 mutil_v7_defconfig 编译。dtbs 同样是上面 5.4 发生的问题,但是这里,并不会跳过有问题的版本,而是直接报错了。上面的会导致理论上无法正常编译的 dtb 被跳过,但是最终还是能够走完编译流程。5.10 是编译到中途一半直接错误了。
都会发生 Kernel Panic
编译方式
配置交叉编译
wget https://mirrors.edge.kernel.org/pub/tools/crosstool/files/bin/x86_64/10.3.0/x86_64-gcc-10.3.0-nolibc-arm-linux-gnueabi.tar.xz
tar xf x86_64-gcc-10.3.0-nolibc-arm-linux-gnueabi.tar.xz
export CC=`pwd`/gcc-10.3.0-nolibc/arm-linux-gnueabi/bin/arm-linux-gnueabi-
export KERNEL_ARCH=arm
export CORES=12 # 设置为核数 * 1.5
Source
从 https://github.com/TechNexion/linux-tn-imx 下载或者 clone
export kernel_version=5.4.70 # 设置一下 kernel 版本
menuconfig
make ARCH=${KERNEL_ARCH} CROSS_COMPILE="${CC}" tn_imx_defconfig # 或者 multi_v7_defconfig
make ARCH=${KERNEL_ARCH} CROSS_COMPILE="${CC}" menuconfig
Compile
make -j${CORES} ARCH=${KERNEL_ARCH} CROSS_COMPILE="${CC}" zImage modules dtbs
Copy output files
make -s ARCH=${KERNEL_ARCH} CROSS_COMPILE="${CC}" modules_install INSTALL_MOD_PATH="`pwd`/deploy/modules"
make -s ARCH=${KERNEL_ARCH} CROSS_COMPILE="${CC}" dtbs_install INSTALL_DTBS_PATH="`pwd`/deploy/dtbs"
pushd deploy/modules && tar czf ../${kernel_version}-modules.tar.gz ./* && popd
pushd deploy/dtbs && tar czf ../${kernel_version}-dtbs.tar.gz ./* && popd
cp -v arch/${KERNEL_ARCH}/boot/zImage "deploy/${kernel_version}.zImage"