mirror of
https://git.launchpad.net/livecd-rootfs
synced 2025-04-07 08:13:37 +00:00
subiquity: easier bridge kernel setup
For subiquity installs, make it easier to enable bridge kernel, just a boolean to set true/false. Don't enable yet though.
This commit is contained in:
parent
362c5d1f19
commit
d2050181d4
@ -78,6 +78,14 @@ BINARY_HOOKS=
|
||||
|
||||
APT_OPTIONS=" --yes -oDebug::pkgDepCache::AutoInstall=yes "
|
||||
|
||||
# Should we attempt to offer both the bridge and default kernel?
|
||||
USE_BRIDGE_KERNEL=false
|
||||
# Why are we using bridge kernel? Value is ignored for USE_BRIDGE_KERNEL=false.
|
||||
# Possible reasons are zfs, drivers.
|
||||
BRIDGE_KERNEL_REASONS="zfs,drivers"
|
||||
# When building install-sources, what kernel is the default?
|
||||
DEFAULT_KERNEL=
|
||||
|
||||
PASSES_TO_LAYERS=false
|
||||
_PASSES_TO_LAYERS= # Stores the initial value of PASSES_TO_LAYERS
|
||||
PASSES=
|
||||
@ -240,28 +248,6 @@ add_snap ()
|
||||
done
|
||||
}
|
||||
|
||||
write_kernel_yaml () {
|
||||
# Generate the kernel.yaml fragment used as input for
|
||||
# update-source-catalog. Handles default kernel specification.
|
||||
# $1 kernel metapackage name
|
||||
local metapkg="$1"
|
||||
cat <<-EOF > config/kernel.yaml
|
||||
kernel:
|
||||
default: "$metapkg"
|
||||
EOF
|
||||
|
||||
# To specify fallback to a bridge kernel, construct a kernel.yaml
|
||||
# with the following:
|
||||
#
|
||||
# kernel:
|
||||
# default: foo
|
||||
# bridge: bar
|
||||
# bridge_reasons: [zfs, drivers]
|
||||
#
|
||||
# If an install is using zfs or "drivers", use the bridge kernel, else
|
||||
# use the default kernel.
|
||||
}
|
||||
|
||||
get_seeded_languages () {
|
||||
# We assume any seed name of the form ${no_lang_seed}-${foo} where
|
||||
# ${foo} is only two or three characters long is a default language
|
||||
@ -812,7 +798,7 @@ do_layered_desktop_image() {
|
||||
EOF
|
||||
fi
|
||||
|
||||
write_kernel_yaml "linux-$KERNEL_FLAVOURS"
|
||||
DEFAULT_KERNEL="linux-$KERNEL_FLAVOURS"
|
||||
|
||||
if [ "$LOCALE_SUPPORT" != none ]; then
|
||||
/usr/share/livecd-rootfs/checkout-translations-branch \
|
||||
@ -1105,7 +1091,7 @@ case $PROJECT in
|
||||
esac
|
||||
NO_SQUASHFS_PASSES=ubuntu-server-minimal.ubuntu-server.installer.$flavor.netboot
|
||||
|
||||
write_kernel_yaml $kernel_metapkg
|
||||
DEFAULT_KERNEL="$kernel_metapkg"
|
||||
/usr/share/livecd-rootfs/checkout-translations-branch \
|
||||
https://git.launchpad.net/subiquity po config/catalog-translations
|
||||
;;
|
||||
@ -1133,7 +1119,8 @@ case $PROJECT in
|
||||
add_package base.live linux-image-generic
|
||||
|
||||
# Core installer images use the pc-kernel snap for its kernel
|
||||
write_kernel_yaml "snap:pc-kernel"
|
||||
USE_BRIDGE_KERNEL=false
|
||||
DEFAULT_KERNEL="snap:pc-kernel"
|
||||
|
||||
/usr/share/livecd-rootfs/checkout-translations-branch \
|
||||
https://git.launchpad.net/subiquity po config/catalog-translations
|
||||
@ -1399,6 +1386,9 @@ echo "BUILDSTAMP=\"$NOW\"" >> config/binary
|
||||
echo "SUBPROJECT=\"${SUBPROJECT:-}\"" >> config/binary
|
||||
echo "LB_DISTRIBUTION=\"$SUITE\"" >> config/binary
|
||||
echo "CHANNEL=\"${CHANNEL:-}\"" >> config/binary
|
||||
echo "USE_BRIDGE_KERNEL=\"${USE_BRIDGE_KERNEL:-}\"" >> config/binary
|
||||
echo "BRIDGE_KERNEL_REASONS=\"${BRIDGE_KERNEL_REASONS:-}\"" >> config/binary
|
||||
echo "DEFAULT_KERNEL=\"${DEFAULT_KERNEL:-}\"" >> config/binary
|
||||
|
||||
if [ "${IMAGE_HAS_HARDCODED_PASSWORD:-}" = "1" ]; then
|
||||
echo IMAGE_HAS_HARDCODED_PASSWORD=1 >> config/binary
|
||||
|
@ -1337,3 +1337,39 @@ reset_snapd_state() {
|
||||
chroot "$rootdir" apt-get install --reinstall -y snapd
|
||||
teardown_mountpoint "$rootdir"
|
||||
}
|
||||
|
||||
write_kernel_yaml() {
|
||||
# Generate the kernel.yaml fragment used as input for
|
||||
# update-source-catalog.
|
||||
#
|
||||
# the newer kernel is the default kernel!
|
||||
# bridge is the older, fallback kernel.
|
||||
# $1 string, default kernel, such as "linux-generic"
|
||||
# $2 string with comma seperated list of bridge reasons,
|
||||
# usually "zfs,drivers"
|
||||
local default="$1"
|
||||
local reasons="$2"
|
||||
|
||||
cat <<EOF > config/kernel.yaml
|
||||
kernel:
|
||||
default: "$default"
|
||||
EOF
|
||||
|
||||
# To specify fallback to a bridge kernel, construct a kernel.yaml
|
||||
# with the following:
|
||||
#
|
||||
# kernel:
|
||||
# default: linux-foo
|
||||
# bridge: linux-foo-brg-YY.MM
|
||||
# bridge_reasons: [zfs, drivers]
|
||||
#
|
||||
# If an install is using zfs or "drivers", use the bridge kernel, else
|
||||
# use the default kernel.
|
||||
|
||||
if $USE_BRIDGE_KERNEL ; then
|
||||
cat <<EOF >> config/kernel.yaml
|
||||
bridge: "${default}-brg-$(release_ver)"
|
||||
bridge_reasons: [$reasons]
|
||||
EOF
|
||||
fi
|
||||
}
|
||||
|
@ -204,7 +204,8 @@ do
|
||||
build_layered_squashfs "${_PASS}" ${*}
|
||||
done
|
||||
|
||||
if [ -f config/kernel.yaml ]; then
|
||||
if [ -n "$DEFAULT_KERNEL" -a -f livecd.${PROJECT_FULL}.install-sources.yaml ]; then
|
||||
write_kernel_yaml "$DEFAULT_KERNEL" "$BRIDGE_KERNEL_REASONS"
|
||||
/usr/share/livecd-rootfs/update-source-catalog merge \
|
||||
--output livecd.${PROJECT_FULL}.install-sources.yaml \
|
||||
--template config/kernel.yaml
|
||||
|
Loading…
x
Reference in New Issue
Block a user