Duet3D Logo

    Duet3D

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Documentation
    • Order

    MotionWebcamServer plugin - Missing library

    Beta Firmware
    4
    29
    765
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • adammhaile
      adammhaile last edited by

      Just updated to 3.4.0-rc2 and noticed the MotionWebcamServer plugin - thought I'd give it a go.
      However, when I try to run it the plugin never starts and the duetpluginservice log shows:

      Feb 23 16:51:13 rancor DuetPluginService[651]: [error] Plugin MotionWebcamServer: /opt/dsf/plugins/MotionWebcamServer/dsf/arm/motion: error while loading shared libraries: libvchiq_arm.so: cannot open shared object file: No such file or directory
      

      I've found a few things on the Pi forums about this file but since DuetPi is a custom build I didn't want to just go mucking about until I ran it past you... any thoughts as to why that is missing?

      1 Reply Last reply Reply Quote 0
      • adammhaile
        adammhaile last edited by

        @Phaedrux any ideas?

        chrishamm 1 Reply Last reply Reply Quote 0
        • chrishamm
          chrishamm administrators @adammhaile last edited by

          @adammhaile It looks like that library is part of libraspberrypi-dev. Can you install it and check if you can start the plugin then (sudo apt install libraspberrypi-dev)?

          Duet software engineer

          adammhaile 2 Replies Last reply Reply Quote 0
          • adammhaile
            adammhaile @chrishamm last edited by

            @chrishamm apt says latest is already installed

            pi@rancor:~ $ sudo apt install libraspberrypi-dev
            Reading package lists... Done
            Building dependency tree
            Reading state information... Done
            libraspberrypi-dev is already the newest version (1:1.20211201~buster-1).
            
            adammhaile 1 Reply Last reply Reply Quote 0
            • adammhaile
              adammhaile @adammhaile last edited by

              @chrishamm
              So I found where that library lives:

              pi@rancor:~ $ ldconfig -p | grep libvchiq_arm
                      libvchiq_arm.so (libc6,hard-float) => /opt/vc/lib/libvchiq_arm.so
              

              And I attempted to add that directory to my LD path for the dsf user:

              dsf@rancor:~ $ echo $LD_LIBRARY_PATH
              :/opt/vc/lib/
              

              But the plugin still fails with the same error - so seems to not care about LD_LIBRARY_PATH. Is there another way I can set the path for where to find libvchiq_arm for the plugin?

              1 Reply Last reply Reply Quote 0
              • adammhaile
                adammhaile @chrishamm last edited by

                @chrishamm Is the actual source code for this plugin somwhere?
                All I can find is the binaries on Github: https://github.com/Duet3D/DSF-Plugins/tree/dev/MotionWebcamServer/dsf/arm

                Would love to dig into it more but hard to without the source.

                chrishamm 1 Reply Last reply Reply Quote 0
                • chrishamm
                  chrishamm administrators @adammhaile last edited by

                  @adammhaile Do you mean this? https://github.com/Motion-Project/motion It's linked in the MotionWebcamServer README file.

                  Duet software engineer

                  adammhaile 1 Reply Last reply Reply Quote 0
                  • adammhaile
                    adammhaile @chrishamm last edited by

                    @chrishamm Ah - sorry. I missed that it was really just as simple as you running a pre-existing thing.
                    I'll look into it more from there - thanks!

                    1 Reply Last reply Reply Quote 1
                    • luckyflyer
                      luckyflyer last edited by luckyflyer

                      @adammhaile @chrishamm Any follow up on this? I've installed the plugin on 3.4 final with the same results that you had.

                      1 Reply Last reply Reply Quote 0
                      • adammhaile
                        adammhaile last edited by

                        @luckyflyer Unfortunately, no - I have not been able to solve the problem.
                        But glad it's not just me at least?
                        Granted, I've also downloaded motion separately and was unable to get it to work... so it seems to be something wrong with the plugin per-se.
                        I wonder if the DuetPi base image was updated recently and made incompatible with motion

                        chrishamm 1 Reply Last reply Reply Quote -1
                        • chrishamm
                          chrishamm administrators @adammhaile last edited by

                          @adammhaile @luckyflyer Very odd, it looks like something changed because this definitely worked for me before on another image. The problem is indeed that motion cannot open /opt/vc/lib/libvchiq_arm.so. To fix this, you can edit /etc/apparmor.d/dsf.MotionWebcamServer and insert a new line below /usr/local/lib...:

                            /opt/vc/lib/** rm,
                          

                          Then reboot the Pi or run sudo apparmor_parser -r /etc/apparmor.d/dsf.MotionWebcamServer and you should be able to start the plugin from DWC.

                          Duet software engineer

                          1 Reply Last reply Reply Quote 1
                          • luckyflyer
                            luckyflyer last edited by

                            @chrishamm I ssh into my pi and copy/paste

                            /etc/apparmor.d/dsf.MotionWebcamServer
                            

                            I get a permission denied message.

                            adammhaile 1 Reply Last reply Reply Quote 0
                            • adammhaile
                              adammhaile @luckyflyer last edited by

                              @luckyflyer you'll need to use sudo to edit the file.
                              sudo nano /etc/apparmor.d/dsf.MotionWebcamServer

                              Ctrl+O to save, Ctrl+X to exit once saved

                              1 Reply Last reply Reply Quote 0
                              • luckyflyer
                                luckyflyer last edited by

                                @adammhaile Thanks, I tried sudo but without nano but of course that didn't work either.

                                adammhaile 1 Reply Last reply Reply Quote 0
                                • adammhaile
                                  adammhaile @luckyflyer last edited by

                                  @luckyflyer why are you trying it without nano?

                                  As @chrishamm said:

                                  @chrishamm said in MotionWebcamServer plugin - Missing library:

                                  To fix this, you can edit /etc/apparmor.d/dsf.MotionWebcamServer and insert a new line below

                                  This means you need to edit the file which is what nano does... you can't just "run" that file.

                                  1 Reply Last reply Reply Quote 0
                                  • luckyflyer
                                    luckyflyer last edited by luckyflyer

                                    I have the plugin running and have a grey screen that has a message in the top left corner "unable to open video device". I tried a different (known to work camera) with the same results. I ran lsusb and the ports see the camera. I'm using http://192.168.0.181:8081/0/stream Any ideas? Thanks
                                    printer2.jpg

                                    1 Reply Last reply Reply Quote 0
                                    • luckyflyer
                                      luckyflyer last edited by

                                      Any ideas why the grey screen?

                                      chrishamm 1 Reply Last reply Reply Quote 0
                                      • chrishamm
                                        chrishamm administrators @luckyflyer last edited by chrishamm

                                        @luckyflyer Your error message says "Unable to open video device" so your webcam is probably not recognized by the Pi or you don't have access to it. Can you check if /dev/video0 exists? That's the default in the motion settings (see motion.conf in the System Files directory).

                                        Please run sudo gpasswd -a dsf video and reboot your Pi. That should fix it.

                                        Duet software engineer

                                        MintyTrebor 1 Reply Last reply Reply Quote 0
                                        • MintyTrebor
                                          MintyTrebor @chrishamm last edited by MintyTrebor

                                          @chrishamm I have just enabled this plugin on a brand new clean duet image install on a pi4 with v3.4. The permissions issues described above were present on the included version of the plugin, and the fix previously posted did indeed work to enable the plugin to start.

                                          However the permissions issues seem to be deeper within the operations of the plugin.
                                          By default the plugin cannot access /dev/video*, neither can it create a log entry in the default logging folder set in the config file (when enabled). I changed the log folder to the tmp directory and I was able to see in the logs that motion was complaining it cannot access the video* device, which results in the grey screen shown in @luckyflyer post.

                                          To prove this is a permissions problem I changed the permissions of /dev/video0 in the terminal (chmod), and the plugin was able to start with video working correctly. I looked at

                                          /etc/apparmor.d/dsf.MotionWebcamServer
                                          

                                          and I can see there is an entry to set the access permissions to /dev/video* in the file, but this does not seem to be working as expected.

                                          --edit - I see you have updated your post since I started this one. I will try the proposed additional command....

                                          -- Update 2 - Additional command worked. Also I found adding the following line to the Live Stream Configuration Parameters section in motion.conf, improved the output framerate significantly :

                                          stream_maxrate 50
                                          

                                          NodeDSF - Native Node-Red integration with Duet boards.
                                          BtnCmd - Customise DWC with user defined buttons/layouts/panels (DWC Plugin)
                                          ReleaseMgr - Duet update info inside DWC.
                                          Repo

                                          MintyTrebor 1 Reply Last reply Reply Quote 1
                                          • MintyTrebor
                                            MintyTrebor @MintyTrebor last edited by

                                            If anyone is interested you can show the motion "control" web page inside DWC to allow you access / change some advanced video values (brightness, size etc) in a simple gui provided by motion:

                                            2c770e17-672d-4426-9d64-554dd5ecfbd6-image.png

                                            (you will need BtnCmd Plugin to do this)

                                            Set your motion config like below:
                                            a4769e3f-e9e6-4bae-85ce-5a11f4498ff0-image.png
                                            & restart the plugin

                                            In BtnCmd add a remote source panel:
                                            33d9b149-ef11-43b2-bd89-7f0cf6e18e52-image.png

                                            And set the URL to http://[pi ip]:8080/ eg:
                                            6fab52cb-1e50-4eb2-94c2-a710562a80b4-image.png

                                            Then resize to fit your screen and save the layout.

                                            NodeDSF - Native Node-Red integration with Duet boards.
                                            BtnCmd - Customise DWC with user defined buttons/layouts/panels (DWC Plugin)
                                            ReleaseMgr - Duet update info inside DWC.
                                            Repo

                                            chrishamm adammhaile 2 Replies Last reply Reply Quote 2
                                            • chrishamm
                                              chrishamm administrators @MintyTrebor last edited by chrishamm

                                              @mintytrebor DWC lets you show the same content on the Jobs -> Webcam page if you check Embed webcam image in an iframe on the Settings -> General page and change the config + URL accordingly.

                                              PS: I'm rebuilding DuetPi to make the required changes from above obsolete. The next DSF version will fix it, too.

                                              Duet software engineer

                                              MintyTrebor 1 Reply Last reply Reply Quote 1
                                              • MintyTrebor
                                                MintyTrebor @chrishamm last edited by

                                                @chrishamm said in MotionWebcamServer plugin - Missing library:

                                                PS: I'm rebuilding DuetPi to make the required changes from above obsolete. The next DSF version will fix it, too.

                                                Great. Thanks @chrishamm

                                                NodeDSF - Native Node-Red integration with Duet boards.
                                                BtnCmd - Customise DWC with user defined buttons/layouts/panels (DWC Plugin)
                                                ReleaseMgr - Duet update info inside DWC.
                                                Repo

                                                1 Reply Last reply Reply Quote 0
                                                • luckyflyer
                                                  luckyflyer last edited by luckyflyer

                                                  @chrishamm, @MintyTrebor Thanks

                                                  1 Reply Last reply Reply Quote 0
                                                  • luckyflyer
                                                    luckyflyer last edited by

                                                    @chrishamm @MintyTrebor I would like to increase the frame rate. Could you help a Linux dummy out and give me the exact command to enter to change the frame rate. Thanks

                                                    adammhaile 1 Reply Last reply Reply Quote 0
                                                    • adammhaile
                                                      adammhaile @luckyflyer last edited by

                                                      @luckyflyer said in MotionWebcamServer plugin - Missing library:

                                                      @chrishamm @MintyTrebor I would like to increase the frame rate. Could you help a Linux dummy out and give me the exact command to enter to change the frame rate. Thanks

                                                      In with your system files is now motion.conf. Open that file to edit in DWC and go to around line 59 and change the default 15 to whatever you want (within limits of your camera, of course). It'll look like this:

                                                      # Maximum number of frames to be captured per second.
                                                      framerate 15
                                                      
                                                      luckyflyer 1 Reply Last reply Reply Quote 0
                                                      • First post
                                                        Last post
                                                      Unless otherwise noted, all forum content is licensed under CC-BY-SA