I have been trying to use the jeson-io.py script to enable I2S (pins 12, 35, 38 & 40 of the 40 pin GPIO header). To do it I go to the “manual configuration” menu and select i2s, then I reboot the system. During the startup I get the option to choose between the two kernels, the “default” one and the “custom one”, which is one with the modified device tree. No matter which one I select (custom one is the new default selection) the board does not boot; at most it gets stuck in a blinking underscore. The only way I can get it to boot again is by following"Device Manager → NVIDIA Configuration → L4T Configuration → OS chain A status → (The value is Unbootable if UEFI attemps recovery kernel) choose Normal → Save and exit, reboot, UEFI will try Direct Boot." and flashing a fresh new Jetpack install in my SD card,
The borad is the Jetson Orin Nano devkit 8GB. I have tried Jetpack 6.0, 6.1 and 5.1.3 and I am booting from a 64GB micro-SD card.
Yes, indeed the 6.1 image comes with I2C routed by default, however note that I am refering to I2S. This is the (6.1) image link >> then “Jetson Orin nano Developer Kit” >> Jetson Orin Nano.
For that you will need to create an overlay. So far the instructions in the manuals lead to nowhere. This appears to be an issue that Nvidia is going to have to provide more clarity on regarding building non-trival overlays. The manual has different stories in multiple places. Using the DTC example fails by default because you need to link to tegra-gpio.h and DTC does not link, so I use cpp and did a manual pointing to the .h The content from pinmux spread sheet is not in overlay format…
We are stuck in the mud too trying to get control of gpio header pins.
No problem, thanks for your answer. The jetson-io script was pointed from various documentation sources but apparently a lot of people compain about it not working… Lets hope we get some workaround or fix.
The needed files are actually missing from key functions. I live in a zero trust world and so many things smell, I hope this is just an oversight on their part. Other than this we like the board/SoC but it needs to do more than an i2c port…
If that is the case (other than the fact it obviously does not work) I will give up using it to try to configure the device tree. This promised to be a quick and easy way but I will have to try writing the overlay directly, but even for that the documentation is scarce and not very straightforward. Changing the pinmux shoudl not be that difficult…
I don’t know what is actually going on, stuff references MB1 bootloader. Then a trival overlay example using DTC overlays, then dropping the 3 files into into Linux_for_Tegra directories and that did not work.
The spreadsheet generates a massive pinmux file, that to me seems like more is going on that I don’t understand. 6.1 rev1 is burning on a sd card, trying that. If that does not work then 5.x will go on the sd card. If that does not work this board is out. It did extremely well up until this point.
I wiped out everything and started over to rule out something I might have done to break some of this.
Only thing I can see at this point is your on a different version of hw or 6.1?? No reason why this would not work if both systems are running the same. My board does boot, its the jetson-io.py that breaks and will not launch. It never will launch on my board because several of the modules failed to install on the target. They are in the BSP in the sdkmanager download.
What version of sdkmanager are you running, it seems like that might be the problem. Not so much jp6.1. That might also be why the 3 overlay files are not being picked up and placed on the MB1.
sdkmanager that is on the 22.04 box is version 2.2.0.12021
After attempting the process again, it keeps failing. Below I attatch two serial log captures: a “normal booting”, which I captured after a fresh Jetpack 6.1 install, and a capture just after rebooting the jetson after changing the pinmux as stated in your answer:
Note that I was not able to check /boot/extlinux/extlinux.conf since the board is not booting correctly, please let me know if I am missing something or there are further checks I can do.
Suspect the bootloader is not matching the image. I have been bouncing between 6 and 5 and use the sdk manager. Might try using sdkmanager and see what happens.
I don’t know if this is even close, but I just made a mess trying to create flash.sh to move the kernel over to the target. Suspect something got messed up during the botched flash. Well, make a long story short tried to reflash and it would not boot after that. Went into sdkmanger and it was breaking. What I did was pull NVMe and made it blank, then it would boot after a fresh flash. Not sure what happened, I don’t believe the script wipes the drive and assumes it is blank when starting out. So, maybe wipe your media and try the flasher script from the manual.
Your command of l4t_initrd_flash.sh will format and re-partition the disk, which is expected.
If you are using the devkit, we would strongly suggest you reflashing it with SDK manager in case the error is caused from any customization.
I have attempted to repeat the procedure making sure the downloaded version has no “DP” in it (Jetpack 6.1), however, It still does not work. Could you please provide me the link to the correct version since the one I downloaded from the download page appears to be wrong .
Still aparently that is not the issue since other people are having the same issue with different versions. However, I would love to try your suggestion, but downloading a version without “DP” in the name apparently is not enough to avoid a developer preview; please could you kindly point me to the download page for the correct version (with a specific link or instructions)?
Below I attach the new logs (which are of the same Jepack version), as well as an additional log after setting the booting mode to “normal” after having used jetso-io.py