Raspi Buster/RPi4...?

Ok, I have been posting a bit recently in the past couple days. Sorry to be a bother but I’m trying to brew Sunday so I want to get this working. I have a Pi4 with a spark and the only way I can get any of it’s hardware to work properly (i.e. video output…) is to use Raspbian Buster which seems to have the right hardware drivers. However, this setup link seems to put things in the wrong place in this distro so that I cannot find the brewblox directory in it’s default location as well as a smattering of other things. https://brewblox.netlify.com/user/startup.html. Is there a better Raspbian and/or Linux distribution than buster that makes these instructions go as written with just a copy/paste of the commands? Thanks in advance! Also - I do have a Pi3 that I can fall back to as well.

By now we consider Raspbian Buster to be the default distro, and the install guide is tested against it.

Where and how is it putting files in the wrong place?
When reporting problems, it does help to follow this format:

  • What did I do
  • What did I expect to happen
  • What actually happened
  • What hardware/software am I using

Ok - thanks for the format, I will use that format from now on. I did get it working so no need to get into too much detail if you chose to respond, but just to highlight what I did and where it failed I have included the information below. The failure point is in asterisk/brackets […]

After going through all the setup instructions with no errors up until step 5. there is no ./brewblox directory:
@brewblox:/ $ cd ~/brewblox
@brewblox:~/brewblox $ cd ./brewblox
-bash: cd: ./brewblox: No such file or directory

@brewblox:~/brewblox $ pwd
/home/pcuser/brewblox

[Running “brewblox-ctl setup” today works in the root directory after a rebuild of my Pi using the same instructions, but last few times it told me that I had to run it from within the brewblox directory, of which there was none and still is none. I also tried using sudo and it told me not to run the command as root and would not execute…]

Docker pull begins:
"brewblox-ctl requires extensions that match your Brewblox release. Do you want to download them now? [Press ENTER for default value ‘Yes’]

SHELL docker rm ctl-lib
SHELL docker pull brewblox/brewblox-ctl-lib:edge
edge: Pulling from brewblox/brewblox-ctl-lib
eeea9b08a483: Pull complete
Digest: sha256:08082d527109ee627d500d3824f127284ec573fa2fc8c4f81f7568e94ce715be
Status: Downloaded newer image for brewblox/brewblox-ctl-lib:edge
docker.io/brewblox/brewblox-ctl-lib:edge
SHELL docker create --name ctl-lib brewblox/brewblox-ctl-lib:edge
148318a4b43190b94085f1322c6fe4830069b21957db3d93d011bbea7e25f564
SHELL rm -rf ./brewblox_ctl_lib
SHELL docker cp ctl-lib:/brewblox_ctl_lib ./
SHELL docker rm ctl-lib
ctl-lib
INFO Checking ports…
[sudo] password for pcuser:
INFO Setting .env values…
INFO Copying configuration…
INFO Stopping services…
Removing network brewblox_default
WARNING: Network brewblox_default not found.
INFO Pulling docker images…
Pulling influx … extracting (100.0%)
Pulling emitter … downloading (32.1%)
Pulling traefik … done
Pulling history …
Pulling eventbus … done
Pulling mdns … pull complete
Pulling datastore … pull complete
Pulling ui … downloading

Success:
INFO Stopping services…
Stopping brewblox_datastore_1 … done
Stopping brewblox_traefik_1 … done
Stopping brewblox_history_1 … done
Stopping brewblox_influx_1 … done
Removing brewblox_datastore_1 … done
Removing brewblox_traefik_1 … done
Removing brewblox_history_1 … done
Removing brewblox_influx_1 … done
Removing network brewblox_default
INFO All done!

Hardware/Software:
@brewblox:~/brewblox $ cat /etc/os-release
PRETTY_NAME=“Raspbian GNU/Linux 10 (buster)”
NAME=“Raspbian GNU/Linux”
VERSION_ID=“10”
VERSION=“10 (buster)”
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian

@brewblox:~/brewblox $ uname -a
Linux brewblox 4.19.97-v7l+ #1294 SMP Thu Jan 30 13:21:14 GMT 2020 armv7l GNU/Linux

Hardware : BCM2835
Revision : b03111
Serial : 1000000078304650
Model : Raspberry Pi 4 Model B Rev 1.1

You appear to have a brewblox directory. It’s ~/brewblox, as is normal. At the top of your output you try to navigate to the relative path ./brewblox twice. The second time you do this, you’re effectively trying to navigate to ~/brewblox/brewblox.

For an explanation of directory listing, you can check https://brewblox.netlify.com/user/startup.html#interlude-navigating-linux-directories.
In your case, the user name is not pi, but pcuser (and your home directory is /home/pcuser/, or ~/ for short).

I still don’t understand. Shouldn’t the brewblox-ctl command be in this directory…? Yes, pi is replaced by pcuser (Removed user pi for security):

pcuser@brewblox:~/brewblox $ pwd
/home/pcuser/brewblox
pcuser@brewblox:~/brewblox $ ls
[Shouldn’t brewblox-ctl be in this directory?] brewblox_ctl_lib couchdb docker-compose.shared.yml docker-compose.yml influxdb traefik
pcuser@brewblox:~/brewblox $ cd ./brewblox
-bash: cd: ./brewblox: No such file or directory
pcuser@brewblox:~/brewblox $

Can you for my own sanity list the path where brewblox-ctl should be located if my user is pcuser.

I know I can run a find command with some parameters and find it, but I’m trying to understand for myself why I ended up in the wrong place. Thanks!

Brewblox-ctl isn’t placed in the brewblox directory. You can run which brewblox-ctl to see the location of the brewblox-ctl program. It’s available from everywhere on your Pi. (See https://medium.com/@jalendport/what-exactly-is-your-shell-path-2f076f02deb4 for an explanation of how this is done).

Brewblox-ctl isn’t installed in the brewblox directory because it’s the tool that creates the brewblox directory.

Brewblox-ctl does import some of its commands from the brewblox directory. Those are stored in the brewblox_ctl_lib directory you see in ls output.

Ah, I got it…I couldn’t find it in that directory because it’s not (Nor supposed to be) in that directory.

What got me confused was step 5 of the instructions:

Step 5: First-time setup
To finish the installation, and initialize your system, run the first-time setup script.
Navigate to the directory you chose during the installation (default: cd ~/brewblox ), and start the setup.
cd ./brewblox
brewblox-ctl setup
Follow the instructions until the menu exits.

I kept trying to cd into ./brewblox and run the brewblox-ctl command. If I understand you correctly, it should have run no matter where I was in the Linux directory structure. However, until today I kept getting an error that I needed to run the brewblox-ctl command from within the same directory that it was kept in. Probably due to it not getting added into my PATH statement somehow.

I read the link, thank you for sending that along, it makes sense now. I should probably take a Linux class, I’m still relatively new to that world. Thanks for the explanation!

There’s a subtle distinction here. Brewblox-ctl works from anywhere, but brewblox-ctl setup must be used from inside the brewblox dir.

You can try it out: go to ~ and run brewblox-ctl --help. You’ll see the available global commands.

Then go to ~/brewblox, and run brewblox-ctl --help again. You’ll see the global commands and the install-specific commands.

Brewblox-ctl setup is an install-specific command.

Edit: reading carefully, I’d say the misunderstanding started with the setup error message.

pi@washberry:~ $ brewblox-ctl setup
Usage: brewblox-ctl [OPTIONS] COMMAND [ARGS]...
Try "brewblox-ctl --help" for help.

Error: No such command "setup".

Many commands only work if your current directory is a Brewblox directory.
It looks like you installed Brewblox in the default location.
To navigate there, run:

    cd /home/pi/brewblox

brewblox-ctl is not kept in the brewblox directory. Everything else kind of goes from there.

Exactly - that’s the error I got (But with pcuser and not pi as the directory). Then I couldn’t find the file to run the setup program which has to be run from the directory it lives in. But the other commands can be run from anywhere due to being in the PATH statement. Which now that I know makes sense, but not knowing that piece may have made me do things I might not have needed to do (Like rebuild my RPi 7 times…lol.) Although, I do think I had Docker issues as well because that kept error-ing out as well. In the computer world, if things don’t go smooth and exact, I don’t trust them so I start over.

Though on the up-side, I’m pretty good at raspi-config now and I memorized my WiFi password from typing it so much…haha

Partially because we as developers need to reinstall brewblox often, we made the install process very clean. You shouldn’t need to reinstall your Pi if you get weird errors. The guide to removing things I linked earlier includes steps on completely nuking your install and starting from scratch. Even that doesn’t need a Pi reinstall.

I’ve been seeing more Docker timeout errors lately when pulling images. If that happens, just re-run the command. My guess is that with many people sitting at home, they’re getting more network traffic.

If you get different Docker errors that aren’t immediately obvious, feel free to post them here. We do like to know if we need to add documentation or automated workarounds.

I’ll bookmark your “nuke & pave” link, thank you for including that. Thank you for all the help too! It’s all up & running now. I tested everything and it all works…brew day is saved!

BTW - That was a pretty steep learning curve, but I think I got it now. When I convert to my electric brewery this guy seems like it will certainly be able to run it. Thanks for all the efforts!

One last comment and then I’ll close this out, again thanks for the help. “Partially because we as developers need to reinstall brewblox often, we made the install process very clean.”
This crowd are not developers nor even “tech guys” I’d bet. So simpler is better, we just want to plug it in, make a few choices, and brew stuff. Make it like an iPhone, you install the app, then brew. The chemistry of brewing; malt/water/yeast/hop choices + time is complex enough. I spent a lot of time learning how to make great beer, the things in my brew house should enhance that process and make the time to create great beer shorter.

1 Like