A vibe-coded, poor quality driver to read hardware info on my personal NAS hardware running OmniOS. Only supports the IT8613E chip in the context of the Aoostar WTR PRO (AMD 5825u version). Being LLM generated, the readings are probably untrustworthy. At least the fan control appears to function, so I can set the speed according to the HDDs temperatures reported via smartctl.
- Reads temperature sensor on the HDD cage plus a bonus CPU temperature reading.
- Reads 10 voltages, but without knowledge of how the chip is wired up, doesn't give useful data.
Read with the included sensorreader:
./sensorreader /dev/sensors/*/*/*
/dev/sensors/temperature/cpu/procnode.0: 290 (kind=4, unit=6)
/dev/sensors/temperature/motherboard/cpu: 36°C (unit: Celsius)
/dev/sensors/temperature/motherboard/HDDcage: 30°C (unit: Celsius)
/dev/sensors/voltage/motherboard/in0: 0.759V (759000 µV)
/dev/sensors/voltage/motherboard/in1: 1.232V (1232000 µV)
/dev/sensors/voltage/motherboard/in2: 1.716V (1716000 µV)
/dev/sensors/voltage/motherboard/in3: 1.474V (1474000 µV)
/dev/sensors/voltage/motherboard/in4: 1.606V (1606000 µV)
/dev/sensors/voltage/motherboard/in5: 1.485V (1485000 µV)
/dev/sensors/voltage/motherboard/in6: 2.695V (2695000 µV)
/dev/sensors/voltage/motherboard/in7: 0.341V (341000 µV)
/dev/sensors/voltage/motherboard/in8: 1.584V (1584000 µV)
/dev/sensors/voltage/motherboard/in9: 0.000V (0 µV)I've seen inconsistant claims that the IT8613E reads in steps of 11mV or 12mV. Each input can only handle up to ~3V, so voltage dividers are used to read higher voltages.
- Read CPU (Fan 1) and HDD cage (Fan 2) rpm speeds.
- Simple PWM control.
- Return to BIOS configured 'auto' speed.
Included fanctl to read and set speeds.
./fanctl list
Fan Status:
Fan 1: 1500 RPM
Fan 2: 1062 RPM
PWM Status:
PWM 1: 40/255 ( 15%) - Automatic
PWM 2: 130/255 ( 50%) - Automatic
./fanctl set 2 33%
PWM 2 set to 84/255 (32%)
Note: Fan is now in manual mode. Use 'auto 2' to restore automatic control.Automatic means the BIOS/chip controls fan based on temperature curves. Manual is when you've set a PWM duty cycle.
Needs build tools installed:
pkg install build-essentialgit clone/download the files, then compile & install:
# Inside folder
make
make installThen use the included programs:
./fanctl list
./sensorreader /dev/sensors/*/*/*Or manually install:
make
cp it87 /kernel/drv/amd64/
cp it87.conf /kernel/drv/
add_drv it87Created with the help of this excellently documented fork of the Linux it87 driver for ITE's series of LPC Super-I/O chips. As well as the LibreHardwareMonitor project that includes it's own implementation.