Need help for porting to xiaomi 4 cancro
-
I try to porting to xiaomi 4 ,but pause in bootanimation.
I use adb get all log,push to github : https://github.com/kuailexs/porting-logthe dmesg log : https://github.com/kuailexs/porting-log/blob/master/dmesg
syslog log : https://github.com/kuailexs/porting-log/blob/master/syslogPlease help me analyze the reason for this.
-
@kuailexs the dmesg shows
[ 1.685900] trampoline: Starting adbd [ 1.686754] trampoline: Running multirom [ 1.697731] multirom: Running MultiROM v33 [ 1.697950] multirom: Loading MultiROM status... [ 1.697990] multirom: Loading fstab "/mrom.fst
not sure how you got multirom in there when you are porting ubports. Can you elaborate a bit on how you built and installed ubports?
-
Use the ubp-5.1 branch, installed with rootstock-ng.
Import backports. Use Kernel Configuration https://github.com/kuailexs/android_kernel_xiaomi_cancro-1/blob/cm-12.1/arch/arm/configs/cyanogen_cancro_defconfig.BOARD_KERNEL_CMDLINE := console=tty0 vmalloc=500M androidboot.hardware=cancro user_debug=31 msm_rtb.filter=0x37 ehci-hcd.park=3 selinux=permissive androidboot.bootdevice=msm_sdcc.1
added 70-cancro.rules.
used ubports/device-files common Overwrite system files.
Use multirom install bootimage Select Inject multirom after installation.This will be able to boot animation.
Source used: cm-12.1 branch
https://github.com/kuailexs/android_kernel_xiaomi_cancro-1;
https://github.com/kuailexs/android_device_xiaomi_cancro; -
@kuailexs what does the dmesg look like without multirom? And out of personal interest: how do you "import backports"?
-
-
@doniks can not get dmesg log whitout multirom.
can not connection adb. not bootloop.
will not create a few directories in the '/data' directory . android-data system-data user-data -
@kuailexs said in Need help for porting to xiaomi 4 cancro:
@doniks can not get dmesg log whitout multirom.
can not connection adb.Can you try this to get a log:
https://docs.halium.org/en/latest/porting/debug-build/index.html#reading-kernel-logsnot bootloop.
will not create a few directories in the '/data' directory . android-data system-data user-dataHonestly, I don't really understand what you're saying. Can you elaborate a bit more?
-
@doniks My English is too poor, I do not know how to describe it.This is translated by Google.
-
-
@doniks I said that if use multirom can mount ubuntu system files and create three runtime-related folders (including: android-data system-data user-data). Without multirom. Did not create those three folders. I do not know if I have not successfully mounted ubuntu system (system.img). When not multirom, can not boot to the boot animation. Nor is the bootloop. Temporarily I still can not get the log without multirom
-
@doniks I get dmesg without multirom,I got dmesg use this : https://github.com/ubports/ubports-boot
https://github.com/kuailexs/porting-log/blob/master/dmesg-withoutmultirom
Please help me to see -
I see you have syspart on the kernel's cmdline, but not datapart (if that's still used in ubports-boot), if this is still used then that may be the reason why it's not creating your data directories. However system-data should be created by the rootfs (it contains overrides for certain items in directories on the system image like /etc/init/*.override, /var, etc.)
MultiROM doesn't create these folders specifically, that's done by system-image-upgrader during installation of the Ubuntu Touch rootfs. So ensure that you have a valid Ubuntu Touch rootfs on your device, system.img should be in /data and I think ubuntu.img as well (not sure, I mainly use MultiROM with my Nexus 7). Other than that, It looks like your ramdisk is booting and running properly, at least to me. You may wish to remove the breakpoint from the kernel cmdline and get the last_kmsg from recovery instead to get a more full, detailed log including what happens after the ramdisk's execution (which isn't shown in your log as the ramdisk pauses it's init execution for the breakpoint).
I would suggest letting the system sit for about 1 minute before rebooting over to recovery to do this, do note that to see the Ubuntu logs, you MUST start into recovery right after rebooting the system, it MUST NOT attempt to start anything but recovery or you'll find yourself with a different log file (for instance, the recovery image will rewrite the last_kmsg with it's own if it was the last thing to start up before a reboot). So if you can do an
adb reboot recovery
, or areboot recovery
from your ramdisk to boot into recovery, that will help a ton!To get the last_kmsg from recovery:
- Ensure you boot straight into recovery after rebooting the system from it's boot animation.
- Once the device is in recovery and plugged into the machine, simply type adb pull /proc/last_kmsg.
There you go. This should help since any of us attempting to assist can see the messages from past the ramdisk (your current log only shows the end of the ramdisk startup, but not Ubuntu's startup which is what we want.)
Though those Kernel oops in the log (you can find these with the --- cut here --- style lines) could have something to do with things, but it looks like the only issues are with a crypto driver for the platform not being able to create a sysfs entry (not sure if qcrypto.0 is essential to your platform or not), though I don't have this device myself, so I can't give you an answer there.
EDIT: I also noticed this interesting line in the logs, I'm not sure what it is though
[system] Activated service 'com.canonical.SystemImage' failed: Launcher could not run (out of memory)
This may be why your system isn't starting.
-
@Tonoxis
No breakpoint, no way to get any log. Can not restart.black screen. More than five drive letters on the computer. Can only be forced to shut down. Can not get last_kmsg
-
@doniks Good news. Now it can boot up. thank you for your help
-
@Tonoxis Good news. Now it can boot up. thank you for your help
-
/media/feifei/linux/68606daaac13f3f4.jpg
-
Great news! What did you change to have it boot up (for future reference)? Was it the datapart kernel cmdline variable? As for the 5 volumes appearing in Nautilus, you may have entered QCOM_DL. If you're entering QCOM_DL while attempting to get into recovery, that means your recovery image is bad and needs re-flashed.
-
@Tonoxis The reason is that there is no 'ro.product.device=cancro' in build.prop, not loading 70-cancro.rules
-
@kuailexs Ah wonderful! Glad it was something minor instead of something huge!
-
@kuailexs Excellent Xie-Xie!
Can you tell us what works:
Boot - OK
Bluetooth
Camera
Cellular Radio
GPS
Graphics
Resume
Rotation
Sound
Touch
WifiThese are the main features we need to call it a good port. Good Luck!
BR