How to use a specific kernel when building an ISO with liveslak?
by esmark from LinuxQuestions.org on (#6PS26)
I am looking to build an ISO using liveslak that is based on Slackware 15.0, but uses the 6.6.43 LTS kernel and modules. I have compiled the kernel how I would like and can put it on an existing live USB with the upslak.sh script. However, my end goal is to incorporate this kernel into the generated ISO so I can make bootable USBs as needed in the future in one step.
To try and get this to work, I first created a liveslak addon module using the makemod.sh script. This module included a boot folder with the kernel image, the System.map file and the kernel-config file. Then, I also created a liveslak module for the kernel modules. I did this by copying the /lib/modules/6.6.43 folder into its own folder and ran makemod.sh on it. I built the ISO, but when I booted it I found that it was still using the 5.15.161 kernel and not my 6.6.43 kernel.
I also tried making Slackware packages using makepkg for the kernel and modules. I did this using a similar process to before and used the kernel packages from the Slackware repository as a guide. When running makepkg, I said yes to setting permissions to 755 and yes to creating symlinks in the install script. I then added these packages to the myPackages folder that I created in the local64 folder. I also made sure to add "local:myPackages" to SEQ_CUSTOM in make_slackware_live.conf. When the make_slackware_live script gets to the point where it generates an initrd, it says it is generating it for 5.15.161 and when I boot the image, that is the kernel it is using and I do not see my 6.6.43 kernel anywhere in the /boot folder. However, the /lib/modules folder does contain both a 5.15.161 and a 6.6.43 folder, so it seems the modules package is working at least.
If any of this sounds like it should have worked, I can redo some steps to try and narrow down where I went wrong. Reading through the make_slackware_live.sh script, it looks like the kernel packages are treated specially and I thought it would pick up my kernel packages if I named them in the same format, but that seems to not be the case. If there are any other suggestions for getting this to work, I am happy to do some more trial-and-error.
To try and get this to work, I first created a liveslak addon module using the makemod.sh script. This module included a boot folder with the kernel image, the System.map file and the kernel-config file. Then, I also created a liveslak module for the kernel modules. I did this by copying the /lib/modules/6.6.43 folder into its own folder and ran makemod.sh on it. I built the ISO, but when I booted it I found that it was still using the 5.15.161 kernel and not my 6.6.43 kernel.
I also tried making Slackware packages using makepkg for the kernel and modules. I did this using a similar process to before and used the kernel packages from the Slackware repository as a guide. When running makepkg, I said yes to setting permissions to 755 and yes to creating symlinks in the install script. I then added these packages to the myPackages folder that I created in the local64 folder. I also made sure to add "local:myPackages" to SEQ_CUSTOM in make_slackware_live.conf. When the make_slackware_live script gets to the point where it generates an initrd, it says it is generating it for 5.15.161 and when I boot the image, that is the kernel it is using and I do not see my 6.6.43 kernel anywhere in the /boot folder. However, the /lib/modules folder does contain both a 5.15.161 and a 6.6.43 folder, so it seems the modules package is working at least.
If any of this sounds like it should have worked, I can redo some steps to try and narrow down where I went wrong. Reading through the make_slackware_live.sh script, it looks like the kernel packages are treated specially and I thought it would pick up my kernel packages if I named them in the same format, but that seems to not be the case. If there are any other suggestions for getting this to work, I am happy to do some more trial-and-error.