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.

Reply via email to