通过以太网加载linux内核、设备树、根文件系统方法(以stm32MP135为例)
0 硬件平台
正点原子stm32MP135开发板
1 通过以太网加载linux内核、设备树、根文件系统方法(以stm32MP135为例)
在产品正式发布前,为了调试方便,我们可以使用以太网加载linux内核、设备树、根文件系统以加快调试速度。本文以stm32MP135为例,介绍uboot下环境变量的设置方法。
1.1 通过tftp加载linux内核、设备树
(1)将linux内核镜像、设备树文件放在tftp指定的文件夹内,将根文件系统放到nfs指定的文件夹内
注意:请先配置tftp服务器、nfs网络文件系统。
(2)配置uboot的环境变量,通过tftp加载linux内核镜像、设备树文件
命令如下:
setenv bootcmd 'tftp c2000000 uImage;tftp c4000000 stm32mp135d-atk.dtb;bootm c2000000 - c4000000'
saveenv
功能:
(2.1)将uImage(linux内核镜像)加载到0xc2000000(属于DDR)位置
(2.2)将stm32mp135d-atk.dtb(设备树)加载到0xc4000000(属于DDR)位置
(2.3)使用bootm命令参数1指定linux内核镜像地址为0xc2000000、参数2为‘-’表示不需要指定initrd、参数3指定设备树地址为0xc4000000
配置过程相关截图如下:
(3)配置uboot环境变量,通过nfs使用根文件系统
setenv bootargs 'console=ttySTM0,115200 root=/dev/nfs nfsroot=192.168.101.14:/home/kevin/linux/nfs/rootfs,proto=tcp rw ip=192.168.101.117:192.168.101.14:192.168.101.1:255.255.255.0::eth0:off'
saveenv
bootargs命令的参数定义如下:
配置过程相关截图如下:
重启开发板,至此就可以通过以太网启动linux了。
注意:
进入linux后出现以下提示,说明我们给根文件系统的权限不够。
直接使用以下命令将rootfs文件夹及其包含的所有文件权限设置为777:
chmod 777 /home/kevin/linux/nfs/rootfs
chmod -R 777 /home/kevin/linux/nfs/rootfs
这样便可以正常使用了,以下是加载过程: