Add to use custom OS configuration

-- custom/<Name>/config     -> OS image configuration
                    /packages   -> package list to install
                    /fixups/*   -> Directory to run fix up OS image

Signed-off-by: Dongjin Kim <tobetter@gmail.com>
Change-Id: Ibc182c03a38ba82f411c1fc5a5ebd5c2254c5609
This commit is contained in:
Dongjin Kim
2021-01-27 18:37:09 +09:00
parent 45e464b5b4
commit 9b64051b12
6 changed files with 76 additions and 40 deletions

9
custom/mainsail/config Normal file
View File

@@ -0,0 +1,9 @@
OSNAME=mainsail
BOARD=odroidc4
ARCH=arm64
DISTRO=focal
FLAVOUR=server
TARGET_DEVICE=/srv/workspace/odroid-stamper/binary.img
DEFAULT_USER=odroid
DEFAULT_PASSWD=odroid
ALLOW_ROOT_LOGIN=false

2
custom/mainsail/packages Normal file
View File

@@ -0,0 +1,2 @@
mainsailos
klipper-mcu

46
default
View File

@@ -78,4 +78,50 @@ ALLOW_ROOT_LOGIN=$(allow_root_login)
__EOF
}
distro() {
case $1 in
bionic | disco | focal | groovy)
echo "ubuntu"
;;
buster | bullseye)
echo "debian"
;;
*)
echo "unknown"
;;
esac
}
distro_version() {
case $1 in
bionic)
echo "18.04"
;;
disco)
echo "19.04"
;;
focal)
echo "20.04"
;;
groovy)
echo "20.10"
;;
buster)
echo "buster"
;;
bullseye)
echo "bullseye"
;;
esac
}
image_file() {
if [ "x${OSNAME}" != "x" ]; then
IMAGE_FILE_PREFIX="${OSNAME}-${BOARD}"
else
IMAGE_FILE_PREFIX="$(distro ${1})-$(distro_version ${1})-${2}-${3}"
fi
echo "${IMAGE_FILE_PREFIX}-`date +%Y%m%d`"
}
# vim: set ft=sh ts=4 sw=4 expandtab:

View File

@@ -90,6 +90,11 @@ get_flavour_packages() {
pkgs="${pkgs} $(get_packages configs/${DISTRO}-${FLAVOUR}.packages)"
pkgs="${pkgs} $(get_packages boards/${BOARD}/packages)"
[ -f custom/${CUSTOMOS}/packages ] &&
pkgs="${pkgs} $(get_packages custom/${CUSTOMOS}/packages)"
echo ${pkgs}
exit 1
echo ${pkgs} | tr " " "\n" | sort | uniq | tr "\n" " "
}
@@ -189,6 +194,7 @@ do_preinstall() {
[ -d ${TOPDIR}/fixups ] && rsync -a ${TOPDIR}/fixups/* ${rootfs_mnt}/${fixups_dir}
[ -d ${WORKDIR}/fixups ] && rsync -a ${WORKDIR}/fixups/* ${rootfs_mnt}/${fixups_dir}
[ -d custom/${CUSTOMOS}/fixups ] && rsync -a custom/${CUSTOMOS}/fixups/* ${rootfs_mnt}/${fixups_dir}
FIXUPS=`ls -A1 ${rootfs_mnt}${fixups_dir}/*`
for fixup in ${FIXUPS}; do

40
menu
View File

@@ -108,46 +108,9 @@ do_menu_default_user_passwd() {
${DEFAULT_PASSWD} 2>&1 >/dev/tty)
}
distro() {
case $1 in
bionic | disco | focal | groovy)
echo "ubuntu"
;;
buster | bullseye)
echo "debian"
;;
*)
echo "unknown"
;;
esac
}
distro_version() {
case $1 in
bionic)
echo "18.04"
;;
disco)
echo "19.04"
;;
focal)
echo "20.04"
;;
groovy)
echo "20.10"
;;
buster)
echo "buster"
;;
bullseye)
echo "bullseye"
;;
esac
}
do_menu() {
while true; do
IMAGE_FILE=$(distro ${DISTRO})-$(distro_version ${DISTRO})-${FLAVOUR}-${BOARD}-`date +%Y%m%d`
IMAGE_FILE=$(image_file ${DISTRO} ${FLAVOUR} ${BOARD})
CHOICE=$(dialog --clear --backtitle "ODROID-STAMPER" \
--title "Custom Ubuntu Recipe" \
--extra-button --extra-label "Done" \
@@ -164,7 +127,6 @@ do_menu() {
if [ ${ret} = 3 ]; then
clear
default_config ${DEFAULT_CONFIG}
OUTFILE=${out_dir}/${IMAGE_FILE}
break
elif [ ${ret} = 0 ]; then
case ${CHOICE} in

View File

@@ -2,10 +2,13 @@
#set -x
[ -z "$1" ] || CUSTOMOS=${1}
ODROID_STAMPER_DIR="/usr/share/odroid-stamper"
TOPDIR=${ODROID_STAMPER_CHECKOUT:-${ODROID_STAMPER_DIR}}
WORKDIR=$PWD
RUN_MENU=true
DEFAULT_CONFIG=${WORKDIR}/.config
@@ -16,13 +19,21 @@ out_dir=${WORKDIR}
. ${TOPDIR}/default
. ${TOPDIR}/functions
if [ -f ${TOPDIR}/custom/${CUSTOMOS}/config ]; then
cp -f ${TOPDIR}/custom/${CUSTOMOS}/config ${DEFAULT_CONFIG} || exit 1
RUN_MENU=false
fi
if [ ! -f ${DEFAULT_CONFIG} ]; then
default_config ${DEFAULT_CONFIG}
fi
. ${DEFAULT_CONFIG}
do_menu
[ "${RUN_MENU}" = "true" ] && do_menu
[ "x${IMAGE_FILE}" = "x" ] && IMAGE_FILE=$(image_file ${DISTRO} ${FLAVOUR} ${BOARD})
OUTFILE=${out_dir}/${IMAGE_FILE}
[ -f ${TOPDIR}/configs/${DISTRO}-${FLAVOUR} ] && \
. ${TOPDIR}/configs/${DISTRO}-${FLAVOUR}