在tq2440板看到U盘汉字乱码问题

按照天嵌提供的文档  《天嵌科技出品-Linux移植之Step By Step_V4.5_20100605》及《移植u-boot-1.1.6到TQ2440文档》将编好的uboot 内核 文件系统烧入板子 在一切正常启动后,插入U盘,出现如下提示:

[root@EmbedSky /]# usb 1-1: new full speed USB device using s3c2410-ohci and address 2

usb 1-1: New USB device found, idVendor=1687, idProduct=3254
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: USB2.0 FlashDisk
usb 1-1: Manufacturer: Kingmax
usb 1-1: SerialNumber: A050000000000167
usb 1-1: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
scsi 0:0:0:0: Direct-Access     Kingmax  USB2.0 FlashDisk 1100 PQ: 0 ANSI: 0 CCS
sd 0:0:0:0: [sda] 7798784 512-byte hardware sectors: (3.99 GB/3.71 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Attached SCSI removable disk

FAT: utf8 is not a recommended IO charset for FAT filesystems, filesystem will be case sensitive!

进入U盘后发现有汉字乱码 :    绉绘u-boot-1.1.6鍒癟Q2440鏂囨。.pdf

上网查看说是要把内核的配置改为cp936  通过 make menuconfig  ->file systerm ->DOS FAT NT filesysterm ->(iso8859-1) Default iocharset for FAT    将括号里的改为cp936

编译下载  发现还是跟上面一样,最后发现问题出现在文件系统这边,在/etc下有个文件配置mdev.conf 里面有:

sd[a-z]*[0-9] 0:0 0660 @(mount -t vfat -o iocharset=utf8 /dev/$MDEV /udisk)
sd[a-z]*[0-9] 0:0 0660 *(umount /udisk)
mmcblk[0-9]*p[0-9] 0:0 0660 @(mount -t vfat -o iocharset=utf8 /dev/$MDEV /sddisk)
mmcblk[0-9]*p[0-9] 0:0 0660 *(umount /sddisk)

问题就是出现在这,这里设置了读取U盘和SD的文件格式,这里设置为 utf8 所以不行,将其改为 cp936  再编译 下到板子 运行 看终端输出:

[root@EmbedSky /]# usb 1-1: new full speed USB device using s3c2410-ohci and address 2
usb 1-1: New USB device found, idVendor=1687, idProduct=3254
usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
usb 1-1: Product: USB2.0 FlashDisk
usb 1-1: Manufacturer: Kingmax
usb 1-1: SerialNumber: A050000000000167
usb 1-1: configuration #1 chosen from 1 choice
scsi0 : SCSI emulation for USB Mass Storage devices
scsi 0:0:0:0: Direct-Access     Kingmax  USB2.0 FlashDisk 1100 PQ: 0 ANSI: 0 CCS
sd 0:0:0:0: [sda] 7798784 512-byte hardware sectors: (3.99 GB/3.71 GiB)
sd 0:0:0:0: [sda] Write Protect is off
sd 0:0:0:0: [sda] Assuming drive cache: write through
sd 0:0:0:0: [sda] Assuming drive cache: write through
 sda: sda1
sd 0:0:0:0: [sda] Attached SCSI removable disk

没有上面红色那条信息,进入U盘查看 不会乱码了  移植u-boot-1.1.6到TQ2440文档.pdf

同时,在文档里看到了为何天嵌设置为utf8而不是cp936:

         对于上面 “ iocharset=utf8 ” 的参数是将 U 盘或 SD 卡挂载时设置字体为 UTF8 格式(这是为了在 Qt
中查看 U 盘或 SD 卡时能够识别到中文文件或目录),而在串口终端访问 U 盘或 SD 卡时会看到中文变成
了乱码;对于习惯于使用串口终端访问开发板的客户,可以将 utf8 参数改为 cp936 ,然后就会在串口终端
看到显示正常的中文了,而此时在 Qt 中访问到的 U 盘或 SD 卡是看不到带中文的任何信息。

至此解决乱码问题了,同时注意用QT查看时记得修改这里...................................................

你可能感兴趣的:(u盘,汉字乱码,tq2440,嵌入式linux)