Jump to content

Google Pixel 2 XL (google-taimen): Difference between revisions

From postmarketOS Wiki
mNo edit summary
Wiktorpyk6 (talk | contribs)
No edit summary
 
(14 intermediate revisions by 7 users not shown)
Line 2: Line 2:
| manufacturer = Google
| manufacturer = Google
| name = Pixel 2 / XL
| name = Pixel 2 / XL
| codename = google-walleye, google-taimen
| codename = google-taimen
| image =  
| image =  
| imagecaption =  
| imagecaption =  
| releaseyear = 2017
| releaseyear = 2017
| originalsoftware = Android 8.0 (Up to Android 11) on Linux 4.4
| originalsoftware = Android
| chipset = Qualcomm MSM8998 Snapdragon 835
| originalversion = 8.0
| extendedversion = 11 (Linux 4.4)
| chipset = Qualcomm Snapdragon 835 (MSM8998)
| cpu = Octa-core (4x 2.45 GHz Kryo 280 & 4x 1.9 GHz Kryo 280)
| cpu = Octa-core (4x 2.45 GHz Kryo 280 & 4x 1.9 GHz Kryo 280)
| gpu = Adreno 540
| gpu = Adreno 540
Line 14: Line 16:
| memory = 4 GB
| memory = 4 GB
| architecture = aarch64
| architecture = aarch64
| type = handset
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) -->
<!-- the following status_* questions should be answered with Y - yes, P - partial, N - no, or left blank (for untested or unknown) -->
| status_usbnet =  
| status_usbnet = Y
| status_flashing =  
| status_flashing = Y
| status_touch =  
| status_touch =  
| status_screen =  
| status_screen = N
| status_wifi =  
| status_wifi =  
| status_xwayland =  
| status_xwayland =  
| status_fde =  
| status_fde =  
| status_mainline = P
| status_mainline = P
| status_battery =  
| status_battery = N
| status_3d =  
| status_3d =  
| status_accel =  
| status_accel =  
Line 30: Line 33:
| status_camera =  
| status_camera =  
| status_gps =  
| status_gps =  
| status_mobiledata = N
| status_mobiledata =  
| status_sms =  
| status_sms =  
| status_calls =  
| status_calls =  
| status =  
| status = Boots but no display output
| booting = N
| booting = Y
| pmoskernel =
| pmoskernel = 5.10-rc2
| whet_dhry =
| whet_dhry =
| status_otg =
| status_otg =
Line 41: Line 44:


This page documents the status of mainline Linux on the Pixel 2 XL!
This page documents the status of mainline Linux on the Pixel 2 XL!


= Status =
= Status =


Initial porting work is being done by [[User:Kalube|Kalube]]. The device boots Linux 5.10 and can successfully dump to pstore. Simplefb doesn't work (stays on boot splash), early panel driver attempts have also not been successful.
The device boots Mainline with basic DTS support, USB networking is enough to get to a shell. "clk_ignore_unused" is needed to prevent unused clocks causing the device to crash early in boot.
 
== pstore ==
 
Due to having to cold reboot the device, pstore becomes extremely corrupt as memory loses power for a short amount of time. I was able to partially counter this and get /almost/ readable pstore (https://s.connolly.tech/pstore.jpeg) by putting the device in a freezer and then keeping it on ice.
 
I would not recommend this as it could damage the battery, instead you can build a serial cable by [https://wiki.postmarketos.org/wiki/Serial_debugging:Cable_schematics#Google_Pixel_.22Android_Debug_Cable.22 following the instructions here].
 
== Partition Map ==
Map of partitions on [[User:Caleb|Caleb]]'s Pixel 2 XL
 
<div class="toccolours mw-collapsible mw-collapsed" style="width: 800px; overflow: auto;">
<code>taimen:~# ls -lah /dev/block/bootdevice/by-name/</code>
<div class="mw-collapsible-content">
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 abl_a -> /dev/block/sde6
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 abl_b -> /dev/block/sde20
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 aes_a -> /dev/block/sda10
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 aes_b -> /dev/block/sda11
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 align_parti -> /dev/block/sda12
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 apdp -> /dev/block/sde29
  lrwxrwxrwx 1 root root  36 1970-01-02 05:02 boot -> /dev/block/bootdevice/by-name/boot_b
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 boot_a -> /dev/block/sde8
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 boot_b -> /dev/block/sde22
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 cdt -> /dev/block/sdd1
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 cmnlib64_a -> /dev/block/sde10
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 cmnlib64_b -> /dev/block/sde24
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 cmnlib_a -> /dev/block/sde9
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 cmnlib_b -> /dev/block/sde23
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 ddr -> /dev/block/sdd2
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 devcfg_a -> /dev/block/sde11
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 devcfg_b -> /dev/block/sde25
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 devinfo -> /dev/block/sde34
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 dip -> /dev/block/sde35
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 dpo -> /dev/block/sde36
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 dtbo_a -> /dev/block/sde13
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 dtbo_b -> /dev/block/sde27
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 frp -> /dev/block/sdg1
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 fsc -> /dev/block/sdf3
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 fsg -> /dev/block/sde32
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 ftm -> /dev/block/sda6
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 hyp_a -> /dev/block/sde3
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 hyp_b -> /dev/block/sde17
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 keymaster_a -> /dev/block/sde7
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 keymaster_b -> /dev/block/sde21
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 laf_a -> /dev/block/sda1
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 laf_b -> /dev/block/sda2
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 limits -> /dev/block/sde37
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 logfs -> /dev/block/sde39
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 metadata -> /dev/block/sde41
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 misc -> /dev/block/sda5
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 modem_a -> /dev/block/sde5
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 modem_b -> /dev/block/sde19
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 modemst1 -> /dev/block/sdf1
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 modemst2 -> /dev/block/sdf2
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 msadp -> /dev/block/sde30
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 persist -> /dev/block/sda4
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 pmic_a -> /dev/block/sde4
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 pmic_b -> /dev/block/sde18
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 pstore -> /dev/block/sda9
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 rpm_a -> /dev/block/sde1
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 rpm_b -> /dev/block/sde15
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 sec -> /dev/block/sde33
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 ssd -> /dev/block/sda3
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 sti -> /dev/block/sde40
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 storsec -> /dev/block/sde31
  lrwxrwxrwx 1 root root  38 1970-01-02 05:02 system -> /dev/block/bootdevice/by-name/system_b
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 system_a -> /dev/block/sda7
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 system_b -> /dev/block/sda8
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 toolsfv -> /dev/block/sde38
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 tz_a -> /dev/block/sde2
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 tz_b -> /dev/block/sde16
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 userdata -> /dev/block/sda13
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 vbmeta_a -> /dev/block/sde12
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 vbmeta_b -> /dev/block/sde26
  lrwxrwxrwx 1 root root  38 1970-01-02 05:02 vendor -> /dev/block/bootdevice/by-name/vendor_b
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 vendor_a -> /dev/block/sde14
  lrwxrwxrwx 1 root root  16 1970-01-02 05:02 vendor_b -> /dev/block/sde28
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 xbl_a -> /dev/block/sdb1
  lrwxrwxrwx 1 root root  15 1970-01-02 05:02 xbl_b -> /dev/block/sdc1
</div>
</div>


The display panel uses dsc compression which doesn't seem to be used much at all on Mainline.
= Installation =


== pstore ==
=== Unlock the bootloader ===


Due to having to cold reboot the device, pstore becomes extremely corrupt as memory loses power for a short amount of time. I was able to partially counter this and get /almost/ readable pstore (https://s.connolly.tech/pstore.jpeg) by putting the device in a freezer at -27C and then keeping it on ice.
Before installing postmarketOS you have to unlock your bootloader (aka OEM unlock). This can be accessed by enabling Developer Mode.


== UFS ==
==== If your device's original carrier was Verizon ====


pstore seems to have some ufs errors...
You will not be able to unlock the bootloader on any Verizon taimen/walleye unless your device is on an ancient Android 8.0.0 release. Verizon devices have the OEM Unlock option greyed out permanently.


= Community Info =
= Community Info =
Line 62: Line 146:
== Maintainers ==
== Maintainers ==


* [[User:Kalube|Kalube]]
* [[User:Caleb|Caleb]]


== See also ==
== See also ==
* [https://github.com/calebccff/linux-wahoo Kernel sources]
* [https://github.com/calebccff/linux-wahoo Kernel sources]

Latest revision as of 14:39, 14 March 2025

Google Pixel 2 /
XL
Manufacturer Google
Name Pixel 2 /
XL
Codename google-taimen
Released 2017
Type handset
Hardware
Chipset Qualcomm Snapdragon 835 (MSM8998)
CPU Octa-core (4x 2.45 GHz Kryo 280 & 4x 1.9 GHz Kryo 280)
GPU Adreno 540
Display 1080 x 1920 / 1440 x 2880 AMOLED
Storage 64/128/256 GB
Memory 4 GB
Architecture aarch64
Software
Original software Android
Original version 8.0
Extended version 11 (Linux 4.4)
postmarketOS
Category testing
Pre-built images no
Mainline partial
postmarketOS kernel 5.10-rc2
Features
Flashing
Works
USB Networking
Works
Internal storage
No data
SD card
No data
Battery
Broken
Screen
Broken
Touchscreen
No data
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


This page documents the status of mainline Linux on the Pixel 2 XL!


Status

The device boots Mainline with basic DTS support, USB networking is enough to get to a shell. "clk_ignore_unused" is needed to prevent unused clocks causing the device to crash early in boot.

pstore

Due to having to cold reboot the device, pstore becomes extremely corrupt as memory loses power for a short amount of time. I was able to partially counter this and get /almost/ readable pstore (https://s.connolly.tech/pstore.jpeg) by putting the device in a freezer and then keeping it on ice.

I would not recommend this as it could damage the battery, instead you can build a serial cable by following the instructions here.

Partition Map

Map of partitions on Caleb's Pixel 2 XL

taimen:~# ls -lah /dev/block/bootdevice/by-name/

Installation

Unlock the bootloader

Before installing postmarketOS you have to unlock your bootloader (aka OEM unlock). This can be accessed by enabling Developer Mode.

If your device's original carrier was Verizon

You will not be able to unlock the bootloader on any Verizon taimen/walleye unless your device is on an ancient Android 8.0.0 release. Verizon devices have the OEM Unlock option greyed out permanently.

Community Info

postmarketOS users that own the device

Maintainers

See also