#!/bin/bash # Vor Reboot echo "Select Prozessor Vendor:" echo "1) AMD 2) Intel 3) Other(no ucode)" read -r vendor if [[ $vendor == 1 ]]; then echo "AMD" ucode="amd-ucode" elif [[ $vendor == 2 ]]; then echo "Intel" ucode="intel-ucode" elif [[ $vendor == 3 ]]; then echo "no Ucode" ucode="" else echo "Vendor Unknown, aborting" exit 1 fi sleep 1 echo "Select Kernel" echo "1) Linux 2) Linux+lts 3) Linux+zen 4) Linux+zen+lts 5) zen+lts" read -r kernel if [[ $kernel == 1 ]]; then echo "Linux" selectedKernel="linux" header="linux-headers" elif [[ $kernel == 2 ]]; then echo "Linux/Linux LTS" selectedKernel="linux linux-lts" header="linux-headers linux-lts-headers" elif [[ $kernel == 3 ]]; then echo "Linux/Linux Zen" selectedKernel="linux linux-zen" header="linux-headers linux-zen-headers" elif [[ $kernel == 4 ]]; then echo "Linux/Linux LTS/Linux Zen" selectedKernel="linux linux-lts linux-zen" header="linux-headers linux-lts-headers linux-zen-headers" elif [[ $kernel == 5 ]]; then echo "Linux LTS/Linux Zen" selectedKernel="linux-lts linux-zen" header="linux-lts-headers linux-zen-headers" else echo "no Kernel selectet, aborting" exit 1 fi sleep 1 echo "General configuration:" echo "1) Server (Systemd-networkd, no graphics card) 2) Laptop/Desktop (Networkmanager, Graphics Card)" read -r configuration if [[ $configuration == 2 ]]; then echo "Laptop/Desktop" echo "" echo "Graphics Card" echo "1) AMD 2) Intel 3) Nvidia" read -r gracard if [[ $gracard == 1 ]]; then echo "AMD" elif [[ $gracard == 2 ]]; then echo "Intel" elif [[ $gracard == 3 ]]; then echo "Nvidia" else read -r -p "No Graphics Card selected. Continue? (Y/N): " confirm && [[ $confirm == [yY] || $confirm == [yY][eE][sS] ]] || exit 1 fi elif [[ $configuration == 1 ]]; then echo "Server" fi sleep 1 # Pacman Konfiguration sed -i 's/#\(Color\)/\1/' /etc/pacman.conf # Umbruch notwendug sed -i 's/#\(ParallelDownloads\s=\s5\)/\1\ ILoveCandy/' /etc/pacman.conf # Zeit einstellen ln -sf /usr/share/zoneinfo/Europe/Berlin /etc/localtime hwclock --systohc # vim /etc/locale.gen sed -i 's/#\(de_DE.UTF-8\)/\1/' /etc/locale.gen locale-gen echo "LANG=de_DE.UTF-8" >> /etc/locale.conf echo "KEYMAP=de-latin1-nodeadkeys" >> /etc/vconsole.conf #only for console not for DE or terminal #echo "FONT=Tamsyn10x20r" >> /etc/vconsole.conf echo "arch" >> /etc/hostname # vim /etc/hosts echo "127.0.0.1 localhost" > /etc/hosts echo "::1 localhost" >> /etc/hosts echo "127.0.1.1 arch.localedomain arch" >> /etc/hosts echo root:test | chpasswd pacman -S $selectedKernel "$ucode" pacman -S base-devel $header pacman -S iwd dialog reflector xdg-user-dirs xdg-utils inetutils ldns bash-completion openssh rsync iptables-nft ipset firewalld lynx pacman -S networkmanager #Idee: ppp bluez(hier) modemmanager polkit(?) pacman -S efibootmgr mtools dosfstools if [[ $gracard == 1 ]]; then pacman -S --noconfirm xf86-video-amdgpu elif [[ $gracard == 3 ]]; then pacman -S --noconfirm nvidia nvidia-utils nvidia-settings fi if [[ $configuration == 1 ]]; then systemctl enable systemd-networkd systemctl enable iwd systemctl enable sshd # Netzwerk # Ethernet echo "Ethernet" ethernet_network=$(find / -type f -name 20-ethernet.network | grep configs) cp "$ethernet_network" /etc/systemd/network/ # Wlan echo "WLAN" wlan_network=$(find / -type f -name 20-wlan.network | grep configs) cp "$wlan_network" /etc/systemd/network/ # Wwan (Mobilefunk) echo "Mobilfunk" wwan_network=$(find / -type f -name 20-wwan.network | grep configs) cp "$wwan_network" /etc/systemd/network/ elif [[ $configuration == 2 ]]; then systemctl enable NetworkManager wifi_backend_conf=$(find / -type f -name wifi_backend.conf | grep configs) cp "$wifi_backend_conf" /etc/NetworkManager/conf.d/ fi systemctl enable systemd-resolved systemctl enable systemd-timesyncd systemctl enable reflector.timer systemctl enable firewalld systemctl enable fstrim.timer if [[ $gracard == 1 ]]; then sed -i 's/MODULES=()/MODULES=(amdgpu)/' /etc/mkinitcpio.conf #AMD elif [[ $gracard == 2 ]]; then sed -i 's/MODULES=()/MODULES=(i915)/' /etc/mkinitcpio.conf #Intel elif [[ $gracard == 3 ]]; then sed -i 's/MODULES=()/MODULES=(nvidia)/' /etc/mkinitcpio.conf #Nvidia fi if [[ $kernel == 1 ]]; then mkinitcpio -p linux elif [[ $kernel == 2 ]]; then mkinitcpio -p linux mkinitcpio -p linux-lts elif [[ $kernel == 3 ]]; then mkinitcpio -p linux mkinitcpio -p linux-zen elif [[ $kernel == 4 ]]; then mkinitcpio -p linux mkinitcpio -p linux-lts mkinitcpio -p linux-zen elif [[ $kernel == 5 ]]; then mkinitcpio -p linux-lts mkinitcpio -p linux-zen fi bootctl install # Bootloaderconfig loader_conf=$(find / -type f -name loader.conf | grep configs) cp "$loader_conf" /boot/loader/ if [[ $kernel == 1 || $kernel == 2 || $kernel == 3 || $kernel == 4 ]]; then # Entry Arch arch_conf=$(find / -type f -name arch.conf | grep configs) cp "$arch_conf" /boot/loader/entries/ if [[ $vendor == 1 ]]; then sed -i 's/#AMD//' /boot/loader/entries/arch.conf elif [[ $vendor == 2 ]]; then sed -i 's/#Intel//' /boot/loader/entries/arch.conf fi fi if [[ $kernel == 2 || $kernel == 4 || $kernel == 5 ]]; then # Entry Arch LTS arch_lts_conf=$(find / -type f -name arch-lts.conf | grep configs) cp "$arch_lts_conf" /boot/loader/entries/ if [[ $vendor == 1 ]]; then sed -i 's/#AMD//' /boot/loader/entries/arch-lts.conf elif [[ $vendor == 2 ]]; then sed -i 's/#Intel//' /boot/loader/entries/arch-lts.conf fi fi if [[ $kernel == 3 || $kernel == 4 || $kernel == 5 ]]; then # Entry Arch Zen arch_zen_conf=$(find / -type f -name arch-zen.conf | grep configs) cp "$arch_zen_conf" /boot/loader/entries/ if [[ $vendor == 1 ]]; then sed -i 's/#AMD//' /boot/loader/entries/arch-zen.conf elif [[ $vendor == 2 ]]; then sed -i 's/#Intel//' /boot/loader/entries/arch-zen.conf fi fi if [[ $kernel == 1 || $kernel == 2 || $kernel == 3 || $kernel == 4 ]]; then # Entry Arch Fallback arch_fallback_conf=$(find / -type f -name arch-fallback.conf | grep configs) cp "$arch_fallback_conf" /boot/loader/entries/ if [[ $vendor == 1 ]]; then sed -i 's/#AMD//' /boot/loader/entries/arch-fallback.conf elif [[ $vendor == 2 ]]; then sed -i 's/#Intel//' /boot/loader/entries/arch-fallback.conf fi fi if [[ $kernel == 2 || $kernel == 4 || $kernel == 5 ]]; then # Entry Arch LTS Fallback arch_lts_fallback_conf=$(find / -type f -name arch-lts-fallback.conf | grep configs) cp "$arch_lts_fallback_conf" /boot/loader/entries/ if [[ $vendor == 1 ]]; then sed -i 's/#AMD//' /boot/loader/entries/arch-lts-fallback.conf elif [[ $vendor == 2 ]]; then sed -i 's/#Intel//' /boot/loader/entries/arch-lts-fallback.conf fi fi if [[ $kernel == 3 || $kernel == 4 || $kernel == 5 ]]; then # Entry Arch Zen Fallback arch_zen_fallback_conf=$(find / -type f -name arch-zen-fallback.conf | grep configs) cp "$arch_zen_fallback_conf" /boot/loader/entries/ if [[ $vendor == 1 ]]; then sed -i 's/#AMD//' /boot/loader/entries/arch-zen-fallback.conf elif [[ $vendor == 2 ]]; then sed -i 's/#Intel//' /boot/loader/entries/arch-zen-fallback.conf fi fi useradd -mG wheel eichehome echo eichehome:testen | chpasswd echo "%wheel ALL=(ALL) ALL" >> /etc/sudoers.d/wheel_group