Enable manual/static fan control: ipmitool -I lanplus -H drac -U root -P calvin raw 0x30 0x30 0x01 0x00 Disable manual/static fan control: ipmitool -I lanplus -H drac -U root -P calvin raw 0x30 0x30 0x01 0x01 # Power to 96 (1..100) ipmitool -I lanplus -H drac -U root -P calvin raw 0x30 0x30 0x02 0xff 96 ipmitool -I lanplus -H drac -U root -P calvin sdr list full CPU 00-15: k10temp-pci-00c3 CPU 00-15: k10temp-pci-00cb CPU 16-31: k10temp-pci-00f3 CPU 16-31: k10temp-pci-00fb CPU 32-47: k10temp-pci-00d3 CPU 32-47: k10temp-pci-00db CPU 48-63: k10temp-pci-00e3 CPU 48-63: k10temp-pci-00eb k10temp-pci-00f3, 41 k10temp-pci-00fb, 41 k10temp-pci-00c3, 43.125 k10temp-pci-00cb, 43.375 k10temp-pci-00e3, 46.25 k10temp-pci-00eb, 46.125 k10temp-pci-00d3, 48.25 k10temp-pci-00db, 48.125 B k10temp-pci-00f3, 38 k10temp-pci-00fb, 38.25 A k10temp-pci-00c3, 39.5 k10temp-pci-00cb, 39.625 D k10temp-pci-00e3, 39.875 k10temp-pci-00eb, 39.75 C k10temp-pci-00d3, 41.875 k10temp-pci-00db, 41.75 forever sensors -j | jq -r '.|with_entries(select(.key | test("temp")))|[.[]["temp1"]["temp1_input"]]|@tsv' forever sensors -j | jq -r '.|with_entries(select(.key | test("temp")))|keys[] as $k | "\($k), \(.[$k] | .["temp1"]["temp1_input"])"' # if temp < 60: turn fan down (5) # else fan = (temp-60)*(100/(67-60)) = 60=>5 67=>100 # 20 = crash efter 3 linjer # 25 = OK # 23 = OK efter 10 linjer + start af burncpu # 22 = crash efter 10 linjer + start af burncpu # 21 = crash efter 10 linjer + start af burncpu fanspeed() { sensors -j | jq '[.[]["temp1"]["temp1_input"]] | (max-60)*(100/(67-60)) | if . < 24 then 24 else if . > 100 then 100 else.|floor end end'; } autofan() { setspeed() { ipmitool -I lanplus -H drac -U root -P calvin raw 0x30 0x30 0x02 0xff $@ } while true; do fanspeed=`fanspeed` printf "$fanspeed "$(setspeed $fanspeed) sleep 1 done } autofan forever sensors -j | fmt