Jump to content

Huawei Mediapad M5 pro (huawei-cameron): Difference between revisions

From postmarketOS Wiki
No edit summary
m Add type
 
(11 intermediate revisions by 7 users not shown)
Line 6: Line 6:
| imagecaption = Huawei Mediapad M5 pro with accessory keyboard-case and stylus
| imagecaption = Huawei Mediapad M5 pro with accessory keyboard-case and stylus
| releaseyear = 2018
| releaseyear = 2018
| originalsoftware = Android 8 Oreo (EMUI 8.0)  
| originalsoftware = Android
| chipset = Kirin 960 Series Chipset
| originalversion = 8 Oreo (EMUI 8.0)
| cpu = HiSilicon Kirin 960 (Cortex-A73/-A53)
| chipset = HiSilicon Kirin 960
| cpu = Cortex-A73/-A53
| gpu = ARM Mali-G71 MP8
| gpu = ARM Mali-G71 MP8
| storage = 64 GB eMMC Flash
| storage = 64 GB eMMC Flash
Line 14: Line 15:
| memory = 4096 MB
| memory = 4096 MB
| architecture = aarch64
| architecture = aarch64
| type = tablet
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) -->
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) -->
| status_usbnet = Y
| status_usbnet = Y
Line 37: Line 39:


== Contributors ==
== Contributors ==
* [[[User:JohnBergago]]
* JohnBergago


== Maintainer(s) ==
== Device owners ==
<!-- Only if this device doesn't run on linux-postmarketos yet! -->
{{Device owners}}
<!-- This person needs to be willing to answer questions from users of this device -->


== How to enter flash mode ==
== How to enter flash mode ==
Line 51: Line 52:
# Get mkbootimg and unpackbootimg i.e. from [https://github.com/anestisb/android-unpackbootimg here].
# Get mkbootimg and unpackbootimg i.e. from [https://github.com/anestisb/android-unpackbootimg here].
# You can extract the kernel-image and ramdisk from the created boot.img with unpackbootimg.  
# You can extract the kernel-image and ramdisk from the created boot.img with unpackbootimg.  
#:<code> <nowiki>#</nowiki> copy created boot image to current directory </code>
#:<syntaxhighlight lang="shell-session">
#:<code>cp ~/.local/var/pmbootstrap/chroot_rootfs_huawei-cameron/boot/boot.img-huawei-cameron .</code>
$ # copy created boot image to current directory  
#:<code> <nowiki>#</nowiki> extract the created boot.img</code>
$ cp ~/.local/var/pmbootstrap/chroot_rootfs_huawei-cameron/boot/boot.img-huawei-cameron .
#:<code>mkdir pmos-boot-huawei-cameron</code>
 
#:<code>unpackbootimg -i boot.img-huawei-cameron -o pmos-boot-huawei-cameron/ </code>
$ # extract the created boot.img
$ mkdir pmos-boot-huawei-cameron
$ unpackbootimg -i boot.img-huawei-cameron -o pmos-boot-huawei-cameron/  
 
$ # copy created boot image to current directory
$ cp ~/.local/var/pmbootstrap/chroot_rootfs_huawei-cameron/boot/boot.img-huawei-cameron .
 
$ # extract the created boot.img
$ mkdir pmos-boot-huawei-cameron
$ unpackbootimg -i boot.img-huawei-cameron -o pmos-boot-huawei-cameron/  
</syntaxhighlight>
#: Use the extracted files in the following steps.
#: Use the extracted files in the following steps.
# Create ramdisk image:
# Create ramdisk image:
#:<code> <nowiki>#</nowiki> create new ramdisk image with empty kernel (empty.file size is 0) </code>
#:<syntaxhighlight lang="shell-session">
#:<code>./android-unpackbootimg/mkbootimg.py --kernel empty.file --ramdisk pmos-boot-huawei-cameron/boot.img-huawei-cameron-ramdisk.gz --cmdline 'buildvariant=user' --os_version 8.0.0 --os_patch_level 2018-06-05 -o pmos-cameron.ramdisk.img </code>
$ # create new ramdisk image with empty kernel (empty.file size is 0)  
$ ./android-unpackbootimg/mkbootimg.py --kernel empty.file --ramdisk pmos-boot-huawei-cameron/boot.img-huawei-cameron-ramdisk.gz --cmdline 'buildvariant=user' --os_version 8.0.0 --os_patch_level 2018-06-05 -o pmos-cameron.ramdisk.img  
</syntaxhighlight>
# Create kernel image:
# Create kernel image:
#:<code> <nowiki>#</nowiki> kernel (with empty.file size is 0): </code>
#:<syntaxhighlight lang="shell-session">
#:<code>kbootimg.py --kernel pmos-boot-huawei-cameron/boot.img-huawei-cameron-zImage --ramdisk empty.file --cmdline 'loglevel=4 initcall_debug=y page_tracker=on slub_min_objects=16 unmovable_isolate1=2:192M,3:224M,4:256M printktimer=0xfff0a000,0x534,0x538 androidboot.selinux=enforcing buildvariant=user' --base 0x0 --kernel_offset 524288 --ramdisk_offset 130023424 --second_offset 15728640 --tags_offset 0x7a00000 --os_version 8.0.0 --os_patch_level 2018-12 -o pmos-cameron.kernel.img </code>
$ # kernel (with empty.file size is 0):
 
$ mkbootimg.py --kernel pmos-boot-huawei-cameron/boot.img-huawei-cameron-zImage --ramdisk empty.file --cmdline 'loglevel=4 initcall_debug=y page_tracker=on slub_min_objects=16 unmovable_isolate1=2:192M,3:224M,4:256M printktimer=0xfff0a000,0x534,0x538 androidboot.selinux=enforcing buildvariant=user' --base 0x0 --kernel_offset 524288 --ramdisk_offset 130023424 --second_offset 15728640 --tags_offset 0x7a00000 --os_version 8.0.0 --os_patch_level 2018-12 -o pmos-cameron.kernel.img
</syntaxhighlight>
# Flash ramdisk and kernel with fastboot:
# Flash ramdisk and kernel with fastboot:
#:<code>fastboot flash kernel pmos-cameron.kernel.img </code>
#:<syntaxhighlight lang="shell-session">
#:<code>fastboot flash ramdisk pmos-cameron.ramdisk.img </code>
$ fastboot flash kernel pmos-cameron.kernel.img  
$ fastboot flash ramdisk pmos-cameron.ramdisk.img  
</syntaxhighlight>


== Additional Kernel Configuration ==
== Additional Kernel Configuration ==
Line 80: Line 96:


== Additional Info ==
== Additional Info ==
The display brightness can be set by writing a value between 0 and 1024 to <code> /sys/class/leds/lcd_backlight0/brightness </code>.  
The display brightness can be set by writing a value between 0 and 9960 to <code> /sys/class/leds/lcd_backlight0/brightness</code>.  
For now the backlight is completley dark when the system boots.
 
<syntaxhighlight lang="shell-session">
$ sudo -i
# echo 1024 > /sys/class/leds/lcd_backlight0/brightness
</syntaxhighlight>
 
For now the backlight is completely dark when the system boots.


== Links ==
== Links ==
[https://github.com/JohnBergago/android_kernel_huawei_hi3660 Kernel Sources with adapted dtc tool to build in fakeroot of pmbootstrap]
* [https://github.com/JohnBergago/android_kernel_huawei_hi3660 Kernel Sources with adapted dtc tool to build in fakeroot of pmbootstrap]
* {{MR|133|pmaports}} initial MR

Latest revision as of 12:17, 12 September 2024

Huawei Mediapad M5 pro
Huawei Mediapad M5 pro with accessory keyboard-case and stylus
Huawei Mediapad M5 pro with accessory keyboard-case and stylus
Manufacturer Huawei
Name Mediapad M5 pro
Codename huawei-cameron
Released 2018
Type tablet
Hardware
Chipset HiSilicon Kirin 960
CPU Cortex-A73/-A53
GPU ARM Mali-G71 MP8
Display 10.8 inch 16:10, 2560 x 1600 pixel, native pen support
Storage 64 GB eMMC Flash
Memory 4096 MB
Architecture aarch64
Software
Original software Android
Original version 8 Oreo (EMUI 8.0)
postmarketOS
Category testing
Pre-built images no
Mainline no
Features
Flashing
Broken
USB Networking
Works
Internal storage
No data
SD card
No data
Battery
No data
Screen
Works
Touchscreen
Works
Multimedia
3D Acceleration
No data
Audio
No data
Camera
No data
Camera Flash
No data
Connectivity
WiFi
Broken
Bluetooth
No data
GPS
No data
NFC
No data
Modem
Calls
No data
SMS
No data
Mobile data
No data
Miscellaneous
FDE
No data
USB OTG
No data
HDMI/DP
No data
Sensors
Accelerometer
No data
Magnetometer
No data
Ambient Light
No data
Proximity
No data
Hall Effect
No data
Haptics
No data
Barometer
No data


Contributors

  • JohnBergago

Device owners

How to enter flash mode

With power off, press power und volume-down at the same time, with the usb-cable plugged in.

How to flash

As Huawei changed the partition layout, there is no boot partition anymore. Instead there is a ramdisk and a seperate kernel partition. In order to create the correct images the following steps need to be done:

  1. Get mkbootimg and unpackbootimg i.e. from here.
  2. You can extract the kernel-image and ramdisk from the created boot.img with unpackbootimg.
    $ # copy created boot image to current directory 
    $ cp ~/.local/var/pmbootstrap/chroot_rootfs_huawei-cameron/boot/boot.img-huawei-cameron .
    
    $ # extract the created boot.img
    $ mkdir pmos-boot-huawei-cameron
    $ unpackbootimg -i boot.img-huawei-cameron -o pmos-boot-huawei-cameron/ 
    
    $ # copy created boot image to current directory
    $ cp ~/.local/var/pmbootstrap/chroot_rootfs_huawei-cameron/boot/boot.img-huawei-cameron .
    
    $ # extract the created boot.img
    $ mkdir pmos-boot-huawei-cameron
    $ unpackbootimg -i boot.img-huawei-cameron -o pmos-boot-huawei-cameron/
    
    Use the extracted files in the following steps.
  3. Create ramdisk image:
    $ # create new ramdisk image with empty kernel (empty.file size is 0) 
    $ ./android-unpackbootimg/mkbootimg.py --kernel empty.file --ramdisk pmos-boot-huawei-cameron/boot.img-huawei-cameron-ramdisk.gz --cmdline 'buildvariant=user' --os_version 8.0.0 --os_patch_level 2018-06-05 -o pmos-cameron.ramdisk.img
    
  4. Create kernel image:
    $ # kernel (with empty.file size is 0):
    $ mkbootimg.py --kernel pmos-boot-huawei-cameron/boot.img-huawei-cameron-zImage --ramdisk empty.file --cmdline 'loglevel=4 initcall_debug=y page_tracker=on slub_min_objects=16 unmovable_isolate1=2:192M,3:224M,4:256M printktimer=0xfff0a000,0x534,0x538 androidboot.selinux=enforcing buildvariant=user' --base 0x0 --kernel_offset 524288 --ramdisk_offset 130023424 --second_offset 15728640 --tags_offset 0x7a00000 --os_version 8.0.0 --os_patch_level 2018-12 -o pmos-cameron.kernel.img
    
  5. Flash ramdisk and kernel with fastboot:
    $ fastboot flash kernel pmos-cameron.kernel.img 
    $ fastboot flash ramdisk pmos-cameron.ramdisk.img
    

Additional Kernel Configuration

OASES

About

OASES stands for Open Adaptive Security Extensions. Its a Tradmark of Baidu and seems to have something todo with adaptive kernel live-patching. For now there were no disadvantages from disabling it.

Location in menu

-> Device Drivers
   -> Huawei Platform Drivers
      -> Huawei platform drivers support (HUAWEI_PLATFORM [=y]) 

In Order to compile the kernel OASES had to be disabled.

Additional Info

The display brightness can be set by writing a value between 0 and 9960 to /sys/class/leds/lcd_backlight0/brightness.

$ sudo -i
# echo 1024 > /sys/class/leds/lcd_backlight0/brightness

For now the backlight is completely dark when the system boots.

Links