It seems that libmtp 1.1.16 supports UTF-16LE, but 1.1.17 is still wrong?
glibc use 2.31 version.
ARM linux:
libmtp version: 1.1.17
Listing raw device(s)
Device 0 (VID=18d1 and PID=4ee2) is a Google Inc Nexus/Pixel (MTP+ADB).
Found 1 device(s):
Google Inc: Nexus/Pixel (MTP+ADB) (18d1:4ee2) @ bus 4, dev 3
Attempting to connect device(s)
LIBMTP PANIC: Cannot open iconv() converters to/from UCS-2!
Too old stdlibc, glibc and libiconv?
Unable to open raw device 0
OK.
*#if defined(HAVE_ICONV) && defined(HAVE_LANGINFO_H)
current_params->cd_locale_to_ucs2 = iconv_open("UTF-16LE", "UTF-8");
current_params->cd_ucs2_to_locale = iconv_open("UTF-8", "UTF-16LE");
if(current_params->cd_locale_to_ucs2 == (iconv_t) -1 ||
current_params->cd_ucs2_to_locale == (iconv_t) -1) {
LIBMTP_ERROR("LIBMTP PANIC: Cannot open iconv() converters to/from UCS-2!\n"
"Too old stdlibc, glibc and libiconv?\n");
free(current_params);
free(mtp_device);
return NULL;
}
*#endif
Anonymous
This is probably not a libmtp bug.
Do you have a libmtp installation on this system where this works?
this might mean there are some iconv specific data files missing from the system.
yes, I installed libmtp-1.1.17,
iconv should be in glibc, I am using glibc version 2.31(/lib64/libc-2.31.so).
What libraries should I install to support it?
Thanks!
Hi Marcus
any update ?
Thanks
Hi Feng,
I have the same issue, I tried with downgrade to libmtp-1.1.16 but still the error.
I think that is a dependency problem.
Could you resolve It?
on my system the converters are in
/usr/lib64/gconv/UTF-16.so
/usr/lib64/gconv/UNICODE.so
can you check if you find UTF-16.so and UNICODE.so somewhere on your system?
(It is in the glibc-locale-base package here on opeNSUSE, but its probably called different for your system)