GPD Win Max (2020)
Device | Status |
Video | Working |
Wireless | Working |
Ethernet | Working |
Bluetooth | Working |
Audio | Working |
Keyboard | Working |
Controller | Working |
Touchscreen | Working |
MicroSD Slot | Working |
Function/Multimedia Keys | Working |
Suspend/Resume | Working |
Notes for the GPD Win Max (2020 model), a hybrid UMPC and portable gaming device.
Fixes
Screen
EDID
The screen configuration is not correctly read, therefore the EDID has to be supplied and loaded separately.
Copy the EDID from Windows, or generate the EDID binary (data supplied by the GPD community), e.g. WinMaxEDID.bin
:
# echo "AP///////wAJ5QMAAwAAAAEdAQOACxF4LwAAoFdJmyYQSE8AAAABAQEBAQEBAQEBAQEBAQEBwhogUDAAEFAQEDIAbKwAAAAYAAAA/ABUVjA4MFdVTS1OTDAKAAAA/QA8PBAQBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMM=" | base64 --decode > WinMaxEDID.bin
Then copy the binary to /usr/lib/firmware/edid
. As root:
# mkdir /usr/lib/firmware/edid # cp WinMaxEDID.bin /usr/lib/firmware/edid/
Make it available on early boot, e.g. by editing the FILES
section in /etc/mkinitcpio.conf
if mkinitcpio
is used.
/etc/mkinitcpio.conf
[...] FILES=(/usr/lib/firmware/edid/WinMaxEDID.bin) [...]
Finally, add drm.edid_firmware=eDP-1:edid/WinMaxEDID.bin
to the Kernel parameters.
Screen rotation
This device uses a portrait screen.
To rotate the virtual console, add fbcon:rotate=1
to the Kernel parameters.
To rotate the login manager or graphical session, refer to the respective configuration files and/or applications.
Example: To rotate GDM, see here: GDM#Setup default monitor settings
Keyboard
Mute Key
The mute key does not send a release code. To fix it, create a new udev hwdb file under /etc/udev/hwdb.d/
, and configure the key to trigger an automatic release event.
/etc/udev/hwdb.d/90-gpd-rules.hwdb
evdev:atkbd:dmi:bvn*:bvr*:bd*:svnGPD:pnG1619-01:pvr* KEYBOARD_KEY_a0=!mute
Notes
Custom fixed Arch ISO
If you want to make an Arch ISO image fixed to work on the Win Max, this is the way to do it on Arch. Take note on how you named and where you placed your EDID binary, in this example it is found under /usr/lib/firmware/edid/WinMaxEDID.bin
.
Install the archiso package, then run:
# mkdir -p /opt/archiso/isos # cp -r /usr/share/archiso/configs/releng /opt/archiso/ # mkdir -p /opt/archiso/releng/airootfs/usr/lib/firmware/edid # cp /usr/lib/firmware/edid/WinMaxEDID.bin /opt/archiso/releng/airootfs/usr/lib/firmware/edid/
Now edit /opt/archiso/releng/airootfs/etc/mkinitcpio.conf
so that the FILES
section looks like this:
FILES=(/usr/lib/firmware/edid/WinMaxEDID.bin)
Also edit the files in /opt/archiso/releng/efiboot/loader/entries/
so that the "options"
line includes
drm.edid_firmware=eDP-1:edid/WinMaxEDID.bin fbcon=rotate:1
Finally build the file:
# mkarchiso -v -w /tmp/archiso -o /opt/archiso/isos /opt/archiso/releng
This can take a few minutes, depending on the system. The resulting WinMax-fixed official Arch image will then be under /opt/archiso/isos
.