Cleanup needless splitting of code, add more DMs, remove package bit from background install
This commit is contained in:
parent
831cfbcc58
commit
af36aedb2b
@ -5,7 +5,7 @@
|
|||||||
# Some ideas and code reworked from other resources
|
# Some ideas and code reworked from other resources
|
||||||
# AIF, Cnichi, Calamares, Arch Wiki.. Credit where credit is due
|
# AIF, Cnichi, Calamares, Arch Wiki.. Credit where credit is due
|
||||||
|
|
||||||
VER="2.0.58" # installer version
|
VER="2.0.59" # installer version
|
||||||
DIST="ArchLabs" # linux distributor
|
DIST="ArchLabs" # linux distributor
|
||||||
MNT="/mnt" # install mountpoint
|
MNT="/mnt" # install mountpoint
|
||||||
ANS="/tmp/ans" # dialog answer file
|
ANS="/tmp/ans" # dialog answer file
|
||||||
@ -82,19 +82,11 @@ WARN='' # issued mounting/partitioning warning
|
|||||||
SEP_BOOT='' # separate boot partition for BIOS
|
SEP_BOOT='' # separate boot partition for BIOS
|
||||||
AUTOLOGIN='' # enable autologin for xinit
|
AUTOLOGIN='' # enable autologin for xinit
|
||||||
CONFIG_DONE='' # basic configuration is finished
|
CONFIG_DONE='' # basic configuration is finished
|
||||||
BROADCOM_WL='' # fixes for broadcom cards eg. BCM4352
|
|
||||||
|
|
||||||
FORMATTED='' # partitions we formatted and should allow skipping
|
FORMATTED='' # partitions we formatted and should allow skipping
|
||||||
AUTO_ROOT_PART='' # root value from auto partition
|
AUTO_ROOT_PART='' # root value from auto partition
|
||||||
AUTO_BOOT_PART='' # boot value from auto partition
|
AUTO_BOOT_PART='' # boot value from auto partition
|
||||||
|
|
||||||
# iso base, pacstrap when running the installer from a stock arch iso
|
|
||||||
ISO_BASE="b43-firmware b43-fwcutter broadcom-wl clonezilla dhclient dhcpcd ethtool wpa_supplicant "
|
|
||||||
ISO_BASE+="exfat-utils f2fs-tools gptfdisk vim hdparm ipw2100-fw ipw2200-fw nfs-utils nilfs-utils ntfs-3g "
|
|
||||||
ISO_BASE+="pacman-contrib parted rsync sdparm smartmontools wget wireless_tools wpa_actiond xl2tpd dialog parted "
|
|
||||||
ISO_BASE+="alsa-firmware alsa-lib alsa-plugins pulseaudio pulseaudio-alsa networkmanager w3m htop wireless-regdb "
|
|
||||||
ISO_BASE+="lm_sensors lsb-release p7zip pamixer reflector unrar ranger terminus-font ttf-dejavu archlabs-keyring"
|
|
||||||
|
|
||||||
# archlabs base
|
# archlabs base
|
||||||
AL_BASE_PKGS="archlabs-skel-base archlabs-fonts archlabs-themes archlabs-dARK archlabs-icons archlabs-wallpapers archlabs-scripts"
|
AL_BASE_PKGS="archlabs-skel-base archlabs-fonts archlabs-themes archlabs-dARK archlabs-icons archlabs-wallpapers archlabs-scripts"
|
||||||
|
|
||||||
@ -220,6 +212,8 @@ declare -A FS_OPTS=(
|
|||||||
declare -A LOGIN_PKGS=(
|
declare -A LOGIN_PKGS=(
|
||||||
[xinit]='xorg-xinit'
|
[xinit]='xorg-xinit'
|
||||||
[ly]='archlabs-ly'
|
[ly]='archlabs-ly'
|
||||||
|
[gdm]='gdm'
|
||||||
|
[sddm]='sddm'
|
||||||
[lightdm]='lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings accountsservice'
|
[lightdm]='lightdm lightdm-gtk-greeter lightdm-gtk-greeter-settings accountsservice'
|
||||||
) # }
|
) # }
|
||||||
|
|
||||||
@ -413,31 +407,30 @@ select_login()
|
|||||||
{
|
{
|
||||||
[[ $INSTALL_WMS ]] || return 0
|
[[ $INSTALL_WMS ]] || return 0
|
||||||
|
|
||||||
|
AUTOLOGIN='' # no autologin unless using xinit
|
||||||
|
|
||||||
if [[ -z $LOGIN_TYPE ]]; then
|
if [[ -z $LOGIN_TYPE ]]; then
|
||||||
dlg LOGIN_TYPE menu "Login Management" "\nSelect what kind of login management to use." \
|
dlg LOGIN_TYPE menu "Login Management" "\nSelect what kind of login management to use." \
|
||||||
"xinit" "Console login without a display manager" \
|
"xinit" "Console login without a display manager" \
|
||||||
"ly" "TUI display manager with a ncurses-like interface" \
|
"ly" "TUI display manager with a ncurses-like interface" \
|
||||||
"lightdm" "Lightweight display manager with a gtk greeter" || return 1
|
"lightdm" "Lightweight display manager with a gtk greeter" \
|
||||||
|
"gdm" "Gnome display manager" \
|
||||||
|
"sddm" "Simple desktop display manager" || return 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [[ $LOGIN_TYPE == 'xinit' ]]; then
|
case $LOGIN_TYPE in
|
||||||
EDIT_FILES[login]="/home/$NEWUSER/.xinitrc /home/$NEWUSER/.xprofile"
|
ly) EDIT_FILES[login]="/etc/ly/config.ini" ;;
|
||||||
# define what wm/de to use for xinit
|
gdm|sddm) EDIT_FILES[login]="" ;;
|
||||||
|
lightdm) EDIT_FILES[login]="/etc/lightdm/lightdm.conf /etc/lightdm/lightdm-gtk-greeter.conf" ;;
|
||||||
|
xinit) EDIT_FILES[login]="/home/$NEWUSER/.xinitrc /home/$NEWUSER/.xprofile"
|
||||||
if (( $(wc -w <<< "$INSTALL_WMS") > 1 )); then
|
if (( $(wc -w <<< "$INSTALL_WMS") > 1 )); then
|
||||||
dlg LOGIN_WM menu "Login Management" "$_login" $LOGIN_CHOICES || return 1
|
dlg LOGIN_WM menu "Login Management" "$_login" $LOGIN_CHOICES || return 1
|
||||||
LOGIN_WM="${WM_SESSIONS[$LOGIN_WM]}"
|
LOGIN_WM="${WM_SESSIONS[$LOGIN_WM]}"
|
||||||
fi
|
fi
|
||||||
[[ -z $LOGIN_WM ]] && LOGIN_WM="${WM_SESSIONS[${INSTALL_WMS%% *}]}"
|
[[ -z $LOGIN_WM ]] && LOGIN_WM="${WM_SESSIONS[${INSTALL_WMS%% *}]}"
|
||||||
# autologin
|
|
||||||
yesno "Autologin" "$(sed "s|USER|$NEWUSER|g; s|RC|$LOGINRC|g" <<< "$_autologin")" && AUTOLOGIN=true || AUTOLOGIN=''
|
yesno "Autologin" "$(sed "s|USER|$NEWUSER|g; s|RC|$LOGINRC|g" <<< "$_autologin")" && AUTOLOGIN=true || AUTOLOGIN=''
|
||||||
else
|
;;
|
||||||
AUTOLOGIN='' # no autologin for DMs
|
esac
|
||||||
if [[ $LOGIN_TYPE == 'lightdm' ]]; then
|
|
||||||
EDIT_FILES[login]="/etc/lightdm/lightdm.conf /etc/lightdm/lightdm-gtk-greeter.conf"
|
|
||||||
elif [[ $LOGIN_TYPE == 'ly' ]]; then
|
|
||||||
EDIT_FILES[login]="/etc/ly/config.ini"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
select_config()
|
select_config()
|
||||||
@ -759,6 +752,7 @@ part_menu()
|
|||||||
if [[ $devhash != "$(lsblk -f | base64)" ]]; then
|
if [[ $devhash != "$(lsblk -f | base64)" ]]; then
|
||||||
msg "Probing Partitions" "\nInforming the kernel of partition changes using partprobe.\n" 0
|
msg "Probing Partitions" "\nInforming the kernel of partition changes using partprobe.\n" 0
|
||||||
partprobe >/dev/null 2>&1
|
partprobe >/dev/null 2>&1
|
||||||
|
[[ $choice == 'auto' ]] && return
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
@ -774,21 +768,6 @@ part_show()
|
|||||||
msg "Device Tree" "\n\n$txt\n\n"
|
msg "Device Tree" "\n\n$txt\n\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
part_swap()
|
|
||||||
{
|
|
||||||
if [[ $1 == "$MNT/swapfile" && $SWAP_SIZE ]]; then
|
|
||||||
fallocate -l $SWAP_SIZE "$1" 2>$ERR
|
|
||||||
errshow "fallocate -l $SWAP_SIZE $1"
|
|
||||||
chmod 600 "$1" 2>$ERR
|
|
||||||
errshow "chmod 600 $1"
|
|
||||||
fi
|
|
||||||
mkswap "$1" >/dev/null 2>$ERR
|
|
||||||
errshow "mkswap $1"
|
|
||||||
swapon "$1" >/dev/null 2>$ERR
|
|
||||||
errshow "swapon $1"
|
|
||||||
return 0
|
|
||||||
}
|
|
||||||
|
|
||||||
part_auto()
|
part_auto()
|
||||||
{
|
{
|
||||||
local device="$1" table="$2" boot_fs="$3" size="$4" dev_info=""
|
local device="$1" table="$2" boot_fs="$3" size="$4" dev_info=""
|
||||||
@ -938,6 +917,21 @@ part_find()
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
|
part_swap()
|
||||||
|
{
|
||||||
|
if [[ $1 == "$MNT/swapfile" && $SWAP_SIZE ]]; then
|
||||||
|
fallocate -l $SWAP_SIZE "$1" 2>$ERR
|
||||||
|
errshow "fallocate -l $SWAP_SIZE $1"
|
||||||
|
chmod 600 "$1" 2>$ERR
|
||||||
|
errshow "chmod 600 $1"
|
||||||
|
fi
|
||||||
|
mkswap "$1" >/dev/null 2>$ERR
|
||||||
|
errshow "mkswap $1"
|
||||||
|
swapon "$1" >/dev/null 2>$ERR
|
||||||
|
errshow "swapon $1"
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
|
||||||
part_mount()
|
part_mount()
|
||||||
{
|
{
|
||||||
local part="$1" mountp="${MNT}$2" fs=""
|
local part="$1" mountp="${MNT}$2" fs=""
|
||||||
@ -1338,7 +1332,6 @@ install_main()
|
|||||||
install_user
|
install_user
|
||||||
install_login
|
install_login
|
||||||
chrun "chown -Rf $NEWUSER:users /home/$NEWUSER"
|
chrun "chown -Rf $NEWUSER:users /home/$NEWUSER"
|
||||||
sleep 1
|
|
||||||
|
|
||||||
while :; do
|
while :; do
|
||||||
dlg choice menu "Finalization" "$_edit" \
|
dlg choice menu "Finalization" "$_edit" \
|
||||||
@ -1357,7 +1350,7 @@ install_main()
|
|||||||
|
|
||||||
if [[ -z $choice || $choice == 'finished' ]]; then
|
if [[ -z $choice || $choice == 'finished' ]]; then
|
||||||
[[ $DEBUG == true && -r $DBG ]] && vim $DBG
|
[[ $DEBUG == true && -r $DBG ]] && vim $DBG
|
||||||
die 127
|
clear && die 127
|
||||||
else
|
else
|
||||||
local exists=''
|
local exists=''
|
||||||
for f in ${EDIT_FILES[$choice]}; do
|
for f in ${EDIT_FILES[$choice]}; do
|
||||||
@ -1374,29 +1367,14 @@ install_main()
|
|||||||
|
|
||||||
install_base()
|
install_base()
|
||||||
{
|
{
|
||||||
if [[ $RSYNC_PID || $MIRROR_PID ]]; then
|
|
||||||
local oldmsg="" msg=""
|
|
||||||
if kill -0 "$RSYNC_PID" 2>/dev/null || kill -0 "$MIRROR_PID" 2>/dev/null; then
|
if kill -0 "$RSYNC_PID" 2>/dev/null || kill -0 "$MIRROR_PID" 2>/dev/null; then
|
||||||
printf "\nOne or more background install processes are still running, grabbing their output...\n"
|
printf "\nOne or more background install processes are still running, grabbing their output...\n" && cat /tmp/bg_out
|
||||||
while kill -0 "$RSYNC_PID" 2>/dev/null || kill -0 "$MIRROR_PID" 2>/dev/null; do
|
while kill -0 "$RSYNC_PID" 2>/dev/null || kill -0 "$MIRROR_PID" 2>/dev/null; do
|
||||||
msg="$(tail -n 1 /tmp/bg_out)"
|
sleep 1
|
||||||
if [[ "$msg" != "$oldmsg" ]]; then
|
|
||||||
printf "\n%s" "$msg"
|
|
||||||
oldmsg="$msg"
|
|
||||||
else
|
|
||||||
printf "."
|
|
||||||
sleep 0.5
|
|
||||||
fi
|
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
trap - EXIT
|
trap - EXIT
|
||||||
unset RSYNC_PID MIRROR_PID
|
unset RSYNC_PID MIRROR_PID
|
||||||
else
|
|
||||||
rsync -ahv /run/archiso/sfs/airootfs/ $MNT/ 2>$ERR
|
|
||||||
errshow 1 "rsync -ahv /run/archiso/sfs/airootfs/ $MNT/"
|
|
||||||
install_mirrorlist "$MNT/etc/pacman.d/mirrorlist"
|
|
||||||
chrun "pacman -Syyu --noconfirm && pacman -S $BASE_PKGS --needed --noconfirm"
|
|
||||||
fi
|
|
||||||
|
|
||||||
rm -rf $MNT/etc/mkinitcpio-archiso.conf
|
rm -rf $MNT/etc/mkinitcpio-archiso.conf
|
||||||
find $MNT/usr/lib/initcpio -name 'archiso*' -type f -delete
|
find $MNT/usr/lib/initcpio -name 'archiso*' -type f -delete
|
||||||
@ -1426,11 +1404,6 @@ install_base()
|
|||||||
chrun "locale-gen"
|
chrun "locale-gen"
|
||||||
chrun "ln -svf /usr/share/zoneinfo/$ZONE/$SUBZ /etc/localtime"
|
chrun "ln -svf /usr/share/zoneinfo/$ZONE/$SUBZ /etc/localtime"
|
||||||
|
|
||||||
if [[ $BROADCOM_WL ]]; then
|
|
||||||
echo 'blacklist bcma' >> $MNT/etc/modprobe.d/blacklist.conf
|
|
||||||
rm -f $MNT/etc/modprobe/
|
|
||||||
fi
|
|
||||||
|
|
||||||
cat > $MNT/etc/X11/xorg.conf.d/00-keyboard.conf <<- EOF
|
cat > $MNT/etc/X11/xorg.conf.d/00-keyboard.conf <<- EOF
|
||||||
# Use localectl(1) to instruct systemd-localed to update it.
|
# Use localectl(1) to instruct systemd-localed to update it.
|
||||||
Section "InputClass"
|
Section "InputClass"
|
||||||
@ -1544,64 +1517,25 @@ install_user()
|
|||||||
sed -i '/compton/d' $MNT/home/$NEWUSER/.xprofile $MNT/root/.xprofile
|
sed -i '/compton/d' $MNT/home/$NEWUSER/.xprofile $MNT/root/.xprofile
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# create user home directories (Music, Documents, Downloads, etc..)
|
||||||
|
chrun 'xdg-user-dirs-update'
|
||||||
|
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
install_xinit()
|
|
||||||
{
|
|
||||||
|
|
||||||
if [[ $INSTALL_WMS ]]; then
|
|
||||||
if [[ -e $MNT/home/$NEWUSER/.xinitrc ]] && grep -q 'exec' "$MNT/home/$NEWUSER/.xinitrc"; then
|
|
||||||
sed -i "/exec/ c exec ${LOGIN_WM}" "$MNT/home/$NEWUSER/.xinitrc"
|
|
||||||
elif [[ $INSTALL_WMS ]]; then
|
|
||||||
printf "exec %s\n" "$LOGIN_WM" >> "$MNT/home/$NEWUSER/.xinitrc"
|
|
||||||
else
|
|
||||||
printf "exec %s\n" "$LOGIN_WM" >> "$MNT/home/$NEWUSER/.xinitrc"
|
|
||||||
fi
|
|
||||||
elif [[ -e $MNT/home/$NEWUSER/.xinitrc ]]; then
|
|
||||||
# no sessions available so remove the exec from ~/.xinitrc and return
|
|
||||||
sed -i '/exec/d' "$MNT/home/$NEWUSER/.xinitrc"
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
[[ ${EDIT_FILES[login]} == *"$LOGINRC"* ]] || EDIT_FILES[login]+=" /home/$NEWUSER/$LOGINRC"
|
|
||||||
|
|
||||||
if [[ $AUTOLOGIN ]]; then
|
|
||||||
sed -i "s/root/${NEWUSER}/g" $SERVICE/autologin.conf
|
|
||||||
cat > "$MNT/home/$NEWUSER/$LOGINRC" <<- EOF
|
|
||||||
# ~/$LOGINRC
|
|
||||||
# sourced by ${MYSHELL##*/} when used as a login shell
|
|
||||||
|
|
||||||
# automatically run startx when logging in on tty1
|
|
||||||
[ -z \$DISPLAY ] && [ \$XDG_VTNR -eq 1 ] && exec startx
|
|
||||||
EOF
|
|
||||||
else
|
|
||||||
rm -rf $SERVICE
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
|
|
||||||
install_ly()
|
|
||||||
{
|
|
||||||
rm -rf "$SERVICE" "$MNT/home/$NEWUSER"/.{xinitrc,profile,zprofile,bash_profile}
|
|
||||||
chrun 'systemctl enable ly.service' 2>$ERR
|
|
||||||
errshow 1 "systemctl enable ly.service"
|
|
||||||
}
|
|
||||||
|
|
||||||
install_login()
|
install_login()
|
||||||
{
|
{
|
||||||
|
local serv="$MNT/etc/systemd/system/getty@tty1.service.d"
|
||||||
|
|
||||||
echo "Setting up $LOGIN_TYPE"
|
echo "Setting up $LOGIN_TYPE"
|
||||||
SERVICE="$MNT/etc/systemd/system/getty@tty1.service.d"
|
|
||||||
install_${LOGIN_TYPE:-xinit}
|
|
||||||
}
|
|
||||||
|
|
||||||
install_lightdm()
|
case $LOGIN_TYPE in
|
||||||
{
|
ly|sddm|gdm|lightdm)
|
||||||
rm -rf "$SERVICE" "$MNT/home/$NEWUSER"/.{xinitrc,profile,zprofile,bash_profile}
|
rm -rf "$serv" "$MNT/home/$NEWUSER/.xinitrc"
|
||||||
chrun 'systemctl enable lightdm.service' 2>$ERR
|
chrun "systemctl enable $LOGIN_TYPE.service" 2>$ERR
|
||||||
errshow 1 "systemctl enable lightdm.service"
|
errshow 1 "systemctl enable $LOGIN_TYPE.service"
|
||||||
|
if [[ $LOGIN_TYPE == 'lightdm' ]]; then
|
||||||
cat > $MNT/etc/lightdm/lightdm-gtk-greeter.conf <<- EOF
|
cat > $MNT/etc/lightdm/lightdm-gtk-greeter.conf <<- EOF
|
||||||
# LightDM GTK+ Configuration
|
|
||||||
|
|
||||||
[greeter]
|
[greeter]
|
||||||
default-user-image=/usr/share/icons/ArchLabs-Dark/64x64/places/distributor-logo-archlabs.png
|
default-user-image=/usr/share/icons/ArchLabs-Dark/64x64/places/distributor-logo-archlabs.png
|
||||||
background=/usr/share/backgrounds/archlabs/archlabs.jpg
|
background=/usr/share/backgrounds/archlabs/archlabs.jpg
|
||||||
@ -1610,19 +1544,33 @@ install_lightdm()
|
|||||||
font-name=DejaVu Sans Mono 11
|
font-name=DejaVu Sans Mono 11
|
||||||
position=30%,end 50%,end
|
position=30%,end 50%,end
|
||||||
EOF
|
EOF
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
xinit)
|
||||||
|
if [[ $INSTALL_WMS ]]; then
|
||||||
|
sed -i "/exec/ c exec ${LOGIN_WM}" "$MNT/home/$NEWUSER/.xinitrc"
|
||||||
|
elif [[ -e $MNT/home/$NEWUSER/.xinitrc ]]; then
|
||||||
|
sed -i '/exec/d' "$MNT/home/$NEWUSER/.xinitrc"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
if [[ $AUTOLOGIN ]]; then
|
||||||
|
sed -i "s/root/${NEWUSER}/g" $serv/autologin.conf
|
||||||
|
cat > "$MNT/home/$NEWUSER/$LOGINRC" <<- EOF
|
||||||
|
# automatically run startx when logging in on tty1
|
||||||
|
[ -z \$DISPLAY ] && [ \$XDG_VTNR -eq 1 ] && exec startx
|
||||||
|
EOF
|
||||||
|
else
|
||||||
|
rm -rf $serv
|
||||||
|
fi
|
||||||
|
;;
|
||||||
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
install_packages()
|
install_packages()
|
||||||
{
|
{
|
||||||
local rmpkg=""
|
local rmpkg="archlabs-installer "
|
||||||
local inpkg="$BASE_PKGS ${LOGIN_PKGS[$LOGIN_TYPE]} $PACKAGES $USER_PKGS "
|
local inpkg="$BASE_PKGS ${LOGIN_PKGS[$LOGIN_TYPE]} $PACKAGES $USER_PKGS "
|
||||||
|
|
||||||
if pacman -Qsq 'archlabs-installer' >/dev/null 2>&1; then
|
|
||||||
rmpkg+="archlabs-installer "
|
|
||||||
elif [[ -e "$MNT/usr/bin/archlabs-installer" ]]; then
|
|
||||||
rm -f "$MNT/usr/bin/archlabs-installer"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# add extra packages chosen throughout the install
|
# add extra packages chosen throughout the install
|
||||||
if [[ $MYSHELL == '/usr/bin/zsh' ]]; then
|
if [[ $MYSHELL == '/usr/bin/zsh' ]]; then
|
||||||
inpkg+="zsh-completions "
|
inpkg+="zsh-completions "
|
||||||
@ -1630,6 +1578,8 @@ install_packages()
|
|||||||
rmpkg+="zsh "
|
rmpkg+="zsh "
|
||||||
[[ $MYSHELL == '/usr/bin/mksh' ]] && inpkg+="mksh "
|
[[ $MYSHELL == '/usr/bin/mksh' ]] && inpkg+="mksh "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
# using a different kernel, remove the stock one
|
||||||
if [[ $KERNEL != 'linux' ]]; then
|
if [[ $KERNEL != 'linux' ]]; then
|
||||||
inpkg+="$KERNEL "
|
inpkg+="$KERNEL "
|
||||||
rmpkg+="linux "
|
rmpkg+="linux "
|
||||||
@ -1648,7 +1598,7 @@ install_packages()
|
|||||||
chrun "pacman -Syyu --noconfirm"
|
chrun "pacman -Syyu --noconfirm"
|
||||||
|
|
||||||
# remove the packages we don't want on the installed system
|
# remove the packages we don't want on the installed system
|
||||||
[[ $rmpkg ]] && chrun "pacman -Rns $rmpkg --noconfirm"
|
[[ $rmpkg ]] && chrun "pacman -Rnsc $rmpkg --noconfirm"
|
||||||
|
|
||||||
# reinstalling iputils fixes the network issue for non-root users
|
# reinstalling iputils fixes the network issue for non-root users
|
||||||
chrun "pacman -S iputils $UCODE --noconfirm"
|
chrun "pacman -S iputils $UCODE --noconfirm"
|
||||||
@ -1742,15 +1692,11 @@ install_mirrorlist()
|
|||||||
|
|
||||||
install_background()
|
install_background()
|
||||||
{
|
{
|
||||||
yesno "Background Install" "\nBegin install in the background?\n" || return 0
|
msg "Background Install" "\nInstall will now begin in the background?\n" 2
|
||||||
|
|
||||||
rsync -a /run/archiso/sfs/airootfs/ $MNT/ &
|
rsync -a /run/archiso/sfs/airootfs/ $MNT/ &
|
||||||
RSYNC_PID=$!
|
RSYNC_PID=$!
|
||||||
|
( install_mirrorlist "$MNT/etc/pacman.d/mirrorlist" >>/tmp/bg_out 2>&1 ) &
|
||||||
mkdir -p $MNT/var/lib/pacman # can help with pacman errors
|
|
||||||
( install_mirrorlist "$MNT/etc/pacman.d/mirrorlist" >/dev/null 2>&1 && sleep 1 && chrun "pacman -Syyu $BASE_PKGS --needed --noconfirm" >> /tmp/bg_out 2>&1 ) &
|
|
||||||
MIRROR_PID=$!
|
MIRROR_PID=$!
|
||||||
|
|
||||||
# end the background processes before exiting
|
# end the background processes before exiting
|
||||||
trap "kill $RSYNC_PID $MIRROR_PID 2>/dev/null" EXIT
|
trap "kill $RSYNC_PID $MIRROR_PID 2>/dev/null" EXIT
|
||||||
}
|
}
|
||||||
@ -2202,7 +2148,7 @@ luks_open()
|
|||||||
[[ $LUKS_PART ]] || return 1
|
[[ $LUKS_PART ]] || return 1
|
||||||
|
|
||||||
luks_pass "$_luksopen" || return 1
|
luks_pass "$_luksopen" || return 1
|
||||||
msg "$_luksopen" "\nOpening encrypted partition: $LUKS_NAME\n\nDevice or volume used: $LUKS_PART\n" 0
|
msg "$_luksopen" "\nOpening encrypted partition: $LUKS_NAME\n\nUsing device/volume: $LUKS_PART\n" 0
|
||||||
cryptsetup open --type luks "$LUKS_PART" "$LUKS_NAME" <<< "$LUKS_PASS" 2>$ERR
|
cryptsetup open --type luks "$LUKS_PART" "$LUKS_NAME" <<< "$LUKS_PASS" 2>$ERR
|
||||||
errshow "cryptsetup open --type luks $LUKS_PART $LUKS_NAME" || return 1
|
errshow "cryptsetup open --type luks $LUKS_PART $LUKS_NAME" || return 1
|
||||||
LUKS='encrypted'; luks_show
|
LUKS='encrypted'; luks_show
|
||||||
@ -2264,7 +2210,7 @@ luks_pass()
|
|||||||
luks_show()
|
luks_show()
|
||||||
{
|
{
|
||||||
sleep 0.5
|
sleep 0.5
|
||||||
msg "$_luksnew" "\nEncrypted partition opened and ready for mounting.\n\n$(lsblk -o NAME,MODEL,SIZE,TYPE,FSTYPE "$LUKS_PART")\n\n"
|
msg "$_luksnew" "\nEncrypted partition ready for mounting.\n\n$(lsblk -o NAME,MODEL,SIZE,TYPE,FSTYPE "$LUKS_PART")\n\n"
|
||||||
}
|
}
|
||||||
|
|
||||||
luks_setup()
|
luks_setup()
|
||||||
@ -2497,13 +2443,6 @@ errshow()
|
|||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
|
|
||||||
load_bcm()
|
|
||||||
{
|
|
||||||
msg "Broadcom Wireless Setup" "\nDetected chipset is Broadcom BCM4352\n\nDisabling bcma/b43 modules and loading wl module.\n" 1
|
|
||||||
{ rmmod wl; rmmod bcma; rmmod b43; rmmod ssb; modprobe wl; depmod -a; } >/dev/null 2>&1
|
|
||||||
BROADCOM_WL=true
|
|
||||||
}
|
|
||||||
|
|
||||||
prechecks()
|
prechecks()
|
||||||
{
|
{
|
||||||
local i=1
|
local i=1
|
||||||
@ -2638,10 +2577,6 @@ system_devices
|
|||||||
msg "Welcome to the $DIST Installer" "\nThis will help you get $DIST setup on your system.\nHaving previous GNU/Linux and shell experience will be an asset, however we try our best to keep things simple.\n\nIf you are unsure about an option, a default will be listed or\nthe first selected option will usually be the default (excluding language and timezone).\n\n\nMenu Navigation:\n\n - Select items with the arrow keys or the option number.\n - Use [Space] to toggle options and [Enter] to confirm.\n - Switch between buttons using [Tab] or the arrow keys.\n - Use [Page Up] and [Page Down] to jump whole pages\n - Press the highlighted key of an option to select it.\n"
|
msg "Welcome to the $DIST Installer" "\nThis will help you get $DIST setup on your system.\nHaving previous GNU/Linux and shell experience will be an asset, however we try our best to keep things simple.\n\nIf you are unsure about an option, a default will be listed or\nthe first selected option will usually be the default (excluding language and timezone).\n\n\nMenu Navigation:\n\n - Select items with the arrow keys or the option number.\n - Use [Space] to toggle options and [Enter] to confirm.\n - Switch between buttons using [Tab] or the arrow keys.\n - Use [Page Up] and [Page Down] to jump whole pages\n - Press the highlighted key of an option to select it.\n"
|
||||||
|
|
||||||
select_keymap || { clear; die 0; }
|
select_keymap || { clear; die 0; }
|
||||||
|
|
||||||
# try to fix problematic broadcom wireless chipset before network check
|
|
||||||
lspci -vnn -d 14e4: | grep -q 'BCM4352' && load_bcm
|
|
||||||
|
|
||||||
net_connect || { msg "Not Connected" "\nThis installer requires an active internet connection.\n\nExiting..\n" 2; die 1; }
|
net_connect || { msg "Not Connected" "\nThis installer requires an active internet connection.\n\nExiting..\n" 2; die 1; }
|
||||||
|
|
||||||
while :; do
|
while :; do
|
||||||
|
Reference in New Issue
Block a user