Repository navigation
Conversation
gpu-node/gpu-node-check.sh checks a GPU node (driver, firmware, container runtime, CPU governor, disk, k3s version) and gpu-node/proxmox-gpu-lxc.sh checks a Proxmox host and its LXC container. Both only report unless --apply is given. The README walks through dedicated machines, VMs and Proxmox LXC containers for NVIDIA and AMD, one vendor per panel as setup-gpu-nodes.sh sets it up.
|
Reviewed at bb035b0. Report mode really is read-only, there's no injection path, nothing blacklists modules or writes GPU power or clock settings, and the LXC lines match the api script. Must fix
Smaller
Please test
Conflict: only |
…k-scripts # Conflicts: # .github/workflows/panel-scripts.yml
- The config is rewritten like pve-common's file_set_contents: a temp file beside it, checked (awk result, not empty, every line kept), then renamed over it. Any failure leaves the config as it was and reports a FAIL. - The backup is checked; when it fails, --apply changes nothing. - --apply stops at an unprivileged container instead of adding the lines. - proc:rw now comes with the warning that the kubelet then sets vm.overcommit_memory, kernel.panic and kernel.panic_on_oops on the whole host. - The disk check asks for 120 GB free: measured inside a running container, from the size (140 GB with the system) in a stopped one. Sizes in M, K or bytes are read right (131072M is 128 GB). - nomodeset and the amdgpu kernel arguments only fail an AMD host. - The CPU governor uses 5stack-cpu-governor.service, the panel tuning's unit, is restarted rather than enabled with --now, and only reports a fix once every CPU runs performance. The NVIDIA device unit is checked the same way.
- An integrated AMD GPU is only ticked in setup-gpu-nodes.sh's integrated list when it is the node's only AMD GPU; beside a discrete card it stays unticked so the card renders. - The amdgpu.runpm=0 advice is gone: there is no kernel parameter to add. - The NVIDIA driver install keeps its own output quiet, so its FIX or FAIL line and the reboot note print again. - The missing device node hint names nvidia-modprobe -m for /dev/nvidia-modeset. - The k3s pin goes after sudo in the join command (sudo INSTALL_K3S_VERSION=... sh -s -- join), since sudo drops an exported variable. - The LXC check tests /proc/sys/vm/overcommit_memory, which proc:mixed leaves read-only, instead of /proc/sys/net. - The CPU governor uses 5stack-cpu-governor.service like the panel tuning, restarted and verified. - The script can be sourced for its functions; gpu_node_check_test.sh covers them and runs in the panel scripts workflow.
- How to get the scripts onto a GPU node or Proxmox host. - The k3s pin goes after sudo in the get.5stack.gg join command. - Nodes are created on the Game Server Nodes page; setup-gpu-nodes.sh runs as sudo 5stack run setup-gpu-nodes.sh on a service install. - Only the two check scripts take --apply. - The proc:rw host-wide warning, the 120 GB free disk rule, the discrete-card rule for the integrated list, nvidia-modprobe -m, and no amdgpu.runpm=0.
- A running container with CS2 installed needs the existing install minimum (60 GB) free, not the fresh one; the disk messages name both panel settings. - The governor unit also sets GOVERNOR="performance" in /etc/default/cpufrequtils when that file exists, as the panel's CPU governor tuning does. - --apply with a missing or unprivileged container turns itself off before any host step, so a run that cannot finish changes nothing. - A failed pct set or LXC line change no longer asks for a restart. - Without nvidia-modprobe, --apply says it cannot add the device node unit instead of promising one. - The host governor check reads CPU_SYSFS like the rest of the script.
- Only an AMD card bound to amdgpu counts as a discrete GPU for the integrated list advice; one on vfio-pci or without a driver does not. - The governor unit also sets GOVERNOR="performance" in /etc/default/cpufrequtils when that file exists, as the panel's CPU governor tuning does. - The k3s pin hint says it is untested: INSTALL_K3S_VERSION only takes effect if the join passes it through to the k3s installer. - A test drives install_nvidia_driver through check_nvidia.
check_container stops after the unprivileged failure when --apply was refused, like it does under --apply, so the report no longer offers fixes that a rerun with --apply would refuse again. gpu-node-check.sh's apply_step returns 1 on failure, like the Proxmox script's.
|
Thanks for the review. All of it is fixed, first in a4b38de (with main merged in at d04a158 and the conflict resolved the way you described), then a second pass in f7f0f67, 615fc10, bb0b1e1 and 069b8b0 (head 069b8b0). The line numbers below are for 069b8b0. Must fix
Smaller
Tests
Not tested
|
|
I trimmed the comments, README and description myself in 0a02779, so pull before your next push. Script behaviour is unchanged; only some hint text moved or went. The k3s pin caveat is gone from the scripts, the README and the test. I traced it on Still needed before merge: |
…ff PATH proxmox-gpu-lxc.sh counted a container that gets its GPU through Proxmox's devN: entries (dev0: /dev/kfd,gid=993, dev1: /dev/dri/renderD128) as missing the /dev/dri and /dev/kfd binds, and --apply would have added them a second time. A devN entry for the device, or for a render node in the case of /dev/dri, now counts. gpu-node-check.sh looked for k3s on PATH only, which pct exec and some sudo setups leave without /usr/local/bin, so an installed k3s read as not installed.
|
Reviewed 6572980: the Not merging yet: |
Adds two check scripts for GPU nodes next to
setup-gpu-nodes.sh, and a README for setting up a dedicated machine, a VM or a Proxmox LXC container.gpu-node/gpu-node-check.shchecks a GPU node: driver, firmware, container runtime, CPU governor, disk and k3s version.gpu-node/proxmox-gpu-lxc.sh CTIDchecks the Proxmox host and the container's settings.--applyis passed, exit 1 while a check fails, and never touch GPU power or clock settings.gpu-node/README.mdcovers NVIDIA and AMD, one vendor per panel assetup-gpu-nodes.shsets it up.