2009-11-09 07:51:55 wrong file name
Jayakumar Ananthakrishnan (INDIA)
Message: 82209
Hi All,
When I try to do fopen for a track in a pen-drive mounted using VFAT fails with Errno=2 (File doesnot exist).
Track name whose fopen fails is displayed as,
in Windows --> "Andre Rieu - Sin título 10.pcm"
in Fedora 6 --> "Andre Rieu - Sin tÃlo 10.pcm"
I enabled NLS support in Kernel settings
Thanks in advance,
Regards,
Jai
Andre Rieu - Sin título 10.pcm
QuoteReplyEditDelete
2009-11-09 08:38:19 Re: wrong file name
Robin Getz (UNITED STATES)
Message: 82210
Jai:
What does the file look like when you mount it and type "ls"?
Please don't post file that you do not own, or have copyright permissions to do so.
-Robin
QuoteReplyEditDelete
2009-11-09 09:13:40 Re: wrong file name
Jayakumar Ananthakrishnan (INDIA)
Message: 82211
Robin,
Thanks for the info regarding file posting.
When I give "ls", trackname displayed is attached as a screenshot. Since if I copy the track name from terminal to this page, track name is displayed correctly.
-jai
wrong_trackname.JPG
QuoteReplyEditDelete
2009-11-09 09:27:16 Re: wrong file name
Mike Frysinger (UNITED STATES)
Message: 82212
you're probably seeing the string under go encoding conversion. i highly doubt the C library code is broken here ... more likely you're pasting the wrong file name into the string you're putting into your source code.
it might be easier if you redirect the `ls` output to a file, transfer that to your development host, open that file in an editor, and copy & paste it to your source. that might work better in preventing encoding conversions.
QuoteReplyEditDelete
2009-11-09 09:35:12 Re: wrong file name
Jayakumar Ananthakrishnan (INDIA)
Message: 82213
Mike:
I use opendir and readdir to scan the drive to the file name, so I think this would have already avoid those encoding conversion issues
QuoteReplyEditDelete
2009-11-09 09:49:26 Re: wrong file name
Mike Frysinger (UNITED STATES)
Message: 82214
that should. did you enable the right codepages (cp) in the kernel ? simply enabling NLS support is not sufficient. review the kernel log messages (i.e. `dmesg`).
does your code work under Fedora ? what cp does Fedora use when mounting the device ?
QuoteReplyEditDelete
2009-11-09 10:33:33 Re: wrong file name
Jayakumar Ananthakrishnan (INDIA)
Message: 82215
Please find the attached dmesg after booting the kernel in which I enabled NLS.
My code is working fine in Fedora-6 (Linux host_120 2.6.18-1.2798.fc6)
I am not aware of how to find the code page when mounting. I am not sure if I enabled/ where to enable code page in kernel.
Please help. I checked the docs, but could not locate the relevant info.
dmesg_NLS_Boot.txt
QuoteReplyEditDelete
2009-11-09 13:12:46 Re: wrong file name
Mike Frysinger (UNITED STATES)
Message: 82218
that output doesnt show any mass storage device being detected let alone mounted. if you build all the cp's as modules, then the kernel will automatically load it and you can see it in `lsmod`.
there isnt any documentation specific to this issue because it isnt specific to Blackfin in any way. it operates the same under all Linux systems.
if you read the man page for `mount`, there are some vfat-specific mount options you could try like uni_xlate.
QuoteReplyEditDelete
2009-11-10 03:55:40 Re: wrong file name
Jayakumar Ananthakrishnan (INDIA)
Message: 82249
Please find the dmesg with storage device mount prints.
I built the kernel with cp for 437, 850, nls-utf8 as module. When I tried to mount the device with Codepage 850 and iocharset utf8, still my problem is not resolved.
In fedora, if I try to use the same command to mount, it is successful
mount /dev/sdc1 USB -o codepage=850,iocharset=utf8
-jai
dmesg_NLS_Boot.txt
QuoteReplyEditDelete
2009-11-10 13:20:42 Re: wrong file name
Mike Frysinger (UNITED STATES)
Message: 82256
your log is horribly mangled. whatever terminal you're using sucks, and you really should get a good one.
run `ls /mnt/usb/ | hexdump -C` and post the output so i can see the exact bytes that are being used in the filename.
you might also want to compare this with your readdir/fopen code and print out the exact bytes that readdir finds to make sure it matches.
QuoteReplyEditDelete
2009-11-12 04:52:36 Re: wrong file name
Jayakumar Ananthakrishnan (INDIA)
Message: 82306
Please find the dump log,
root: /> mount -t vfat dev/sda1 mnt/usb -o codepage=850,iocharset=utf8
FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!
root: /> ls mnt/usb |hexdump -C
00000000 74 c3 ad 74 75 6c 6f 2e 70 63 6d 0a |t..tulo.pcm.|
0000000c
root: /> umount mnt/usb/
root: />
root: /> echo "Default mount configuration codepage=850 and iocharset = io8859-1"
Default mount configuration codepage=850 and iocharset = io8859-1
root: /> mount dev/sda1 mnt/usb/
root: /> ls mnroot: /> ls mnt/uroot: /> ls mnt/usb/ |heroot: /> ls mnt/usb|hexdump -C
00000000 74 ed 74 75 6c 6f 2e 70 63 6d 0a |t.tulo.pcm.|
0000000b
root: /> umount mnt/usb/
root: /> mount dev/sda1 mnt/usb
root: /> ls mnt/usb
título.pcm
root: />
QuoteReplyEditDelete
2009-11-17 06:40:23 Re: wrong file name
Jayakumar Ananthakrishnan (INDIA)
Message: 82455
Mike,
Could you please let me know if you can make out anything from the dump?
-jai