Can not mount usb mass storage device on TX2

Dear all,

I could not mount usb mass storage device on TX2 even though mouse and keyboard work well.
I also tried to test on TX1, usb mass storage device could mount as well.
The symptom as below image

Thanks and Best Regards,
Vu Nguyen

It is extremely likely that it is just an issue of not having the VFAT file system module. What do you see from:

zcat /proc/config.gz | grep VFAT

FYI, if you do add this, and expect to be mounting CDs or DVDs, you might also add ISO9660 at the same time. These can be built as a module.

lsmod seems to list loaded modules;

nvidia@tegra-ubuntu:~$ lsmod
Module                  Size  Used by
v4l2loopback           27811  1
fuse                   82192  3
snd_usb_audio         168080  2
snd_hwdep               7566  1 snd_usb_audio
snd_usbmidi_lib        24102  1 snd_usb_audio
bcmdhd               7441995  0
pci_tegra              61290  0
bluedroid_pm           11195  0

However, I can locate the module.

nvidia@tegra-ubuntu:~$ locate vfat.ko
/lib/modules/4.4.38-tegra/kernel/fs/fat/vfat.ko

Lets try to load it with insmod or with modprobe:

modprobe vfat
modprobe: ERROR: could not insert 'vfat': Operation not permitted
nvidia@tegra-ubuntu:~$ sudo modprobe vfat
[sudo] password for nvidia: 
nvidia@tegra-ubuntu:~$ lsmod
Module                  Size  Used by
vfat                    9891  0
fat                    56416  1 vfat
v4l2loopback           27811  1
fuse                   82192  3
snd_usb_audio         168080  2
snd_hwdep               7566  1 snd_usb_audio
snd_usbmidi_lib        24102  1 snd_usb_audio
bcmdhd               7441995  0
pci_tegra              61290  0
bluedroid_pm           11195  0

Corresponding thread found:https://devtalk.nvidia.com/default/topic/1025191/jetson-tx2/error-unknown-systemfile-type-iso9660-/

Not all features are in the format of a module…lsmod does not work for any integrated feature or driver. “/proc/config.gz” lists all CONFIGs and can differentiate between module ("=m") and integrated ("=y"). This is why I prefer to use config.gz instead of lsmod unless I already know I have the module.

I believe you will find VFAT (a Windows file system type) is not enabled by default (nor ISO9660 of a CDROM/DVD). As an alternative to building a module you could just format as ext4 instead of VFAT.

The advantage of building a feature as a module (if supported) is that you don’t have to update the kernel itself…you simply copy the module in place and run “sudo depmod -a” (then probably reboot, but you could use the “insmod” command listed above by “@Andrey1984”).

By default the return of the command is “m”, as it seems to me.

An interesting point…it is possible for vfat.ko to be there even if the kernel build originally did not produce that file. For example, I sometimes add modules instead of building a whole new kernel…and the kernel’s original config.gz only reflects what it was originally built with. It seems one would have to check both the module directory “/lib/modules/$(uname -r)/” and “/proc/config.gz” to know for sure what is available.

In terms of the original question though it seems that the simplest solution is to build the vfat.ko module…if this module existed on the original system it would have loaded on attempt to mount unless there were some other odd error.

Hi all,

Due to vfat and ntfs file system are only selected as module built so there are two ways to fix this issue:

  1. Modprobe appropriate module
  2. Rebuild kernel with vfat or/and ntfs as default enable configuration

Thanks