import kexec-tools-2.0.25-3.el8
This commit is contained in:
parent
c250d53e24
commit
0e11d67106
|
@ -1,5 +1,20 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
|
_save_kdump_netifs() {
|
||||||
|
local _name
|
||||||
|
|
||||||
|
if [[ -n $2 ]]; then
|
||||||
|
_name=$2
|
||||||
|
else
|
||||||
|
_name=$1
|
||||||
|
fi
|
||||||
|
unique_netifs[$1]=$_name
|
||||||
|
}
|
||||||
|
|
||||||
|
_get_kdump_netifs() {
|
||||||
|
echo -n "${!unique_netifs[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
kdump_module_init() {
|
kdump_module_init() {
|
||||||
if ! [[ -d "${initdir}/tmp" ]]; then
|
if ! [[ -d "${initdir}/tmp" ]]; then
|
||||||
mkdir -p "${initdir}/tmp"
|
mkdir -p "${initdir}/tmp"
|
||||||
|
@ -300,11 +315,35 @@ kdump_setup_ifname() {
|
||||||
echo "$_ifname"
|
echo "$_ifname"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kdump_install_nm_netif_allowlist() {
|
||||||
|
local _netif _except_netif _netif_allowlist _netif_allowlist_nm_conf
|
||||||
|
|
||||||
|
for _netif in $1; do
|
||||||
|
_per_mac=$(kdump_get_perm_addr "$_netif")
|
||||||
|
if [[ "$_per_mac" != 'not set' ]]; then
|
||||||
|
_except_netif="mac:$_per_mac"
|
||||||
|
else
|
||||||
|
_except_netif="interface-name:${unique_netifs[${_netif}]}"
|
||||||
|
fi
|
||||||
|
_netif_allowlist="${_netif_allowlist}except:${_except_netif};"
|
||||||
|
done
|
||||||
|
|
||||||
|
_netif_allowlist_nm_conf=${initdir}/tmp/netif_allowlist_nm_conf
|
||||||
|
cat << EOF > "$_netif_allowlist_nm_conf"
|
||||||
|
[device-others]
|
||||||
|
match-device=${_netif_allowlist}
|
||||||
|
managed=false
|
||||||
|
EOF
|
||||||
|
|
||||||
|
inst "$_netif_allowlist_nm_conf" "/etc/NetworkManager/conf.d/10-kdump-netif_allowlist.conf"
|
||||||
|
rm -f "$_netif_allowlist_nm_conf"
|
||||||
|
}
|
||||||
|
|
||||||
kdump_setup_bridge() {
|
kdump_setup_bridge() {
|
||||||
local _netdev=$1
|
local _netdev=$1
|
||||||
local _brif _dev _mac _kdumpdev
|
local _brif _dev _mac _kdumpdev
|
||||||
for _dev in `ls /sys/class/net/$_netdev/brif/`; do
|
for _dev in `ls /sys/class/net/$_netdev/brif/`; do
|
||||||
_kdumpdev=$_dev
|
_kdumpdev=""
|
||||||
if kdump_is_bond "$_dev"; then
|
if kdump_is_bond "$_dev"; then
|
||||||
kdump_setup_bond "$_dev"
|
kdump_setup_bond "$_dev"
|
||||||
elif kdump_is_team "$_dev"; then
|
elif kdump_is_team "$_dev"; then
|
||||||
|
@ -316,6 +355,8 @@ kdump_setup_bridge() {
|
||||||
_kdumpdev=$(kdump_setup_ifname $_dev)
|
_kdumpdev=$(kdump_setup_ifname $_dev)
|
||||||
echo -n " ifname=$_kdumpdev:$_mac" >> ${initdir}/etc/cmdline.d/41bridge.conf
|
echo -n " ifname=$_kdumpdev:$_mac" >> ${initdir}/etc/cmdline.d/41bridge.conf
|
||||||
fi
|
fi
|
||||||
|
_save_kdump_netifs "$_dev" "$_kdumpdev"
|
||||||
|
[[ -z $_kdumpdev ]] && _kdumpdev=$_dev
|
||||||
_brif+="$_kdumpdev,"
|
_brif+="$_kdumpdev,"
|
||||||
done
|
done
|
||||||
echo " bridge=$_netdev:$(echo $_brif | sed -e 's/,$//')" >> ${initdir}/etc/cmdline.d/41bridge.conf
|
echo " bridge=$_netdev:$(echo $_brif | sed -e 's/,$//')" >> ${initdir}/etc/cmdline.d/41bridge.conf
|
||||||
|
@ -327,6 +368,7 @@ kdump_setup_bond() {
|
||||||
for _dev in `cat /sys/class/net/$_netdev/bonding/slaves`; do
|
for _dev in `cat /sys/class/net/$_netdev/bonding/slaves`; do
|
||||||
_mac=$(kdump_get_perm_addr $_dev)
|
_mac=$(kdump_get_perm_addr $_dev)
|
||||||
_kdumpdev=$(kdump_setup_ifname $_dev)
|
_kdumpdev=$(kdump_setup_ifname $_dev)
|
||||||
|
_save_kdump_netifs "$_dev" "$_kdumpdev"
|
||||||
echo -n " ifname=$_kdumpdev:$_mac" >> ${initdir}/etc/cmdline.d/42bond.conf
|
echo -n " ifname=$_kdumpdev:$_mac" >> ${initdir}/etc/cmdline.d/42bond.conf
|
||||||
_slaves+="$_kdumpdev,"
|
_slaves+="$_kdumpdev,"
|
||||||
done
|
done
|
||||||
|
@ -345,6 +387,7 @@ kdump_setup_team() {
|
||||||
for _dev in `teamnl $_netdev ports | awk -F':' '{print $2}'`; do
|
for _dev in `teamnl $_netdev ports | awk -F':' '{print $2}'`; do
|
||||||
_mac=$(kdump_get_perm_addr $_dev)
|
_mac=$(kdump_get_perm_addr $_dev)
|
||||||
_kdumpdev=$(kdump_setup_ifname $_dev)
|
_kdumpdev=$(kdump_setup_ifname $_dev)
|
||||||
|
_save_kdump_netifs "$_dev" "$_kdumpdev"
|
||||||
echo -n " ifname=$_kdumpdev:$_mac" >> ${initdir}/etc/cmdline.d/44team.conf
|
echo -n " ifname=$_kdumpdev:$_mac" >> ${initdir}/etc/cmdline.d/44team.conf
|
||||||
_slaves+="$_kdumpdev,"
|
_slaves+="$_kdumpdev,"
|
||||||
done
|
done
|
||||||
|
@ -379,6 +422,7 @@ kdump_setup_vlan() {
|
||||||
_kdumpdev="$(kdump_setup_ifname $_phydev)"
|
_kdumpdev="$(kdump_setup_ifname $_phydev)"
|
||||||
echo " vlan=$(kdump_setup_ifname $_netdev):$_kdumpdev ifname=$_kdumpdev:$_netmac" > ${initdir}/etc/cmdline.d/43vlan.conf
|
echo " vlan=$(kdump_setup_ifname $_netdev):$_kdumpdev ifname=$_kdumpdev:$_netmac" > ${initdir}/etc/cmdline.d/43vlan.conf
|
||||||
fi
|
fi
|
||||||
|
_save_kdump_netifs "$_phydev" "$_kdumpdev"
|
||||||
}
|
}
|
||||||
|
|
||||||
# find online znet device
|
# find online znet device
|
||||||
|
@ -477,6 +521,7 @@ kdump_setup_netdev() {
|
||||||
_ifname_opts=" ifname=$kdumpnic:$_netmac"
|
_ifname_opts=" ifname=$kdumpnic:$_netmac"
|
||||||
echo "$_ifname_opts" >> $_ip_conf
|
echo "$_ifname_opts" >> $_ip_conf
|
||||||
fi
|
fi
|
||||||
|
_save_kdump_netifs "$_netdev" "$_kdumpdev"
|
||||||
|
|
||||||
kdump_setup_dns "$_netdev"
|
kdump_setup_dns "$_netdev"
|
||||||
|
|
||||||
|
@ -765,7 +810,7 @@ kdump_check_iscsi_targets () {
|
||||||
# If our prerequisites are not met, fail anyways.
|
# If our prerequisites are not met, fail anyways.
|
||||||
type -P iscsistart >/dev/null || return 1
|
type -P iscsistart >/dev/null || return 1
|
||||||
|
|
||||||
kdump_check_setup_iscsi() (
|
kdump_check_setup_iscsi() {
|
||||||
local _dev
|
local _dev
|
||||||
_dev=$1
|
_dev=$1
|
||||||
|
|
||||||
|
@ -775,7 +820,7 @@ kdump_check_iscsi_targets () {
|
||||||
cd ..
|
cd ..
|
||||||
done
|
done
|
||||||
[[ -d iscsi_session ]] && kdump_setup_iscsi_device "$PWD"
|
[[ -d iscsi_session ]] && kdump_setup_iscsi_device "$PWD"
|
||||||
)
|
}
|
||||||
|
|
||||||
[[ $hostonly ]] || [[ $mount_needs ]] && {
|
[[ $hostonly ]] || [[ $mount_needs ]] && {
|
||||||
for_each_host_dev_and_slaves_all kdump_check_setup_iscsi
|
for_each_host_dev_and_slaves_all kdump_check_setup_iscsi
|
||||||
|
@ -941,7 +986,8 @@ kdump_install_systemd_conf() {
|
||||||
}
|
}
|
||||||
|
|
||||||
install() {
|
install() {
|
||||||
local arch
|
declare -A unique_netifs
|
||||||
|
local arch _netifs
|
||||||
|
|
||||||
kdump_module_init
|
kdump_module_init
|
||||||
kdump_install_conf
|
kdump_install_conf
|
||||||
|
@ -993,6 +1039,11 @@ install() {
|
||||||
# at some point of time.
|
# at some point of time.
|
||||||
kdump_check_iscsi_targets
|
kdump_check_iscsi_targets
|
||||||
|
|
||||||
|
_netifs=$(_get_kdump_netifs)
|
||||||
|
if [[ -n "$_netifs" ]]; then
|
||||||
|
kdump_install_nm_netif_allowlist "$_netifs"
|
||||||
|
fi
|
||||||
|
|
||||||
kdump_install_systemd_conf
|
kdump_install_systemd_conf
|
||||||
|
|
||||||
# For the lvm type target under kdump, in /etc/lvm/lvm.conf we can
|
# For the lvm type target under kdump, in /etc/lvm/lvm.conf we can
|
||||||
|
|
|
@ -1,3 +1,12 @@
|
||||||
|
#!/bin/bash
|
||||||
|
# $1: target arch
|
||||||
|
|
||||||
|
|
||||||
|
SED_EXP=""
|
||||||
|
|
||||||
|
generate()
|
||||||
|
{
|
||||||
|
sed "$SED_EXP" << EOF
|
||||||
# This file contains a series of commands to perform (in order) in the kdump
|
# This file contains a series of commands to perform (in order) in the kdump
|
||||||
# kernel after a kernel crash in the crash kernel(1st kernel) has happened.
|
# kernel after a kernel crash in the crash kernel(1st kernel) has happened.
|
||||||
#
|
#
|
||||||
|
@ -183,3 +192,32 @@ core_collector makedumpfile -l --message-level 7 -d 31
|
||||||
#dracut_args --omit-drivers "cfg80211 snd" --add-drivers "ext2 ext3"
|
#dracut_args --omit-drivers "cfg80211 snd" --add-drivers "ext2 ext3"
|
||||||
#fence_kdump_args -p 7410 -f auto -c 0 -i 10
|
#fence_kdump_args -p 7410 -f auto -c 0 -i 10
|
||||||
#fence_kdump_nodes node1 node2
|
#fence_kdump_nodes node1 node2
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
update_param()
|
||||||
|
{
|
||||||
|
SED_EXP="${SED_EXP}s/^$1.*$/$1 $2/;"
|
||||||
|
}
|
||||||
|
|
||||||
|
case "$1" in
|
||||||
|
aarch64)
|
||||||
|
;;
|
||||||
|
i386)
|
||||||
|
;;
|
||||||
|
ppc64)
|
||||||
|
;;
|
||||||
|
ppc64le)
|
||||||
|
;;
|
||||||
|
s390x)
|
||||||
|
update_param core_collector \
|
||||||
|
"makedumpfile -c --message-level 7 -d 31"
|
||||||
|
;;
|
||||||
|
x86_64)
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
echo "Warning: Unknown architecture '$1', using default kdump.conf template."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
generate
|
|
@ -1,6 +1,6 @@
|
||||||
Name: kexec-tools
|
Name: kexec-tools
|
||||||
Version: 2.0.25
|
Version: 2.0.25
|
||||||
Release: 2%{?dist}
|
Release: 3%{?dist}
|
||||||
License: GPLv2
|
License: GPLv2
|
||||||
Group: Applications/System
|
Group: Applications/System
|
||||||
Summary: The kexec/kdump userspace component
|
Summary: The kexec/kdump userspace component
|
||||||
|
@ -12,7 +12,7 @@ Source3: kdump.sysconfig.x86_64
|
||||||
Source4: kdump.sysconfig.i386
|
Source4: kdump.sysconfig.i386
|
||||||
Source5: kdump.sysconfig.ppc64
|
Source5: kdump.sysconfig.ppc64
|
||||||
Source7: mkdumprd
|
Source7: mkdumprd
|
||||||
Source8: kdump.conf
|
Source8: gen-kdump-conf.sh
|
||||||
Source9: https://github.com/makedumpfile/makedumpfile/archive/1.7.1.tar.gz
|
Source9: https://github.com/makedumpfile/makedumpfile/archive/1.7.1.tar.gz
|
||||||
Source10: kexec-kdump-howto.txt
|
Source10: kexec-kdump-howto.txt
|
||||||
Source12: mkdumprd.8
|
Source12: mkdumprd.8
|
||||||
|
@ -158,6 +158,9 @@ cp %{SOURCE27} .
|
||||||
cp %{SOURCE28} .
|
cp %{SOURCE28} .
|
||||||
cp %{SOURCE31} .
|
cp %{SOURCE31} .
|
||||||
|
|
||||||
|
# Generate sysconfig file
|
||||||
|
%{SOURCE8} %{_target_cpu} > kdump.conf
|
||||||
|
|
||||||
make
|
make
|
||||||
%ifarch %{ix86} x86_64 ppc64 s390x ppc64le aarch64
|
%ifarch %{ix86} x86_64 ppc64 s390x ppc64le aarch64
|
||||||
make -C eppic/libeppic
|
make -C eppic/libeppic
|
||||||
|
@ -196,7 +199,7 @@ install -m 644 $SYSCONFIG $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/kdump
|
||||||
|
|
||||||
install -m 755 %{SOURCE7} $RPM_BUILD_ROOT/usr/sbin/mkdumprd
|
install -m 755 %{SOURCE7} $RPM_BUILD_ROOT/usr/sbin/mkdumprd
|
||||||
install -m 755 %{SOURCE36} $RPM_BUILD_ROOT/usr/sbin/mkfadumprd
|
install -m 755 %{SOURCE36} $RPM_BUILD_ROOT/usr/sbin/mkfadumprd
|
||||||
install -m 644 %{SOURCE8} $RPM_BUILD_ROOT%{_sysconfdir}/kdump.conf
|
install -m 644 kdump.conf $RPM_BUILD_ROOT%{_sysconfdir}/kdump.conf
|
||||||
install -m 644 kexec/kexec.8 $RPM_BUILD_ROOT%{_mandir}/man8/kexec.8
|
install -m 644 kexec/kexec.8 $RPM_BUILD_ROOT%{_mandir}/man8/kexec.8
|
||||||
install -m 644 %{SOURCE12} $RPM_BUILD_ROOT%{_mandir}/man8/mkdumprd.8
|
install -m 644 %{SOURCE12} $RPM_BUILD_ROOT%{_mandir}/man8/mkdumprd.8
|
||||||
install -m 644 %{SOURCE25} $RPM_BUILD_ROOT%{_mandir}/man8/kdumpctl.8
|
install -m 644 %{SOURCE25} $RPM_BUILD_ROOT%{_mandir}/man8/kdumpctl.8
|
||||||
|
@ -393,6 +396,10 @@ done
|
||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Fri Dec 2 2022 Pingfan Liu <piliu@redhat.com> - 2.0.25-3
|
||||||
|
- kdump.conf: use a simple generator script to maintain
|
||||||
|
- Reduce kdump memory consumption by not letting NetworkManager manage unneeded network interfaces
|
||||||
|
|
||||||
* Mon Oct 17 2022 Pingfan Liu <piliu@redhat.com> - 2.0.25-2
|
* Mon Oct 17 2022 Pingfan Liu <piliu@redhat.com> - 2.0.25-2
|
||||||
- mkdumprd: Improve error messages on non-existing NFS target directories
|
- mkdumprd: Improve error messages on non-existing NFS target directories
|
||||||
- fadump: avoid non-debug kernel use for fadump case
|
- fadump: avoid non-debug kernel use for fadump case
|
||||||
|
|
Loading…
Reference in New Issue