[Xymon] Can't check kernel version on arm64 systems
Jaap Winius
jwinius at umrk.nl
Thu Jul 28 16:04:40 CEST 2022
Hi Adam,
Yes, that one appears to do the trick. All is green and I can once
again relax. :-)
Thank you very much!
Cheers,
Jaap
Quoting Adam Goryachev via Xymon <xymon at xymon.com>:
> On 28/7/2022 19:46, Jaap Winius via Xymon wrote:
>> Hi folks,
>>
>> My systems mostly run the Debian 11 xymon-client and hobbit-plugins
>> packages for amd64 and armhf. However, I've now got a few arm64
>> systems (for the Odroid N2+) and have run into a problem. After
>> installing a few missing dependencies for this architecture
>> (libyaml-tiny-perl, libfile-slurp-perl and lsof), the libs check
>> now says:
>>
>> Couldn't check for string '4.9.277-arm64' in
>> /boot/vmlinuz-4.9.277-arm64. Can't check kernel version!
>>
>> Seeing as there's nothing wrong with my systems, how can I get
>> Xymon to ignore this issue, or better yet, run the kernel version
>> properly?
>>
>> Thanks,
>>
>> Jaap
>
>
> In my case, looks like I made two small changes:
>
> my $kernel_image_release = $1;
>
> my $kernel_image_read_command = "strings '$newest_kernel_image'";
> - if (`dpkg --print-architecture` =~ /sparc/) {
> + if (-x '/usr/bin/dpkg' and `dpkg --print-architecture` =~
> /(sparc|arm64)/) {
> $kernel_image_read_command = "zcat -f --stdout
> '$newest_kernel_image' | strings";
> }
>
> - if ($kernel_image_version =~ /^(Linux version
> )?\Q$running_kernel_release\E \(.*\) \Q$running_kernel_version\E$/) {
> + if ($kernel_image_version =~ /^(Linux version
> )?\Q$running_kernel_release\E \(.*\) \Q$running_kernel_version\E/) {
>
>
> In addition, you will need to create these two files:
>
> $ cat /etc/kernel/postinst.d/statoverride
> #!/bin/sh
> version="$1"
> # passing the kernel version is required
> [ -z "${version}" ] && exit 0
> echo "Checking /boot/vmlinuz-${version}"
> dpkg-statoverride --list /boot/vmlinuz-${version}
> if `dpkg-statoverride --list /boot/vmlinuz-${version} > /dev/null`
> then
> echo "Override found - skipping"
> exit 0
> else
> dpkg-statoverride --update --add root adm 0640 /boot/vmlinuz-${version}
> fi
> exit 0
>
>
> $ cat /etc/kernel/postrm.d/statoverride
> #!/bin/bash
> version="$1"
> # passing the kernel version is required
> [ -z "${version}" ] && exit 0
> echo "Checking /boot/vmlinuz-${version}"
> dpkg-statoverride --list /boot/vmlinuz-${version}
> if `dpkg-statoverride --list /boot/vmlinuz-${version} > /dev/null`
> then
> echo "No override found - skipping"
> exit 0
> else
> dpkg-statoverride --remove /boot/vmlinuz-${version}
> fi
> exit 0
>
> Finally, since these will only run during kernel package
> installation/removal, you should run the postinst script manually
> for currently installed kernels.
>
> I do also modify the default permissions for xymon to add it to the
> adm group, this provides access to /var/log files as well as the
> above kernel images which are group adm and permission 640, so you
> either need to do that as well or adjust the permissions assigned in
> the postinst so that xymon will have read access.
>
> Hope that helps
More information about the Xymon
mailing list