simon@SP2M:~$ dmesg | grep DSDT
[ 0.017358] ACPI: DSDT ACPI table found in initrd [kernel/firmware/acpi/dsdt.aml][0x28dc3]
[ 0.017417] ACPI: Table Upgrade: override [DSDT-ALASKA- A M I ]
[ 0.017418] ACPI: DSDT 0x000000008CA03248 Physical table override, new table: 0x000000008B811000
[ 0.017420] ACPI: DSDT 0x000000008B811000 028DC3 (v02 ALASKA A M I 01072020 INTL 20190816)
EDIT 2: So I tried PeterCxy’s version and it works! Strange…?
simon@SP2M:~$ dmesg | grep DSDT
[ 0.017996] ACPI: DSDT ACPI table found in initrd [kernel/firmware/acpi/dsdt.aml][0x28dc3]
[ 0.018067] ACPI: Table Upgrade: override [DSDT-ALASKA- A M I ]
[ 0.018068] ACPI: DSDT 0x000000008CA03248 Physical table override, new table: 0x000000008B811000
[ 0.018070] ACPI: DSDT 0x000000008B811000 028DC3 (v02 ALASKA A M I 01072020 INTL 20190703)
[ 0.243954] ACPI: _SB_.PCI0.LPCB.H_EC: Used as boot DSDT EC to handle transactions
[ 0.292818] ACPI: _SB_.PCI0.LPCB.H_EC: Used as boot DSDT EC to handle transactions and events
simon@SP2M:~$ sudo ./p2max-dsdt-check.sh
[sudo] Mot de passe de simon :
Désolé, essayez de nouveau.
[sudo] Mot de passe de simon :
You are running GPD P2 BIOS version 0.23
You have the DSDT for < v0.23 loaded (PeterCxy version)
ERROR: You need to upgrade your DSDT override to match BIOS version v0.23. Load this override instead: http://josh.sh/acpi_override_23
added *.cfg and *.dat to authorised extension list so can be uploaded (if reqd)
I followed the above steps earlier by Josh and after a reboot - I couldn’t regain access to Ubuntu Mate only Windows. I tried Ubuntu Advanced options on grub and tried the two specified kernels and two recovery kernels but nothing worked. I then went in and managed to edit the /boot/grub/grub.cfg file through ubuntu mate live usb using root to nano the file and removed the line I added and rebooted.
this worked temporaily and rebooted and got me in.
I then double checked everything (my line number was not 225 but that line referred to something completely different I think my line number was 265 off memory) any how I checked it and it was right and i ran sudo grub-mkconfig -o /etc/grub/grub.cfg and rebooted and there was no longer any ubuntu mention at all just loaded straight to windows
I tried to do a ppa:yannubuntu/boot-repair using recommended repair but for some reason this wouldn’t run advising me to run it from a live distro (which I was using Ubuntu Mate 19.10 Live USB)
At this point im swearing, tired and fed up and decided i’m just going to wipe and reinstall the ubuntu mate partition. I’m trying this now.
It made no difference. Just hangs at the green and white dots moving.
when you press the up key /dev/nvme0n1p4: clean, 264690/23977984 files, 3840787/95907072 blocks
is the last line (shown in the video) after all the Hailuck input drivers load.
@joshwiththegoodhair - I’m not afraid to say I’m a linux noob tbh - I mean I’ve been using ubuntu/xubuntu for years but only for emacs and what I need and I get by. If you could have a quick look at my grub.cfg and 10_linux file and see what you think, i’d appreciate it. It could be user error.
NB: The only thing I would add is if you download 10_linux above I did edit line 280 as well as Line 260 or 265 (i think from memory) which you will see in the 10_linux file I attached.
I now have a working touchscreen on Ubuntu Mate 19.10.
Two quick questions as I’m slightly confused.
Why did this not work earlier when we tried this (as my memory serves right this was the reason you rebuilt the CPIO after Bios 23? as PeterCxy version wasn’t working for us)
Why do some of us have different dsdt tables? This seems rather odd to me.
Thanks though now my only issue is power management and the very dodgy resume with the black screen that won’t wake. This happened for others before bios v 0.23 but for me only started after i flashed to bios 0.23. Its rather frustrating. The only way to wake it up after walking away to make a brew is to belly button it.
Sorry I’ve just realised I sound so ungrateful. I’m genuinely really pleased I finally have a working touchscreen in Linux, its just I’m perplexed with the screen resume from wake thing that it makes the device pretty unusable, especially as I had run this daily before 0.23 and it was not doing any of these crazy power / resume issues.
I feel like Ubuntu users weren’t properly loading PeterCxy’s CPIO image which would explain why it didn’t initially work.
I’m as confused as you about this. Before upgrading to the v0.23 BIOS, I had PeterCxy’s CPIO image loaded, and it was working well which would make it seem that my P2Max was in the same state as everyone else’s. I don’t use my touchscreen often, by I happened to to notice it was not working right after I performed the v0.23 BIOS update. This is why I assume (keyword being “assume”) this is related to the BIOS update, but it might not be. But even after this research, I still feel the BIOS update altered these tables in some way, but I’m not quite sure how.
I’m also questioning a lot right now, but I don’t think the kernel, kernel modules or the linux distribution affects this. I could be wrong about this though. I was able to use my working v0.23 CPIO on both Arch and Ubuntu Mate which both used different 5.2.x kernels.
Just install the module using DKMS (or if you are on Arch, you can directly install via yay or yaourt or whatever), reboot (and maybe rebuild initramfs), then your touchscreen should start to work fine regardless of your BIOS.
This is an EXTREMELY dirty hack, since I don’t want to maintain a full kernel just for this. It depends on undocumented memory structure inside the Linux kernel that we have no guarantee for. But this will at least free us from the DSDT crap until my kernel patches get merged (those are the proper fixes)
I have only tested this on Linux 5.2.x on ArchLinux.
Thanks @PeterCxy I have added through DKMS on Debian-like with KDE and module works.
I have checked how does it react to sleep and after resuming touchscreen doesn’t work.
Can people who use it confirm this behaviour?
I haven’t blacklisted the sdhci family - registers are printed especially in recovery but sleep works from the beginning.
In dmesg there are errors which occur very frequently as below: