There is a new virtual filesystem for Linux systems,
MTPFS, which makes it possible to 'mount' MTP devices (as supported by libmtp) just like any other filesystem, or to be more precise, just like the Shell Extension works for MTP devices on Windows (i.e making the device accessible from either the Explorer shell or the Command line in Windows). MTPFS is a fuse module and as such has some requirements that have to be met before you can build it, you require the development packages for:
- fuse (duh!)
- glib
- gthread
- mad (libmad)
- id3tag (libid3tag)
- libmtp (duh!)
Once all the dependencies are covered, all that is left is to build the module in the usual fasion:
Code:
./configure # optionally you may define a --prefix=dir, i.e like --prefix=/usr
make
su -c make install
Here's a run of the different options and syntax (these are general fuse options):
Code:
usage: mtpfs mountpoint [options]
general options:
-o opt,[opt...] mount options
-h --help print help
-V --version print version
FUSE options:
-d -o debug enable debug output (implies -f)
-f foreground operation
-s disable multi-threaded operation
-o allow_other allow access to other users
-o allow_root allow access to root
-o nonempty allow mounts over non-empty file/dir
-o default_permissions enable permission checking by kernel
-o fsname=NAME set filesystem name
-o large_read issue large read requests (2.4 only)
-o max_read=N set maximum size of read requests
-o hard_remove immediate removal (don't hide files)
-o use_ino let filesystem set inode numbers
-o readdir_ino try to fill in d_ino in readdir
-o direct_io use direct I/O
-o kernel_cache cache files in kernel
-o [no]auto_cache enable caching based on modification times
-o umask=M set file permissions (octal)
-o uid=N set file owner
-o gid=N set file group
-o entry_timeout=T cache timeout for names (1.0s)
-o negative_timeout=T cache timeout for deleted names (0.0s)
-o attr_timeout=T cache timeout for attributes (1.0s)
-o ac_attr_timeout=T auto cache timeout for attributes (attr_timeout)
-o intr allow requests to be interrupted
-o intr_signal=NUM signal to send on interrupt (10)
-o max_write=N set maximum size of write requests
-o max_readahead=N set maximum readahead
-o async_read perform reads asynchronously (default)
-o sync_read perform reads synchronously
Remember for proper fuse operation a kernel 2.6.20 or later is recommended, as the fuse interface in older kernels is faulty and very buggy. You should be able to install the fuse libraries from your distribution's repository/media disks, or you may build it from source.
Enjoy!