Adding a New Plugin to an Existing Meta Layer

In my Yocto system, gst-plugins-rs is not available, so I am unable to build the audiofx plugin and the following elements: audioloudnorm, audiornnoise, ebur128level, hrtfrender, and rsaudioecho. and my Streamer version is 1.20.3.

root@colibri-imx7-emmc-mcp:~# tdx-info

Software summary

Bootloader: U-Boot

Kernel version: 6.1.154-6.8.4-devel+git.7b34dc04e4ff #1 SMP Thu May 28 08:32:58 UTC 2026

Kernel command line: root=PARTUUID=69a1a65c-02 ro rootwait console=tty1 console=ttymxc0,115200n8 consoleblank=0 video=mxsfb:640x480M-16@0

Distro name: NAME=“TDX Wayland with XWayland Upstream”

Distro version: VERSION_ID=6.8.5-devel-20260330114452-build.0

Distro variant: -Hostname: colibri-imx7-emmc-mcp

Hardware info

HW model: Toradex Colibri iMX7D 1GB (eMMC) on Colibri Evaluation Board V3

Toradex version: 0039 V1.1BSerial number: 14705260Processor arch: armv7l

Hi, I’m the Toradex AI Assistant.

I might make mistakes or occasionally get you wrong. Our support team will step in if needed.


Based on your tdx-info output, you’re running:

  • Hardware: Colibri iMX7D 1GB (eMMC) - PID8: 0039
  • OS: TDX Wayland with XWayland Upstream, version 6.8.5-devel
  • GStreamer: 1.20.3

Adding gst-plugins-rs to Your Yocto Build

The gst-plugins-rs package contains Rust-based GStreamer plugins, including the audiofx plugin you need. Since it’s not available in your current image, you’ll need to add it through a custom Yocto layer.

Steps to Add the Plugin

  1. Identify the Recipe: The GStreamer Rust plugins are typically provided by the gst-plugins-rs recipe in meta-openembedded or similar layers.

  2. Add to Your Image Recipe: In your custom meta layer, modify your image recipe (or create a .bbappend file) to include the package:

    IMAGE_INSTALL:append = " gst-plugins-rs"
    
  3. Verify Layer Dependencies: Ensure your bblayers.conf includes the necessary layers that provide the gst-plugins-rs recipe. This typically requires:

    • meta-openembedded/meta-oe
    • meta-rust (for Rust support)
  4. Rebuild Your Image: After modifying your configuration, rebuild:

    bitbake <your-image-name>
    

Important Considerations for Colibri iMX7D

The Colibri iMX7D uses an ARM Cortex-A7 processor. Building Rust-based plugins may require:

  • Sufficient build resources (RAM/CPU on your build host)
  • Proper Rust toolchain configuration for ARMv7
  • Extended build time compared to C-based plugins

Verification After Installation

Once you’ve rebuilt and deployed your image, verify the plugin is available:

# gst-inspect-1.0 | grep audiofx
# gst-inspect-1.0 audioloudnorm

Alternative Approach

If you encounter build issues or want a quicker solution for development/testing, consider using Torizon OS with Debian containers where you can install GStreamer plugins via apt without rebuilding the entire system(1).

For more information about GStreamer usage on Toradex modules, refer to the Video Encoding and Playback With GStreamer (Linux) documentation(1).

Best regards,
Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.

reply to above , as i dont have gst-plugins-rs ,how to build the audiofx plugin and these elements audioloudnorm

audiornnoise

ebur128level

hrtfrender

rsaudioecho

Since gst-plugins-rs is not available in your current BSP (version 6.8.5-devel based on your tdx-info), you’ll need to add it to your Yocto build by creating or modifying a custom meta layer.

Steps to Build gst-plugins-rs and the audiofx Plugin

1. Verify Your Build Environment

First, ensure your build environment is properly set up. You should have already followed the host machine setup and have the Yocto repositories initialized(1).

2. Check Available Layers

The gst-plugins-rs recipe is typically found in the meta-openembedded layer (specifically in meta-oe). Verify this layer is included in your bblayers.conf:

$ cat conf/bblayers.conf

Look for a line containing meta-openembedded/meta-oe.

3. Add the Package to Your Image

You have two options:

Option A: Modify local.conf (for testing)

Add this line to conf/local.conf:

IMAGE_INSTALL:append = " gstreamer1.0-plugins-rs"

Option B: Create a Custom Image Recipe (recommended for production)

Create a custom meta layer and image recipe that extends the reference image. For detailed instructions on creating custom layers, refer to Custom meta layers, recipes and images in Yocto Project(1).

4. Ensure Rust Support

Since gst-plugins-rs requires Rust, verify that your build includes Rust support. The meta-rust layer should be present in your layer configuration.

5. Build Your Image

Rebuild your image with the new configuration:

$ bitbake tdx-reference-minimal-image

Or if you’re building the multimedia image:

$ bitbake tdx-reference-multimedia-image

Note: The first build with Rust components may take significantly longer (several hours) and requires substantial resources(1).

6. Verify After Deployment

After deploying the rebuilt image to your Colibri iMX7D, verify the plugins are available:

# gst-inspect-1.0 | grep audiofx
# gst-inspect-1.0 audioloudnorm
# gst-inspect-1.0 audiornnoise
# gst-inspect-1.0 ebur128level
# gst-inspect-1.0 hrtfrender
# gst-inspect-1.0 rsaudioecho

Important Notes for Colibri iMX7D

  • Your Colibri iMX7D uses an ARMv7 Cortex-A7 processor, which may have limited resources for complex audio processing
  • Rust-based plugins may require more build time and resources than C-based alternatives
  • Consider testing the performance of these plugins on your specific hardware to ensure they meet your requirements

Alternative Consideration

If you need these audio processing capabilities but want to avoid the complexity of building Rust plugins in Yocto, consider migrating to Torizon OS, where you can use Debian-based containers with pre-built GStreamer plugins available via apt.

Best regards,
Toradex AI Assistant.


Did you like my answer? :+1: :-1:

If I answered your question, please tick the “Solution” checkbox.

For follow-up questions to me, please use @ToradexAI in your post.