grub2 update problem by installing the new vanilla kernel from source
Hey, I'm trying to install the new vanilla kernel on tumbleweed. What I did: # zypper in gcc make ncurses-devel bison flex libelf-devel libopenssl-devel bc # make menuconfig # make -j4 # make modules_install # make install Everything fine, I get vmlinux (not vmlinuz), System.map, etc. In /boot I also have initrd. By trying to update grub2 (by running 'grub2-mkconfig') I don't get any errors (return code 0), everything looks fine, but after that the new kernel is not listed in the config file. Does anybody can tell me what I miss? I found a lot of documentation about SLE/openSUSE Kernel, but want to install new vanilla without any (open)SUSE-specific scripts, etc. Thank you. Cheers, Alex
On 12.05.2024 16:50, Alexander Naumov wrote:
Hey, I'm trying to install the new vanilla kernel on tumbleweed.
What I did: # zypper in gcc make ncurses-devel bison flex libelf-devel libopenssl-devel bc # make menuconfig # make -j4 # make modules_install # make install
Everything fine, I get vmlinux (not vmlinuz), System.map, etc. In /boot I also have initrd.
By trying to update grub2 (by running 'grub2-mkconfig') I don't get any errors (return code 0), everything looks fine, but after that the new kernel is not listed in the config file. Does anybody can tell me what I miss?
You could start with showing what you did exactly.
I found a lot of documentation about SLE/openSUSE Kernel, but want to install new vanilla without any (open)SUSE-specific scripts, etc.
Thank you.
Cheers, Alex
On 12.05.2024 16:50, Alexander Naumov wrote:
Hey, I'm trying to install the new vanilla kernel on tumbleweed.
What I did: # zypper in gcc make ncurses-devel bison flex libelf-devel libopenssl-devel bc # make menuconfig # make -j4 # make modules_install # make install
Everything fine, I get vmlinux (not vmlinuz), System.map, etc.
Looking at /etc/grub.d/10_linux, it expects case "x$machine" in xi?86 | xx86_64) klist="/boot/vmlinuz-* /vmlinuz-* /boot/kernel-*" ;;
In /boot I also have initrd.
By trying to update grub2 (by running 'grub2-mkconfig') I don't get any errors (return code 0), everything looks fine, but after that the new kernel is not listed in the config file. Does anybody can tell me what I miss?
I found a lot of documentation about SLE/openSUSE Kernel, but want to install new vanilla without any (open)SUSE-specific scripts, etc.
Thank you.
Cheers, Alex
Thank you. Unfortunately, adding the additional PATH to this file doesn't fix the problem. 'grub2-mkconfig' finds the new kernel, but after that we get the problem with PATH for initrd. Fixed. After that I'm happy to get the new problem with 'invalid magic number' and 'you need to load the kernel first'. Hate it... I made it many times. The same steps. Now it's all brok... changed. On Sun, May 12, 2024 at 4:28 PM Andrei Borzenkov <arvidjaar@gmail.com> wrote:
Hey, I'm trying to install the new vanilla kernel on tumbleweed.
What I did: # zypper in gcc make ncurses-devel bison flex libelf-devel
On 12.05.2024 16:50, Alexander Naumov wrote: libopenssl-devel bc
# make menuconfig # make -j4 # make modules_install # make install
Everything fine, I get vmlinux (not vmlinuz), System.map, etc.
Looking at /etc/grub.d/10_linux, it expects
case "x$machine" in xi?86 | xx86_64) klist="/boot/vmlinuz-* /vmlinuz-* /boot/kernel-*" ;;
In /boot I also have initrd.
By trying to update grub2 (by running 'grub2-mkconfig') I don't get any errors (return code 0), everything looks fine, but after that the new kernel is not listed in the config file. Does anybody can tell me what I miss?
I found a lot of documentation about SLE/openSUSE Kernel, but want to install new vanilla without any (open)SUSE-specific scripts, etc.
Thank you.
Cheers, Alex
On 5/12/24 10:11 AM, Alex Naumov wrote:
Thank you. Unfortunately, adding the additional PATH to this file doesn't fix the problem. 'grub2-mkconfig' finds the new kernel, but after that we get the problem with PATH for initrd. Fixed. After that I'm happy to get the new problem with 'invalid magic number' and 'you need to load the kernel first'. Hate it...
I made it many times. The same steps. Now it's all brok... changed.
On Sun, May 12, 2024 at 4:28 PM Andrei Borzenkov <arvidjaar@gmail.com <mailto:arvidjaar@gmail.com>> wrote:
On 12.05.2024 16:50, Alexander Naumov wrote: > Hey, > I'm trying to install the new vanilla kernel on tumbleweed. > > What I did: > # zypper in gcc make ncurses-devel bison flex libelf-devel libopenssl-devel bc > # make menuconfig > # make -j4 > # make modules_install > # make install > > Everything fine, I get vmlinux (not vmlinuz), System.map, etc.
Looking at /etc/grub.d/10_linux, it expects
case "x$machine" in xi?86 | xx86_64) klist="/boot/vmlinuz-* /vmlinuz-* /boot/kernel-*" ;;
> In /boot I also have initrd. > > By trying to update grub2 (by running 'grub2-mkconfig') I don't get any errors (return code 0), everything looks fine, but after that the new kernel is not listed in the config file. > Does anybody can tell me what I miss? > > I found a lot of documentation about SLE/openSUSE Kernel, but want to install new vanilla without any (open)SUSE-specific scripts, etc.
Do you have package kernel-install-tools installed? For me, having that available runs the grub2 update with only the 'sudo make modules_install install' step. By the way, building the kernel as root is really bad practice. Its Makefile is horribly complicated, and a simple mistake in it can ruin your system. At one point, such an error ended up trying to delete /dev/null. People that were building as root had their systems destroyed. Building without privilege just resulted in a trivial error. Only the install steps need to be run as root. Larry
Thank you, Larry! I think that was exactly the reason. I made all the steps as a normal user and just the last step as a user root. Both ('sudo make modules_install' and 'sudo make install') should be run as a normal user, i.e. not root. 'sudo make install' runs dracut and updates grub2 config. It seems there is no need to run 'grub2-mkconfig' at all... And yes, I installed 'kernel-install-tools' as you advised. @Andrei You're right, it seems, the last sudo-commad converts vmlinux to vmlinuz. Now it works. Thank you again guys. Cheers, Alex On Sun, May 12, 2024 at 5:26 PM Larry Finger <Larry.Finger@lwfinger.net> wrote:
Thank you. Unfortunately, adding the additional PATH to this file doesn't fix the
On 5/12/24 10:11 AM, Alex Naumov wrote: problem.
'grub2-mkconfig' finds the new kernel, but after that we get the problem with PATH for initrd. Fixed. After that I'm happy to get the new problem with 'invalid magic number' and 'you need to load the kernel first'. Hate it...
I made it many times. The same steps. Now it's all brok... changed.
On Sun, May 12, 2024 at 4:28 PM Andrei Borzenkov <arvidjaar@gmail.com <mailto:arvidjaar@gmail.com>> wrote:
On 12.05.2024 16:50, Alexander Naumov wrote: > Hey, > I'm trying to install the new vanilla kernel on tumbleweed. > > What I did: > # zypper in gcc make ncurses-devel bison flex libelf-devel libopenssl-devel bc > # make menuconfig > # make -j4 > # make modules_install > # make install > > Everything fine, I get vmlinux (not vmlinuz), System.map, etc.
Looking at /etc/grub.d/10_linux, it expects
case "x$machine" in xi?86 | xx86_64) klist="/boot/vmlinuz-* /vmlinuz-* /boot/kernel-*" ;;
> In /boot I also have initrd. > > By trying to update grub2 (by running 'grub2-mkconfig') I don't get any errors (return code 0), everything looks fine, but after that the new kernel is not listed in the config file. > Does anybody can tell me what I miss? > > I found a lot of documentation about SLE/openSUSE Kernel, but want to install new vanilla without any (open)SUSE-specific scripts, etc.
Do you have package kernel-install-tools installed? For me, having that available runs the grub2 update with only the 'sudo make modules_install install' step.
By the way, building the kernel as root is really bad practice. Its Makefile is horribly complicated, and a simple mistake in it can ruin your system. At one point, such an error ended up trying to delete /dev/null. People that were building as root had their systems destroyed. Building without privilege just resulted in a trivial error. Only the install steps need to be run as root.
Larry
On 12.05.2024 18:11, Alex Naumov wrote:
Thank you. Unfortunately, adding the additional PATH to this file doesn't fix the problem. 'grub2-mkconfig' finds the new kernel, but after that we get the problem with PATH for initrd. Fixed. After that I'm happy to get the new problem with 'invalid magic number' and 'you need to load the kernel first'.
I do not think vmlinux is really bootable.
Hate it...
I made it many times. The same steps. Now it's all brok... changed.
On Sun, May 12, 2024 at 4:28 PM Andrei Borzenkov <arvidjaar@gmail.com> wrote:
Hey, I'm trying to install the new vanilla kernel on tumbleweed.
What I did: # zypper in gcc make ncurses-devel bison flex libelf-devel
On 12.05.2024 16:50, Alexander Naumov wrote: libopenssl-devel bc
# make menuconfig # make -j4
That should default to bzImage target
# make modules_install # make install
Everything fine, I get vmlinux (not vmlinuz), System.map, etc.
Do you have ~/bin/installkernel or /sbin/installkernel? Or set INSTALLKERNEL to some custom command?
Looking at /etc/grub.d/10_linux, it expects
case "x$machine" in xi?86 | xx86_64) klist="/boot/vmlinuz-* /vmlinuz-* /boot/kernel-*" ;;
In /boot I also have initrd.
By trying to update grub2 (by running 'grub2-mkconfig') I don't get any errors (return code 0), everything looks fine, but after that the new kernel is not listed in the config file. Does anybody can tell me what I miss?
I found a lot of documentation about SLE/openSUSE Kernel, but want to install new vanilla without any (open)SUSE-specific scripts, etc.
Thank you.
Cheers, Alex
participants (4)
-
Alex Naumov
-
Alexander Naumov
-
Andrei Borzenkov
-
Larry Finger