Beta NTFS-3g

Status
Not open for further replies.
Attached is a patch to fix the problem with the web-if.

There is also another problem that a disk fails to mount if its volume label is not set. I have a fix for this too but unfortunately can not upload a new version of ntfs-3g at the moment.
 

Attachments

  • webif-patch.txt
    703 bytes · Views: 8
...
There is also another problem that a disk fails to mount if its volume label is not set. I have a fix for this too but unfortunately can not upload a new version of ntfs-3g at the moment.
The latest stable version builds on box with a few hacks:
Code:
humaxhdr# ntfs-3g --help

ntfs-3g 2017.3.23 integrated FUSE 27 - Third Generation NTFS Driver
                Configuration type 1, XATTRS are on, POSIX ACLS are off

Copyright (C) 2005-2007 Yura Pakhuchiy
Copyright (C) 2006-2009 Szabolcs Szakacsits
Copyright (C) 2007-2017 Jean-Pierre Andre
Copyright (C) 2009 Erik Larsson

Usage:    ntfs-3g [-o option[,...]] <device|image_file> <mount_point>

Options:  ro (read-only mount), windows_names, uid=, gid=,
          umask=, fmask=, dmask=, streams_interface=.
          Please see the details in the manual (type: man ntfs-3g).

Example: ntfs-3g /dev/sda1 /mnt/windows

News, support and information:  http://tuxera.com
humaxhdr#
Key issues after running configure as below:
Code:
CONFIG_SHELL=/bin/sh CPPFLAGS="-D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" CFLAGS="-std=gnu99" ./configure --prefix=/mod --build=mipsel-linux --with-gnu-ld --disable-ldscript
  • in config.status, force HAVE_MBSINIT to be unset (comment out the line D["HAVE_MBSINIT"]=" 1", since the configure script's test gets it wrong;
  • build libfuse-lite with a sigset.c that overrides the faulty (not matching the headers for MIPS) implementations of sigemptyset and sigfillset in the on-box uClibc (else segfault);
  • modify src/Makefile.in to set FUSE_USE_VERSION to 27;
  • add a definition #define FUSE_DEV "/mod/dev/fuse" (or make it use "/dev/fuse" conditionally and override the value with a new configure variable) to include/fuse-lite/fuse_common.h; modify libfuse-lite/fusermount.c, src/ntfs-3g.c and src/lowntfs-3g.c to use FUSE_DEV instead of the explicit device name string constant;
  • modify src/ntfs-3g.c and src/lowntfs-3g.c to bypass the use of /dev/misc/fuse conditional on __UCLIBC__, eg by adding and setting a configure variable (say) FUSE_DEV_OVERRIDE to be tested along with __UCLIBC__;
  • after make all, install by make install-exec exec_prefix= DESTDIR=/mod; the symlinks /mod/sbin/mount.[low]ntfs-3g need to be changed to point to /mod/bin/[low]ntfs-3g instead of /bin/[low]ntfs-3g.
Obviously I can send a dev archive to anyone interested.

The resulting [low]ntfs-3g binaries are ~ 250kb but libntfs-3g.so.88.0.0 is ~700kb, somewhat smaller than the repo version 84.

One observation is that while ntfs-3g dev node and mount.ntfs-3g dev node work, mount -t ntfs-3g dev node fails with mount: mounting dev on node failed: No such device. I don't recall if this is an issue with the repo version. It doesn't seem to be due to the helpers being in /mod/sbin instead of /sbin.
 
Status
Not open for further replies.
Back
Top