It does seem that NLS_ASCII isn't important (and then I suppose it should be deprecated?), but the codepages have issues. If you look at the pages I have attached, it seems that only codepage 437 is accepted as valid when mounting a volume that is of vfat type, in my case FAT32 *). Even if I put codepage 465 as default type and have it set, I can't mount the volume. I see several problems with this, and it may or it may not be related to USB Mass Storage, but as a user I think it is. 1. If I have a FAT (12, 16, 32, 64) volume and wants to mount it in a USB environment, being hindered by an arbitrary language setting doesn't compute. 2. I remember not being able to do stuff because the config.sys and autoexec.bat files in MSDOS3.2 (and 3.3) didn't match exactly, but as this is more than a few years ago I don't think something similar should block me now with a current Linux kernel. 3. I find it to be problematic that settings in different pages when configuring a kernel build are so related that a 'bad' setting will affect the usage, but the error message I can get from the utility (mount) is very broad (read: vague). 4. When building kernels I now always use 'make menuconfig' and if there is an important relation, it would be great to be able to see that mentioned. I realize that the kernel-userspace channel is thin wrt. good information for error messages, but is that then not a somewhat larger issue to bring to the table with the powers that be? Anyway, I hope that I can eventually mount a volume on USB, regardless of what the language setting may be, because that is a second line priority if you ask me. Best regards, Peter *) When will support for exFAT (aka FAT64) be included in the kernel? Too many non-technical issues? This is not the right channel to ask about that? ________________________________ From: Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> To: Peter Rasmussen <peterleifrasmussen@xxxxxxxxx> Cc: Matthew Dharm <mdharm-usb@xxxxxxxxxxxxxxxxxx>; linux-usb@xxxxxxxxxxxxxxx Sent: Thu, June 30, 2011 10:17:08 PM Subject: Re: USB with SDHC card not recognized in 2.6.39 and 3.0rc4 On Thu, 30 Jun 2011, Peter Rasmussen wrote: > While investigating the language and codepage settings I ran into some issues > that I would like to explore further before submitting a report. > Please give me a day or two more before responding. You know, rc5 came out and > that dang dayjob keeps getting in the way. > > In my preliminary findings it does seem that I am not satisfied with the > connection eg. between the following CONFIG flags, as it doesn't seem neither > coherent nor intuitive wrt. to mounting USB/Flash Card volumes: > > CONFIG_NLS_DEFAULT > CONFIG_NLS_CODEPAGE_437 > CONFIG_NLS_CODEPAGE_850 > CONFIG_NLS_CODEPAGE_865 > CONFIG_NLS_ASCII > CONFIG_FAT_DEFAULT_IOCHARSET I checked; you don't need NLS_ASCII. You probably won't need NLS_CODEPAGE_437 if you set FAT_DEFAULT_CODEPAGE to 850 and FAT_DEFAULT_IOCHARSET correspondingly. > But then who am I, a poor user :-) > > I will let you know what I find (using usbmon and the other commands you showed > > > me) and I hope it will be useful. > Do you prefer that I continue with rc4, or would you rather prefer rc5, as it > has now come out? Either one is OK for me. You might as well use rc5. Alan Stern
Attachment:
usbmon.30rc5.no_437_codepage.out
Description: Binary data
root@kultorvet:/home/plr# uname -r 3.0.0-rc5-smp root@kultorvet:/home/plr# cat /proc/cmdline BOOT_IMAGE=3.0-rc5c ro root=1606 combined_mode=libata vt.default_utf8=0 root@kultorvet:/home/plr# zcat /proc/config.gz |egrep -e 'CONFIG_NLS_DEFAULT|CONFIG_NLS_CODEPAGE_437|CONFIG_NLS_CODEPAGE_850|CONFIG_NLS_CODEPAGE_865|CONFIG_NLS_ASCII|CONFIG_FAT_DEFAULT_IOCHARSET|CONFIG_FAT_DEFAULT_CODEPAGE' CONFIG_FAT_DEFAULT_CODEPAGE=465 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-15" CONFIG_NLS_DEFAULT="utf8" # CONFIG_NLS_CODEPAGE_437 is not set CONFIG_NLS_CODEPAGE_850=y CONFIG_NLS_CODEPAGE_865=y # CONFIG_NLS_ASCII is not set root@kultorvet:/home/plr# mount /dev/sda1 /mnt/usb mount: wrong fs type, bad option, bad superblock on /dev/sda1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so
Attachment:
usbmon.30rc5.no_437_codepage_with_ASCII.out
Description: Binary data
root@kultorvet:/home/plr# mount -t debugfs none_debugs /sys/kernel/debug root@kultorvet:/home/plr# uname -r 3.0.0-rc5-smp root@kultorvet:/home/plr# cat /proc/cmdline BOOT_IMAGE=3.0-rc5b ro root=1606 combined_mode=libata vt.default_utf8=0 root@kultorvet:/home/plr# zcat /proc/config.gz |egrep -e 'CONFIG_NLS_DEFAULT|CONFIG_NLS_CODEPAGE_437|CONFIG_NLS_CODEPAGE_850|CONFIG_NLS_CODEPAGE_865|CONFIG_NLS_ASCII|CONFIG_FAT_DEFAULT_IOCHARSET|CONFIG_FAT_DEFAULT_CODEPAGE' CONFIG_FAT_DEFAULT_CODEPAGE=465 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-15" CONFIG_NLS_DEFAULT="utf8" # CONFIG_NLS_CODEPAGE_437 is not set CONFIG_NLS_CODEPAGE_850=y CONFIG_NLS_CODEPAGE_865=y CONFIG_NLS_ASCII=y root@kultorvet:/home/plr# mount /dev/sda1 /mnt/usb mount: wrong fs type, bad option, bad superblock on /dev/sda1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so root@kultorvet:/home/plr#
Attachment:
usbmon.30rc5.with_437_codepage_with_ASCII.out
Description: Binary data
root@kultorvet:/home/plr# mount -t debugfs none_debugs /sys/kernel/debug root@kultorvet:/home/plr# uname -r 3.0.0-rc5-smp root@kultorvet:/home/plr# cat /proc/cmdline BOOT_IMAGE=3.0-rc5a ro root=1606 combined_mode=libata vt.default_utf8=0 root@kultorvet:/home/plr# zcat /proc/config.gz |egrep -e 'CONFIG_NLS_DEFAULT|CONFIG_NLS_CODEPAGE_437|CONFIG_NLS_CODEPAGE_850|CONFIG_NLS_CODEPAGE_865|CONFIG_NLS_ASCII|CONFIG_FAT_DEFAULT_IOCHARSET|CONFIG_FAT_DEFAULT_CODEPAGE' CONFIG_FAT_DEFAULT_CODEPAGE=465 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-15" CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_850=y CONFIG_NLS_CODEPAGE_865=y CONFIG_NLS_ASCII=y root@kultorvet:/home/plr# mount /dev/sda1 /mnt/usb mount: wrong fs type, bad option, bad superblock on /dev/sda1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so root@kultorvet:/home/plr#
Attachment:
usbmon.30rc5.437_codepage_default.out
Description: Binary data
root@kultorvet:/home/plr# mount -t debugfs none_debugs /sys/kernel/debug root@kultorvet:/home/plr# uname -r 3.0.0-rc5-smp root@kultorvet:/home/plr# cat /proc/cmdline auto BOOT_IMAGE=3.0-rc5 ro root=1606 combined_mode=libata vt.default_utf8=0 root@kultorvet:/home/plr# zcat /proc/config.gz |egrep -e 'CONFIG_NLS_DEFAULT|CONFIG_NLS_CODEPAGE_437|CONFIG_NLS_CODEPAGE_850|CONFIG_NLS_CODEPAGE_865|CONFIG_NLS_ASCII|CONFIG_FAT_DEFAULT_IOCHARSET|CONFIG_FAT_DEFAULT_CODEPAGE' CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-15" CONFIG_NLS_DEFAULT="utf8" CONFIG_NLS_CODEPAGE_437=y CONFIG_NLS_CODEPAGE_850=y CONFIG_NLS_CODEPAGE_865=y CONFIG_NLS_ASCII=y root@kultorvet:/home/plr# mount /dev/sda1 /mnt/usb root@kultorvet:/home/plr# mount|grep sda1 /dev/sda1 on /mnt/usb type vfat (rw) root@kultorvet:/home/plr# df /mnt/usb Filesystem 1K-blocks Used Available Use% Mounted on /dev/sda1 7763308 4 7763304 1% /mnt/usb root@kultorvet:/home/plr#
Attachment:
usbmon.30rc5.437_codepage_default_not_set.out
Description: Binary data
root@kultorvet:/home/plr# mount -t debugfs none_debugs /sys/kernel/debug root@kultorvet:/home/plr# uname -r 3.0.0-rc5-smp root@kultorvet:/home/plr# cat /proc/cmdline BOOT_IMAGE=3.0-rc5d ro root=1606 combined_mode=libata vt.default_utf8=0 root@kultorvet:/home/plr# zcat /proc/config.gz |egrep -e 'CONFIG_NLS_DEFAULT|CONFIG_NLS_CODEPAGE_437|CONFIG_NLS_CODEPAGE_850|CONFIG_NLS_CODEPAGE_865|CONFIG_NLS_ASCII|CONFIG_FAT_DEFAULT_IOCHARSET|CONFIG_FAT_DEFAULT_CODEPAGE' CONFIG_FAT_DEFAULT_CODEPAGE=437 CONFIG_FAT_DEFAULT_IOCHARSET="iso8859-15" CONFIG_NLS_DEFAULT="utf8" # CONFIG_NLS_CODEPAGE_437 is not set CONFIG_NLS_CODEPAGE_850=y CONFIG_NLS_CODEPAGE_865=y # CONFIG_NLS_ASCII is not set root@kultorvet:/home/plr# mount /dev/sda1 /mnt/usb mount: wrong fs type, bad option, bad superblock on /dev/sda1, missing codepage or helper program, or other error In some cases useful info is found in syslog - try dmesg | tail or so root@kultorvet:/home/plr# mount|grep sda1 root@kultorvet:/home/plr#