一、EMMC 启动 Linux 系统

1、将zImage 文件和设备树文件烧录到EMMC中

2、使用以下检查一下 EMMC 的分区 1 中有没有 zImage 文件和设备树文件。

ls mmc 1:1

3、设置环境变量

环境变量bootcmd:
1、bootcmd 保存着 uboot 默认命令, uboot 倒计时结束以后就会执行 bootcmd 中的命令。
2、板子第一次运行 uboot 的时候都会使用默认值来设置 bootcmd 环境变量。环境变量默认值在文件 include/env_default.h 中。
比如 bootcmd 的 默 认 值 就 是 CONFIG_BOOTCOMMAND bootargs 的 默 认 值 就 是 CONFIG_BOOTARGS 。
我们可以在 mx6ull_alientek_emmc.h 文件中通过设置宏 CONFIG_BOOTCOMMAND 来 设 置 bootcmd 的默认值。
 
环境变量 bootargs
1、 bootargs 保存着 uboot 传递给 Linux 内核的参数。
 
  •  设置环境变量bootargs
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
  • console=ttymxc0,115200:设置ttymxc0(串口1)作为Linux的终端,串口波特率为115200
  • root=/dev/mmcblk1p2 :用于指明根文件系统存放在mmcblk1 设备的分区 2 中
  • rootwait :表示等待 mmc 设备初始化完成以后再挂载文件系统
  • rw :表示根文件系统是可以读写的 
  •  设置环境变量bootcmd 
setenv bootcmd 'mmc dev 1; fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 
imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000;'
  • mmc dev 1 :切换到 EMMC
  • fatload mmc 1:1 0x80800000 zImage :读取 zImage 0x80800000
  • fatload mmc 1:1 0x83000000 imx6ull-14x14-evk.dtb:读取设备树到 0x83000000
  • bootz 0x80800000 - 0x83000000 :启动 Linux
  •  保存环境变量
saveenv

4、启动 Linux 内核

设置好以后直接输入 boot,或者 run bootcmd 即可启动 Linux 内核。

 

二、网络 启动 Linux 系统

1、在tftp文件夹里面放入 zImage 文件和设备树文件

2、使用 chmod 命令给文件权限

3、使用以下命令设置环境变量

setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 
80800000 - 83000000'
saveenv

上面是使用了已经烧录到EMMC的跟文件系统。如果要使用NFS挂载根文件系统就需要修改 环境变量bootargs 的值。

root=/dev/nfs rw nfsroot=192.168.1.41:/home/pjw/linux/nfs/rootfs ip=192.168.1.42:
192.168.1.41:192.168.1.1:255.255.255.0::eth0:off
  • 192.168.1.41:/home/pjw/linux/nfs/rootfs:服务器IP地址 及 根文件系统存放路径。
  • ip=192.168.1.42:客户端(设备)IP地址
  • 192.168.1.41:服务器IP地址
  • 192.168.1.1:网关地址
  • 255.255.255.0:子网掩码
  • eth0:网卡名
  • off:关闭自动配置

4、启动 Linux 内核

设置好以后直接输入 boot,或者 run bootcmd 即可启动 Linux 内核。

Logo

更多推荐