This unit is a GPD Win Max. It has a 800x1280 screen that is always rotated to the left, portrait mode because it is actually a mobile device screen.
The basic way to deal with this screen is by adding or using a custom edid. Because this screens edid is not in acpi like standard.
Linux cannot identify the screens size and refresh rate. Everything works well on the unit except the screen.
It is an all Intel Machine basically so well supported. I am not on it now but can give you a lspci later if you wish.
tthe āfixā for this screen was outlined here⦠fairly straight forward.
gpd_win_max_display_fix_in_linux (it seems I canāt add a link? If you search that in Goggle and add āredditā youāll find it. I apologize as I can not add it. I can copy the whole thing here if you need.)
It is also recommended in further discussions not to use xrandr to rotate this screen because it does something that loses vertical refresh rate totally. I have seen that in testing various distros to boot on it.
Even Manjaro live Plasma will black out if you use xrandr. I also abandoned Plasma for the moment until I get it fixed with this binary in placee. I am currently using Xfce because it is not as badly distorted as Plasma. Gnome as well but I donāt use it so am very unfamiliar with it.
video=eDP-1:800x1280 drm.edid_firmware=eDP-1:edid/gpdwinmax.bin fbcon=rotate:1
This goes in /etc/default/grub.conf
(Or what xrandr -q ouput shows, this is from Debian so slight differences.)
Again straight forward as is getting the binary by base64 --decode.
This is distro specific and I didnāt sort it out here, to be honest I am a noob as they say.
/etc/initramfs-tools/hooks/edid
update-initramfs -u
So thatās the Debian way of using, custom EDID loading via drm_helper.
RPM uses dracut and I was surpised at the Debian approach because as I know, maybe mistakenly they have Dracut too. (In the Debian Wiki)
Speaking of Dracut so do we here, but it needs some setting up from what I read. Looks a bit beyond me at this time and I am time constrained.
I also think just use mkinitcipo since itās here and default already.
echo āinstall_items+=" /lib/firmware/edid/gpdwinmax.bin "ā > /etc/dracut.conf.d/99-edid.conf
dracut -f
This would be the dracut version, an example I obtained.
In reading about mkinitcpio⦠I came across this:
add_binary binary [ destination ] [ mode ]
Adds a binary to the image. The argument binary need not be an absolute path and, if needed, a lookup will be performed. If the binary is a dynamically linked ELF binary, dependencies will be automatically added. Optionally, a destination within the initramfs image as well as a file mode can be specified. By default, the destintation and mode be taken from the source derived from binary .
I am not 100% certain this is what I want to use. It does seem like it. So I humbly request anyone who may know, to help me with the command syntax here.
/lib/firmware/edid/gpdwinmax.bin
is the full binary path. I am thinking the command is:
mkinitcpio add_binary gpdwinmax.bin /lib/firmware/edid/gpdwinmax.bin
I donāt think a mode is needed just the binary to be added to the init then the system can recognize the screen. However, should I add -c to tell it to use the config file to generate the init or without that it will default to using the config file?
It can be rotated in X with environment display settings and will be the right size or the right size will be available for selection. (Note: I am using the amusing screen size of 800x600. Which gives me to split screens and though refresh is incorrect it is readable and allows me to work in the environment. They are about the size of a mobile toi screen⦠hard on the old eyes. )
There is a touch screen but donāt know if it will rotate the touch points with the screen or not. I have read that with newer kernels this is possible? (It is not a high priority for me.)
Appreciate any help offered with this. I think thatās the approach adding that binary like that but am unsure. Would it be necessary to hard code it by telling it eDP1? ( I need to check that on the device with xrandr -q to have it correct. )
I hope I have provided enough info for you to help but if I left out something useful please tell me. Thank you.