Jump to content

LG G3 Europe (lg-d855): Difference between revisions

From postmarketOS Wiki
Knuxify (talk | contribs)
m adjust to new chipset naming rules (https://gitlab.com/postmarketOS/wiki/-/issues/69)
Illen (talk | contribs)
Add table for D855 hardware and mainline status
Line 90: Line 90:
== Mainline kernel ==
== Mainline kernel ==
List of features working on mainline kernel:
List of features working on mainline kernel:
* Volume Up/Down and Power keys
{|class="wikitable feature-colors"
* USB in peripheral mode
! Component !! Model !! Status !! Notes
* simple framebuffer
|-
* WLAN
| SoC || Qualcomm MSM8974AC Snapdragon 801 || Y ||
* Bluetooth
|-
* Touchscreen
| USB || - || P || Working in peripheral mode.
* eMMC
|-
* Haptics
| HDMI (SlimPort) || Analogix ANX7812 || N || Driver available in mainline.
|-
| eMMC || SanDisk SDIN9DW4 || Y ||
|-
| microSD || - || P || Unreliable. Can't even mount some UHS SD cards.
|-
| Display || LG LH550QH1-SD03 || N || Connected through Dual DSI.
|-
| LCD Backlight || Ti LM3697 || N || Driver available in mainline.
|-
| Touchscreen || Synaptics S3528A1 || Y ||
|-
| Charging IC || Ti BQ24296 || N || LetuxOS has a [https://git.goldelico.com/?p=letux-kernel.git;a=blob;f=drivers/power/supply/bq2429x_charger.c driver] for it. Alternatively mangoOH seems to just use [https://github.com/mangOH/mangOH/blob/master/linux_kernel_modules/bq24296/bq24190-charger.c modified version] of bq24190-charger driver for BQ24296.
|-
| Wireless Charging IC || IDT P9025A || N ||
|-
| Fuel Gauge || Maxim MAX17048 || Y ||
|-
| Buttons || - || Y || GPIO
|-
| Gyroscope || InvenSense MPU-6515 || P || Missing mount-matrix.
|-
| Ambient light and proximity sensor || Avago APDS-9930 || Y ||
|-
| Magnetometer || ALPS HSCDTD008A || P || Missing mount-matrix.
|-
| Pressure Sensor || ALPS HSPPAD038A || N ||
|-
| IIRC Sensor || Maxim MAXQ616V  || N ||
|-
| Hall Effect Sensor || ROHM Semiconductor BU52061NVX || Y || GPIO
|-
| NFC || NXP PN547 || Y ||
|-
| Audio || Qualcomm WCD9320 || N ||
|-
| Speaker amplifier || Cirrus Logic CS35L32 || N || Driver available in mainline.
|-
| Audio Jack detection IC || Maxim MAX14688 || N ||
|-
| GPU || Qualcomm Adreno 330 || N ||
|-
| WLAN || Qualcomm WCN-3680B || Y ||
|-
| Bluetooth || Qualcomm WCN-3680B || P || HCI doesn't always come up.
|-
| Front camera || Sony IMX208 || N || Driver available in mainline.
|-
| Main camera || Sony IMX135 || N ||
|-
| Status LED || Citizen Electronics CL-503S RGB LED || Y || Works using PM8941 LPG.
|-
| Dual Flash LED || LG Innotek LEYRS63A81GW00 || N ||
|-
| Panel power supply || Ti TPS65132 || N || Driver available in mainline.
|-
| Haptics || Syncoam SM100 || Y || Works using clock based vibrator driver.
|-
|}


== Links ==
== Links ==

Revision as of 12:17, 18 November 2022

LG G3 (Europe)
LG G3 running Weston demos
LG G3 running Weston demos
Manufacturer LG
Name G3 (Europe)
Codename lg-d855
Released 2014
Hardware
Chipset Qualcomm Snapdragon 801 (MSM8974AC)
CPU Quad-core 2.5 GHz Krait 400
GPU Adreno 330
Display 1440x2560 IPS
Storage 16/32 GB
Memory 2/3 GB
Architecture armv7
Software
Original software Android 4.4.2 on Linux 3.10
postmarketOS
Category testing
Pre-built images no
Features
Flashing
Partial
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
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
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

  • Nutcake

Fastboot

Before you can use fastboot on this device you need to remove LGs Download mode, which hides the standard fastboot mode. You can do this by zeroing out a partition called 'laf':

adb shell
su
dd if=/dev/block/platform/msm_sdcc.1/by-name/laf of=/sdcard/laf.img #backup LGs Download mode to the internal SD just in case
dd if=/dev/zero of=/dev/block/platform/msm_sdcc.1/by-name/laf #Overwrite laf with zeroes, enabling fastboot
exit
adb reboot bootloader #reboot directly to fastboot

More detailed instructions for this can be found here

Afterwards, you can boot into fastboot by following these steps:

1. Turn of phone completely
2. Hold Volume Up.
3. Plug in USB-cable while still holding Vol. Up until fastboot pops up

Signing the boot image

pmbootstrap will successfully flash rootfs and kernel, however the device will only boot if you use the
pmbootstrap flasher boot command, as it will otherwise show this error:

ERROR : boot certification verify
[630]_________________________________________
[640]
[640] Secure booting Error!
[640] Cause : boot certification verify
[640]
[640]_________________________________________

The message is shown for 3 seconds, then the screen blacks out and the LED will blink red and blue indefinitely.
This happens because the bootloader on the d855 variant of the LG G3 can not be unlocked and you have to trick the bootloader into thinking your boot image is legitimate.
To do this, you need to first export your boot.img-lg-d855:

mkdir -p /tmp/pmOS_export
pmbootstrap export /tmp/pmOS_export

Then we need a tool called Open_Bump, which can sign boot images for our device. (Requires Python 2. Also works for older LG devices?):

git clone https://github.com/CyboLabs/Open_Bump
cd Open_Bump
python2 open_bump.py "/tmp/pmOS_export/boot.img-lg-d855"

This will create a signed image called boot_bumped.img-lg-d855 in /tmp/pmOS_export/.
Now first flash System and kernel images using pmbootstrap and then manually flash the signed image over these:

pmbootstrap flasher flash_rootfs
pmbootstrap flasher flash_kernel
fastboot flash boot /tmp/pmOS_export/boot_bumped.img-lg-d855

lk2nd

To avoid the secure boot error and get lk2nd running, download lk2nd-msm8974.img from here and remove the "SEANDROIDENFORCE" 53 45 41 4E 44 52 4F 49 44 45 4E 46 4F 52 43 45 bytes at the end of the file with a hex editor, then bump lk2nd-msm8974.img with this script and flash it to the phone with fastboot flash boot lk2nd-msm8974.img. If the bytes haven't been removed, the script will think that lk2nd has already been bumped.

Mainline kernel

List of features working on mainline kernel:

Component Model Status Notes
SoC Qualcomm MSM8974AC Snapdragon 801 Y
USB - P Working in peripheral mode.
HDMI (SlimPort) Analogix ANX7812 N Driver available in mainline.
eMMC SanDisk SDIN9DW4 Y
microSD - P Unreliable. Can't even mount some UHS SD cards.
Display LG LH550QH1-SD03 N Connected through Dual DSI.
LCD Backlight Ti LM3697 N Driver available in mainline.
Touchscreen Synaptics S3528A1 Y
Charging IC Ti BQ24296 N LetuxOS has a driver for it. Alternatively mangoOH seems to just use modified version of bq24190-charger driver for BQ24296.
Wireless Charging IC IDT P9025A N
Fuel Gauge Maxim MAX17048 Y
Buttons - Y GPIO
Gyroscope InvenSense MPU-6515 P Missing mount-matrix.
Ambient light and proximity sensor Avago APDS-9930 Y
Magnetometer ALPS HSCDTD008A P Missing mount-matrix.
Pressure Sensor ALPS HSPPAD038A N
IIRC Sensor Maxim MAXQ616V N
Hall Effect Sensor ROHM Semiconductor BU52061NVX Y GPIO
NFC NXP PN547 Y
Audio Qualcomm WCD9320 N
Speaker amplifier Cirrus Logic CS35L32 N Driver available in mainline.
Audio Jack detection IC Maxim MAX14688 N
GPU Qualcomm Adreno 330 N
WLAN Qualcomm WCN-3680B Y
Bluetooth Qualcomm WCN-3680B P HCI doesn't always come up.
Front camera Sony IMX208 N Driver available in mainline.
Main camera Sony IMX135 N
Status LED Citizen Electronics CL-503S RGB LED Y Works using PM8941 LPG.
Dual Flash LED LG Innotek LEYRS63A81GW00 N
Panel power supply Ti TPS65132 N Driver available in mainline.
Haptics Syncoam SM100 Y Works using clock based vibrator driver.

Links

Photos