From 2f1a81c87ed8b478ad903daf455d33f9fd0dfd10 Mon Sep 17 00:00:00 2001 From: paxx12 <245230251+paxx12@users.noreply.github.com> Date: Wed, 17 Dec 2025 23:11:30 +0100 Subject: [PATCH 1/2] Consolidate config management into default-config overlay --- README.md | 2 + docs/extended_config.md | 64 +++++++++++++++++++ docs/klipper_includes.md | 27 ++++---- .../root/etc/init.d/S49default-config | 32 ++++++++++ .../lava/default-config/extended/extended.cfg | 1 + .../root/usr/local/bin/extended-config.py | 17 +++++ .../patches/01-add-klipper-includes.patch | 5 +- .../patches/01-add-moonraker-includes.patch | 5 +- .../root/etc/init.d/S55include_keeps | 59 ----------------- .../extended/klipper}/00_keep.cfg | 0 .../extended/moonraker}/00_keep.cfg | 0 .../config/klipper/00_keep.cfg | 2 - .../config/moonraker/00_keep.cfg | 2 - .../moonraker}/02_internal_camera.cfg | 2 + .../extended/moonraker/03_usb_camera.cfg | 8 +++ .../config/moonraker/usb_camera.cfg.disabled | 9 --- .../extended/moonraker}/01_timelapse_stub.cfg | 2 + 17 files changed, 145 insertions(+), 92 deletions(-) create mode 100644 docs/extended_config.md create mode 100755 overlays/firmware-extended/00-default-config/root/etc/init.d/S49default-config create mode 100644 overlays/firmware-extended/00-default-config/root/home/lava/default-config/extended/extended.cfg create mode 100755 overlays/firmware-extended/00-default-config/root/usr/local/bin/extended-config.py delete mode 100755 overlays/firmware-extended/01-enable-klipper-includes/root/etc/init.d/S55include_keeps rename overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/{klipper-config => default-config/extended/klipper}/00_keep.cfg (100%) rename overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/{moonraker-config => default-config/extended/moonraker}/00_keep.cfg (100%) delete mode 100644 overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/origin_printer_data/config/klipper/00_keep.cfg delete mode 100644 overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/origin_printer_data/config/moonraker/00_keep.cfg rename overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/{moonraker-config => default-config/extended/moonraker}/02_internal_camera.cfg (85%) create mode 100644 overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/default-config/extended/moonraker/03_usb_camera.cfg delete mode 100644 overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/origin_printer_data/config/moonraker/usb_camera.cfg.disabled rename overlays/firmware-extended/50-stub-moonraker-timelapse/root/home/lava/{moonraker-config => default-config/extended/moonraker}/01_timelapse_stub.cfg (67%) diff --git a/README.md b/README.md index fd65740b..7cb5d067 100644 --- a/README.md +++ b/README.md @@ -26,6 +26,7 @@ and the [release notes](https://github.com/paxx12/SnapmakerU1/releases/latest). All basic firmware features plus: +- [Extended Configuration](docs/extended_config.md) - Customize firmware behavior via config file - [Camera Support](docs/camera_support.md) - Hardware-accelerated camera stack (Rockchip MPP/VPU) - [USB Camera Support](docs/camera_support.md) - Support for external USB cameras - [Klipper and Moonraker Custom Includes](docs/klipper_includes.md) - Add custom configuration files via Fluidd @@ -43,6 +44,7 @@ Known issues: - [Installation Guide](docs/install.md) - How to install custom firmware - [Building from Source](docs/development.md) - Development guide for building custom firmware - [SSH Access](docs/ssh_access.md) - How to access the printer via SSH +- [Extended Configuration](docs/extended_config.md) - Customize firmware behavior via config file - [Camera Support](docs/camera_support.md) - Camera features and WebRTC streaming - [Klipper and Moonraker Custom Includes](docs/klipper_includes.md) - Add custom configuration files via Fluidd - [RFID Filament Tag Support](docs/rfid_support.md) - RFID filament tag usage and programming diff --git a/docs/extended_config.md b/docs/extended_config.md new file mode 100644 index 00000000..f053cbdd --- /dev/null +++ b/docs/extended_config.md @@ -0,0 +1,64 @@ +# Extended Configuration + +**Available in: Extended firmware** + +The extended configuration file `/home/lava/printer_data/config/extended/extended.cfg` allows you to customize firmware behavior. + +## Configuration File Location + +``` +/home/lava/printer_data/config/extended/extended.cfg +``` + +## Editing the Configuration File + +The `extended.cfg` file is automatically created by the firmware. + +### Via Fluidd/Mainsail + +1. On the printer, go to **Settings > Maintenance > Advanced Mode** and enable it +2. Open Fluidd or Mainsail in your web browser (`http://`) +3. Go to the **Configuration** tab +4. Navigate to the root directory and open `extended.cfg` +5. Add or modify your configuration options (see below) +6. Save the file +7. Reboot the printer + +### Via SSH + +```bash +ssh lava@ +vi /home/lava/printer_data/config/extended/extended.cfg +``` + +After saving, reboot the printer. + +## Important Notes + +- After making changes to `extended.cfg`, reboot the printer +- The file uses INI-style format with sections `[camera]` and `[web]` +- Lines starting with `#` are comments and ignored + +## Revert back to defaults + +If you decide to go back to default extended configuration, +simply remove or rename `extended` folder in Fluidd/Mainsail. + +## Recovery from Extended Configuration issue + +If you break Moonraker with an invalid configuration, the printer will not connect to WiFi on next boot. + +To recover: + +1. Create an empty file named `extended-recover.txt` on a USB stick +2. Insert the USB stick into the printer +3. Restart the printer +4. The extended configuration folder will be backed up to `extended.bak` +5. The printer will start with a fresh configuration +6. Remove the USB stick and the `extended-recover.txt` file will be automatically deleted + +## Related Documentation + +- [Camera Support](camera_support.md) - Camera features and WebRTC streaming +- [Klipper and Moonraker Custom Includes](klipper_includes.md) - Add custom configuration files +- [Data Persistence](data_persistence.md) - Understanding persistent storage diff --git a/docs/klipper_includes.md b/docs/klipper_includes.md index 7712d240..afabf025 100644 --- a/docs/klipper_includes.md +++ b/docs/klipper_includes.md @@ -8,8 +8,8 @@ The `enable-klipper-includes` overlay adds support for custom Klipper and Moonra This overlay modifies the default Klipper and Moonraker configurations to include user-defined configuration files from specific directories: -- Klipper includes from: `klipper/*.cfg` -- Moonraker includes from: `moonraker/*.cfg` +- Klipper includes from: `extended/klipper/*.cfg` +- Moonraker includes from: `extended/moonraker/*.cfg` ## Usage @@ -51,23 +51,22 @@ aspect_ratio: 16:9 ## Important Notes -- All `.cfg` files in the `klipper/` folder are automatically included. -- All `.cfg` files in the `moonraker/` folder are automatically included. -- Configuration files persist across reboots. -- Placeholder files (`00_keep.cfg`) are automatically created in both folders with helpful comments. -- Do not modify or remove the `00_keep.cfg` placeholder files. -- Test changes carefully to avoid breaking the printer configuration. -- Invalid configuration will prevent Klipper/Moonraker from starting. +- All `.cfg` files in the `extended/klipper/` folder are automatically included +- All `.cfg` files in the `extended/moonraker/` folder are automatically included +- Configuration files persist across reboots +- Do not modify or remove the `00_keep.cfg` placeholder files +- Test changes carefully to avoid breaking the printer configuration +- Invalid configuration will prevent Klipper/Moonraker from starting -## Recovery from Moonraker Issues +## Recovery from Extended Firmware Configuration Issues If you break Moonraker with an invalid configuration, the printer will not connect to WiFi on next boot. To recover: -1. Create an empty file named `moonraker-recover.txt` on a USB stick +1. Create an empty file named `extended-recover.txt` on a USB stick 2. Insert the USB stick into the printer 3. Restart the printer -4. The Moonraker configuration folder will be backed up to `moonraker.bak` -5. Moonraker will start with a fresh configuration -6. Remove the USB stick and the `moonraker-recover.txt` file will be automatically deleted +4. The configuration folder will be backed up to `extended.bak` +5. The printer will start with a fresh configuration +6. Remove the USB stick and the `extended-recover.txt` file will be automatically deleted diff --git a/overlays/firmware-extended/00-default-config/root/etc/init.d/S49default-config b/overlays/firmware-extended/00-default-config/root/etc/init.d/S49default-config new file mode 100755 index 00000000..ad3eed4c --- /dev/null +++ b/overlays/firmware-extended/00-default-config/root/etc/init.d/S49default-config @@ -0,0 +1,32 @@ +#!/bin/sh + +start() { + if [ -f /mnt/udisk/extended-recover.txt ]; then + if [ -d /home/lava/printer_data/config/extended ]; then + mkdir -p /home/lava/printer_data/config/extended.bak + mv -r /home/lava/printer_data/config/extended/. /home/lava/printer_data/config/extended.bak + fi + rm -f /mnt/udisk/extended-recover.txt + fi + + mkdir -p /home/lava/printer_data/config + cp -rn /home/lava/default-config/. /home/lava/printer_data/config/ + chown -R lava:lava /home/lava/printer_data/config +} + +case "$1" in + start) + start + ;; + stop) + ;; + restart|reload) + start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac + +exit 0 diff --git a/overlays/firmware-extended/00-default-config/root/home/lava/default-config/extended/extended.cfg b/overlays/firmware-extended/00-default-config/root/home/lava/default-config/extended/extended.cfg new file mode 100644 index 00000000..0c29109f --- /dev/null +++ b/overlays/firmware-extended/00-default-config/root/home/lava/default-config/extended/extended.cfg @@ -0,0 +1 @@ +# DO NOT REMOVE THIS FILE diff --git a/overlays/firmware-extended/00-default-config/root/usr/local/bin/extended-config.py b/overlays/firmware-extended/00-default-config/root/usr/local/bin/extended-config.py new file mode 100755 index 00000000..5d79e20b --- /dev/null +++ b/overlays/firmware-extended/00-default-config/root/usr/local/bin/extended-config.py @@ -0,0 +1,17 @@ +#!/usr/bin/env python3 + +import sys +import configparser + +cfg_file, section, key, default = sys.argv[1:5] + +cfg = configparser.ConfigParser() +cfg.read(cfg_file) + +value = ( + cfg.get(section, key, fallback=default).strip() + if cfg.has_section(section) + else default +) + +print(value if value else default) diff --git a/overlays/firmware-extended/01-enable-klipper-includes/patches/01-add-klipper-includes.patch b/overlays/firmware-extended/01-enable-klipper-includes/patches/01-add-klipper-includes.patch index 195377ff..09eac678 100644 --- a/overlays/firmware-extended/01-enable-klipper-includes/patches/01-add-klipper-includes.patch +++ b/overlays/firmware-extended/01-enable-klipper-includes/patches/01-add-klipper-includes.patch @@ -1,7 +1,7 @@ diff -uNr rootfs.original/home/lava/origin_printer_data/config/printer.cfg rootfs/home/lava/origin_printer_data/config/printer.cfg --- rootfs.original/home/lava/origin_printer_data/config/printer.cfg 2025-11-06 05:01:19.000000000 +0100 +++ rootfs/home/lava/origin_printer_data/config/printer.cfg 2025-12-04 10:31:52.832922872 +0100 -@@ -1258,4 +1258,7 @@ +@@ -1258,4 +1258,6 @@ #*# max_x = 240.0 #*# min_y = 20.0 #*# max_y = 240.0 @@ -9,5 +9,4 @@ diff -uNr rootfs.original/home/lava/origin_printer_data/config/printer.cfg rootf \ No newline at end of file +#*# + -+[include /home/lava/klipper-config/*.cfg] -+[include klipper/*.cfg] ++[include extended/klipper/*.cfg] diff --git a/overlays/firmware-extended/01-enable-klipper-includes/patches/01-add-moonraker-includes.patch b/overlays/firmware-extended/01-enable-klipper-includes/patches/01-add-moonraker-includes.patch index 4523026d..fe4b1dcf 100644 --- a/overlays/firmware-extended/01-enable-klipper-includes/patches/01-add-moonraker-includes.patch +++ b/overlays/firmware-extended/01-enable-klipper-includes/patches/01-add-moonraker-includes.patch @@ -1,10 +1,9 @@ diff -uNr rootfs.original/home/lava/origin_printer_data/config/moonraker.conf rootfs/home/lava/origin_printer_data/config/moonraker.conf --- rootfs.original/home/lava/origin_printer_data/config/moonraker.conf 2025-11-06 05:00:27.000000000 +0100 +++ rootfs/home/lava/origin_printer_data/config/moonraker.conf 2025-12-04 10:32:47.613494428 +0100 -@@ -46,3 +46,6 @@ +@@ -46,3 +46,5 @@ mqtt_protocol: v5 status_interval: 2 default_qos: 1 + -+[include /home/lava/moonraker-config/*.cfg] -+[include moonraker/*.cfg] ++[include extended/moonraker/*.cfg] diff --git a/overlays/firmware-extended/01-enable-klipper-includes/root/etc/init.d/S55include_keeps b/overlays/firmware-extended/01-enable-klipper-includes/root/etc/init.d/S55include_keeps deleted file mode 100755 index 8d026e4c..00000000 --- a/overlays/firmware-extended/01-enable-klipper-includes/root/etc/init.d/S55include_keeps +++ /dev/null @@ -1,59 +0,0 @@ -#!/bin/sh - -start() { - mkdir -p /home/lava/printer_data/config/klipper - cat < /home/lava/printer_data/config/klipper/00_keep.cfg -# Create file similar to this to enable Klipper includes -# Do not modify nor remove this file. -# -# Adding config files here will be loaded on next system restart -# and when saving via Fluidd/Mainsail. -# You can force restart from SSH: /etc/init.d/S60klipper restart -EOF - - if [ -f /mnt/udisk/moonraker-recover.txt ]; then - if [ -d /home/lava/printer_data/config/moonraker ]; then - mkdir -p /home/lava/printer_data/config/moonraker.bak - mv /home/lava/printer_data/config/moonraker/* /home/lava/printer_data/config/moonraker.bak - fi - rm -f /mnt/udisk/moonraker-recover.txt - fi - - mkdir -p /home/lava/printer_data/config/moonraker - cat < /home/lava/printer_data/config/moonraker/00_keep.cfg -# Create file similar to this to enable Moonraker includes -# Do not modify nor remove this file. -# -# The config files added will be loaded on next system restart. -# You can force restart from SSH: /etc/init.d/S61moonraker restart -# -# If the include casues Moonraker issues, the WiFi will not connect. -# Create the file named "moonraker-recover.txt" on USB stick and restart printer. -EOF - - chown -R lava:lava /home/lava/printer_data/config -} - -stop() { - true -} - -case "$1" in - start) - start - ;; - stop) - stop - ;; - restart|reload) - stop - sleep 1 - start - ;; - *) - echo "Usage: $0 {start|stop|restart}" - exit 1 - ;; -esac - -exit 0 diff --git a/overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/klipper-config/00_keep.cfg b/overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/default-config/extended/klipper/00_keep.cfg similarity index 100% rename from overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/klipper-config/00_keep.cfg rename to overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/default-config/extended/klipper/00_keep.cfg diff --git a/overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/moonraker-config/00_keep.cfg b/overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/default-config/extended/moonraker/00_keep.cfg similarity index 100% rename from overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/moonraker-config/00_keep.cfg rename to overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/default-config/extended/moonraker/00_keep.cfg diff --git a/overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/origin_printer_data/config/klipper/00_keep.cfg b/overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/origin_printer_data/config/klipper/00_keep.cfg deleted file mode 100644 index 2e6c2d19..00000000 --- a/overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/origin_printer_data/config/klipper/00_keep.cfg +++ /dev/null @@ -1,2 +0,0 @@ -# Create file similar to this to enable Klipper includes -# Do not modify nor remove this file. diff --git a/overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/origin_printer_data/config/moonraker/00_keep.cfg b/overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/origin_printer_data/config/moonraker/00_keep.cfg deleted file mode 100644 index 8e38500c..00000000 --- a/overlays/firmware-extended/01-enable-klipper-includes/root/home/lava/origin_printer_data/config/moonraker/00_keep.cfg +++ /dev/null @@ -1,2 +0,0 @@ -# Create file similar to this to enable Moonraker includes -# Do not modify nor remove this file. diff --git a/overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/moonraker-config/02_internal_camera.cfg b/overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/default-config/extended/moonraker/02_internal_camera.cfg similarity index 85% rename from overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/moonraker-config/02_internal_camera.cfg rename to overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/default-config/extended/moonraker/02_internal_camera.cfg index b081fda8..3d884aa8 100644 --- a/overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/moonraker-config/02_internal_camera.cfg +++ b/overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/default-config/extended/moonraker/02_internal_camera.cfg @@ -1,3 +1,5 @@ +# DO NOT REMOVE THIS FILE + # Enable internal camera using WebRTC [webcam case] service: webrtc-camerastreamer diff --git a/overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/default-config/extended/moonraker/03_usb_camera.cfg b/overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/default-config/extended/moonraker/03_usb_camera.cfg new file mode 100644 index 00000000..016b37e0 --- /dev/null +++ b/overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/default-config/extended/moonraker/03_usb_camera.cfg @@ -0,0 +1,8 @@ +# DO NOT REMOVE THIS FILE + +# Uncomment to enable USB camera using WebRTC +# [webcam usb] +# service: webrtc-camerastreamer +# stream_url: /webcam2/webrtc +# snapshot_url: /webcam2/snapshot.jpg +# aspect_ratio: 16:9 diff --git a/overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/origin_printer_data/config/moonraker/usb_camera.cfg.disabled b/overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/origin_printer_data/config/moonraker/usb_camera.cfg.disabled deleted file mode 100644 index 34240557..00000000 --- a/overlays/firmware-extended/02-camera-v4l2-mpp/root/home/lava/origin_printer_data/config/moonraker/usb_camera.cfg.disabled +++ /dev/null @@ -1,9 +0,0 @@ -# 1. Rename this file to `03_usb_camera.cfg` to enable USB camera -# 2. Restart Moonraker - -# Enable USB camera using WebRTC -[webcam usb] -service: webrtc-camerastreamer -stream_url: /webcam2/webrtc -snapshot_url: /webcam2/snapshot.jpg -aspect_ratio: 16:9 diff --git a/overlays/firmware-extended/50-stub-moonraker-timelapse/root/home/lava/moonraker-config/01_timelapse_stub.cfg b/overlays/firmware-extended/50-stub-moonraker-timelapse/root/home/lava/default-config/extended/moonraker/01_timelapse_stub.cfg similarity index 67% rename from overlays/firmware-extended/50-stub-moonraker-timelapse/root/home/lava/moonraker-config/01_timelapse_stub.cfg rename to overlays/firmware-extended/50-stub-moonraker-timelapse/root/home/lava/default-config/extended/moonraker/01_timelapse_stub.cfg index abcf443c..76d8d64d 100644 --- a/overlays/firmware-extended/50-stub-moonraker-timelapse/root/home/lava/moonraker-config/01_timelapse_stub.cfg +++ b/overlays/firmware-extended/50-stub-moonraker-timelapse/root/home/lava/default-config/extended/moonraker/01_timelapse_stub.cfg @@ -1,2 +1,4 @@ +# DO NOT REMOVE THIS FILE + # Enable timelapse stub to expose in Fluidd [timelapse] From dfc32aac09c1d4667a102cb497a12159a142d178 Mon Sep 17 00:00:00 2001 From: paxx12 <245230251+paxx12@users.noreply.github.com> Date: Wed, 17 Dec 2025 23:26:26 +0100 Subject: [PATCH 2/2] Replace camera flags with extended.cfg settings Migrates /oem/.camera-native and /oem/.camera-log to CAMERA and CAMERA_LOGS settings in extended.cfg. Updates documentation and init scripts accordingly. --- docs/camera_support.md | 29 ++++++++++++------- docs/extended_config.md | 23 +++++++++++++++ .../lava/default-config/extended/extended.cfg | 5 ++++ .../patches/02-disable-native-camera.patch | 8 +++-- .../root/etc/init.d/S99v4l2-mpp-mipi | 9 ++++-- .../root/etc/init.d/S99v4l2-mpp-usb | 8 +++-- 6 files changed, 63 insertions(+), 19 deletions(-) diff --git a/docs/camera_support.md b/docs/camera_support.md index f2dceae3..dbe73767 100644 --- a/docs/camera_support.md +++ b/docs/camera_support.md @@ -34,24 +34,31 @@ settings for the best performance: ## Switch to Snapmaker's Original Camera Stack -By default, the extended firmware uses a custom hardware-accelerated camera stack. -If you prefer to use Snapmaker's original camera stack instead, create: - -```bash -touch /oem/.camera-native +By default, the extended firmware uses a custom hardware-accelerated camera stack (paxx12). +If you prefer to use Snapmaker's original camera stack instead, edit `/home/lava/printer_data/config/extended/extended.cfg`: + +```ini +[camera] +# stack: paxx12 +stack: snapmaker +logs: syslog ``` -Note: Only one camera stack can be operational at a time. +Then reboot the printer. + +Note: Only one camera stack can be operational at a time. See [Extended Configuration](extended_config.md) for details. -## Enable Camera Logging +## Camera Logging -To enable syslog logging for camera services (useful for debugging), create: +Camera service logging to syslog is controlled by the `logs` setting in `/home/lava/printer_data/config/extended/extended.cfg`: -```bash -touch /oem/.camera-log +```ini +[camera] +stack: paxx12 +logs: syslog ``` -This will enable the `--syslog` flag for all camera-related services. Logs will then be available in `/var/log/messages`. +This enables the `--syslog` flag for all camera-related services. Logs are available in `/var/log/messages`. See [Extended Configuration](extended_config.md) for details. ## Timelapse Support diff --git a/docs/extended_config.md b/docs/extended_config.md index f053cbdd..ca18b39f 100644 --- a/docs/extended_config.md +++ b/docs/extended_config.md @@ -33,11 +33,34 @@ vi /home/lava/printer_data/config/extended/extended.cfg After saving, reboot the printer. +## Configuration Options + +### [camera] + +* `stack` - Camera stack selection (only one can be active) + + * `paxx12` - Hardware-accelerated v4l2-mpp camera stack (WebRTC, timelapse) + * `snapmaker` - Native Snapmaker camera service + +* `logs` - Camera service logging destination + + * `syslog` - Enable logging to syslog (/var/log/messages) + +## Example Configuration + +```ini +[camera] +stack: paxx12 +# stack: snapmaker +logs: syslog +``` + ## Important Notes - After making changes to `extended.cfg`, reboot the printer - The file uses INI-style format with sections `[camera]` and `[web]` - Lines starting with `#` are comments and ignored +- Only one camera stack can be active at a time ## Revert back to defaults diff --git a/overlays/firmware-extended/00-default-config/root/home/lava/default-config/extended/extended.cfg b/overlays/firmware-extended/00-default-config/root/home/lava/default-config/extended/extended.cfg index 0c29109f..c9bb785e 100644 --- a/overlays/firmware-extended/00-default-config/root/home/lava/default-config/extended/extended.cfg +++ b/overlays/firmware-extended/00-default-config/root/home/lava/default-config/extended/extended.cfg @@ -1 +1,6 @@ # DO NOT REMOVE THIS FILE + +[camera] +stack: paxx12 +# stack: snapmaker +# logs: syslog diff --git a/overlays/firmware-extended/02-camera-v4l2-mpp/patches/02-disable-native-camera.patch b/overlays/firmware-extended/02-camera-v4l2-mpp/patches/02-disable-native-camera.patch index 6158fc40..764511db 100644 --- a/overlays/firmware-extended/02-camera-v4l2-mpp/patches/02-disable-native-camera.patch +++ b/overlays/firmware-extended/02-camera-v4l2-mpp/patches/02-disable-native-camera.patch @@ -1,10 +1,12 @@ --- a/etc/init.d/S99camera_service +++ b/etc/init.d/S99camera_service -@@ -3,6 +3,8 @@ +@@ -3,6 +3,10 @@ # Start/stop camera_service process # - -+[ -e /oem/.camera-native ] || exit 0 + ++EXTENDED_CFG="/home/lava/printer_data/config/extended/extended.cfg" ++CAMERA_STACK=$(/usr/local/bin/extended-config.py "$EXTENDED_CFG" camera stack paxx12) ++[ "$CAMERA_STACK" = "snapmaker" ] || exit 0 + log() { diff --git a/overlays/firmware-extended/02-camera-v4l2-mpp/root/etc/init.d/S99v4l2-mpp-mipi b/overlays/firmware-extended/02-camera-v4l2-mpp/root/etc/init.d/S99v4l2-mpp-mipi index 54793880..07a4d984 100755 --- a/overlays/firmware-extended/02-camera-v4l2-mpp/root/etc/init.d/S99v4l2-mpp-mipi +++ b/overlays/firmware-extended/02-camera-v4l2-mpp/root/etc/init.d/S99v4l2-mpp-mipi @@ -1,15 +1,18 @@ #!/bin/sh -[ ! -e /oem/.camera-native ] || exit 0 +EXTENDED_CFG="/home/lava/printer_data/config/extended/extended.cfg" +CAMERA_STACK=$(/usr/local/bin/extended-config.py "$EXTENDED_CFG" camera stack paxx12) + +[ "$CAMERA_STACK" != "snapmaker" ] || exit 0 -# Create temporary directory for timelapse files umask 0022 mkdir -p /userdata/.tmp_timelapse chown -R lava:lava /userdata/.tmp_timelapse CMD_FAKE_SERVICE=/usr/local/bin/fake-service CMD_FAKE_SERVICE_ARGS="--retry 3" -if [ -e /oem/.camera-log ]; then +CAMERA_LOGS=$(/usr/local/bin/extended-config.py "$EXTENDED_CFG" camera logs "") +if [ "$CAMERA_LOGS" = "syslog" ]; then CMD_FAKE_SERVICE_ARGS="$CMD_FAKE_SERVICE_ARGS --syslog" fi diff --git a/overlays/firmware-extended/02-camera-v4l2-mpp/root/etc/init.d/S99v4l2-mpp-usb b/overlays/firmware-extended/02-camera-v4l2-mpp/root/etc/init.d/S99v4l2-mpp-usb index 663568d0..841ae556 100755 --- a/overlays/firmware-extended/02-camera-v4l2-mpp/root/etc/init.d/S99v4l2-mpp-usb +++ b/overlays/firmware-extended/02-camera-v4l2-mpp/root/etc/init.d/S99v4l2-mpp-usb @@ -1,10 +1,14 @@ #!/bin/sh -[ ! -e /oem/.camera-native ] || exit 0 +EXTENDED_CFG="/home/lava/printer_data/config/extended/extended.cfg" +CAMERA_STACK=$(/usr/local/bin/extended-config.py "$EXTENDED_CFG" camera stack paxx12) + +[ "$CAMERA_STACK" != "snapmaker" ] || exit 0 CMD_FAKE_SERVICE=/usr/local/bin/fake-service CMD_FAKE_SERVICE_ARGS="--retry 3" -if [ -e /oem/.camera-log ]; then +CAMERA_LOGS=$(/usr/local/bin/extended-config.py "$EXTENDED_CFG" camera logs "") +if [ "$CAMERA_LOGS" = "syslog" ]; then CMD_FAKE_SERVICE_ARGS="$CMD_FAKE_SERVICE_ARGS --syslog" fi