Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
Collapse
Brand Logo

ModalAI Forum

  1. ModalAI Support Forum
  2. Software Development
  3. Building voxl-streamer on voxl-cross Docker image

Building voxl-streamer on voxl-cross Docker image

Scheduled Pinned Locked Moved Software Development
7 Posts 3 Posters 1.3k Views 2 Watching
  • 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.
  • A Offline
    A Offline
    AndriiHlyvko
    Contributor
    wrote on last edited by
    #1

    Hi. I am building the voxl-streamer service (for debugging purposes) for qrb5165 (on voxl mini) using the voxl-cross:V2.7 image and I found that I had to make several changes to the repo to get it to build and deploy.
    For example, gstreamer development libraries are not listed in the install_build_deps.sh script. I had to install the gstreamer dev packages manually to the docker image. Also the docker image does not list the arm64 architecture as one of its package architectures. Cuz cross compiling will fail if you install the x86 packages.

    In summary I had to:

    dpkg --add-architecture arm64
    
    apt install libgstreamer1.0-dev:arm64 libgstreamer-plugins-base1.0-dev:arm64 libgstrtspserver-1.0-dev:arm64
    

    The other thing that I did was change the cmake because it was trying to use the wrong compiler for the cross compilation. During the linking stage the linker was complaining that libmodal-json.so was in the wrong format. I compiled libmodal-json for aarch64 obviously.

    set(CMAKE_C_COMPILER "/usr/bin/aarch64-linux-gnu-gcc-7")
    set(CMAKE_CXX_COMPILER "/usr/bin/aarch64-linux-gnu-g++-7")
    link_directories(/usr/lib/aarch64-linux-gnu/)
    

    To my understanding the whole idea of using voxl-cross is to build packages for aarch64 by using an out of the box container.

    Can any modalai devs help me figure out if these issues are legit? Or do you guys use a different build process? Maybe @Alex-Gardner ?

    tomT 1 Reply Last reply
    0
    • A AndriiHlyvko

      Hi. I am building the voxl-streamer service (for debugging purposes) for qrb5165 (on voxl mini) using the voxl-cross:V2.7 image and I found that I had to make several changes to the repo to get it to build and deploy.
      For example, gstreamer development libraries are not listed in the install_build_deps.sh script. I had to install the gstreamer dev packages manually to the docker image. Also the docker image does not list the arm64 architecture as one of its package architectures. Cuz cross compiling will fail if you install the x86 packages.

      In summary I had to:

      dpkg --add-architecture arm64
      
      apt install libgstreamer1.0-dev:arm64 libgstreamer-plugins-base1.0-dev:arm64 libgstrtspserver-1.0-dev:arm64
      

      The other thing that I did was change the cmake because it was trying to use the wrong compiler for the cross compilation. During the linking stage the linker was complaining that libmodal-json.so was in the wrong format. I compiled libmodal-json for aarch64 obviously.

      set(CMAKE_C_COMPILER "/usr/bin/aarch64-linux-gnu-gcc-7")
      set(CMAKE_CXX_COMPILER "/usr/bin/aarch64-linux-gnu-g++-7")
      link_directories(/usr/lib/aarch64-linux-gnu/)
      

      To my understanding the whole idea of using voxl-cross is to build packages for aarch64 by using an out of the box container.

      Can any modalai devs help me figure out if these issues are legit? Or do you guys use a different build process? Maybe @Alex-Gardner ?

      tomT Offline
      tomT Offline
      tom
      admin
      wrote on last edited by
      #2

      @AndriiHlyvko voxl-streamer is meant to be built with qrb5165-emulator, not voxl-cross

      Link Preview Image
      voxl / VOXL SDK / Services / voxl-streamer · GitLab

      Application based on GStreamer to stream video from Voxl connected cameras using h.264 / h.265 with RTSP. Streaming icon created by Pixel perfect - Flaticon

      favicon

      GitLab (gitlab.com)

      A 2 Replies Last reply
      0
      • tomT tom

        @AndriiHlyvko voxl-streamer is meant to be built with qrb5165-emulator, not voxl-cross

        Link Preview Image
        voxl / VOXL SDK / Services / voxl-streamer · GitLab

        Application based on GStreamer to stream video from Voxl connected cameras using h.264 / h.265 with RTSP. Streaming icon created by Pixel perfect - Flaticon

        favicon

        GitLab (gitlab.com)

        A Offline
        A Offline
        AndriiHlyvko
        Contributor
        wrote on last edited by
        #3

        @tom your docs page doesnt say anything about using the emulator image for building the packages. Either update your docs or fix cross compilation on docker-cross

        tomT 1 Reply Last reply
        0
        • tomT tom

          @AndriiHlyvko voxl-streamer is meant to be built with qrb5165-emulator, not voxl-cross

          Link Preview Image
          voxl / VOXL SDK / Services / voxl-streamer · GitLab

          Application based on GStreamer to stream video from Voxl connected cameras using h.264 / h.265 with RTSP. Streaming icon created by Pixel perfect - Flaticon

          favicon

          GitLab (gitlab.com)

          A Offline
          A Offline
          AndriiHlyvko
          Contributor
          wrote on last edited by
          #4

          @tom also it doesnt make sense to emulate arm64 just for the build process lol

          1 Reply Last reply
          0
          • A AndriiHlyvko

            @tom your docs page doesnt say anything about using the emulator image for building the packages. Either update your docs or fix cross compilation on docker-cross

            tomT Offline
            tomT Offline
            tom
            admin
            wrote on last edited by
            #5

            @AndriiHlyvko The formatting is a bit broken so I'll fix it but it's there: https://docs.modalai.com/voxl-emulator/

            Not all packages are built using voxl-cross (the majority are but not all).

            Some are built using qrb5165-emulator and apq8096-emulator.

            I'd recommend reading through the readme or checking how CI is building the package before building it yourself. All of our packages are built nightly in CI to verify that the builds are good.

            A 1 Reply Last reply
            0
            • tomT tom

              @AndriiHlyvko The formatting is a bit broken so I'll fix it but it's there: https://docs.modalai.com/voxl-emulator/

              Not all packages are built using voxl-cross (the majority are but not all).

              Some are built using qrb5165-emulator and apq8096-emulator.

              I'd recommend reading through the readme or checking how CI is building the package before building it yourself. All of our packages are built nightly in CI to verify that the builds are good.

              A Offline
              A Offline
              AndriiHlyvko
              Contributor
              wrote on last edited by
              #6

              @tom ok sounds good. But why not just change the cmake a little to test the arch and then change the include and link directories accordingly so it wont matter under what arch youre building it? I feel like its a simple change and it'll make it more convenient. Just my two cents 🤷

              Also that Emulator docs page says: "It is for low-level service development for cross-compiling applications not yet supported by cross-compiling in voxl-cross". So is the plan to make all packages be compiled using voxl-cross?

              Eric KatzfeyE 1 Reply Last reply
              0
              • A AndriiHlyvko

                @tom ok sounds good. But why not just change the cmake a little to test the arch and then change the include and link directories accordingly so it wont matter under what arch youre building it? I feel like its a simple change and it'll make it more convenient. Just my two cents 🤷

                Also that Emulator docs page says: "It is for low-level service development for cross-compiling applications not yet supported by cross-compiling in voxl-cross". So is the plan to make all packages be compiled using voxl-cross?

                Eric KatzfeyE Offline
                Eric KatzfeyE Offline
                Eric Katzfey
                ModalAI Team
                wrote on last edited by
                #7

                @AndriiHlyvko The issue is with dependencies. The emulator is built using the actual filesystem used on the VOXL platform so you get all of the correct dependencies. With voxl-cross it is sometimes very difficult to setup the dependencies properly.

                1 Reply Last reply
                0

                Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                With your input, this post could be even better 💗

                Register Login
                Reply
                • Reply as topic
                Log in to reply
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes


                ModalAI
                Categories Recent Tags ModalAI.com Docs
                © 2026 ModalAI® · Accelerating autonomy for smaller, smarter, safer drones · Powered by NodeBB
                • Login

                • Login or register to search.
                • First post
                  Last post
                0
                • Categories
                • Recent
                • Tags
                • Popular
                • Users
                • Groups