#spyglass service doesn't work, but running it manually does

31 messages ยท Page 1 of 1 (latest)

fading socket
#

Not sure what to do, but running the command manually allows spyglass to work, but the service doesn't. I have tried changing the service to basically run it the same as the command, couldnt get that working.

Service Status
pi@Voron:/etc/systemd/system $ sudo systemctl status spyglass.service โ— spyglass.service - spyglass - Picamera2 MJPG Streamer Loaded: loaded (/etc/systemd/system/spyglass.service; disabled; vendor preset: enabled) Active: activating (auto-restart) (Result: exit-code) since Sun 2026-05-24 19:24:44 BST; 3s ago Docs: https://github.com/roamingthings/spyglass Process: 35946 ExecStart=/usr/local/bin/spyglass (code=exited, status=1/FAILURE) Main PID: 35946 (code=exited, status=1/FAILURE) CPU: 697ms
Manually running command
pi@Voron:/ $ spyglass [25:11:09.578563090] [36279] INFO Camera camera_manager.cpp:297 libcamera v0.0.5+83-bde9b04f [25:11:09.701275024] [36280] INFO RPI vc4.cpp:437 Registered camera /base/soc/i2c0mux/i2c@1/imx708@1a to Unicam device /dev/media1 and ISP device /dev/media3 [25:11:09.701359412] [36280] INFO RPI pipeline_base.cpp:1101 Using configuration file '/usr/share/libcamera/pipeline/rpi/vc4/rpi_apps.yaml' INFO:picamera2.picamera2:Initialization successful. INFO:picamera2.picamera2:Camera now open. INFO:picamera2.picamera2:Camera configuration has been adjusted! [25:11:09.713605900] [36279] INFO Camera camera.cpp:1033 configuring streams: (0) 1920x1080-XBGR8888 (1) 2304x1296-SBGGR10_CSI2P [25:11:09.714215746] [36280] INFO RPI vc4.cpp:565 Sensor: /base/soc/i2c0mux/i2c@1/imx708@1a - Selected sensor format: 2304x1296-SBGGR10_1X10 - Selected unicam format: 2304x1296-pBAA INFO:picamera2.picamera2:Configuration successful! INFO:picamera2.picamera2:Camera started INFO:spyglass:Server listening on 0.0.0.0:8080 INFO:spyglass:Streaming endpoint: /stream INFO:spyglass:Snapshot endpoint: /snapshot

Device Info:
Pi 4
Pi Cam V3
spyglass: v0.18.1-0-g073a0f9b

mortal ravineBOT
#

Ahoi @fading socket!
Welcome to the Mainsail support-forum!
There is a problem with the tags you selected for this post. Please fix them to fit your question.
For further information on tags please check the readme: https://discord.com/channels/758059413700345988/1320321898009071616

To change the tags of this post:

  1. Open the ... menu on the top right corner of this post.
  2. Find Edit tags
  3. Select the checkbox of the correct tags.

Usually you just need to select one tag!
If you still have no idea which one to choose, feel free to ask here.

Note: This is an automated message

Thanks for your cooperation!

thorny schooner
#

What does your problem has to do with Klipper?

#

Is there a reason, why you are running spyglass standalone, without crowsnest? Just wondering ^^

fading socket
#

I am running both

thorny schooner
#

Run journalctl -u spyglass and scroll to the bottom. Then send the output

thorny schooner
#

Depending on your configs and if it's crowsnest v4 or v5

fading socket
thorny schooner
#

Send your crowsnest.log and spyglass.conf too

fading socket
#

Crowsnest V4

thorny schooner
#

Oh, I see the problem

fading socket
#

I reset the spyglass config to the default
`#### spyglass - Picamera2 MJPG Streamer

https://github.com/roamingthings/spyglass

This File is distributed under GPLv3

NOTE: Please ensure parameters are in capital letters and values in lowercase!

NOTE: Values has to be surrounded by double quotes! ("value")

NOTE: If commented out or includes typos it will use hardcoded defaults!

Libcamera camera to use (INTEGER)[default: 0]

CAMERA_NUM="0"

Running Spyglass with proxy or Standalone (BOOL)[default: true]

NO_PROXY="true"

HTTP Port to listen on (INTEGER)[default: 8080]

HTTP_PORT="8080"

Resolution (INTEGERxINTEGER)[default: 640x480]

RESOLUTION="640x480"

NOTE: the maximum supported resolution is 1920x1920 (recommended maximum 1920x1080)

Frames per second (INTEGER)[default: 15]

FPS="15"

Stream URL (STRING)[default: /stream]

STREAM_URL="/stream"

NOTE: use format as shown below to stay MJPG-Streamer URL compatible

STREAM_URL="/?action=stream"

Snapshot URL (STRING)[default: /snapshot]

SNAPSHOT_URL="/snapshot"

NOTE: use format as shown below to stay MJPG-Streamer URL compatible

SNAPSHOT_URL="/?action=snapshot"

Use Software Encoding (BOOL)[default: false]

#USE_SW_ENCODING="true"

WebRTC URL (STRING)[default: /webrtc]

WEBRTC_URL="/webrtc"

Force WebRTC streaming to start (BOOL)[default: false]

#FORCE_WEBRTC="true"

Autofocus behavior (STRING:manual,continuous)[default: continuous]

AUTO_FOCUS="continuous"

Focal Distance (float:0.0)[default: 0.0]

NOTE: Set focal distance. 0 for infinite focus, 0.5 for approximate 50cm.

Only used with Autofocus manual

FOCAL_DIST="0.0"

Auto Focus Speed (STRING:normal,fast)[default: normal]

NOTE: Autofocus speed. Supported values: normal, fast.

Only used with Autofocus continuous

AF_SPEED="normal"

EXIF Orientation (STRING:h,mh,r180,mv,mhr270,r90,mhr90,r270)[default: h]

NOTE: Set the image orientation using an EXIF header.

h - Horizontal (normal)

mh - Mirror horizontal

r180 - Rotate 180

mv - Mirror vertical

mhr270 - Mirror horizontal and rotate 270 CW

r90 - Rotate 90 CW

mhr90 - Mirror horizontal and rotate 90 CW

r270 - Rotate 270 CW

ORIENTATION_EXIF="h"

Camera Controls

NOTE: Set v4l2 controls your camera supports at startup

EXAMPLE: CONTROLS="brightness=0,awbenable=false"

CONTROLS=""

Tuning Filter Directory (STRING)[default: none]

NOTE: Directory where to search for tuning filters(if defined).

Directory only used if TUNING_FILTER is defined

TUNING_FILTER_DIR="/usr/share/libcamera/ipa/raspberrypi"

Tuning Filter (STRING)[default: none]

NOTE: Name of the file to be used to apply tuning filter.

If dir not defined, default pycamera2 directories will be used.

TUNING_FILTER="ov5647_noir.json"

`

thorny schooner
#

The issue is basically your old OS

fading socket
thorny schooner
#

Your OS is just not supported anymore but you still got updates, as I cannot stop updates through the moonraker update manager

thorny schooner
#

*klipper related

#

Also you are afftected by this btw:
https://copy.fail/

Xint

CVE-2026-31431. 100% Reliable Linux LPE โ€” no race, no per-distro offsets, page-cache write that bypasses on-disk file-integrity tools and crosses containers. Found by Xint Code.

#

Instead of a fresh OS, you can also just uninstall Spyglass and upgrade your crowsnest to v5, then it will work too

#

But due to copyfail, you should install a new image

fading socket
#

Annoying that isnt fixed on older versions of Raspian

#

Alright, guess I will reinstall everything

thorny schooner
# fading socket Annoying that isnt fixed on older versions of Raspian

I can understand them. You don't want to support every old OS for years.
Bullseye got released 5 years ago. Bookworm got released 3 years ago. Trixie got released last year.
Supporting 3 different OS is kinda annoying. In theory I would have to test 3 different OS, after each change I do, just to be sure that everything is still working ๐Ÿ™ˆ
The difference for me is, that I'm not maintaining a low level thing like the kernel, but just some high level software...

fading socket
#

Yeah I get it

#

Just wishing it was easier to upgrade but whatever

thorny schooner
#

Yes that's the worst thing, that you have to reflash each time.
Sadly they change quite a lot with each major version. That's one of the reasons we take so long to release a working MainsailOS ๐Ÿ™ˆ

fading socket
#

I know this isn't the place for this but I'm fairly new to the Linux world. Is this limited to Debian and derivatives? I use Arch on my desktop and that seems like it will handle all major updates automatically

thorny schooner
#

It isn't about Debian, but just PiOS

fading socket
#

Oh interesting

thorny schooner
#

You can easily upgrade between major versions on most Linux distributions. In theory PiOS is also possible, but the Pi foundation does not recommend it and something will always break.