Monday, October 3, 2011

Launch File System -- command line

轉:http://phorum.study-area.org/index.php?topic=47984.0


【tmpfs 簡介】

簡單的說 tmpfs是一套以使用記憶體為基礎的檔案系統,不同於
ramdisk 的最大差別在於,ramdisk 雖也使用記憶體,但它的屬
於 Block device,使用前必須先 format(mkfs),tmpfs 使用上
就很方便囉.. 直接 mount 就可以使用了。


【tmpfs 使用確認】

啟用了「Virtual memory file system support」選項的 2.4系
列核心;這個選項在內核配置選項的「File systems」部分。

※ 建議編譯核心時,將常用的 File systems 編入模組。



  • tmpfs (do not format)

  Step 1: turn-on shm moudule (kernel module)
需確認 kernel 勾選  Virtual memory file system support (former shm fs)
  Step 2: mkdir /dev/shm/marks; touch abc.txt def.txt
  Step 3: mount --bind /dev/shm/marks /mnt/
  Step 4: ls -l /mnt/


  • jffs2 (must be block device & format) => use in flash device.

  Step 0: mkdir marks; cd /tmp/marks; touch abc.txt def.txt
  Step 1: mkfs.jffs2  --pad --big-endian --squash -n -e 16KiB -o /tmp/marks.img -d /tmp/marks
  Step 2: flash_eraseall /dev/mt
  Step 3: nandwrite /dev/mtd8 /tmp/marks.img
  Step 4: mount -t jffs2 /dev/mtdblock8 /mnt/blk8



建立 JFFS2 影像檔,及寫入 NANS Flash
1. 在主機端,建立根檔案系統的 JFFS2 影像檔,這部份在 KB9202B 的文件中,其指令如下︰

$ mkfs.jffs2 --pad=0x4000 --eraseblock=0x4000 -l --root=/usr/local/arm/target_fs -o full_fs.bin
不過我在後面要寫入 NAND 時出現錯誤,原因似乎是因為 NAND 內有 bad blocks ,而這樣的參數導致寫入失敗。(詳細原因我不懂@@)後來嘗試了另一組參數可以成功寫入,指令如下︰
$ mkfs.jffs2 -n -p --root=/usr/local/arm/target_fs -o full_fs.bin
2. 寫入 full_fs.bin 到 NAND 上

 a. 使用 nfs 掛載根檔案系統的方式,開啟 KB9202B 上的系統。
 b. 在主機端,將 full_fs.bin 複製到 /usr/local/arm/target_fs/root 內。
 c. 將跨平台編譯好的程式 flash_eraseall, nandwrite 複製到 /usr/local/arm/target_fs/root 內
 d. 進入 ARM 的 Linux 系統中,使用以下指令︰
[KB9202B] $ cd /root
[KB9202B] $ ./flash_eraseall /dev/mtd0
[KB9202B] $ ./nandwrite -f /dev/mtd0 full_fs.bin
[KB9202B] $ reboot
3. 設定 u-boot 開機參數 bootargs 如下︰
setenv bootargs console=ttyS0,115200n8 root=/dev/mtdblock0 rootfstype=jffs2 mem=64M
saveenv
reset



No comments:

Post a Comment