58 lines
2.1 KiB
Markdown
58 lines
2.1 KiB
Markdown
|
---
|
||
|
title: Qubes `sys-gui-gpu`
|
||
|
description: Enables `sys-gui-gpu` if a compatible GPU controller is found on Qubes dom0
|
||
|
sidebar_label: 19 Qubes `sys-gui-gpu`
|
||
|
slug: /scripts/before/run_onchange_before_19-setup-sys-gui.sh.tmpl
|
||
|
githubLocation: https://github.com/megabyte-labs/install.doctor/blob/master/home/.chezmoiscripts/universal/run_onchange_before_19-setup-sys-gui.sh.tmpl
|
||
|
scriptLocation: https://github.com/megabyte-labs/install.doctor/raw/master/home/.chezmoiscripts/universal/run_onchange_before_19-setup-sys-gui.sh.tmpl
|
||
|
repoLocation: home/.chezmoiscripts/universal/run_onchange_before_19-setup-sys-gui.sh.tmpl
|
||
|
---
|
||
|
# Qubes `sys-gui-gpu`
|
||
|
|
||
|
Enables `sys-gui-gpu` if a compatible GPU controller is found on Qubes dom0
|
||
|
|
||
|
## Overview
|
||
|
|
||
|
This script enables `sys-gui-gpu` which allows you to secure dom0 even more by seperating the GUI
|
||
|
management from dom0 and into a seperate Qube.
|
||
|
|
||
|
|
||
|
|
||
|
## Source Code
|
||
|
|
||
|
```
|
||
|
{{- if (eq .host.distro.id "qubes") -}}
|
||
|
#!/usr/bin/env bash
|
||
|
# @file Qubes `sys-gui-gpu`
|
||
|
# @brief Enables `sys-gui-gpu` if a compatible GPU controller is found on Qubes dom0
|
||
|
# @description
|
||
|
# This script enables `sys-gui-gpu` which allows you to secure dom0 even more by seperating the GUI
|
||
|
# management from dom0 and into a seperate Qube.
|
||
|
|
||
|
### Enables sys-gui-gpu
|
||
|
enableSysGUIGPU() {
|
||
|
logg info 'Enabling `sys-gui-gpu`'
|
||
|
qubesctl top.enable qvm.sys-gui-gpu
|
||
|
qubesctl top.enable qvm.sys-gui-gpu pillar=True
|
||
|
qubesctl --all state.highstate
|
||
|
qubesctl top.disable qvm.sys-gui-gpu
|
||
|
}
|
||
|
|
||
|
### Enable appropriate sys-gui
|
||
|
if qvm-pci list | grep 'VGA compatible controller' | grep 'Intel'; else
|
||
|
logg info 'An Intel GPU was detected'
|
||
|
enableSysGUIGPU
|
||
|
logg info 'Attaching Intel GPU PCI devices to sys-gui-gpu'
|
||
|
qubesctl state.sls qvm.sys-gui-gpu-attach-gpu
|
||
|
elif qvm-pci list | grep 'VGA compatible controller' | grep 'NVIDIA'; then
|
||
|
logg info 'An NVIDIA GPU was detected'
|
||
|
enableSysGUIGPU
|
||
|
logg info 'Attaching NVIDIA GPU PCI devices to sys-gui-gpu'
|
||
|
for ID of "$(qvm-pci list | grep 'NVIDIA' | sed 's/^\([^ ]*\).*/\1/')"; do
|
||
|
logg info "Attaching PCI device with ID of $ID"
|
||
|
qvm-pci attach sys-gui-gpu "$ID" --persistent -o permissive=true
|
||
|
done
|
||
|
fi
|
||
|
{{ end -}}
|
||
|
```
|