Please provide command to include custom EDID binary in init with mkinitcpio

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. :unamused: :weary:

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. :smile:

Yes you can:

:wink:

You have a very specific piece of hardware that no one else has so you seem to be running into people like me who go hunting for unanswered questions… :innocent:

Are you basically trying to do this but you’re running into a brick wall?

:thinking:

Hi again Fabby!!! Nice to see you. :grin:

Well, in this case the solution is outlined but needs adjustment to the specific tools used here in Manjaro.

I just came here myself. I do know pretty much what I need which is exactly what I said here. What is the command to rebuild init telling it to pull in the binary edid from /lib/firmware/edid/gpdwinmax.bin.

It seems simple but it is a rather specific sentax according to the tool being used. That’s why I showed how Debian did it and how it would be done if Dracut were used .

We are using mkinitcpio so I need to know that syntax. Done deal after that.

The other guy from previous post said he got it. I but wanted to fix FB. I told him FB is modified in /ect/default/grub.conf and if he puts fbcon=rotate:1 he’ll be set.

Then asked his intructions, but he hasn’t been back. Either he sorted it out or he’s busy playing. :rofl:

It’s an 8 inch gaming laptop right, with built in controllers. Honestly for me it’s a nice piece of kit with an i5 of like generation 9 or 10 which puts it in the same range as my mini-pc NUC Intel here i7 6th gen Skullcanyon that’s my main home computer. Except it’s ultra portable.

Well, I don’t play games but appreciate the midrange power for getting work done. I never go beyond Playstation Emu as far as games go. Guess I’m super casual. I want to get this up for replacing and aging like 1st gen dual core laptop as well as because it’s portability can be useful for some work things I do. Lot lighter and easier to carry.

But Windoz? No no no no no… can’t stand the interface and I am trying to get spyware locked down OS’s out of my life. I even got rid of Goggle Bot. Using a Sailfish X on an Xperia Xa2 now.

That’s another story that led me to that but it was discovering some units there is no root for. :scream: :confounded: That and some totally annoying stupidity with my Goggle mail.

Anyway, I wouldn’t be surprised if a lot more people have this equipment with Manjaro but, they already know what to do so they’re not here… :crazy_face:

That’s why I made a new post with Specifically what I need. I may have to just try what I think and see if that syntax is correct. The worse that can happen is nothing. It just won’t work. It might even give me a hint if I botched it.

I am the kind of user that prefers not to play around. When I have the answers and steps aligned then I do it and it works. Not… OOOPS I tried something now it’s really borked… Reinstall… :sweat_smile:

Not the experimental type…

I will check out those instructions you gave me, Fabby, and get that info back here later. For some reason this is not emailing me when there are replies. Is that an option?

So I just check here time to time but, it’s lunch time now… gotta eat.

I’ll need to use an external camera to take a pic, one to show the hardware fully, two because a screenshot looks normal. Like there’s only one screen not double split screen mirrored. How about that?

but…

ht!tps://www.reddit.com/r/gpdwin/comments/ik3dje/gpd_win_max_display_fix_in_linux/

I can do the link thing and it’ll let everyone read it fully.

Here’s where I am getting my info or mkinitcpio

ht!tps://wiki.archlinux.org/index.php/Mkinitcpio

ht!tps://jlk.fjfi.cvut.cz/arch/manpages/man/mkinitcpio.8

so, just need that syntax and it’ll be fixed. Already have the binary in position. Just need to know how to add it to init. I think FB won’t work without that added to the init because it still has no info on the screen.

Thank you for summarizing your issue.

So while reading the Arch mkinitcpio Wiki where exactly do you get stuck?

(that’s still unclear to me)

Exactly what I said here.

What is the exact or correct syntax to use in the command?

In fact, is That the right choice?

I am unfamiliar with this tool. Maybe the examples are clear to others, they are not to me.

SO I am stuck because I do not know exactly what to type here.

This, what I gave as details in my initial post. I need the command. I am not familiar with this tool so I would rather not just GUESS a command. LIke I said if it’s wrong maybe nothing happens. But how long will I be guessing? Until I get it correct if there are others familiar with this tool who know. :wink:

I’m not, so @cscs IIRC you’ve helped me with mkinitcpio to disable hibernation.

OP has a binary file:

echo "AP///////wAJ5QMAAwAAAAEdAQOACxF4LwAAoFdJmyYQSE8AAAABAQEBAQEBAQEBAQEBAQEBwhogUDAAEFAQEDIAbKwAAAAYAAAA/ABUVjA4MFdVTS1OTDAKAAAA/QA8PBAQBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMM=" | `base64 --decode > /lib/firmware/edid/gpdwinmax.bin

that needs to be loaded during the initramfs stage of the boot process and has read here how to do that but is in way over his head (and mine!).

Do you have a quick and easy solution so he can get his exotic hardware (an AMD_64 based tablet) to work?

:innocent:

Thanks for getting it out there so others can look at it and sort that last command. That’s the last part needed.

Appreciate it much. Totally off question…

How does well does Manjaro detect nVME SSD? I am installing to SDcards at the moment but ultimately that’s the SSD type used here in the hardware.

Again thank you so much, Fabby, for getting it out there to be observed more…

Can’t wait to get it working properly. :star_struck:

16gb of ram. 500gb SSD. Normal ports!! So much better than the common super thins. A USB-C, a Thunderbolt, 2 USB-A, and an actual ethernet port!

so portable… it’ll be quite useful.

THANKS so much for you help, Fabby!! :smile:

It depends on the hardware. Some manufacturers use exotic hardware and drivers to make it work under Windows and conveniently forget about Linux, so in that case, you’ll be SOL (So Out of Luck), but on my machine, the 2 NVMes work flawlessly.

:grin: