199 lines
6.1 KiB
Markdown
199 lines
6.1 KiB
Markdown
# Dell Fan Control - Proxmox 9 / Debian Trixie Compatible
|
|
|
|
## Overview
|
|
|
|
This is a **Proxmox 9 / Debian Trixie compatible** version of the Dell R710/R720 fan controller that fixes critical compatibility issues with modern systems. If you've upgraded to Proxmox 9 and your fan control stopped working with pysensors errors, this is the solution you've been looking for.
|
|
|
|
### 🚨 The Problem
|
|
The original fan controller breaks on:
|
|
- **Proxmox 9** (Debian Trixie based)
|
|
- **Python 3.13+** environments
|
|
- Systems with **updated pysensors** library
|
|
- Any modern Debian/Ubuntu installation
|
|
|
|
### ✅ The Solution
|
|
This version eliminates the problematic `pysensors` dependency and uses the reliable `sensors` command directly, providing:
|
|
- **100% compatibility** with Proxmox 9 and Debian Trixie
|
|
- **No more API breakage** from pysensors updates
|
|
- **Simplified installation** with fewer dependencies
|
|
- **Better error handling** and safety fallbacks
|
|
|
|
## Installation
|
|
|
|
### Quick Install (Recommended)
|
|
```bash
|
|
git clone https://git.noninjas.com/mike/Poweredge-Fan-Controller-Proxmox9Trixie.git
|
|
cd dell-fan-control-proxmox9
|
|
sudo ./install.sh
|
|
```
|
|
|
|
The default installation path is `/opt/fan_control` and the service will be installed as `fan-control.service`.
|
|
|
|
### Custom Installation Path
|
|
```bash
|
|
sudo ./install.sh /custom/path
|
|
```
|
|
|
|
### Post-Installation
|
|
1. **Edit the configuration:**
|
|
```bash
|
|
sudo nano /opt/fan_control/fan_control.yaml
|
|
```
|
|
|
|
2. **Check the service status:**
|
|
```bash
|
|
sudo systemctl status fan-control
|
|
```
|
|
|
|
3. **Monitor the logs:**
|
|
```bash
|
|
sudo journalctl -u fan-control.service -f
|
|
```
|
|
|
|
## Upgrading from Original Version
|
|
|
|
If you're upgrading from the original fan controller after a Proxmox 8→9 upgrade:
|
|
|
|
```bash
|
|
# Stop the broken service
|
|
sudo systemctl stop fan-control
|
|
|
|
# Backup your config
|
|
sudo cp /opt/fan_control/fan_control.yaml /opt/fan_control/fan_control.yaml.backup
|
|
|
|
# Clone and install the fixed version
|
|
git clone https://github.com/yourusername/dell-fan-control-proxmox9.git
|
|
cd dell-fan-control-proxmox9
|
|
sudo ./install.sh
|
|
|
|
# Your configuration will be automatically preserved
|
|
```
|
|
|
|
## Configuration
|
|
|
|
Edit `/opt/fan_control/fan_control.yaml` to set your temperature thresholds and fan speeds:
|
|
|
|
```yaml
|
|
general:
|
|
debug: false
|
|
interval: 30
|
|
|
|
hosts:
|
|
- name: MyLocalHost
|
|
hysteresis: 3
|
|
temperatures:
|
|
- 39 # Low temp threshold
|
|
- 45 # Medium temp threshold
|
|
- 55 # High temp threshold
|
|
speeds:
|
|
- 20 # Fan speed % for low temps
|
|
- 30 # Fan speed % for medium temps
|
|
- 40 # Fan speed % for high temps
|
|
```
|
|
|
|
## What's Changed
|
|
|
|
### 🔧 Technical Fixes
|
|
- **Removed pysensors dependency** - No more API compatibility issues
|
|
- **Direct sensors command parsing** - Uses the reliable `sensors` command output
|
|
- **Simplified virtual environment** - Only requires PyYAML now
|
|
- **Better error handling** - Graceful fallback to automatic mode on errors
|
|
- **Improved safety** - Service automatically returns fans to auto mode on failure
|
|
|
|
### 📦 Installation Improvements
|
|
- **Fewer system dependencies** - No more build tools or dev packages needed
|
|
- **Modern Python practices** - Uses `python3 -m venv` instead of legacy virtualenv
|
|
- **Better configuration handling** - Preserves existing configs during upgrades
|
|
- **Enhanced service file** - Includes resource limits and security hardening
|
|
|
|
### 🛡️ Safety Enhancements
|
|
- **Automatic fallback** - Switches to automatic fan control if temperature reading fails
|
|
- **Service restart protection** - Ensures fans return to auto mode if service crashes
|
|
- **Resource limits** - Prevents runaway CPU/memory usage
|
|
- **Timeout handling** - Protects against hanging sensor commands
|
|
|
|
## Compatibility
|
|
|
|
### ✅ Tested On
|
|
- **Proxmox VE 9.x** (Debian Trixie)
|
|
- **Debian 13 (Trixie)**
|
|
- **Python 3.13+**
|
|
- **Dell PowerEdge R710, R720**
|
|
|
|
### ⚠️ Original Version Issues
|
|
The original script fails on modern systems with errors like:
|
|
- `ModuleNotFoundError: No module named 'yaml'`
|
|
- `AttributeError: module 'sensors' has no attribute 'get_detected_chips'`
|
|
- `'Chip' object has no attribute 'get_features'`
|
|
- Virtual environment corruption after system upgrades
|
|
|
|
## Troubleshooting
|
|
|
|
### Service Won't Start
|
|
```bash
|
|
# Check the logs
|
|
sudo journalctl -u fan-control.service -n 50
|
|
|
|
# Test manually
|
|
sudo /opt/fan_control/venv/bin/python3 /opt/fan_control/fan_control.py
|
|
```
|
|
|
|
### No Temperature Readings
|
|
```bash
|
|
# Check if sensors work
|
|
sensors
|
|
|
|
# Run sensor detection
|
|
sudo sensors-detect
|
|
# Answer YES to safe probes, then reboot
|
|
```
|
|
|
|
### Fans Still Loud
|
|
```bash
|
|
# Check if IPMI is working
|
|
sudo ipmitool sensor list | grep -i fan
|
|
|
|
# Verify iDRAC connectivity (if using remote)
|
|
sudo ipmitool -I lanplus -H your-idrac-ip -U username -P password sensor list
|
|
```
|
|
|
|
## Credits
|
|
|
|
This project is based on the excellent work by **[Niccolò Maggioni](https://github.com/nmaggioni)** in the original [r710-fan-controller](https://github.com/nmaggioni/r710-fan-controller) repository.
|
|
|
|
### Original Author
|
|
- **Niccolò Maggioni** - [nmaggioni](https://github.com/nmaggioni)
|
|
- Original repository: https://github.com/nmaggioni/r710-fan-controller
|
|
|
|
### Modifications for Proxmox 9 Compatibility
|
|
- **Proxmox 9 compatibility fixes and modern Python support
|
|
|
|
## License
|
|
|
|
This project maintains the same license as the original work. Please see the [original repository](https://github.com/nmaggioni/r710-fan-controller) for license details.
|
|
|
|
## Contributing
|
|
|
|
Found a bug or have an improvement? Please open an issue or submit a pull request!
|
|
|
|
### Common Contribution Areas
|
|
- Support for additional Dell PowerEdge models
|
|
- Enhanced configuration validation
|
|
- Additional safety features
|
|
- Documentation improvements
|
|
|
|
## Changelog
|
|
|
|
### v2.0.0 (Proxmox 9 Compatible)
|
|
- **BREAKING**: Removed pysensors dependency
|
|
- **NEW**: Direct sensors command parsing
|
|
- **NEW**: Enhanced error handling and safety
|
|
- **NEW**: Simplified installation process
|
|
- **FIX**: Compatibility with Python 3.13+
|
|
- **FIX**: Compatibility with Proxmox 9 / Debian Trixie
|
|
- **IMPROVE**: Better configuration preservation during upgrades
|
|
- **IMPROVE**: Enhanced systemd service with resource limits
|
|
|
|
---
|
|
|
|
## ⭐ Star this repo if it saved your ears from screaming fans! ⭐ |