mirror of
https://gitlab.archlinux.org/tpowa/archboot.git
synced 2024-09-20 03:50:37 +02:00
progressbar on mkinitcpio running
This commit is contained in:
parent
38cb2f401d
commit
b58c3eb0ae
1 changed files with 34 additions and 27 deletions
|
@ -186,6 +186,38 @@ _auto_bash(){
|
|||
fi
|
||||
}
|
||||
|
||||
_auto_hwdetect() {
|
||||
# check on framebuffer modules and kms FBPARAMETER
|
||||
grep -q "^radeon" /proc/modules && _FBPARAMETER="--ati-kms"
|
||||
grep -q "^amdgpu" /proc/modules && _FBPARAMETER="--amd-kms"
|
||||
grep -q "^i915" /proc/modules && _FBPARAMETER="--intel-kms"
|
||||
grep -q "^nouveau" /proc/modules && _FBPARAMETER="--nvidia-kms"
|
||||
# check on nfs and keymap HWPARAMETER
|
||||
# check on used keymap, if not us keyboard layout
|
||||
! grep -q '^KEYMAP="us"' "${_DESTDIR}"/etc/vconsole.conf && _HWPARAMETER="${_HWPARAMETER} --keymap"
|
||||
_progress "33" "Preconfiguring mkinitcpio settings on installed system..."
|
||||
# get kernel version
|
||||
if [[ "${_RUNNING_ARCH}" == "x86_64" ]]; then
|
||||
offset="$(od -An -j0x20E -dN2 "${_DESTDIR}/boot/${_VMLINUZ}")"
|
||||
read -r _HWKVER _ < <(dd if="${_DESTDIR}/boot/${_VMLINUZ}" bs=1 count=127 skip=$((offset + 0x200)) 2>"${_LOG}")
|
||||
elif [[ "${_RUNNING_ARCH}" == "aarch64" || "${_RUNNING_ARCH}" == "riscv64" ]]; then
|
||||
reader="cat"
|
||||
# try if the image is gzip compressed
|
||||
bytes="$(od -An -t x2 -N2 "${_DESTDIR}/boot/${_VMLINUZ}" | tr -dc '[:alnum:]')"
|
||||
[[ $bytes == '8b1f' ]] && reader="zcat"
|
||||
read -r _ _ _HWKVER _ < <($reader "${_DESTDIR}/boot/${_VMLINUZ}" | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]]+)+')
|
||||
fi
|
||||
_progress "66" "Preconfiguring mkinitcpio settings on installed system..."
|
||||
# arrange MODULES for mkinitcpio.conf
|
||||
_HWDETECTMODULES="$(hwdetect --kernel_directory="${_DESTDIR}" --kernel_version="${_HWKVER}" --hostcontroller --filesystem ${_FBPARAMETER})"
|
||||
# arrange HOOKS for mkinitcpio.conf
|
||||
_HWDETECTHOOKS="$(hwdetect --kernel_directory="${_DESTDIR}" --kernel_version="${_HWKVER}" --rootdevice="${_ROOTDEV}" --hooks-dir="${_DESTDIR}"/usr/lib/initcpio/install "${_HWPARAMETER}" --hooks)"
|
||||
# change mkinitcpio.conf
|
||||
[[ -n "${_HWDETECTMODULES}" ]] && sed -i -e "s/^MODULES=.*/${_HWDETECTMODULES}/g" "${_DESTDIR}"/etc/mkinitcpio.conf
|
||||
[[ -n "${_HWDETECTHOOKS}" ]] && sed -i -e "s/^HOOKS=.*/${_HWDETECTHOOKS}/g" "${_DESTDIR}"/etc/mkinitcpio.conf
|
||||
_progress "100" "Preconfiguring mkinitcpio settings on installed system..."
|
||||
}
|
||||
|
||||
_auto_mkinitcpio() {
|
||||
_FBPARAMETER=""
|
||||
_HWPARAMETER=""
|
||||
|
@ -199,33 +231,8 @@ _auto_mkinitcpio() {
|
|||
if lsmod | grep -q ^nfs; then
|
||||
_dialog --defaultno --yesno "Setup detected nfs driver...\nDo you need support for booting from nfs shares?" 0 0 && _HWPARAMETER="${_HWPARAMETER} --nfs"
|
||||
fi
|
||||
_dialog --no-mouse --infobox "Preconfiguring mkinitcpio settings on installed system..." 3 70
|
||||
# check on framebuffer modules and kms FBPARAMETER
|
||||
grep -q "^radeon" /proc/modules && _FBPARAMETER="--ati-kms"
|
||||
grep -q "^amdgpu" /proc/modules && _FBPARAMETER="--amd-kms"
|
||||
grep -q "^i915" /proc/modules && _FBPARAMETER="--intel-kms"
|
||||
grep -q "^nouveau" /proc/modules && _FBPARAMETER="--nvidia-kms"
|
||||
# check on nfs and keymap HWPARAMETER
|
||||
# check on used keymap, if not us keyboard layout
|
||||
! grep -q '^KEYMAP="us"' "${_DESTDIR}"/etc/vconsole.conf && _HWPARAMETER="${_HWPARAMETER} --keymap"
|
||||
# get kernel version
|
||||
if [[ "${_RUNNING_ARCH}" == "x86_64" ]]; then
|
||||
offset="$(od -An -j0x20E -dN2 "${_DESTDIR}/boot/${_VMLINUZ}")"
|
||||
read -r _HWKVER _ < <(dd if="${_DESTDIR}/boot/${_VMLINUZ}" bs=1 count=127 skip=$((offset + 0x200)) 2>"${_NO_LOG}")
|
||||
elif [[ "${_RUNNING_ARCH}" == "aarch64" || "${_RUNNING_ARCH}" == "riscv64" ]]; then
|
||||
reader="cat"
|
||||
# try if the image is gzip compressed
|
||||
bytes="$(od -An -t x2 -N2 "${_DESTDIR}/boot/${_VMLINUZ}" | tr -dc '[:alnum:]')"
|
||||
[[ $bytes == '8b1f' ]] && reader="zcat"
|
||||
read -r _ _ _HWKVER _ < <($reader "${_DESTDIR}/boot/${_VMLINUZ}" | grep -m1 -aoE 'Linux version .(\.[-[:alnum:]]+)+')
|
||||
fi
|
||||
# arrange MODULES for mkinitcpio.conf
|
||||
_HWDETECTMODULES="$(hwdetect --kernel_directory="${_DESTDIR}" --kernel_version="${_HWKVER}" --hostcontroller --filesystem ${_FBPARAMETER})"
|
||||
# arrange HOOKS for mkinitcpio.conf
|
||||
_HWDETECTHOOKS="$(hwdetect --kernel_directory="${_DESTDIR}" --kernel_version="${_HWKVER}" --rootdevice="${_ROOTDEV}" --hooks-dir="${_DESTDIR}"/usr/lib/initcpio/install "${_HWPARAMETER}" --hooks)"
|
||||
# change mkinitcpio.conf
|
||||
[[ -n "${_HWDETECTMODULES}" ]] && sed -i -e "s/^MODULES=.*/${_HWDETECTMODULES}/g" "${_DESTDIR}"/etc/mkinitcpio.conf
|
||||
[[ -n "${_HWDETECTHOOKS}" ]] && sed -i -e "s/^HOOKS=.*/${_HWDETECTHOOKS}/g" "${_DESTDIR}"/etc/mkinitcpio.conf
|
||||
_dialog --no-mouse --infobox "" 3 70
|
||||
_auto_hwdetect | _dialog --title " Logging to ${_LOG} " --gauge "Preconfiguring mkinitcpio settings on installed system..." 8 75 0
|
||||
# disable fallpack preset
|
||||
sed -i -e "s# 'fallback'##g" "${_DESTDIR}"/etc/mkinitcpio.d/*.preset
|
||||
# remove fallback initramfs
|
||||
|
|
Loading…
Reference in a new issue