When you download the Jetpack on the host Ubuntu machine, you also get all the driver / binary packages needed to build (or re-build) a kernel.
You can check out the source bits that are needed separately (or they may be included now, I haven’t checked.)
You can then start with “make ARCH=arm64 O=$TEGRA_KERNEL_OUT tegra_defconfig” and build and flash the kernel of your dreams! But you must use the kernel version that Nvidia specifically recommends in the jetpack, or all bets are off.
I think the correct instructions can be found by starting here:
https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/kernel_custom.html
The flash scripts have a step where they bundle in the NVIDIA non-GPL binaries into the image to be flashed, and then write them to the file system image, and then do the whole flash-over-USB thing.
There is no protection on the devkits, although the hardware does have fuses that, when configured, can be impossible to unconfigure (depending on specifics.) I highly recommend not turning them on, even for shipping hardware. People who believe their compiled software instructions are worth more than all the knowledge and experience that the engineers that made the software imbue, and thus believe someone could steal the precious family jewels by disassembling said software, will think differently. Anyway, if you don’t turn them on on your devkit, the devkit will not be protection-fused.
I have no idea which specific patches go into the NVIDIA rt kernel, but presumably you can just download and check …
How… did you build and flash those kernels to the Xavier? Those are not supported kernels from NVIDIA. (well, 4.9 is, at least if you get it from the nvidia repos – don’t know if they’re 100% upstream these days, in the past-time I seem to recall that didn’t happen very reliably.)
Did you cross-compile them from some system, using these instructions, just pulling later tags?
Did you download some binary blobs intended for some other system?
Did you use the scripts that add the appropriate board support?
There’s nothing in those kernels twiddling the nvidia-specific bits in the hardware by default.
So, if you use the nvidia “here’s how to build a kernel” instructions, and then download/apply the Xenomai patches, and if they apply cleanly and don’t use features that are unsupported on Xavier/ARM64, then that could work. More progress reports on that would be interesting!
Given that the Xavier has its own custom set of support peripherals, as well as a custom ARM core implementation, I wouldn’t hold out too much hope, though …