siderolabs / talos

Talos Linux is a modern Linux distribution built for Kubernetes.
https://www.talos.dev
Mozilla Public License 2.0
6.76k stars 541 forks source link

Support SBC Nvidia Jetson Xavier NX #7124

Closed bhuism closed 1 year ago

bhuism commented 1 year ago

Please make an image for the jetson xavier nx SBC (like the nano currently)

frezbo commented 1 year ago

We don't have the hardware to test, if you have the hardware you could start looking at the existing jetson code as headstart. The basic requirements is to have upstream u-boot support for the board

remkolems commented 1 year ago

I'm utterly impressed with what I could find and learn today about Talos and Sidero Metal.

@frezbo If you want I can make, test and document the images for the AGX Xavier (16 and 32GB) and NX (8GB) development kits. I already created my own minimized NVidia OS images based upon the source code of those SBC's. Talos seems to be a far better fit for my own use cases.

Are there any other instructions or heads-up to create and make those images? Any internal procedures that you want me follow?

FYI I'm creating multiple (private; GitLab) bare metal Kubernetes clusters based upon the work of k8s at home. See https://nanne.dev/k8s-at-home-search/ and the repo's https://github.com/onedr0p/home-ops and/or https://github.com/onedr0p/flux-cluster-template

My edge cluster consists of:

bhuism commented 1 year ago

@remkolems wow, very good to hear you are excited as well, I'd love to help/test the xavier nx talos image, its a bit too close to the metal for me

remkolems commented 1 year ago

This is unfortunate. From what I'm reading so far, is that both NX and AGX doesn’t have uboot, but CBoot. However, availability of upstream u-boot support for those boards (SoC/SOM) is unknown for me at this point in time.

Sources

  1. https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/Tegra%20Linux%20Driver%20Package%20Development%20Guide/bootflow_jetson_xavier.html#
  2. https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/Tegra%20Linux%20Driver%20Package%20Development%20Guide/bootflow_jetson_nano.html#

Clear explanation https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/Tegra%20Linux%20Driver%20Package%20Development%20Guide/bootflow_jetson_xavier.html#wwpID0E0FC0HA

References

SoC

bhuism commented 1 year ago

I see, this is unfortunate

bhuism commented 1 year ago

Undoable for now

bhuism commented 1 year ago

@remkolems I do see nvidia boots uboot from cboot (on the jetson nano), does that make sense?

source: https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3251/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/bootflow_jetson_nano.html#

frezbo commented 1 year ago

This is unfortunate. From what I'm reading so far, is that both NX and AGX doesn’t have uboot, but CBoot. However, availability of upstream u-boot support for those boards (SoC/SOM) is unknown for me at this point in time.

Sources

1. https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/Tegra%20Linux%20Driver%20Package%20Development%20Guide/bootflow_jetson_xavier.html#

2. https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/Tegra%20Linux%20Driver%20Package%20Development%20Guide/bootflow_jetson_nano.html#

Clear explanation https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3261/Tegra%20Linux%20Driver%20Package%20Development%20Guide/bootflow_jetson_xavier.html#wwpID0E0FC0HA

References

* https://elinux.org/Jetson

* https://elinux.org/Jetson_AGX_Xavier

* https://elinux.org/Jetson_Xavier_NX

* https://developer.nvidia.com/embedded/jetson-linux

* https://en.wikichip.org/wiki/nvidia/tegra/xavier

SoC

* Nano == Maxwell = Tegra210

* Xavier == Volta = Tegra194

* Orin == Ampere =Tegra234

We've some long term plans to move most SBC's as a separate community project. This would mean a specific implementation is not dependant on u-boot and can use the native boot method supported by it. Raspberry Pi probably would be the only officially supported SBC (since they have guarantees on hardware and software support)

remkolems commented 1 year ago

@remkolems I do see nvidia boots uboot from cboot (on the jetson nano), does that make sense?

source: https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3251/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/bootflow_jetson_nano.html#

The Jetson Nano (A02 and B01) is a different SBC compared to the full Jetson lineup. Nano is now EOL. Very old chip. Same chip as in the NVidia Shield TV.

We've some long term plans to move most SBC's as a separate community project. This would mean a specific implementation is not dependant on u-boot and can use the native boot method supported by it. Raspberry Pi probably would be the only officially supported SBC (since they have guarantees on hardware and software support)

Count me in as I'm utterly impressed by your initiative. I know enough. And the regular way of doing things is a serious overwhelming lot of work.

@frezbo Could you perhaps give a (source-code) heads-up what is required for starting that community project1? I do want to participate, especially around the NVidia Xavier2 and Orin SBC (supported GA is around 10 years per lineup, I don't know for the partner program3).

References

  1. https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/RM/PackageManifest.html#bootloader
  2. https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/SO/JetsonAgxXavierSeries.html
  3. https://developer.nvidia.com/embedded/jetson-partner-products?t1_hardware-solution=Full+System&t1_supported-jetson=Xavier+NX
frezbo commented 1 year ago

Could you perhaps give a (source-code) heads-up what is required for starting that community project1?

we haven't planned for this yet, probably in the Talos 1.6 release cycle (but first this needs some changes in the Talos side to support splitting out SBC code)

remkolems commented 1 year ago

Thanks for the feedback! Please keep me posted or in the loop, even if it is a year from now.