LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Slackware (https://www.linuxquestions.org/questions/slackware-14/)
-   -   Problem upgrading latest Slackware 64-current to kernel 5.4.29 (https://www.linuxquestions.org/questions/slackware-14/problem-upgrading-latest-slackware-64-current-to-kernel-5-4-29-a-4175672416/)

gauchao 04-02-2020 09:36 AM

Problem upgrading latest Slackware 64-current to kernel 5.4.29
 
Hi. Slackware 64-current with elilo (it is a UEFI machine) -

Today I have upgraded Slackware 64-current with the new Kernel 5.4.29 (It had 5.4.28)

After upgrading, I have ran #eliloconfig and then I rebooted

Upon reboot, I got the message "no kernel modules found" (I guess it was something like this) and the system froze.

I rebooted with Slackware install disk and took a look at /boot and /boot/efi/EFI/Slackware - I found that vmlinuz-* had different dates under /boot/efi/EFI/Slackware and /boot.

I figured that might be the problem (different copies of vmlinuz*) and so I followed the instructions in /boot/README.initrd by PV - #mkinitrd -c -k 5.4.29 -m etx4 in order to recreate a directory /boot/initrd-tree containing the initrd's filesystem.

System rebooted fine. No error messages anymore.

What could have happened? Hasn't eliloconfig work? I am new to current and elilo; all my machines are running 64-stable and lilo. I appreciate any suggestion!

gbschenkel 04-02-2020 10:35 AM

You don't need run eliloconfig every time, you could just copy the files:
Code:

cp -v /boot/initrd.gz /boot/efi/EFI/Slackware/initrd.gz
cp -v /boot/vmlinuz-generic-Kernel_Version /boot/efi/EFI/Slackware/vmlinuz

Before that, since I have a /etc/mkinitrd.conf, I just run
Code:

mkinitrd -F -k Kernel_Version
or edit the /etc/mkinitrd.conf with the new kernel info and just run
Code:

mkinitrd -F

teoberi 04-02-2020 10:40 AM

You do not need to run eliloconfig after each kernel update.
After updating the kernel you can generate initrd.gz and copy the files manually.
Code:

cd /boot
cp vmlinuz-huge-5.4.29 efi/EFI/Slackware/vmlinuz
cp vmlinuz-generic-5.4.29 efi/EFI/Slackware/vmlinuz-generic
cp initrd.gz efi /EFI/Slackware

Of course you must have a properly configured elilo.conf!

ehartman 04-02-2020 12:47 PM

Quote:

Originally Posted by gauchao (Post 6107035)
Today I have upgraded Slackware 64-current with the new Kernel 5.4.29 (It had 5.4.28)

After upgrading, I have ran #eliloconfig and then I rebooted

Upon reboot, I got the message "no kernel modules found" (I guess it was something like this) and the system froze.

Did you update kernel-modules too? Especially when you're using the -generic package (although the -huge kernel sometimes needs it too).
And with that generic kernel, REgenerate the initrd and make sure it is in the /boot/efi/EFI/Slackware directory, for an EFI boot to be able to find it. Using a newer kernel vs an older initrd will result in errors messages like that.

gauchao 04-02-2020 01:22 PM

Thank you for the answers!

@gbschenkl and @teoberi: thank you for the answers. But, shouldn't eliloconfig do it automatically? Like "lilo" does?

@ehartman: I guess you've pointed the problem: I am using -huge kernel, and I do have upgraded kernel-modules. I guess the problem was solved when I have recreated initrd - initrd was probably outdated.

So, every time I have kernel upgraded I should recreate initrd and then copy vmlinuz* and initrd from /boot to /boot/efi/EFI/Slackware?

bassmadrigal 04-02-2020 01:44 PM

Quote:

Originally Posted by gauchao (Post 6107106)
@gbschenkl and @teoberi: thank you for the answers. But, shouldn't eliloconfig do it automatically? Like "lilo" does?

Neither lilo, liloconfig, or eliloconfig will create initrds for you, although, I was under the impression that slackpkg was starting to do that now, but maybe it is only done during installation of Slackware and any future buildings of the initrd need to be accomplished manually.

But, per a changelog entry, if an initrd exists in /boot/, then eliloconfig will move the generic kernel and initrd to the EFI partition, not the huge kernel. So, if your initrd was created when you installed Slackware, but you never updated it after upgrading kernels, it would've moved your old initrd and new generic kernel, which would prevent your system from working.

Code:

Mon Jul 29 23:17:22 UTC 2019
a/elilo-3.16-x86_64-10.txz:  Rebuilt.
  eliloconfig: If /boot/initrd.gz exists, install the generic kernel and initrd.
  Otherwise, install the huge kernel.


gauchao 04-02-2020 03:16 PM

@bassmadrigal

Thank you again! Slacking and learning...

So exactly when should I run #eliloconfig in a system with EFI?

(I am used to run #lilo after every kernel upgrade with BIOS/MBR, which is not the case here.)

bassmadrigal 04-02-2020 03:21 PM

eliloconfig is just a fancy script to copy the kernel and initrd (if there) to your EFI partition and ensure the elilo efi stub is registered with your firmware.

But it isn't required like it was with lilo. All you really need to do are ensure that the kernel (and initrd, if required) are in your /boot/efi/EFI/Slackware/ folder and that the elilo.conf in the same folder point to the right files.

gauchao 04-03-2020 09:06 AM

Today I have successfully upgraded current to kernel 5.4.30.

I have recreated initrd with mkinitrd and then copied vmlinuz* and initrd.gz files from /boot to /boot/efi/EFI/Slackware.

Everything running fine.

Thank you, guys! For your answers and suggestions.

I will mark this as solved.

teoberi 04-03-2020 10:04 AM

If you want and feel brave you should try to update the microcode for the processor if necessary!
https://www.linuxquestions.org/quest...de-4175621053/
https://www.linuxquestions.org/quest...re-4175654143/


All times are GMT -5. The time now is 09:04 AM.