I know it sounds somewhat implausible. But could the install process change BIOS settings?
I did a new install of F44 on a system which already had Manjaro. After the install Num Lock was on when I booted either distro (this is a problem on my compact Thinkpad keyboard). I had to go into the BIOS and turn it off (again).
I think it is not the bios it selves what get changed … initramfs is probably do the change, to have it on always for users which use encrypted filesystems and this way their password is always the same .
The OS can communicate with the firmware (“BIOS”) through EFI Variables stored in the motherboard’s NVRAM (Non-Volatile RAM). The kernel exposes these firmware settings as a filesystem (/sys/firmware/efi/efivars). The installer or a system management tool (systemd) can write to these variables.
Many distributions use a service called systemd-backlight or specific keyboard initialization scripts. During the Fedora 44 installation or the very first boot, the system attempts to “detect” the hardware state. If the installer’s environment defaults to Num Lock = On, it can push that state into the UEFI NVRAM.
Anyway, Thinkpads hardware is deeply integrated with Linux. The thinkpad_acpi kernel module allows Linux to control almost everything, from the charging thresholds of your battery to the behavior of the LEDs and, yes, the initial state of the keyboard.
If you flipped the switch back to OFF, it should not switch back to ON automatically.
Thanks for the reply, but the issue was not at the OS level. It affected the already installed Manjaro as well. Flo replied with an explanation of how the OS can update the BIOS.
Here is what I see on my system. The numlock is on in the UEFI settings and when powered on, the numlock light is on. When grub2 is loaded and shows the menu, the numlock light is still on. As soon as the linux kernel is loaded the numlock light is turned off, but when lightdm is started, it turns numlock on again because I configured it to do so. I also need to instruct xfce to also turn numlock on for it to stay on.
The various display managers (login managers) and desktop environment has different ways to set the numlock as is shown in the arch linux wiki page.
As long as the OS has access to it and can make changes, it is on the OS level (as a sub OS).
Today it works like:
It’s not just a BIOS replacement, either. UEFI is essentially a tiny operating system that runs on top of the PC’s firmware, and it can do a lot more than a BIOS. It may be stored in flash memory on the motherboard, or it may be loaded from a hard drive or network share at boot (full article see here).
The article also shows that Intel since 2017 not delivers hardware with legacy bios anymore.
This is all true, there is several layers of turning Numlock on or off, but as @greggex said it was toggled in the firmware setup, IMHO the most likely switch that was flipped is the one in efivars. Of course, that does not mean that subsequent layers (grub, kernel, login managers, DE) can’t toggle it back…