OSMC and Hyperion

I used the installer, which didn’t seem to give any errors, but I can’t get Hyperion to work yet.

I have put a config file in the /etc/hyperion folder, following this guide, tried rebooting the Vero but to no avail.

When trying to start Hyperion through HyperCon the log shows

ssh out: 	sudo systemctl start hyperion.service 2>/dev/null ; sudo /etc/init.d/hyperion start 2>/dev/null ; sudo /sbin/initctl start hyperion 2>/dev/null

When I try to use the color picker in the SSH tab it logs

ssh out: 	hyperion-remote  -c b1ffbb
ssh out: 	bash: /usr/bin/hyperion-remote: Permission denied

using “sudo systemctl start hyperion.service” doesn’t present any feedback.

I’ve tried both a pre-compiled binary and building myself, both give the same result.

I’ve no specific experience of using “Philips Hue”.

But generically, there is usually no feedback on the command line if all is well, so that’s kind of positive.

After starting the service as you have done with
sudo systemctl start hyperion.service

you should be able to confirm it’s running ok with:
sudo systemctl status hyperion.service

In my case this gives:

● hyperion.service - Hyperion Systemd service
Loaded: loaded (/etc/systemd/system/hyperion.service; disabled)
Active: active (running) since Sat 2017-12-30 12:54:52 GMT; 4s ago
Main PID: 4664 (hyperiond)
CGroup: /system.slice/hyperion.service
└─4664 /usr/bin/hyperiond /etc/hyperion/hyperion.config.json

Dec 30 12:54:52 osmc hyperiond[4664]: BLACKBORDER INFO: threshold set to 0.01 (3)
Dec 30 12:54:52 osmc hyperiond[4664]: BLACKBORDER INFO: mode:default
Dec 30 12:54:52 osmc hyperiond[4664]: INFO: AMLOGIC grabber created and started
Dec 30 12:54:52 osmc hyperiond[4664]: FRAMEBUFFERGRABBER INFO: opened with resolution: 1920x1080@32bit
Dec 30 12:54:52 osmc hyperiond[4664]: BLACKBORDER INFO: threshold set to 0.01 (3)
Dec 30 12:54:52 osmc hyperiond[4664]: BLACKBORDER INFO: mode:default
Dec 30 12:54:52 osmc hyperiond[4664]: INFO: Framebuffer grabber created and started
Dec 30 12:54:52 osmc hyperiond[4664]: BORDER SWITCH REQUIRED!!
Dec 30 12:54:52 osmc hyperiond[4664]: CURRENT BORDER TYPE: unknown=0 hor.size=0 vert.size=0
Dec 30 12:54:55 osmc hyperiond[4664]: EFFECTENGINE INFO: effect finished

Are you getting feedback like that?

The config that the service is looking for under /etc/hyperion/ should be called
hyperion.config.json

Incidentally a restart shouldn’t really make a difference as the service won’t start automatically. If you’d like it to do that then run:
sudo systemctl enable hyperion.service

I note from the guide you followed it has lots of cut-and-paste config, which includes

"effects" :
{
    "paths" :
    [
        "/opt/hyperion/effects"
    ]
},

But your effects will have been installed under /usr/share/hyperion/effects

All that good information aside…

I’ve recreated your error message. For some reason not all of the binaries were being made executable. I’ve updated my repo so,

  1. back-up your config (away from the hyperion folders!)
  2. run the “uninstall” option
  3. redownload the repo
  4. reinstall either from the pre-compiled binary or build
  5. put your config back in

Following your instructions I got this

osmc@osmc:~$ sudo systemctl status hyperion.service -l
* hyperion.service - Hyperion Systemd service
   Loaded: loaded (/etc/systemd/system/hyperion.service; disabled)
   Active: failed (Result: start-limit) since Sat 2017-12-30 14:51:52 CET; 13s ago
  Process: 9273 ExecStart=/usr/bin/hyperiond /etc/hyperion/hyperion.config.json (code=exited, status=203/EXEC)
 Main PID: 9273 (code=exited, status=203/EXEC)

Dec 30 14:51:52 osmc systemd[1]: hyperion.service holdoff time over, scheduling restart.
Dec 30 14:51:52 osmc systemd[1]: Stopping Hyperion Systemd service...
Dec 30 14:51:52 osmc systemd[1]: Starting Hyperion Systemd service...
Dec 30 14:51:52 osmc systemd[1]: hyperion.service start request repeated too quickly, refusing to start.
Dec 30 14:51:52 osmc systemd[1]: Failed to start Hyperion Systemd service.
Dec 30 14:51:52 osmc systemd[1]: Unit hyperion.service entered failed state.

So it looks like something’s not right. I get a similar message when trying to start Hyperion through HyperCon.

I note from the guide you followed it has lots of cut-and-paste config

I took the example config from the guide. Linux paths are still somewhat of a black box to me :slight_smile:

e: I just tried with a config generated by HyperCon, with the same result

I didn’t see you last message. I’ll try reinstalling.

I appreciate the effort.

I tried reinstalling, again with both a binary and building, but sadly no luck

* hyperion.service - Hyperion Systemd service
   Loaded: loaded (/etc/systemd/system/hyperion.service; disabled)
   Active: failed (Result: start-limit) since Sat 2017-12-30 16:33:44 CET; 4s ago
  Process: 13205 ExecStart=/usr/bin/hyperiond /etc/hyperion/hyperion.config.json (code=exited, status=127)
 Main PID: 13205 (code=exited, status=127)

Dec 30 16:33:43 osmc systemd[1]: Unit hyperion.service entered failed state.
Dec 30 16:33:44 osmc systemd[1]: hyperion.service holdoff time over, scheduling restart.
Dec 30 16:33:44 osmc systemd[1]: Stopping Hyperion Systemd service...
Dec 30 16:33:44 osmc systemd[1]: Starting Hyperion Systemd service...
Dec 30 16:33:44 osmc systemd[1]: hyperion.service start request repeated too quickly, refusing to start.
Dec 30 16:33:44 osmc systemd[1]: Failed to start Hyperion Systemd service.
Dec 30 16:33:44 osmc systemd[1]: Unit hyperion.service entered failed state.

This sounds like the binaries still aren’t executable, which is odd. I’ve just deleted and reinstalled my system and all appears well.

Firstly, you definitely deleted the entire hyperion-vero4k folder and ran git clone again?

Only then, what do you get from:
ll /usr/bin | grep hyperion

And:
hyperiond /etc/hyperion/hyperion.config.json | head -n 30

Firstly, you definitely deleted the entire hyperion-vero4k folder and ran git clone again?

I did. I uninstalled, deleted hyperion-vero4k and ran git clone again and then installed the binary, just to be absolutely sure.

For the first command I get -bash: ll: command not found
For the second I get hyperiond: error while loading shared libraries: libpython3.4m.so.1.0: cannot open shared object file: No such file or directory

(That’s with this config)

The python should have been there, so I’ll just see what’s happened…

And sorry you’ve obviously not got the ll alias there. You should instead run:
ls -l /usr/bin | grep hyperion

I get this

-rwxr-xr-x  1 root root    993264 Dec 30 17:54 hyperion-aml
-rwxr-xr-x  1 root root    993948 Dec 30 17:54 hyperion-framebuffer
-rwxr-xr-x  1 root root    259204 Dec 30 17:54 hyperion-remote
-rwxr-xr-x  1 root root   1047012 Dec 30 17:54 hyperion-v4l2
-rwxr-xr-x  1 root root   1794816 Dec 30 17:54 hyperiond

Groovy, all is executable again.

And now a package that “fell off”:
sudo apt-get install libpython3.4

You shouldn’t need to reinstall for that to work now. I’m just adding that to the repo.

The error is gone and Hyperion tells me it’s active.

Thanks again.

Thank you for playing!
That was much needed feedback. I only put it up last night.

hi all, first post in this forum only to say thank you all! This was my last step for the vero4k migration from a raspi3, and with the @hissingshark installation script of hyperion and the addition of the amlgrabber section in my old configuration file, everything is working now.

Great work, it was really easy.

Everything 's fine and dandy with 8bit footage (with amlgrabber instead of framegrabber in the config) but it isn’t yet working for 10bit footage. I found this post saying they got it working with echo 1 | sudo tee /sys/module/amvdec_h265/parameters/double_write_mode, but before I try that I would like to know if this can mess up something permanently.

edit: I tried it and while it fixed the ambilight it made the picture garbled on my TV.
edit2: using echo 3 instead of echo 1 did the job. echo 2 also gave display corruption for me.

You won’t mess up anything. This setting will enable h265 grabbing.

Can you report back how hyperion.ng works on your setup? I’m running into this issue:

From the comments you can see that using the AML-grabber disabled HW acceleration which seems to cause sync issues for me. For know I disabled the AML-grabber and am using a v4l video grabber. Hopefully AML will implement a stable v4l interface soon which could solve this issue.

That is indeed a mid term goal for AML

I’m trying to get different gamma values for HDR and SDR videos, which I already figured out with HyperCron.

Now, I’m already using this script on playback start to resolve some flicker issues discussed elsewhere:

#!/bin/bash
sleep 4
string=$(</sys/class/display/mode)
if [ $string = "2160p24hz" ] ||  [ $string = "2160p30hz" ]; then
echo "2160p60hz420">/sys/class/display/mode
elif  [ $string = "2160p25hz" ]; then
echo "2160p50hz420">/sys/class/display/mode
fi

So I thought I’d add hyperion-remote commands in there, so you’d get this:

#!/bin/bash
sleep 4
string=$(</sys/class/display/mode)
if [ $string = "2160p24hz" ] ||  [ $string = "2160p30hz" ]; then
echo "2160p60hz420">/sys/class/display/mode
hyperion-remote -g "0.4 0.4 0.4" -u 1.2 -m 2.0
elif  [ $string = "2160p25hz" ]; then
echo "2160p50hz420">/sys/class/display/mode
hyperion-remote -g "0.4 0.4 0.4" -u 1.2 -m 2.0
else
hyperion-remote --clearall
fi

But that doesn’t seem to work. I still get the same low brightness as with my default 2.5 gamma.
There’s a high probability I’m making a syntax error, as I’m not too at home in this environment, or it’s something else.

Any insight would be welcome.

Try adding:

set -xv

directly following your

#!bin/bash

line. That will turn on verbose mode so you can see how your script is running.

Turns out the original script was no longer needed, as it was fixed in an update.
My script now reads

#!/bin/bash
sleep 4
string=$(</sys/class/display/mode)
if [[ $string =~ "2160p" ]] 
then
hyperion-remote -g '0.4 0.4 0.4' -u 2 -m 1.2
else
hyperion-remote -g '2.5 2.5 2.5' -u 1 -m 1.2
fi

So it just switches to a 0.4 gamma for all 4K footage and to 2.5 for everything else. (-u is a saturation and -m is a luminosity multiplier)

1 Like