我正在将使用 iMX6Q Freescale 处理器的主板上的内核从版本 3.17.0-rc4 升级到最新内核版本,但主板未完成启动。
我按照以下步骤使用 Debian 10 进行交叉编译:
cp arch/arm/configs/imx_v6_v7_defconfig .config
make ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- menuconfig
make -j`nproc` ARCH=arm CROSS_COMPILE=/usr/bin/arm-linux-gnueabihf- -k zImage modules
然后将 zImage 和模块复制到 boot 和 root 分区。
我的 uEnv.txt 文件是:
loadaddr=0x10008000
fdtaddr=0x18000000
fdtfile=imx6q-CIO100X50V01.dtb
console=ttymxc1,115200n8
optargs=console=ttyS0 quiet systemd.show_status=false
ethaddr=70:B3:D5:16:20:00
mmcroot=/dev/mmcblk0p2 ro
mmcrootfstype=ext4 rootwait fixrtc
loadkernel=load mmc ${mmcdev}:${mmcpart} ${loadaddr} zImage
loadinitrd=load mmc ${mmcdev}:${mmcpart} 0x12A00000 initrd.img; setenv initrd_size ${filesize}
loadfdt=load mmc ${mmcdev}:${mmcpart} ${fdtaddr} /${fdtfile}
#zImage/initrd.img:
#boot_fdt=run loadkernel; run loadinitrd; run loadfdt
#zImage:
boot_fdt=run loadkernel; run loadfdt
mmcargs=setenv bootargs console=${console} ${optargs} root=${mmcroot} rootfstype=${mmcrootfstype} video=${video} ethaddr=${ethaddr}
#zImage:
uenvcmd=run boot_fdt; run mmcargs; bootz ${loadaddr} - ${fdtaddr}
我在尝试使用内核版本 5.13.12 时收到此消息,然后启动冻结:
U-Boot 2016.07-rc1-g0b9fdb5-dirty (Oct 20 2016 - 15:57:37 +0200)
CPU: Freescale i.MX6Q rev1.2 at 792 MHz
Reset cause: POR
Board: SABRE Lite
I2C: ready
DRAM: 512 MiB
force_idle_bus: sda=0 scl=0 sda.gp=0xcb scl.gp=0x5
force_idle_bus: failed to clear bus, sda=0 scl=0
MMC: FSL_SDHC: 0, FSL_SDHC: 1
*** Warning - bad CRC, using default environment
In: serial
Out: serial
Err: serial
Net: No ethernet found.
Hit any key to stop autoboot: 0
switch to partitions #0, OK
mmc0(part 0) is current device
280 bytes read in 32 ms (7.8 KiB/s)
Running bootscript from mmc ...
## Executing script at 12000000
6x_bootscript -> uEnv.txt wrapper...
787 bytes read in 49 ms (15.6 KiB/s)
10801304 bytes read in 38345 ms (274.4 KiB/s)
33124 bytes read in 52 ms (622.1 KiB/s)
Kernel image @ 0x10008000 [ 0x000000 - 0xa4d098 ]
## Flattened Device Tree blob at 18000000
Booting using the fdt blob at 0x18000000
Using Device Tree in place at 18000000, end 1800b163
Starting kernel ...
[ 0.224790] debugfs: Directory 'dummy-iomuxc-gpr@20e0000' with parent 'regmap' already present!
我尝试过其他内核版本,没有遇到问题(例如 4.19 或 5.9),但由于某种原因,大于或等于 5.10 的内核版本会冻结启动。
我想过只使用5.9内核版本,但我有点咸,因为我不知道这是怎么回事,也不知道如何调试正在发生的事情。这是我可以做的事情来调试正在发生的事情还是我可以尝试的事情?
也许由于某种原因 iMX6Q 与大于 5.10 的内核不兼容?我已经搜索过但找不到任何东西。