On starting the system the audio driver loads well
[ 2.264736] sgtl5000 0-000a: sgtl5000 revision 0x11
[ 2.282082] random: fast init done
[ 2.306613] fsl-ssi-dai 2028000.ssi: No cache defaults, reading back from HW
[ 2.330644] imx-sgtl5000 sound: sgtl5000 <-> 2028000.ssi mapping ok
and creates and Alsa audio device
[ 2.568533] ALSA device list:
[ 2.573656] #0: imx6dl-colibri-sgtl5000
On accessing the audio device via Qt applications the following error occurs
fsl-ssi-dai 2028000.ssi: ASoC: can't open platform 2028000.ssi: -6
I use standard device tree with egalax touch and deactivated hdmi audio
For me the audio actually works as expected, with Boot2qt Version 2.7.3 on the Colibri iMX6DL with the Colibri Evaluation Board. I started the Qt Media Player Demo and launched a video. What did you do or how can I reproduce the error?
Where did you take the device tree from and which changes did you apply? Could you provide a
git diff of your changes and/or the device tree files? And what is the purpose of your changes?
On behalf of @eschall because there are some issues with the login:
I downloaded Yocto 2.7.3 from the Qt git archive to build the root file system.
I downloaded Kernel 4.14.159 from the Toradex git archiv and built a new kernel and device tree with the defconfig files of the board. I modified the device tree to integrate the Egalax touch and deactivate HDMI audio as we use no HDMI.
We use a board based on the Viola design. With kernel 3.14 and Angström V2.6.1 everything works fine.
Device tree files in the attachment.
I tested your devicetree files from the branch toradex_4.14-2.3.x-imx with Bsp 3.0.4 and it works fine.
Could you provide your kernel config (
zcat /proc/config.gz )?
Thanks and best regards,
On behalf of @eschall because there are still some issues with the login:
Please see the attached kernel config you asked for.
I went through the whole building again with your device tree files, your kernel-configuration and the changes I described above and I am able to play sounds actually. By the way I tested it with Colibri iMX6DL with an Iris carrier board. And to test if audio is working, I quickly installed alsa-utils-aplay with
opkg install http://feeds.toradex.com/angstrom/feeds/v2017.12/ipk/glibc/armv7at2hf-neon/base/alsa-utils-aplay_1.1.4-r0.0_armv7at2hf-neon.ipk and executed
aplay <my-wav-file> on the target. Could you maybe check again, if you missed something? I also noted all steps I did, you may want to follow them. And I attached the kernel I built which is working fine for me, you may also want to check this.
- Make sure you open a console and setup the environment properly, to be able to compile the kernel. Check https://developer.toradex.com/knowledge-base/build-u-boot-and-linux-kernel-from-source-code#Toolchain
- git clone git://git.toradex.com/linux-toradex.git -b toradex_4.14-2.0.x-imx
- delete imx6dl-colibri-eval-v3.dts, imx6dl.dtsi and imx6qdl-colibri.dtsi in arch/arm/boot/dts/ and replace them with your device tree files
- Copy your kernel configuration to the root directory of the linux-toradex repository
make nconfig to change the current kernel configuration
- Disable “SoC Audio support for i.MX boards with HDMI port” at following location: Device Drivers → Sound card support → Advanced Linux Sound Architecture → ALSA for SoC audio support → SoC Audio for Freescale CPUs
- I also had to disable the custom Linux boot logo (I guess you created a custom logo). Instead, I selected “Standard black and white Linux logo” at following location: Device Drivers → Graphics support → Bootup logo
- Exit and save with F9
- Build the kernel with
- Build the kernel modules with
make -j4 modules
- Make a zip of the kernel modules with following commands:
tar -czf ../modules.tar.gz .
- Build device tree with
- Install Qt for Device Creation Demo Image from Toradex Easy Installer (Current version with Qt 5.14.2)
- Now reboot the Colibri iMX6, stop in u-boot and execute
ums 0 mmc 0 to mount it to your computer.
- Open the detected mass-storage BOOT and replace zImage and imx6dl-colibri-eval-v3.dtb with the newly built kernel and devicetree-blob
- Eject the mass-storage on the computer, stop the u-boot command and reboot the Colibri iMX6
- Copy the modules.tar.gz to the Colibri iMX6 and execute
tar -xzf modules.tar.gz -C / on the Colibri iMX6
- Reboot the module
(Mounting the Colibri BOOT partition as mass-storage and replacing the kernel and the devicetree-blob is useful for fast testing, but as soon as it is working I would recommend to build a proper image with the correct kernel configuration using Yocto Project instead).
Hi @diego_b.tx ,
we tested on eval board, it works. The missing modules caused the issues.
Thanks for your help
First of all, let me clarify for everyone that the current Boot2Qt (built with zeus) uses the branch toradex_4.14-2.0.x-imx with kernel-version 4.14.159. (FYI @jaski.tx)
Further I was able to reproduce your issue and I think I found the root-cause. As far as I can see you disabled all HDMI options in the device tree properly, but you didn’t disable anything related in your kernel config. Therefore I disabled
CONFIG_SND_SOC_IMX_HDMI in the kernel-config. You can find it here: Device Drivers → Sound card support → Advanced Linux Sound Architecture → ALSA for SoC audio support → SoC Audio for Freescale CPUs → SoC Audio support for i.MX boards with HDMI port.
After disabling that option and replacing the kernel (including kernel modules), I was able to play audio files.
I disabled the according driver in the linux kernel but it has no effect.
To assure that the driver is diabled I enter “zcat /proc/config.gz |grep CONFIG_SND_SOC_IMX_HDMI”, it returns “CONFIG_SND_SOC_IMX_HDMI is not set”.
I disabled the SPIF driver too (in the device tree it has been disabled), same effect.
Perfect that it works. Thanks for the feedback.