Closed langyxxl closed 1 year ago
首先/etc/fstab也是一定要更新的 你现在eMMC上的bootloader是原厂的还是后写的带主线u-boot的?如果是主线的话,默认的启动参数会逐个尝试mmc设备,所以扔过去是可以的,但是sd和usb在eMMC前,测试可能会有点蛋疼 如果是原厂的话,bootcmd是直接写死加载某分区的某文件吗?如果写死的话肯定是不行的,如果是逐个尝试mmc设备的话那么是可以的 最好能画个启动流程示意图写你的启动流程,因为我写的可能的启动流程太多了。 我自己的盒子,都是带主线u-boot的bootloader写在emmc,然后一条写死的bootcmd直接指定启动设备,因为嫌弃逐个尝试浪费时间。像我这样的话,外面搬到eMMC就是一条rsync整个root克隆一遍,再把sysboot和/etc/fstab的配置更新一下。
我是魔百和CM311-1a YST的盒子,没有主线u-boot支持,只有原厂的。
刚测试了一下直接把boot分区的内容拷贝过去,果然启动不起来。只能放弃了
是盒子整个启动不起来还是单纯进不了eMMC系统?如果是后者的话可以调整一下启动参数和启动脚本
CM311-1a-YST和UNT403A貌似互为克隆?我今天刚到手一个UNT403A的盒子,等我折腾下主线bootloader
单纯进不去emmc系统,但是插上u盘,可以自动进入emmc系统,并且生效的内核参数是emmc boot分区的extlinux/extlinux.conf中设置的配置,uEnv.txt中的内核参数不起作用。
我一开始只在uEnv.txt中设置audit=0,结果启动起来还是一直打audit log,后来设置在emmc的extlinux/extlinux.conf里面就不打audit log了
貌似从现象看,是得借助u盘的启动过程来启动emmc
用的是extlinux的话,那就是主线u-boot作为payload被原厂bootloader加载了,那设置一条从emmc加载u-boot 的bootcmd就可以无U盘启动了
系统内
fw_setenv bootcmd 'fatload mmc 1 0x1000000 u-boot.ext; go 0x1000000'
需要的/etc/fw_env.config
应该是下面这样
/dev/mmcblk2 ENV区偏移 0x10000
其中env偏移你要用ampart看mmcblk2上的EPT
测试了一下,拔掉u盘还是没办法直接从emmc启动,插上u盘之后变成直接从u盘启动了
emmc上的boot分区是/dev/mmcblk2p1
吗,因为fatload mmc 1 0x1000000 u-boot.ext
这里我省略了分区号,mmc 1默认指到mmc设备1分区1,如果是其他分区的话要明确写明1:2 1:3这个样子
哦,还想到个问题,aml的u-boot的文件系统判断逻辑很扯淡,会先读分区表里面的标识。如果你是用fdisk
分区的,没有加FAT-16的那个类型,aml的u-boot的fatload
命令会直接当作不是fat分区放弃。
试了一下改成FAT-16,还是一样,拔掉u盘还是没办法直接从emmc启动,插上u盘之后变成直接从u盘启动了
=> ls mmc 1
unable to select a mode : -110
** Bad device specification mmc 1 **
Couldn't find partition mmc 1
我可能发现问题所在了,你是不是用的e900v22c的u-boot? 这个u-boot在我的UNT403A上无法设置mmc1(eMMC)的速度,所以读取不了文件。你在系统里用的是什么DTB?有自己拆包修改过eMMC频率吗?我的盒子不改频率直接没法IO到eMMC。u-boot除了改eMMC应该也要改别的东西。我适配一下能读eMMC的主线u-boot
非常感谢,我把env里面的恢复成出厂,bootcmd=run start_autoscript; run storeboot,然后设置fat16,就可以成功自动从emmc启动了 emmc的boot分区内容就是u盘的boot分区内容拷贝过来
谢谢啦
我按照https://7ji.github.io/embedded/2022/11/08/alarm-install.html#extra-partitioning-of-emmc--%E7%BB%99emmc%E5%88%86%E5%8C%BA 安装好之后,唯独看https://7ji.github.io/embedded/2022/11/11/amlogic-booting.html#setups--%E5%AE%89%E8%A3%85%E6%96%B9%E6%B3%95 决定不了/boot分区里的内容
可以图省事,把U盘的boot分区内容直接复制到emmc的boot分区么 emmc上也是一个fat32的boot和ext4的root
我想u盘能启动,那么u盘的boot分区内容是对的,那把boot分区复制到emmc那只要改一下root=UUID= 是不是就可以了