From 7971cb0aa3e517a53f0ce6d3ee9bc3179041ccb8 Mon Sep 17 00:00:00 2001 From: John Klug Date: Wed, 25 May 2022 17:12:18 -0500 Subject: mLinux 6 --- setup.sh | 111 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100755 setup.sh (limited to 'setup.sh') diff --git a/setup.sh b/setup.sh new file mode 100755 index 0000000..c0b6230 --- /dev/null +++ b/setup.sh @@ -0,0 +1,111 @@ +#!/usr/bin/env bash + +set -e +BUILDCONF=conf/local.conf +BBLAYERS=conf/bblayers.conf + +if [ "$1" != "--update" ]; then + echo "" + echo "Setting up git hooks..." + ln -s ../../scripts/git-hooks/post-merge .git/hooks/post-merge || true + ln -s ../../scripts/git-hooks/post-checkout .git/hooks/post-checkout || true + ln -s ../../scripts/git-hooks/pre-commit .git/hooks/pre-commit || true + ln -s ../../scripts/git-hooks/pre-push .git/hooks/pre-push || true +fi + +echo "" +echo "Updating git submodules..." +git submodule update --init --recursive + +# Apply patches +for f in $(ls patches) ; do + if patch --dry-run -Np1 < patches/$f ; then + patch -Np1 < patches/$f + fi +done + +# Remove yocto-linux bbappend +rm -f layers/meta-virtualization/recipes-kernel/linux/linux-yocto_*.bbappend + +if [ "$1" != "--update" ]; then + if [ ! -d build/conf ]; then + mkdir -p build/conf + fi + + echo "" + response=y + test -f ${BUILDCONF} && read -p "Overwrite ${BUILDCONF} with defaults? (y/N) " response + if [[ $response =~ ^y$ || $response =~ ^yes$ ]]; then + echo "Creating default bitbake configuration..." + cp layers/meta-mlinux/contrib/local.conf conf/ + else + echo "Leaving existing ${BUILDCONF} alone." + fi + + root_pwd_hash=$(egrep '^MTADM_PASSWORD_HASH[[:space:]]*=' ${BUILDCONF} || true) + if ((${#root_pwd_hash} == 0)) ; then + if [[ "$MTADM_PASSWORD" ]] ; then + pass=$MTADM_PASSWORD + else + pass=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 2>/dev/null | head -c${1:-8};echo) + fi + salt="$(openssl rand -base64 128 2>/dev/null)" + hash="$(openssl passwd -1 -salt "$salt" "$pass")" + echo "MTADM_PASSWORD = \"$pass\"" >password.txt + echo "HASH = \"$hash\"" >>password.txt + sed -ri "/MTADM_PASSWORD_HASH[[:space:]]=/d" ${BUILDCONF} || true + echo "MTADM_PASSWORD_HASH = \"$hash\"" >>${BUILDCONF} + sed -ri "/MTADM_PASSWORD[[:space:]]=/d" ${BUILDCONF} || true + echo "MTADM_PASSWORD = \"$pass\"" >>${BUILDCONF} + fi + + echo "" + response=y + test -f $BBLAYERS && read -p "Overwrite $BBLAYERS with defaults? (y/N) " response + if [[ $response =~ ^y$ || $response =~ ^yes$ ]]; then + echo "Copying default bblayers..." + OEROOT=$(pwd) + sed -e "s?__OEROOT__?${OEROOT}?" conf/bblayers.conf.mlinux >$BBLAYERS + else + echo "Leaving existing $BBLAYERS alone." + fi + + echo "" + echo "Creating user-layer..." + mkdir -p layers/user-layer/conf + mkdir -p layers/user-layer/recipes-core + + echo "" + response=y + test -f layers/user-layer/conf/layer.conf && read -p "Overwrite layers/user-layer/conf/layer.conf with defaults? (y/N) " response + if [[ $response =~ ^y$ || $response =~ ^yes$ ]]; then + echo "Creating default user-layer configuration..." + cp layers/meta-mlinux/contrib/user-layer.conf layers/user-layer/conf/layer.conf + else + echo "Leaving existing layers/user-layer/conf/layer.conf alone." + fi + + echo "" + echo "Creating directory structure..." + mkdir -p build + mkdir -p downloads +fi + +echo "" +echo "Setup Done." +echo "" +echo "oe-init-build-env will set the current directory to build" +echo "One must be within the build tree to run bitbake." +echo "" +echo "To build mlinux-base-image:" +echo " source oe-init-build-env" +echo " machine=mtcdt bitbake mlinux-base-image" +echo " or (requires Redpine sources)" +echo " machine=mtcdt bitbake mlinux-commisioning-image" +echo "" +echo "To build mlinux-mtcap-image:" +echo " source oe-init-build-env" +echo " MACHINE=mtcap bitbake mlinux-mtcap-image" +echo " or" +echo " MACHINE=mtcap bitbake mlinux-mtcap-commisioning-image" + -- cgit v1.2.3