Need help enabling ALSA sequencer (CONFIG_SND_SEQUENCER)

Hi,
First of all here is my tdx-info:

Software summary
**------------------------------------------------------------**
Bootloader:               U-Boot
Kernel version:           6.6.94-7.3.0-g5a62539de8f9 #1-Torizon SMP PREEMPT Wed Jun 25 09:14:55 UTC 2025
Kernel command line:      root=LABEL=otaroot rootfstype=ext4 quiet logo.nologo vt.global_cursor_default=0 plymouth.ignore-serial-consoles splash fbcon=map:3 ostree=/ostree/boot.0/torizon/31dc8182fa59a1eee30faa472a4436f61a7b1096f529931cd445c29eda2eeb6b/0
Distro name:              NAME=“Torizon OS”
Distro version:           VERSION_ID=7.3.0-build.18
Distro variant:           VARIANT=“Docker”
Hostname:                 verdin-imx8mp-08622093
**------------------------------------------------------------**
Hardware info
**------------------------------------------------------------**
HW model:                 Toradex Verdin iMX8M Plus WB on Ivy
Toradex version:          0064 V1.1A
Serial number:            08622093
Processor arch:           aarch64
**------------------------------------------------------------**

I am new to using Toradex development tools and I am trying to run the AgIsoVirtualTerminal application, which uses the JUCE library. The problem I am facing is that, although I have a sound card connected and working on my Verdin Ivy kit with an iMX8MP module, when I try to run the application I get the following error:

ALSA lib seq_hw.c:466:(snd_seq_hw_open) open /dev/snd/seq failed: No such file or directory

From my research, this seems to be because CONFIG_SND_SEQUENCER was not enabled when building the kernel, since it appears as “# CONFIG_SND_SEQUENCER is not” set in the /proc/config.gz file.

I got the idea from this article about exposing the audio device to the container:

I was able to successfully customize my Torizon OS image by following the steps from this article:

However, up to this point, I have no way to change or rebuild the kernel to enable CONFIG_SND_SEQUENCER.

Now I am following the steps described in this article to rebuild the kernel with the flag enabled:

Am I on the right track? Is there a simpler way to get this kernel module working? Perhaps by using the “Toradex Embedded Linux Reference Multimedia” image?

Thank you very much in advance!

Hi, I’m the Toradex AI Assistant.

I might make mistakes. Our support team will step in if needed. If I answered your question, please tick the “Solution” checkbox. For follow-up questions to me, please use @ToradexAI in your post.

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


Enabling CONFIG_SND_SEQUENCER on Torizon OS

You’re on the right track! For enabling kernel configurations like CONFIG_SND_SEQUENCER, you have a simpler option than rebuilding the entire kernel from source using Yocto. Based on your situation, here are the recommended approaches:

Option 1: Check if it’s Already Available as a Module

First, verify if the ALSA sequencer is available as a loadable kernel module (1):

# zcat /proc/config.gz | grep SND_SEQUENCER

(1)

If you see CONFIG_SND_SEQUENCER=m, it means the module is available but needs to be loaded (1).

Option 2: Request Kernel Module Addition (Recommended)

Since you need CONFIG_SND_SEQUENCER enabled, the most straightforward approach is to request this kernel configuration through the Toradex community (1). According to the documentation:

Add a kernel module that is available in the kernel source, or in-tree. In this case, please make a request in our community. If you tell us the exact kernel config that must be enabled and it does not have a negative impact on Torizon OS, we’ll add it as a module (1).

This approach is much simpler than rebuilding the entire kernel yourself.

Option 3: Build External Kernel Module (If Needed)

If the sequencer functionality requires an out-of-tree module, you can use TorizonCore Builder to add external kernel modules (1). The process involves:

  1. Installing TorizonCore Builder (1)
  2. Organizing your kernel module source code into a directory with at least one source C file and one Makefile (1)
  3. Using the build command with a configuration YAML file (1)

Here’s an example configuration structure from the documentation (1):

# Sample configuration file:
input:
  easy-installer:
    local: images/torizon-core-docker-colibri-imx6-Tezi_5.3.0+build.7.tar
# Sample customization: build hello-mod module into the image
customization:
  kernel:
    modules:
      - source-dir: hello-mod/
        autoload: no
output:
  easy-installer:
    local: torizon-core-docker-colibri-imx6-Tezi_5.3.0.CUSTOM

(1)

Recommendation

For your specific case with CONFIG_SND_SEQUENCER, I recommend Option 1 first (check if it’s already available), then Option 2 (request it through the community) as this will be much more efficient than rebuilding the entire kernel from source.

The multimedia reference image you mentioned might already include this configuration, but requesting the specific kernel config through the community will ensure it’s available in future standard releases.

Best regards, Toradex AI Assistant.

Hey, @jpciciarelli,

If you only want to enable CONFIG_SND_SEQUENCER, you don’t need to rebuild the whole OS. Check out our documentation on How to Build the Kernel from Source. Before Compiling the Kernel, run the following command:

make menuconfig

It will open a TUI for you to enable or disable the configs you want. Or you can search for CONFIG_SND_SEQUENCER in the .config file and edit it directly.

Let me know if this solves your issue. If your project needs it, you can open a request for the config to be enabled in our next releases: Open a new ticket under the “Feature Requests” category, and ask for CONFIG_SND_SEQUENCER to be enabled. If it’s compatible with our builds and doesn’t conflict with anything we can enable it.

Best regards,

Hi, @leonardo.costa.tx,

I followed your recommendation and on the link you shared I saw the warning:

“To obtain consistent graphical behavior, we recommend building the kernel with the Yocto Project using our BSP.”

Since I need to use the graphical part (the application I want to run is a GUI application), I followed this recommendation.

I went through the steps described here:
Build a Reference Image with Yocto Project/OpenEmbedded
using the tdx-reference-multimedia-image.

Now that I have the Tezi image, how do I flash it to my module? I should mention that I would like to go back to using the tool to customize the Torizon OS image as described here:
Customize Torizon OS Images
But what I’ve noticed — and I think this will be a problem — is that the Tezi image I was previously using started with torizon-docker-verdin-imx8mp-Tezi_..., while my newly built image doesn’t include Docker.

How should I handle this? Is there any reference image similar to tdx-reference-multimedia-image but with Docker included?

Thanks a lot!

Hey, @jpciciarelli,

It seems that you are confused about the concepts regarding our BSP and Torizon.

What you have build is our Reference Multimedia Image, it is an image that includes our Board Support Package (BSP) and is compatible with your board. It is a simple Linux image that just boots and includes packages for multimedia (graphics, audio, etc) and basic functionality. This image is to be used either for testing our BSP or for building your own Yocto builds on top of it. It is not a Torizon image and does not include Docker, our BSP is part of the stack of layers used to build Torizon. This is an important concept to understand if you are going to modify your images, I suggest reading about our BSP Layers and how they differ from Torizon.

If you want to build a Torizon image with docker included, you should follow our article on how to Build Torizon OS from Source With Yocto, and build the torizon-docker image. You can apply the kernel config the same way you did for the Reference Multimedia.

After you have built your image, you should use Toradex Easy Installer to flash it to your board. Uncompress the torizon-docker-verdin-imx8mp-Tezi_...tar file and copy it to a flash drive. Plug the drive to your board after following the article, and your image should appear as an option to be installed.

Let me know if you have any issues during the process.

Best regards,

Hello!

Thank you very much for your help, I was able to create a custom Torizon OS image by following the guide from this link:

Build Torizon OS from Source With Yocto Project/OpenEmbedded

What I did to enable the CONFIG_SND_SEQUENCER module was to follow the guide:

Custom Meta Layers, Recipes and Images in Yocto Project (hello-world Examples)

but taking into account the configuration fragments in Yocto from the post:

Modify the linux kernel with configuration fragments in Yocto

as suggested in the forum:

Kernel Configuration using Config

The Torizon OS image worked correctly with the sequencer module enabled by default, loading the tar image with a USB and first entering recovery mode as explained in the link:

Loading Toradex Easy Installer

Then I customized the image following the guide:

Customize Torizon OS Images

Everything worked properly and now I can develop my application using the tools provided by the Torizon IDE VS Code extension.

Thank you very much!

Hey, @jpciciarelli,

Thanks for reporting back, I’m glad you managed to set the config! I’ll be marking the procedure you followed as the solution. Let me know if you find any further issues.

Best regards,