Differences between revisions 1 and 12 (spanning 11 versions)
Revision 1 as of 2018-06-01 22:12:16
Size: 7284
Comment:
Revision 12 as of 2018-08-26 21:08:45
Size: 10826
Editor: ?WMartinBorgert
Comment: add links to closed and open bug reports related to GPD pocket
Deletions are marked like this. Additions are marked like this.
Line 5: Line 5:
~-''Models covered''-~<<BR>>'''GPD (GamePad Digital) Pocket''' ~-''Models covered''-~<<BR>>'''GPD (!GamePad Digital) Pocket'''
Line 46: Line 46:
Due to https://bugs.freedesktop.org/show_bug.cgi?id=100488 (slated to be fixed in PulseAudio 12), the HDMI audio driver must be blacklisted so that the internal speakers and headphone jack will work. This can be done by putting ''blacklist snd_hdmi_lpe_audio'' into a new file named something like '' Due to https://bugs.freedesktop.org/show_bug.cgi?id=100488 (slated to be fixed in !PulseAudio 12), the HDMI audio driver must be blacklisted so that the internal speakers and headphone jack will work. This can be done by putting ''blacklist snd_hdmi_lpe_audio'' into a new file named something like ''
Line 53: Line 53:
Touchscreen works but needs rotation to match the landscape screen. This can be set in your X initialization with ''xinput set-prop "pointer:Goodix Capacitive TouchScreen" "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1''. After waking from hibernation, the touchscreen can act erratically, but this behavior can be corrected by unloading and reloading the ''goodix'' kernel module. (Suspend/resume does not seem to exhibit this problem, only hibernation.) Touchscreen works but needs rotation to match the landscape screen. This can be set in your X initialization with ''xinput set-prop "pointer:Goodix Capacitive !TouchScreen" "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1''. After waking from hibernation, the touchscreen can act erratically, but this behavior can be corrected by unloading and reloading the ''goodix'' kernel module. (Suspend/resume does not seem to exhibit this problem, only hibernation.)
Line 57: Line 57:
Working well as of Linux 4.16.0 (now in Buster). Can boot earlier kernels (for example, during installation) but for maximum thermal control and battery life as well as charging speed, 4.16.0 or later is highly recommended. Waking from hibernation appears to cause the USB-C port to cease performing power distribution negotiation and relegates charging to 5V (this can probably be worked around by unloading and reloading the fusb302 kernel module but I haven't tried yet, also this doesn't seem to be a problem with suspend/resume, only hibernation). Was working well with Linux 4.16.0, but regressions in 4.17 (now in Buster and Stretch Backports) seem to have limited the USB type-C interface to 5V 0.5A (the amperage can be raised to 2A by writing to ''/sys/class/power_supply/bq24190-charger/input_current_limit'' but not sure how to solve the voltage issue). Can boot earlier kernels (for example, during installation) but for maximum thermal control and battery life as well as charging speed, 4.16.0 or later is highly recommended. Waking from hibernation appears to cause the USB-C port to cease performing power distribution negotiation and relegates charging to 5V (this can probably be worked around by unloading and reloading the fusb302 kernel module but I haven't tried yet, also this doesn't seem to be a problem with suspend/resume, only hibernation).

Speaking of power, the USB-A port doesn't supply as much current as some devices would like to see. This can be worked around with a powered USB hub or by using the USB-C port instead. I spent more time than I'd like to admit trying different USB sticks during installation because the UEFI menu didn't seem to see any of the ones I tried initially, and I strongly suspect it was related to them having higher current expectations than the port could deliver.

TIP: If you have another operating system installed, you may quickly try a few USB sticks to see if one of them is recognized and use that.
Line 61: Line 65:
Supported except that https://bugzilla.kernel.org/show_bug.cgi?id=185661 currently means you need to obtain a working configuration file (e.g., from the ChromiumOS repository linked in that bug report) and make it available to the kernel somewhere it will find it, for example ''/lib/firmware/brcm/brcmfmac4356-pcie.txt''. Lack of this file will manifest during installation as the WiFi device getting detected and SSIDs are listed, but you'll be unable to actually connect to any of them. Supported except that https://bugzilla.kernel.org/show_bug.cgi?id=185661 currently means you need to obtain a working configuration file (e.g. the file attached to this wiki page or from the ChromiumOS repository linked in that bug report) and make it available to the kernel somewhere it will find it, for example ''/lib/firmware/brcm/brcmfmac4356-pcie.txt''. Lack of this file will manifest during installation as the !WiFi device getting detected and SSIDs are listed, but you'll be unable to actually connect to any of them.
Line 63: Line 67:
If you're installing with a netinst image and need working WiFi during installation, you'll likely want a powered USB hub so you can provide the file when prompted without unplugging the boot media from the (only) USB-A port. It's possible that with a new enough installer image (booting linux 4.16.0 or newer) the USB-C port could be used for this instead. Worst case, you can use something like fdisk to add a third partition to the install media (after the EFI and ISO partitions), format it and use the "Execute a shell" option during an advanced installation to mount the extra partition and copy the file to the correct path on the ramdisk, then unload the ''brcmfmac'' kernel module and go back through the network hardware detection step. If you're installing with a netinst image and need working !WiFi during installation, you'll likely want a powered USB hub so you can provide the file when prompted without unplugging the boot media from the (only) USB-A port. It's possible that with a new enough installer image (booting linux 4.16.0 or newer) the USB-C port could be used for this instead. Worst case, you can use something like fdisk to add a third partition to the install media (after the EFI and ISO partitions), format it and use the "Execute a shell" option during an advanced installation to mount the extra partition and copy the file to the correct path on the ramdisk, then unload the ''brcmfmac'' kernel module and go back through the network hardware detection step.

== Installation ==

Here are my crude notes on how I installed from a single device (USB-A to Micro-SDHC adapter with a Micro-SDHC card inserted):

{{{
prepare install media on another system by running the following (assumes your install media device is detected as /dev/sda):
    wget https://cdimage.debian.org/cdimage/unofficial/non-free/images-including-firmware/weekly-builds/amd64/iso-cd/firmware-testing-amd64-netinst.iso
    Navigate to https://chromium.googlesource.com/chromiumos/third_party/linux-firmware/+/f151f016b4fe656399f199e28cabf8d658bcb52b/brcm/brcmfmac4356-pcie.txt and download the file as txt.
    sudo wipefs -a /dev/sda
    sudo cp firmware-testing-amd64-netinst.iso /dev/sda
    sudo fdisk /dev/sda
        n
        [defaults]
        w
    sudo mkfs.ext4 /dev/sda3
    sudo mount /dev/sda3 /mnt
    sudo cp brcmfmac4356-pcie.txt /mnt/
    sudo umount /mnt
insert prepared install media into gpd pocket
power on and hold down del key until bios setup indicator appears
select "Save & Exit" then something like "UEFI: Generic-SD/MMC 1.00, Partition 1" under "Boot Override" (what it's named will depend on the device you inserted)
select "Advanced options ..." then "... Graphical expert install" (you can also used the text-based advanced installer)
proceed into "Detect network hardware" and don't load additional firmware from removable media
before "Configure the network" skip down to "Execute a shell" and enter the following:
    rmmod brcmfmac
    modprobe ext4
    mount -oro /dev/sda3 /mnt
    cp /mnt/brcmfmac4356-pcie.txt /lib/firmware/brcm/
    umount /mnt
    exit
return to "Detect network hardware" and proceed normally
}}}
Line 108: Line 145:

Configuration files:
 * `brcmfmac4356-pcie.txt` (needed during installation)
 * `/etc/X11/xorg.conf.d/calibration.conf` (for rotation of the touch input)
 * `/etc/X11/xorg.conf.d/monitor.conf` (for rotation of the output)
 * `/etc/X11/xorg.conf.d/trackpoint.conf` (for the trackpoint pointer device)
Line 112: Line 155:
Installation report: ''pending''  * Installation report: https://bugs.debian.org/900609
 * Patched kernel for Ubuntu: https://github.com/petrmatula190/gpd-pocket-kernel
 * Interesting discussion about mainline kernel and patched kernel: https://github.com/stockmind/gpd-pocket-ubuntu-respin/issues/118
Line 114: Line 159:
== Credits == == Bugs ==

 * Gnome: mutter on wayland fails, fixed in mutter/experimental: https://bugs.debian.org/905363
 * Linux: 4.16~rc6 or later needed for fan support: https://bugs.debian.org/893451
 * Linux: 4.16 or later needed for power management: https://bugs.debian.org/895164
 * Plymouth: newer upstream needed, or just apply three upstream changesets as patch: https://bugs.debian.org/905429

Translation(s): none

DebianOn is an effort to document how to install, configure and use Debian on some specific hardware. Therefore potential buyers would know if that hardware is supported and owners would know how get the best out of that hardware.

The purpose is not to duplicate the Debian Official Documentation, but to document how to install Debian on some specific hardware.

If you need help to get Debian running on your hardware, please have a look at our user support channels where you may find specific channels (mailing list, IRC channel) dedicated to certain types of hardware.

Models covered
GPD (GamePad Digital) Pocket

http://www.gpd.hk/pocket.asp

- Screen size: 7" - 128GB MMC, 8GB RAM

Overall Status

Core Components

[ATTACH]

Boot Standard Kernel:

{OK}

LAN network card:

[-]

Detect CD/DVD:

[-]

Detect hard drives:

{OK}

Extra Features

CPU Frequency Scaling

{OK}

Hibernation

{OK}

Sleep / Suspend

{OK}

Xorg

{OK}

- OpenGL

{OK}

- Resize-and-Rotate(randr)

{OK}

Switch to External Screen

{OK}

Mouse

- Built-in (Trackpoint)

{OK}

- Built-in (Touchpad)

[-]

Modem

[-]

Wireless/Wifi

{i}

Keyboard's Hotkeys

[?]

Legend :
{OK} = OK ; {X} Unsupported(No Driver) ; /!\ = Error (Couldn't get it working); [?] Unknown, Not Test ; [-] Not-applicable
{i} = Configuration Required; X-( = Only works with a non-free driver and or firmware

Configuration

Display

Works via KMS in default kernel and X configuration, but the (landscape-format) display chipset is taken from a portrait-mode tablet so may need rotation under some configurations. The kernel seemed to figure it out automatically for me, however grub and Debian-Installer end up sideways (don't hurt your neck!). X is sideways too but can be configured to rotate via normal means, for example with something like xrandr --output DSI-1 --rotate right in an initialization script.

Backlight control is available by injecting values into /sys/class/backlight/intel_backlight/brightness but is not currently detected by the xrandr or the xbacklight utility when KMS is used (problem specific to Intel Bay Trail/Cherry Trail chipset support as of the time of writing, 2018-06-01). Booting with the nomodeset kernel parameter can supposedly work around this, but changing acpi_backlight boot parameter seems to have no effect currently. The backlight is extremely bright for my tastes, so I tend to set it to 25 rather than the default 100.

Audio

Due to https://bugs.freedesktop.org/show_bug.cgi?id=100488 (slated to be fixed in PulseAudio 12), the HDMI audio driver must be blacklisted so that the internal speakers and headphone jack will work. This can be done by putting blacklist snd_hdmi_lpe_audio into a new file named something like /etc/modprobe.d/snd-hdmi-lpe-audio-blacklist.conf and rebooting.

Mouse

Touchpoint works, though the device lacks a "middle" button. If you like having "chord-middle" behavior, this can be enabled via xinput set-prop "pointer:SINO WEALTH Gaming Keyboard" "libinput Middle Emulation Enabled" 1 in your X initialization.

Touchscreen works but needs rotation to match the landscape screen. This can be set in your X initialization with xinput set-prop "pointer:Goodix Capacitive TouchScreen" "Coordinate Transformation Matrix" 0 1 0 -1 0 1 0 0 1. After waking from hibernation, the touchscreen can act erratically, but this behavior can be corrected by unloading and reloading the goodix kernel module. (Suspend/resume does not seem to exhibit this problem, only hibernation.)

Power Management

Was working well with Linux 4.16.0, but regressions in 4.17 (now in Buster and Stretch Backports) seem to have limited the USB type-C interface to 5V 0.5A (the amperage can be raised to 2A by writing to /sys/class/power_supply/bq24190-charger/input_current_limit but not sure how to solve the voltage issue). Can boot earlier kernels (for example, during installation) but for maximum thermal control and battery life as well as charging speed, 4.16.0 or later is highly recommended. Waking from hibernation appears to cause the USB-C port to cease performing power distribution negotiation and relegates charging to 5V (this can probably be worked around by unloading and reloading the fusb302 kernel module but I haven't tried yet, also this doesn't seem to be a problem with suspend/resume, only hibernation).

Speaking of power, the USB-A port doesn't supply as much current as some devices would like to see. This can be worked around with a powered USB hub or by using the USB-C port instead. I spent more time than I'd like to admit trying different USB sticks during installation because the UEFI menu didn't seem to see any of the ones I tried initially, and I strongly suspect it was related to them having higher current expectations than the port could deliver.

TIP: If you have another operating system installed, you may quickly try a few USB sticks to see if one of them is recognized and use that.

WiFi

Supported except that https://bugzilla.kernel.org/show_bug.cgi?id=185661 currently means you need to obtain a working configuration file (e.g. the file attached to this wiki page or from the ChromiumOS repository linked in that bug report) and make it available to the kernel somewhere it will find it, for example /lib/firmware/brcm/brcmfmac4356-pcie.txt. Lack of this file will manifest during installation as the WiFi device getting detected and SSIDs are listed, but you'll be unable to actually connect to any of them.

If you're installing with a netinst image and need working WiFi during installation, you'll likely want a powered USB hub so you can provide the file when prompted without unplugging the boot media from the (only) USB-A port. It's possible that with a new enough installer image (booting linux 4.16.0 or newer) the USB-C port could be used for this instead. Worst case, you can use something like fdisk to add a third partition to the install media (after the EFI and ISO partitions), format it and use the "Execute a shell" option during an advanced installation to mount the extra partition and copy the file to the correct path on the ramdisk, then unload the brcmfmac kernel module and go back through the network hardware detection step.

Installation

Here are my crude notes on how I installed from a single device (USB-A to Micro-SDHC adapter with a Micro-SDHC card inserted):

prepare install media on another system by running the following (assumes your install media device is detected as /dev/sda):
    wget https://cdimage.debian.org/cdimage/unofficial/non-free/images-including-firmware/weekly-builds/amd64/iso-cd/firmware-testing-amd64-netinst.iso
    Navigate to https://chromium.googlesource.com/chromiumos/third_party/linux-firmware/+/f151f016b4fe656399f199e28cabf8d658bcb52b/brcm/brcmfmac4356-pcie.txt and download the file as txt.
    sudo wipefs -a /dev/sda
    sudo cp firmware-testing-amd64-netinst.iso /dev/sda
    sudo fdisk /dev/sda
        n
        [defaults]
        w
    sudo mkfs.ext4 /dev/sda3
    sudo mount /dev/sda3 /mnt
    sudo cp brcmfmac4356-pcie.txt /mnt/
    sudo umount /mnt
insert prepared install media into gpd pocket
power on and hold down del key until bios setup indicator appears
select "Save & Exit" then something like "UEFI: Generic-SD/MMC 1.00, Partition 1" under "Boot Override" (what it's named will depend on the device you inserted)
select "Advanced options ..." then "... Graphical expert install" (you can also used the text-based advanced installer)
proceed into "Detect network hardware" and don't load additional firmware from removable media
before "Configure the network" skip down to "Execute a shell" and enter the following:
    rmmod brcmfmac
    modprobe ext4
    mount -oro /dev/sda3 /mnt
    cp /mnt/brcmfmac4356-pcie.txt /lib/firmware/brcm/
    umount /mnt
    exit
return to "Detect network hardware" and proceed normally


System Summary

lsusb

lsusb -v | grep -E '\<(Bus|iProduct|bDeviceClass|bDeviceProtocol)' 2>/dev/null

Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         3 
  iProduct                2 xHCI Host Controller
Bus 001 Device 003: ID 0000:0000  
  bDeviceClass          255 Vendor Specific Class
  bDeviceProtocol         1 
  iProduct                2 BCM2045A0
      (Bus Powered)
  (Bus Powered)
Bus 001 Device 002: ID 258a:0111  
  bDeviceClass            0 (Defined at Interface level)
  bDeviceProtocol         0 
  iProduct                2 Gaming Keyboard
      (Bus Powered)
  (Bus Powered)
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
  bDeviceClass            9 Hub
  bDeviceProtocol         1 Single TT
  iProduct                2 xHCI Host Controller

USB Host controllers entries (without OHCI, UHCI, EHCI) are removed too.

Resources

Attachments

Some configuration files and sample outputs.

Configuration files:

  • brcmfmac4356-pcie.txt (needed during installation)

  • /etc/X11/xorg.conf.d/calibration.conf (for rotation of the touch input)

  • /etc/X11/xorg.conf.d/monitor.conf (for rotation of the output)

  • /etc/X11/xorg.conf.d/trackpoint.conf (for the trackpoint pointer device)

  • [get | view] (2018-07-30 14:32:29, 2.7 KB) [[attachment:brcmfmac4356-pcie.txt]]
  • [get | view] (2018-07-30 03:18:08, 0.2 KB) [[attachment:calibration.conf]]
  • [get | view] (2018-07-30 03:18:21, 0.1 KB) [[attachment:monitor.conf]]
  • [get | view] (2018-07-30 03:18:32, 0.2 KB) [[attachment:trackpoint.conf]]
 All files | Selected Files: delete move to page copy to page

Bugs


CategoryLaptopComputer