diff --git a/10-devicetree.install b/10-devicetree.install index fdea5ec..3345391 100755 --- a/10-devicetree.install +++ b/10-devicetree.install @@ -2,7 +2,7 @@ # set -x -if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 || "$(uname -m)" == riscv64 ]] +if [[ "$(uname -m)" == arm* || "$(uname -m)" == aarch64 ]] then COMMAND="$1" KERNEL_VERSION="$2" diff --git a/grubby-bls b/grubby-bls index 11b69b1..ac82950 100755 --- a/grubby-bls +++ b/grubby-bls @@ -356,26 +356,22 @@ get_custom_bls_filename() { prefix="${bls_target%%${arch}}" prefix="${prefix%.*}" - first_gap=$( - first=0 - for bls_entry in $(ls "${prefix}".*~custom*.conf 2>/dev/null | sort -V); do - if [[ -e ${bls_entry} ]]; then - bls_entry="${bls_entry##"${prefix}".}" - bls_entry="${bls_entry%%~custom*}" - if [[ "${bls_entry}" = "${first}" ]]; then - first=$((first+1)) - else - break - fi - fi - done - echo "${first}") || : + last=($(for bls in ${prefix}.*~custom*.conf ; do + if ! [[ -e "${bls}" ]] ; then + continue + fi + bls="${bls##${prefix}.}" + bls="${bls%%~custom*}" + echo "${bls}" + done | tail -n1)) || : - if [[ -z "$first_gap" ]]; then - first_gap="0" + if [[ -z $last ]]; then + last="0" + else + last=$((last+1)) fi - echo "${bls_target}" | sed -e "s!${prefix}!${prefix}.${first_gap}~custom!" + echo "${bls_target}" | sed -e "s!${prefix}!${prefix}.${last}~custom!" } add_bls_fragment() { @@ -567,7 +563,7 @@ set_default_bls() { echo "default=${default}" >> "${zipl_config}" fi fi - update_grubcfg + print_info "The default is ${bls_file[$index]} with index $index and kernel $(get_prefix)${bls_linux[$index]}" } @@ -599,29 +595,33 @@ remove_var_prefix() { update_grubcfg() { - # Turn on RUN_MKCONFIG on different archs/scenarios - if [[ "${arch}" = 's390' ]] || [[ "${arch}" = 's390x' ]]; then - # On s390/s390x systems, run mkconfig/zipl + # Older ppc64le OPAL firmware (petitboot version < 1.8.0) don't have BLS support + # so grub2-mkconfig has to be run to generate a config with menuentry commands. + if [ "${arch}" = "ppc64le" ] && [ -d /sys/firmware/opal ]; then RUN_MKCONFIG="true" - elif [[ "${arch}" = "ppc64le" ]] && [[ -d /sys/firmware/opal ]]; then - # Older ppc64le OPAL firmware don't have BLS support so grub2-mkconfig has to be run - # to generate a config with menuentry commands. - RUN_MKCONFIG="true" - elif [[ -e /sys/hypervisor/type ]] && grep -q "^xen$" /sys/hypervisor/type; then - if [ ! -e /sys/hypervisor/guest_type ] || ! grep -q "^HVM$" /sys/hypervisor/guest_type; then - # PV and PVH Xen DomU guests boot with pygrub that doesn't have BLS support, - # also Xen Dom0 use the menuentries from 20_linux_xen and not the ones from - # 10_linux. So grub2-mkconfig has to run for both Xen Dom0 and DomU. - RUN_MKCONFIG=true + petitboot_path="/sys/firmware/devicetree/base/ibm,firmware-versions/petitboot" + + if test -e ${petitboot_path}; then + read -r -d '' petitboot_version < ${petitboot_path} + petitboot_version="$(echo ${petitboot_version//v})" + + if test -n ${petitboot_version}; then + major_version="$(echo ${petitboot_version} | cut -d . -f1)" + minor_version="$(echo ${petitboot_version} | cut -d . -f2)" + + re='^[0-9]+$' + if [[ $major_version =~ $re ]] && [[ $minor_version =~ $re ]] && + ([[ ${major_version} -gt 1 ]] || + [[ ${major_version} -eq 1 && + ${minor_version} -ge 8 ]]); then + RUN_MKCONFIG="false" + fi + fi fi fi if [[ $RUN_MKCONFIG = "true" ]]; then - if [[ $bootloader = "zipl" ]]; then - zipl - else - grub2-mkconfig --no-grubenv-update -o "${grub_config}" &> /dev/null - fi + grub2-mkconfig --no-grubenv-update -o "${grub_config}" >& /dev/null fi } @@ -630,7 +630,7 @@ print_usage() cat < - 8.40-86 -- Own `/etc/sysconfig/kernel` which is used for `grubby` configuration - -* Wed Jul 30 2025 Leo Sandoval - 8.40-85 -- Update cfg when setting a default kernel - -* Thu Jul 24 2025 Fedora Release Engineering - 8.40-84 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Thu Mar 20 2025 Leo Sandoval - 8.40-83 -- grubby-bls: in s390* systems, run zipl on grub cfg update event - Fixes previous commit and formats better the conditions that trigger grub cfg updates - -* Fri Jan 17 2025 Fedora Release Engineering - 8.40-82 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild - -* Mon Jan 06 2025 Nicolas Frayer - 8.40-81 -- Fixups to custom kernel targets - -* Fri Dec 06 2024 Leo Sandoval - 8.40-80 -- grubby-bls: on PPC systems, remove petiboot's version checks - -* Fri Dec 06 2024 Leo Sandoval - 8.40-79 -- grubby-bls: in s390* systems, run zipl on grub cfg update event - -* Mon Dec 02 2024 David Abdurachmanov - 8.40-78 -- Add riscv64 support - -* Mon Nov 25 2024 Leo Sandoval - 8.40-77 -- On grub cfg updates, run grub2-mkconfig for Xen systems - -* Thu Jul 18 2024 Fedora Release Engineering - 8.40-76 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild - * Wed Jan 24 2024 Fedora Release Engineering - 8.40-75 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild diff --git a/kernel.sysconfig b/kernel.sysconfig deleted file mode 100644 index 8da1970..0000000 --- a/kernel.sysconfig +++ /dev/null @@ -1,6 +0,0 @@ -# UPDATEDEFAULT specifies if kernel-install should make -# new kernels the default -UPDATEDEFAULT=yes - -# DEFAULTKERNEL specifies the default kernel package type -DEFAULTKERNEL=kernel-core