You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
59 lines
1.5 KiB
59 lines
1.5 KiB
3 years ago
|
#!/bin/sh
|
||
|
# NB: -f prohibited in this shebang
|
||
|
# check relevant kernel features availability
|
||
|
|
||
|
CONFIGS=/boot/config-*
|
||
|
GZ_OPTS="-comp gzip"
|
||
|
XZ_OPTS="-comp xz"
|
||
|
LZO_OPTS="-comp lzo"
|
||
|
|
||
|
verbose() { [ -z "$GLOBAL_VERBOSE" ] || echo "** $@" >&2; }
|
||
|
fatal() { echo "** error: $@" >&2; exit 1; }
|
||
|
|
||
|
configured()
|
||
|
{
|
||
|
local option="CONFIG_$1"
|
||
|
if grep -q "^$option" $CONFIGS; then
|
||
|
verbose "${option%=*} available"
|
||
|
return 0
|
||
|
else
|
||
|
return 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
ls $CONFIGS >&/dev/null || fatal "no stage1 kernel config found in /boot"
|
||
|
|
||
|
# test for installer-required filesystems support
|
||
|
configured "OVERLAY_FS=[my]" || configured "AUFS_FS=[my]" ||
|
||
|
echo fatal "stage1 kernel must support overlayfs or aufs"
|
||
|
|
||
|
for opt in SQUASHFS $GLOBAL_STAGE1_KCONFIG; do
|
||
|
configured "$opt=[my]" || fatal "stage1 kernel must have $opt support"
|
||
|
done
|
||
|
|
||
|
verbose "GLOBAL_SQUASHFS: $GLOBAL_SQUASHFS"
|
||
|
|
||
|
options()
|
||
|
{
|
||
|
# squashfs options: not really neccessary but better than none
|
||
|
# NB: this config file should be carried over into install2
|
||
|
if [ "$GLOBAL_SQUASHFS" != "fast" ] && configured "SQUASHFS_XZ=y"; then
|
||
|
# NB: the decompression filter overhead might hurt
|
||
|
# NB: there are arm, powerpc and some other filters too
|
||
|
if [ "$GLOBAL_SQUASHFS" = "tight" ] && configured "X86"; then
|
||
|
XZ_OPTS="$XZ_OPTS -b 524288 -Xbcj x86"
|
||
|
else
|
||
|
XZ_OPTS="$XZ_OPTS -b 262144"
|
||
|
fi
|
||
|
echo "$XZ_OPTS"
|
||
|
else # go fast, or even faster if possible
|
||
|
if configured "SQUASHFS_LZO=y"; then
|
||
|
echo "$LZO_OPTS"
|
||
|
else # safe default
|
||
|
echo "$GZ_OPTS"
|
||
|
fi
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
echo "PACK_SQUASHFS_OPTS=-no-recovery `options`" > /.image/squashcfg.mk
|