/umpc-ubuntu

Scripts for UMPCs such as GPD Pocket, Pocket 2, MicroPC & TopJoy Falcon

Primary LanguageShellMIT LicenseMIT

UMPC hardware configuration for Ubuntu

Here are a couple of scripts for Ultra Mobile PCs (UMPC) such as the GPD Pocket, GPD Pocket 2, GPD Pocket 3, GPD MicroPC, GPD WIN 2, GPD P2 Max, GPD WIN Max and Topjoy Falcon for Ubuntu users.

  • umpc-ubuntu.sh: install the required hardware configuration on a running Ubuntu install.
  • umpc-ubuntu-respin.sh: modify an existing Ubuntu .iso image with UMPC specific hardware configuration.

Ultra Mobile PCs (UMPC) have had something of a resurgence in recent years thanks to very successful crowd funding campaigns for netbook style laptops featuring a high resolution touch displays housed in an aluminium alloy body. These scripts for UMPC devices are based on the excellent work by Hans de Goede, nexus511, stockmind and many others.

GPD Pockets

Pre-configured images

The Ubuntu MATE team offers a bespoke images for the GPD Pocket, GPD Pocket 2, GPD Pocket 3, GPD WIN 2, GPD MicroPC, GPD P2 Max, GPD WIN Max and Topjoy Falcon that include the hardware specific tweaks to get these devices working "out of the box" without any faffing about. Some models of the OneMix Yoga devices are also supported.

What works

The Ubuntu MATE images for the UMPCs add the following tweaks:

  • Enable frame buffer, Plymouth and Xorg display rotation.
    • Supports modesetting and xorg-video-intel display drivers.
  • Enable TearFree rendering by default.
  • Enable touch screen rotation for Xorg and Wayland.
  • Enable scroll wheel emulation for Xorg.
    • While holding down the right track point button on the Pocket, Pocket 2 & Topjoy Falcon.
    • While holding down the centre track point button on the MicroPC & Pocket 3.
  • Enable double size console (tty) font resolution for high resolution devices.
  • Enable fractional scaling for 1920x1200 displays. (MATE Desktop only)
    • Results in an effective resolution of 1280x800 to make the display panels easily readable.
    • Simple to toggle on/off if you want to restore full resolution.
  • GPD Pocket:
    • BRMC4356 WiFi firmware enabled by default.
    • Fan control kernel module enabled by default.
  • GPD Pocket 3 & TopJoy Falcon:
    • Accelerometer support for automatic screen rotation.
  • GPD WIN Max:
    • Features a custom, persistent, EDID.

Known Issues

The GRUB menu is rotated 90 degrees

The workaround is to tilt your head. Issue affects:

  • GPD Pocket
  • GPD Pocket 3
  • GPD MicroPC
  • GPD WIN 2
  • GPD WIN Max
  • TopJoy Falcon

Boot splash is rotated 90 degrees

The workaround is to tilt your head. Issue affects:

  • GPD WIN Max

Touch coordinates incorrect when external HDMI monitor is connected

When a HDMI display is connected, the touch coordinates on the internal display are incorrect. Issue affects:

  • GPD Pocket 3

The Scripts

These scripts have been tested on Ubuntu MATE 20.04.1. All Ubuntu flavours should work although if you use Wayland your mileage may vary.

umpc-ubuntu.sh

Install one of the Ubuntu 20.04 (or newer) flavours on a supported UMPC device and run the following to inject the required hardware configuration.

git clone https://github.com/wimpysworld/umpc-ubuntu.git
cd umpc-ubuntu

Edit ./umpc-ubuntu.sh and change UMPC="gpd-pocket3" at the top of the script to match your computer, supported options are: gpd-pocket, gpd-pocket2, gpd-pocket3, gpd-p2-max, gpd-micropc, gpd-win2, gpd-win-max or topjoy-falcon.

The run the script to enable the configuration tweaks.

sudo ./umpc-ubuntu.sh enable

umpc-ubuntu-respin.sh

git clone https://github.com/wimpysworld/umpc-ubuntu.git
cd umpc-ubuntu
  • Download an .iso image for one of the Ubuntu MATE 20.04 (or newer) or one of the other Ubuntu flavours.
sudo ./umpc-ubuntu-respin.sh -d gpd-pocket ubuntu-mate-20.04.3-desktop-amd64.iso
sudo ./umpc-ubuntu-respin.sh -d gpd-pocket2 ubuntu-mate-20.04.3-desktop-amd64.iso
sudo ./umpc-ubuntu-respin.sh -d gpd-pocket3 ubuntu-mate-21.10-desktop-amd64.iso
sudo ./umpc-ubuntu-respin.sh -d gpd-micropc ubuntu-mate-20.04.3-desktop-amd64.iso
sudo ./umpc-ubuntu-respin.sh -d gpd-p2-max ubuntu-mate-20.04.3-desktop-amd64.iso
sudo ./umpc-ubuntu-respin.sh -d gpd-win2 ubuntu-mate-20.04.3-desktop-amd64.iso
sudo ./umpc-ubuntu-respin.sh -d gpd-win-max ubuntu-mate-20.04.3-desktop-amd64.iso
sudo ./umpc-ubuntu-respin.sh -d topjoy-falcon ubuntu-mate-20.04.3-desktop-amd64.iso

A new .iso will be created that includes the additional hardware tweaks required by the selected UMPC device.

Accessing boot menus & BIOS

Switch the device on, immediately hold/tap the corresponding key(s).

Device BIOS Boot Menu
GPD Pocket Del Fn + F7
GPD Pocket 2 Fn + F12 Fn + F12
GPD Pocket 3 Fn + F7 Fn + F7
GPD WIN 2(!) Del Del
GPD WIN 3(!) Del Del
GPD MicroPC Del Fn + F7
GPD P2 Max Fn + F7 Fn + F7
GPD WIN Max F7 F7
OneMix Yoga 2 Fn + F7 Fn + F7
TopJoy Falcon Fn + F2 Fn + F12
  • GPD WIN 2/3(!): Boot it by holding Del (Fn+Backspace), navigate to Save & Exit and choose the storage device you want to boot from under Boot Override

Device matrix

Please help complete this table by running the following commands from an Ubuntu Live image:

xrandr --query
xinput
Device Monitor Resolution Rotation Keyboard/Mouse Touch Screen Kernel Req Ubuntu Req Common
GPD Pocket DSI-1 / DSI1 1200x1920 Right SINO WEALTH Gaming Keyboard Goodix Capacitive TouchScreen >= 4.14 >= 18.04.2 gpd-pocket
GPD Pocket 2 eDP-1 / eDP1 1200x1920 Right HAILUCK CO.,LTD USB KEYBOARD Mouse Goodix Capacitive TouchScreen >= 4.18 >= 18.04.2 gpd-pocket2
GPD Pocket 3 DSI-1 / DSI1 1200x1920 Right HAILUCK CO.,LTD USB KEYBOARD Mouse GXTP7380:00 27C6:0113 >= 5.15 >= 22.04 gpd-pocket3
GPD WIN 2 eDP-1 / eDP1 720x1280 Right HK-ZYYK-US-A1-02-00 USB Keyboard Mouse Goodix Capacitive TouchScreen >= 4.18 >= 19.04 gpd-win2
GPD WIN 3 DSI-1 / DSI1 720x1280 Right Goodix Capacitive TouchScreen >= 5.15 >= 22.04 gpd-win3
GPD MicroPC DSI-1 / DSI1 720x1280 Right AMR-4630-XXX-0- 0-1023 USB KEYBOARD Mouse n/a >= 5.2 >= 19.10 gpd-micropc
GPD P2 Max eDP-1 / eDP1 2560x1600 n/a HAILUCK CO.,LTD USB KEYBOARD Mouse Goodix Capacitive TouchScreen gpd-p2-max
GPD WIN Max eDP-1 / eDP1 800x1280 Right HTIX5288:00 093A:0255 Mouse Goodix Capacitive TouchScreen >= 5.4 >= 20.04.1 gpd-win-max
OneMix Yoga 1200x1920 Right HAILUCK CO.,LTD USB KEYBOARD Mouse Goodix Capacitive TouchScreen >= 4.18 >= 18.04.2
OneMix Yoga 1s eDP-1 / eDP1 1200x1920 Right HAILUCK CO.,LTD USB KEYBOARD Mouse Goodix Capacitive TouchScreen >= 4.18 >= 18.04.2 gpd-pocket2
OneMix Yoga 2 eDP-1 / eDP1 1200x1920 Right HAILUCK CO.,LTD USB KEYBOARD Mouse Goodix Capacitive TouchScreen >= 4.18 >= 18.04.2 gpd-pocket2
TopJoy Falcon DSI-1 / DSI1 1200x1920 Right HAILUCK CO.,LTD USB KEYBOARD Mouse Goodix Capacitive TouchScreen >= 4.18 >= 18.04.2 topjoy-falcon
Chuwi Minibook X DSI-1 / DSI1 1200x1920 Right SIPODEV USB Composite Device Mouse