Google Pixel C (google-smaug): Difference between revisions
Appearance
https://github.com/torvalds/linux/blob/master/arch/arm64/boot/dts/nvidia/tegra210-smaug.dts |
|||
(43 intermediate revisions by 6 users not shown) | |||
Line 6: | Line 6: | ||
| imagecaption = CHANGE_ME | | imagecaption = CHANGE_ME | ||
| releaseyear = 2015 | | releaseyear = 2015 | ||
| originalsoftware = Android 8.1.0 | | originalsoftware = Android | ||
| chipset = Nvidia Tegra X1 | | originalversion = 8.1.0 | ||
| chipset = Nvidia Tegra X1 (T210) | |||
| cpu = Quad-core 1.9 GHz Cortex-A57 | | cpu = Quad-core 1.9 GHz Cortex-A57 | ||
| gpu = Maxwell | | gpu = Maxwell | ||
Line 14: | Line 15: | ||
| memory = 3 GB | | memory = 3 GB | ||
| architecture = aarch64 | | architecture = aarch64 | ||
| type = tablet | |||
<!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown --> | <!-- the following status_* questions should be answered with Y for yes, P for partial, N for no, - for N/A or unavailable, or left blank for untested or unknown --> | ||
| status_usbnet = N | | status_usbnet = N | ||
| status_flashing = Y | | status_flashing = Y | ||
| status_emmc = Y | |||
| status_sdcard = - | |||
| status_touch = Y | | status_touch = Y | ||
| status_screen = Y | | status_screen = Y | ||
Line 23: | Line 27: | ||
| status_fde = | | status_fde = | ||
| status_mainline = Y | | status_mainline = Y | ||
| status_battery = | | status_battery = Y | ||
| status_3d = Y | | status_3d = Y | ||
| status_audio = | | status_audio = N | ||
| status_bluetooth = Y | | status_bluetooth = Y | ||
| status_camera = | | status_camera = N | ||
| status_cameraflash = - | |||
| status_gps = - | | status_gps = - | ||
| status_mobiledata = - | | status_mobiledata = - | ||
Line 36: | Line 41: | ||
| status_nfc = - | | status_nfc = - | ||
| status_usba = - | | status_usba = - | ||
| status_hdmidp = | | status_hdmidp = N | ||
| status_keyboard = | | status_keyboard = Y | ||
| status_touchpad = - | | status_touchpad = - | ||
| status_irtx = - | | status_irtx = - | ||
| status_rxtx = - | | status_rxtx = - | ||
| status_ethernet = - | | status_ethernet = - | ||
| status_accel = | | status_accel = N | ||
| status_magnet = | | status_magnet = - | ||
| status_light = | | status_light = N | ||
| status_proximity = | | status_proximity = N | ||
| status_hall = | | status_hall = Y | ||
| status_barometer = | | status_barometer = - | ||
| status_powersensor = | | status_powersensor = Y | ||
| status_fossbootloader = P | | status_fossbootloader = P | ||
| booting = yes | | booting = yes | ||
| whet_dhry = | | whet_dhry = | ||
}} | }} | ||
__TOC__ | |||
== Contributors == | == Contributors == | ||
Line 62: | Line 69: | ||
== How to enter flash mode == | == How to enter flash mode == | ||
==== fastboot ==== | |||
When turned off press and hold the power button and volume down until the bootloader menu displays. Using the volume button select "Switch to fastboot mode" and press the power button. | When turned off press and hold the power button and volume down until the bootloader menu displays. Using the volume button select "Switch to fastboot mode" and press the power button. | ||
==== APX ==== | |||
There seems to be no key combination for entering APX mode. Use these commands instead: | |||
<syntaxhighlight lang="shell-session"> | |||
$ pmbootstrap initfs hook_add apx | |||
$ pmbootstrap flasher flash_kernel | |||
</syntaxhighlight> | |||
This will cause device entering APX on boot | |||
== Installation == | == Installation == | ||
=== Installation keeping Android partition table === | === Installation keeping Android partition table (easy way) === | ||
<syntaxhighlight lang="shell-session"> | |||
< | |||
$ pmbootstrap init | $ pmbootstrap init | ||
$ pmbootstrap install --no-cgpt | $ pmbootstrap install --no-cgpt | ||
</syntaxhighlight> | |||
Then in fastboot mode: | |||
<syntaxhighlight lang="shell-session"> | |||
$ pmbootstrap flasher flash_kernel | $ pmbootstrap flasher flash_kernel | ||
$ pmbootstrap flasher flash_rootfs | $ pmbootstrap flasher flash_rootfs | ||
</ | </syntaxhighlight> | ||
=== Installation with repartition and booting from USB (recommended way) === | |||
==== Enable booting from USB ==== | ==== Enable booting from USB ==== | ||
On PC: | On PC: | ||
< | <syntaxhighlight lang="shell-session"> | ||
$ wget https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_15183.78.0_trogdor_recovery_stable-channel_mp-v7.bin.zip | $ wget https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_15183.78.0_trogdor_recovery_stable-channel_mp-v7.bin.zip | ||
$ unzip chromeos_15183.78.0_trogdor_recovery_stable-channel_mp-v7.bin.zip | $ unzip chromeos_15183.78.0_trogdor_recovery_stable-channel_mp-v7.bin.zip | ||
Line 89: | Line 102: | ||
$ sudo cp $(findfs LABEL=ROOT-A) recovery.img | $ sudo cp $(findfs LABEL=ROOT-A) recovery.img | ||
$ adb push recovery.img /sdcard/recovery.img | $ adb push recovery.img /sdcard/recovery.img | ||
</ | </syntaxhighlight> | ||
On device in <code>adb shell</code>: | On device in <code>adb shell</code>: | ||
< | <syntaxhighlight lang="shell-session"> | ||
$ su # assuming you have root | $ su # assuming you have root | ||
# cd /sdcard | # cd /sdcard | ||
# mkdir rootdir | # mkdir rootdir | ||
# mount -o ro | # losetup /dev/block/loop0 recovery.img # this may throw an error, but still pass. check blkid command, make sure there is /dev/block/loop0 in the output | ||
# mount -o ro -t ext4 /dev/block/loop0 rootdir | |||
# cd rootdir | # cd rootdir | ||
# mount - | # mount -t sysfs /sys sys | ||
# mount - | # mount -t proc /proc proc | ||
# mount - | # mount -o bind /dev dev | ||
# mount -t tmpfs -o size=100M tmpfs tmp | # mount -t tmpfs -o size=100M tmpfs tmp # for flashrom to avoid read-only fs | ||
# mount -t tmpfs -o size=100M tmpfs run # for crossystem to avoid read-only fs | |||
# mkdir run/lock # crossystem will create /run/lock/crossystem.lock there | |||
# chroot . /bin/bash | # chroot . /bin/bash | ||
# export PATH="$PATH:/usr/sbin:/bin" | |||
# ln -s /dev/mtd/mtd0 /dev/mtd0 # this is needed for crossystem to work with downstream SPI flash driver | |||
# crossystem dev_boot_usb=1 dev_boot_signed_only=0 # this command enables booting from USB | # crossystem dev_boot_usb=1 dev_boot_signed_only=0 # this command enables booting from USB | ||
</ | </syntaxhighlight> | ||
Everything else is the same to [https://wiki.postmarketos.org/wiki/Chrome_OS_devices Chrome OS devices] except that we don't have prebuilt images yet. | Everything else is the same to [https://wiki.postmarketos.org/wiki/Chrome_OS_devices Chrome OS devices] except that we don't have prebuilt images yet. | ||
Line 111: | Line 129: | ||
Use these commands: | Use these commands: | ||
< | <syntaxhighlight lang="shell-session"> | ||
$ pmbootstrap init # select google-smaug | $ pmbootstrap init # select google-smaug | ||
$ pmbootstrap install --sdcard /dev/sdX | $ pmbootstrap install --sdcard /dev/sdX # replace /dev/sdX with your storage | ||
</ | </syntaxhighlight> | ||
You can boot from USB with pressing {{Button|Ctrl}} + {{Button|U}} in bootloader. | |||
==== Installation to eMMC ==== | ==== Installation to eMMC ==== | ||
{{Warning| Repartitioning or altering the size of partitions on the EMMC will hard brick the device, the bootloader will report OS is corrupt/damage and will not allow flashing via fastboot.}} | |||
< | |||
==== Mainline Kernel Status ==== | |||
<div class="toccolours mw-collapsible mw-collapsed" style="overflow: auto;"> | |||
Table of components in the device | |||
</ | <div class="mw-collapsible-content"> | ||
{| class="wikitable" | |||
|- | |||
! Component !! Model !! Mainline kernel driver !! Notes | |||
|- | |||
| USB-C || - || Yes || Working in kernel (Only Host mode, see cros-ec) | |||
|- | |||
| eMMC || - || Yes || Working in kernel | |||
|- | |||
| Battery/Charger || Texas Instruments BQ27742 || Yes || Working in kernel (uses cros-ec-i2c-tunnel) | |||
|- | |||
| SoC/General PMIC || Maxim MAX77620 || Yes || Working in kernel | |||
|- | |||
| Volume/Power/Home keys || GPIO || Yes || Working in kernel | |||
|- | |||
| Keyboard Detection || GPIO || Yes || Working in kernel, needs script to automatically connect to BT device | |||
|- | |||
| cros-ec:<br />- Accelerometer<br />- Ambient Light Sensor<br />- Lightbar<br />- USB Connector (alerts tegra-xusb/-xudc when modeswitching) || <br />- Bosch BMI160<br />- Silicon Labs Si114x<br />- Included in platform driver<br />- cros-ec-typec<br /> || Yes, but see notes || cros-ec-i2c (the platformdriver) broke for the Pixel C somewhere inbetween 4.14 and 4.19, needs bisection with UART, none of the mentioned components work | |||
|- | |||
| Temperature Sensor || Texas Instruments TMP451 || Yes || Working in kernel fork | |||
|- | |||
| Display || JDI LPM102A188A || Yes || Working in kernel | |||
|- | |||
| Backlight IC || Texas Instruments LP8557 || Yes || Working in kernel | |||
|- | |||
| Audio || - NAU8825 (3.5mm)<br />- RT5677<br />- MAX98357A (Speaker) || - No, misses tegra specific driver<br />- Yes<br />- No, misses tegra specific driver || Needs Tegra specific sound drivers | |||
|- | |||
| Touch Screen || i2c-hid || Yes || Working in kernel fork | |||
|- | |||
| GPU || Nvidia GM20b || Yes || Loads DE's with the latest mesa, crashes a lot and is not performant. Needs [https://build.opensuse.org/package/show/home:Azkali:Tegra:Icosa_testing/mesa-nvk patches] or [https://docs.mesa3d.org/drivers/nvk.html nvk] in the future. | |||
|- | |||
| GPU PMIC || Maxim MAX77621 || Yes || Working in kernel | |||
|- | |||
| Wi-Fi || Broadcom BCM4354 || Yes || Working in kernel | |||
|- | |||
| Bluetooth || Broadcom BCM43540 || Yes || Working in kernel | |||
|- | |||
| Front camera || Sony IMX208 || Yes || Needs tegravi and nvenc, untested | |||
|- | |||
| Main camera || Sony IMX219 || Yes || Needs tegravi and nvenc, untested | |||
|- | |||
| Lens actuator (autofocus) || Analog Devices AD5823 || No || Erroneously added to AD5820 driver, doesn't work, got dropped | |||
|- | |||
| TPM || Infineon SLB9645TT || Yes || Untested | |||
|- | |||
| SPI Flash Chip || W25Q64FW/W25Q128FW || Yes || Untested, contains Coreboot | |||
|} | |||
</div></div> |
Latest revision as of 13:04, 7 January 2025
CHANGE_ME CHANGE_ME | |
Manufacturer | |
---|---|
Name | Pixel C |
Codename | google-smaug |
Released | 2015 |
Type | tablet |
Hardware | |
Chipset | Nvidia Tegra X1 (T210) |
CPU | Quad-core 1.9 GHz Cortex-A57 |
GPU | Maxwell |
Display | 2560x1800 IPS LCD |
Storage | 32/64 GB |
Memory | 3 GB |
Architecture | aarch64 |
Software | |
Original software | Android |
Original version | 8.1.0 |
FOSS bootloader | partial |
postmarketOS | |
Category | testing |
Pre-built images | no |
Mainline | yes |
Flashing |
Works |
---|---|
USB Networking |
Broken |
Internal storage |
Works |
Battery |
Works |
Screen |
Works |
Touchscreen |
Works |
Keyboard |
Works |
Multimedia | |
3D Acceleration |
Works |
Audio |
Broken |
Camera |
Broken |
Connectivity | |
WiFi |
Works |
Bluetooth |
Works |
Miscellaneous | |
FDE |
No data |
USB OTG |
Partial |
HDMI/DP |
Broken |
Sensors | |
Accelerometer |
Broken |
Ambient Light |
Broken |
Proximity |
Broken |
Hall Effect |
Works |
Haptics |
No data |
Power Sensor |
Works |
Contributors
- jja2000
- Jenneron
Users owning this device
- Jja2000 (Notes: Currently trying to get this in a presentable state, have two of these (32GB/64GB))
- Joshaspinall (Notes: Currently running Lineage Android)
- Russanandres (Notes: ResurrectionRemix 9)
How to enter flash mode
fastboot
When turned off press and hold the power button and volume down until the bootloader menu displays. Using the volume button select "Switch to fastboot mode" and press the power button.
APX
There seems to be no key combination for entering APX mode. Use these commands instead:
$ pmbootstrap initfs hook_add apx
$ pmbootstrap flasher flash_kernel
This will cause device entering APX on boot
Installation
Installation keeping Android partition table (easy way)
$ pmbootstrap init
$ pmbootstrap install --no-cgpt
Then in fastboot mode:
$ pmbootstrap flasher flash_kernel
$ pmbootstrap flasher flash_rootfs
Installation with repartition and booting from USB (recommended way)
Enable booting from USB
On PC:
$ wget https://dl.google.com/dl/edgedl/chromeos/recovery/chromeos_15183.78.0_trogdor_recovery_stable-channel_mp-v7.bin.zip
$ unzip chromeos_15183.78.0_trogdor_recovery_stable-channel_mp-v7.bin.zip
$ sudo losetup -Pf chromeos_15183.78.0_trogdor_recovery_stable-channel_mp-v7.bin
$ sudo cp $(findfs LABEL=ROOT-A) recovery.img
$ adb push recovery.img /sdcard/recovery.img
On device in adb shell
:
$ su # assuming you have root
# cd /sdcard
# mkdir rootdir
# losetup /dev/block/loop0 recovery.img # this may throw an error, but still pass. check blkid command, make sure there is /dev/block/loop0 in the output
# mount -o ro -t ext4 /dev/block/loop0 rootdir
# cd rootdir
# mount -t sysfs /sys sys
# mount -t proc /proc proc
# mount -o bind /dev dev
# mount -t tmpfs -o size=100M tmpfs tmp # for flashrom to avoid read-only fs
# mount -t tmpfs -o size=100M tmpfs run # for crossystem to avoid read-only fs
# mkdir run/lock # crossystem will create /run/lock/crossystem.lock there
# chroot . /bin/bash
# export PATH="$PATH:/usr/sbin:/bin"
# ln -s /dev/mtd/mtd0 /dev/mtd0 # this is needed for crossystem to work with downstream SPI flash driver
# crossystem dev_boot_usb=1 dev_boot_signed_only=0 # this command enables booting from USB
Everything else is the same to Chrome OS devices except that we don't have prebuilt images yet.
Installation to USB storage
Use these commands:
$ pmbootstrap init # select google-smaug
$ pmbootstrap install --sdcard /dev/sdX # replace /dev/sdX with your storage
You can boot from USB with pressing
+ in bootloader.Installation to eMMC
WARNING: Repartitioning or altering the size of partitions on the EMMC will hard brick the device, the bootloader will report OS is corrupt/damage and will not allow flashing via fastboot. |
Mainline Kernel Status
Table of components in the device