At first, the jetson-io.py only blinks and gone. I manage to fixed it after change the curses.resizeterm(height, width) to curses.resize_term(height, width) in jetson-io.py. Only to get
FATAL ERROR!
No DTB found for NVIDIA Jetson Nano Developer Kit!
Press any key to terminate
After tracing it, I found that I only have kernel_tegra210-p3448-0000-p3449-0000-b00.dtb on my /boot/dtb directory which probably not compatible with my Jetson Nano A02 device.
What should I do?
I even have the tegra210-p3448-0000-p3449-0000-a02-respeaker-4-mic-array.dtbo in my /boot/ directory.
Jetson-IO tools does necessary pinmux configuration and DT setup. It does not cover adding of codec driver and enabling compilation and setting mixer controls.
Guide for integrating respeaker 4-mic circular array is available here. Since you are having issues with Jetson-IO GUI tool, use this guide as it uses Jetson-IO command line tool.
Also, please share cat /proc/device-tree/compatible and cat /proc/device-tree/model from your board. I would like to check the issue with Jetson-IO GUI.
I found tegra210-p3448-0000-p3449-0000-a02.dtb on my /boot/ directory and copy it to /boot/dtb/ which solve the No DTB found for NVIDIA Jetson Nano Developer Kit!. Is it safe to use it to configure the pinmux and DT setup?
Sorry I got a little confused here.
So after reading the Respeaker 4 Mic Array Integration Guide, I assume that I need to modify the kernel, build it, and flash the new kernel.
Followed by enable the codec based on the Codec Integration Guide.
Am I correct?
Also where I can find the Codec directory for kernel 32.7.1?
But before that, did you try the command line methos that i suggested in the Respeaker code integration guide?
Sorry I got a little confused here.
So after reading the Respeaker 4 Mic Array Integration Guide, I assume that I need to modify the kernel, build it, and flash the new kernel.
Followed by enable the codec based on the Codec Integration Guide.
Am I correct?
Yes you are right, you need to modify kernel DTB, kernel image, reflash both and follow rest of the steps as mentioned
Which command line method did you mean?
The sudo /opt/nvidia/jetson-io/config-by-function.py -o dtb i2s1 in Respeaker 4 Mic Integration Guide?
Also that guide uses kernel 32.3.1, while I use kernel 32.7.1. And the Linux_for_Tegra/source/public/kernel/kernel-4.9/sound/soc/codecs/ directory in kernel 32.3.1 is not exist in kernel 32.7.1.
and I could see this path available after untaring necessary packages
Linux_for_Tegra/source/public/kernel/kernel-4.9/sound/soc/codecs. Please re-check at your end.
32.3.1 and 32.7.1 share Linux kernel 4.9 version. So there may not be major differences
Which command line method did you mean?
The `sudo /opt/nvidia/jetson-io/config-by-function.py -o dtb i2s1` in [Respeaker 4 Mic Integration Guide](https://github.com/AshaTalambedu/seeed-voicecard/blob/jetson-respeaker-4mic-array-compatible/README-jetson)?
Oh you’re right, there’s a problem with my kernel source copy. I’ve found the codecs directory.
For the sudo /opt/nvidia/jetson-io/config-by-function.py -o dtb i2s1 command line, I haven’t run it. Isn’t it’s the same as enabling respeaker module using jetson-io.py?
Also in the Codec Integration Guide, the example is enabling the SGTL5000 codec by adding select SND_SOC_SGTL5000 in Linux_for_Tegra/source/public/kernel/nvidia/sound/soc/tegra-alt/Kconfig b/sound/soc/tegra-alt/Kconfig. But what should I add for Respeaker Codec? Is it select SND_SOC_AC108_CODEC?
sudo /opt/nvidia/jetson-io/config-by-function.py -o dtb i2s1 is different from applying respeaker overlay. respeaker ovelay also has sound node and i2c node changes in addition. Above command is just for pinmux part.
Yes, codec integration guide is provided for a sample reference codec so that it can be used as a reference while integrating other codecs.
For respeaker, we have provided reference again. Suggest you to go through provided Codec integration guide and github README to understand the overall procedure