mirror of
https://github.com/RROrg/rr.git
synced 2025-06-21 05:51:05 +08:00
rmmod net and drm driver before kexec
This commit is contained in:
parent
740143089c
commit
fbc24e0517
@ -12,19 +12,6 @@ loaderIsConfigured || die "$(TEXT "Loader is not configured!")"
|
||||
# Check if machine has EFI
|
||||
[ -d /sys/firmware/efi ] && EFI=1 || EFI=0
|
||||
|
||||
# Proc open nvidia driver when booting
|
||||
NVPCI_ADDR=$(lspci -nd 10de: | grep -e 0300 -e 0302 | awk '{print $1}')
|
||||
if [ -n "${NVPCI_ADDR}" ]; then
|
||||
modprobe -r nouveau || true
|
||||
NVDEV_PATH=$(find /sys/devices -name *${NVPCI_ADDR} | grep -v supplier)
|
||||
for DEV_PATH in ${NVDEV_PATH}
|
||||
do
|
||||
if [ -e ${DEV_PATH}/reset ]; then
|
||||
echo 1 > ${DEV_PATH}/reset || true
|
||||
fi
|
||||
done
|
||||
fi
|
||||
|
||||
BUS=$(getBus "${LOADER_DISK}")
|
||||
|
||||
# Print text centralized
|
||||
@ -184,6 +171,9 @@ if [ "${DT}" = "true" ] && ! echo "epyc7002 purley broadwellnkv2" | grep -wq "${
|
||||
fi
|
||||
fi
|
||||
|
||||
# CMDLINE['kvm.ignore_msrs']="1"
|
||||
# CMDLINE['kvm.report_ignored_msrs']="0"
|
||||
|
||||
if echo "apollolake geminilake" | grep -wq "${PLATFORM}"; then
|
||||
CMDLINE["intel_iommu"]="igfx_off"
|
||||
fi
|
||||
@ -332,6 +322,17 @@ else
|
||||
# Clear logs for dbgutils addons
|
||||
rm -rf "${PART1_PATH}/logs" >/dev/null 2>&1 || true
|
||||
|
||||
# Unload all network interfaces
|
||||
for D in $(readlink /sys/class/net/*/device/driver); do rmmod -f "$(basename ${D})" 2>/dev/null || true; done
|
||||
|
||||
# Unload all graphics drivers
|
||||
# for D in $(readlink /sys/class/drm/*/device/driver); do rmmod -f "$(basename ${D})" 2>/dev/null || true; done
|
||||
for D in $(lsmod | grep -E '^(nouveau|amdgpu|radeon|i915)' | awk '{print $1}'); do rmmod -f "${D}" 2>/dev/null || true; done
|
||||
for I in $(find /sys/devices -name uevent -exec bash -c 'cat {} 2>/dev/null | grep -Eq "PCI_CLASS=0?30[0|1|2]00" && dirname {}' \;); do
|
||||
[ -e ${I}/reset ] && cat ${I}/vendor >/dev/null | grep -iq 0x10de && echo 1 >${I}/reset || true # Proc open nvidia driver when booting
|
||||
done
|
||||
|
||||
# Reboot
|
||||
KERNELWAY="$(readConfigKey "kernelway" "${USER_CONFIG_FILE}")"
|
||||
[ "${KERNELWAY}" = "kexec" ] && kexec -a -e || poweroff
|
||||
exit 0
|
||||
|
Loading…
x
Reference in New Issue
Block a user