New on LowEndTalk? Please Register and read our Community Rules.
All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.
All new Registrations are manually reviewed and approved, so a short delay after registration may occur before your account becomes active.

Comments
Currently, I'm using GLKVM for that purpose. And in case of something really catastrophic happens, I still have access to my BIOS.
Now, next step is Fortnite on VM
GL-inet comet kvm ?
Yes.
I mainly play simulator games, so EAC isn't an issue for me. Someone on Proxmox tried three (two) years ago. I would happily to test it if it will not require tinkering with my host environment. Will report back
Share some more Tweaks:
Technical Analysis Report: Resolving Hardware Sensor Detection Failure on Linux
Date: August 7, 2025
Subject: Resolving a hardware sensor detection failure on an ASUS ROG STRIX B650E-I GAMING WIFI motherboard running under a Linux environment.
System Context: Proxmox VE (Debian 13 "Trixie" base) with Kernel 6.14.8-2-pve.
Executive Summary
This report documents the diagnosis and resolution of an issue where the Linux operating system was unable to detect and report fan speeds and other critical sensor data on a modern server platform. The hardware consists of an ASUS ROG STRIX B650E-I motherboard and an AMD Ryzen 9 9950X3D CPU. The initial investigation revealed that the standard hardware monitoring suite,
lm-sensors, failed to identify the motherboard's Super I/O (S.I.O.) controller chip.The root cause was traced to an unknown chip ID,
0xd802, reported by thesensors-detectutility. The working hypothesis was that this new chip was compatible with the existing Nuvotonnct6775family driver, but its ID was not yet included in the driver's official support list.The problem was successfully resolved by forcing the
nct6775kernel module to recognize this specific ID. This action immediately enabled full monitoring capabilities, including fan speeds, temperatures, and voltages. The solution was then made permanent by creating amodprobeconfiguration file and updating theinitramfs, ensuring persistence across system reboots.1. Problem Description
Hardware Platform:
Software Environment:
Initial Symptoms:
sensorscommand, fan speeds were either missing or reported asN/A.2. Diagnostic Process and Analysis
2.1. Initial Diagnostic Tool (
lm-sensors)The standard diagnostic approach for such issues involves using the
lm-sensorspackage. Thesensors-detectscript was executed with superuser privileges to scan the system for all available hardware monitoring chips.2.2. Analysis of
sensors-detectOutputThe output from
sensors-detectprovided the definitive clue:Key Finding 1: Unknown Chip Identified
The log clearly states that during the Super I/O probe, it found a chip with the ID
0xd802. The Super I/O chip is a critical component responsible for low-bandwidth devices and, most importantly, the hardware monitoring sensors (fans, temperatures, voltages).Key Finding 2: Detection Failure
Because the ID
0xd802was not present in thesensors-detectdatabase, it could not match it to a known kernel driver. This resulted in a complete failure to configure any sensors, leading to the final message:Sorry, no sensors were detected.2.3. Hypothesis Formulation
Based on the evidence, the following hypothesis was formed:
nct6775driver likely supports the chip's functionality, but does not yet officially list its ID.0xd802chip was a variant compatible with the well-establishednct6775driver family (which covers a range of models like the nct6779, nct6798, etc.).nct6775kernel module to "force" ownership and initialization of this unknown chip ID, bypassing the need to wait for an official kernel patch.3. Solution and Implementation
3.1. Immediate Mitigation: Forcing Module Loading
To test the hypothesis, the
nct6775kernel module was loaded with theforce_idparameter:3.2. Verification of Results
Immediately after executing the command, the
sensorscommand was run again. The result was a success:nct6799-isa-0290device. This confirmed that thenct6775driver correctly identified the0xd802chip as a compatible model and initialized it.fan1andfan2were now clearly visible, resolving the core problem. As a benefit, all other motherboard sensors (temperatures and voltages) became available as well.3.3. Permanent Configuration
To ensure the solution persists after a reboot, the module option was made permanent.
Create Module Configuration File: A configuration file was created to automate the application of the
force_idparameter on boot:This file instructs the system to always use the
force_id=0xd802option whenever thenct6775module is loaded.Update Initial RAM Disk (initramfs): To ensure the kernel loads the module with the correct options during the early boot process, the initramfs was rebuilt:
4. Conclusion
The root cause of this issue was a predictable support lag between the release of new motherboard hardware and its inclusion in official Linux kernel drivers. By following a systematic diagnostic process, the key identifier of the unsupported hardware (
0xd802) was located from thesensors-detectlogs.The final solution, implemented by forcing an existing, compatible driver to claim the new device, was both effective and immediate. This case serves as an excellent example of the power and flexibility of the Linux ecosystem, which often provides the tools necessary to manage hardware interoperability challenges without waiting for official vendor or kernel updates. The server's full hardware monitoring capabilities have been successfully restored and made permanent.
It would be interresting to see how FreeBSD with BHyve VM compares to Proxmox VM.
Setup wise I have a feeling it would be easier, based on what I tried.
I currently am away from my gaming rig, so can't test. But is sometthing I keep on my todo list.
@jason5545 what a boss. Super impressed by your digging. Thanks for reporting back for helping out any future seeker. This to me is what internet is for. LLM cant help like this
I only heard of Proxmox and XCP-ng in the open-source territory, it's clear I have more to learn.
I did it some weeks ago, just to test it.
in /boot/loader.conf
vmm_load="YES"
pptdevs="0/21/0"
then in the bhyve vm config just put the passthru
passthru0="0/21/0"
worked as expected.
now I am using it for my homeassistant vm under bhyve.
but would be interesting how it compres with your setup and game.
https://wiki.freebsd.org/bhyve/pci_passthru
ps: prepare to go down the rabbit hole, freebsd is not linux. 😊😊
the nice thing is you can have a fully working workstation for day to day use, and running vm with the bhyve.
not as with proxmox, where you basically cant use the machine for anything else.
@angstrom request to move to General, Thanks
very cool you got it running!
no sound crackles? that was my biggest problem but some years ago.
you said i can PM you? save your dollars and get an addon and ENJOY!
Added some NUT configurations notes:
Technical Report: Implementing a Configurable Server Shutdown Delay for NUT Monitoring Systems
Date: August 08, 2025
Subject: Optimizing the shutdown strategy for the
LAB-22BR70Gserver, which is protected by anAPC Back-UPS RS 1500MSand monitored by Network UPS Tools (NUT).--
1. Executive Summary
This report addresses the inherent lack of proactive control in the default shutdown strategy of Network UPS Tools (NUT). The standard configuration is reactive, typically initiating a server shutdown only when the UPS battery reaches a critically low level. This behavior can lead to unnecessary downtime during short-term power outages that resolve within minutes. This document presents a complete solution: an automated management script,
nut-delay-manager.sh. This script empowers system administrators to easily view and configure a fixed "shutdown delay," allowing the server to wait for a user-defined period (e.g., 5 minutes) after a power failure before initiating its shutdown sequence. This implementation significantly enhances system stability and uptime.2. Background and Problem Statement
The server
LAB-22BR70Gis protected against power loss by anAPC Back-UPS RS 1500MSUninterruptible Power Supply (UPS). The server utilizes the Network UPS Tools (NUT) software suite to monitor the UPS status and automate a graceful shutdown when necessary.A review of the current configuration file,
upsmon.conf, reveals the use of an immediate shutdown command:SHUTDOWNCMD "/sbin/shutdown -h +0". The trigger for this command relies on NUT's default logic, which is to wait for the UPS to signal aLOWBATT(low battery) condition.This default strategy presents the following risks:
A more flexible and resilient shutdown policy is required, replacing the "low battery trigger" with a "fixed time delay."
3. Proposed Solution
To address the stated problem, this report proposes the implementation of a timer-based shutdown delay policy utilizing NUT's built-in scheduling tool,
upssched. The logic of this new policy is as follows:ONBATT): Whenupsmondetects that the UPS has switched to battery power, it will instructupsschedto start a countdown timer for a predefined duration (e.g., 300 seconds).ONLINE): If utility power is restored before the timer expires,upsschedwill cancel the shutdown timer. The server will continue to operate normally with no interruption.upsschedwill execute a command script. This script invokesupsmon -c fsd(Force Shutdown), compelling the server to begin a graceful shutdown immediately.To simplify the deployment and ongoing management of this configuration, a Bash script named
nut-delay-manager.shhas been developed. This script automates all necessary configuration file modifications and provides a simple command-line interface for administrators to view and set the shutdown delay time.4. Implementation Details
4.1. Management Script:
nut-delay-manager.shThis script is the core of the solution, encapsulating all configuration logic.
5. Usage and Operational Procedures
5.1. Installation Procedure
Create the script file:
Paste the content: Copy the entire script from Section 4.1 and paste it into the
nanoeditor.Save and exit: Press
Ctrl + X, followed byY, and thenEnter.Grant execute permissions:
(Recommended) Move to system path: To make the script globally accessible, move it to
/usr/local/sbin.5.2. Command Reference
Important: All commands must be executed with
sudoprivileges.To view the current delay setting:
To set the delay time (example: set to 5 minutes):
The script will prompt for confirmation. After entering
y, it will automatically apply all configurations and restart the necessary NUT services.6. Conclusion and Recommendations
This report has detailed the implementation of a robust server shutdown delay policy. Through the use of the
nut-delay-manager.shscript, system administrators can move beyond NUT's default, inflexible shutdown mechanism to a precisely controlled, timer-based approach.Key Benefits:
* Increased System Resilience: Significantly reduces unnecessary downtime caused by transient power events.
* Simplified Administration: Condenses a complex, multi-file configuration process into a single, intuitive command.
* Traceability: The script's automatic backup feature and clear configuration comments facilitate future audits and maintenance.
It is recommended that this script be adopted as a standard operating procedure for all critical systems protected by a UPS to ensure an enhanced and predictable response to power failures.
Thanks, will use it in my Fenix A320
Because I used Apollo, the sound driver will automatically switch to the steam streaming one, No cracking issues so far.
Do shutdown quickly and don't depleat your UPS battery too often or deeply...
If it is plomo that does not like that. Shutdown at 12V or earlier to not hurt it.
It works great the first few times you test. you get good "runtime" when power cuts out...
but when you really need It, maybe in a year, the battery could be almost dead.
Change battery before 2 years is adviced because when they can't keep the charge anymore they just die when power cuts out...
This often happens without any warning before and no more time to shutdown cleanly.
//:add
But a question i have. What is your UPS rated for (in VA) and real Watts.
If you UPS says 1000VA that's far away from beeing 1000 real Watts.
Mostly you must divide VA by 2 to get near the real supported wattage.
I would not run your system on a 1000VA.
At least 2000 VA to have some margin for peak spikes.
Here is the
upscoutput from my unit. I've removed the serial number, but the rest is straight from the system.upsc apc1500ms
Init SSL without certificate database
battery.charge: 100
battery.charge.low: 10
battery.charge.warning: 50
battery.date: 2001/09/25
battery.mfr.date: 2025/01/11
battery.runtime: 2790
battery.runtime.low: 120
battery.type: PbAc
battery.voltage: 27.3
battery.voltage.nominal: 24.0
device.mfr: American Power Conversion
device.model: Back-UPS RS 1500MS
device.serial: 5B25****
device.type: ups
driver.debug: 0
driver.flag.allow_killpower: 0
driver.name: usbhid-ups
driver.parameter.pollfreq: 30
driver.parameter.pollinterval: 2
driver.parameter.port: auto
driver.parameter.synchronous: auto
driver.state: quiet
driver.version: 2.8.1
driver.version.data: APC HID 0.100
driver.version.internal: 0.52
driver.version.usb: libusb-1.0.28 (API: 0x100010a)
input.sensitivity: high
input.transfer.high: 144
input.transfer.low: 88
input.transfer.reason: input voltage out of range
input.voltage: 110.0
input.voltage.nominal: 120
ups.beeper.status: disabled
ups.delay.shutdown: 20
ups.firmware: 966.h4 .D
ups.firmware.aux: h4
ups.load: 17
ups.mfr: American Power Conversion
ups.mfr.date: 2025/01/11
ups.model: Back-UPS RS 1500MS
ups.productid: 0002
ups.realpower.nominal: 900
ups.serial: 5B25****
ups.status: OL
ups.test.result: No test initiated
ups.timer.reboot: 0
ups.timer.shutdown: -1
ups.vendorid: 051d
```
Based on this data and the model number, the unit is a 1500VA model with a nominal real power rating of 900 Watts (
ups.realpower.nominal: 900). This gives it a power factor of 0.6. My current load is sitting at only 17% (ups.load: 17), which should provide a good amount of headroom for my needs and help accommodate any peak power draws.Regarding the battery health, I believe my usage patterns are helping to preserve it. The concern about deep discharging lead-acid batteries is very valid. Repeatedly discharging them too deeply can cause sulfation, where lead sulfate crystals build up and reduce the battery's ability to hold a charge. This seems to be a primary cause of premature battery failure.
The most common power issues I have are brief outages when a main breaker trips. The UPS only runs on battery for about five minutes in these cases. These short, infrequent events should count as shallow discharge cycles, which are much less damaging to the battery's long-term health than a full deep discharge.
For any predictable, longer-term outages, such as scheduled maintenance, I make it a point to shut down the protected equipment properly beforehand to avoid draining the battery at all. I think this approach, combined with the fact that the UPS isn't overloaded, should hopefully extend the battery's life and ensure it's ready when an unexpected outage occurs.
Thanks again for your valuable advice and for raising these important points.
great to see the data
battery.voltage: 27.3
battery.type: PbAc
if you didn't know: you have two 12V in series and chemical it is old style plomo acid.
Initiate shutdown when getting below 24.0 V (the nominal voltage)
ups.load: 17 @ 900W = 153 Watts usage when you measured.
Did you measure load when gaming?
The batteries drain dramatically quicker with double or triple the load, voltage drops faster.
Replacement-Battery-APC-Back-UPS-1500 B00PCSKZZU
9AH per battery.
In series 24V * 9 AH = ~216 (VAh similar to Watthours) but DC charge before transforming to AC outlet.
Add 20-30% loss from transformer and you have about 150 Wh remaining if you drain the battery completely.
At 17% load you can sustain almost an hour if you are lucky but you'r batteries don't like that.
Max Discharge for PbAc should be never more than 50% so you can use max 75 Wh without hurting your batts.
Another math issue that lowers the number again is:
We've calculated VAh with nominal voltage but voltage at max is about 27V and min can be as low as 21-22V depending where the cut-off voltage of your UPS is (mostly 10.5-11V per batt) but this low voltage the battery don't like
Voltage drops faster with more load and batteries drain more amps to supply the same amount of watts, this adds some % more loss.
Follow-up: why nvidia-drm.modeset=0 makes GPU passthrough steadier
Quick TL;DR: setting nvidia-drm.modeset=0 disables NVIDIA’s DRM/KMS on the host, so the host won’t grab the card for consoles/plymouth/Wayland. That keeps the GPU “clean” for VFIO, which in practice reduces “device is busy”, failed resets, and flaky re-binds after a VM shuts down.
What it actually changes
With KMS on (modeset=1), nvidia_drm registers a DRM device and the host can light up /dev/dri/* for fbcon, plymouth, or a display manager.
With KMS off (modeset=0), nvidia_drm doesn’t expose KMS, so the host is far less likely to touch the card. VFIO can claim it early and keep it.
Why this helps VFIO
Fewer conflicts from fbcon/Wayland/plymouth touching the GPU.
Better odds that resets succeed and the card is re-usable across VM start/stop cycles.
Especially helpful when the host uses a different adapter for display (e.g., an AMD iGPU) and the NVIDIA card is only for passthrough.
Trade-offs
No KMS on the host for that NVIDIA card (Wayland/DRM features won’t work on it).
Not an issue if the host has another display adapter or is headless.
Check your current state
Is KMS enabled for nvidia_drm? (Y = on, N = off)
cat /sys/module/nvidia_drm/parameters/modeset
Do DRM nodes exist for this GPU?
ls -l /dev/dri/ || true
Did the kernel get the parameter?
cat /proc/cmdline
Enable it (Debian/Proxmox example)
sudo nano /etc/default/grub
Add nvidia-drm.modeset=0 (keep your existing IOMMU flags)
Example:
GRUB_CMDLINE_LINUX_DEFAULT="quiet amd_iommu=on iommu=pt nvidia-drm.modeset=0"
sudo update-grub
If you use systemd-boot on Proxmox:
sudo proxmox-boot-tool refresh
sudo reboot
(Optional) Bind the card to vfio-pci early
This part avoids softdep/blacklist as requested.
Find your device IDs
lspci -nn | grep -i nvidia
Then set them (replace 10de:XXXX,10de:YYYY with your IDs)
sudo nano /etc/modprobe.d/vfio.conf
contents:
options vfio-pci ids=10de:XXXX,10de:YYYY disable_vga=1
Rebuild initramfs if your distro requires it, then reboot.
In short, nvidia-drm.modeset=0 keeps the host from “owning” the card via KMS, so VFIO can take exclusive control early. If your host display runs on another GPU (iGPU/AMD), this is a near-zero-cost stability win for passthrough.