BQ Aquaris X5 (bq-paella)

From postmarketOS
BQ Aquaris X5
BQ Aquaris X5 running Plasma Mobile on postmarketOS mainline
BQ Aquaris X5 running Plasma Mobile on postmarketOS mainline
Manufacturer BQ
Name Aquaris X5
Codename bq-paella
Released 2015
Category community
Pre-built images yes
Original software Android (CyanogenOS)
Original version 5.1 (CyanogenOS 12.1)
postmarketOS kernel Mainline
Hardware
Chipset Qualcomm Snapdragon 412 (MSM8916v2)
CPU Quad-core 1.4 GHz Cortex-A53
GPU Adreno 306
Display 720 x 1280 (IPS LCD capacitive touchscreen, 16M colors)
Storage 16GB / 32GB
Memory 2GB / 3GB
Architecture AArch64
Type handset
Unixbench Whet/Dhry score 913.7
Features
USB Networking
Works
Flashing
Works
Touchscreen
Works
Display
Works
WiFi
Works
FDE
Works
Mainline
Works
Battery
Works
3D Acceleration
Works
Audio
Works
Bluetooth
Works
Camera
GPS
Works
Mobile data
Works
Internal storage
SMS
Works
Calls
Works
USB OTG
Works
Sensors
Accelerometer
Works
Magnetometer
Ambient Light
Proximity
Hall Effect
Barometer
Power Sensor
Misc
Built-in DVB
Camera Flash
Keyboard
Touchpad
USB-A
HDMI/DP
Ir RX
Stylus
Memory Card
Haptics
Ethernet
FOSS bootloader
This device is based on the Snapdragon 412.
See the SoC page for common tips, guides and troubleshooting steps

Contributors

Maintainer(s)

Users owning this device


How to enter flash mode

The device is available in two variants: The normal edition from BQ and a special Cyanogen Edition that runs CyanogenOS. The hardware seems to be identical, but the firmware is different. How to enter Fastboot/Recovery mode depends on the firmware that is currently installed.

BQ bootloader

  • Recovery: Power on the device with both Power and Volume Up buttons.
  • Fastboot: Power on the device with both Power and Volume Down buttons.

Cyanogen bootloader

  • Recovery: Power on the device with both Power and Volume Down buttons.
  • Stock fastboot: Power on the device with both Power and Volume Up buttons.
  • lk2nd Fastboot: Power on the device. After it vibrates, hold Volume Down.

Installation

pojntfx made a video tutorial which follows the steps below:

Bq-paella-installation-tutorial.jpg

Unlock bootloader

To unlock your bootloader boot into Android, enable Developer Options from the settings and enable "Allow OEM unlock". Then boot into Fastboot and use fastboot oem unlock. You might need to use fastboot oem unlock-go. (Note: All your data will be erased!)

Firmware

It is recommended to flash to latest firmware from BQ before using postmarketOS. You can download it here: 5.2.0_20180228-1305-picmt-user-637-Fastboot-FW.zip 5.2.0_20180228-1305-picmt-user-637-Fastboot-FW.zip.

First flash the early boot firmware:

$ fastboot flash sbl1 sbl1.mbn
$ fastboot flash sbl1bak sbl1.mbn
$ fastboot flash tz tz.mbn
$ fastboot flash tzbak tz.mbn
$ fastboot flash hyp hyp.mbn
$ fastboot flash hypbak hyp.mbn
$ fastboot flash rpm rpm.mbn
$ fastboot flash rpmbak rpm.mbn
$ fastboot flash modem NON-HLOS.bin

As a next step you also need to flash a Linux/Android bootloader (aboot). There are two different versions available:

  • BQ bootloader: Can only boot downstream kernel
  • Cyanogen bootloader: Can boot both downstream and mainline kernel

Therefore, you should flash the Cyanogen bootloader for postmarketOS. You can download it here: cm-13.1.4-ZNH2KAS5FE-paella-signed-fastboot-a6851b4fbe.zip cm-13.1.4-ZNH2KAS5FE-paella-signed-fastboot-a6851b4fbe.zip

$ fastboot flash aboot emmc_appsboot.mbn
$ fastboot flash splash splash.img

The bootloader has a splash screen with black background.

Note Note: After flashing a new bootloader you should reboot the device to make sure the new bootloader is running.

postmarketOS

The mainline kernel depends on an alternative bootloader (lk2nd). It does not replace the stock bootloader, but provides its own Fastboot interface. When using the mainline kernel you should always use lk2nd for flashing, not the stock Fastboot mode.

  1. Install lk2nd. (Just needed the first time).
    • Warning: lk2nd is installed to the boot partition, not the aboot partition you flashed earlier!

When you have lk2nd installed and running, follow Qualcomm_Snapdragon_410/412_(MSM8916)#Installation.

Downstream

There is an alternative device port using the downstream kernel, bq-paella-downstream. It can be selected by entering the name in pmbootstrap init.

Note WARNING: The downstream kernel is entirely unmaintained and only intended for testing features for the mainline kernel. DO NOT USE IT UNLESS YOU KNOW WHAT YOU ARE DOING!

Using as a daily driver

Audio routing seems to work properly now, so you can make a call without switching anything in settings. You need to watch battery drain as this soc, has no working CPU suspend mode.

Make sure you have checked bq-paella issues and fully read Qualcomm_Snapdragon_410/412_(MSM8916), as it contains information about important bugs related generally to this SoC (they are not mentioned directly here).

Cellular networking requires the package msm-modem-uim-selection and setting /etc/conf.d/msm-modem-uim-selection to sim_wait_time=30, this will automatically detect a sim card in one of the slots and activate it.

Display sleep issue in X11

Note The following issue was solved in postmarketOS "edge" channel when upgrading kernel "linux-postmarketos-qcom-msm8916" to version 6.5.2-r0. In the postmarketOS "stable" channel v23.06 this issue still persists as it uses kernel "linux-postmarketos-qcom-msm8916" version 6.3-r0.

This device is known to have this common issue where in X11 user interfaces like Xfce4 and MATE, when the screen blacks out after a while of inactivity it can't be woken up anymore. As a workaround, set display sleeping time to "never" in the power management settings. To solve this issue properly, work on the Qualcomm DRM Driver is needed. See the github issue on the our msm8916 kernel fork to learn more.

Pictures

See also