AnsweredAssumed Answered

Can't boot to Android Pie System after Kernel loading?

Question asked by Krishnandu Biswas on Apr 10, 2020
Latest reply on Apr 21, 2020 by Krishnandu Biswas

Hey Guys,

I am porting android 9 for our custom board based on imx6q sabresd board. I've config. the device tree and ubooot and build the android images. After flashing the images to sd-card and powering the board, the Kernel is loading (for both normal boot and recovery) but after it starts init process it isn't loading the android system or recovery system. It doesn't even mount the sd card partitions for boot according to bootlog.

I've verified the fstab.freescale file in the /vendor partition which contains filesystem to be mounted for every partition.

The following is the section of boot log for normal boot and recovery boot where I think the problem is and I've bolded the problems, but I don't know why is it happening and how to solve?

 

=================>>>>>>>>>>>>>>>>>>>   Normal Boot   <<<<<<<<<<<<<<<<<<<==================

 

Freeing unused kernel memory: 1024K
init: init first stage started!
init: Using Android DT directory /proc/device-tree/firmware/android/
init: [libfs_mgr]fs_mgr_read_fstab_default(): failed to find device default fstab
init: bool android::init::FirstStageMount::InitRequiredDevices(): partition(s) not found in /sys, waiting for their uevent(s): boot, system, vbmeta, vendor
mmc1: Timeout waiting for hardware cmd interrupt.
mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
mmc1: sdhci: Sys addr: 0x00000000 | Version: 0x00000002
mmc1: sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000001
mmc1: sdhci: Argument: 0x00000c00 | Trn mode: 0x00000000
mmc1: sdhci: Present: 0x01f88009 | Host ctl: 0x00000001
mmc1: sdhci: Power: 0x00000000 | Blk gap: 0x00000080
mmc1: sdhci: Wake-up: 0x00000008 | Clock: 0x000010ff
mmc1: sdhci: Timeout: 0x0000008e | Int stat: 0x00000000
mmc1: sdhci: Int enab: 0x007f1003 | Sig enab: 0x007f1003
mmc1: sdhci: AC12 err: 0x00000000 | Slot int: 0x00000003
mmc1: sdhci: Caps: 0x07eb0000 | Caps_1: 0x0000a000
mmc1: sdhci: Cmd: 0x0000341a | Max curr: 0x00ffffff
mmc1: sdhci: Resp[0]: 0x00000000 | Resp[1]: 0x00000000
mmc1: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
mmc1: sdhci: Host ctl2: 0x00000000
mmc1: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000
mmc1: sdhci: ============================================
init: Wait for partitions returned after 10010ms
init: bool android::init::FirstStageMount::InitRequiredDevices(): partition(s) not found after polling timeout: boot, system, vbmeta, vendor
init: Failed to mount required partitions early ...
init: Reboot start, reason: reboot, rebootTarget: bootloader
init: Reboot ending, jumping to kernel
imx-sdma 20ec000.sdma: external firmware not found, using ROM firmware
ci_hdrc ci_hdrc.1: remove, state 4
usb usb2: USB disconnect, device number 1
ci_hdrc ci_hdrc.1: USB bus 2 deregistered
ci_hdrc ci_hdrc.0: remove, state 4
usb usb1: USB disconnect, device number 1
ci_hdrc ci_hdrc.0: USB bus 1 deregistered
reboot: Restarting system with command 'bootloader'

 

=================>>>>>>>>>>>>>>>>>   Recovery   <<<<<<<<<<<<<<<<<<==================

 

Freeing unused kernel memory: 1024K
init: init first stage started!
init: First stage mount skipped (recovery mode)
init: Using Android DT directory /proc/device-tree/firmware/android/
init: bool android::init::FirstStageMount::InitRequiredDevices(): partition(s) not found in /sys, waiting for their uevent(s): boot, system, vbmeta, vendor
mmc1: Timeout waiting for hardware cmd interrupt.
mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
mmc1: sdhci: Sys addr: 0x00000000 | Version: 0x00000002
mmc1: sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000001
mmc1: sdhci: Argument: 0x00000c00 | Trn mode: 0x00000000
mmc1: sdhci: Present: 0x01f88009 | Host ctl: 0x00000001
mmc1: sdhci: Power: 0x00000000 | Blk gap: 0x00000080
mmc1: sdhci: Wake-up: 0x00000008 | Clock: 0x000010ff
mmc1: sdhci: Timeout: 0x0000008e | Int stat: 0x00000000
mmc1: sdhci: Int enab: 0x007f1003 | Sig enab: 0x007f1003
mmc1: sdhci: AC12 err: 0x00000000 | Slot int: 0x00000003
mmc1: sdhci: Caps: 0x07eb0000 | Caps_1: 0x0000a000
mmc1: sdhci: Cmd: 0x0000341a | Max curr: 0x00ffffff
mmc1: sdhci: Resp[0]: 0x00000000 | Resp[1]: 0x00000000
mmc1: sdhci: Resp[2]: 0x00000000 | Resp[3]: 0x00000000
mmc1: sdhci: Host ctl2: 0x00000000
mmc1: sdhci: ADMA Err: 0x00000000 | ADMA Ptr: 0x00000000
mmc1: sdhci: ============================================
init: Wait for partitions returned after 10009ms
init: bool android::init::FirstStageMount::InitRequiredDevices(): partition(s) not found after polling timeout: boot, system, vbmeta, vendor
init: Failed to init devices for INIT_AVB_VERSION
init: Loading SELinux policy
SELinux: Class process2 not defined in policy.
SELinux: Class infiniband_pkey not defined in policy.
SELinux: Class infiniband_endport not defined in policy.
SELinux: the above unknown classes and permissions will be denied
SELinux: policy capability network_peer_controls=1
SELinux: policy capability open_perms=1
SELinux: policy capability extended_socket_class=1
SELinux: policy capability always_check_network=0
SELinux: policy capability cgroup_seclabel=0
SELinux: policy capability nnp_nosuid_transition=0
audit: type=1403 audit(43.980:2): policy loaded auid=4294967295 ses=4294967295
selinux: SELinux: Loaded policy from /sepolicy

selinux: SELinux: Loaded file_contexts

init: init second stage started!
init: Using Android DT directory /proc/device-tree/firmware/android/
selinux: SELinux: Loaded file_contexts

init: Running restorecon...
selinux: SELinux: Could not stat /dev/block: No such file or directory.

init: waitid failed: No child processes
init: Couldn't load property file '/system/etc/prop.default': open() failed: No such file or directory: No such file or directory
init: Unable to set property 'ro.product.first_api_level' to '26' in property file '/prop.default': Read-only property was already set
init: Couldn't load property file '/product/build.prop': open() failed: No such file or directory: No such file or directory
init: Couldn't load property file '/odm/default.prop': open() failed: No such file or directory: No such file or directory
audit: type=1400 audit(44.140:3): avc: denied { dac_read_search } for pid=1 comm="init" capability=2 scontext=u:r:init:s0 tcontext=u:r:init:s0 tclass=capability permissive=1
ueventd: ueventd started!
audit: type=1400 audit(44.140:4): avc: denied { create } for pid=1 comm="init" name="cgroup.procs" scontext=u:r:init:s0 tcontext=u:object_r:rootfs:s0 tclass=file permissive=1
selinux: SELinux: Loaded file_contexts

audit: type=1400 audit(44.140:5): avc: denied { write } for pid=1 comm="init" path="/acct/uid_0/pid_145/cgroup.procs" dev="rootfs" ino=12430 scontext=u:r:init:s0 tcontext=u:object_r:rootfs:s0 tclass=file permissive=1
ueventd: Parsing file /ueventd.rc...
ueventd: Parsing file /vendor/ueventd.rc...
ueventd: Unable to read config file '/vendor/ueventd.rc': open() failed: No such file or directory
ueventd: Parsing file /odm/ueventd.rc...
ueventd: Unable to read config file '/odm/ueventd.rc': open() failed: No such file or directory
ueventd: Parsing file /ueventd.freescale.rc...
ueventd: Unable to read config file '/ueventd.freescale.rc': open() failed: No such file or directory
ueventd: firmware: loading 'imx/sdma/sdma-imx6q.bin' for '/devices/soc0/soc/2000000.aips-bus/20ec000.sdma/firmware/imx!sdma!sdma-imx6q.bin'
audit: type=1400 audit(44.420:6): avc: denied { write } for pid=1 comm="init" name="cursor_blink" dev="sysfs" ino=8543 scontext=u:r:init:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
audit: type=1400 audit(44.420:7): avc: denied { open } for pid=1 comm="init" path="/sys/devices/virtual/graphics/fbcon/cursor_blink" dev="sysfs" ino=8543 scontext=u:r:init:s0 tcontext=u:object_r:sysfs:s0 tclass=file permissive=1
file system registered
audit: type=1400 audit(44.480:8): avc: denied { wake_alarm } for pid=151 comm="charger" capability=35 scontext=u:r:charger:s0 tcontext=u:r:charger:s0 tclass=capability2 permissive=1
healthd: battery l=85 v=3 t=35.0 h=2 st=2 c=400 fc=4000000 cc=32 chg=a
read descriptors
read strings
imx-sdma 20ec000.sdma: external firmware not found, using ROM firmware
mmc1: Timeout waiting for hardware cmd interrupt.
mmc1: sdhci: ============ SDHCI REGISTER DUMP ===========
mmc1: sdhci: Sys addr: 0x00000000 | Version: 0x00000002
mmc1: sdhci: Blk size: 0x00000000 | Blk cnt: 0x00000001
mmc1: sdhci: Argument: 0x80000c08 | Trn mode: 0x00000000
mmc1: sdhci: Present: 0x01f88009 | Host ctl: 0x00000001
mmc1: sdhci: Power: 0x00000000 | Blk gap: 0x00000080

 

I've used fsl_sdcard_partition.sh script on Ubuntu 18.04 to flash the images to sd-card.

Outcomes