资讯详情

android启动失败,分区metadata没找到

,华硕tinkerboard 2s启动失败,错误日志如下:

[ 1.620614] Run /init as init process [ 1.627199] init: init first stage started! [ 1.627699] init: [libfs_mgr]ReadFstabFromDt(): failed to read fstab from dt [ 1.628020] init: [libfs_mgr]fstab path by boot mode:/fstab.rk30board [ 1.628849] init: Using Android DT directory /proc/device-tree/firmware/android/ [ 1.794027] init: bool android::init::FirstStageMount::InitRequiredDevices(): partition(s) not found in /sys, waiting for their uevent(s): metadata [ 11.795669] init: Wait for partitions returned after 10001ms [ 11.795720] init: bool android::init::FirstStageMount::InitRequiredDevices(): partition(s) not found after polling timeout: metadata [ 11.795877] init: Failed to mount required partitions early ... [ 11.811644] init: #00 pc 00000000000e9ea0 /init [ 11.811694] init: #01 pc 000000000006c7ac /init [ 11.811724] init: #02 pc 000000000006ed84 /init [ 11.811752] init: #03 pc 00000000000a4268 /init [ 11.811780] init: #04 pc 0000000000064294 /init [ 11.811807] init: #05 pc 0000000000147244 /init [ 11.811832] init: Reboot ending, jumping to kernel [ 11.872744] reboot: Restarting system with command 'bootloader'

从日志看metadata理论上,分区不能挂载。android启动不需要挂载metadata我调整了分区gpt分区,真的把metadata分区被删除,所以我增加了分区,还是报错了。android开始阅读/开始阅读proc/device-tree/firmware/android/ 从需要挂载的分区获取信息dtb我成的,我查看dts,没有相关信息。我增加了metadata分区,但没有报告uvent因此,我在内核中添加打印,检查内核是否分析分区信息:

diff --git a/block/partition-generic.c b/block/partition-generic.c index 98d60a59b843..fa5debe8233e 100644 --- a/block/partition-generic.c b/block/partition-generic.c @@ -322,6 322,8 @@ struct hd_struct *add_partition(struct gendisk *disk, int partno, const char *dname; int err; printk("zeng start:%llx,len:%llx,name:%s/n",(u64)start, (u64)len, info->volname); err = disk_expand_part_tbl(disk, partno); if (err) return ERR_PTR(err);

发现没有真正的分析metadata分区,然后再看gpt信息,发现metadata分区起始地址0x007B0000,写错0x0077B0000,emmc没那么大,导致没有生成metadata分区。修改后,系统正常启动:

[ 1.616551] Run /init as init process [ 1.623069] init: init first stage started! [ 1.623593] init: [libfs_mgr]ReadFstabFromDt(): failed to read fstab from dt [ 1.623905] init: [libfs_mgr]fstab path by boot mode:/fstab.rk30board [ 1.624690] init: Using Android DT directory /proc/device-tree/firmware/android/ [ 1.667915] init: [libfs_mgr]Created logical partition system on device /dev/block/dm-0 [ 1.668798] init: [libfs_mgr]Created logical partition vendor on device /dev/block/dm-1 [ 1.669744] init: [libfs_mgr]Created logical partition product on device /dev/block/dm-2 [ 1.670573] init: [libfs_mgr]Created logical partition odm on device /dev/block/dm-3

从打印信息来看,tinkerboard 开发板不是从/proc/device-tree/ 从文件//fstab.rk30board获取,文件存在ramdisk是的。文件内容如下:

system /system ext4 ro,barrier=1 wait,logical,first_stage_mount vendor /vendor ext4 ro,barrier=1 wait,logical,first_stage_mount odm /odm ext4 ro,barrier=1 wait,logical,first_stage_mount product nbsp;                              /product  ext4  ro,barrier=1                                                                   wait,logical,first_stage_mount /dev/block/by-name/metadata                /metadata ext4  nodev,noatime,nosuid,discard,sync                                              ,formattable, /dev/block/by-name/misc                    /misc     emmc  defaults                                                                       defaults /dev/block/by-name/cache                   /cache    ext4  noatime,nodiratime,nosuid,nodev,noauto_da_alloc,discard                        wait,check /dev/block/by-name/userdata                /data     ext4  discard,noatime,nosuid,nodev,noauto_da_alloc,data=ordered,user_xattr,barrier=1 latemount,wait,formattable,check,fileencryption=software,quota,reservedsize=128M,checkpoint=block

/dev/block/zram0                           none      wap   defaults                                                                       zramsize=50% /devices/platform/*usb*                    auto      vfat  defaults                                                                       voldmanaged=usb:auto /devices/platform/fe320000.dwmmc/mmc_host* auto      auto  defaults                                                                       voldmanaged=sdcard1:auto,encryptable=userdata

可知metadata分区是被要求在第一阶段需要被挂载上。

标签: 007b2ln传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台