Difference between revisions of "Meizu Pro 5 (meizu-turbo)"

From postmarketOS
Jump to navigation Jump to search
m (Use templates)
 
(7 intermediate revisions by 4 users not shown)
Line 7: Line 7:
 
| releaseyear = 2015
 
| releaseyear = 2015
 
| originalsoftware = Android 5, Ubuntu Touch
 
| originalsoftware = Android 5, Ubuntu Touch
| chipset = Samsung Exynos 7420 Octa
+
| chipset = Exynos 7420 Octa
 
| cpu = Octa-core (4x2.1 GHz Cortex-A57 & 4x1.5 GHz Cortex-A53)
 
| cpu = Octa-core (4x2.1 GHz Cortex-A57 & 4x1.5 GHz Cortex-A53)
| gpu = Mali-T760MP8
+
| gpu = Mali-T760 MP8
| storage = 32GB/64GB
+
| storage = 32/64 GB
| display = AMOLED, 16M colors
+
| display = 1080x1920 AMOLED
| memory = 3GB/4GB
+
| memory = 3/4 GB
 
| architecture = aarch64
 
| architecture = aarch64
 
| status_usbnet = Y
 
| status_usbnet = Y
 
| status_flashing = P
 
| status_flashing = P
| status_touch =  
+
| status_touch = Y
| status_screen = N
+
| status_screen = Y
 
| status_wifi =  
 
| status_wifi =  
 
| status_xwayland =  
 
| status_xwayland =  
Line 57: Line 57:
  
 
== Status ==
 
== Status ==
Currently when turned on, the device enters reboot loop.
+
Currently when turned on, the device enters reboot loop. The reboot is triggered by the line:
USB networking workds, telnet debugging hook lets log in at early stage before the reboot.
 
All steps from init.sh until switch_root when entered manually in telnet debug shell seem to work without problem.
 
The display is not working - blank black screen. If provoked to display an early splash (e.g. no rootfs), a black image is displayed
 
with white lines on the left and top borders, as if it is a part of zoomed in image.
 
Turning on OpenRC logging does not produce any log files in /var/log on sysroot partition, which suggests that either switch_root and call to /sbin/init fails,
 
or OpenRC fails on very early stage.
 
The same result has been observed on a modified UBPorts kernel (currently in APKBUILD) and on faust98 kernel (see below), both compiled on GCC8 and GCC6.
 
  
If one tries to mount the system manually it reboots after "Populating /dev with existing devices through uevents" message:
+
'''
 +
udevadm trigger --type=devices --action=add
 +
'''
 +
The device is accessible with telnet hook and via SSH (after additional procedure)
 +
 
 +
In order to workaround this problem you can compile a custom eudev package with this patch:
 +
https://github.com/elelel/eudev/commit/f27656ae371c0da23346cdccbd3dc28cf38d2794
 +
...and install it on the system
 +
 
 +
Current aport does not contain firmware blobs. Adding them might fix the eudev problem.
  
 +
=== Getting device to boot in spite of uedev ===
 +
 +
Install PostmarketOS's telnet debug hook, log on with telnet, then  execute:
 +
 +
. init_functions.sh
 +
mount_boot_partition
 +
extract_initramfs_extra /boot/initramfs-*-extra
 +
start_charging_mode
 +
wait_root_partition
 +
resize_root_partition
 +
unlock_root_partition
 +
resize_root_filesystem
 +
mount_root_partition
 +
mount -o remount,rw /dev/mapper/sda41p2 /sysroot
 +
 +
mount -t proc proc /sysroot/proc
 +
mount -t sysfs sys /sysroot/sys
 +
chroot /sysroot
 +
 +
 +
If you want just to boot to SSH, in chroot, comment out the offendig string, e.g. with sed replace or vi in /etc/init.d/udev-trigger.rc
  
# mount /dev/mapper/sda41p2 /sysroot
 
# mount -t proc proc /sysroot/proc
 
# mount -t sysfs sys /sysroot/sys
 
# chroot /sysroot
 
# touch .....runlevel
 
# /etc/init.d/devfs start
 
# ls /dev
 
adnc0              cluster1_freq_min  hwrng              ion-test            mapper              ram0                sda1                sdc                tty12              tty31              tty50              ttyGS3              v4l- subdev6        video141
 
adnc1              cluster1_num_max    i2c-0              january            media0              ram1                sda2                seiren              tty13              tty32              tty51              ttySAC1            v4l-subdev7        video142
 
adnc2              cluster1_num_min    i2c-1              kmem                mem                ram10              sda21              sg0                tty14              tty33              tty52              ttySAC4            v4l-subdev8        video150
 
adnc3              console            i2c-10              kmsg                memory_throughput  ram11              sda22              sg1                tty15              tty34              tty53              uhid                v4l-subdev9        video152
 
adnc4              cpu_dma_latency    i2c-11              log_events          mobicore            ram12              sda23              sg2                tty16              tty35              tty54              uinput              vcs                video50
 
adnc5              device_throughput  i2c-12              log_main            mobicore-user      ram13              sda24              sg3                tty17              tty36              tty55              umts_boot0          vcs1                video51
 
alarm              display_throughput  i2c-13              log_radio          modem_br            ram14              sda25              sg4                tty18              tty37              tty56              umts_dm0            vcsa                video6
 
android_adb        dm-0                i2c-14              log_system          mtp_usb            ram15              sda26              sg5                tty19              tty38              tty57              umts_ipc0          vcsa1              video7
 
android_ssusbcon    dm-1                i2c-15              loop-control        muic_device        ram2                sda27              shm                tty2                tty39              tty58              umts_ipc1          vga_arbiter        video8
 
ashmem              erandom            i2c-2              loop0              multipdp            ram3                sda28              snd                tty20              tty4                tty59              umts_loopback      video101            video9
 
battery_device      fb0                i2c-3              loop1              net                ram4                sda29              spi_boot_link      tty21              tty40              tty6                umts_rfs0          video102            watchdog
 
binder              fb1                i2c-4              loop2              network_latency    ram5                sda3                stderr              tty22              tty41              tty60              umts_router        video110            watchdog0
 
bus_throughput      fd                  i2c-5              loop3              network_throughput  ram6                sda30              stdin              tty23              tty42              tty61              urandom            video111            xt_qtaguid
 
bus_throughput_max  fimg2d              i2c-6              loop4              null                ram7                sda31              stdout              tty24              tty43              tty62              usb_accessory      video112              zero
 
cam_throughput      frandom            i2c-7              loop5              p61                ram8                sda32              stmvl6180_ranging  tty25              tty44              tty63              v4l-subdev0        video120
 
charger_device      full                i2c-8              loop6              panic_msg          ram9                sda33              tspdrv              tty26              tty45              tty7                v4l-subdev1        video121
 
cluster0_freq_max  fuse                i2c-9              loop7              pn544              random              sda41              tty                tty27              tty46              tty8                v4l-subdev10        video122
 
cluster0_freq_min  gps                iio:device0        m2m1shot_jpeg      port                rfkill              sda42              tty0                tty28              tty47              tty9                v4l-subdev2        video130
 
cluster0_num_max    gpu_freq_max        iio:device1        m2m1shot_scaler0    ppp                rtc0                sda43              tty1                tty29              tty48              ttyGS0              v4l-subdev3        video131
 
cluster0_num_min    gpu_freq_min        input              m2m1shot_scaler1    psaux              s5p-smem            sda44              tty10              tty3                tty49              ttyGS1              v4l-subdev4        video132
 
cluster1_freq_max  haptic_device      ion                mali0              ptmx                sda                sdb                tty11              tty30              tty5                ttyGS2              v4l-subdev5        video140
 
# openrc
 
  * Mounting security filesystem ... [ ok ]
 
  * Mounting debug filesystem ... [ ok ]
 
  * Mounting config filesystem ... [ ok ]
 
  * Mounting fuse control filesystem ... [ ok ]
 
  * Mounting SELinux filesystem ... [ ok ]
 
  * Starting udev ... [ ok ]
 
  * Generating a rule to create a /dev/root symlink ... [ ok ]
 
  * Populating /dev with existing devices through uevents ... [ ok ]
 
 
'''
 
'''
 +
udevadm trigger --type=devices --action=add
 +
'''
 +
 +
If you want to make the device boot to UI as normal, you should install patched eudev package (see above) at this point and reboot.
  
 
== Development notes ==
 
== Development notes ==
Line 114: Line 104:
 
# Official kernel sources
 
# Official kernel sources
 
## [https://github.com/meizuosc/m576/tree/master Android branch]. This branch seem to contain the very first kernel used for the earliest FlymeOS 4.x ROM. It is reported to be uncomplete, in particular, it misses Meizu proprietary sources for power management.
 
## [https://github.com/meizuosc/m576/tree/master Android branch]. This branch seem to contain the very first kernel used for the earliest FlymeOS 4.x ROM. It is reported to be uncomplete, in particular, it misses Meizu proprietary sources for power management.
## [https://github.com/meizuosc/m576/tree/ubuntu Ubuntu branch]. This branch seem to contain kernel actually used in more recent official Android releases (3.10.100) at least till commit f866ad068f11fb5e68ff87901346483945972ae9. After that Ubuntu-specific patches as well as generic bugfixes come.
+
## [https://github.com/meizuosc/m576/tree/ubuntu Ubuntu branch]. This branch seem to contain kernell for Android release updated to 3.10.100 in commit f866ad068f11fb5e68ff87901346483945972ae9. After that Ubuntu-specific patches as well as generic bugfixes come.
 
## Android 7 kernel, not released. Kernels from previous two links were only used in very early official ROMs. Later kernel sources were not realeased. There is a Github [https://github.com/meizuosc/m576/issues/5 issue] requesting the release. Meizu is known to respond positively to such issues.
 
## Android 7 kernel, not released. Kernels from previous two links were only used in very early official ROMs. Later kernel sources were not realeased. There is a Github [https://github.com/meizuosc/m576/issues/5 issue] requesting the release. Meizu is known to respond positively to such issues.
 
# Unofficial sources
 
# Unofficial sources
Line 123: Line 113:
  
 
== See also ==
 
== See also ==
[https://gitlab.com/postmarketOS/pmaports/merge_requests/106 Initial merge request]
+
* {{MR|106|pmaports}} Initial merge request
<!--
+
* {{Device package|meizu-turbo}}
Link to related gitlab issues or merge requests like the following (replace CHANGEME with the ID, e.g. 1234):
+
* {{Kernel package|meizu-turbo}}
* {{MR|CHANGEME}} Initial merge request
 
* {{issue|CHANGEME}} Some related issue
 
You can also add normal web links:
 
* [https://redmine.replicant.us/projects/replicant/wiki/GalaxyS2I9100 Replicant wiki page]
 
-->
 

Latest revision as of 12:03, 18 December 2020

Meizu Pro 5
[[|200px|alt=Meizu 5 Pro]]
Meizu 5 Pro
Manufacturer Meizu
Name Pro 5
Codename meizu-turbo
Released 2015
Category testing
Original software Android 5, Ubuntu Touch
Hardware
Chipset Exynos 7420 Octa
CPU Octa-core (4x2.1 GHz Cortex-A57 & 4x1.5 GHz Cortex-A53)
GPU Mali-T760 MP8
Display 1080x1920 AMOLED
Storage 32/64 GB
Memory 3/4 GB
Architecture aarch64
Features
USB Networking
Works
Flashing
Partial
Touchscreen
Works
Display
Works
WiFi
Xwayland
FDE
Mainline
Battery
3D Acceleration
Accelerometer
Audio
Bluetooth
Camera
GPS
Mobile data
SMS
Calls
USB OTG



Contributors

elelel

Maintainer(s)

How to enter flash mode

The device has to be with unlocked bootloader. Android phone version has bootloader locked by default. Locked bootloader may be unlocked with a Beta FlymeOS image for the international phone version. International firmware can be flashed to Chinese phone if one changes phone's id (possible with a 5.1.x Chinese firmware, root and a hex editor).


Press volume down and power while turning on to get into fastboot mode.

Installation

Current pmbootstrap utility assumes that boot partition is always named 'boot' on fastboot devices. This device's boot partition has 'bootimg' label. Because of that boot partition must be either flashed directly with fastboot utility, or pmbootstrap config source code has to be fixed.

Status

Currently when turned on, the device enters reboot loop. The reboot is triggered by the line:

udevadm trigger --type=devices --action=add

The device is accessible with telnet hook and via SSH (after additional procedure)

In order to workaround this problem you can compile a custom eudev package with this patch: https://github.com/elelel/eudev/commit/f27656ae371c0da23346cdccbd3dc28cf38d2794 ...and install it on the system

Current aport does not contain firmware blobs. Adding them might fix the eudev problem.

Getting device to boot in spite of uedev

Install PostmarketOS's telnet debug hook, log on with telnet, then execute:

. init_functions.sh
mount_boot_partition
extract_initramfs_extra /boot/initramfs-*-extra
start_charging_mode
wait_root_partition
resize_root_partition
unlock_root_partition
resize_root_filesystem
mount_root_partition
mount -o remount,rw /dev/mapper/sda41p2 /sysroot
mount -t proc proc /sysroot/proc
mount -t sysfs sys /sysroot/sys
chroot /sysroot


If you want just to boot to SSH, in chroot, comment out the offendig string, e.g. with sed replace or vi in /etc/init.d/udev-trigger.rc

udevadm trigger --type=devices --action=add

If you want to make the device boot to UI as normal, you should install patched eudev package (see above) at this point and reboot.

Development notes

Kernels

There are several candidate kernels for the port:

  1. Official kernel sources
    1. Android branch. This branch seem to contain the very first kernel used for the earliest FlymeOS 4.x ROM. It is reported to be uncomplete, in particular, it misses Meizu proprietary sources for power management.
    2. Ubuntu branch. This branch seem to contain kernell for Android release updated to 3.10.100 in commit f866ad068f11fb5e68ff87901346483945972ae9. After that Ubuntu-specific patches as well as generic bugfixes come.
    3. Android 7 kernel, not released. Kernels from previous two links were only used in very early official ROMs. Later kernel sources were not realeased. There is a Github issue requesting the release. Meizu is known to respond positively to such issues.
  2. Unofficial sources
    1. UBPorts kernel. Based on Meizu Pro 5 branch. Contains Ubuntu Touch fixes and ports, mainly Android binder and anbox-specific patches.
    2. faust93's kernel. Kernel used in at least two unofficial Android roms. This kernel, probably based on CM14.1, seems to be most up to date candidate, but contains a lot of patches from assorted sources and may be not very stable


See also