hyperion-project / hyperion.ng

The successor to Hyperion aka Hyperion Next Generation
https://hyperion-project.org/
MIT License
3.11k stars 384 forks source link

Debian #796

Closed joselito11 closed 4 years ago

joselito11 commented 4 years ago

First thank you for great work! I have it running on OSMC with WLED via adalight.

Now I want to run hyperion ng on Debian 10. I had it running, but had error with grabber and no live video. I get this error now:

maj 12 08:33:20 t systemd[1]: hyperion.service: Main process exited, code=killed, status=11/SEGV
maj 12 08:33:20 t systemd[1]: hyperion.service: Failed with result 'signal'.
maj 12 08:33:30 t systemd[1]: hyperion.service: Service RestartSec=10s expired, scheduling restart.
maj 12 08:33:30 t systemd[1]: hyperion.service: Scheduled restart job, restart counter is at 4511.
maj 12 08:33:30 t systemd[1]: Stopped Hyperion Systemd service.
maj 12 08:33:30 t systemd[1]: Started Hyperion Systemd service.
maj 12 08:33:30 t hyperiond[22994]: [hyperiond LEDDEVICE] <ERROR> Device disabled, device 'adalight' signals error: 'Error opening device!'
maj 12 08:33:30 t hyperiond[22994]: Device disabled, device 'adalight' signals error: 'Error opening device!'
maj 12 08:33:30 t hyperiond[22994]: [hyperiond X11GRABBER] <ERROR> Unable to open display
maj 12 08:33:30 t hyperiond[22994]: [hyperiond X11GRABBER] <ERROR> DISPLAY environment variable not set
maj 12 08:33:30 t hyperiond[22994]: Unable to open display
maj 12 08:33:30 t hyperiond[22994]: DISPLAY environment variable not set
maj 12 08:33:30 t systemd[1]: hyperion.service: Main process exited, code=killed, status=11/SEGV
maj 12 08:33:30 t systemd[1]: hyperion.service: Failed with result 'signal'.

or with display enviroment:

maj 12 08:36:07 t systemd[1]: Started Hyperion Systemd service.
maj 12 08:36:07 t hyperiond[23681]: No protocol specified
maj 12 08:36:07 t hyperiond[23681]: [hyperiond LEDDEVICE] <ERROR> Device disabled, device 'adalight' signals error: 'Error opening device!'
maj 12 08:36:07 t hyperiond[23681]: Device disabled, device 'adalight' signals error: 'Error opening device!'
maj 12 08:36:07 t hyperiond[23681]: No protocol specified
maj 12 08:36:07 t hyperiond[23681]: [hyperiond X11GRABBER] <ERROR> Unable to open display
maj 12 08:36:07 t hyperiond[23681]: [hyperiond X11GRABBER] <ERROR> :0.0
maj 12 08:36:07 t hyperiond[23681]: Unable to open display
maj 12 08:36:07 t hyperiond[23681]: :0.0
maj 12 08:36:07 t systemd[1]: hyperion.service: Main process exited, code=killed, status=11/SEGV
maj 12 08:36:07 t systemd[1]: hyperion.service: Failed with result 'signal'.

So it is possible to run on debian and how?

Lord-Grey commented 4 years ago

Hi

looks like that the 2nd run is still not running with display

maj 12 08:36:07 t hyperiond[23681]: No protocol specified
maj 12 08:36:07 t hyperiond[23681]: [hyperiond X11GRABBER] <ERROR> Unable to open display
maj 12 08:36:07 t hyperiond[23681]: [hyperiond X11GRABBER] <ERROR> :0.0

Are you running hyperiond as root? You may want to google for debian and "No protocol specified"...

In addition, would you mind enabling DEBUG log-lines and share the output, plus share which hyperion build you are running. Thank you!

joselito11 commented 4 years ago

Thank you for helping! I run it as user. Have tried to run hyperiond and it worked. Then I found out I have two services hyperion and hyperiond. Deleted hyperion. With hyperiond now I can start the service, but I get no live video and no display error:

● hyperiond.service - Hyperion ambient light systemd service  for user 
   Loaded: loaded (/etc/systemd/system/hyperiond.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-05-12 12:19:54 CEST; 12s ago
 Main PID: 3734 (hyperiond)
    Tasks: 16 (limit: 4915)
   Memory: 16.6M
   CGroup: /system.slice/hyperiond.service
           └─3734 /usr/bin/hyperiond /etc/hyperion/hyperion.config.json

maj 12 12:19:54 t systemd[1]: Started Hyperion ambient light systemd service  for user .
maj 12 12:19:54 t hyperiond[3734]: [hyperiond QTGRABBER] <ERROR> No displays found to capture from!
maj 12 12:19:54 t hyperiond[3734]: No displays found to capture from!

Maybe some permission error? Because if I run manual hyperiond I get live video-so display working, but with service not live video and no display error

This my build:

Hyperion Server: 
- Build:       (HEAD detached at e3587923) (Paulchen-Panther-2e83c587/e3587923-1587148622)
- Build time:  Apr 17 2020 18:49:47
- Git Remote:  https://github.com/hyperion-project/hyperion.ng
- Version:     2.0.0-alpha.5
- UI Lang:     auto (BrowserLang: en-US)
- UI Access:   default
- Avail Capt:  v4l2,framebuffer,x11,qt

Hyperion Server OS: 
- Distribution: Debian GNU/Linux 10 (buster)
- Arch:         x86_64
- Kernel:       linux (4.19.0-9-amd64 (WS: 64))
- Browser:      Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0 

Debug log:

 [hyperiond EFFECTFILES] (INFO) 38 effects loaded from directory :/effects/
 [hyperiond EFFECTFILES] (INFO) 21 effect schemas loaded from directory :/effects/schema/
 [hyperiond EFFECTFILES] (INFO) 0 effects loaded from directory /home/t/.hyperion/custom-effects
 [hyperiond SettingsManager] (DEBUG) (SettingsManager.cpp:108:SettingsManager()) Settings database initialized
 [hyperiond BLACKBORDER] (DEBUG) (BlackBorderProcessor.cpp:65:handleSettingsUpdate()) Set mode to: default
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Blackborder detector: enabled
 [hyperiond DAEMON] (INFO) set screen capture device to 'qt'
 [hyperiond QTGRABBER] (DEBUG) (Grabber.cpp:34:setVideoMode()) Set videomode to 0
 [hyperiond QTGRABBER] (ERROR) No displays found to capture from!
 [hyperiond DAEMON] (INFO) Qt grabber created
 [hyperiond V4L2:auto] (DEBUG) (Grabber.cpp:34:setVideoMode()) Set videomode to 0
 [hyperiond V4L2:auto] (INFO) Signal threshold set to: {12, 12, 12}
 [hyperiond V4L2:auto] (INFO) Signal detection is now disabled
 [hyperiond V4L2:auto] (INFO) Signal detection area set to: 0.250000,0.250000 x 0.750000,0.750000
 [hyperiond DAEMON] (DEBUG) (hyperiond.cpp:467:handleSettingsUpdate()) V4L2 grabber created
 [hyperiond JSONSERVER] (DEBUG) (JsonServer.cpp:25:JsonServer()) Created instance
 [hyperiond JSONSERVER] (INFO) Started on port 19444
 [hyperiond FLATBUFSERVER] (INFO) Started on port 19400
 [hyperiond PROTOSERVER] (INFO) Started on port 19445
 [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:32:initServer()) Initialize Webserver
 [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:32:initServer()) Previous line repeats 1 times
 [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:32:initServer()) Previous line repeats 1 times
 [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:89:handleSettingsUpdate()) Apply Webserver settings
 [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:89:handleSettingsUpdate()) Apply Webserver settings
 [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:107:handleSettingsUpdate()) Set document root to: :/webconfig
 [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:107:handleSettingsUpdate()) Set document root to: :/webconfig
 [hyperiond WEBSERVER] (INFO) Started on port 8090 name 'Hyperion Webserver'
 [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:173:handleSettingsUpdate()) Setup SSL certificate
 [hyperiond WEBSERVER] (DEBUG) (WebServer.cpp:189:handleSettingsUpdate()) Setup private SSL key
 [hyperiond WEBSERVER] (INFO) Started on port 8092 name 'Hyperion Webserver'
 [hyperiond LEDDEVICE] (INFO) LedDevice 'udpraw' found.
 [hyperiond LEDDEVICE] (DEBUG) (ProviderUdp.cpp:41:init()) Successfully parsed 192.168.1.34 as an ip address.
 [hyperiond LEDDEVICE] (DEBUG) (ProviderUdp.cpp:71:init()) UDP using 192.168.1.34:19446
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Smoothing: enabled
 [hyperiond FLATBUFCONNECTION] (INFO) Connecting to Hyperion: 127.0.0.1:19401
 [hyperiond EFFECTENGINE] (INFO) Run effect "Rainbow swirl fast" on channel 0
 [hyperiond EFFECTENGINE] (DEBUG) (EffectEngine.cpp:183:runEffectScript()) Start the effect: name [Rainbow swirl fast], smoothCfg [2]
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:158:registerInput()) Register new input 'System/EFFECT' with priority 0 as inactive
 [hyperiond HYPERION] (INFO) Initial foreground effect 'Rainbow swirl fast' started
 [hyperiond EFFECTENGINE] (INFO) Run effect "Warm mood blobs" on channel 254
 [hyperiond EFFECTENGINE] (DEBUG) (EffectEngine.cpp:183:runEffectScript()) Start the effect: name [Warm mood blobs], smoothCfg [2]
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:158:registerInput()) Register new input 'System/EFFECT' with priority 254 as inactive
 [hyperiond HYPERION] (INFO) Inital background effect 'Warm mood blobs' started
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:158:registerInput()) Register new input 'System/GRABBER' with priority 250 as inactive
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) Framegrabber: enabled
 [hyperiond Qt] (DEBUG) (GrabberWrapper.cpp:49:start()) Grabber start()
 [hyperiond BOBLIGHT] (DEBUG) (BoblightServer.cpp:28:BoblightServer()) Instance created
 [hyperiond HYPERION] (INFO) Hyperion instance 'First LED Hardware instance' has been started
 [hyperiond ComponentRegister] (DEBUG) (ComponentRegister.cpp:36:setNewComponentState()) LED device: enabled
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 0 is now active
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 0
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:198:setInput()) Priority 254 is now active
 [hyperiond QTGRABBER] (ERROR) No displays found to capture from!
 [hyperiond QTGRABBER] (INFO) Capture interface is now disabled
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:238:setInputImage()) Priority 250 is now active
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:298:setCurrentTime()) Timeout clear for priority 0
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 250
 [hyperiond WEBSOCKET] (DEBUG) (WebSocketClient.cpp:30:WebSocketClient()) New connection from ::ffff:192.168.1.20
 [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:99:handleInstanceSwitch()) Client '::ffff:192.168.1.20' switch to Hyperion instance 0
 [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1032:handleLoggingCommand()) log streaming activated for client ::ffff:192.168.1.20
 [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1041:handleLoggingCommand()) log streaming deactivated for client  ::ffff:192.168.1.20
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:75:setSourceAutoSelectEnabled()) Source auto select is now disabled
 [hyperiond HYPERION] (DEBUG) (PriorityMuxer.cpp:333:setCurrentTime()) Set visible priority to 254
 [hyperiond WEBSOCKET] (DEBUG) (JsonAPI.cpp:1032:handleLoggingCommand()) log streaming activated for client ::ffff:192.168.1.20

hyperiond.service:

[Unit]
Description=Hyperion ambient light systemd service  for user %i
After=network.target

[Service]
ExecStart=/usr/bin/hyperiond   /etc/hyperion/hyperion.config.json
WorkingDirectory=/usr/share/hyperion/bin
User=t
TimeoutStopSec=5
KillMode=mixed
Restart=on-failure
RestartSec=2

[Install]
WantedBy=multi-user.target

So I get live video if I run manual hyperion-x11 when hyperion is running

EDIT: added Environment=DISPLAY=:0 and it is working now

cooljimy84 commented 3 years ago
[Unit]
Description=Hyperion ambient light systemd service  for user %i
After=network.target

[Service]
ExecStart=/usr/bin/hyperiond   /etc/hyperion/hyperion.config.json
WorkingDirectory=/usr/share/hyperion/bin
User=t
TimeoutStopSec=5
KillMode=mixed
Restart=on-failure
RestartSec=2

[Install]
WantedBy=multi-user.target

So I get live video if I run manual hyperion-x11 when hyperion is running

EDIT: added Environment=DISPLAY=:0 and it is working now

Where did you add environment=DISPLAY=:0 ?

Got this problem on mint mate 20.04

Found it, so for example, if using the above config add the line to the top entry of the service section.

[Unit]
Description=Hyperion ambient light systemd service  for user %i
After=network.target

[Service]
Environment=DISPLAY=:0
ExecStart=/usr/bin/hyperiond   /etc/hyperion/hyperion.config.json
WorkingDirectory=/usr/share/hyperion/bin
User=t
TimeoutStopSec=5
KillMode=mixed
Restart=on-failure
RestartSec=2

[Install]
WantedBy=multi-user.target