本文对上一篇文章编译好的NXP官网提供的 Linux内核与设备树文件,进行测试。是否可以成功启动开发板。
本文继上一篇文章的学习,地址如下:
NXP官方Linux内核编译-CSDN博客
在上一小节我们已经得到了 NXP 官方 I.MX6ULL EVK 开发板对应的 zImage 和 imx6ull-14x14-evk.dtb 这两个文件。这两个文件的生成目录如下:
Linux 内核镜像文件:/arch/arm/boot/zImage。
NXP官方 I.MX6ULL-EVK开发板对应的设备树文件:/arch/arm/boot/dts/imx6ull-14x14-evk.dtb。
使用 tftp服务的前提是:
① 开发板或 ubuntu系统都已经搭建好了 tftp 服务。
② 开发板在uboot命令模式下,可以ping通 ubuntu系统。
(1) 首先,将 zImage和 imx6ull-14x14-evk.dtb 拷贝到 ubuntu之前设置好的 tftp服务的文件目录下。我这里的 ubuntu系统操作如下:
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ cp ./arch/arm/boot/zImage /home/wangtian/linux/tftp_file/
wangtian@wangtian-virtual-machine:~/zhengdian_Linux/linux/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga$ cp ./arch/arm/boot/dts/imx6ull-14x14-evk.dtb /home/wangtian/linux/tftp_file/
(2) 开发板上电,进入uboot命令模式,下载 zImage到开发板:
=> tftp 0x80800000 zImage
Using FEC1 device
TFTP from server 192.168.1.66; our IP address is 192.168.1.50
Filename 'zImage'.
Load address: 0x80800000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
########################################################
2.5 MiB/s
done
Bytes transferred = 5582720 (552f80 hex)
=>
下载 imx6ull-14x14-evk.dtb 设备树文件:
=> tftp 0x83000000 imx6ull-14x14-evk.dtb
Using FEC1 device
TFTP from server 192.168.1.66; our IP address is 192.168.1.50
Filename 'imx6ull-14x14-evk.dtb'.
Load address: 0x83000000
Loading: ###
1.9 MiB/s
done
Bytes transferred = 35969 (8c81 hex)
=>
启动 Linux内核与设备树文件,上面的工作完成后,进入 uboot 命令行模式,操作如下:
Kernel image @ 0x80800000 [ 0x000000 - 0x552f80 ]
## Flattened Device Tree blob at 83000000
Booting using the fdt blob at 0x83000000
Using Device Tree in place at 83000000, end 8300bc80
Starting kernel ...
Booting Linux on physical CPU 0x0
Linux version 4.1.15 (wangtian@wangtian-virtual-machine) (gcc version 4.9.4 (Linaro GCC 4.9-2017.01) ) #1 SMP PREEMPT Tue Sep 26 19:46:04 CST 2023
CPU: ARMv7 Processor [410fc075] revision 5 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache
Machine model: Freescale i.MX6 ULL 14x14 EVK Board
.....
010e 65536 ram14 (driver?)
010f 65536 ram15 (driver?)
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
---[ end Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
random: nonblocking pool is initialized
Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)