#! /bin/bash
shopt -s nullglob
for g in ` find /sys/kernel/iommu_groups/* -maxdepth 0 -type d | sort -V` ; do
echo " IOMMU Group ${g##*/ } :"
for d in $g /devices/* ; do
echo -e " \t$( lspci -nns ${d##*/ } ) "
done ;
done ;
cd ~ &&
curl https://raw.githubusercontent.com/pavolelsig/Passthrough_helper_PopOS/master/popos_helper.sh | sudo bash &&
sudo apt update &&
sudo apt install -y ovmf virt-manager &&
if [[ -z " ${ISO_PATH} " ]]; then
echo " SET WINDOWS ISO ABSOLUTE PATH:" && read ISO_PATH
fi &&
if [ ! -f ./vmdisk.qcow2 ]; then
ISO_COMMAND=$( echo " --cdrom=\" ${ISO_PATH} \" " ) &&
qemu-img create -f qcow2 \
-o cluster_size=2M \
vmdisk.qcow2 1024G
fi &&
bash -c "
virt-install \
--name=win-game \
--memory=4096 \
--vcpus 3 \
--boot loader=/usr/share/ovmf/OVMF.fd \
$ISO_COMMAND \
--disk ./vmdisk.qcow2
"
Proceed installation
Shutdown the machine
Host looking glass download and setup
cd ~ &&
mkdir -p .looking-glass &&
cd .looking-glass &&
DOWNLOAD_ID=688 &&
wget -O looking-glass.tar.gz " https://looking-glass.io/ci/host/source?id=${DOWNLOAD_ID} " &&
tar -zxvf looking-glass.tar.gz &&
rm -rf looking-glass.tar.gz &&
wget -O guest-looking-glass.zip " https://looking-glass.io/ci/host/download?id=${DOWNLOAD_ID} " &&
HASH_PASS=" $( curl -s " https://looking-glass.io/ci/host/build-log?id=${DOWNLOAD_ID} " | tail -n 1 | grep -Po " \b\w{8}\b$" ) " &&
bash -c " 7z e guest-looking-glass.zip $HASH_PASS " &&
mv looking-glass-B* looking-glass-source &&
rm -rf guest-looking-glass.zip &&
git clone git@github.com:pavolelsig/L-G_helper.git &&
chmod +x ./L-G_helper/* .sh &&
cp -r looking-glass-source L-G_helper &&
(cd L-G_helper; yes | sudo ./lg.sh) &&
cp L-G_helper/looking-glass-source/client/build/looking-glass-client ./ &&
# Download virtfs here
wget -O IVSHMEM.zip https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/upstream-virtio/virtio-win10-prewhql-0.1-161.zip &&
wget https://www.spice-space.org/download/windows/spice-guest-tools/spice-guest-tools-latest.exe &&
wget https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/archive-virtio/virtio-win-0.1.190-1/virtio-win-guest-tools.exe &&
sudo apt install -Y libguestfs-tools &&
sudo virt-copy-in -a ~ /vmdisk.qcow2 ~ /.looking-glass / &&
sudo virsh dumpxml win-game > vm-config.original.xml &&
cp vm-config.original.xml vm-config.copy.xml &&
SHARE_M="
<shmem name='looking-glass'>
<model type='ivshmem-plain'/>
<size unit='M'>32</size>
</shmem>
" &&
perl -0777 -i -pe " s~(</devices>)~$SHARE_M \$ 1~g" vm-config.copy.xml &&
# perl -0777 -i -pe "s~<model.*?vgamem.*?/> ~ <model type='none'/> ~g" vm-config.copy.xml &&
virsh define vm-config.copy.xml
Proceed to C:/
Install looking glass client
Install PCI RAM Controller - IVSHMEM
Through virtual manager...
Download and install drivers
Shutdown
# Improve experience
# perl -0777 -i -pe "s~type='keyboard'~ type='virtio' ~g" vm-config.original.xml
# Install on windows https://fedorapeople.org/groups/virt/virtio-win/direct-downloads/latest-virtio/virtio-win-guest-tools.exe