On Sun, Jan 30, 2022 at 11:53:00PM +0300, Reco wrote:
Hi.
On Sun, Jan 30, 2022 at 03:11:36PM -0500, a wrote:
i run "ls -l", about 2G has been copied
This. Method you're using for copying files does not matter.
Whatever your phone is using instead of a proper filesystem does.
2G file size limit is typical for FAT, and chances are it's exactly what
your phone uses.
File size limit for FAT is 4GByte, not 2GByte. Clearly, if he has a
4GByte file on the phone, a 2GByte filesystem limit is not the issue.
i386 (32bit) debian can also work just fine with files of 4GByte. Where
you run into issues is if a 32bit program also uses 32bit offsets when
working with files (there is a build time option to use 64bit offsets in
32bit programs, while 64bit programs always use 64bit offsets). Probably
what is happening is that something in the chain of fuse, libmtpfs, and
jmtpfs is constraining the size of a file to 2GByte because it is using
a 32bit offset where it needs a 64bit one. Using the amd64 version of
debian will avoid that issue (and is better in essentially all real
cases when possible). It may be possible to find and fix whatever is
causing the 32bit version to fail, but the number of people trying to
open files > 2GByte via mtp on i386 debian is probably really, reallly
small so there's probably not a large pool of people willing to dig into
that. (And if the program is trying to mmap the file, it will never work
for large files on i386 because there isn't enough address space.)
The OP might try go-mtpfs as an alternative to jmtpfs, both on i386 to
see if it avoids the 2GByte limit, as well as on amd64 to see if it
performs better. I bounce between jmtpfs and go-mtpfs, with each
sometimes working better and sometimes working worse.