Jump to content

HP TouchPad (hp-tenderloin)

From postmarketOS Wiki
Revision as of 01:14, 28 December 2021 by BenWolsieffer (talk | contribs)
HP TouchPad
HP TouchPad
HP TouchPad
Manufacturer HP
Name TouchPad
Codename hp-tenderloin
Released 2011
Hardware
Chipset Qualcomm APQ8060 Snapdragon S3
CPU Dual-core 1.2 GHz Scorpion
GPU Adreno 220
Display 768x1024
Storage 16/32 GB
Memory 1 GB
Architecture armv7
Software
Original software WebOS on Linux
postmarketOS
Category testing
Pre-built images no
Mainline no
Features
Flashing
No data
USB Networking
Works
Internal storage
No data
SD card
No data
Battery
Works
Screen
Works
Touchscreen
Works
Multimedia
3D Acceleration
Broken
Audio
Broken
Camera
Broken
Camera Flash
No data
Connectivity
WiFi
Works
Bluetooth
Broken
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

The HP TouchPad is a tablet that originally ran Palm's webOS, although many versions of Android were later ported to it.

Status

Experimental support for this device is available here: https://gitlab.com/postmarketOS/pmaports/-/merge_requests/2791

Contributors

Installation

A detailed installation procedure has yet to be developed, and depends somewhat on what software is currently installed on the device. In summary, the procedure is as follows:

  1. Delete of shrink one of the existing LVM volumes (such as the Android data partition) by at least 1 GiB (as much space as you want to dedicate to postmarketOS). If you want to retain your data on another OS, you must first shrink the filesystem to avoid corruption. If you want to remove all other OSes, you may delete all LVM volumes.
  2. Create a 64 MiB LVM volume named "pmos-boot"
  3. Create a LVM volume named "pmos-root" that fills the rest of the available space.
  4. Use pmbootstrap to create a split installation and export the files.
  5. Run the following commands to create an image compatible with moboot or the standard bootloader:
$ mkimage -A arm -O linux -T kernel -C none -a 0x40208000 -e 0x40208000 -n kernel -d vmlinuz uImage.vmlinuz
$ mkimage -A arm -O linux -T ramdisk -C none -a 0 -e 0 -n initramfs -d initramfs uImage.initramfs
$ mkimage -A arm -O linux -T multi -C none -a 0 -e 0 -n postmarketOS -d uImage.vmlinuz:uImage.initramfs uImage.postmarketOS
  1. Use an environment such as an Android recovery to copy "uImage.postmarketOS", "hp-tenderloin-boot.img" and "hp-tenderloin-root.img" to some temporary storage location on the device.
  2. Copy "uImage.postmarketOS" into the ext3 filesystem in /dev/mmcblk0p13, usually mounted at /boot in Android. This will only work if you have moboot installed, otherwise the file must be named "uImage".
  3. Use dd (on the device) to write "hp-tenderloin-boot.img" to the "pmos-boot" LVM volume
  4. Use dd to write "hp-tenderloin-root.img" to the "pmos-root" LVM volume.
  5. Reboot the device and select postmarketOS from the moboot menu (if installed).

Serial console

The TouchPad has a serial port in the headphone connector. It is activated by setting GPIO pin 58. Moboot will enable this feature if you create a file named "moboot.sercon.postmarketOS" in the boot partition (/dev/mmcblk0p13) containing the string "yes".

The pinout for the serial connector on the headphone jack is:

  • Tip: TX
  • Ring: RX
  • Sleeve: GND

The ports operates at around 2.9V, so it recommended to use a voltage divider to reduce the voltage from a 3.3V serial adapter to avoid any possibility of damaging the port.

What works

  • Nothing

What doesn't work

  • Everything

Progress

  • boot.img extracted from Evervolv nightly Android ROM
  • determined that boot.img is vmlinuz and not an Android boot image
  • successfully compiled novacom (and its dependencies)

Next steps

  • package novacom for Alpine
  • build device-hp-tenderloin
  • find a kernel and compile it
  • package kernel and boot image following these instructions

Flashing/booting

It looks like the actual boot process on the touchpad is just uBoot. We only need to package novacom for alpine to push images to the boot partition of the device.

http://webos-ports.org/wiki/Template:Tenderloin_Install_Steps

Novacom sources can be found here. The specific repo and dependencies are as follows:

We can probably use the novacom pkgbuild from the AUR in alpine: https://aur.archlinux.org/packages/palm-novacom-git/

We might also need novacomd, not sure yet.