GPD Pocket

This article Article description::provides instructions on getting Gentoo operational on the GPD Pocket.

The GPD Pocket is a 7" UMPC manufactured by Game Park Digital running an Intel Atom x7-Z8750 and 8 GB RAM. Lots of work has already been done on getting the kernel to work out of the box by Hans de Goede.

Hardware
The GPD Pocket contains the following hardware, the kernel should be configured to include drivers for all these items:

I recommend compiling all these as modules they can then be tested in the normal way. Be careful of the Keyboard support though!

Kernel
This is the most complex step but you can avoid the pain by downloading the pre-built kernel from https://github.com/joshskidmore/gpd-pocket-arch-guide. A kernel can be compiled from gentoo-sources in portage, a working configuration can be found on Hans de Goede's github linux-sunxi config (I can confirm that gentoo-sources-4.16.0 works). Also, gentoo-sources-4.16.0 contains the GPD Pocket fan driver.

Copy the file from Hans de Goede's GitHub repository https://github.com/jwrdegoede/linux-sunxi into the  directory.

This change to the linux-sunxi file should help with a funny sound driver problem:

The new kernel is available under and the new modules in

Creating an EFI-capable bootable USB drive
Use to create a new GPT partition table on the USB Stick. It is important that the partition table is GPT for a UEFI enabled machine to detect the UEFI partition.

An EFI System partition is just a FAT32 partition, to set up the partition you may need to install :

Mount the drive and make the UEFI boot directories:

Create a Linux root file system on :

Download and extract a stage 3 onto (alter the mirror and date to flavor):

Edit the and  files so that you can login.

Installing a bootloader
SYSLINUX will be used to boot the kernel, if syslinux is not installed on the system, do it now:

Copy the required binaries to the USB drive:

Create the syslinux configuration file:

The kernel and the RAM disk will be created next

Kernel and Initial RAM Disk
Creating a custom  is explained here to allow access to the GPD Pocket internal eMMC flash and access to the USB stick that the root fs is installed on some modules must be available in the initramfs:

These files can be copied from the kernel modules directory when a kernel is compiled with the Hans de Goede (or Fedora) settings.

The newly created initramfs and kernel should be copied to the EFI partition:

Booting to the USB drive
To boot to the USB drive insert the drive into the GPD Pocket's USB socket and press when the GPD Pocket is starting up (that means hold down the  key and press  a few times when you power up).

You should be presented with a list of startup options, one of which should be the name of your USB drive, select that one and syslinux should start and then boot the kernel and execute the initramfs.

Creating a GPD Userspace
I recommend creating a Virtual Machine or a Docker Container using a stage3 tarball, the VM or Container will be where all the applications are compiled and then installed on the GPD Pocket using portage's binary package support.

Configure Package Build Host
To begin, create and configure a clean Gentoo VM / Docker Container with the same configuration that will be used on the GPD Pocket:

Alter the PORTDIR, DISTDIR and PKGDIR to taste, this configuration is for a Portage Tree in SquashFS configuration.

The configuration for the GPD Pocket would look something like this, also be aware that the files in and  on both machines (the VM and your GPD Pocket) should match.

From Stage3 to boot
OpenSSL and OpenSSH when compiled with the  use flag will not support wpa_supplicant which is required for the GPD Pocket to connect to a WiFi network. Emerge these on your VM.

The driver (which is required for WiFi, see earlier) will not work properly with. The driver cannot find the file, this file can be obtained from Google (and probably Broadcom). Fix is documented in this bug and by joshskidmore in his GPD Pocket guide for Arch Linux.

Of course it will be difficult to install these packages without a network connection so install them from a chroot environment.

Configuring the Goodix Capacitive TouchScreen
The GPD Pocket orientation is incorrect (it is obvious when the device is booting). For the frame buffer terminal the kernel command line argument above but for Wayland and X11 udev must be configured through the rules. This works if the X server is using libinput but if not different configuration specific to may be required.

The character between and  is a pipe.

Found here (it works)

Configuring the UEFI Boot Menu
This is probably a good reference.

Setting up the GPD Pocket Fan
Newer kernels have a module for fan control on the GPD Pocket but annoyingly when the GPD Pocket is connected to AC supply the module defaults to switching the fan on. To modify this behaviour the module can be reloaded, first unload the module:

Then, reload the module:

Fan on and off levels can be altered in a similar way for the fan to turn on at 40 degrees:

Arch Linux Wiki