Jump to content

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

From postmarketOS Wiki
added fingerprint info
added Install postmarketOS section
Line 61: Line 61:


== Special key combos ==
== Special key combos ==
Boot to bootloader: hold Volume Vown + 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


Boot to bootloader: hold volume down + power button until the screen turns on
== Install postmarketOS ==
Go to bootloader then connect the device to the PC then run this commands one by one.
<syntaxhighlight lang="shell-session">
$./pmbootstrap.py init
$./pmbootstrap.py -t 30000 install --no-fde
$./pmbootstrap.py flasher flash_rootfs --partition userdata
$./pmbootstrap.py flasher flash_kernel
</syntaxhighlight>
 
Now select start from the menu in the bootloader screen. Reboot again if you don't see anything in the screen after postmarketOS logo


Launch recovery: first boot to the bootloader, press the volume down button twice and press the power button to select
== Mainline Kernel Status ==
== Mainline Kernel Status ==
{|class="wikitable feature-colors"
{|class="wikitable feature-colors"

Revision as of 09:17, 2 May 2021

LG Nexus 5X
Nexus 5x
Nexus 5x
Manufacturer LG
Name Nexus 5X
Codename lg-bullhead
Released 2015
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
Software
Original software Android 6.0 on Linux 3.10
postmarketOS
Category testing
Pre-built images no
Mainline partial
Unixbench Whet/Dhry score 1273.5
Features
Flashing
Works
USB Networking
Works
Internal storage
No data
SD card
No data
Battery
Works
Screen
Works
Touchscreen
Works
Multimedia
3D Acceleration
No data
Audio
No data
Camera
No data
Camera Flash
No data
Connectivity
WiFi
No data
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
Works
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

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 Vown + 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

Install postmarketOS

Go to bootloader then connect the device to the PC then run this commands one by one.

$./pmbootstrap.py init
$./pmbootstrap.py -t 30000 install --no-fde
$./pmbootstrap.py flasher flash_rootfs --partition userdata
$./pmbootstrap.py flasher flash_kernel

Now select start from the menu in the bootloader screen. Reboot again if you don't see anything in the screen after postmarketOS logo

Mainline Kernel Status

Status Hardware Info
Y Power Management Uses Qualcomm's PM8994 controller, works since 4.11
Touch Screen No driver in mainline tree.
DSI Panel Out-of-tree driver[1] generated using linux-mdss-dsi-panel-driver-generator. Untested
USB Gadget/OTG No DT binding.
Y SDHCI The sd card is supported since 4.17.
Wi-Fi Qualcomm QCA6174. Driver exists in mainline.
Y GPIO keys No DT bindings.
Bluetooth Qualcomm QCA6174. Driver exists in mainline.
Sound Qualcomm WCD9330, no driver in mainline.
Light Sensor Rohm RPR0521. Driver exists in mainline.
Sixaxis Bosch BMI160. Driver exists in mainline.
Camera Sony IMX377. No driver in mainline.
GPU Qualcomm Ardeno 418, needs DT bindings.
Modem Qualcomm WTR3925. No driver in mainline.
Fingerprint FPC1020, supported by this driver:https://github.com/SanniZ/fpc1020-driver. Needs DT bindings.

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

Photos

See also