Installing deb packages with the Yocto Project

Hi there,

Hardware:
Colibri iMX6DL
with Viola Carrier Board Rev 1.2
Torizon OS 6.4.0
image

We need to install deb packages (outside the container due to the package installing a daemon service) for an IDS (uEye) Camera.

We have started to follow the “Build Torizon OS from Source With Yocto Project/OpenEmbedded” topic on a Windows (WSL) system

Windows Setup
Steps

  1. Open a command prompt and run the WSL command

  2. $ cd

  3. $ explorer.exe .

  4. Copy the path

  5. Close the (WSL) command prompt

  6. Open a command prompt

  7. docker run --rm -it --name=crops -v \wsl.localhost\Ubuntu\home\pi\workdir:/workdir --workdir=/workdir -e MACHINE=colibri-imx6 -e IMAGE=kirkstone-6.x.y torizon/crops:kirkstone-6.x.y startup-tdx.sh

The following error is reported…

Checking the following directory…

The reference file “linux-firmware_20230804.bb” seems to be missing

Is there something I’m missing or can check to try and resolve is issue?

Many Thanks Jon

Greetings @jon2023,

This is a known issue that was just recently fixed. But the yocto manifest still points to the old version of the meta-layer that still has the issue. The fix can be seen here: meta-toradex-bsp-common.git - Toradex BSP layer, recipes common to all modules

You can try manually updating the meta-toradex-bsp-common meta-layer to the latest commit so you have this fix in your build.

Best Regards,
Jeremias

Hi Jeremias,

Thanks for prompt response.
I shall take a look :slightly_smiling_face:

Cheers Jon

in the past i have been able to install the ids camera drivers for etherent ids cam directly in a container by running it in privileged and with net host

docker run -it --privileged --net=host

I was using ueye_4.93.0.986 arm64 drivers. this was in older torizon version 5.4
below is the dockerfile of the container

FROM torizon/arm64v8-debian-base:buster 
RUN apt-get -y update && apt-get install -y \
    dialog


RUN apt-get install -y \
    python3-pip \
    python3-setuptools \ 
    python3-numpy \
    htop \
    nano \
    procps \
    file \
    libjpeg62 \
    libpng16-16 \
    libgomp1 \
    libcap2 \
    libusb-1.0-0

RUN pip3 install wheel redis==3.5.3
RUN pip3 install pyueye attrs cattrs==1.0.0 serialized-redis-interface toml


ENV QT_QPA_PLATFORM="wayland"
ENV PYTHONPATH=/container_share/interface-layer/src:/container_share/s-log/src:/container_share/config-system/src
ENV SBB_IMG_SAVE_LOCATION=/sd
ENV PYTHONUNBUFFERED=1

# Work around Weston issue by using bash instead of dash
# see https://gitlab.freedesktop.org/wayland/weston/merge_requests/294
RUN ln -sf bash /bin/sh

# The compositor needs access to input devices
RUN usermod -a -G input torizon

COPY ueye_4.93.0.986_arm64.run /home/torizon
RUN chmod a+x /home/torizon/ueye_4.93.0.986_arm64.run
RUN /home/torizon/ueye_4.93.0.986_arm64.run --auto

COPY ueyeethd.conf /etc/ids/ueye/ueyeethd.conf
COPY image_grabber_entrypoint.sh /home/torizon/.
RUN chmod a+x /home/torizon/image_grabber_entrypoint.sh
#CMD /etc/init.d/ueyeethdrc stop
#CMD /etc/init.d/ueyeethdrc start

WORKDIR /container_share/camera-system/src

 
#ENTRYPOINT ["/usr/bin/entry.sh"]
ENTRYPOINT ["/home/torizon/image_grabber_entrypoint.sh"]

entry point script where the ids daemon is started. I only needed the ids ethernet service

#!/bin/sh
/etc/init.d/ueyeethdrc start
python3 /container_share/camera-system/src/camera_system/camera_grabber.py

docker-compose section

image-grabber:
        image: image_grabber
        container_name: image-grabber
        depends_on:
            - redis-backend
        privileged: true
        network_mode: "host"
        volumes: 
            - type: bind
              source: /home/torizon/container_share
              target: /container_share
            - type: bind
              source: /media/card
              target: /sd
        environment:
          - PYTHONUNBUFFERED=1
          - TZ=Europe/Zurich 
1 Like

Thanks Nitish Jha

I shall try that and see how it goes :slight_smile:

Much Appreciated for your help
Jon