Installation guide for Linux?

Hi - I see there are some general notes on installing brewblox on Linux, mostly focused on using synology. But I wonder if there is a guide specially when using generic Linux? I thought I found one in the past, but I’m not having much joy on finding it again.

I’ve tried using the synology guide but get heaps on errors when installing brewblox-ctl, ditto when using the raspberry pi guide, so is there anything more generic?

What is the linux distro name, and what are the errors?

A guide would mostly consist of “install docker, and then run the brewblox install guide”, but we’d have to test it to release it. For Ubuntu/Debian systems, the normal install guide should work out of the box. Just skip the parts where you flash an SD card.

I started with a debian 12 install and ran into issues where when installing brewblox-cli, the wheel wouldn’t install without going back to an old version of pyyaml==5.4.1 which let cython install. I also found the syntax for udevadm seems to be different to the one documented and it was generally getting messy. Hence I thought I might have missed some docs.

So I’ll start over, follow the raspberry pi guidance as an outline and document more thoroughly than my vague statements above the problems that I find. Ideally I’d use an LXC as I use proxmox as my home server, but that is probably one step too far this time round so I’ll stick to a VM and report back on what I find. At least I know there isn’t some docs that my old eyes couldn’t find :slight_smile:

This is an install inside a virtualenv / using the script?

What version of udevadm do you have installed?

I’ll spin up a VM of my own, and check whether I can reproduce the issues.

We aim to autodetect and handle all quirks in the installer, instead of referring users to documentation.

All looking very good now I have started with the raspberry pi install guide. This was with a Debian 12.2.0 running as a proxmox VM and everything worked just fine. I think my previous episode was fat fingers at my end and I’m sorry about that.

Pushing the boat out a bit, I decided to try my luck with the same version of Debian running as an LXC and an error is highlighetd when trying to reload the udevadm rules. Wierdly the version of udevadm on the vm is the same as the LXC. But with the VM it works and with the LXC I get

sudo udevadm control --reload-rules
Failed to send reload request: No such file or directory

I think that will need more time on my side to work through, but I’m delighted that a standard debian VM works just fine

Is there a significant difference in /etc/udev/rules.d between the two systems? We already do some checks before we run udevadm, and may need more

It looks as though when you run docker in an unprivileged LXC, especially when the underlying file system is ZFS, then you do have to do some work to get this to go. Luckily for me and any other proxmox user who gets to this point, the excellent ttech scripts on github take care of the heavy lifting. I used

and selected the docker LXC part and used the advanced options to enable the ZFS overlay for docker storage as my proxmox data is stored on ZFS.

Once done, the rest was plain sailing following the raspberry pi install as I did with the full docker 12 VM. The resources the LXC uses are as expected, significantly less than the full VM and seems to be running well with 768M of memory on an 8G drive. As an FYI if the LXC is created as a privileged container (danger Will Robinson), then the script provides the hooks needed to do USB passthrough, so I’m guessing you could add the spark in if needed. That’s untested by me as I access my spark over wifi and so the safer unprivileged LXC is OK, but I have other privileged LXCs running zwave and zigbee via similar dongles and they work fine.

Thanks for the assist Bob.

Good to hear it works! We may have a look at introducing a config flag for spark 2/3 features, as this is something only relevant to the Particle toolchain.