diff --git a/.gitignore b/.gitignore index d3f17d8..f887e69 100644 --- a/.gitignore +++ b/.gitignore @@ -4,4 +4,5 @@ PrawnOS-Alpha-c201-libre-2GB* PrawnOS-*-Alpha-c201-libre-2GB* tmp.* PrawnOS-Alpha-c201-libre-2GB-git*.img +PrawnOS-Shiba-c201* PrawnOS-initramfs.cpio.gz diff --git a/makefile b/makefile index 499cb45..028b1be 100644 --- a/makefile +++ b/makefile @@ -14,10 +14,13 @@ # along with PrawnOS. If not, see . KVER=5.2.21 -ifeq ($(PRAWNOS_SUITE),) -PRAWNOS_SUITE=buster +ifeq ($(DEBIAN_SUITE),) +DEBIAN_SUITE=buster endif -OUTNAME=PrawnOS-$(PRAWNOS_SUITE)-Alpha-c201-libre-2GB.img +ifeq ($(PRAWNOS_SUITE),) +PRAWNOS_SUITE=Shiba +endif +OUTNAME=PrawnOS-$(PRAWNOS_SUITE)-c201.img BASE=$(OUTNAME)-BASE @@ -78,12 +81,12 @@ kernel: .PHONY: initramfs initramfs: - scripts/buildInitramFs.sh + scripts/buildInitramFs.sh $(BASE) #makes the base filesystem image, no kernel only if the base image isnt present .PHONY: filesystem filesystem: - [ -f $(BASE) ] || scripts/buildFilesystem.sh $(KVER) + [ -f $(BASE) ] || scripts/buildFilesystem.sh $(KVER) $(DEBIAN_SUITE) $(BASE) .PHONY: kernel_inject kernel_inject: #Targets an already built .img and swaps the old kernel with the newly compiled kernel diff --git a/resources/BuildResources/config b/resources/BuildResources/config index 6ffe6dd..ba15da5 100644 --- a/resources/BuildResources/config +++ b/resources/BuildResources/config @@ -1,6 +1,6 @@ # # Automatically generated file; DO NOT EDIT. -# Linux/arm 5.2.9-gnu Kernel Configuration +# Linux/arm 5.2.21-gnu Kernel Configuration # # @@ -33,7 +33,7 @@ CONFIG_KERNEL_GZIP=y # CONFIG_KERNEL_XZ is not set # CONFIG_KERNEL_LZO is not set # CONFIG_KERNEL_LZ4 is not set -CONFIG_DEFAULT_HOSTNAME="localhost" +CONFIG_DEFAULT_HOSTNAME="PrawnOS" CONFIG_SWAP=y CONFIG_SYSVIPC=y CONFIG_SYSVIPC_SYSCTL=y diff --git a/scripts/buildFilesystem.sh b/scripts/buildFilesystem.sh index 1d9602d..3dd2d61 100755 --- a/scripts/buildFilesystem.sh +++ b/scripts/buildFilesystem.sh @@ -33,7 +33,19 @@ then echo "No kernel version supplied" exit 1 fi +if [ -z "$2" ] +then + echo "No debian suite supplied" + exit 1 +fi +if [ -z "$3" ] +then + echo "No base file system image filename supplied" + exit 1 +fi KVER=$1 +DEBIAN_SUITE=$2 +BASE=$3 outmnt=$(mktemp -d -p `pwd`) @@ -81,14 +93,8 @@ create_image() { mount -o noatime ${2}p2 $5 } -# use buster if no suite is specified -if [ "$PRAWNOS_SUITE" = "" ] -then - PRAWNOS_SUITE=buster -fi - # create a 2GB image with the Chrome OS partition layout -create_image PrawnOS-${PRAWNOS_SUITE}-Alpha-c201-libre-2GB.img-BASE $outdev 50M 40 $outmnt +create_image $BASE $outdev 50M 40 $outmnt # use default debootstrap mirror if none is specified if [ "$PRAWNOS_DEBOOTSTRAP_MIRROR" = "" ] @@ -98,7 +104,7 @@ fi # install Debian on it export DEBIAN_FRONTEND=noninteractive -qemu-debootstrap --arch armhf $PRAWNOS_SUITE --include locales,init --keyring=$build_resources/debian-archive-keyring.gpg $outmnt $PRAWNOS_DEBOOTSTRAP_MIRROR +qemu-debootstrap --arch armhf $DEBIAN_SUITE --include locales,init --keyring=$build_resources/debian-archive-keyring.gpg $outmnt $PRAWNOS_DEBOOTSTRAP_MIRROR chroot $outmnt passwd -d root @@ -117,24 +123,24 @@ chmod +x $outmnt/*.sh #This is what https://wiki.debian.org/EmDebian/CrossDebootstrap suggests cp /etc/hosts $outmnt/etc/ cp $build_resources/sources.list $outmnt/etc/apt/sources.list -sed -i -e "s/suite/$PRAWNOS_SUITE/g" $outmnt/etc/apt/sources.list -if [ "$PRAWNOS_SUITE" != "sid" ] +sed -i -e "s/suite/$DEBIAN_SUITE/g" $outmnt/etc/apt/sources.list +if [ "$DEBIAN_SUITE" != "sid" ] then # sid doesn't have updates or security; they're present for all other suites cat $build_resources/updates.list >> $outmnt/etc/apt/sources.list - sed -i -e "s/suite/$PRAWNOS_SUITE/g" $outmnt/etc/apt/sources.list + sed -i -e "s/suite/$DEBIAN_SUITE/g" $outmnt/etc/apt/sources.list # sid doesn't have backports; it's present for all other suites cp $build_resources/backports.list $outmnt/etc/apt/sources.list.d/ - sed -i -e "s/suite/$PRAWNOS_SUITE/g" $outmnt/etc/apt/sources.list.d/backports.list + sed -i -e "s/suite/$DEBIAN_SUITE/g" $outmnt/etc/apt/sources.list.d/backports.list #setup apt pinning cp $build_resources/backports.pref $outmnt/etc/apt/preferences.d/ - sed -i -e "s/suite/$PRAWNOS_SUITE/g" $outmnt/etc/apt/preferences.d/backports.pref + sed -i -e "s/suite/$DEBIAN_SUITE/g" $outmnt/etc/apt/preferences.d/backports.pref # Install sid (unstable) as an additional source for bleeding edge packages. cp $build_resources/sid.list $outmnt/etc/apt/sources.list.d/ #setup apt pinning cp $build_resources/sid.pref $outmnt/etc/apt/preferences.d/ fi -if [ "$PRAWNOS_SUITE" = "buster" ] +if [ "$DEBIAN_SUITE" = "buster" ] then # Install bullseye (testing) as an additional source cp $build_resources/bullseye.list $outmnt/etc/apt/sources.list.d/ diff --git a/scripts/buildInitramFs.sh b/scripts/buildInitramFs.sh index 9dbd095..a9e9be5 100755 --- a/scripts/buildInitramFs.sh +++ b/scripts/buildInitramFs.sh @@ -22,11 +22,16 @@ outmnt=$(mktemp -d -p `pwd`) outdev=/dev/loop7 -KVER=$1 +if [ -z "$1" ] +then + echo "No base file system image filename supplied" + exit 1 +fi +BASE=$1 ROOT_DIR=`pwd` build_resources=$ROOT_DIR/resources/BuildResources -if [ ! -f $ROOT_DIR/PrawnOS-*-c201-libre-2GB.img-BASE ] +if [ ! -f $ROOT_DIR/$BASE ] then echo "No base filesystem, run 'make filesystem' first" exit 1 @@ -52,7 +57,7 @@ trap cleanup INT TERM EXIT [ ! -d build ] && mkdir build -losetup -P $outdev $ROOT_DIR/PrawnOS-*-c201-libre-2GB.img-BASE +losetup -P $outdev $ROOT_DIR/$BASE #mount the root filesystem mount -o noatime ${outdev}p2 $outmnt diff --git a/scripts/injectKernelIntoFS.sh b/scripts/injectKernelIntoFS.sh index e1f435a..fa19720 100755 --- a/scripts/injectKernelIntoFS.sh +++ b/scripts/injectKernelIntoFS.sh @@ -20,13 +20,15 @@ then echo "No kernel version supplied" exit 1 fi -KVER=$1 - if [ -z "$2" ] then - echo "No image filesystem image supplied" + echo "No filesystem image supplied" exit 1 fi + +KVER=$1 +OUTNAME=$2 + outmnt=$(mktemp -d -p `pwd`) outdev=/dev/loop7 @@ -52,7 +54,7 @@ trap cleanup INT TERM EXIT #Mount the build filesystem image -losetup -P $outdev $2 +losetup -P $outdev $OUTNAME #mount the root filesystem mount -o noatime ${outdev}p2 $outmnt