New to the Jetson and I have a couple questions about the basics

I’m sure that these questions have probably been asked before - or perhaps they are in the reading, and I just missed them - but I couldn’t find info on them.

  1. How critical is a Linux host machine for developing on the Jetson platform? Can you do most of the work on-board the Jetson, and get away with booting Ubuntu from a USB on a host computer when necessary? Or does it really need a dedicated environment? I seem to have the worst luck with dual booting Linux with Windows, with Windows routinely hamstringing any Linux distro that I try - and I still need Windows for some other CAD work I will be doing for this and another project
  2. Is flashing the latest Jetpack something that is recommended, or is a “if it ain’t broke, don’t fix it” philosophy a better approach here? I’m probably going to need Bluetooth or WiFi at some point (and possibly GPS if I can find the right module) and I was planning on the using the m.2 slot for this.

I’m not a complete stranger to embedded development. I’ve worked with Altium products for VHDL and an Intel Edison on an Arduino. But this will be my first rodeo for any kind of GPU development. I am planning on using the image processing and machine learning on the Jetson to enable a robot to navigate rough terrain with little human guidance.

  1. Jetson is a complete computer on its own. Unlike many embedded systems, Jetson is quite capable of compiling and building software.

Jetson arrives with L4T R19.2, which is a slightly adjusted variant of Linux Ubuntu. It’s hard to imagine not upgrading to the R21.4, which is far higher quality. To flash, you must use a Linux host (some people use VMs to do this, but it can make details more difficult).

  1. JetPack bundles just about everything you’d want for both flashing and getting software to develop CUDA type apps. Everything in JetPack is available as a separate download, so it only provides convenience and completeness without providing anything “special”. One reason some people seem to like JetPack is that not only does it provide those packages on Jetson, it also works to install similar packages on the Linux host. At minimum you want to flash the latest L4T, which can be done without JetPack and is not too difficult; if you have an Ubuntu host, you might as well use JetPack if you plan to use the host in concert with the Jetson.

The slot on the Jetson is a half-length mini-PCIe slot. Many wireless cards are available for this and work, but often extra firmware packages are needed, and perhaps a kernel module installed. I’ve heard mixed results on the bluetooth side, although researching which card you get might cut down the required work considerably.

Very helpful, thank you.

Do you suppose Ubuntu running from a flash drive will work for flashing Jetpack? I have a Flashdrive with Ubuntu (14.04, I believe) and some persistence on it, and is usually what I use when I need Linux for something.

Flash drive or hard drive won’t change anything, so long as it is formatted as linux file system like ext4. The issue you will run into is the amount of disc space you’ll need. L4T’s flash, even without all of the goodies bundled in JetPack, needs temporary space (in addition to everything else) of possibly up to twice the partition size on Jetson. Most people flash with “-S 14580MiB”, about 15GB, which creates a raw image of this size…and this stays in existence while a compressed image is built, perhaps half the size or more of the raw image. Then there is the rootfs sample itself from which that image is designed. If you already have Linux installed, and you have perhaps 30 or 40GB of free space after the flash tool and sample rootfs are installed, you’ll probably succeed.