Proprietary DriversΒΆ
DescriptionΒΆ
This Ansible role installs non-free GPU drivers on Arch Linux systems by invoking the mhwd utility. It ensures that the appropriate proprietary drivers for your PCI graphics hardware are installed and ready for use.
OverviewΒΆ
Uses the
ansible.builtin.shellmodule to runmhwd -a pci nonfree 0300Automatically detects your PCI graphics adapter and installs the recommended non-free driver
Designed to be run once per host to provision proprietary GPU support
CosmosΒΆ
The diagram places Proprietary Drivers in the Infinito.Nexus cosmos: the components it deploys (capabilities), the central services it consumes (dependencies), and its outward reach (federation and bridged external networks).
flowchart LR
subgraph role [drv-non-free π»]
svc_non_free["non-free"]
end
Solid 1:1 edges are fixed relationships; dashed 0..1 edges are conditional (enabled only in matching deployments); red 0..0 edges are turned off in this role. Node markers show the roleβs deploy modes (π» host, π³ compose, π swarm); β marks a service that is explicitly turned off, and βοΈ an Ansible role dependency declared in meta/main.yml.
FeaturesΒΆ
Automatic Hardware Detection
Leveragesmhwdβs built-in auto-detect feature (0300) to select the correct driver.Proprietary Driver Installation
Installs the latest non-free GPU driver (e.g., NVIDIA, AMD) provided through Archβsmhwdsystem.Simple Execution
Single-task role with minimal overhead.
Quick SetupΒΆ
DevelopmentΒΆ
Clone, set up the workstation, and deploy Proprietary Drivers onto the local stack:
git clone https://github.com/infinito-nexus/core.git
cd core
make onboard
make compose-deploy mode=reinstall apps=drv-non-free full_cycle=false
ProductionΒΆ
Install Proprietary Drivers directly onto the target machine: clone the repository, install the OS prerequisites and the repository toolchain, then deploy against localhost over a local connection (no SSH, no container):
git clone https://github.com/infinito-nexus/core.git
cd core
bash scripts/install/package.sh
make install
source scripts/meta/env/load.sh
APP=drv-non-free
DOMAIN=<your-domain>
TLS_MODE=self_signed
SSH_PUBLIC_KEY="<your-ssh-public-key>"
INVENTORY=inventories/production
infinito administration inventory provision "$INVENTORY" \
--inventory-file "$INVENTORY/devices.yml" \
--host localhost \
--include "$APP" \
--vars "{\"TLS_MODE\": \"$TLS_MODE\", \"DOMAIN_PRIMARY\": \"$DOMAIN\", \"users\": {\"administrator\": {\"authorized_keys\": [\"$SSH_PUBLIC_KEY\"]}}}"
infinito administration deploy dedicated "$INVENTORY/devices.yml" \
--password-file "$INVENTORY/.password" \
--diff -vv
Further ResourcesΒΆ
CreditsΒΆ
Implemented by Kevin Veen-Birkenbach. Part of the Infinito.Nexus Project and maintained by Kevin Veen-Birkenbach. Licensed under the Infinito.Nexus Community License (Non-Commercial).