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
> 
> 

Reply via email to