Difference between revisions of "Google Nexus 5X (lg-bullhead)"

From postmarketOS
Jump to: navigation, search
m
(Add device owners block)
 
(16 intermediate revisions by 5 users not shown)
Line 21: Line 21:
 
| status_xwayland = Y
 
| status_xwayland = Y
 
| status_fde =  
 
| status_fde =  
| status_mainline =  
+
| status_mainline = P
 
| status_battery = Y
 
| status_battery = Y
 
| status_3d =  
 
| status_3d =  
Line 36: Line 36:
 
| whet_dhry = 1273.5
 
| whet_dhry = 1273.5
 
}}
 
}}
 
  
 
== Contributors ==
 
== Contributors ==
Line 42: Line 41:
 
* [[User:PureTryOut]]
 
* [[User:PureTryOut]]
 
* [[User:MartijnBraam]]
 
* [[User:MartijnBraam]]
 +
 +
== Users owning this device ==
 +
{{Device owners}}
 +
<!-- autogenerated, use {{Owns device|devicepage|notes}} on your profile page -->
 +
<!-- use _ instead of spaces in device page name, e.g. {{Owns device|HTC_Desire_(htc-bravo)|custom notes}}-->
 +
<!-- you may need to purge page cache to see changes (more->purge cache)-->
 +
<!-- you can use {{My devices}} on your profile page to show table with all your devices -->
  
 
== Unlocking ==  
 
== Unlocking ==  
Line 50: Line 56:
 
Reboot to the bootloader and run "<kbd>fastboot oem unlock</kbd>"
 
Reboot to the bootloader and run "<kbd>fastboot oem unlock</kbd>"
 
Now select {{button|Yes}} on the phone screen with the volume button and use the power button to accept.
 
Now select {{button|Yes}} on the phone screen with the volume button and use the power button to accept.
 +
 +
== No RPMB ==
 +
 +
If your device says "SECURE BOOT: ENABLED (NO RPMB)" in the fastboot screen that means that the mainboard in your Nexus 5X is missing an image required by secureboot to function properly.
 +
If this is missing then oem-unlocking won't work on the device. It will re-lock every reboot.
 +
 +
No fix is available yet for this
  
 
== Special key combos ==
 
== Special key combos ==
Line 56: Line 69:
  
 
Launch recovery: first boot to the bootloader, press the volume down button twice and press the power button to select
 
Launch recovery: first boot to the bootloader, press the volume down button twice and press the power button to select
 +
== Mainline Kernel Status ==
 +
{|class="wikitable feature-colors"
 +
! Status
 +
! Hardware
 +
! Info
 +
|-
 +
| Y
 +
|Power Management
 +
|Uses Qualcomm's PM8994 controller, works since 4.11
 +
|-
 +
|
 +
|Touch Screen
 +
| Nope
 +
|-
 +
|
 +
| DSI Panel
 +
| Out-of-tree driver[https://gist.github.com/undevdecatos/dedabe4f8823e8fc9e34f058da1a1f82] made by UnDevDeCatOS using lmdbg. Untested
 +
|-
 +
|
 +
|USB Gadget/OTG
 +
| Nope
 +
|-
 +
| Y
 +
|SDHCI
 +
|The sd card is supported since 4.17.
 +
|-
 +
|
 +
|Wi-Fi
 +
|Uses Qualcomm QCA6174. Untested
 +
|-
 +
|Y
 +
|GPIO keys
 +
|PinCTRL works.
 +
|-
 +
|
 +
|Bluetooth
 +
|Unknown chip, probably inside the SoC.
 +
|-
 +
|
 +
|Sound
 +
|Untested, uses the Qualcomm WCD9330 codec.
 +
|-
 +
|
 +
|Light Sensor
 +
| Rohm RPR0521. Supported in mainine, no dt bindings.
 +
|-
 +
|
 +
|Sixaxis
 +
| Bosch BMI160. Supported in mainline, but no dt bindings.
 +
|-
 +
|
 +
|Camera
 +
|Sony IMX377. No driver available.
 +
|-
 +
|
 +
|GPU
 +
|Qualcomm Ardeno 418, untested
 +
|-
 +
|
 +
|Modem
 +
|Qualcomm WTR3925. Untested, no dt bindings.
 +
|-
 +
|
 +
| Fast Charge controller
 +
|Qualcomm SMB1358. No driver
 +
|}
 +
 +
== Firmware ==
 +
Here is the official Google page to download GPS, Audio, Camera, Gestures, Graphics, DRM, Video, Sensors firware blob.
 +
[https://developers.google.com/android/drivers /developers.google]
  
 
== Mainlining ==
 
== Mainlining ==
  
The linux mainline kernel has very basic support for this phone since November 2016 (one cpu and uart). In January 2017 support for the onboard SDHCI was added and since March 2018 pstore-ramoops. Both should be included in 4.19.
+
The Linux mainline kernel has very basic support for this phone since November 2016 (one cpu and uart). In January 2017 support for the onboard SDHCI was added and since March 2018 pstore-ramoops. Both should be included in 4.19.
  
To boot it using pmbootstrap follow the mainlining guide but note that it has a 64 Bit kernel also compared to downstream "device-lg-bullhead" you need to change the debug tty to /dev/ttyMSM0 in the deviceinfo file.
+
To boot it using pmbootstrap follow the mainlining guide but note that it has a 64 Bit kernel. Also, compared to downstream "device-lg-bullhead" you need to change the debug tty to /dev/ttyMSM0 in the deviceinfo file.
  
 
Change deviceinfo (aports/device/device-lg-bullhead/deviceinfo)
 
Change deviceinfo (aports/device/device-lg-bullhead/deviceinfo)
Line 67: Line 150:
 
   deviceinfo_kernel_cmdline="console=ttyMSM0,115200,n8 androidboot.hardware=bullhead boot_cpus=0-5 lpm_levels.sleep_disabled=1 msm_poweroff.download_mode=0 buildvariant=userdebug PMOS_NO_OUTPUT_REDIRECT"
 
   deviceinfo_kernel_cmdline="console=ttyMSM0,115200,n8 androidboot.hardware=bullhead boot_cpus=0-5 lpm_levels.sleep_disabled=1 msm_poweroff.download_mode=0 buildvariant=userdebug PMOS_NO_OUTPUT_REDIRECT"
  
ttyMSM0 tells the kernel to write debug output to the debugger cable, PMOS_NO_OUTPUT_REDIRECT tells the initram script from pmos to write there as well instead as to a (temporary) log file
+
ttyMSM0 tells the kernel to write debug output to the debugger cable, PMOS_NO_OUTPUT_REDIRECT tells the initramfs script from pmOS to write there as well instead of to a (temporary) log file
  
increase the pkgrel in APKBUILD and rebuild the boot.img
+
Increase the pkgrel in the APKBUILD and rebuild the boot.img
 
<syntaxhighlight lang="shell-session">
 
<syntaxhighlight lang="shell-session">
 
$ pmbootstrap checksum device-lg-bullhead
 
$ pmbootstrap checksum device-lg-bullhead
 
$ pmbootstrap export
 
$ pmbootstrap export
 
</syntaxhighlight>
 
</syntaxhighlight>
build your kernel as described in mainlining guide
+
Build your kernel as described in mainlining guide
  
update the boot.img to include your local kernel
+
Update the boot.img to include your local kernel
 
<syntaxhighlight lang="shell-session">
 
<syntaxhighlight lang="shell-session">
 
$ cp "/tmp/postmarketOS-export/boot.img-lg-bullhead" "$TEMP/boot.img"
 
$ cp "/tmp/postmarketOS-export/boot.img-lg-bullhead" "$TEMP/boot.img"
Line 84: Line 167:
 
$ pmbootstrap flasher list_devices
 
$ pmbootstrap flasher list_devices
 
</syntaxhighlight>
 
</syntaxhighlight>
You can communicate with the device using screen (or other software), so in a separate terminal start it
+
You can communicate with the device using <code>screen</code> (or other software), so in a separate terminal start it:
 
<syntaxhighlight lang="shell-session">
 
<syntaxhighlight lang="shell-session">
 
$ screen /dev/ttyUSB0 115200
 
$ screen /dev/ttyUSB0 115200
 
</syntaxhighlight>
 
</syntaxhighlight>
Boot your mobile to bootloader (power + vol down), you should see some debug output already in screen
+
Boot your mobile to the bootloader (power + vol down) and you should see some debug output on the screen.
  
Boot mainline kernel using fastboot
+
Boot the kernel using fastboot
 
<syntaxhighlight lang="shell-session">
 
<syntaxhighlight lang="shell-session">
 
$ pmbootstrap chroot -- fastboot boot /tmp/mainline/boot.img
 
$ pmbootstrap chroot -- fastboot boot /tmp/mainline/boot.img

Latest revision as of 06:58, 7 July 2020

LG Nexus 5X
Nexus 5x
Nexus 5x
Manufacturer LG
Name Nexus 5X
Codename lg-bullhead
Released 2015
Category testing
Original software Android 6.0 on Linux 3.10
Hardware
Chipset Qualcomm MSM8992 Snapdragon 808
CPU 4x1.4 GHz Cortex-A53 & 2x1.8 GHz Cortex-A57
GPU Adreno 418
Display 1080x1920 IPS
Storage 16/32 GB
Memory 2 GB
Architecture aarch64
Unixbench Whet/Dhry score 1273.5
Features
USB Networking
Works
Flashing
Works
Touchscreen
Works
Display
Works
WiFi
Xwayland
Works
FDE
Mainline
Partial
Battery
Works
3D Acceleration
Accelerometer
Audio
Bluetooth
Camera
GPS
Mobile data
SMS
Calls
USB OTG
Works



Contributors

Users owning this device


Unlocking

In android go to SettingsSystemAbout Phone and tap the build number 7 times. Then go to SettingsSystemDeveloper Options and enable OEM unlocking

Reboot to the bootloader and run "fastboot oem unlock" Now select Yes on the phone screen with the volume button and use the power button to accept.

No RPMB

If your device says "SECURE BOOT: ENABLED (NO RPMB)" in the fastboot screen that means that the mainboard in your Nexus 5X is missing an image required by secureboot to function properly. If this is missing then oem-unlocking won't work on the device. It will re-lock every reboot.

No fix is available yet for this

Special key combos

Boot to bootloader: hold volume down + power button until the screen turns on

Launch recovery: first boot to the bootloader, press the volume down button twice and press the power button to select

Mainline Kernel Status

Status Hardware Info
Y Power Management Uses Qualcomm's PM8994 controller, works since 4.11
Touch Screen Nope
DSI Panel Out-of-tree driver[1] made by UnDevDeCatOS using lmdbg. Untested
USB Gadget/OTG Nope
Y SDHCI The sd card is supported since 4.17.
Wi-Fi Uses Qualcomm QCA6174. Untested
Y GPIO keys PinCTRL works.
Bluetooth Unknown chip, probably inside the SoC.
Sound Untested, uses the Qualcomm WCD9330 codec.
Light Sensor Rohm RPR0521. Supported in mainine, no dt bindings.
Sixaxis Bosch BMI160. Supported in mainline, but no dt bindings.
Camera Sony IMX377. No driver available.
GPU Qualcomm Ardeno 418, untested
Modem Qualcomm WTR3925. Untested, no dt bindings.
Fast Charge controller Qualcomm SMB1358. No driver

Firmware

Here is the official Google page to download GPS, Audio, Camera, Gestures, Graphics, DRM, Video, Sensors firware blob. /developers.google

Mainlining

The Linux mainline kernel has very basic support for this phone since November 2016 (one cpu and uart). In January 2017 support for the onboard SDHCI was added and since March 2018 pstore-ramoops. Both should be included in 4.19.

To boot it using pmbootstrap follow the mainlining guide but note that it has a 64 Bit kernel. Also, compared to downstream "device-lg-bullhead" you need to change the debug tty to /dev/ttyMSM0 in the deviceinfo file.

Change deviceinfo (aports/device/device-lg-bullhead/deviceinfo)

 deviceinfo_kernel_cmdline="console=ttyMSM0,115200,n8 androidboot.hardware=bullhead boot_cpus=0-5 lpm_levels.sleep_disabled=1 msm_poweroff.download_mode=0 buildvariant=userdebug PMOS_NO_OUTPUT_REDIRECT"

ttyMSM0 tells the kernel to write debug output to the debugger cable, PMOS_NO_OUTPUT_REDIRECT tells the initramfs script from pmOS to write there as well instead of to a (temporary) log file

Increase the pkgrel in the APKBUILD and rebuild the boot.img

$ pmbootstrap checksum device-lg-bullhead
$ pmbootstrap export

Build your kernel as described in mainlining guide

Update the boot.img to include your local kernel

$ cp "/tmp/postmarketOS-export/boot.img-lg-bullhead" "$TEMP/boot.img"
$ cd .output/arch/arm64/boot/
$ cat Image.gz dts/qcom/msm8992-bullhead-rev-101.dtb > "$TEMP/zImage-dtb"
$ pmbootstrap chroot -- abootimg -u /tmp/mainline/boot.img  -k /tmp/mainline/zImage-dtb
$ pmbootstrap flasher list_devices

You can communicate with the device using screen (or other software), so in a separate terminal start it:

$ screen /dev/ttyUSB0 115200

Boot your mobile to the bootloader (power + vol down) and you should see some debug output on the screen.

Boot the kernel using fastboot

$ pmbootstrap chroot -- fastboot boot /tmp/mainline/boot.img

Device teardown:

https://www.ifixit.com/Teardown/Nexus+5X+Teardown/51318

Downstream DTS: https://github.com/franciscofranco/bullhead/blob/oreo-mr1/arch/arm/boot/dts/qcom/msm8992.dtsi

Photos

Lg-bullhead mate.jpg Lg-bullhead plasma.jpg Coreapps2.jpg

See also

  • #1222 initial MR
  • #1703 showing black screen after pmos logo in xfce DE