Tegra TX1 is not booting to ubuntu due to problem of unavailable space

My tx1 ran out of space and now I cant reboot to ubuntu. I tried making a live-usb to delete files from the internal disk however this did not work. When I plug the usb, nothing happens.
Can anybody please help me in this issue?

Thank you

This takes significant time, but if the system can’t boot for login (and thus you can’t remove files you don’t need), then there is one slow way to fix this without losing data. You could clone the system, mount the clone on loopback, explore and remove what you want from this image, and then flash using this edited image (which would be an exact duplicate of the original other than the files you remove while loopback mounted).

Should you want to clone the existing partition here is some info on cloning the root partition:

Note that the flash.sh app itself works for restoring if you place the clone at “bootloader/system.img” and use the “-r” option to “reuse” an image…just be very careful to not delete your only copy of the image…anything from flash.sh without the “-r” option will overwrite the system.img.

About loopback mounting from the host, here is an example:

sudo -s
mount -o loop your_clone_image.img /mnt
cd /mnt
# explore, delete stuff, so on...
umount /mnt

Thank you for your response. However I can’t see how can I clone the image using command line if I cant enter to the system.
Can you please indicate to me what should I do.
Thanks a lot!!!

Clones work in recovery mode. You do need the micro-B USB connected and the Jetson in recovery mode. Is that possible? If so, clones do not care about Linux on the Jetson. Recovery mode is a raw hardware access where Jetson becomes a custom device and the flash software understands how to manipulate that device without any operating system.

How can I set the Jetson into recovery mode ?

Hold the recovery button down as you tap the power button to turn it on if the unit was already off. If already on, then you can hold the recovery button down while you tap the reset button. With the micro-B USB connected to your host you can verify by seeing a response to this:

lsusb -d 0955:7721

The flash software (the L4T driver package) contains all of the programs you need to “reuse” an image…if you were generating an image from scratch you’d also want the “sample rootfs”. The clone takes the place of the sample rootfs in your case. Keep in mind you do need a lot of space and the process is slow because the image is about 15GB…it takes a lot of time to copy that much over USB2.

Thank you a lot for your response.
I have set the recovery mode on and executed this command on the command line of my pc.
sudo ./tegraflash.py --bl cboot.bin --applet nvtboot_recovery.bin --chip 0x21 --cmd “read APP my_backup_jetpack_231_APP.img”

I get the following error:

[ 0.0015 ] Generating RCM messages
[ 0.0025 ] tegrarcm --listrcm rcm_list.xml --chip 0x21 --download rcm nvtboot_recovery.bin 0 0
[ 0.0035 ] RCM 0 is saved as rcm_0.rcm
[ 0.0042 ] RCM 1 is saved as rcm_1.rcm
[ 0.0042 ] List of rcm files are saved in rcm_list.xml
[ 0.0042 ]
[ 0.0042 ] Signing RCM messages
[ 0.0051 ] tegrasign --key None --list rcm_list.xml --pubkeyhash pub_key.key
[ 0.0061 ] Assuming zero filled SBK key
[ 0.0124 ]
[ 0.0124 ] Copying signature to RCM mesages
[ 0.0134 ] tegrarcm --chip 0x21 --updatesig rcm_list_signed.xml
[ 0.0148 ]
[ 0.0149 ] Boot Rom communication
[ 0.0159 ] tegrarcm --chip 0x21 --rcm rcm_list_signed.xml
[ 0.0169 ] BootRom is not running
[ 0.0537 ]
[ 0.0537 ] Retrieving storage infomation
[ 0.0547 ] tegrarcm --oem platformdetails storage storage_info.bin
[ 0.0557 ] Applet version 00.01.0000
[ 0.0713 ] Saved platform info in storage_info.bin
[ 0.0728 ]
[ 0.0728 ] Reading BCT from device for further operations
[ 0.0728 ] Sending bootloader and pre-requisite binaries
[ 0.0738 ] tegrarcm --download ebt cboot.bin 0 0
[ 0.0747 ] Applet version 00.01.0000
[ 0.0993 ] File cboot.bin open failed
[ 0.0993 ] File cboot.bin open failed
[ 0.0993 ]
Error: Return value 19
Command tegrarcm --download ebt cboot.bin 0 0

Am I doing something wrong??
Thank you for your help!!

Was this done from the bootloader subdirectory of the driver package? If you’re in the wrong directory I think it complains.

Adding addtional info…I use this script…you need to edit for the Linux_for_Tegra directory as named in flash_base_dir (note that I have several versions of L4T and each is in a subdirectory with “R24.2.1/Linux_for_Tegra/” style directory naming…adjust for “version” as needed):


tstamp="$(date '+%Y-%b-%d_%a_%H-%M-%S')";

echo "Raw file at ${raw_file}";

echo "";
echo "EXECUTING: ${flash_base_dir}/bootloader/tegraflash.py --bl \"${flash_base_dir}/bootloader/cboot.bin\" --applet \"${flash_base_dir}/bootloader/nvtboot_recovery.bin\" --chip 0x21 --cmd \"read APP ${raw_file}\""

pushd "${flash_base_dir}/bootloader"
./tegraflash.py --bl cboot.bin --applet nvtboot_recovery.bin --chip 0x21 --cmd "read APP ${raw_file}"