mirror of
git://soft.sys114.com/odroid-stamper
synced 2025-12-19 01:48:42 +09:00
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:
9
custom/mainsail/config
Normal file
9
custom/mainsail/config
Normal 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
2
custom/mainsail/packages
Normal file
@@ -0,0 +1,2 @@
|
||||
mainsailos
|
||||
klipper-mcu
|
||||
46
default
46
default
@@ -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:
|
||||
|
||||
@@ -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
40
menu
@@ -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
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user