GithubHelp home page GithubHelp logo

egladman / octoprint-fedora-arm Goto Github PK

View Code? Open in Web Editor NEW
0.0 2.0 0.0 77 KB

Fedora-based Octoprint image for ARM single board computers

License: GNU General Public License v2.0

Makefile 6.20% Shell 88.65% Dockerfile 5.14%
arm64 fedora octopi octoprint raspberry-pi 3d-printing single-board-computers

octoprint-fedora-arm's Introduction

octoprint-fedora-arm

An immutable Octoprint ARM image with an emphasis on resiliency. Set it and forget it. This project was inspired by OctoPi, but shares zero code.

Features

  • Read-only filesystem
    • Flash storage is susceptible to data corruption on power loss, and heavy writes. We're able to entirely circumvent this issue by mounting the filesystem as read-only and leveraging a tmpfs that lives in RAM.
  • Container-based
  • Application auto-updates
    • Disabled by default
  • Device Autodiscovery
    • On boot all relevant character devices (i.e, serial ports, cameras) will be made accessible to Octoprint

Hardware Requirements

RAM

Everything lives in RAM. This includes the root filesystem and container hence it's heavier than a traditional octoprint install.

  • minimum: 4GB

Storage

  • minimum: 8GB

Persistence

  1. Format a usb flashdrive with the following settings:
  • label: OCTOPRINT
  1. While off insert the usb flashdrive into the device.

  2. Power on the device. Octoprint config settings will be written to the flashdrive.

Build

  1. Download the corresponding raw aarch64 image from fedoraproject.org and save it to the working directory

  2. Verify checksums

  3. Build image

make boards/arm64/v8/generic

Note: The image will be placed in build/dist

Install

xzcat

xzcat Octoprint-Fedora-38-1.6.aarch64.raw.xz | dd iflag=fullblock of=/dev/XXX oflag=direct bs=4M status=progress && sync

Note: Depending on your setup you might need to prefix dd with sudo (i.e, xzcat ... | sudo dd ...).

arm-image-installer --media=/dev/XXX --resizefs --target=none --image=Octoprint-Fedora-38-1.6.aarch64.raw.xz

Post Install

  1. SSH into the machine
ssh octo@octoprint
  1. Change the default password for user octo
sudo octoprint-readonly disable
passwd octo
sudo octoprint-readonly enable

Packaging

make ENABLE_DEBUG=0 ENABLE_RELEASE=1 boards/arm64/v8/generic
(cd build/dist; sha512sum *) > build/dist/CHECKSUM)

Development

Dependencies:

  • systemd-nspawn
  • qemu
  • make
  • bash

QEMU

make setup-qemu
sudo make setup-binfmt

Debugging

Raspberry Pi

If the device fails to start then attach a serial cable and watch the logs

screen /dev/ttyUSB0 115200

To exit screen, type Control-A k.

Commonly Asked Questions

  1. What's the default username/password for the unprivileged user?
  • Username: octo
  • Password: octo
  1. I can't delete build, it says its busy
sudo umount build/rootfs/boot
sudo umount build/firmware
sudo umount build/rootfs
sudo vgchange -an fedora
sudo losetup -D build/fedora.raw
  1. I can't delete build, it says permission denied
sudo rm -irf build
  1. How do a run a command as root if a password isn't set for it?

While logged in as octo run:

sudo su -
whoami
  1. Is it possible to temporarily enable write access to the root filesystem?
sudo octoprint-readonly disable

Once you're done making changes remount as readonly

sudo octoprint-readonly enable
  1. What's the stream/snapshot webcam URLs?
  • stream: /webcam/?action=stream
  • snapshot: http://localhost:8080/?action=snapshot

source

octoprint-fedora-arm's People

Contributors

egladman avatar

Watchers

 avatar  avatar

octoprint-fedora-arm's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.