!!! на 13.02.2017 года проблема с bootloop не решена.
ЧИТАЕМ ЛОГИ НЕЗАГРУЖАЮЩЕГОСЯ УСТРОЙСТВА
Итак,есть устройство...и естественно оно не загружается...ну так бывает при портировании. Как добраться до логов?
1. Правим настройки журнала systemd
Заходим в рековери, кастомное
adb shell
vi /data/.stowaways/sailfishos/etc/systemd/journald.conf
The systemd journal is persistent over reboots in devel branch - otherwise edit /etc/systemd/journald.conf and set
Storage=persistent
Preventing journald from throttling logging from a verbose process - edit /etc/systemd/journald.conf and set
RateLimitBurst=9999
RateLimitInterval=5s
adb shell
su
mount -o bind /dev /data/.stowaways/sailfishos/dev;mount -o bind /proc /data/.stowaways/sailfishos/proc;mount -o bind /sys /data/.stowaways/sailfishos/sys;chroot /data/.stowaways/sailfishos/ /bin/su -
-
смотрим наш журнал:
journalctl -b
Решение
- device/asus/msm8916-common/BoardConfigCommon.mk
добавить в строку
BOARD_KERNEL_CMDLINE := console=ttyHSL0,115200,n8 androidboot.console=ttyHSL0 androidboot.hardware=qcom ehci-hcd.park=3 androidboot.bootdevice=7824900.sdhci lpm_levels.sleep_disabled=1
в конце selinux=0
- init.environ.rc
bash
export LD_LIBRARY_PATH /vendor/lib64:/system/lib64:/usr/libexec/droid-hybris/lib-dev-alog:/vendor/lib:/system/lib
- Сделал архив с образом rootfs и hybris-boot.img -> скачать альфу версию прошивки можно вот тут. Эта прошивка отправляет устройство в bootloop.
вот журнал загрузки устройства: https://gist.github.com/kaefik/2cc70a25a2aecb64b01fcc7aae66efb6
1) попробуем решить ошибку:
Jun 02 19:29:59 Sailfish kernel: platform b018000.regulator: Driver qcom,cpr-regulator requests probe deferral
Jun 02 19:29:59 Sailfish kernel: i2c-msm-v2 78b6000.i2c: probing driver i2c-msm-v2
Jun 02 19:29:59 Sailfish kernel: i2c-msm-v2 78b6000.i2c: error on clk_get(core_clk):-517
Jun 02 19:29:59 Sailfish kernel: i2c-msm-v2 78b6000.i2c: error probe() failed with err:-517
Jun 02 19:29:59 Sailfish kernel: platform 78b6000.i2c: Driver i2c-msm-v2 requests probe deferral
Jun 02 19:29:59 Sailfish kernel: i2c-msm-v2 78b9000.i2c: probing driver i2c-msm-v2
Jun 02 19:29:59 Sailfish kernel: i2c-msm-v2 78b9000.i2c: error on clk_get(core_clk):-517
Jun 02 19:29:59 Sailfish kernel: i2c-msm-v2 78b9000.i2c: error probe() failed with err:-517
Jun 02 19:29:59 Sailfish kernel: platform 78b9000.i2c: Driver i2c-msm-v2 requests probe deferral
Jun 02 19:29:59 Sailfish kernel: i2c-msm-v2 78ba000.i2c: probing driver i2c-msm-v2
Jun 02 19:29:59 Sailfish kernel: i2c-msm-v2 78ba000.i2c: error on clk_get(core_clk):-517
Jun 02 19:29:59 Sailfish kernel: i2c-msm-v2 78ba000.i2c: error probe() failed with err:-517
Jun 02 19:29:59 Sailfish kernel: platform 78ba000.i2c: Driver i2c-msm-v2 requests probe deferral
Jun 02 19:29:59 Sailfish kernel: i2c-msm-v2 78b8000.i2c: probing driver i2c-msm-v2
Jun 02 19:29:59 Sailfish kernel: i2c-msm-v2 78b8000.i2c: error on clk_get(core_clk):-517
Jun 02 19:29:59 Sailfish kernel: i2c-msm-v2 78b8000.i2c: error probe() failed with err:-517
Jun 02 19:29:59 Sailfish kernel: platform 78b8000.i2c: Driver i2c-msm-v2 requests probe deferral
Решение:
This problem relates to the driver probe order. Because clk inits after probing i2c, so that i2c failed to get clk.This problem can be solved by changing Makefile (in /drivers). Just move clk upto a higher position than i2c.I checked it this way and now the error message disappears :)
kernel/asus/msm8916/drivers/Makefile
PS2. из http://piratepad.net/hadk-faq-v2 строка 73-87
- изменение в файле hybris/droid-configs/droid-configs-device/sparse/lib/udev/rules.d/998-droid-system.rules
SIM card not detected:
This often causes a bootloop
Cellular Modem bringup is now in HADK v1.1.1 section 13.3
Additional checks:
Replicate /dev/block structure from Android as closely as possible (for rild to be able to access the modem partition)
Run ls -lR /dev/block in CM
Run ls -lR /dev/block in Sailfish OS
diff the two outputs (this is WIP - android's toolbox ls might need more parameters to produce a comparable output)
If you see differences you need to add custom udev rules to create the correct /dev/block structure
For devices with /dev/block/platform/msm_sdcc.1/by-name/ paths (msm_sdcc.1 can be different) add to $ANDROID_ROOT/rpm/ these paths and files with contents, and it most probably will help (but still paste your diff to the IRC channel):
https://github.com/mer-hybris-kis3/droid-config-kis3/blob/master/sparse/lib/udev/platform-device
https://github.com/mer-hybris-kis3/droid-config-kis3/blob/master/sparse/lib/udev/rules.d/998-droid-system.rules
Some devices have /dev/block/bootdevice/by-name/ as /dev/block structure in CM in which case you need to add the following line to the end of the 998-droid-system.rules file in the last link:
ENV{ID_PART_ENTRY_SCHEME}=="gpt", ENV{ID_PART_ENTRY_NAME}=="?*", IMPORT{program}="/bin/sh /lib/udev/platform-device $env{DEVPATH}", SYMLINK+="block/bootdevice/by-name/$env{ID_PART_ENTRY_NAME}"
If you have logcat and journal error messages suggesting that RIL/ofono can't power the modem on and you have a qcom chipset, have a look in your init.qcom.rc for lines that power it on when the boot animation (bootanim) stops. If you have those, try this (paths may need correcting): https://github.com/stephgosling/android_device_htc_m7-common/commit/9f4abdca65356090e6dd6f0356c5cf4a1870aa5f (note the typo there in the chown line!)
Далее переходим к пункту
8. Packaging droid-hal-device
- проиcходит постоянная попытка загрузки booster for Qt5 см https://gist.github.com/kaefik/2b29fdea0120530dcca9bd737dc2ba17
нужен патч для ядра: https://github.com/zhxt/android_kernel_xiaomi_msm8996/commit/731e1017a8b3f2f15b4b5766adf1f3485c395e03 в файле droid/kernel/asus/msm8916/fs/proc/base.c