系统烧录
在进行操作之前要保证Uboot的可用性,按照教程:
I.MX6U烧录/更新正点原子出厂系统_orange-bear的博客-CSDN博客
环境变量设置
在uboot启动之后需要手动设置网络相关参数
ipaddr=192.168.2.100 #IP地址
netmask=255.255.255.0 #子网掩码
ethaddr=32:34:46:78:9A:DC #MAC地址
serverip=192.168.2.153 #TFTP地址
设置启动项
EMMC启动
检查EMMC中是否有设备树文件和zImage文件:
输入命令“ls mmc 1:1” ,如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OVA4Mq16-1623337601149)(C:\Users\songz\Pictures\博客截图\image-20210606144922547.png)]
设置 bootargs 和 bootcmd,这两个环境变量,设置如下:
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw'
setenv bootcmd 'mmc dev 1; fatload mmc 1:1 80800000 zImage; fatload mmc 1:1 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000;'
saveenv
设置好以后直接输入 boot,或者 run bootcmd 即可启动 Linux 内核。
NFS启动
在windows端安装TFTPD64.exe
(TFTPD64) 或者在linux在安装tftp_server ,这里推荐使用linux下的,使用更加方便。
设置 bootargs 和 bootcmd 这两个环境变量,设置如下:
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw loglevel=3 quite'
setenv bootcmd 'tftp 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000'
saveenv
NFS仅启动dtb
在有些时候zImage我们不需要修改 ,仅仅是修改了设备树文件,从网络加载zImage将占用一定时间,因此这里我们从emmc中读取zImage,从NFS加载dtb文件。
设置 bootargs 和 bootcmd 这两个环境变量,设置如下:
setenv bootargs 'console=ttymxc0,115200 root=/dev/mmcblk1p2 rootwait rw '
setenv bootcmd 'mmc dev 1; fatload mmc 1:1 80800000 zImage; tftp 83000000 imx6ull-alientek-emmc.dtb; bootz 80800000 - 83000000;'
saveenv
###对dtb进行检测若tftp中没有dtb文件不会去加载mmc中的dtb文件
#setenv bootcmd 'mmc dev 1; fatload mmc 1:1 80800000 zImage; if tftp 83000000 imx6ull-alientek-emmc.dtb; then bootz 80800000 - 83000000; fi'
TFTP 服务器的搭建
Ubuntu16.04中搭建TFTP 和 NFS 服务器 - 常瑟 - 博客园 (cnblogs.com)
搭建失败的解决方法:
(40条消息) Ubuntu tftp-hpa 启动失败的解决方法_akaiziyou的专栏-CSDN博客
(40条消息) 嵌入式Linux学习之旅(6)— 使用正点原子的Linux内核启动系统_Willliam_william的博客-CSDN博客(40条消息) 嵌入式Linux学习之旅(6)— 使用正点原子的Linux内核启动系统_Willliam_william的博客-CSDN博客
Mount 挂载Windows 分区
可以有效 解决需要root权限的问题
sudo mount -t cifs //192.168.2.153/linux_kernel_pc /home/mylinux -o username=songzhishuo@hotmail.com,noperm