From 40844e763d6b5e5c4369e29970ffeb3df7bcdf06 Mon Sep 17 00:00:00 2001 From: timoxa0 Date: Mon, 12 Aug 2024 16:42:35 +0500 Subject: [PATCH] Add debian build script --- buildDebianGnome.sh | 123 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 123 insertions(+) create mode 100755 buildDebianGnome.sh diff --git a/buildDebianGnome.sh b/buildDebianGnome.sh new file mode 100755 index 0000000..d8a8dec --- /dev/null +++ b/buildDebianGnome.sh @@ -0,0 +1,123 @@ +#!/usr/bin/env bash + +# Restart as root +if [ "$(id -u)" != "0" ]; then + sudo -E "$0" "$@" + exit $? +fi + +source common.sh + +# Ensure that debootstarp is installed +which debootstrap > /dev/null 2>&1 || { + log_err "debootstrap not found" + exit 1 +} + +# Settings +VERSION="bookworm" +IMAGE_NAME="Debian12Gnome" + +# Begin script + +log "Start creating image: $IMAGE_NAME" +create_image "$IMAGE_NAME" +rootdir="$(mount_image "$IMAGE_NAME")" + +# Fetch base system +log "Fetching base system" +debootstrap --arch arm64 --exclude=pulseaudio "$VERSION" "$rootdir" || { + detach_chroot "$rootdir" + umount_image "$rootdir" + rm "$IMAGE_NAME" + rm -rf "$rootdir" + exit 1 +} + +prepare_chroot "$rootdir" +export DEBIAN_FRONTEND=noninteractive + +# Setup inet +log "Setting up chroot" +echo "nameserver 1.1.1.1" > "$rootdir/etc/resolv.conf" +echo "xiaomi-nabu" > "$rootdir/etc/hostname" +echo "127.0.0.1 localhost +127.0.1.1 xiaomi-nabu" > "$rootdir/etc/hosts" + +# Update system and install desktop +log "Updating system and installing needed packages" +chroot "$rootdir" apt update +chroot "$rootdir" apt upgrade -y +chroot "$rootdir" apt install -y gnome-core bash-completion sudo ssh nano systemd-zram-generator + +# Install nabu specific packages +log "Installing nabu kernel, modules, firmwares and userspace daemons" +cp ./packages/*.deb "$rootdir/opt/" +chroot "$rootdir" bash -c "dpkg -i /opt/*.deb" +chroot "$rootdir" bash -c "rm /opt/*.deb" + +# Clean apt cache +log "Cleaning apt cache" +chroot "$rootdir" apt clean + +# Configure dynamic linker run-time bindings +log "Configuring dynamic linker run-time bindings" +chroot "$rootdir" ldconfig + +# Enable userspace daemons +log "Generating fstab" +log "Enabling userspace daemons" +chroot "$rootdir" systemctl enable qrtr-ns pd-mapper tqftpserv rmtfs systemd-zram-setup@zram0.service + +gen_fstab "$rootdir" + +# Enable zram +log "Enabling zram" +cp ./drop/zram-generator.conf "$rootdir/etc/systemd/zram-generator.conf" + +# +++ Rotate gdm +log "Configuring gdm and gnome" +mkdir -p "$rootdir/etc/skel/.config" +echo ' + + + 0 + 0 + 2 + yes + + right + no + + + + DSI-1 + unknown + unknown + unknown + + + 1600 + 2560 + 104.000 + + + + + +' > "$rootdir/etc/skel/.config/monitors.xml" +chroot "$rootdir" bash -c 'mkdir ~Debian-gdm/.config/' +chroot "$rootdir" bash -c 'chown Debian-gdm: ~Debian-gdm/.config/' +chroot "$rootdir" bash -c 'chmod 700 ~Debian-gdm/.config' +chroot "$rootdir" bash -c 'cp /etc/skel/.config/monitors.xml ~Debian-gdm/.config/' +chroot "$rootdir" bash -c 'chmod 644 ~Debian-gdm/.config/monitors.xml' +chroot "$rootdir" bash -c 'chown Debian-gdm: ~Debian-gdm/.config/monitors.xml' +# --- + +# Finish image +log "Finishing image" +detach_chroot "$rootdir" +umount_image "$rootdir" +trim_image "$IMAGE_NAME" + +log "Stop creating image: $IMAGE_NAME"