Simplest way to add files to the base HAOS filesystem

My HA journey in brief and background:

I discovered HA through ESPHome when trying to use an ESP to automate a simple(-ish) controller for an external wood boiler. This ultimately led to the first installation of HA in a Dock on my desktop (Linux Mint). While useful for playing around with it, I would prefer to have an independant server for HA so I shopped around and got my hands on a cheap (Chinese I think) Intel PC, the Z83-V (or Z83-5). This seems to be a fairly standard box using an Intel Atom and a broadcom chip which provides wifi and BT. I installed Debian onto it and set-up HA Supervised. Debian required a little fettling to get the Broadcom chip working as the firmware blobs were not installed as standard, but once set-up it worked fine and allowed me to remove one of my ESPHome projects which was an interface to 2 Xiaomi wireless thermometers that transmit over BLE. But I don’t have time in my life to manage the upkeep of the underlying Debian installation and the Supervisor kept dropping permission which meant I couldn’t update HA or the add-ons.

So two days ago I laboriously installed HAOS onto the Z83 to replace Debian. Which went relatively smoothly. The backup was restored and everything worked… except for the Bluetooth and Wifi. I’ve enabled the SSH debugging on 22222, so I can see the problem and the solution is (probably) to create another softlink to the firmware file corresponding to the system name reported by the brcmfmac module, but the base filesystem is mounted ro.

All of which leads to my question: Is there a way to modify the filesystem while the system is live, or do I have to modify the HAOS image itself and rewrite it? If so, the testing cycle for this is going to be extremely long.

Thanks in advance,
Jon

Open an issue here asking for the hardware support: Issues · home-assistant/operating-system · GitHub

Thanks. I’ll do that.

OK. I’ve opened the issue, but there’s not a lot happening. Which I understand entirely as I’m probably one of only a small handful of people actually using these boxes. In order to help things along, is there some handy way of testing this setup without having to create a new disk image and write the whole thing using Ubuntu (or similar)? I’m no stranger to OS hacking, or git, and I’m more than happy to produce a PR once it’s working. I’m just not quite sure where to start, I’ve never used an OS with a filesystem that is not only read-only, but also sized to the exact size of the data on it! :slight_smile:

What you could do is to:

  • fork the HA repository
  • add the missing drivers
  • create a pull request
  • run your system from that repository

Until the PR is accepted you’ll need to keep your repository up to date manually by merging changes into your repository regularly.

I know it is a bit of a hassle, but ‘easier’ than making the changes manually with every update :thinking:

Would it not be easier to switch off/disable existing hardware and install compatible devices? If you are lucky they are plugged into a M2 slot and can just be replaced, the other option is USB of course.

I understand the desire to make as native as possible but sometimes the drivers are just too tricky, and hardware is usually cheap.