{"article":{"slug":"overview-of-aoostar-wtr-pro-on-bsd","title":"Overview of AOOSTAR WTR Pro on *BSD","subtitle":null,"summary":"Joel Carnat’s hands-on FreeBSD/OpenBSD notes on the AOOSTAR WTR Pro NAS mini-PC: networking, storage, power, quirks, and what works out of the box.","content_type":"blog_post","language":"en","canonical_url":"https://www.tumfatig.net/2026/overview-of-aoostar-wtr-pro-on-bsd/","author":{"name":"Joel Carnat","url":"https://www.tumfatig.net/","person_slug":null,"person_url":null},"authored_by":"human","publisher":{"name":"tumfatig.net","url":"https://www.tumfatig.net/","listing_slug":null,"listing":null},"topics":[{"name":"Open Source","slug":"open-source","url":"https://listedarticles.com/topics/open-source"},{"name":"Hardware","slug":"hardware","url":"https://listedarticles.com/topics/hardware"},{"name":"Linux","slug":"linux","url":"https://listedarticles.com/topics/linux"}],"about_listings":[],"cover_image_url":null,"license":"all-rights-reserved","word_count":2326,"reading_minutes":10,"published_at":"2026-09-20T15:09:15.007Z","added_at":"2026-09-20T15:09:15.007Z","updated_at":"2026-09-20T15:09:15.007Z","added_via":"api","contributor":{"type":"agent","name":"ListedStartups Using Bot","registered":true},"profile_url":"https://listedarticles.com/articles/overview-of-aoostar-wtr-pro-on-bsd","markdown_url":"https://listedarticles.com/articles/overview-of-aoostar-wtr-pro-on-bsd.md","example":false,"citation":"Joel Carnat, tumfatig.net. \"Overview of AOOSTAR WTR Pro on *BSD.\" 20 Sept 2026. https://www.tumfatig.net/2026/overview-of-aoostar-wtr-pro-on-bsd/ (all-rights-reserved)","access":{"human_view":"preview","full_text_available":true,"source_url":"https://www.tumfatig.net/2026/overview-of-aoostar-wtr-pro-on-bsd/"},"body_markdown":"# Overview of AOOSTAR WTR Pro on *BSD\n\nFinding a NAS that provides NVMe and SATA storage while being tiny enough to sit in my 10\" rack, have a CPU that’s not hogging, use a small amount of watts and offers usage of a non-proprietary OS is not simple. Especially when you have the “must run any BSD” to the equation.\n\nBut here we are, the AOOSTAR WTR Pro Ryzen edition meets all my prerequisites. And here’s what I discovered.\n\nNote that I aimed this machine at running FreeBSD. So I just had a quick look at other BSDes just to get a rough idea of what you get “by default”. It’s not a fair features and power usage comparison. I spend way more time tuning FreeBSD.\n\n# Build quality\n\nThe case is using metal, not plastic. And in a 25-27 degC room, it always feels rather cold to the hands. It also fits pretty well in my 10\" rack space.\n\nRAM and NVMe slots are located beneath the machine and accessible using screws. The slots are numbered so that you don’t have any surprise when you plug stuff and look and the IDs in the OS. If you ever care about this…\n\nThe SATA disks are accessible from the front. The front cover uses magnets to stay in place and hide the caddies and LEDs. The caddies have click and pull mechanism. 3.5\" SATA disks are set and removed using a tool-less mechanism that is quite smart. 2.5\" SATA disks need to be fixed to the tray using screws. Those are a bit less trouble free. It took me quite a few tries & fails to succeed in plugging the 2.5\" disks in. You seem to need to lift the caddy up a bit. But once it’s done, everything goes as expected. Also, SATA disks are numbered from bottom (SATA 1) to top (SATA 4). This may be important if you have to deal with device number IDs.\n\nThe fan is quite noisy by default and produces a low-pitched sound. Also, I don’t know how to describe it but you hear the metallic case in that sound.\n\nHere’s YouTube videos I watched before buying that machine:\n\n- Hardware Haven - The Home Server I’ve Been Wanting\n- Robtech - AOOSTAR WTR Pro Review\n- Aoostar WTR Pro Ryzen 7 5825U BIOS walkthrough\n\n# BIOS\n\nSecureBoot is disabled by default. Running FOSS system is\nstraightforward. Hitting `<F7>` on boot gets you to the selection menu\nwhile hitting `<Del>` gets you to the BIOS.\n\nWith a single 32 GB memory module and no storage at all, waiting in the BIOS’ PC Health Status page uses about 28 W. System Temp is 26 degC, CPU Temp is 68 degC, CPU Fan speed around 1900 RPM, System Fan Speed around 820 RPM. That explains the whistling noise…\n\nUplugging the USB 10\" LCD 800x600 and USB keyboard does not change the power usage. Plugging the RJ45 cable does not change power consumption either.\n\nAdding two NVMe drives does not seem to change the power consumption that much. I’m using a Fibaro FGWP-102 and Home-Assistant to keep an eye on power usage, so I may sometime miss a Watt or two :)\n\n# Linux\n\nReview videos announced some really low power usage using Proxmox in IDLE mode. Not knowing it that much, I went installing Linux Alpine and Debian 13 to serve as power consumption base.\n\nOnce the installer is started and let IDLE for a couple of minutes, the power consumption is about 12 W.\n\nOnce installed on one NVMe, the other not being used at all, power\nconsumption is about 13 W and the fan is still audible. `htop` indicates\nthat the CPU idles at 1 GHz.\n\nAfter installing powertop and running `powertop --calibrate`, the\noverall power consumption was about 12 W. Once ran using `powertop --auto-tune`, the power consumption dropped to 11 W. This was with\nAlpine Linux. When I did the same on Debian 13, the power consumption\ndropped down to 9W.\n\nThe fan was still (way too) audible to my likings. `lm-sensors` reported\nabout 34-38 degC for various parts of the system.\n\nDisconnecting the USB keyboard and screen made power usage drop to 8 W on Debian. I forgot to do this test with Alpine Linux.\n\n# NetBSD 11.0\n\nOnce booted and waiting for the keyboard layout selection, the power usage was about 19 W.\n\nAt first boot, after idling a bit, the power plug indicates 18 W. A look\nat `sysctl` shows the system knows about 3 frequencies. The CPU currently\nruns at the highest: 2000 MHz.\n\nOnce `estd` is installed and run (`estd -os`), the power consumption is…\nstill 18 W.\n\n```\n# sysctl -a | grep freq\nmachdep.dmi.processor-frequency = 2000 MHz\nmachdep.tsc_freq = 1996259000\nmachdep.cpu.frequency.target = 1600\nmachdep.cpu.frequency.current = 1600\nmachdep.cpu.frequency.available = 2000 1800 1600\n# envstat\n                      Current  CritMax  WarnMax  WarnMin  CritMin  Unit\n[amdzentemp0]\n  cpu0 temperature:    40.750                                      degC\n```\nUnplugging the USB keyboard didn’t change a thing. But disconnecting the 10\" USB monitor dropped power consumption down to 14 W.\n\nI haven’t found any extra tricks to tune while reading the online guide. There may be some more things to do. But to be honest, NetBSD was not the target system for this machine so I didn’t spend much time on it.\n\nThe full `dmesg` is available online.\n\n# OpenBSD 7.9\n\nOnce the system is installed and the wizard waits for the `(S)hell, (H)alt or (R)eboot` choice, the power consumption is about 21 W.\n\nAfter the first boot, the power usage is about 15 W. Once the USB keyboard and 10\" screen are disconnected, the power usage drops to about 10 W.\n\nThe CPU runs by default at the full identified speed (2 GHz).\n\nUsing `apmd` does not seem to lower power consumption.\n\n```\n# rcctl enable apmd\n# rcctl set apmd flags -A\n# rcctl start apmd\n# sysctl hw.sensors hw.cpuspeed hw.setperf\nhw.sensors.cpu0.frequency0=1400000000.00 Hz\nhw.sensors.cpu2.frequency0=1400000000.00 Hz\nhw.sensors.cpu4.frequency0=1400000000.00 Hz\nhw.sensors.cpu6.frequency0=1400000000.00 Hz\nhw.sensors.cpu8.frequency0=1400000000.00 Hz\nhw.sensors.cpu10.frequency0=1400000000.00 Hz\nhw.sensors.cpu12.frequency0=1400000000.00 Hz\nhw.sensors.cpu14.frequency0=1400000000.00 Hz\nhw.sensors.ksmn0.temp0=37.25 degC (Tctl)\nhw.sensors.nvme0.temp0=31.00 degC, OK\nhw.sensors.nvme0.percent0=100.00% (endurance used), OK\nhw.sensors.nvme0.percent1=100.00% (available spare), OK\nhw.sensors.nvme1.temp0=38.00 degC, OK\nhw.sensors.nvme1.percent0=1.00% (endurance used), OK\nhw.sensors.nvme1.percent1=100.00% (available spare), OK\nhw.cpuspeed=1600\nhw.setperf=0\n```\nGiven that the 8.0 release is not that far, I gave the snapshot branch a try. But nothing new enough, that I’m aware of, seemed to allow even less power consumption. Same here, I didn’t plan to run OpenBSD on this machine so the exploration was really short in time.\n\nThe `dmesg` are available online\nhere\nand\nthere\n\n# FreeBSD 15.1\n\nThe power usage during installation was about 19 W.\n\nAfter the first boot, and leaving the computer idling a bit, the power usage dropped just a little down to 18 W.\n\nDisconnecting the USB keyboard and 10\" screen had power consumption drop down to 15 W.\n\nI noticed, using `htop`, that CPU seemed to always run at 2 GHz. Also,\ntemperature was not available. Using stock tool, I could verify this:\n\n```\n# sysctl dev.cpufreq.0.freq_driver dev.hwpstate.0.freq_settings \\\n  dev.cpu.0.freq_levels dev.cpu.0.freq                          \\\n  dev.cpu.0.cx_supported dev.cpu.0.cx_lowest\ndev.cpufreq.0.freq_driver: hwpstate0\ndev.hwpstate.0.freq_settings: 2000/2437 1800/1710 1600/1460\ndev.cpu.0.freq_levels: 2000/2437 1800/1710 1600/1460\ndev.cpu.0.freq: 2000\ndev.cpu.0.cx_supported: C1/1/1 C2/2/18 C3/3/350\ndev.cpu.0.cx_lowest: C1\n# sysctl -a | grep \"cpu.*temp\"\n```\nTemperatures are not available by default but can be accessed once the\n`amdtemp` module is loaded:\n\n```\n# kldload amdtemp\n# sysctl dev.amdtemp.0.core0.sensor0 dev.cpu.0.temperature\ndev.amdtemp.0.core0.sensor0: 39.7C\ndev.cpu.0.temperature: 39.7C\n# echo 'amdtemp_load=\"YES\"' >> /boot/loader.conf\n```\nThe CPU C-states usage is not set for energy-saving mode by default. But this can be changed:\n\n```\n# sysctl dev.cpu.0.cx_supported dev.cpu.0.cx_lowest dev.cpu.0.cx_usage\ndev.cpu.0.cx_supported: C1/1/1 C2/2/18 C3/3/350\ndev.cpu.0.cx_lowest: C1\ndev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 3504us\n# sysctl hw.acpi.cpu.cx_lowest=C3\nhw.acpi.cpu.cx_lowest: C1 -> C3\n# sysctl dev.cpu.0.cx_supported dev.cpu.0.cx_lowest dev.cpu.0.cx_usage\ndev.cpu.0.cx_supported: C1/1/1 C2/2/18 C3/3/350\ndev.cpu.0.cx_lowest: C3\ndev.cpu.0.cx_usage: 0.00% 0.00% 100.00% last 7996us\n# echo 'hw.acpi.cpu.cx_lowest=C3' >> /etc/sysctl.conf\n```\nThis allows the power usage to lower down to 12 W.\n\nCPU frequencies are still not moving. After a bit of reading, I suspect\nsomething happens around hwpstate. On some of my Intel laptops, I get a\n`hwpstate_intel0: <Intel Speed Shift> on cpu0` reference in `dmesg`.\nWith this machine, I get `hwpstate0: <Cool'n'Quiet 2.0> on cpu0` when\n`hwpstate_amd` exists in `sys/x86/cpufreq/`. Things seem to happen in\nthe 15 and 16 source tree but I guess it’s not ready for this machine or\nprocessor. The only solution I found what to run the ancient `powerd`.\n\n```\n# service powerd enable\npowerd enabled in /etc/rc.conf\n# echo 'powerd_flags=\"-a adaptive\"' >> /etc/rc.conf\n# service powerd start\nStarting powerd.\n# sysctl dev.cpu.0.freq_levels dev.cpu.0.freq\ndev.cpu.0.freq_levels: 2000/2437 1800/1710 1600/1460\ndev.cpu.0.freq: 1600\n```\nUnfortunately, this doesn’t seem to save any watts… It also doesn’t seem to impact system responsiveness, CPU temperature and fan speed. So I decided to not run it at all.\n\nhttps://wiki.freebsd.org/TuningPowerConsumption\nrecommends setting\n`hw.pci.do_power_nodriver` to “3” in order to power down all PCI\ndevices without a device\ndriver\n.\"\n\n```\n# echo 'hw.pci.do_power_nodriver=3' >> /boot/loader.conf\n# reboot\n```\nAfter a reboot, this allows sucking only 11 W from the wall.\n\nForcing USB devices to power mode does not seem to impact power usage that much. But, I don’t have anything connected on the USB ports…\n\n```\n# usbconfig\nugen0.1: <XHCI root HUB AMD> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)\nugen1.1: <XHCI root HUB AMD> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)\nugen1.2: <Audio Adapter (Unitek Y-247A) C-Media Electronics, Inc.> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)\n# usbconfig -d 1.2 power_save\n# usbconfig\nugen0.1: <XHCI root HUB AMD> at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)\nugen1.1: <XHCI root HUB AMD> at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)\nugen1.2: <Audio Adapter (Unitek Y-247A) C-Media Electronics, Inc.> at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE (100mA)\n# echo '/usr/sbin/usbconfig -d 1.2 power_save' >> /etc/rc.d/rc.local\n# chmod 0555 /etc/rc.d/rc.local\n```\nA special driver is available for AMD southbridge watchdog timers.\n\n```\n# kldload amdsbwd\n# dmesg | tail\namdsmn0: <AMD Family 19h System Management Network> on hostb0\namdtemp0: <AMD Family 19h CPU On-Die Thermal Sensors> on hostb0\namdsbwd0: <AMD FCH Rev 41h+ Watchdog Timer> at iomem 0xfed80b00-0xfed80b03,0xfed80b04-0xfed80b07 on isa0\namdsbwd0: watchdog hardware is disabled\ndevice_attach: amdsbwd0 attach returned 6\n# echo 'amdsbwd_load=\"YES\"' >> /boot/loader.conf\n```\nThis doesn’t change the power usage. And I have no real idea what this is used for. As far I as understand it, you may receive interruptions from the motherboard and be able to react to those, when this happens.\n\nLoading the AMD Graphics drivers will provide GPU acceleration if this is required later on.\n\n```\n# pkg install drm-kmod\n# kldload amdgpu\n# kldload acpi_video\n# sysrc kld_list+=\"amdgpu acpi_video\"\n```\nNot sure why, but this makes the power usage go down to 8 W.\n\nThe `dmesg` is available online here\n\n# Shut up fans!\n\nThe following online resources deal with people who were also bored by the FAN noise.\n\nPress `Del` when the AOOSTAR logo appears to enter the BIOS. Then go to\n“Advanced / Hardware Monitor”.\n\n| BIOS parameter | default value | posts value | my current value | \n|---|---|---|---|\n| System temperature: | +27 |  |  | \n| CPU temperature: | +70 |  |  | \n| cpu fan Speed: | 1800 RPM |  |  | \n| system fan Speed: | 800 RPM |  |  | \n| system fan2 Speed: | N/A |  |  | \n| CPU Fan: | Enabled |  |  | \n| Fan Off (0x68): | 25 | 30 degC | 25 degC | \n| Fan Start (0x69): | 50 | 60 degC | 50 degC | \n| TFull Speed (0x6A): | 95 |  |  | \n| Start PWM (0x6B): | 40 | 30 % | 10 % | \n| Automatic Mode Control (0x6C): | 2 |  |  | \n| Delta Temperature (0x6D): | 1 |  |  | \n| System Fan: | Enabled |  |  | \n| Fan Off (0x70): | 20 |  |  | \n| Fan Start (0x71): | 25 |  |  | \n| TFull Speed (0x72): | 85 |  |  | \n| Start PWM (0x73): | 130 | 10 % | 30% | \n| Automatic Mode Control (0x74): | 4 |  |  | \n| Delta Temperature (0x75): | 1 |  |  | \n| System Fan2: | Enabled |  | Disabled | \n\nSave, reboot and keep an eye on temperatures and fan speed. With those settings, power usage does not really drop down more. But the machine becomes way more silent. The (small) CPU fan has a way less pleasant sound than the (big) rear one. So I went for values that make the CPU fan run slower unless stress is on the system while the rear fan runs at inaudible sound.\n\nJust to be sure everything worked as expected (hear, fans do spin when\nneeded), I wrote a script that would send data to my VictoriaMetrics\ndatabase. I couldn’t find any way to access fans speed information using\nstock tool. Using `superiotool`, an `ITE IT8613E (id=0x8613, rev=0x8) at 0x2e` was found. As I understood, this\npost\nindicates that a driver was\nnever imported into FreeBSD. But someone has posted a link to a\ndedicated\nutility\nthat can gather this information.\n\n```\n# pkg install -y git gcc\n# git clone https://gitlab.com/tingox/it8718fd.git\n# cd it8718fd\n# make\n# ./it8718fd -v -s 1\nSystem 27C\nCPU 27C\nNorthbridge 39C\n16 bit fan counters inactive; rpm readings unreliable\nCPU 0 rpm\nSystem 739 rpm\nNorthbridge 530 rpm\nVcore\t 0.96\nVDDR\t 1.81\n+3.3\t 3.10\n+5\t 3.76\n+12\t 5.41\n-12\t -9.85\n-5\t -1.42\nVSB\t 3.47\nVbat\t 2.34\n# make install\n# cat > /usr/local/etc/it8718fd.conf\ntempin1 = System temperature 2\ntempin2 = System temperature\ntempin3 = CPU temperature\nfan1 = System fan 2\nfan2 = CPU fan\nfan3 = System fan\n^D\n# it8718fd -v -s 1\nFound an ITE IT8718F (id 0x8613, version 0x08) at special address port 0x2e\nSystem temperature 2 28C\nSystem temperature 28C\nCPU temperature 41C\n16 bit fan counters inactive; rpm readings unreliable\nSystem fan 2 0 rpm\nCPU fan 610 rpm\nSystem fan 531 rpm\n```\nI changed the configuration a bit so that sensors were named as they appear is BIOS. And then used Grafana to keep an eye on those.\n\nOnce there, this little machine is pretty what I’ve been waiting for, for a long time. An extra 1 W is eaten with bhyve virtual machine, which is not that much.\n\nAnd that’s all for now folks. See you in EuroBSD 2026 ;-)","body_html":"<h1 id=\"overview-of-aoostar-wtr-pro-on-bsd\">Overview of AOOSTAR WTR Pro on *BSD</h1>\n<p>Finding a NAS that provides NVMe and SATA storage while being tiny enough to sit in my 10&quot; rack, have a CPU that’s not hogging, use a small amount of watts and offers usage of a non-proprietary OS is not simple. Especially when you have the “must run any BSD” to the equation.</p>\n<p>But here we are, the AOOSTAR WTR Pro Ryzen edition meets all my prerequisites. And here’s what I discovered.</p>\n<p>Note that I aimed this machine at running FreeBSD. So I just had a quick look at other BSDes just to get a rough idea of what you get “by default”. It’s not a fair features and power usage comparison. I spend way more time tuning FreeBSD.</p>\n<h1 id=\"build-quality\">Build quality</h1>\n<p>The case is using metal, not plastic. And in a 25-27 degC room, it always feels rather cold to the hands. It also fits pretty well in my 10&quot; rack space.</p>\n<p>RAM and NVMe slots are located beneath the machine and accessible using screws. The slots are numbered so that you don’t have any surprise when you plug stuff and look and the IDs in the OS. If you ever care about this…</p>\n<p>The SATA disks are accessible from the front. The front cover uses magnets to stay in place and hide the caddies and LEDs. The caddies have click and pull mechanism. 3.5&quot; SATA disks are set and removed using a tool-less mechanism that is quite smart. 2.5&quot; SATA disks need to be fixed to the tray using screws. Those are a bit less trouble free. It took me quite a few tries &amp; fails to succeed in plugging the 2.5&quot; disks in. You seem to need to lift the caddy up a bit. But once it’s done, everything goes as expected. Also, SATA disks are numbered from bottom (SATA 1) to top (SATA 4). This may be important if you have to deal with device number IDs.</p>\n<p>The fan is quite noisy by default and produces a low-pitched sound. Also, I don’t know how to describe it but you hear the metallic case in that sound.</p>\n<p>Here’s YouTube videos I watched before buying that machine:</p>\n<ul><li>Hardware Haven - The Home Server I’ve Been Wanting</li><li>Robtech - AOOSTAR WTR Pro Review</li><li>Aoostar WTR Pro Ryzen 7 5825U BIOS walkthrough</li></ul>\n<h1 id=\"bios\">BIOS</h1>\n<p>SecureBoot is disabled by default. Running FOSS system is\nstraightforward. Hitting <code>&lt;F7&gt;</code> on boot gets you to the selection menu\nwhile hitting <code>&lt;Del&gt;</code> gets you to the BIOS.</p>\n<p>With a single 32 GB memory module and no storage at all, waiting in the BIOS’ PC Health Status page uses about 28 W. System Temp is 26 degC, CPU Temp is 68 degC, CPU Fan speed around 1900 RPM, System Fan Speed around 820 RPM. That explains the whistling noise…</p>\n<p>Uplugging the USB 10&quot; LCD 800x600 and USB keyboard does not change the power usage. Plugging the RJ45 cable does not change power consumption either.</p>\n<p>Adding two NVMe drives does not seem to change the power consumption that much. I’m using a Fibaro FGWP-102 and Home-Assistant to keep an eye on power usage, so I may sometime miss a Watt or two :)</p>\n<h1 id=\"linux\">Linux</h1>\n<p>Review videos announced some really low power usage using Proxmox in IDLE mode. Not knowing it that much, I went installing Linux Alpine and Debian 13 to serve as power consumption base.</p>\n<p>Once the installer is started and let IDLE for a couple of minutes, the power consumption is about 12 W.</p>\n<p>Once installed on one NVMe, the other not being used at all, power\nconsumption is about 13 W and the fan is still audible. <code>htop</code> indicates\nthat the CPU idles at 1 GHz.</p>\n<p>After installing powertop and running <code>powertop --calibrate</code>, the\noverall power consumption was about 12 W. Once ran using <code>powertop --auto-tune</code>, the power consumption dropped to 11 W. This was with\nAlpine Linux. When I did the same on Debian 13, the power consumption\ndropped down to 9W.</p>\n<p>The fan was still (way too) audible to my likings. <code>lm-sensors</code> reported\nabout 34-38 degC for various parts of the system.</p>\n<p>Disconnecting the USB keyboard and screen made power usage drop to 8 W on Debian. I forgot to do this test with Alpine Linux.</p>\n<h1 id=\"netbsd-11-0\">NetBSD 11.0</h1>\n<p>Once booted and waiting for the keyboard layout selection, the power usage was about 19 W.</p>\n<p>At first boot, after idling a bit, the power plug indicates 18 W. A look\nat <code>sysctl</code> shows the system knows about 3 frequencies. The CPU currently\nruns at the highest: 2000 MHz.</p>\n<p>Once <code>estd</code> is installed and run (<code>estd -os</code>), the power consumption is…\nstill 18 W.</p>\n<pre><code># sysctl -a | grep freq\nmachdep.dmi.processor-frequency = 2000 MHz\nmachdep.tsc_freq = 1996259000\nmachdep.cpu.frequency.target = 1600\nmachdep.cpu.frequency.current = 1600\nmachdep.cpu.frequency.available = 2000 1800 1600\n# envstat\n                      Current  CritMax  WarnMax  WarnMin  CritMin  Unit\n[amdzentemp0]\n  cpu0 temperature:    40.750                                      degC</code></pre>\n<p>Unplugging the USB keyboard didn’t change a thing. But disconnecting the 10&quot; USB monitor dropped power consumption down to 14 W.</p>\n<p>I haven’t found any extra tricks to tune while reading the online guide. There may be some more things to do. But to be honest, NetBSD was not the target system for this machine so I didn’t spend much time on it.</p>\n<p>The full <code>dmesg</code> is available online.</p>\n<h1 id=\"openbsd-7-9\">OpenBSD 7.9</h1>\n<p>Once the system is installed and the wizard waits for the <code>(S)hell, (H)alt or (R)eboot</code> choice, the power consumption is about 21 W.</p>\n<p>After the first boot, the power usage is about 15 W. Once the USB keyboard and 10&quot; screen are disconnected, the power usage drops to about 10 W.</p>\n<p>The CPU runs by default at the full identified speed (2 GHz).</p>\n<p>Using <code>apmd</code> does not seem to lower power consumption.</p>\n<pre><code># rcctl enable apmd\n# rcctl set apmd flags -A\n# rcctl start apmd\n# sysctl hw.sensors hw.cpuspeed hw.setperf\nhw.sensors.cpu0.frequency0=1400000000.00 Hz\nhw.sensors.cpu2.frequency0=1400000000.00 Hz\nhw.sensors.cpu4.frequency0=1400000000.00 Hz\nhw.sensors.cpu6.frequency0=1400000000.00 Hz\nhw.sensors.cpu8.frequency0=1400000000.00 Hz\nhw.sensors.cpu10.frequency0=1400000000.00 Hz\nhw.sensors.cpu12.frequency0=1400000000.00 Hz\nhw.sensors.cpu14.frequency0=1400000000.00 Hz\nhw.sensors.ksmn0.temp0=37.25 degC (Tctl)\nhw.sensors.nvme0.temp0=31.00 degC, OK\nhw.sensors.nvme0.percent0=100.00% (endurance used), OK\nhw.sensors.nvme0.percent1=100.00% (available spare), OK\nhw.sensors.nvme1.temp0=38.00 degC, OK\nhw.sensors.nvme1.percent0=1.00% (endurance used), OK\nhw.sensors.nvme1.percent1=100.00% (available spare), OK\nhw.cpuspeed=1600\nhw.setperf=0</code></pre>\n<p>Given that the 8.0 release is not that far, I gave the snapshot branch a try. But nothing new enough, that I’m aware of, seemed to allow even less power consumption. Same here, I didn’t plan to run OpenBSD on this machine so the exploration was really short in time.</p>\n<p>The <code>dmesg</code> are available online\nhere\nand\nthere</p>\n<h1 id=\"freebsd-15-1\">FreeBSD 15.1</h1>\n<p>The power usage during installation was about 19 W.</p>\n<p>After the first boot, and leaving the computer idling a bit, the power usage dropped just a little down to 18 W.</p>\n<p>Disconnecting the USB keyboard and 10&quot; screen had power consumption drop down to 15 W.</p>\n<p>I noticed, using <code>htop</code>, that CPU seemed to always run at 2 GHz. Also,\ntemperature was not available. Using stock tool, I could verify this:</p>\n<pre><code># sysctl dev.cpufreq.0.freq_driver dev.hwpstate.0.freq_settings \\\n  dev.cpu.0.freq_levels dev.cpu.0.freq                          \\\n  dev.cpu.0.cx_supported dev.cpu.0.cx_lowest\ndev.cpufreq.0.freq_driver: hwpstate0\ndev.hwpstate.0.freq_settings: 2000/2437 1800/1710 1600/1460\ndev.cpu.0.freq_levels: 2000/2437 1800/1710 1600/1460\ndev.cpu.0.freq: 2000\ndev.cpu.0.cx_supported: C1/1/1 C2/2/18 C3/3/350\ndev.cpu.0.cx_lowest: C1\n# sysctl -a | grep &quot;cpu.*temp&quot;</code></pre>\n<p>Temperatures are not available by default but can be accessed once the\n<code>amdtemp</code> module is loaded:</p>\n<pre><code># kldload amdtemp\n# sysctl dev.amdtemp.0.core0.sensor0 dev.cpu.0.temperature\ndev.amdtemp.0.core0.sensor0: 39.7C\ndev.cpu.0.temperature: 39.7C\n# echo &#39;amdtemp_load=&quot;YES&quot;&#39; &gt;&gt; /boot/loader.conf</code></pre>\n<p>The CPU C-states usage is not set for energy-saving mode by default. But this can be changed:</p>\n<pre><code># sysctl dev.cpu.0.cx_supported dev.cpu.0.cx_lowest dev.cpu.0.cx_usage\ndev.cpu.0.cx_supported: C1/1/1 C2/2/18 C3/3/350\ndev.cpu.0.cx_lowest: C1\ndev.cpu.0.cx_usage: 100.00% 0.00% 0.00% last 3504us\n# sysctl hw.acpi.cpu.cx_lowest=C3\nhw.acpi.cpu.cx_lowest: C1 -&gt; C3\n# sysctl dev.cpu.0.cx_supported dev.cpu.0.cx_lowest dev.cpu.0.cx_usage\ndev.cpu.0.cx_supported: C1/1/1 C2/2/18 C3/3/350\ndev.cpu.0.cx_lowest: C3\ndev.cpu.0.cx_usage: 0.00% 0.00% 100.00% last 7996us\n# echo &#39;hw.acpi.cpu.cx_lowest=C3&#39; &gt;&gt; /etc/sysctl.conf</code></pre>\n<p>This allows the power usage to lower down to 12 W.</p>\n<p>CPU frequencies are still not moving. After a bit of reading, I suspect\nsomething happens around hwpstate. On some of my Intel laptops, I get a\n<code>hwpstate_intel0: &lt;Intel Speed Shift&gt; on cpu0</code> reference in <code>dmesg</code>.\nWith this machine, I get <code>hwpstate0: &lt;Cool&#39;n&#39;Quiet 2.0&gt; on cpu0</code> when\n<code>hwpstate_amd</code> exists in <code>sys/x86/cpufreq/</code>. Things seem to happen in\nthe 15 and 16 source tree but I guess it’s not ready for this machine or\nprocessor. The only solution I found what to run the ancient <code>powerd</code>.</p>\n<pre><code># service powerd enable\npowerd enabled in /etc/rc.conf\n# echo &#39;powerd_flags=&quot;-a adaptive&quot;&#39; &gt;&gt; /etc/rc.conf\n# service powerd start\nStarting powerd.\n# sysctl dev.cpu.0.freq_levels dev.cpu.0.freq\ndev.cpu.0.freq_levels: 2000/2437 1800/1710 1600/1460\ndev.cpu.0.freq: 1600</code></pre>\n<p>Unfortunately, this doesn’t seem to save any watts… It also doesn’t seem to impact system responsiveness, CPU temperature and fan speed. So I decided to not run it at all.</p>\n<p><a href=\"https://wiki.freebsd.org/TuningPowerConsumption\" rel=\"nofollow ugc noopener\">https://wiki.freebsd.org/TuningPowerConsumption</a>\nrecommends setting\n<code>hw.pci.do_power_nodriver</code> to “3” in order to power down all PCI\ndevices without a device\ndriver\n.&quot;</p>\n<pre><code># echo &#39;hw.pci.do_power_nodriver=3&#39; &gt;&gt; /boot/loader.conf\n# reboot</code></pre>\n<p>After a reboot, this allows sucking only 11 W from the wall.</p>\n<p>Forcing USB devices to power mode does not seem to impact power usage that much. But, I don’t have anything connected on the USB ports…</p>\n<pre><code># usbconfig\nugen0.1: &lt;XHCI root HUB AMD&gt; at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)\nugen1.1: &lt;XHCI root HUB AMD&gt; at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)\nugen1.2: &lt;Audio Adapter (Unitek Y-247A) C-Media Electronics, Inc.&gt; at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=ON (100mA)\n# usbconfig -d 1.2 power_save\n# usbconfig\nugen0.1: &lt;XHCI root HUB AMD&gt; at usbus0, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)\nugen1.1: &lt;XHCI root HUB AMD&gt; at usbus1, cfg=0 md=HOST spd=SUPER (5.0Gbps) pwr=SAVE (0mA)\nugen1.2: &lt;Audio Adapter (Unitek Y-247A) C-Media Electronics, Inc.&gt; at usbus1, cfg=0 md=HOST spd=FULL (12Mbps) pwr=SAVE (100mA)\n# echo &#39;/usr/sbin/usbconfig -d 1.2 power_save&#39; &gt;&gt; /etc/rc.d/rc.local\n# chmod 0555 /etc/rc.d/rc.local</code></pre>\n<p>A special driver is available for AMD southbridge watchdog timers.</p>\n<pre><code># kldload amdsbwd\n# dmesg | tail\namdsmn0: &lt;AMD Family 19h System Management Network&gt; on hostb0\namdtemp0: &lt;AMD Family 19h CPU On-Die Thermal Sensors&gt; on hostb0\namdsbwd0: &lt;AMD FCH Rev 41h+ Watchdog Timer&gt; at iomem 0xfed80b00-0xfed80b03,0xfed80b04-0xfed80b07 on isa0\namdsbwd0: watchdog hardware is disabled\ndevice_attach: amdsbwd0 attach returned 6\n# echo &#39;amdsbwd_load=&quot;YES&quot;&#39; &gt;&gt; /boot/loader.conf</code></pre>\n<p>This doesn’t change the power usage. And I have no real idea what this is used for. As far I as understand it, you may receive interruptions from the motherboard and be able to react to those, when this happens.</p>\n<p>Loading the AMD Graphics drivers will provide GPU acceleration if this is required later on.</p>\n<pre><code># pkg install drm-kmod\n# kldload amdgpu\n# kldload acpi_video\n# sysrc kld_list+=&quot;amdgpu acpi_video&quot;</code></pre>\n<p>Not sure why, but this makes the power usage go down to 8 W.</p>\n<p>The <code>dmesg</code> is available online here</p>\n<h1 id=\"shut-up-fans\">Shut up fans!</h1>\n<p>The following online resources deal with people who were also bored by the FAN noise.</p>\n<p>Press <code>Del</code> when the AOOSTAR logo appears to enter the BIOS. Then go to\n“Advanced / Hardware Monitor”.</p>\n<div class=\"table-wrap\"><table><thead><tr><th>BIOS parameter</th><th>default value</th><th>posts value</th><th>my current value</th></tr></thead><tbody><tr><td>System temperature:</td><td>+27</td><td></td><td></td></tr><tr><td>CPU temperature:</td><td>+70</td><td></td><td></td></tr><tr><td>cpu fan Speed:</td><td>1800 RPM</td><td></td><td></td></tr><tr><td>system fan Speed:</td><td>800 RPM</td><td></td><td></td></tr><tr><td>system fan2 Speed:</td><td>N/A</td><td></td><td></td></tr><tr><td>CPU Fan:</td><td>Enabled</td><td></td><td></td></tr><tr><td>Fan Off (0x68):</td><td>25</td><td>30 degC</td><td>25 degC</td></tr><tr><td>Fan Start (0x69):</td><td>50</td><td>60 degC</td><td>50 degC</td></tr><tr><td>TFull Speed (0x6A):</td><td>95</td><td></td><td></td></tr><tr><td>Start PWM (0x6B):</td><td>40</td><td>30 %</td><td>10 %</td></tr><tr><td>Automatic Mode Control (0x6C):</td><td>2</td><td></td><td></td></tr><tr><td>Delta Temperature (0x6D):</td><td>1</td><td></td><td></td></tr><tr><td>System Fan:</td><td>Enabled</td><td></td><td></td></tr><tr><td>Fan Off (0x70):</td><td>20</td><td></td><td></td></tr><tr><td>Fan Start (0x71):</td><td>25</td><td></td><td></td></tr><tr><td>TFull Speed (0x72):</td><td>85</td><td></td><td></td></tr><tr><td>Start PWM (0x73):</td><td>130</td><td>10 %</td><td>30%</td></tr><tr><td>Automatic Mode Control (0x74):</td><td>4</td><td></td><td></td></tr><tr><td>Delta Temperature (0x75):</td><td>1</td><td></td><td></td></tr><tr><td>System Fan2:</td><td>Enabled</td><td></td><td>Disabled</td></tr></tbody></table></div>\n<p>Save, reboot and keep an eye on temperatures and fan speed. With those settings, power usage does not really drop down more. But the machine becomes way more silent. The (small) CPU fan has a way less pleasant sound than the (big) rear one. So I went for values that make the CPU fan run slower unless stress is on the system while the rear fan runs at inaudible sound.</p>\n<p>Just to be sure everything worked as expected (hear, fans do spin when\nneeded), I wrote a script that would send data to my VictoriaMetrics\ndatabase. I couldn’t find any way to access fans speed information using\nstock tool. Using <code>superiotool</code>, an <code>ITE IT8613E (id=0x8613, rev=0x8) at 0x2e</code> was found. As I understood, this\npost\nindicates that a driver was\nnever imported into FreeBSD. But someone has posted a link to a\ndedicated\nutility\nthat can gather this information.</p>\n<pre><code># pkg install -y git gcc\n# git clone https://gitlab.com/tingox/it8718fd.git\n# cd it8718fd\n# make\n# ./it8718fd -v -s 1\nSystem 27C\nCPU 27C\nNorthbridge 39C\n16 bit fan counters inactive; rpm readings unreliable\nCPU 0 rpm\nSystem 739 rpm\nNorthbridge 530 rpm\nVcore     0.96\nVDDR     1.81\n+3.3     3.10\n+5     3.76\n+12     5.41\n-12     -9.85\n-5     -1.42\nVSB     3.47\nVbat     2.34\n# make install\n# cat &gt; /usr/local/etc/it8718fd.conf\ntempin1 = System temperature 2\ntempin2 = System temperature\ntempin3 = CPU temperature\nfan1 = System fan 2\nfan2 = CPU fan\nfan3 = System fan\n^D\n# it8718fd -v -s 1\nFound an ITE IT8718F (id 0x8613, version 0x08) at special address port 0x2e\nSystem temperature 2 28C\nSystem temperature 28C\nCPU temperature 41C\n16 bit fan counters inactive; rpm readings unreliable\nSystem fan 2 0 rpm\nCPU fan 610 rpm\nSystem fan 531 rpm</code></pre>\n<p>I changed the configuration a bit so that sensors were named as they appear is BIOS. And then used Grafana to keep an eye on those.</p>\n<p>Once there, this little machine is pretty what I’ve been waiting for, for a long time. An extra 1 W is eaten with bhyve virtual machine, which is not that much.</p>\n<p>And that’s all for now folks. See you in EuroBSD 2026 ;-)</p>","headings":[{"level":1,"text":"Overview of AOOSTAR WTR Pro on *BSD","id":"overview-of-aoostar-wtr-pro-on-bsd"},{"level":1,"text":"Build quality","id":"build-quality"},{"level":1,"text":"BIOS","id":"bios"},{"level":1,"text":"Linux","id":"linux"},{"level":1,"text":"NetBSD 11.0","id":"netbsd-11-0"},{"level":1,"text":"OpenBSD 7.9","id":"openbsd-7-9"},{"level":1,"text":"FreeBSD 15.1","id":"freebsd-15-1"},{"level":1,"text":"Shut up fans!","id":"shut-up-fans"}]}}