急求“嵌入式系统中usb储存文件名长度限制问题”

wufei_83   2008-7-17 10:28 楼主
我的系统是arm+linux2.6.14
flash文件系统是jffs2,u盘或移动硬盘是FAT32

现象是这样的,在嵌入式系统中,我在u盘或移动硬盘内建立文件时,文件名只能是8+3(文件名8个字符+扩展名3个字符),再长一点文件名后面就被~1代替;但是把u盘或者移动硬盘拿到主机(我们平时用的linux系统中)上,又可以建长文件名的文件。

请问如何解决这种文件名长度受限的问题???我想用更长的文件名。。。

回复评论 (4)

这是你的嵌入式系统的文件系统限制的。

要实现你的要求要修改嵌入式系统的文件系统。
点赞  2008-7-17 11:04
linux可以支持很多种文件系统。FAT32可以支持长文件名。
你的现象应该是linux内对FAT32支持的配置不对。

你确定加载的是FAT32而不是FAT?
点赞  2008-7-17 12:43
谢谢,各位兄台的回复,

问题解决了,shuiyan说的对,我的mount的时候是没有指定文件系统的类型的(-t),结果mount的时候,mount默认的是FAT,可能是因为我的kernel内选择了支持MSDOS fs的缘故。

现在,我只要mount的时候加上-t vfat,就可以支持长文件名了。

我还想问一下shuiyan,我在kernel内选择了:
<*> NTFS file system support
  •    NTFS write support
    怎么还是不能支持对NTFS文件系统的write了,mount了NTFS文件系统后,只能是read only,
    要怎么样才能完全的支持NTFS文件系统呢???
  • 点赞  2008-7-17 14:00
    谢谢各位的回复:)

    问题解决了,shuiyan说的对,我在mount的时候没有加-t vfat,而是mount自己默认的一种文件系统(可能是MSDOS,因为我在kernel配置中选择了支持这种文件系统),所以mount后的结果就是MSDOS FS了,文件名只能是8+3。哈哈

    解决的方法是在mount时主动指明文件系统的类型:
    mount -t vfat

    但是我还是有些迷惑,难道vfat文件系统,也可以用MSDOS FS来mount吗?如果是的话,那就是MSDOS FS能完全兼容VFAT,这好像说不过去。
    点赞  2008-7-17 17:08
    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
      写回复