Meizu Pro 5 (meizu-turbo)

From postmarketOS
Revision as of 22:24, 18 December 2018 by Elelel (talk | contribs)
Jump to navigation Jump to search
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 Samsung Exynos 7420 Octa
CPU Octa-core (4x2.1 GHz Cortex-A57 & 4x1.5 GHz Cortex-A53)
GPU Mali-T760MP8
Display AMOLED, 16M colors
Storage 32GB/64GB
Memory 3GB/4GB
Architecture aarch64
Features
USB Networking
Works
Flashing
Partial
Touchscreen
Display
Broken
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. 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 message:


# mount /dev/block/sda41p2 /sysroot
# mount -t proc proc /sysroot/proc
# mount -t sysfs sys /sysroot/sys
# chroot /system 
# 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 ]

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 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.
    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

Initial merge request