Debian Jessie?

I’m planning to acquire a Jetson TK1 to replace my five-year-old do-everything home server (a Marvell Kirkwood OpenRD). This will be a headless system and I would like to purge Ubuntu and have a minimal Debian system instead.

A search of this forum turned up passing references to debian sid but not much detail on the installation process. I found this utility to create a debian netinstall image on an SD card for a number of ARM boards, including Jetson: https://github.com/RobertCNelson/netinstall
Would this be the recommended method? Anyone know if you can mount a SATA drive and start installing to it right away? Any other advice/warnings that I ought to know?

I plan to run debian stable (Jessie). My understanding is that this works as long as you don’t need X.

Also, my first order of business will be to build myself a custom kernel with all the wacky networking stuff I’ll need. Is it straightforward to unpack the L4T kernel sources on a debian system and follow the usual make-kpkg process? The “Grinch” custom kernel scares me a little because it sounds a lot like the Android ecosystem, where stuff that everyone used to do is now reduced to black magic with catchy sounding names :) But I assume this exists not because it is really hard to do, but because most Jetson users aren’t comfortable building their own?

Please warn me now if you sense naivete…

Thanks,

Mark

My feeling is that the easiest thing to do is to first flash Jetson to L4T R21.3. This gets you the latest kernel, firmware, and u-boot. Then edit /boot/extlinux/extlinux.conf and make an entry which duplicates the default entry, but has a new name. You can also then edit this duplicate entry to name a new file system root. Using this copied entry with a kernel already set up for Jetson works well, and you can test any file system you want for debian or anything else on the SD card or SATA drive this alternate entry points to.

Just make sure you have set up to use the serial port, this is how u-boot menu selection is used. Requires a null modem RS232 cable (and possibly a USB serial UART if you don’t have a DB9 connector on your host).

Grinch kernel is not android, it just puts a lot of drivers for popular devices in it, some of which had to be back-ported from newer kernels.

FYI, L4T/Ubuntu comes with “apply_binaries.sh” script which unpacks and puts some Jetson-specific files in place (useful for all kinds of hardware access), and has an option to allow you to apply the binaries to alternate rootfs. This means you could for example apply the binaries to your debian rootfs on an SD card on your host, plug it into Jetson, and boot using the alternate entry pointing at SD card. You might even have X11 work this way…not sure what would be the cause of X not working otherwise on debian, so I can’t say for sure how this would help.

If you boot up under L4T you will have file /proc/config.gz which reflects the running kernel config. You could save this somewhere else (it isn’t a real file, it goes away if not running that kernel), then use it as a starting configuration for other kernels. Beware there may be edits in the L4T kernel providing Jetson support which is not available in a mainline kernel. YMMV.

Good points from Linuxdev. I’ll just say that yes, many are using Grinch because they are not comfortable building their own. If you have ever built a kernel for an ARM system, then you can build it for Jetson as well.

IIRC, the documentation describes how the Ubuntu based rootfs is built using debootstrap. Debian provides this same tool for building root filesystems. I’ve used that for older Tegras and it’s quite straightfordward.

Also, it looks like even the X.Org on Debian might work with the next L4T release:

https://devtalk.nvidia.com/default/topic/827108/embedded-systems/new-debian-stable-quot-jessie-quot-at-jetson-/