Kernels... corn kernels?

Stupid title.

Anyway, I want to try out some custom kernels. After trying @javelinface’s DEOT image, and having glitches, I want to know the best way to use/install/change kernels?

Can I use pre-made ones and just drag/drop them into a specific folder?

What’s the easiest way for a complete rookie to do this?

1 Like

You’ll need to mount the /boot partition manually, and then copy them with super user permissions, which generally you can’t do with a GUI drag and drop interface. You’ll really need to have some basic competence with using a command line.
I’ve made scripts to do it all in the DEOT image you’re talking about. Have a look at that to get an idea of what commands to use. I gave a vague tutorial on how to do it in this post: Custom D.E.O.T. V2.0+/Clockwork OS v0.5 image - With customised DEOT interface, Kernel 5.7, Optional 1400MHz OC, Debian 10 Buster, Retroarch 1.9.0, Mupen64+ plus more! (Current build: 200903)

As for compatibility, the main kernels that are out there are @shell’s kernel, which is what comes stock with the Gameshell’s OS (5.3.6) The most recent one is this one.
I’ve included the older 5.4.6 kernel by shell in my custom image for you to try.

The other kernel that I’ve used with the stock Gameshell based images are the ones by @Joao_Manoel. You can find info here:
Scroll down half way or so to the kernel section.
He documents the changes and rationale behind his choices very well, and makes it easy enough for you to follow, and understand how to make one yourself.
I’ve included one of his earlier 5.5 kernels, as well as his most recent 5.7 kernels in the image you’re talking about.

Finally, afaik, @r043v has another custom kernel included with his arch Linux image, which can be found here: [OS] Arch Linux
I don’t know if the kernel files alone can be found anywhere, unless you check his GitHub. I haven’t tried fiddling with mixing and matching with this kernel, but the process should be pretty similar re: mounting a /boot partition, then doing a sudo cp of the files in question. As for compatibility, I’m guessing the .dtb file should be compatible. As for the uImage and boot.scr files, you might need to test these out for yourself, since I’m not sure what drivers etc are included/excluded with this image. It looks like he’s made one for you to try! Did you try using it yet? Custom D.E.O.T. V2.0+/Clockwork OS v0.5 image - With customised DEOT interface, Kernel 5.7, Optional 1400MHz OC, Debian 10 Buster, Retroarch 1.9.0, Mupen64+ plus more! (Current build: 200903)

Like I said, you might need fo be fairly competent in using a command line, and potentially mounting an SD card in a Linux environment to manually change files, in the likely case that your gameshell doesn’t boot up, or perhaps it boots up and wifi isn’t working. Different kernels may or may not contain wifi drivers. I recall this was the case with an early 5.7 kernel. As I mentioned, the kernels I have included are the ones by @Joao_Manoel and @shell, just with a modification the the boot up logo. I haven’t included @r043v, simply because I haven’t gotten around to testing it with a stock Gameshell image.

1 Like

binary kernels of arch could be found here latest is 5.6.3, wifi is excluded from kernel so you also need copy others modules files

as i change the uboot config in arch (/boot/boot.scr or boot.scr of first partition) kernel is distributed as a zImage file, mkimage utility can be used to recreate an uImage file used by others OS (uImage is zImage with additional header for uboot)

1 Like

OK this is all way over my head… I’ll leave it to you professionals :wink:

1 Like

where have you trouble ?

when gs boot she call what is at sd start, that’s not in filesystem and it’s the uboot binary,
uboot will search for boot.scr option/script file into first partition

boot.scr job is to load kernel file givin it various parameters

arch one ask loading classic kernel image zImage as other’s one ask uboot loading uboot dedicated image : uImage
(uImage can be generated from zImage file)

while kernel start it got integrated drivers and some others could be external, in modules files

arch and latest joao manoel kernel get wifi driver as an external module (to delay the loading/init and made it work)

modules files are all located into the same folder, so into file system, always in /usr/lib/modules/

so, install a kernel mean :

  • eventually convert main image file
  • copy image file into first partition
  • eventually copy kernel module folder
  • test it

that’s not imply any professional things, basically just need to extract files.

1 Like