Hi Jon,
Thank you for the detailed instructions!
As I see you are using a different version of the Nano dev board (I have the b00 and as I see for this board there are dtb files in the /boot directory, not dtbo files. Im not sure if this is an issue or not), so I modified you commands like this:
sudo cp /boot/tegra210-p3448-0000-p3449-0000-b00-fe-pi-audio-z-v2.dtb /boot/tegra210-p3448-0000-p3449-0000-b00-fe-pi-audio-z-v2.dtb.20201029
in the output of fdtdump, I can see it finds the string (there are 2 hits for string)
fdtdump /boot/tegra210-p3448-0000-p3449-0000-b00-fe-pi-audio-z-v2.dtb | grep nvidia,audio-routing
nvidia,audio-routing = “x Headphone”, “x HP_OUT”, “x MIC_IN”, “x Mic”, “x ADC”, “x Mic Bias”;
nvidia,audio-routing = “x Headphone Jack”, “x HPO L Playback”, “x Headphone Jack”, “x HPO R Playback”, “x IN1P”, “x Mic Jack”, “x Int Spk”, “x SPO Playback”, “x DMIC L1”, “x Int Mic”, “x DMIC L2”, “x Int Mic”, “x DMIC R1”, “x Int Mic”, “x DMIC R2”, “x Int Mic”, “y Headphone”, “y OUT”, “y IN”, “y Mic”, “a IN”, “a Mic”, “b IN”, “b Mic”;
But in the full fdtdump output it is visible that it is on a different “path” ( I will attach the output of my fdtdump), so I modified the command like this:
sudo fdtput -t s /boot/te[fdtdump_out.txt|attachment](upload://ePYEiRqSGymwtfGly45qkKWJmfR.txt) (507.0 KB) gra210-p3448-0000-p3449-0000-b00-fe-pi-audio-z-v2.dtb /fragment-e2614-common@0/overrides@9/_overlay_/ nvidia,audio-routing "x Headphone x" "HP_OUT x" "MIC_IN x" "Mic x" "ADC x" "Mic Bias x" "LINE_IN x" "Line In x" "Line Out x" "LINE_OUT"
But I get the following error:
Error at '/fragment-e2614-common@0/overrides@9/_overlay_/': FDT_ERR_NOTFOUND
Can you show an example how can I update dtb files?
Also I tried to create a custom overlay based on: Welcome — Jetson Linux<br/>Developer Guide 34.1 documentation documents “Configuring the 40-Pin Expansion Header - Creating a Simple Device Tree Overlay”
The contents of my overlay dts:
/dts-v1/;
/plugin/;
/ {
overlay-name = "Fe-Pi v2 Line In";
compatible = "nvidia,p3449-0000-b00+p3448-0000-b00";
fragment@0 {
target-path = <&tegra_sound>;
__overlay__ {
nvidia,audio-routing =
"x Headphone", "x HP_OUT",
"x MIC_IN", "x Mic",
"x ADC", "x Mic Bias",
"x LINE_IN", "x Line In",
"x Line Out", "x LINE_OUT";
};
};
};
Then I compiled it:
dtc -O dtb -o fe-pi2-linein.dtbo -@ fe-pi2-linein.dts
and moved it to the /boot directory. The config-by-hardware.py was able to list it
sudo /opt/nvidia/jetson-io/config-by-hardware.py -l
Configurations for the following hardware modules are available:
1. Adafruit SPH0645LM4H
2. FE-PI Audio Z V2
3. Fe-Pi v2 Line In
But when I try to apply it I get the following error:
sudo /opt/nvidia/jetson-io/config-by-hardware.py -n "Fe-Pi v2 Line In"
Traceback (most recent call last):
File "/opt/nvidia/jetson-io/config-by-hardware.py", line 64, in <module>
main()
File "/opt/nvidia/jetson-io/config-by-hardware.py", line 60, in main
configure_jetson(jetson, hwlist, args.name)
File "/opt/nvidia/jetson-io/config-by-hardware.py", line 38, in configure_jetson
fn = jetson.create_dtb_for_hw_addon(hw)
File "/opt/nvidia/jetson-io/Jetson/board.py", line 228, in create_dtb_for_hw_addon
dtc.overlay(self.dtb, dtb, dtbo)
File "/opt/nvidia/jetson-io/Utils/dtc.py", line 53, in overlay
raise RuntimeError("Failed to overlay %s with %s!" % (dtb, files))
RuntimeError: Failed to overlay /boot/dtb/tegra210-p3448-0000-p3449-0000-b00.dtb with /boot/fe-pi2-linein.dtbo!
Thanks!