Direct development on Jetson Tx2 without a host

I am interested in developing on my tx2 for my tx2 but i dont know exactly where to begin i’m drawing a blank right now. Can you give me any direction in this process?

It depends on what you want to develop. In almost every case you’d still want to start by flashing the Jetson to a recent L4T release version…which requires a Linux PC (this includes using JetPack to install additional packages specific to the Jetson). Once you’ve flashed you can do things like build kernels and compile other software directly on the TX2.

Thank you I’ve realize now how vague of a question that is. I’m looking to build a kernel for the jetson tx2. I want to do this all from the the TX2 without a host i have flashed and even tried installing jetpack 3.2 onto the tx2 but i cant i want to know how to set up a building environment like i would have if i were cross compiling from host a to the jetson.

In R28.1 and newer there is nothing different in compiling a kernel natively on a Jetson versus on a PC. It’s quite fast if you enable all cores and max the clocks out. Issues from the early days had to do with needing both ARMv7 (arm32, or perhaps more correctly, ARMv8 32-bit compatibility to ARMv7) and ARMv8-a (aarch64) tools.

There is basically no setup, just install anything you need and go for it. The default compiler is fine. You probably want to add package libncurses5-dev for some of the menuconfig type options. You’ll want to download kernel source via the driver package “source_sync.sh” utility (it comes with the driver package…you can unpack this on a PC and then copy source_sync.sh to the Jetson…it has no dependencies). Download is something like:

./source_sync.sh -k tegra-l4t-r28.1

(I haven’t tried R28.2 yet)

Documents on the web and in documentation can then skip anything to do with CROSS_COMPILE or ARCH environment variables. You would probably still want to keep the orginal source pristine and set the “O=/some/where/temporary”. See the Documents download for L4T kernel customization…just skip anything naming architecture or cross compile. It would be preferable if you use a starting config from “/proc/config.gz” instead of something like tegra18_defconfig.