Google Nexus 6P (huawei-angler): Difference between revisions
Link mainline section of the chipset |
|||
(25 intermediate revisions by 15 users not shown) | |||
Line 6: | Line 6: | ||
| imagecaption = Huawei Nexus 6P | | imagecaption = Huawei Nexus 6P | ||
| releaseyear = 2015 | | releaseyear = 2015 | ||
| originalsoftware = Android 6.0.0 | | originalsoftware = Android | ||
| chipset = Qualcomm | | originalversion = 6.0.0 (Linux 3.10) | ||
| extendedversion = 8.0.0 (Linux 3.10) | |||
| chipset = Qualcomm Snapdragon 810 (MSM8994) | |||
| cpu = Octa-core (4x1.55 GHz Cortex-A53 & 4x2.0 GHz Cortex-A57) | | cpu = Octa-core (4x1.55 GHz Cortex-A53 & 4x2.0 GHz Cortex-A57) | ||
| gpu = Adreno 430 | | gpu = Adreno 430 | ||
| storage = 32/64/128 GB | | storage = 32/64/128 GB | ||
| display = 1440x2560 AMOLED | | display = 1440x2560 AMOLED | ||
| memory = 3 GB | | memory = 3 GB | ||
| architecture = aarch64 | | architecture = aarch64 | ||
| type = handset | |||
| status_usbnet = Y | | status_usbnet = Y | ||
| status_flashing = P | | status_flashing = P | ||
Line 21: | Line 24: | ||
| status_xwayland = Y | | status_xwayland = Y | ||
| status_fde = | | status_fde = | ||
| status_mainline = | | status_mainline = P | ||
| status_battery = | | status_battery = Y | ||
| status_3d = | | status_3d = | ||
| status_accel = | | status_accel = | ||
| status_audio = | | status_audio = P | ||
| status_bluetooth = | | status_bluetooth = | ||
| status_camera = | | status_camera = | ||
| status_gps = | | status_gps = | ||
| status_mobiledata = | | status_mobiledata = | ||
| status_sms = | | status_sms = N | ||
| status_calls = | | status_calls = N | ||
| booting = yes | | booting = yes | ||
}} | }} | ||
== Contributors == | == Contributors == | ||
* zhuowei | * zhuowei, khimaros, Learn Chung Chen | ||
== Users owning this device == | |||
{{Device owners}} | |||
== How to enter flash mode == | |||
* Connect a USB cable | * Connect a USB cable | ||
* Make sure, the device is powered off | * Make sure, the device is powered off | ||
Line 45: | Line 53: | ||
==pmbootstrap install== | ==pmbootstrap install== | ||
[[Installing_pmbootstrap|Install pmbootstrap]] and then run: | |||
<syntaxhighlight lang="shell-session"> | |||
$ | $ pmbootstrap init | ||
$ pmbootstrap install | |||
$ | $ pmbootstrap flasher flash_rootfs | ||
$ pmbootstrap flasher flash_kernel | |||
</syntaxhighlight> | |||
== Kernel configs applied == | == Kernel configs applied == | ||
Line 73: | Line 77: | ||
To enter Fastboot mode, hold Volume Down while powering on the device. Let go of Volume Down when a picture of a green Android mascot shows up on the screen. | To enter Fastboot mode, hold Volume Down while powering on the device. Let go of Volume Down when a picture of a green Android mascot shows up on the screen. | ||
== Limitations == | |||
The Nexus 6P running on downstream kernel does not have DRM support, which means most accelerated interfaces (such as phosh and sway) are unsupported. There are two known workarounds: | |||
* '''Recommended:''' [https://wiki.postmarketos.org/wiki/User:Khimaros#running_wlroots_based_compositors_on_x11.2Ffbdev_.2B_pixman running wlroots based compositors using wlroots native x11/fbdev + pixman support]: relies purely on existing upstream behavior with a minor bug fix patch against wlroots. | |||
* [https://wiki.postmarketos.org/wiki/User:Ollieparanoid/Run_wlroots_with_fbdev Run wlroots with fbdev]: relies on a custom fbdev backend for wlroots which has been declined for upstream inclusion. | |||
== Research == | == Research == | ||
Line 78: | Line 89: | ||
=== Mainline === | === Mainline === | ||
There | There was an initial project [https://www.youtube.com/watch?v=77tuFtM4gjA to port the mainline kernel to Nexus 6P]. As a result there's now some support for Nexus 6P in mainline. Later more functionality was added to msm8994, but just some of that is used in Angler. For more info see [[Qualcomm_Snapdragon_808/810_(MSM8992/MSM8994)#Mainline|mainline section of the chipset]]. | ||
=== Modem === | === Modem === | ||
Line 94: | Line 105: | ||
== Links == | == Links == | ||
* {{Device package|huawei-angler}} | |||
* {{kernel package|huawei-angler}} (downstream) | |||
[https:// | * {{kernel package|postmarketos-qcom-msm8994}} (close to mainline kernel – alternative to downstream kernel, only basic hardware support), added in {{MR|2411|pmaports}} | ||
* Merge Request {{MR|512}}: initial MR | |||
* Merge Request {{MR|555}}: Wi-Fi and graphics | |||
* [https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/arm64/boot/dts/qcom/msm8994-huawei-angler-rev-101.dts Mainline DTS – msm8994-huawei-angler-rev-101.dts] | |||
[https://github.com/LineageOS/android_kernel_huawei_angler/tree/04d1557af1259b211609fa41adbe852b5f9cf2da | * [https://github.com/LineageOS/android_kernel_huawei_angler/tree/04d1557af1259b211609fa41adbe852b5f9cf2da Downstream kernel (LineageOS 14.1)] | ||
* [[Google Nexus 5X (lg-bullhead)]] – similar device |
Latest revision as of 19:22, 3 April 2024
![]() Huawei Nexus 6P | |
Manufacturer | Google (Huawei) |
---|---|
Name | Nexus 6P |
Codename | huawei-angler |
Released | 2015 |
Type | handset |
Hardware | |
Chipset | Qualcomm Snapdragon 810 (MSM8994) |
CPU | Octa-core (4x1.55 GHz Cortex-A53 & 4x2.0 GHz Cortex-A57) |
GPU | Adreno 430 |
Display | 1440x2560 AMOLED |
Storage | 32/64/128 GB |
Memory | 3 GB |
Architecture | aarch64 |
Software | |
Original software | Android |
Original version | 6.0.0 (Linux 3.10) |
Extended version | 8.0.0 (Linux 3.10) |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | partial |
Flashing |
Partial |
---|---|
USB Networking |
Works |
Internal storage |
No data |
SD card |
No data |
Battery |
Works |
Screen |
Works |
Touchscreen |
Works |
Multimedia | |
3D Acceleration |
No data |
Audio |
Partial |
Camera |
No data |
Camera Flash |
No data |
Connectivity | |
WiFi |
Works |
Bluetooth |
No data |
GPS |
No data |
NFC |
No data |
Modem | |
Calls |
Broken |
SMS |
Broken |
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
- zhuowei, khimaros, Learn Chung Chen
Users owning this device
- Cherryband (Notes: dead battery)
- Dominduchami
- Lazcode (Notes: Needs screen and digitizer)
- Russanandres (Notes: LineageOS 14.1)
- Senorsmile
- Syboxez (Notes: Retired.)
- TQMatvey (Notes: Always ready to test)
- Un1Gfn (Notes: stock android)
How to enter flash mode
- Connect a USB cable
- Make sure, the device is powered off
- Hold power + volume down
- Continue holding until you se the bootloader menu
pmbootstrap install
Install pmbootstrap and then run:
$ pmbootstrap init
$ pmbootstrap install
$ pmbootstrap flasher flash_rootfs
$ pmbootstrap flasher flash_kernel
Kernel configs applied
Configs changed from stock Lineage kernel:
- CONFIG_DEVTMPFS=y
- CONFIG_VT=y
- CONFIG_FRAMEBUFFER_CONSOLE=y
- Various NFS client configs: CONFIG_NFS_V4_1=y
- CONFIG_BCMDHD_FW_PATH, CONFIG_BCMDHD_NVRAM_PATH
How to enter flash mode
The Nexus 6P, like all Google Nexus devices, uses Fastboot as the flashing protocol.
To enter Fastboot mode, hold Volume Down while powering on the device. Let go of Volume Down when a picture of a green Android mascot shows up on the screen.
Limitations
The Nexus 6P running on downstream kernel does not have DRM support, which means most accelerated interfaces (such as phosh and sway) are unsupported. There are two known workarounds:
- Recommended: running wlroots based compositors using wlroots native x11/fbdev + pixman support: relies purely on existing upstream behavior with a minor bug fix patch against wlroots.
- Run wlroots with fbdev: relies on a custom fbdev backend for wlroots which has been declined for upstream inclusion.
Research
Mainline
There was an initial project to port the mainline kernel to Nexus 6P. As a result there's now some support for Nexus 6P in mainline. Later more functionality was added to msm8994, but just some of that is used in Angler. For more info see mainline section of the chipset.
Modem
Android boots the modem by mounting the modem partition to /firmware, then opening /dev/subsys_modem. Doing the same on postmarketOS (after linking all the firmware in /firmware/images to /lib/firmware/postmarketos) causes any `dmesg` call to freeze (?!), and the device would kernel panic with a "modem crashed" error in a few seconds.
Audio
The audio requires the blobs from Android's /vendor/adsp.* to be present in /lib/firmware/postmarketos. Then, opening /dev/subsys_adsp will boot the sound card. Currently ALSA recognizes the sound card but fails with an error when playing audio: the Android audio configuration files would need to be converted to Linux format by xml2ucm. See https://arunraghavan.net/2016/01/audio-devices-and-configuration/ for an explanation of the difference between Android and Linux audio, and see https://github.com/kholk/sony-alsa-ucm/tree/master/kitakami for a different SD810 device's ALSA config.
Bluetooth
It seems Bluetooth is connected via H4 UART at /dev/ttyHS0. Tizen uses the hciattach_bcm43xx tool from BlueZ to load firmware to the Bluetooth dongle, but I can't find this utility in Alpine's bluez or bluez-deprecated package. btattach -B /dev/ttyHS0 doesn't seem to work.
Links
- Device package
- Kernel package (downstream)
- Kernel package (close to mainline kernel – alternative to downstream kernel, only basic hardware support), added in pmaports!2411
- Merge Request !512: initial MR
- Merge Request !555: Wi-Fi and graphics
- Mainline DTS – msm8994-huawei-angler-rev-101.dts
- Downstream kernel (LineageOS 14.1)
- Google Nexus 5X (lg-bullhead) – similar device