USB和SD同步、亂碼、空間大小
最近解了一些bug,記錄一下。
1.同步問題
在USB裡增加刪除修改檔案了,samba/ftp裡不能同步,實際上是掛載問題。
SD分割槽如下:
mmcblk0: 是mmc介面0(有些系統有多個SD卡介面的)
mmcblk0p1:是mmc介面0下的第一個分割槽
mmcblk0p2:是mmc介面0下的第二個分割槽
那麼將USB的掛載改成跟samba/ftp的掛載分割槽一致即可,即mmcblk0p1
在終端簡單驗證:
echo "" > /sys/devices/platform/msm_hsusb/gadget/lun0/file echo "/dev/mmcblk0p1" > /sys/devices/platform/msm_hsusb/gadget/lun0/file
驅動裡修改:kernel\drivers\usb\gadget\android.c,
2.中文亂碼
USB裡建立的中文在ftp/samba 裡檢視時亂碼。
用iconv -l檢視,似乎是支援UTF8的,locale -a/locale charmap也沒看出來什麼。
瞭解到;UTF-8是unicode的一種表達方式,gb2312是和unicode都是字元的編碼方式.
ANSI: 無格式定義;
Unicode: 前兩個位元組為FFFE;
Unicode big endian: 前兩位元組為FEFF;
UTF-8: 前兩位元組為EFBB;
那麼實際上很簡單了,重新掛載:
mount -o iocharset=utf8 /dev/mmcblk0p1 /media/card
掛不上?
那麼就是系統不支援utf8了。
增加即可,如;
CONFIG_NLS_UTF8=y
CONFIG_NLS=y
另外開機掛載的檔案也要修改,在etc/fstab裡;
/dev/mmcblk0p1 /media/card vfat defaults,iocharset=utf8,umask=000
OK,亂碼解決了。
說一下utf8的檔案在\fs\nls\裡,記得修改Makefile
3.獲取空間大小
在終端裡,有兩個命令可以獲取空間大小
如:df /media/card 和 du -hs /media/card
du是讀每個檔案然後統計大小,花時間多,但是比較適時
df是直接讀磁碟,時間少,但是USB和SD卡同時開啟的話,檔案更新不同步。
解決方法是:usb和sd卡不能同時開啟,並且每次切換的時候解除安裝再掛載。
4.檔案下載
在goahead裡跟attachment有關。
這幾天csdn不能建立新文章,前幾天想總結的東西,現在都記不住了,這篇就此打住了。