summaryrefslogtreecommitdiff
path: root/functions/defaults.sh
diff options
context:
space:
mode:
authorAdrian Gibanel Lopez <adrian.gibanel@btactic.com>2017-12-15 17:22:57 +0000
committeradrian15 <adrian15sgd@gmail.com>2019-03-14 23:06:31 +0100
commit80aa5ab61100b6b11ae47984bab9a2eb988074f5 (patch)
treeece51839c638892ebbdb2358200fd99268f90eaf /functions/defaults.sh
parenta410b8345de730b947d949f387730109f902c6c8 (diff)
downloadvyos-live-build-80aa5ab61100b6b11ae47984bab9a2eb988074f5.tar.gz
vyos-live-build-80aa5ab61100b6b11ae47984bab9a2eb988074f5.zip
Fixed foreign architecture package support to linux kernel flavours
Before Stretch there was an special amd64 kernel in the i386 arch repo. So if you wanted to install an amd64 kernel alongside an i386 system you did not need an additional arch repo. Debian added multiarch support. That way you can install library packages from multiple architectures on the same machine. So there is no longer a need for having an amd64 kernel in i386 arch repo. You can add an amd64 arch repo to an i386 arch system and fetch the amd64 kernel from the am64 arch repo. live-build can be setup to use several linux kernel flavours in a single image. So in the days previous to this patch you could issue: lb config --linux-flavours "486 amd64" to use both 486 and amd64 kernel flavours. Adding additional arch support to linux flavours poses two problems: * Packages need to have its arch suffix (e.g. amd64:amd64). If the suffix is not there apt-get insists on search amd64 kernel package on i386 arch repo and, of course, fails to find it. * The rest of the code which handles labels (bootloader config files) or installed filenames (kernel images themselves) do not use the arch suffix. This patch adds foreign architecture package support to linux kernel flavours having taken those problems into account. Practical example usage: i386 system and extra amd64 kernel. First add amd64 foreign architecture in your i386 system thanks to: dpkg --add-architecture amd64 apt-get update . Finally enable amd64 kernel from amd64 arch alongside the i386 system's 686 kernel thanks to: lb config --architectures i386 --linux-flavours "686 amd64:amd64"
Diffstat (limited to 'functions/defaults.sh')
-rwxr-xr-xfunctions/defaults.sh24
1 files changed, 16 insertions, 8 deletions
diff --git a/functions/defaults.sh b/functions/defaults.sh
index c48955104..c1ca10258 100755
--- a/functions/defaults.sh
+++ b/functions/defaults.sh
@@ -407,27 +407,27 @@ Set_defaults ()
# Setting linux flavour string
case "${LB_ARCHITECTURES}" in
arm64)
- LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-arm64}"
+ LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-arm64}"
;;
armel)
# armel will have special images: one rootfs image and many additional kernel images.
# therefore we default to all available armel flavours
- LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-marvell}"
+ LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-marvell}"
;;
armhf)
# armhf will have special images: one rootfs image and many additional kernel images.
# therefore we default to all available armhf flavours
- LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-armmp armmp-lpae}"
+ LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-armmp armmp-lpae}"
;;
amd64)
- LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-amd64}"
+ LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-amd64}"
;;
i386)
- LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-686-pae}"
+ LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-686-pae}"
;;
ia64)
@@ -438,7 +438,7 @@ Set_defaults ()
;;
*)
- LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-itanium}"
+ LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-itanium}"
;;
esac
;;
@@ -451,7 +451,7 @@ Set_defaults ()
;;
*)
- LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-powerpc64 powerpc}"
+ LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-powerpc64 powerpc}"
;;
esac
;;
@@ -464,7 +464,7 @@ Set_defaults ()
;;
*)
- LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS:-s390x}"
+ LB_LINUX_FLAVOURS_WITH_ARCH="${LB_LINUX_FLAVOURS_WITH_ARCH:-s390x}"
;;
esac
;;
@@ -475,6 +475,14 @@ Set_defaults ()
;;
esac
+ LB_LINUX_FLAVOURS=""
+ for FLAVOUR in ${LB_LINUX_FLAVOURS_WITH_ARCH}
+ do
+ ARCH_FILTERED_FLAVOUR="$(echo ${FLAVOUR} | awk -F':' '{print $1}')"
+ LB_LINUX_FLAVOURS="${LB_LINUX_FLAVOURS} ${ARCH_FILTERED_FLAVOUR}"
+ done
+
+
# Set linux packages
LB_LINUX_PACKAGES="${LB_LINUX_PACKAGES:-linux-image}"