I run OmniOS on an Aoostar WTR PRO as my NAS and for most of my self hosting needs. After installing a new fan, I wanted to see if I could read and control the fan speed from the OS instead of just the BIOS. Using Claude chat, I got a working kernel driver that gives me fan speed, PWM control, temperature readings, and even (incorrect) voltage readings.
I wanted to share as an example of what’s currently possible. I’ve even seen people vibe code ethernet drivers for freeBSD.
What do you all think of using LLMs to cobble together drivers like this?
I’ve even seen people vibe code ethernet drivers for freeBSD.
Please make sure to read what considerations that developer had before undertaking that effort using an LLM: https://github.com/Aquantia/aqtion-freebsd/issues/32#issuecomment-3997341698
Specifically, they (the human) were kept in the loop for the entire process, which included referencing the working Linux driver to do a clean-room reimplementation. This already means they have some experience with software engineering to spot any issues in the specifications that the LLM might generate.
Also, Aquantia (before the merger) already had a published FreeBSD driver but it hasn’t been updated. So this port wouldn’t have to start from zero, but would be a matter of addition support for new NICs that have been released since, but Aquatia hadn’t updated the driver.
This is very much not an example of an Ethernet NIC driver being “vibe coded” from scratch, but a seasoned engineer porting Linux support over to FreeBSD, a kernel that already has a lot of support for easily adding new drivers in a fairly safe manner, and then undertaking a test plan to make sure the changes wouldn’t be abject slop. That’s someone using their tools with reasonable care. In the industry, this is called engineering.
Admiration for what people can do with the right tools must always be put into the right context. Even with the finest tools, it’s likely that neither you nor I could build a cathedral.
spits on ground, squints reeeeaaal slow
Now listen here sonny… we don’t take kindly to none of that AI business around these parts.
We is simple, God fearin’ folk, raised on sweat, dirt, and good honest labor, not all of that fancy machine learnin’ contraption nonsense.
Ain’t no place for thinkin’ machines where a man’s meant to use his own two hands. So I reckon I’ll mosey on over and downvote this here post myself, nice and proper.
🤣
Personally it’s what I use them for the most. I do not have the time to reverse engineer arbitrary things like this. I have a scooter that uses Bluetooth BLE which has no connectivity beyond that. I’ve been using Claude to help reverse engineer the protocol to hopefully get a home assistant integration up and running.
Claude can see things I can’t, patterns in hex that are coming back, I send in results from wireshark and it can try ad neaseum to try and get something working. Right now it’s about half working. When I have time I’ll keep plugging away. Then hopefully other people will be able to use it, and we can have one less vendor locked in device



