Torizon Core loads wrong sound driver for Dahlia

This has been a 5-day long journey now. I don’t know how to fix it, but at least I now know what the problem is.

The Torizon Core Portainer install does not install the correct sound driver for the Dahlia board.

From a clean install of the latest 5.5 running portainer 2.9.3

bad-dahlia-sound-card

It doesn’t even load the correct dtb

sudo fw_printenv

wrong-dtb

btw, the instructions on this page are wrong

sudo fw_setenv fdtfile 'imx8mp-verdin-wifi-dahlia.dtb'

That page has fdt_file which doesn’t give an error, but it also doesn’t work.
fdt_file

Even loading the correct dtb at boot cannot fix the problem. Only the driver for the full sized carrier board seems to be loaded.

Per the source for the correct dtb and the Dahlia doc

	sound_card: sound-card {
		compatible = "simple-audio-card";
		simple-audio-card,bitclock-master = <&dailink_master>;
		simple-audio-card,format = "i2s";
		simple-audio-card,frame-master = <&dailink_master>;
		simple-audio-card,name = "imx8mp-wm8904";
		simple-audio-card,routing =
			"Headphone Jack", "HPOUTL",
			"Headphone Jack", "HPOUTR",
			"IN2L", "Line In Jack",
			"IN2R", "Line In Jack",
			"Headphone Jack", "MICBIAS",
			"IN1L", "Headphone Jack";
		simple-audio-card,widgets =
			"Microphone", "Headphone Jack",
			"Headphone", "Headphone Jack",
			"Line", "Line In Jack";

		dailink_master: simple-audio-card,codec {
			sound-dai = <&wm8904_1a>;
			clocks = <&audiomix_clk IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1>;
		};

		simple-audio-card,cpu {
			sound-dai = <&sai1>;
		};
	};

Torizon Core/Portainer needs to install the wm8904 driver. How do I get an environment via EasyInstaller that has the correct sound driver for the Dahlia carrier board with Weston support?

This has our project stopped cold.

There is no dpkg or apt or anything in the Torizon Core/portainer world. Even if I found a debian package with an arm64 built driver I would have to hand copy files. I can do that for now, but I can’t find the package. Everything wants me to build from source. We aren’t going that far into the hardware with this project.

Toradex needs to fix Torizon Core/portainer. In the short term I need a driver and install method that I can document and verify.

Greetings @seasoned_geek

If I load the dahlia device tree I can see the correct driver loaded here:

verdin-imx8mp-06849059:~$ lsmod | grep wm8904
snd_soc_wm8904         73728  1
verdin-imx8mp-06849059:~$ cat /proc/asound/cards
 0 [imx8mpwm8904   ]: imx8mp-wm8904 - imx8mp-wm8904
                      imx8mp-wm8904
 1 [audiohdmi      ]: audio-hdmi - audio-hdmi
                      audio-hdmi

I’m running TorizonCore 5.5.0 as well. Are you positive that the system is loading the dahlia device tree?

verdin-imx8mp-06849059:~$ cat /proc/device-tree/model
Toradex Verdin iMX8M Plus WB on Dahlia Board

Best Regards,
Jeremias

This is the step I’m telling you isn’t happening. I have no doubt that you managed to get it loaded locally somehow. I don’t know what that “somehow” is, I’m just following the doc.

  1. Put board in recovery mode

  2. EasyInstaller

  3. Install Torizon Core with Demo containers

  4. SSH in and change password

  5. SSH in again

Dahlia-wrong-soundcard

If EasyInstaller isn’t smart enough to load the correct device tree for Dahlia, then I need a link to the step(s) of loading the device tree after installing via EasyInstaller.

So

If I load the dahlia device tree

That’s the step that is missing.

sudo fw_setenv fdtfile 'imx8mp-verdin-wifi-dahlia.dtb'

and a reboot doesn’t do it.

How is it you “load the dahlia device tree” in an EasyInstaller kind of world?

For everyone else who wants to know the super-secret-not-really-documented handshake for getting sound out of their Dahlia carrier board after installing via EasyInstaller

ssh into your board

sudo fw_setenv board 'dahlia-imx8mp'
sudo fw_setenv board_name 'dahlia-imx8mp'
sudo fw_setenv fdt_board 'dahlia'
sudo fw_setenv fdtfile 'imx8mp-verdin-wifi-dahlia.dtb'
sudo reboot now