This commit is contained in:
Your Name 2024-11-18 20:51:37 -07:00
parent 42d6604c81
commit 275712ddef

View File

@ -44,19 +44,19 @@ AUTO_DECRYPT='False'
DISK_PASSWORD='123456' DISK_PASSWORD='123456'
############################## ##############################
FLATPAKS+=() FLATPAKS+=()
SERVICES+=(cronie libvirtd smartd cronie cups NetworkManager dev-zram0.swap) SERVICES+=(cronie libvirtd smartd cronie cups NetworkManager zram_swap.service)
MAKEOPTS="-j$(cat /proc/cpuinfo | grep -i processor | grep -vi 'model' | wc -l)" MAKEOPTS="-j$(cat /proc/cpuinfo | grep -i processor | grep -vi 'model' | wc -l)"
ROOT_PARTITION_SIZE="30GB" ROOT_PARTITION_SIZE="30GB"
FEATURES="-pid-sandbox getbinpkg -binpkg-request-signature" FEATURES="-pid-sandbox getbinpkg -binpkg-request-signature"
EMERGE_DEFAULT_OPTS="--getbinpkg " EMERGE_DEFAULT_OPTS=" --getbinpkg "
#USEFLAG CONFIGURATION #USEFLAG CONFIGURATION
USE_FLAGS=" systemd-boot -webengine jumbo-build hwaccel -telemetry dist-kernel postscript webchannel qml -gpm plasma luks cryptsetup kernel-install boot proprietary-codecs kernel-install gles2 pulseaudio keeshare vpx bluray libaom libdrm libilbc libplacebo libsoxr libv4l libxml2 lv2 openh264 encode iconv ladspa libass libcaca mp3 openal opus theora v4l vorbis xvid x264 gstreamer wayland alsa X sound-server screencast systemd firmware btrfs policykit networkmanager zlib pipewire minizip network browser " USE_FLAGS=" systemd-boot -webengine jumbo-build hwaccel -telemetry dist-kernel postscript webchannel qml -gpm plasma luks cryptsetup kernel-install boot proprietary-codecs kernel-install gles2 pulseaudio vpx bluray libaom libdrm libilbc libplacebo libsoxr libv4l libxml2 lv2 openh264 encode iconv ladspa libass libcaca mp3 openal opus theora v4l vorbis xvid x264 gstreamer wayland alsa X sound-server screencast systemd firmware btrfs policykit networkmanager zlib pipewire minizip network "
VIDEO_CARDS="amdgpu radeon radeonsi" VIDEO_CARDS="amdgpu radeon radeonsi"
# #
#PACKAGE CONFIGURATION #PACKAGE CONFIGURATION
BASE_PACKAGES=" sys-power/acpid app-arch/zip dev-python/virtualenv sys-apps/flatpak net-misc/nyx app-emulation/virt-manager sys-power/powertop net-vpn/tor app-shells/bash-completion sys-apps/fwupd sys-power/cpupower net-misc/nextcloud-client media-libs/gexiv2 app-vim/airline mail-mta/postfix app-admin/sysstat sys-apps/smartmontools sys-process/cronie net-fs/nfs-utils net-firewall/nftables dev-python/pip sys-fs/inotify-tools net-analyzer/nmap app-misc/screen app-portage/gentoolkit sys-fs/dosfstools app-admin/sudo sys-apps/systemd sys-apps/zram-generator app-eselect/eselect-repository dev-vcs/git sys-block/parted sys-block/zram-init sys-process/btop net-vpn/wireguard-tools app-editors/vim app-misc/fastfetch net-misc/yt-dlp sys-fs/btrfs-progs net-print/cups " BASE_PACKAGES=" sys-power/acpid app-arch/zip dev-python/virtualenv sys-apps/flatpak net-misc/nyx app-emulation/virt-manager sys-power/powertop net-vpn/tor app-shells/bash-completion sys-power/cpupower net-misc/nextcloud-client media-libs/gexiv2 app-vim/airline mail-mta/postfix app-admin/sysstat sys-apps/smartmontools sys-process/cronie net-fs/nfs-utils net-firewall/nftables dev-python/pip sys-fs/inotify-tools net-analyzer/nmap app-misc/screen app-portage/gentoolkit sys-fs/dosfstools app-admin/sudo sys-apps/systemd sys-block/zram-init app-eselect/eselect-repository dev-vcs/git sys-block/parted sys-process/btop net-vpn/wireguard-tools app-editors/vim app-misc/fastfetch net-misc/yt-dlp sys-fs/btrfs-progs net-print/cups "
#FIX=" dev-libs/libappindicator" #FIX=" dev-libs/libappindicator"
DESKTOP_APPS=" kde-apps/kcalc kde-apps/ark kde-frameworks/karchive net-im/signal-desktop-bin kde-apps/okular kde-apps/spectacle kde-apps/dolphin konsole kde-plasma/plasma-meta firefox-bin app-office/libreoffice-bin gui-libs/xdg-desktop-portal-wlr sys-apps/xdg-desktop-portal dev-util/android-tools media-video/obs-studio media-video/handbrake xfce-base/thunar app-editors/vscodium media-video/vlc app-admin/keepassxc media-fonts/fontawesome media-gfx/krita " DESKTOP_APPS=" firefox-bin kde-apps/kcalc kde-apps/ark kde-frameworks/karchive net-im/signal-desktop-bin kde-apps/okular kde-apps/spectacle kde-apps/dolphin konsole kde-plasma/plasma-meta app-office/libreoffice-bin gui-libs/xdg-desktop-portal-wlr sys-apps/xdg-desktop-portal dev-util/android-tools media-video/obs-studio media-video/handbrake xfce-base/thunar kde-apps/kate media-video/vlc media-fonts/fontawesome media-gfx/krita "
# #
PACKAGES="$BASE_PACKAGES $DESKTOP_APPS" PACKAGES="$BASE_PACKAGES $DESKTOP_APPS"
TMPFS_SIZE="32G" TMPFS_SIZE="32G"
@ -361,7 +361,7 @@ liveOSrestore() {
mount $LIVE_OS_DM /tmp/live mount $LIVE_OS_DM /tmp/live
cd /tmp/live/$LIVE_OS_SUBVOL cd /tmp/live/$LIVE_OS_SUBVOL
rsync -a --delete . --exclude=/var/lib/docker --exclude=/var/db/repos/* --exclude=/var/lib/systemd/coredump/* --exclude=/var/cache/* --exclude=home/* --exclude=.snapshots/* --exclude=sys/* --exclude=dev/* --exclude=proc/* --exclude=run/* $TARGET/ rsync -a --delete . --exclude=/var/cache --exclude=/var/notmpfs --exclude=/var/lib/docker --exclude=/var/db/repos/* --exclude=/var/lib/systemd/coredump/* --exclude=/var/cache/* --exclude=home/* --exclude=.snapshots/* --exclude=sys/* --exclude=dev/* --exclude=proc/* --exclude=run/* $TARGET/
fstab fstab
cp -f $SCRIPT/gentoo.sh $TARGET/usr/bin/ cp -f $SCRIPT/gentoo.sh $TARGET/usr/bin/
echo "[Copying Boot Files ]" echo "[Copying Boot Files ]"
@ -374,7 +374,7 @@ liveOSrestore() {
echo 'bash /usr/bin/gentoo.sh accounts' >>$TARGET/setup.sh echo 'bash /usr/bin/gentoo.sh accounts' >>$TARGET/setup.sh
echo 'bash /usr/bin/gentoo.sh btrfs-tweaks' >>$TARGET/setup.sh echo 'bash /usr/bin/gentoo.sh btrfs-tweaks' >>$TARGET/setup.sh
echo 'bash /usr/bin/gentoo.sh hibernate' >>$TARGET/setup.sh echo 'bash /usr/bin/gentoo.sh hibernate' >>$TARGET/setup.sh
echo "chown -R $USER:$USER $TARGET/home/$USER" >>$TARGET/setup.sh
chmod +x $TARGET/usr/bin/gentoo.sh chmod +x $TARGET/usr/bin/gentoo.sh
chmod +x $TARGET/setup.sh chmod +x $TARGET/setup.sh
chroot $TARGET bash /setup.sh chroot $TARGET bash /setup.sh
@ -390,7 +390,7 @@ liveOSrestore() {
echo echo
echo "Skipping User Tweaks" echo "Skipping User Tweaks"
fi fi
chown -R $USER:$USER $TARGET/home/$USER
cd cd
umount /tmp/live umount /tmp/live
#unmount #unmount
@ -424,20 +424,19 @@ btrfs_filesytem() {
} }
userTweaks() { userTweaks() {
mkdir $TARGET/home/$USER/.mozilla
mkdir -p $TARGET/home/$USER/Documents/keys/keepass mkdir -p $TARGET/home/$USER/Documents/keys/keepass
mkdir -p $TARGET/home/$USER/dotfiles mkdir -p $TARGET/home/$USER/dotfiles
mkdir -p $TARGET/home/$USER/server mkdir -p $TARGET/home/$USER/server
mkdir -p $TARGET/home/$USER/.config/Exodus mkdir -p $TARGET/home/$USER/.config/Exodus
mkdir -p $TARGET/home/$USER/.mozilla
mkdir -p $TARGET/home/$USER/.local/share/fonts mkdir -p $TARGET/home/$USER/.local/share/fonts
$TARGET/home/$USER/.local/share/fonts/
cp -f /home/$USER/.bash* $TARGET/home/$USER/ cp -f /home/$USER/.bash* $TARGET/home/$USER/
rsync -av --delete /home/$USER/.mozilla/ $TARGET/home/$USER/.mozilla/
rsync -av --delete /home/$USER/server/ $TARGET/home/$USER/server/ rsync -av --delete /home/$USER/server/ $TARGET/home/$USER/server/
rsync -av --delete /home/$USER/.local/share/fonts/ $TARGET/home/$USER/.local/share/fonts/ rsync -av --delete /home/$USER/.local/share/fonts/ $TARGET/home/$USER/.local/share/fonts/
rsync -av --delete /home/$USER/.config/Exodus/ $TARGET/home/$USER/.config/Exodus/ rsync -av --delete /home/$USER/.config/Exodus/ $TARGET/home/$USER/.config/Exodus/
rsync -av --delete /home/$USER/.mozilla/ $TARGET/home/$USER/.mozilla/
rsync -av --delete /home/$USER/.config/autostart/ $TARGET/home/$USER/.config/autostart/ rsync -av --delete /home/$USER/.config/autostart/ $TARGET/home/$USER/.config/autostart/
rsync -av --delete /home/$USER/Documents/keys/keepass/ $TARGET/home/$USER/Documents/keys/keepass/ rsync -av --delete /home/$USER/Documents/keys/keepass/ $TARGET/home/$USER/Documents/keys/keepass/
rsync -av --delete /home/$USER/dotfiles/ $TARGET/home/$USER/dotfiles/ rsync -av --delete /home/$USER/dotfiles/ $TARGET/home/$USER/dotfiles/
@ -447,8 +446,17 @@ userTweaks() {
} }
services() { services() {
echo '[zram0]' >/etc/systemd/zram-generator.conf echo '[Unit]' > /usr/lib/systemd/system/zram_swap.service
echo 'zram-size = ram * 2' >>/etc/systemd/zram-generator.conf echo 'Description=swap with zram' >> /usr/lib/systemd/system/zram_swap.service
echo 'DefaultDependencies=no' >> /usr/lib/systemd/system/zram_swap.service
echo 'Before=swap.target' >> /usr/lib/systemd/system/zram_swap.service
echo '[Service]' >> /usr/lib/systemd/system/zram_swap.service
echo 'Type=oneshot' >> /usr/lib/systemd/system/zram_swap.service
echo 'RemainAfterExit=true' >> /usr/lib/systemd/system/zram_swap.service
echo 'ExecStart=/bin/sh -c "exec /sbin/zram-init -p 32767 -s2 -azstd -Lzram_swap 32000 "' >> /usr/lib/systemd/system/zram_swap.service
echo 'ExecStop=/sbin/zram-init 0' >> /usr/lib/systemd/system/zram_swap.service
echo '[Install]' >> /usr/lib/systemd/system/zram_swap.service
echo 'WantedBy=swap.target' >> /usr/lib/systemd/system/zram_swap.service
for i in "${SERVICES[@]}"; do for i in "${SERVICES[@]}"; do
systemctl enable --now $i systemctl enable --now $i
@ -487,8 +495,9 @@ fstab() {
echo "UUID=$(/sbin/blkid -s UUID -o value $ROOT_MAPPER_NAME) /var/lib/libvirt btrfs noatime,nodiratime,autodefrag,$COMPRESSION,subvol=@libvirt 0 1" >>$TARGET/etc/fstab echo "UUID=$(/sbin/blkid -s UUID -o value $ROOT_MAPPER_NAME) /var/lib/libvirt btrfs noatime,nodiratime,autodefrag,$COMPRESSION,subvol=@libvirt 0 1" >>$TARGET/etc/fstab
echo "UUID=$(/sbin/blkid -s UUID -o value $ROOT_MAPPER_NAME) /var/lib/flatpak btrfs noatime,nodiratime,autodefrag,$COMPRESSION,subvol=@flatpak 0 1" >>$TARGET/etc/fstab echo "UUID=$(/sbin/blkid -s UUID -o value $ROOT_MAPPER_NAME) /var/lib/flatpak btrfs noatime,nodiratime,autodefrag,$COMPRESSION,subvol=@flatpak 0 1" >>$TARGET/etc/fstab
echo "tmpfs /var/log tmpfs defaults,dev,exec 0 0" >>$TARGET/etc/fstab echo "tmpfs /var/log tmpfs defaults,dev,exec 0 0" >>$TARGET/etc/fstab
echo "tmpfs /tmp tmpfs defaults 0 0" >>$TARGET/etc/fstab echo "tmpfs /tmp tmpfs defaults,size=32G 0 0" >>$TARGET/etc/fstab
echo "tmpfs /var/tmp/portage tmpfs defaults 0 0" >>$TARGET/etc/fstab echo "tmpfs /var/tmp/portage tmpfs defaults,size=32G 0 0" >>$TARGET/etc/fstab
echo "tmpfs /var/lib/systemd/coredump tmpfs defaults,size=5G 0 0" >>$TARGET/etc/fstab
echo "tmpfs /home/${USER}/.cache tmpfs rw,user,exec 0 0" >>$TARGET/etc/fstab echo "tmpfs /home/${USER}/.cache tmpfs rw,user,exec 0 0" >>$TARGET/etc/fstab
echo "tmpfs /home/${USER}/Downloads tmpfs rw,user,exec 0 0" >>$TARGET/etc/fstab echo "tmpfs /home/${USER}/Downloads tmpfs rw,user,exec 0 0" >>$TARGET/etc/fstab
echo "UUID=$(/sbin/blkid -s UUID -o value $ROOT_MAPPER_NAME) /home btrfs noatime,nodiratime,autodefrag,$COMPRESSION,subvol=@home 0 1" >>$TARGET/etc/fstab echo "UUID=$(/sbin/blkid -s UUID -o value $ROOT_MAPPER_NAME) /home btrfs noatime,nodiratime,autodefrag,$COMPRESSION,subvol=@home 0 1" >>$TARGET/etc/fstab
@ -639,6 +648,11 @@ download-setup() {
echo echo
setDevices setDevices
STAGE3_URL=$(curl https://www.gentoo.org/downloads/ | grep -i stage3-amd64-systemd | head -1 | cut -d '"' -f2-3 | cut -d '"' -f1) STAGE3_URL=$(curl https://www.gentoo.org/downloads/ | grep -i stage3-amd64-systemd | head -1 | cut -d '"' -f2-3 | cut -d '"' -f1)
if [ -f "./repos.conf" ]; then
STAGE3_URL="http://192.168.0.55/releases/amd64/autobuilds/current-stage3-amd64-desktop-systemd/$(curl -s 'http://192.168.0.55/releases/amd64/autobuilds/current-stage3-amd64-desktop-systemd/' | grep .tar.xz | grep -Evi '.asc|.gz|DIGESTS|sha256' | cut -d \" -f2)"
fi
STAGE3_FILE="/tmp/stage3.tar.xz" STAGE3_FILE="/tmp/stage3.tar.xz"
if [ -f "$STAGE3_FILE" ]; then if [ -f "$STAGE3_FILE" ]; then
echo echo
@ -807,8 +821,8 @@ bootloader() {
#find /boot/* -type d -exec rm -rf {} \; #find /boot/* -type d -exec rm -rf {} \;
bootctl install bootctl install
MACHINE_ID=$(cat /etc/machine-id) MACHINE_ID=$(cat /etc/machine-id)
KERNEL="kernel-$(ls /boot/$MACHINE_ID | grep gentoo)" KERNEL="kernel-$(ls /boot/$MACHINE_ID | grep gentoo | tail -1)"
KERNEL_VERSION=$(echo $KERNEL | cut -d '-' -f2-4) KERNEL_VERSION=$(echo $KERNEL | cut -d '-' -f2-5)
LOADER_FILE="/boot/loader/entries/$MACHINE_ID-$KERNEL_VERSION.conf" LOADER_FILE="/boot/loader/entries/$MACHINE_ID-$KERNEL_VERSION.conf"
PREVIOUS_LOADER_FILE="/boot/loader/entries/previous.conf" PREVIOUS_LOADER_FILE="/boot/loader/entries/previous.conf"
clear clear
@ -835,33 +849,37 @@ bootloader() {
fi fi
mkdir -p /boot/$MACHINE_ID/$KERNEL_VERSION mkdir -p /boot/$MACHINE_ID/$KERNEL_VERSION
plymouth-set-default-theme solar #plymouth-set-default-theme solar
dracut --regenerate-all -f
echo "MachineID=$MACHINE_ID" echo "MachineID=$MACHINE_ID"
echo "KERNEL IS $KERNEL" echo "KERNEL: $KERNEL"
echo "Root_Name=$ROOT_NAME" echo "KERNEL_VERSION: $KERNEL_VERSION"
echo "BTRFS=$BTRFS" echo "Root_Name: $ROOT_NAME"
echo "BTRFS: $BTRFS"
echo "UEFI Kernel: $KERNEL_VERSION" echo "UEFI Kernel: $KERNEL_VERSION"
echo "default $MACHINE_ID" >/boot/loader/loader.conf echo "default $MACHINE_ID" >/boot/loader/loader.conf
echo "timeout 1" >>/boot/loader/loader.conf echo "timeout 1" >>/boot/loader/loader.conf
#Generate Main Boot Entry echo
echo "title Current" >$LOADER_FILE echo
echo "version $KERNEL_VERSION" >>$LOADER_FILE echo
echo "options $KERNEL_COMMAND_LINE " >>$LOADER_FILE read -p 'Is the kernel compiled from source?: ' -e -i 'n' kernel_source
echo "machine-id $MACHINE_ID" >>$LOADER_FILE
echo "linux /kernel-$KERNEL_VERSION" >>$LOADER_FILE
echo "initrd /initramfs-$KERNEL_VERSION.img" >>$LOADER_FILE
#Generate Previous Boot Entry if [[ $kernel_source = *y* ]]; then
#cp -f $LOADER_FILE $PREVIOUS_LOADER_FILE cd /usr/src/linux
#sed -i "s/@${ROOT_NAME}/@.snapshots/previous/" $PREVIOUS_LOADER_FILE make install
#sed -i "s/Current/Previous/" $PREVIOUS_LOADER_FILE rm -f /boot/loader/entries/$MACHINE_ID-$KERNEL_VERSION-gentoo.conf
#bootctl set-default $MACHINE_ID-$KERNEL_VERSION.conf else
dracut --regenerate-all -f
fi
#bootctl list #Generate Main Boot Entry
echo "title Current" >$LOADER_FILE
echo "version $KERNEL_VERSION" >>$LOADER_FILE
echo "options $KERNEL_COMMAND_LINE " >>$LOADER_FILE
echo "machine-id $MACHINE_ID" >>$LOADER_FILE
echo "linux /$MACHINE_ID/$KERNEL_VERSION/linux" >>$LOADER_FILE
echo "initrd /$MACHINE_ID/$KERNEL_VERSION/initrd" >>$LOADER_FILE
} }
compile-kernel() { compile-kernel() {