On 12/9/20 10:22 am, bob via People wrote:

Hello,

 

I am interested using Audio Injector soundcard with NVIDIA Jetson Nano Development Board.

 

Can the Ultra 2 Soundcard work for the Jetson Nano, of which shares similar ARM platform as Raspberry Pi?

Most definately - I would imagine that all the soundcards will work with that platform as it's GPIO pins match the specification of the Pi.


 

Compiling the soundcard driver available for Jetson Nano?


The Ultra 2 is a nice one for you to use. It doesn't have a machine driver, it only uses a device tree overlay file. Have a look here :

https://github.com/raspberrypi/linux/blob/rpi-5.4.y/arch/arm/boot/dts/overlays/audioinjector-ultra-overlay.dts

The only hardware dependency is the reset gpio which has to be specified correctly on the NVIDIA Jetson Nano. Have a look at its specification for the Pi here :

https://github.com/raspberrypi/linux/blob/rpi-5.4.y/arch/arm/boot/dts/overlays/audioinjector-ultra-overlay.dts#L26

From here : https://www.jetsonhacks.com/nvidia-jetson-nano-j41-header-pinout/

It appears that the NVIDIA Jetsons's equivalent pin (29) maps to gpio149.

Does the Jetson use device tree overlays ? If not then you would need to either create a custom device tree for booting OR write a device tree overlay which you can manually load AND OR write a machine driver.

Another idea is to use the Isolated soundcard. This one has its device tree here :

https://github.com/raspberrypi/linux/blob/rpi-5.4.y/arch/arm/boot/dts/overlays/audioinjector-isolated-soundcard-overlay.dts

and its machine driver here :

https://github.com/raspberrypi/linux/blob/rpi-5.4.y/sound/soc/bcm/audioinjector-isolated-soundcard.c

It also has a dependency on the same GPIO pin for reset. Otherwise it has some funk in the machine driver for controlling mute. I would imagine you could look at how they do Jetson ALSA machine drivers in some examples in their kernel (linux/sound/soc/jetson or whatever) and mimic that by adapting the isolated machine driver.

I notice that there is some info about building external kernel modules which they provide :

https://docs.nvidia.com/jetson/l4t/#page/Tegra%2520Linux%2520Driver%2520Package%2520Development%2520Guide%2Fkernel_custom.html%23wwpID0E0PB0HA

This means that you can host your own git repo which is specifically for building an ALSA machine driver which is outside their kernel. It means you can manage it and just compile that kernel externally in a far more simple fashion - then run it on the image they provide out of the box.

Oh - also - perhaps you can craft a device tree overlay which you load manually once the system has booted up ... this means that you could develop like this :

* Create a device tree, build and then test it on the jetson. Debug it like that.

* If you need to load a kernel ALSA machine driver, compile it and use modprobe / rmmod to develop it on the jetson and debug it on the jetson.

If it were me, I would probably develop locally on my desktop/laptop and use scp/ssh to get code over to the jetson and test load/run it there ... probably better then writing code in ssh or otherwise on the jetson itself.

 

Would any other Audio Injector soundcard better choice for the Jetson Nano?


I think they all have the same challenge of making them work on the jetson, except the ultra which only uses the device tree overlay (i.e. no ALSA machine driver) which would slightly simplify things. Ultimately I guess it depends on what audio features you want for your projects.


 

Thank you,

Bob


Any time - keep hitting the list with updates and if you have questions - those too !

Matt


 

 

 

 



    
-- 
Join the community discussion forum :
https://lists.audioinjector.net/mailman/listinfo/people