|
10 01 |
在嵌入式系統切換file system-以squashfs和jffs2為例作者: Joey 日期: 2008-10-01 19:44 |
因為有網友問到這個問題,所以我把它拿出來討論,熟讀LDD3(Linux Device Driver3)的朋友應該都知道Linux檔案系統和block driver之間的關係,在Linux kernel stack中,block driver負責驅動裝置上的硬體,而file system就是對block drvier下讀取和寫入的指令,所以只要能正確驅動平台上儲存裝置的block drvier,那你可以在此block driver上操作任何一種file system
為了這次的demo,必需再修改arch/arm/plat-s3c24xx/common-smdk.c這個檔案,這次把mtd partition調整為4個partition,最後一個partition放squashfs的image,修改範例如下
燒寫完kernel後開機可以從/proc/mtd中得知Linux目前mtd分割區的狀態,接下來我們用flash_eraseall把/dev/mtd3整塊抹掉,並把製作好的squashfs的image燒到/dev/mtd3,簡列步驟如下(mtd utility簡介請參考拙作JFFS2 file system-老而彌堅的檔案系統)
(1)flash_eraseall /dev/mtd3
(2)nandwrite -p /dev/mtd3 squashfs.root
燒錄完成後重新開機,修改uboot的bootargs為mem=64M console=ttySAC0 root=/dev/mtdblock3 rootfstype=squashfs,接著啟動Linux,就會發現Linux的root file system已經變為squashfs
| 如果是用nor flash的話,在erase完成後,要如何寫到mtd裡? 用 cat /tmp/squashfs.root > /dev/mtd2 這種方式可嗎? |
| /bin # cat /proc/mtd dev: size erasesize name mtd0: 00800000 00010000 "MX29LV640BBTC" mtd1: 00200000 00010000 "Kernel(2M)" mtd2: 00400000 00010000 "File System(4M)" mtd3: 00180000 00010000 "Other(1.5M)" mtd4: 00080000 00010000 "U-boot(512K)" /bin # flashcp -v /mnt/tmp/squash~1.roo /dev/mtd2 Erasing blocks: 24/24 (100%) Writing data: 10k/1500k (0%) While writing data to 0x00000000-0x00002800 on /dev/mtd2: Input/output error 請問出現Input/output error大約是那種可能? |
| 請問FS是否可在U-BOOT直接燒錄?需要做轉換嗎? |
| 我在u-boot直接把FS燒錄在mtd2對應的FLASH ADDRESS,但是仍無法mount起來,有可能是什麼原因? |
| 请问squashfs的mount速度如何? |
| 不同的filesystem mount速度都差不多,我想您應該是指"執行指令"的速度吧,使用者執行指令時,壓縮型的filesystem需要解壓縮image內的檔案供使用者存取,所以速度會比jffs2 or ext2慢,但詳細的數據我沒有.. cromfs,cramfs和squshfs速度都差不多,只有壓縮率高低的差別... |
訂閱
上一篇
返回
下一篇
標籤:


fw_printenv-control u-boot enviroment variables under linux (2009-05-12 16:35)
rpcapd與netcat-測試嵌入式系統的好工具 (2009-04-09 17:06)
udev-強大的device node管理系統 (2009-02-02 20:35)
Framebuffer兩三事-Test On QT2410 (2009-01-12 16:29)
UIO-Linux user space I/O driver (2008-12-15 14:50)
GDB-刺入bug心臟的寶劍 (2008-10-15 16:11)
Telnet daemon-RS232以外的選擇 (2008-10-03 18:57)
Linux kernel module-進入系統核心的鑰匙 (2008-09-12 14:03)
SQLite-麻雀雖小五臟俱全 (2008-09-05 14:46)