LEDs not working on Archlinux x86_64 with Framebuffer Screen Capture

  • Hi guys. My setup is following: WS2812B and Arduino nano connected via USB and serial port /dev/ttyUSB0 on Arclinux x86_64 machine. Arduino was flashed with following sketch: https://github.com/Wifsimster/adalight_ws2812. Everything was setup correctly, I know that cause whole this setup is working as expected from Hyperion on Windows. My goal is to make it work on Archlinux machine, cause this is the home media server and also machine connected to TV, where from we are watching movies, cartoons, etc. This setup is also working on mentioned Archlinux machine if I login to Hyperion web UI, then choose Share Screen option, then share whole screen or certain window (VLC, browser, Stremio, what ever)



    The problem is: I cannot make it work with regular screen capture method.



    On screenshot above, these are only options I can choose (device, input and resolution). I was try to play with various values for frequency, decimation and crops, but no change.


    This is my configuration for LED output:




    This is my system info:



    I repeat once again: I believe that my setup (Arduino + WS2812B + power supply + connections) is ok, cause same that setup is working on Windows machine with Hyperion.

    I believe this could be some Linux stuff related with users, permissions, serial port, idk

    I would appreciate any help and I would be glad to provide any additional needed info.


    P.S. There is no hyperion.conf.json file inside /etc/hyperion/. I installed hyperion.ng-git from AUR: https://aur.archlinux.org/packages/hyperion.ng-git/ and hyperion.conf.json file didn't come with installation. I was notice if I install hyperion package from Archlinux community repo, hyperion.conf.json file is in place, but with hyperion repo package I had a problem that wasn't able to start service at all.

  • Zur hilfreichsten Antwort springen
    • Offizieller Beitrag

    On screenshot above, these are only options I can choose (device, input and resolution). I was try to play with various values for frequency, decimation and crops, but no change.

    You need to login using an X11 based Window-Manager. Using Wayland does not work due to its security model.


    If you use e.g. X-Org , Hyperion will list the additional Screengrabbers that will work.

    . There is no hyperion.conf.json file inside /etc/hyperion/.

    That is correct. Hyperion NG does not make use of a JSON file ( while Hyperion Classic did)

  • Lord-Grey : Thanks a lot for your answer, but I am already on x11 session. Below is my output:


    • Offizieller Beitrag

    stiw47 Archlinux is new to me.
    Nevertheless, I was able to install the minimum OK following https://wiki.archlinux.org/title/installation_guide

    Do you have some pointer how to install the additional stuff as you did that I have a comparable system?

    Edit: Maybe additional helpful would be how one installs/removes hyperion 2.0.12...

  • Hey, I am ok with Archlinux, using it 5-6 years for sure. Actually, I'm using this Arch as desktop OS with KDE, and it is installed on old laptop with broken screen, which is sitting above TV and serving as home media/web/cloud/home-assistant server, etc. etc. at the end, Hyperion server. I want to say, I know how to install stuff on Arch, but the problem is idk what should I install in order for this to work :)


    Zitat

    Maybe additional helpful would be how one installs/removes hyperion 2.0.12...

    Unfortunately, there is zero to nothing I think, posts on internet, that someone wrote something about Hyperion on Arch :) , I wasn't able to find something useful.

    • Offizieller Beitrag

    Unfortunately, there is zero to nothing I think, posts on internet, that someone wrote something about Hyperion on Arch

    And how were you doing it? Just using Pacman or a different way?

  • Oh sorry, I didn't understood the part "Do you have some pointer how to install the additional stuff as you did that I have a comparable system?", now I see it better.


    No, not with pacman. pacman is official package manager and it installing packages from official repos, and hyperion in official Arch repo is some old 1.something version.


    I installed hyperion.ng-git from AUR. AUR is standing for Arch User Repository, it is not official repository, and you cannot use pacman here. Yes, there are AUR helpers, they're working similar as pacman. For example, I'm using tool called yay and command syntax would be (same as for pacman): yay -S hyperion.ng-git


    But.... since you're not Arch user and you want just to test this, I suggest that you install it manually from AUR (without yay helper, cause yay would have to be installed as well in this case).

    This is the page where from you need to download snapshot: https://aur.archlinux.org/packages/hyperion.ng-git/, and this would be whole set of commands, download with wget, no need for page opening:


    Code
    sudo pacman -S wget
    wget https://aur.archlinux.org/cgit/aur.git/snapshot/hyperion.ng-git.tar.gz
    tar xvzf hyperion.ng-git.tar.gz
    cd hyperion.ng-git
    makepkg -s


    Wait for .tar.zst package to build, then install it with:


    Code
    sudo pacman -U hyperion.ng-git-r2371.17582ac3-1-x86_64.pkg.tar.zst

    (maybe will be some newer version in your case, so file name could be different, however, you need to install built .tar.zst package in hyperion.ng-git folder with sudo pacman -U command)


    Please note that Archlinux not allow to run makepkg command as root.


    All packages from AUR are basically scripts which doing something when run. In this certain Hyperion case, AUR script will download source from git and compile it, will also make hyperiond service file.


    I am not sure how you are planning to test this and will you need desktop environment, but thanks in advance and I can help with DE as well, if it is needed.


    #################################################################################################


    LATER EDIT: Ok, so, I made some progress 8)8)8)


    If I run e.g. DISPLAY=:0 hyperion-x11 -f 25 as standard (non root) user, LEDs are working as expected - they're in sync with display content. (keep in mind that I'm playing with Hyperion for the first time, so needed some time to figure that these CLI tools are exists also :P;( )


    Framebuffer is still only available device for internal capture in web UI (even after systemctl restart hyperiond), but hey, until now, only share screen from browser worked for me, and with this share screen option, old laptop was little overwhelmed and hyperiond was crash from time to time, so as for now this is the closest to perfection for me ^^ . No matter, if nothing else, I will write some script to automate the process and run it from Home Assistant, that was the plan anyway.

    7 Mal editiert, zuletzt von stiw47 () aus folgendem Grund: Merged a post created by stiw47 into this post.

    • Hilfreichste Antwort
    • Offizieller Beitrag

    stiw47 Thanks for all the input. that helped very much to get me up and running... plus working from package to package install...

    Looking at the PKGBUILD and the hyperion.systemd files, it is currently a mix of hyperion classic and new.

    I think this would require some updates....


    Nevertheless, following hyperion.systemd file should get you up and running and reflects roughly what we provide as a basis currently.
    Replace the user-ID at "User" with the one that you like to run Hyperion.ng under.

    Running Hyperion under root (as before) is not good practice.

    The Environment=DISPLAY seems to be required under this OS too.



    Just a screenshot for your reference. Running under my user....



  • Lord-Grey : THANKS A LOT!!!! You are my real hero. If you ever come to Belgrade, RS I would like to buy you couple of beers and so :P


    Ok, so:


    Zitat

    Running Hyperion under root (as before) is not good practice.

    This not doing the job, cause (I think) OS wouldn't allow access to X for root (at least, not without some heavy modification). Anyway, I tested that as well and again, only Framebuffer is available as internal capture device (of course, cause Arch wont to allow access to X for root user).


    Running it as standard user working flawlessly, QT, X11 and XCB are available for capturing as on your screenshot. I would have just one little addition for my use case: I'm using adalight controller type, i.e. WS2812B LED strip, connected via Arduino nano and serial port /dev/ttyUSB0. Per default, /dev/ttyUSB0 has following permissions:


    Code
    [root@archmedia ~]# ls -al /dev/ttyUSB0
    crw-rw---- 1 root uucp 188, 0 Dec 10 21:21 /dev/ttyUSB0


    In order to be able to access it as standard user, you need to either change ownership to your user (e.g. chown stiw47:uucp /dev/ttyUSB0) or to add your standard user to uucp group. Of course, ownership change will be lost on next reboot or unplug/plug of Arduino and root will become owner again, but I guess this could be set permanently with UDEV rule (never played before with UDEV rules). Will think little bit which one of above two solutions would be better for me and for you once again BIG THANKS!!!


    I will post a comment on hyperion.ng-git AUR page with this topic URL, so maintainer can be informed and can improve it if he want.

    • Offizieller Beitrag

    Good to hear that it is running now.

    Try adding the user to the uucp group.

    Hyperion support udev serial devices.

    Let me check in the git issues. I put somewhere how to…

    • Offizieller Beitrag

    In Case you would like to go the udev route, at the end of the following issue is some guidance.


    https://github.com/hyperion-project/hyperion.ng/issues/1332


    It was for a different device, but you can just logically replace karate by Adalight in your case.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!