On Monday, 22-07-2024 at 02:35 Joe wrote:
> On Sun, 21 Jul 2024 12:43:58 +0100
> Mike <deb...@norgie.net> wrote:
>
> > Hi all,
> >
> > I have a TV card in one of my boxen, which requires a kernel module to
> > be built. I've got that all nicely scripted and so I can kick it off
> > with relative ease.
> >
> > The issue is detecting when it needs to be done. ie after a change in
> > the running kernel. At the moment, it's detected by the TV guide
> > running out of data and triggering an Icinga alert, which then causes
> > me to investigate and rebuild the kernel module. I was hoping for
> > something a little more automated. I'm envisioning something which
> > starts on boot checking if the kernel has changed and if so, kicking
> > off the kernel module rebuild script.
> >
> > The question is: how to detect if the kernel has changed. Off the top
> > of my head I'm thinking:
> >
> > 1) lsmod | grep <driver>
> >
> > I conceed that doesn't actually indicate the kernel has changed, just
> > that the kernel module is missing. However, so far, it being missing
> > has consistent indicated a kernel change and rebuilding the driver on
> > a false positive isn't really an issue
> >
> > 2) last | grep "system boot" | head -n 2; then diff the values
> >
> > Probably a bit of a faff to extract the necessary information and
> > probably not wholey robust either.
> >
> > I thought that I'd just run it past the hive mind and see if anyone
> > has any better ideas?
> >
>
> These may help:
>
> I always get a notification of a new kernel and therefore necessary
> reboot during an apt upgrade. needrestart -k can be parsed to detect a
> newer kernel available, though obviously only until the next reboot.
>
I did not know needrestart could be manually run (shows my ignorance and
laziness). I have been using need restart for many years.
Thanks heaps for pointing this out !
man can be helpful, if used, wow ! Who would have thought?. I am feeling a
little embarrassed right now.
# needrestart -vlk
[main] eval /etc/needrestart/needrestart.conf
[main] needrestart v3.6
[main] running in root mode
[Core] Using UI 'NeedRestart::UI::stdio'...
[main] systemd detected
[Core] #719 is a NeedRestart::Interp::Python
[Python] #719: source=/usr/share/unattended-upgrades/unattended-upgrade-shutdown
[Core] #1535 is a NeedRestart::Interp::Perl
[Perl] #1535: could not get a source file, skipping
[Core] #1637 is a NeedRestart::Interp::Perl
[Perl] #1637: could not get a source file, skipping
[Kernel] Linux: kernel release 6.1.0-23-amd64, kernel version #1 SMP
PREEMPT_DYNAMIC Debian 6.1.99-1 (2024-07-15)
[Kernel/Linux] /boot/vmlinuz-6.1.0-23-amd64 => 6.1.0-23-amd64
(debian-ker...@lists.debian.org) #1 SMP PREEMPT_DYNAMIC Debian 6.1.99-1
(2024-07-15) [6.1.0-23-amd64]*
[Kernel/Linux] /boot/vmlinuz-6.1.0-22-amd64 => 6.1.0-22-amd64
(debian-ker...@lists.debian.org) #1 SMP PREEMPT_DYNAMIC Debian 6.1.94-1
(2024-06-21) [6.1.0-22-amd64]
[Kernel/Linux] Expected linux version: 6.1.0-23-amd64
Running kernel seems to be up-to-date.
No services need to be restarted.
> When apt installs a new kernel, it will typically not remove the
> current oldest. apt autoremove will remove all but the current and last
> kernels, so when it finds a kernel which can be removed, a new one will
> have been installed since its last invocation.
Is this a Debian only feature?
How autoremove leaves ' the current and last kernels' is something I really
like Debian for.
Debian looks after me, even when I am too lazy to do this myself.
Some distros run into issues because they do not do autoremoves of previous
kernels.
George
>
> --
> Joe
>
>