Personally, I would find quite necessary a little guide for installing/change kernel. I tried months ago but I switched a lot of time from the arch wiki to other sites to understand how get the packaging of a custom kernel. What gave me problems was the creation of the initramfs, so, I was stucked into this passage because it raised me an error.
As an ignorant, I suggest to get a little wiki on the endeavourOS site.
In my personal case, I need to install a real-time kernel (yes, I already tried to install it from the AUR repo but it takes too much time to compile it) for audio recording experiments, but I noticed that is faster to download a kernel and patching it. The problem is how to make it start for booting.
It could be interesting for everybody, but this is only a personal suggestion/opinion.
Which kernel? linux-rt is available in extra?
Well, you can use our very own akm
tool.
Using this you can install almost all the kernels in the Arch repo.
To boot from the kernel you can use this. If you’re using systemd-boot
. If you’re using GRUB
then you have to edit /etc/default/grub
.
Use sudo nano /etc/default/grub
and change GRUB_DEFAULT=0
to GRUB_DEFAULT="1>2"
So if the linux-rt
is the first in the sub-menu it’ll make it boot. If you want more clarification on this use this post in StackExchange. Or you can just replace the number in front of GRUB_DEFAULT=
and see what works (I can’t remember how to find the correct number).
After editing the GRUB
config you need to recreate the actual grub.cfg
file to do this you just have to run sudo dracut-rebuild
. Now reboot to test.
EDIT: Remembered how to find the kernel ID.
- To find
$menuentry_id_option
use:
$ sudo grep submenu /boot/grub/grub.cfg
submenu 'Advanced options for Debian GNU/Linux' $menuentry_id_option 'gnulinux-advanced-38ea4a12-6cfe-4ed9-a8b5-036295e62ffc' {
- To find
$menuentry_id_option
for the ernel you want to use:
menuentry 'EndeavourOS, on linux-lts' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-advanced-f2f94842-8952-4808-9752-1a9608e5af53' {
menuentry 'EndeavourOS, on linux-lts (fallback initramfs)' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-fallback-f2f94842-8952-4808-9752-1a9608e5af53' {
menuentry 'EndeavourOS, on linux' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-f2f94842-8952-4808-9752-1a9608e5af53' {
menuentry 'EndeavourOS, on linux (fallback initramfs)' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-f2f94842-8952-4808-9752-1a9608e5af53' {
Above 4 entries are numbered 0, 1, 2, and 3. So when you are counting you should count it like below.
0 ---- menuentry 'EndeavourOS, on linux-lts' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-advanced-f2f94842-8952-4808-9752-1a9608e5af53' {
1 ---- menuentry 'EndeavourOS, on linux-lts (fallback initramfs)' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-fallback-f2f94842-8952-4808-9752-1a9608e5af53' {
2 ---- menuentry 'EndeavourOS, on linux' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-f2f94842-8952-4808-9752-1a9608e5af53' {
3 ---- menuentry 'EndeavourOS, on linux (fallback initramfs)' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-f2f94842-8952-4808-9752-1a9608e5af53' {
From the list, you can just select the one you want to use and then change GRUB_DEFAULT=
to the number. If you want to use the normal kernel from the above list then change GRUB_DEFAULT=0
to GRUB_DEFAULT=2
. Save the file and then sudo dracut-rebuild
.
Then reboot and use uname -a
to double-check what kernel you have been booted into.
I already installed akm, but I missed the passages that you had explained because the problem described in the post above (initramfs cannot be created… so, no grub config).
Anyway, I will try again.
Thanks for your post.
You can also use sudo grub-mkconfig -o /boot/grub/grub.cfg
to generate the .cfg
file. But only if you have GRUB installed.
Creating initramfs when using grub:
sudo mkinitcpio -P
About grub menus: you can write grub menu entries into file
/etc/grub/custom.cfg
with which you can experiment a bit.
To write that file, you can copy a menuentry from the existing
/boot/grub/grub.cfg
and change some obvious details.
And you do not have to run grub-mkconfig
to make it work!
Simply reboot and test if your definitions work. If not, boot with a working entry and make the required changes to custom.cfg.
Really wish we had this tool/option during the EndeavourOS install.
You can change these if you used the online installer. If you used the offline one then it’s more of a standard install.
What are the commands to install/ remove specific kernel ? On Akm you can install only latest kernel plus lts
If you mean downgrading, the command is
downgrade <package(s)>
Otherwise normal pacman commands like
sudo pacman -S <kernel> <kernel>-headers # install
sudo pacman -R <package-name> # remove
Sorry to necro this thread, I found it via a quick search in the forums and it fits perfectly to my current situation.
TLDR: Booting into linux after changing from linux-lts to linux does not work as expected.
I had LTS with headers installed as only Kernel and wanted to revert back to non-LTS, but keep the LTS ones. So I fired up eos’ own AKM, installed core/linux and core/linux-headers alongside the LTS ones:
and checked my config in /boot/grub/grub.cfg:
submenu 'Advanced options for EndeavourOS Linux' $menuentry_id_option 'gnulinux-advanced-178ba18b-3faa-4b38-b7e5-5b0f5d2f285c' {
menuentry 'EndeavourOS Linux, with Linux linux-lts' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-advanced-178ba18b-3faa-4b38-b7e5-5b0f5d2f285c' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 178ba18b-3faa-4b38-b7e5-5b0f5d2f285c
else
search --no-floppy --fs-uuid --set=root 178ba18b-3faa-4b38-b7e5-5b0f5d2f285c
fi
echo 'Loading Linux linux-lts ...'
linux /@/boot/vmlinuz-linux-lts root=UUID=178ba18b-3faa-4b38-b7e5-5b0f5d2f285c rw rootflags=subvol=@ nowatchdog nvme_load=YES loglevel=3 zswap.enabled=0 amd-pstate=active
echo 'Loading initial ramdisk ...'
initrd /@/boot/amd-ucode.img /@/boot/initramfs-linux-lts.img
}
menuentry 'EndeavourOS Linux, with Linux linux-lts (fallback initramfs)' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-lts-fallback-178ba18b-3faa-4b38-b7e5-5b0f5d2f285c' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 178ba18b-3faa-4b38-b7e5-5b0f5d2f285c
else
search --no-floppy --fs-uuid --set=root 178ba18b-3faa-4b38-b7e5-5b0f5d2f285c
fi
echo 'Loading Linux linux-lts ...'
linux /@/boot/vmlinuz-linux-lts root=UUID=178ba18b-3faa-4b38-b7e5-5b0f5d2f285c rw rootflags=subvol=@ nowatchdog nvme_load=YES loglevel=3 zswap.enabled=0 amd-pstate=active
echo 'Loading initial ramdisk ...'
initrd /@/boot/amd-ucode.img /@/boot/initramfs-linux-lts-fallback.img
}
menuentry 'EndeavourOS Linux, with Linux linux' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-advanced-178ba18b-3faa-4b38-b7e5-5b0f5d2f285c' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 178ba18b-3faa-4b38-b7e5-5b0f5d2f285c
else
search --no-floppy --fs-uuid --set=root 178ba18b-3faa-4b38-b7e5-5b0f5d2f285c
fi
echo 'Loading Linux linux ...'
linux /@/boot/vmlinuz-linux root=UUID=178ba18b-3faa-4b38-b7e5-5b0f5d2f285c rw rootflags=subvol=@ nowatchdog nvme_load=YES loglevel=3 zswap.enabled=0 amd-pstate=active
echo 'Loading initial ramdisk ...'
initrd /@/boot/amd-ucode.img /@/boot/initramfs-linux.img
}
menuentry 'EndeavourOS Linux, with Linux linux (fallback initramfs)' --class endeavouros --class gnu-linux --class gnu --class os $menuentry_id_option 'gnulinux-linux-fallback-178ba18b-3faa-4b38-b7e5-5b0f5d2f285c' {
load_video
set gfxpayload=keep
insmod gzio
insmod part_gpt
insmod part_gpt
insmod btrfs
if [ x$feature_platform_search_hint = xy ]; then
search --no-floppy --fs-uuid --set=root 178ba18b-3faa-4b38-b7e5-5b0f5d2f285c
else
search --no-floppy --fs-uuid --set=root 178ba18b-3faa-4b38-b7e5-5b0f5d2f285c
fi
echo 'Loading Linux linux ...'
linux /@/boot/vmlinuz-linux root=UUID=178ba18b-3faa-4b38-b7e5-5b0f5d2f285c rw rootflags=subvol=@ nowatchdog nvme_load=YES loglevel=3 zswap.enabled=0 amd-pstate=active
echo 'Loading initial ramdisk ...'
initrd /@/boot/amd-ucode.img /@/boot/initramfs-linux-fallback.img
}
}
So we got here 0,1,2,3 as expected, 0 being LTS, 2 being non-LTS. I then went to
/etc/default/grub
and changed it to
GRUB_DEFAULT='2'
To finalize it I did a
sudo dracut-rebuild
and rebooted. Into a frozen plasma6 desktop. I waited some more minutes because there was life in my machine (HardDisk had some access sounds, temperature widget had changes), but no reaction to mouse and/or keyboard whatsorever. So I did a ATX-reset and this time I am up and running. Was my first screen freeze in this installation of eOS - strange. Stranger even more so: Booted into LTS! What is this trickery, what did I do wrong?
inxi -F
System:
Host: neuromancer Kernel: 6.6.23-1-lts arch: x86_64 bits: 64
Desktop: KDE Plasma v: 6.0.2 Distro: EndeavourOS
Machine:
Type: Desktop Mobo: Micro-Star model: MAG X570 TOMAHAWK WIFI (MS-7C84)
v: 1.0 serial: 07C8413_K91E763445 UEFI: American Megatrends LLC. v: 1.F0
date: 10/12/2023
CPU:
Info: 16-core model: AMD Ryzen 9 5950X bits: 64 type: MT MCP cache:
L2: 8 MiB
Speed (MHz): avg: 841 min/max: 550/5084 cores: 1: 550 2: 3618 3: 550
4: 3600 5: 550 6: 550 7: 550 8: 550 9: 550 10: 550 11: 550 12: 550 13: 550
14: 550 15: 550 16: 3764 17: 550 18: 550 19: 550 20: 550 21: 550 22: 550
23: 550 24: 550 25: 550 26: 550 27: 550 28: 550 29: 550 30: 550 31: 550
32: 550
Graphics:
Device-1: AMD Navi 21 [Radeon RX 6800/6800 XT / 6900 XT] driver: amdgpu
v: kernel
Display: server: X.Org v: 21.1.11 with: Xwayland v: 23.2.4 driver: X:
loaded: amdgpu unloaded: modesetting,radeon dri: radeonsi gpu: amdgpu
resolution: 1: 2560x1440 2: 2560x1440
API: EGL v: 1.5 drivers: radeonsi,swrast platforms: x11,surfaceless,device
API: OpenGL v: 4.6 compat-v: 4.5 vendor: amd mesa v: 24.0.3-arch1.2
renderer: AMD Radeon RX 6800 XT (radeonsi navi21 LLVM 17.0.6 DRM 3.54
6.6.23-1-lts)
API: Vulkan v: 1.3.279 drivers: radv surfaces: xcb,xlib
Audio:
Device-1: AMD Navi 21/23 HDMI/DP Audio driver: snd_hda_intel
Device-2: Thesycon System & Consulting GmbH DX3 Pro+ driver: snd-usb-audio
type: USB
API: ALSA v: k6.6.23-1-lts status: kernel-api
Network:
Device-1: Mellanox MT27500 Family [ConnectX-3] driver: mlx4_core
IF: enp36s0 state: up speed: 10000 Mbps duplex: full
mac: 00:02:c9:00:00:01
Device-2: Intel Wi-Fi 6 AX200 driver: iwlwifi
IF: wlan0 state: down mac: a6:60:95:16:d2:77
Bluetooth:
Device-1: Intel AX200 Bluetooth driver: btusb type: USB
Report: btmgmt ID: hci0 rfk-id: 0 state: down bt-service: enabled,running
rfk-block: hardware: no software: yes address: 3C:9C:0F:87:ED:0C bt-v: 5.2
Drives:
Local Storage: total: 18.66 TiB used: 8.77 TiB (47.0%)
ID-1: /dev/nvme0n1 vendor: Seagate model: FireCuda 530 ZP2000GM30013
size: 1.82 TiB
ID-2: /dev/nvme1n1 vendor: Seagate model: FireCuda 530 ZP2000GM30013
size: 1.82 TiB
ID-3: /dev/sda vendor: Samsung model: SSD 860 PRO 512GB size: 476.94 GiB
ID-4: /dev/sdb vendor: Seagate model: ST16000NM001G-2KK103 size: 14.55 TiB
Partition:
ID-1: / size: 1.82 TiB used: 1010.62 GiB (54.3%) fs: btrfs
dev: /dev/nvme0n1p2
ID-2: /boot/efi size: 998 MiB used: 576 KiB (0.1%) fs: vfat
dev: /dev/nvme0n1p1
ID-3: /home size: 1.82 TiB used: 1010.62 GiB (54.3%) fs: btrfs
dev: /dev/nvme0n1p2
ID-4: /var/log size: 1.82 TiB used: 1010.62 GiB (54.3%) fs: btrfs
dev: /dev/nvme0n1p2
Swap:
ID-1: swap-1 type: zram size: 16 GiB used: 8.2 MiB (0.1%) dev: /dev/zram0
Sensors:
System Temperatures: cpu: 48.9 C mobo: 36.0 C gpu: amdgpu temp: 65.0 C
Fan Speeds (rpm): fan-1: 0 fan-2: 393 fan-3: 354 fan-4: 0 fan-5: 0
fan-6: 0 fan-7: 0 gpu: amdgpu fan: 0
Info:
Memory: total: 64 GiB available: 62.72 GiB used: 7.5 GiB (12.0%)
Processes: 544 Uptime: 11m Shell: Sudo inxi: 3.3.33
PS.
You could also create a new thread and link to other long fallen to oblivion threads like this one.
Just mis dos pesos
PPS.
You may want to use -z flag with inxi when posting on forum:
-z, --filter Adds security filters for IP/MAC addresses, serial numbers,
location (-w), user home directory name, host name.
You are loading the microcode twice. Isn’t there are an issue with the current AMD ucode and current kernel where it causes problems when double loaded?
So, reading carefully and finding the correct threads is something I have to improve on… the daily struggle in learning linux Thx @pebcak - that did the trick. Loading non-lts now per default, but had a second hanger, which brings me to what @dalto has mentioned:
WHY I am loading it twice? I cannot remember doing anything microcoderelated on purpose - where could that have come from?
And, fast edit, more important: how to get rid of it?
You can set set GRUB_EARLY_INITRD_LINUX_STOCK=''
in /etc/default/grub