NetBSD on the Nano

I was disappointed to hear NV have no plans to release a Ubuntu 20.04 (or 22.04…) Jetpack for the Nano so where do Nano users turn when they want newer software than is offered by JetPack?

Armbian has limited support for the Jetson Nano now but I couldn’t get a flicker free display.

Another option may be NetBSD but maybe Nano users will be required to build it from source to boot it because I’ve tried the NetBSD 9.2 evbarm-aarch64 image and it wouldn’t boot for me:

https://mirror.isoc.org.il/pub/netbsd/NetBSD-9.2/evbarm-aarch64/binary/gzimg/arm64.img.gz

This post hints at an alternate .dtb (tegra210-p3450-0000.dtb) for Tegra X1 based machines that doesn’t seem to be included with NetBSD 9.2 evbarm-aarch64

http://mail-index.netbsd.org/port-arm/2020/01/31/msg006479.html

Here’s what’s supposedly supported:

https://wiki.netbsd.org/ports/evbarm/tegra/

Has anyone here successfully booted NetBSD on a Nano? How?

Hi @allcoms,

Refer this:

That confirms that the Nano won’t be getting a 20.04 based Jetpack.

I have found out a little bit more about how to run NetBSD on the Jetson Nano although I’ve not been successful in getting it to boot yet. I’m pretty confident that several members of this forum who are more familiar with the Jetson platform will be able to get NetBSD to boot from what I present here, if they find the time to try. It would be cool to have a totally different OS and kernel to experiment with on the Nano, right?

The most important point to note is that the dtb for the Nano is only contained in the NetBSD CURRENT arm64 installation images, not the 9.X ones.

There are two arm64 images available for NetBSD current - arm64.img.gz and arm64mbr.img.gz . I am presuming arm64.img.gz is the UEFI version which I don’t think we can use on the Nano but thats just me guessing.

Download the image: (see NetBSD mirrors for more download sites)

http://nyftp.netbsd.org/pub/NetBSD-daily/HEAD/latest/evbarm-aarch64/binary/gzimg/

I’m told we can’t expect that to boot by simply burning the image onto an SD card, we must also install the correct u-boot for the Nano such as:

http://cdn.netbsd.org/pub/pkgsrc/packages/NetBSD/aarch64/9.0_2021Q2/All/u-boot-jetson-nano-2020.04.tgz

This u-boot tarball contains two files - u-boot which is about 7 MB and u-boot-dtb.bin which is about 600 K. I have tried dd’ing both onto the arm64mbr image, one at a time and reflashing before trying the next using a command like:

dd if=u-boot of=/dev/*disk* seek=64 conv=sync

but neither booted. I also tried copying u-boot-dtb.bin into a few dirs on the boot partition - in the root dir, in the DTB dir and in DTB/Nvidia with no luck.

I suspect that I’m not doing the right thing by dd’ing u-boot and that those who have done L4T installs will be able to tell me what it is I need to do with these 2 u-boot files. I’ve only ever used the pre-built Jetpack images on my Nano so I’m unfamiliar with the boot process and low level install processes of the Jetson boards.

I’d not really tried using NetBSD as a desktop until yesterday and I’m impressed! I still haven’t got it to boot on the Nano yet so I tried it on an old i7 desktop I have. I was able to quickly and easily install all of the same software that I use under Linux.

My test machine had a NVIDIA (1050Ti) GPU, connected to a 4K HDMI display. Under the NetBSD 9.2 kernel I was unable to output an image above 1080p but upgrading to NetBSD current enabled 4K output. I am able to play 4K videos smoothly under mpv without installing any gpu firmware blobs and Youtube playback under Firefox also worked nicely full screen.

Advantages of NetBSD over Linux:

Simpler, more lean system than most modern Linux distros. This works for me as I’m a fan of lightweight software.

Legal ZFS support as standard. You just need to enable it in /etc/rc.conf. The netbsd installer currently doesn’t support installing to ZFS but its in the works. I’m a big fan of ZFS.

Supports more platforms than Linux, its fantastic for retro computer enthusiasts who want to run the same OS on everything.

You have a much better chance of understanding and influencing the NetBSD kernel and its devs versus the Linux kernel.

Did someone say “no systemd”?

Downsides:

We all know Linux has took over the world and so it obviously has more software and supports more hardware than NetBSD but if NetBSD supports your hardware and runs your apps its worth giving it a go.

One sticking point for me right now is there isn’t a good GUI WiFi manager for NetBSD but I’m looking to get networkmgr (from ghostbsd) running under NetBSD:

https://github.com/ghostbsd/networkmgr/issues/80

Very Impressed!
I met BSD very long time ago, but that was all.
After the short chance, I’ve never have a chance to use that.

Then BSD on the Jetson Nano?
Sounds great and worry about compatibility meanwhile.
CUDA and related many SDKs.

I will update this thread if I ever get it booting on the nano.

As you correctly say, NetBSD is no use if you need CUDA or full GPU acceleration for 3D graphics, AI/ML etc. There are no proper NVIDIA drivers for NetBSD on amd64 but they do support its cousin FreeBSD.

I’ve found another shortcoming for my uses and that is NetBSD currently has no support for USB audio (UAC/ADC) 2.0 standard so I ccouldn’t switch to NetBSD until its sound driver situation improves. Having to manually configure wifi I could deal with but not no sound on my SBC. The NetBSD Tegra page does claim to support HDMI audio so its not entirely without sound if thats all you need.

FreeBSD has better support for USB audio devices but its Tegra support isn’t as good as NetBSDs, from what I can tell. I’ve not heard any reports of anyone getting FreeBSD to boot on a Jetson board.

arm64.img is the correct image to use for the Tegra boards.

I flashed arm64.img onto a sd card without doing anything with the u-boot files but this time I had a serial cable attached and I noticed NetBSD does start to boot but it’s kernel panics before you reach the login prompt. It fails to bring up the HDMI, at least it doesn’t work with my display.

I mistakenly presumed NetBSD had better support for the Nano than FreeBSD because it has pre-built binaries but it would seem its actually the other way around.

I’ve not been able to find any pre-built images of FreeBSD 13 for the Nano so it looks like I’d have to build it myself.

https://people.freebsd.org/~cognet/arm.html

There is a generic FreeBSD 13 arm64 image but it doesn’t boot for me:

http://ftp.freebsd.org/pub/FreeBSD/releases/arm64/aarch64/ISO-IMAGES/13.0/FreeBSD-13.0-RELEASE-arm64-aarch64-memstick.img

Hello
I would also like to have my jetson nano 2gb running netbsd. I’m going to try it too.
Greetings.

Hello, @allcoms :
I have been reading your conversation on the NetBSD mailing list and
I see that the hard work you already did.

Next weekend I will try install netbsd in my jetson nano 2gb.

Thanks for that hard work you already did.

1 Like