FabMo / FabMo-Engine

The FabMo Engine - A software and apps ecosystem for digital fabrication.
http://gofabmo.org/
Apache License 2.0
55 stars 22 forks source link

RPi-Image laundry list of things for a next image #876

Open tedh-shopbot opened 2 years ago

tedh-shopbot commented 2 years ago
RobMackie commented 2 years ago

This differs from previous image in that if a wifi connection is set up FabMo, if FabMo is not running for some reason, the Pi doe not automatically establish a connection. Not sure how essential that is, but I found it sometimes helpful for the networking to seem to exist outside of FabMo as well as inside.

I think there is already an issue open for addressing this. I need to add more descriptive text to it but it is: https://github.com/FabMo/FabMo-Engine/issues/837

RobMackie commented 2 years ago

Along those lines, I think adding the Conman gadget to the menu bar might be helpful. If you have a screen you can readily check your connections this way. Or, at least previously, one could.

yes, i agree.

RobMackie commented 2 years ago

I think I saw somewhere that there is a method autoexpand the file system on an SD card; it is very easy to forget and end up with a crashie system because there is little memory left with the 8g version of the image.

I think that we need to expand them before we ship them. For engineering purposes, it might be easier to make that a manual process so we don't have to contract them again before making a new image to share.

What has been your process for "shrinking the image back down" after you expand it? (or have you always flashed a new unexpanded image before playing with the image?

RobMackie commented 2 years ago

We should check the video defaults for the RPi so that the most common HDMI's will work out of the box. (With the older Handibots that use the RPi screen, we need to enable a special video driver and rotate the screen -- maybe something for tech support to know).

Ok - right. we'd so want it to show up on a monitor easily. Have you had any problem with the current image? just curious.

I'm not sure we're supporting the handibot out of the gate? or are we? eventually we will want a way to make that easy, for sure. Not sure we need it in a current image that is aimed only at desktop and only at access from the browser. We know there are significant problems if the user runs the browser on the pi. That will likely be an "unsupported" configuration. A user is welcome to try it but not the recommended or supported way to run it. We don't expect to expose the video ports unless you have the electrical enclosure open. It is there for diagnostics, not use?

Or do you have a different idea of how that goes?

RobMackie commented 2 years ago

Might be nice for developers to adjust the system limit for 'number-of-file-watchers' for working with vs-code.

Worth thinking about. There are some tradeoffs. Need to work out if any of them impact us. We might just document how to change that number and how to change it back rather than doing so, in order to conserve system resources under ordinary use.

tedh-shopbot commented 2 years ago

On Shrinking: All was able to figure out was to make an SD copy on the Pi, but using an 8G sd card. I'm sure there is a better way. But the pi seemed to shrink the size down OK. To that, which I would then ZIP. And, out of laziness, of done 32-ZIPped to 32 several times.

tedh-shopbot commented 2 years ago

On Supporting Handibot: There are relatively few Handibots than can be easily switched. I don't think it is worth worrying much about at the moment. Since I am the one who created the weird (no-prox) homing for Handibots, I figured that when I got a chance, I would work up the special macros needed for existing Handibots. I think they will need their own Macro 2,3, and 9. I can mostly just port those from before using the new Standard Macro Variables.

tedh-shopbot commented 2 years ago

Hey @RobMackie , I think we covered most of everything here. I'd say we just need to save an issue for making a R-pi handibot profile ... assign to me.

obra commented 2 years ago

It looks like most folks building pi images use https://github.com/RPi-Distro/pi-gen to reliably script the build of an image based on the vanilla Rpi images.

Thankfully, it's just a bunch of shell scripts with "stages" of build, so the first 80% of the work to build a custom fabmo version should just be documenting the steps you'd need to take to customize a regular image in the form of a shell script.

One thing that you'd theoretically get for free by doing it this way is support for Raspberry Pi's "imager" tool that lets users configure usernames, passwords and network from their desktops as they write the image to an SD card.

RobMackie commented 2 years ago

Thanks for the reference. I'm hoping to start this in a couple fo weeks. tons of stuff between here and there. :-)

obra commented 2 years ago

I can believe it. It's a tech stack I've been meaning to play with. If I happen to get anything put together that can give you a head start on this, I'll let you know.

On Tue, Jun 14, 2022, at 6:55 PM, Rob Mackie wrote:

Thanks for the reference. I'm hoping to start this in a couple fo weeks. tons of stuff between here and there. :-)

— Reply to this email directly, view it on GitHub https://github.com/FabMo/FabMo-Engine/issues/876#issuecomment-1155888560, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAALC2F3NZX4PK6WVGSKVXLVPEZY5ANCNFSM5U7LSBIA. You are receiving this because you commented.Message ID: @.***>

obra commented 2 years ago

@RobMackie, So yeah. I got myself nerd sniped with this one.

It is by no means complete, but if you fork https://github.com/obra/pi-gen-fabmo into the fabmo organization, you'll have a decent basis to start from.

That repo contains a pi-gen config file: https://github.com/obra/pi-gen-fabmo/blob/master/config that builds a rpi image with fabmo installed (cloned from git master) and at least partially configured.

Most importantly, it automatically builds and publishes a new image on every commit using GitHub actions. (Long-term you might want to switch to only building things that get tagged and then keeping those around.)

The GitHub action config is here: https://github.com/obra/pi-gen-fabmo/blob/master/.github/workflows/build.yml

The published rpi images are here: https://github.com/obra/pi-gen-fabmo/releases

All the fabmo-specific bits are here:

https://github.com/obra/pi-gen-fabmo/tree/master/stage5-fabmo

https://github.com/obra/pi-gen-fabmo/blob/master/stage5-fabmo/02-install-fabmo/01-run.sh is the script that "installs" fabmo.

Further configuration is just a shell script away.

I don't understand the updater, so didn't touch it at all.

I'll keep the repo around until you've either forked it or told me you're going another route.

RobMackie commented 1 year ago

revist during or after issue #990