Library installation failed on Xavier A: No space left on device

Hello,

I have been installing custom libraries (mostly from source), such as OpenCV, PyTorch etc. on the Xavier A. While installing OpenCV recently, the build process failed with an error: no space on device.

I did not realize that the main filesystem on Xavier A only sports 32GB of space.

After encountering this error, I rebooted the system (I shouldn’t have) and then got stuck on the login page which keeps asking for credentials (for nvidia user, ubuntu user and Guest Session) but does not let me login.

Has anyone encountered similar errors related to device storage on Xavier A/B? What should I do now to resolve these issues (a. no more device storage, b. can’t login!!)?

Thanks in advance!

Dear raul_91,

Could you connect XavierA via ssh from host pc and run “sudo dpkg --configure -a” and re-check it? Thanks.

Thanks @SteveNV for the comment. I ended up removing some unnecessary files from the system via minicom from host pc, and was able to log in on Xavier A after that.

I still have the question related to storage: how can I increase the default eMMC storage limit on the Xavier?

Thanks.

Dear raul_91,

Could you please refer to the link below for “Mass Storage Partitions Configuration”? Thanks.
https://docs.nvidia.com/drive/active/5.1.0.2L/nvvib_docs/index.html#page/DRIVE_OS_Linux_SDK_Development_Guide%2FAppendix%2Fpartition_mass_storage_config.html%23

Thanks SteveNV. I’ll refer to this link and get back to you if I have any questions.

Hello SteveNV,

I’m a bit confused on which file to modify to be able to increase the storage on a partition, and the process involved.

  1. Would it be a device (of type: sdmmc) or a partition (like usr-fs)?
  2. Do I need to modify multiple files in order to keep the allocation definitions consistent?
  3. Is there no way of extending the filesystem on the target itself (to use up a tmpfs) instead of re-flashing using the SDKM?

Any help is greatly appreciated.

Thanks!

Dear raul_91,

Can I know what OS/version is this?
If it is DRIVE SW this is very large,

  1. you should either just install DRIVE OS or
  2. delete the /usr/local/driveworks-x.y directory.
    DriveWorks is about 12 GB mostly because of the DNNs and data files (e.g., view clips)

Hi SteveNV,

I’m using DRIVE OS 5.1.0.2 with DRIVE SW 9.0. Thanks for recommending this solution. I’ll give this a shot and get back soon.

Thanks!

Thanks SteveNV. Removing /usr/local/driveworks-2.0 helped temporarily.

I’d still like to know how to modify the storage partitions to get more space. The website claims 128GB of storage but I only see 32GB.

What file should be modified to get the desired partition size? I am completely new to partition configurations and flashing, hence this link https://docs.nvidia.com/drive/active/5.1.0.2L/nvvib_docs/index.html#page/DRIVE_OS_Linux_SDK_Development_Guide%2FAppendix%2Fpartition_mass_storage_config.html%23 ended up confusing me more.

Any help is greatly appreciated. Thanks!

You can see information about storage with df command.

root@tegra-ubuntu:/usr/local/driveworks-2.0/bin# df
Filesystem      1K-blocks     Used Available Use% Mounted on
/dev/vblkdev0p1  30844660 21794880   7459832  75% /
none             24794208        0  24794208   0% /dev
tmpfs            25328576       16  25328560   1% /dev/shm
tmpfs            25328576    17520  25311056   1% /run
tmpfs                5120        0      5120   0% /run/lock
tmpfs            25328576        0  25328576   0% /sys/fs/cgroup
/dev/vblkdev2     3997376     8200   3763080   1% /storage
tmpfs             2532860       76   2532784   1% /run/user/1001
/dev/vblkdev3   165380376    60916 156895576   1% /ota/pkg_data

There is an unassigned UFS storage block of ~72 GB for each Xavier that can be mounted, and can actually be used as persistent storage.
If you ever change your storage allocation this unassigned block may shrink or go away. In any case the instructions to initialize and mount this block are

sudo fdisk /dev/vblkdev1
###############
Welcome to fdisk (util-linux 2.27.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table.
Created a new DOS disklabel with disk identifier 0x6c2adfee.

Command (m for help): n
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p
Partition number (1-4, default 1): 
First sector (2048-8388607, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-8388607, default 8388607): 
###############
sudo mkfs -t ext4 /dev/vblkdev1
sudo mkdir /mnt/ufs_mount
sudo mount /dev/vblkdev1 /mnt/ufs_mount

Thanks SteveNV! That was very helpful!

Hi SteveNV, I had a question about expanding the filesystem.

Upon entering

sudo fdisk -l

into the terminal, I get the following info for some of the disks available on the Xavier:

Disk /dev/vblkdev0: 30 GiB, 32245809152 bytes, 62980096 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes


Disk /dev/vblkdev1: 71.7 GiB, 76922486784 bytes, 18779904 sectors
Units: sectors of 1 * 4096 = 4096 bytes
Sector size (logical/physical): 4096 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes

Is there a way I can merge these two disk blocks (vblkdev0 and vblkdev1) to have a larger main filesystem?