After a drive failed in my build server caused me to lose all the work I did to build packages for Home Assistant, I finally got motivated to rebuild it again. It took a long time to figure it all out again and never wanted to have to start from scratch so all of it is pushed into a git repo1 that can be used as a poudriere ports overlay.
Recently support for armv7 from Rust has been annoying to build, so I have decided to switch to arm64 for my Raspberry Pis. This makes building all of HomeAssistant much easier so I can get back to working on my setting up my Z-Wave switches again.
At the BSDCan DevSummit I enjoyed multiple talks, included the Have, Need, Want and Axe Session. I started thinking about what items I could work on.
Some random notes about using Z-Wave JS on FreeBSD.
The Zooz S2 ZST10 works well on FreeBSD using the uslcom(4) driver.
After creating a brand new AMI from the latest and greatest FreeBSD, we would be remiss if we did not properly test that it boots and can do a basic build.
Currently one of my customers is using the FreeBSD 13.0-RELEASE AMIs that are provided by the FreeBSD Release Engineering team. While at first these AMIs made our lives easier, as we have grown there are a couple of problems and opportunities for optimization that have become apparent:
After getting my new MacBook Pro with the new M1 Pro CPU and running the Migration Assistant I started seeing the following error:
Error calling protect()
Unfortunately I didn’t take a screenshot so this might not be the exact error, but it is pretty close.
The solution is kind of silly, but just download the latest version of OpenVPN from their website and reinstall it over the top of the existing install.
One of my customers needs to have builds done on arm64 hosts, but they lack the necessary hardware to do so in house and procuring such hardware can be very difficult due to vendors EoL some hardware without the replacement hardware being ready to ship. Currently they already have Jenkins configured with a couple of amd64 build agents that do most of the building, so we wanted something we could just drop in to their existing infrastructure. So we started evaluating different options like Equinix Metal (formerly Packet.net) and AWS ec2. Both provide nice options for being able to fire up a host and do a build and then shut it off when the build is complete.