GPD Pocket

This article or section does not follow the
Laptop page guidelines
.
Reason:
Stub (Discuss in
Talk:GPD Pocket
)
Notes for the
GPD Pocket
.
Specs
Display: 7inch IPS 1920x1200
CPU: Intel Atom X7-Z8750
RAM: 8GB LPDDR3-1600
Storage: 128GB eMMC SSD (non-replaceable)
Battery: 7000mAh
WiFi: Broadcom 4356 802.11ac
Bluetooth: Broadcom 2045
Audio: Realtek ALC5645
Ports: 1 x USB 3 type A, 1 x MicroHDMI, 1 x USB 3 type C, 1 x 3.5mm Headphone Jack
Configuration
Manual
Backlight and KMS
Change
/etc/mkinitcpio.conf
to match the following:
/etc/mkinitcpio.conf
...
MODULES=(i915 pwm-lpss-platform)
...
This will enable backlight control, and fix a black screen on resume from suspend.
Screen rotation
Thanks to a kernel patch, the linux kernel should automatically hint screen rotation for the GPD pocket. If it does not, or if you do not use a desktop manager, follow instructions below.
Wayland
Screen rotation
To rotate the touchscreen, create:
/etc/udev/rules.d/99-goodix-touch.rules
ACTION=="add|change", KERNEL=="event[0-9]*", ATTRS{name}=="Goodix Capacitive TouchScreen", ENV{LIBINPUT_CALIBRATION_MATRIX}="0 1 0 -1 0 1"
Right Click Emulation
Unlike Xorg, under which right click emulation can be enabled by the standard Xorg configuration files, under Wayland, such configuration is supposed to be exposed by the compositor, and unfortunately, some compositors (e.g. GNOME Wayland) do not expose these configurations properly. However, the regarding functionality is still available in
libinput
. Since these compositors normally load
/etc/profile.d
,
LD_PRELOAD
can be used to hook into
libinput
and force apply these configurations.
A sample implementation of this approach is available
here
.
Xorg
Screen rotation
Create
/etc/X11/xorg.conf.d/30-monitor.conf
to rotate the monitor:
Note
The Identifier may be different depending on your display driver of choice (either
DSI-1
for modesetting or
DSI1
for xf86-video-intel)
/etc/X11/xorg.conf.d/30-monitor.conf
Section "Monitor"
  Identifier "DSI-1"
  Option     "Rotate" "right"
EndSection
Gnome and GDM
Edit
~/.config/monitors.xml
(this file might not be present by default):
~/.config/monitors.xml
<monitors version="2">
  <configuration>
    <logicalmonitor>
      <x>0</x>
      <y>0</y>
      <scale>2</scale>
      <primary>yes</primary>
      <transform>
        <rotation>right</rotation>
        <flipped>no</flipped>
      </transform>
      <monitor>
        <monitorspec>
          <connector>DSI-1</connector>
          <vendor>unknown</vendor>
          <product>unknown</product>
          <serial>unknown</serial>
        </monitorspec>
        <mode>
          <width>1200</width>
          <height>1920</height>
          <rate>60.384620666503906</rate>
        </mode>
      </monitor>
    </logicalmonitor>
  </configuration>
</monitors>
This sets the correct rotation (
<rotation>right</rotation>
) and a scale factor of 2 (
<scale>2</scale>
). For fractional scaling, see
HiDPI#GNOME
.
For
GDM
, copy the above
~/.config/monitors.xml
to
/var/lib/gdm/.config/monitors.xml
to set the correct rotation.
KDE
In
System Settings > Display and Monitor
, change
Orientation
to
90° Clockwise
, and
Scale Display
to a comfortable size.
Right Click Emulation
Create
/etc/X11/xorg.conf.d/50-trackpoint.conf
to scroll while holding right click:
/etc/X11/xorg.conf.d/50-trackpoint.conf
Section "InputClass"
  Identifier      "GPD trackpoint"
  MatchProduct    "SINO WEALTH Gaming Keyboard"
  MatchIsPointer  "on"
  Driver          "libinput"
  Option          "MiddleEmulation" "1"
  Option          "ScrollButton" "3"
  Option          "ScrollMethod" "button"
EndSection
SDDM
To change the DPI to be readable, append the following lines to
/usr/share/sddm/scripts/Xsetup
:
/usr/share/sddm/scripts/Xsetup
# Set DPI  
xrandr --dpi 168"
Touchscreen Gestures
Install
touchegg
, then edit the following line in
/usr/share/touchegg/touchegg.conf
:
/usr/share/touchegg/touchegg.conf
...
<action type="SCROLL">SPEED=7:INVERTED=true</action>
...
Create
the following file:
/etc/X11/xinit/xinitrc.d/01_touchegg
#!/bin/sh

# starts touchegg application
PREFIX="$HOME/.config/touchegg/.run"
mkdir -p "$PREFIX"
PIDFILE="$PREFIX/touchegg.$USER$DISPLAY.pid"
LOCK="$PREFIX/touchegg.$USER$DISPLAY.lock"

start_touchegg() {
        (
                flock -n 9 || exit 1
                touchegg 2>/dev/null >/dev/null &
                PID=$!
                echo "$!" >"$PIDFILE"
                wait $PID
        ) 9>"$LOCK"
}

start_touchegg &
And make it
executable
.
Fan
With the latest kernel, your fan should work out of the box.
Note
If you are having issues with your fan not functioning as intended, try the following:
# modprobe -r gpd-pocket-fan
# modprobe gpd-pocket-fan temp_limits=40000,40001,40002
Once this has been completed, you should hear your fan start up at 40c. If you hear a clicking sound, power off the device, remove the back panel and very gently push the fan around a few times. Then re-attach the panel and power on the device, running the above commands again once logged in. It seems to be an issue with some devices that the fan cannot start properly when it has not been powered on in a while.
Once you have completed these steps and the fan is working properly, you should then either reboot or reload the fan kernel module in order to return the temperature limits to default:
# modprobe -r gpd-pocket-fan
# modprobe gpd-pocket-fan
Note
By default, the fan is always spinning when on AC
[1]
. To override this behavior, add
gpd-pocket-fan.speed_on_ac=0
to the
Kernel parameters
.
Power Saving
Install
tlp
and then edit following lines in
/etc/default/tlp
:
/etc/default/tlp
...
# improve disk IO
DISK_DEVICES="mmcblk0"
DISK_IOSCHED="deadline"
...
# disable wifi power saving mode (wifi speed drops MASSIVELY!)
WIFI_PWR_ON_AC=off
WIFI_PWR_ON_BAT=off
...
Audio
PulseAudio
needs to be installed for the sound card.
Append the following lines into
/etc/pulse/default.pa
:
/etc/pulse/default.pa
set-card-profile alsa_card.platform-cht-bsw-rt5645 HiFi
set-default-sink alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645_0__sink
set-sink-port alsa_output.platform-cht-bsw-rt5645.HiFi__hw_chtrt5645_0__sink [Out] Speaker
Turn off realtime scheduling by editing
/etc/pulse/daemon.conf
:
/etc/pulse/daemon.conf
realtime-scheduling = no
Charge control
It is possible to control the charge current, charge end voltage and a few more settings.
See
this reddit post
for more information and an example script.
Known Issues
This article or section is out of date.
Reason:
No updates have been made to this section since 2021-07-09, are these issue still relevant today? (Discuss in
Talk:GPD Pocket
)
Wifi not seeing channels 12/13/14
As of May 2021 with current kernel and firmware versions, the Broadcom 4356 adapter no longer accesses networks on channels beyond the globally-allowed 1-11 range. Setting the
regulatory domain
with
iw reg set <alpha2>
does not fix this; apparently, the
kernel driver
does not support this. Instead, edit
/usr/lib/firmware/brcm/brcmfmac4356-pcie.gpd-win-pocket.txt
and change
ccode=X2
to your country (e.g.
ccode=DE
enables channels 12/13 but not 14) and reboot (hint found in
an older mailing list message
).
See also
https://github.com/njkli/gpd-pocket/
https://hansdegoede.livejournal.com/