Jiri Slaby
1276afcf5a
OBS-URL: https://build.opensuse.org/package/show/Kernel:stable/kernel-source?expand=0&rev=575
63 lines
2.1 KiB
Bash
63 lines
2.1 KiB
Bash
# see bug #259303
|
|
# this script runs when the kernel gets updated with YaST
|
|
# YaST calls rpm always with -U
|
|
# -U replaces all packages with the new one
|
|
# rpm removes the files from the old packages after the postinstall script ran
|
|
# this will double the required space below /boot
|
|
# remove the files from the old packages to make room for the new initrd
|
|
# rpm may complain about low disk space if /boot/vmlinux does not fit
|
|
if [ @BASE_PACKAGE@ = 1 -a "$YAST_IS_RUNNING" != "" ]; then
|
|
mydf="$( POSIXLY_CORRECT=1 df -P /boot/ | awk '/^(\/|-[[:blank:]])/{ print $4}' )"
|
|
if test "$mydf" != "" ; then
|
|
echo "Free diskspace below /boot: $mydf blocks"
|
|
# echo "512 byte blocks: $(( 2 * 1024 * 20 ))"
|
|
if test "$mydf" -lt "40960" ; then
|
|
echo "make room for new kernel '@FLAVOR@' because there are less than 20MB available."
|
|
# disabled because it breaks patch rpms
|
|
#rm -fv /boot/@IMAGE@-*-@FLAVOR@
|
|
rm -fv /boot/initrd-*-@FLAVOR@
|
|
fi
|
|
fi
|
|
fi
|
|
|
|
|
|
# On AArch64 we switched from 64k PAGE_SIZE to 4k PAGE_SIZE. Unfortunately
|
|
# btrfs can only use file systems created with the same PAGE_SIZE. So we
|
|
# check if the user has any btrfs file systems mounted and refuse to install
|
|
# in that case.
|
|
if [ $( uname -m ) = aarch64 -a \
|
|
"$( zgrep CONFIG_ARM64_64K_PAGES=y /proc/config.gz )" -a \
|
|
@FLAVOR@ = default ]; then
|
|
if [ "$FORCE_4K" = 1 ]; then
|
|
# The user knows what he's doing, let him be.
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$YAST_IS_RUNNING" = "instsys" ]; then
|
|
# We're probably test installing the kernel, that should succeed
|
|
exit 0
|
|
fi
|
|
|
|
cat >&2 <<-EOF
|
|
|
|
You are running on a 64kb PAGE_SIZE kernel. The default kernel
|
|
switched to 4kb PAGE_SIZE which will prevent it from mounting btrfs
|
|
or the swap partition.
|
|
|
|
To ensure that your system still works, I am refusing to install
|
|
this kernel. If you want to force installation regardlesss, reinstall
|
|
with the environment variable FORCE_4K set to 1.
|
|
|
|
To stay with a 64kb PAGE_SIZE kernel, please follow these steps:
|
|
|
|
$ zypper in kernel-64kb
|
|
[ reboot into the new kernel ]
|
|
$ zypper rm kernel-default
|
|
|
|
You will then be on the 64kb PAGE_SIZE kernel and can update your
|
|
system normally.
|
|
EOF
|
|
|
|
exit 1
|
|
fi
|