30 lines
742 B
Bash
30 lines
742 B
Bash
#!/bin/bash
|
|
if [[ ! -f /var/cache/disable-gpu ]] &>/dev/null; then
|
|
exit 0
|
|
fi
|
|
if grep "nomodeset" /proc/cmdline ; then
|
|
exit 0
|
|
fi
|
|
|
|
remove_pci(){
|
|
if [[ -d "/sys/bus/pci/devices/0000:$1/driver" ]] ; then
|
|
module=$(basename $(readlink /sys/bus/pci/devices/0000:$1/driver/module))
|
|
echo "Disabled: $module ($1)"
|
|
rmmod -f $module
|
|
fi
|
|
echo 1 > /sys/bus/pci/devices/0000:$1/remove
|
|
}
|
|
|
|
echo 1 > /sys/bus/pci/rescan
|
|
|
|
for dir in /sys/class/drm/card[0-9*] ; do
|
|
# 03 Display controller
|
|
# 02 3D controller
|
|
if grep "^0x0302" $dir/device/class ; then
|
|
pci="$(basename $(readlink $dir/device))"
|
|
echo "Found 3D controller: ${pci:5}"
|
|
remove_pci "${pci:5}"
|
|
fi
|
|
done
|
|
udevadm control --reload
|