mirror of
https://github.com/openglow-org/forgefirm.git
synced 2026-09-27 08:41:13 -07:00
Add a "What this costs" banner to the README and INSTALL, below the in-development notice. It states that the firmware is free in both senses, that nothing is paywalled or held back, that the work happens in public, and that anyone who wants to verify it can read the licenses and the commit log instead of taking a stranger's word for it. The banner also warns that a build bought from a third party is that party's build, not this project's: unreviewed code driving a laser. Documentation only. No behavior change, so no acceptance catalog consequence.
145 lines
6.3 KiB
Markdown
145 lines
6.3 KiB
Markdown
# Installing OpenGlow/ForgeFIRM
|
|
|
|
> # ⚠️ IN DEVELOPMENT — NOT YET RELEASED
|
|
>
|
|
> **ForgeFIRM has no public release yet.** No images are published, nothing here
|
|
> is installable, and there is no supported way to put this on a machine. The
|
|
> documentation describes the firmware as it is being built and validated on the
|
|
> bench — it is here to be read, not followed.
|
|
>
|
|
> If you come across a file claiming to be a ForgeFIRM image, it did not come
|
|
> from this project.
|
|
|
|
> # What this costs
|
|
>
|
|
> Nothing. Not yesterday, not today, and if anyone ever charges you for
|
|
> it, it wasn't this project. ForgeFIRM is free in both senses: free as
|
|
> in beer, free as in speech. All of it is public, under licenses (MIT
|
|
> and GPL) any lawyer will tell you are not a trap.
|
|
>
|
|
> No paid tier. No license key, no subscription, no activation, no Pro
|
|
> edition, no product page, no waitlist, no pre-order, nothing to buy.
|
|
> Skepticism is fair and cheap to settle: ten minutes with the licenses
|
|
> and the commit log does it, which beats trust on both cost and
|
|
> accuracy.
|
|
>
|
|
> If someone offers to sell you this firmware, the licenses allow it and
|
|
> nobody's calling it theft. Just note that what you take home is their
|
|
> build, not this one: a stranger's code, running a laser that has no
|
|
> opinion about what it burns. Get it from the source.
|
|
|
|
ForgeFIRM installs **alongside** the factory firmware on the stock eMMC,
|
|
using the factory's own A/B rootfs slot scheme: the installer writes
|
|
ForgeFIRM to the slot the factory firmware is *not* running from, and
|
|
switches the bootloader to it. Nothing is repartitioned, the factory
|
|
`/data` partition (settings, calibration, logs) is untouched, and the
|
|
booted factory firmware stays installed in the other slot.
|
|
|
|
Before anything is overwritten, the installer archives **every** factory
|
|
firmware version on the machine — both rootfs slots and the recovery
|
|
boot partitions — to `/data/forgefirm/archive/`, so a full offline
|
|
factory restore is always possible, no Glowforge cloud required.
|
|
|
|
> **Requires a ForgeFIRM release that ships the `forgefirm.fw` asset
|
|
> (v0.1.0 or later).**
|
|
|
|
## Prerequisites
|
|
|
|
- [Serial console](SERIAL.md) access. Current factory firmware does not
|
|
offer SSH, so the install is run at the console (login `root`, no
|
|
password).
|
|
- ~300 MB free on `/data` (a factory machine has far more).
|
|
- Internet access on the machine for the standard flow. For an offline
|
|
install, place a `forgefirm.fw` on `/data` beforehand and pass its
|
|
path to the installer.
|
|
|
|
**A very important warning: this is experimental software. Use of this
|
|
software could seriously maim or kill you or others, and voids your
|
|
warranty. It is not affiliated with or endorsed by Glowforge. Use it at
|
|
your own risk.**
|
|
|
|
## Regulatory and legal
|
|
|
|
Installing ForgeFIRM replaces the firmware of a certified laser product.
|
|
This is disclosure, not legal advice — but understand the categories
|
|
before you install:
|
|
|
|
- **Laser product certification (US).** The factory machine is
|
|
certified under FDA/CDRH 21 CFR 1040.10 and 1040.11. Modifying it
|
|
makes **you** the manufacturer of a modified laser product for
|
|
regulatory purposes; the original accession no longer describes the
|
|
article you operate.
|
|
- **CE/UKCA (EU/UK).** The manufacturer's declaration of conformity no
|
|
longer covers the modified machine.
|
|
- **Safety listing.** Any UL/ETL or equivalent listing applies to the
|
|
product as shipped, not as modified.
|
|
- **Insurance.** Property and liability policies commonly exclude fire
|
|
loss involving modified equipment. Check yours before running jobs.
|
|
|
|
The hardware safety interlocks (lid switches, interlock, power-fault
|
|
chain) remain active under ForgeFIRM — but the regulatory status of the
|
|
machine is yours to own once you flash it.
|
|
|
|
## Install
|
|
|
|
Log in at the factory console and run:
|
|
|
|
```sh
|
|
curl -fL https://raw.githubusercontent.com/ScottW514/forgefirm/master/scripts/install-forgefirm.sh --output /tmp/install-forgefirm.sh
|
|
sh /tmp/install-forgefirm.sh
|
|
```
|
|
|
|
(For an offline install: `sh /tmp/install-forgefirm.sh /data/forgefirm.fw`)
|
|
|
|
One stage, no intermediate reboots. The installer:
|
|
|
|
1. Confirms it is running on factory firmware, from a factory eMMC
|
|
slot, with the factory partition layout.
|
|
2. Stops the Glowforge services (including the updater).
|
|
3. Archives every factory slot version and the recovery boot
|
|
partitions to `/data/forgefirm/archive/` (manifest with checksums;
|
|
a few minutes each, with progress).
|
|
4. Downloads the latest `forgefirm.fw` release (or uses the local file
|
|
you passed) and **verifies its signature** before touching anything.
|
|
5. Writes ForgeFIRM to the inactive slot with the factory's own `fwup`,
|
|
then verifies the written filesystem.
|
|
6. Installs `/data/ffboot` (the boot-slot tool) and switches the saved
|
|
U-Boot environment to the new slot — the switch is read-back
|
|
verified; on any failure the machine keeps booting factory firmware.
|
|
7. Reboots into ForgeFIRM.
|
|
|
|
Login is `root`, no password (also via SSH). Change it.
|
|
|
|
## Switching firmware
|
|
|
|
Both systems stay installed; `ffboot` switches between them (as
|
|
`/data/ffboot` on factory firmware, on the PATH in ForgeFIRM):
|
|
|
|
```sh
|
|
ffboot -l # inventory: what is in each slot, what boots next
|
|
ffboot -e # switch to the factory firmware (newest factory slot)
|
|
ffboot -e2 # switch to ForgeFIRM (slot 2 on a standard install)
|
|
```
|
|
|
|
Switch targets are probed first — `ffboot` refuses to select a slot
|
|
that does not look bootable (`-f` overrides). Reverting to factory
|
|
firmware and back requires no reinstall.
|
|
|
|
**Routine updates do not use the installer.** Update from the web
|
|
control panel's System page, which downloads (or accepts an upload of)
|
|
a signed `forgefirm.fw` release, verifies it, and applies it to the
|
|
inactive slot. Rerunning the installer is only for recovering a broken
|
|
ForgeFIRM install: switch to factory firmware and run it again — it
|
|
skips archives it already has and simply rewrites the ForgeFIRM slot.
|
|
|
|
## Upgrading from a legacy dual-partition install
|
|
|
|
Machines installed with the previous (partition-carving) installer
|
|
migrate automatically: run this installer from the factory firmware;
|
|
on ForgeFIRM's first boot from its new slot, the legacy partition is
|
|
reclaimed and `/data` grows back to the full factory size. `/data`
|
|
contents are preserved throughout.
|
|
|
|
**NOTE:** This firmware is in beta. It mostly works. It is for
|
|
experimentation purposes — not for production. Expect problems.
|