badly-drawn-wizards / vangogh_oc_fix

A linux kernel module to override AMD Van Gogh APU PowerPlay limits for CPU
GNU General Public License v3.0
19 stars 5 forks source link

Exec Format Error #7

Closed travistabbal closed 1 year ago

travistabbal commented 1 year ago

I am trying to use this for the current stable release.

uname -a
Linux steamdeck 5.13.0-valve36-1-neptune #1 SMP PREEMPT Mon, 19 Dec 2022 23:39:41 +0000 x86_64 GNU/Linux

So I downloaded linux-neptune-5.13.0.valve36-1.src.tar.gz from the link in the readme. I put it in linux-header-extract/linux-pkg. I was able to modify the makefile to get it to extract the source files needed. I also symlinked the source directory to /lib/modules/5.13.0-valve36-1-neptune/build so the main makefile would run.

I tried both the master branch and the 0.0.1 release. Both build now, but give me that error, which searching says I might have the wrong kernel version. I tried with and without the parameter.

(deck@steamdeck vangogh_oc_fix-0.0.1)$ sudo modprobe vangogh_oc_fix modprobe: ERROR: could not insert 'vangogh_oc_fix': Exec format error

I did build the main kernel tree, do I need to boot that kernel?

travistabbal commented 1 year ago

I managed to get it going. I did end up installing a custom build kernel, using valve's config/package source. makepkg will build the kernel (takes forever, valve compiles about everything as a module) and kernel-headers package, pacman -U then installs them.

The default package config from valve uses a single-threaded compile. The kernel will build with multi-threaded compile. The docs for makepkg explain how to do it. I decided to let it go as I was going to sleep anyway.

Note that there are a number of dependencies you need to install before you can build a kernel on the deck. You can probably build it on a PC if you have an Arch linux install available.

After rebooting, I re-compiled the module and it was able to install and lets me adjust it in powertools. Watching the overlay, it is using the higher clocks now, more so when I increase TDP. It helps that the emulator allows me to reduce the GPU clocks so the CPU can use more power.

Thanks for the code!

badly-drawn-wizards commented 10 months ago

Note for future users, this module intends to side step building the kernel and if you are going through that process you might as well patch it directly. This is the line you can modify