Random logouts on L4T 19.3 on TK1

I set up my Jetson TK1 using a basic guide for flashing L4T 19.3 with the Grinch custom kernel (I needed the drivers for my wireless card from there). I had read that Ubuntu 16.04 had Tegra support, and since I had already put a hold on the xserver packages, using:

sudo apt-mark hold xserver-xorg-core

I wasn’t too worried that upgrading from 14.04 would be much of a problem. The upgrade didn’t seem to damage my system as far is being able to run properly on the Jetson, but now whenever I do anything that involves basic GUI applications (like opening multiple windows in Gedit, for some reason), the system freezes for a second, then goes back to the login screen. When I log back in, to my dismay, everything I had open is now gone. I don’t think this is just a performance/hardware issue, because I not only do I have a SSD holding my root filesystem, but I also have a 4GiB swap partition that I use to boost the Jetson’s performance a bit. I also make sure the cpus are all running at max performance on boot so it doesn’t lag when loading Unity when I log in. I am wondering if anyone else has had this problem with the randomly forced logoffs on L4T, specifically on Ubuntu 16.04? My only idea that I think could work so far is to update the L4T drivers to their most recent for the TK1 (I think currently that is version 21.4), but I do not want to have to re-flash and rebuild the filesystem again.

This was an old problem which was fixed in the R21.x (R19.3 is quite old). If you use a more recent L4T (R21.5 is the most recent version) the problem should no longer exist.

How would I go about upgrading L4T? do I just need to reflash everything from scratch, or is there a way to upgrade the drivers straight from the Jetson?

You’d need to flash. The move from R19.x to R21.x is a major change. You can save a copy of the original R19.x via cloning if you want. See:
http://elinux.org/Jetson/Cloning

A root partition clone can be loopback mounted and used later to restore whatever files you want, e.g., a project in home directory.

To flash you would need a minimum of the driver package plus sample rootfs. This requires any Linux x86_64 host. If you choose to install extra packages via the JetPack installer, then you’d need an Ubuntu 14 host. See this URL for downloads:
https://developer.nvidia.com/linux-tegra-r215

Be sure to use “sudo” when unpacking any sample rootfs. Should you install via the command line flash.sh tool, you would also use sudo. Example:

# ...unpack driver package...
cd Linux_for_Tegra/rootfs
sudo tar xjfv <wherever/you/put/Tegra_Linux_Sample-Root-Filesystem_R21.5.0_armhf.tbz2>
cd ..
sudo ./apply_binaries.sh
sudo ./flash.sh -S 14580MiB jetson-tk1 mmcblk0p1

Make sure you have lots of disk space. This creates an image the size of the entire Jetson file system, plus some intermediate files (I’d suggest having 25GB of free space before starting…if you clone add an additional 16GB of free space).