You are not logged in.
I have a laptop with intel iGPU and a nvidia dGPU (optimus laptop). I made a script which help me load and unload modules when needed.
$ cat dgpu
VFIO_MODULES=("vfio_pci" "vfio_iommu_type1" "vfio")
NVIDIA_MODULES=("nvidia_uvm" "nvidia_drm" "nvidia_modeset" "nvidia" "i2c_nvidia_gpu")
NOUVEAU_MODULE="nouveau"
PCI_IDS=("01_00_0" "01_00_1" "01_00_2" "01_00_3")
nvidia() {
sudo modprobe -r $NOUVEAU_MODULE
for module in ${VFIO_MODULES[@]}; do
sudo modprobe -r $module
done
sudo systemctl start libvirtd
for pci in ${PCI_IDS[@]}; do
sudo virsh nodedev-reattach pci_0000_$pci
done
for module in ${NVIDIA_MODULES[@]}; do
sudo modprobe $module
done
sudo systemctl stop libvirtd
}
intel() {
sudo systemctl start libvirtd
for module in ${NVIDIA_MODULES[@]}; do
sudo modprobe -r $module
done
sudo modprobe -r $NOUVEAU_MODULE
for pci in ${PCI_IDS[@]}; do
sudo virsh nodedev-dettach pci_0000_$pci
done
for module in ${VFIO_MODULES[@]}; do
sudo modprobe $module
done
}
nouveau() {
for module in ${NVIDIA_MODULES[@]}; do
sudo modprobe -r $module
done
sudo systemctl start libvirtd
for module in ${VFIO_MODULES[@]}; do
sudo modprobe -r $module
done
for pci in ${PCI_IDS[@]}; do
sudo virsh nodedev-reattach pci_0000_$pci
done
sudo systemctl stop libvirtd
sudo modprobe $NOUVEAU_MODULE
}
case $1 in
"nvidia")
nvidia
;;
"intel")
intel
;;
"nouveau")
nouveau
;;
*)
echo "select between nvidia | intel | nouveau"
;;
esacI have freeze when:
1. When i start the WM (dwm) and try to start VM.
2. When i Poweroff my laptop after using VM.
3. And many more other random freeze.
I can start the VM with tty (at login) and then start the WM, no issues.
$ cat /etc/mkinitcpio.conf
MODULES=(vfio vfio_pci vfio_iommu_type1)
BINARIES=()
FILES=()
HOOKS=(base udev autodetect keyboard keymap modconf block filesystems fsck)$ cat /etc/mkinitcpio.conf
MODULES=()
BINARIES=()
FILES=()
HOOKS=(base udev autodetect keyboard keymap modconf block filesystems fsck)$ cat /boot/loader/entries/*linux.conf
# Created by: archinstall
# Created on: 2023-08-27_14-15-52
title Arch Linux (linux)
linux /vmlinuz-linux
initrd /intel-ucode.img
initrd /initramfs-linux.img
options root=PARTUUID=c7a68591-ddb6-4902-b23d-dbaf6d527c3e rw rootfstype=ext4 intel_iommu=onThank you!!
Offline