在Kernel內掛載+分割Flash空間 (使用mtd block)

我的作法是:

1. Tftp Kernel: tftpboot $(loadaddr) vmlinux.64


2. 直接bootocteon開機,並在後面加入mtd的參數:
bootoctlinux $(loadaddr) mtdparts=phys_mapped_flash:640k(bootloader)ro,9M(kernel),20M(rootfs),2M(AppConfig),128k(bootload-env),128k(MD),128k(ENV)


3. 到kernel內去cat /proc/mtd,就可以看到Flash被分為了幾塊區域:
cat /proc/mtd
dev:  size  erasesize  name
mtd0: 000a0000 00020000 "bootloader"
mtd1: 00900000 00020000 "kernel"
mtd2: 01400000 00020000 "rootfs"
mtd3: 00200000 00020000 "AppConfig"
mtd4: 00020000 00020000 "bootload-env"
mtd5: 00020000 00020000 "MD"
mtd6: 00020000 00020000 "ENV"

4. 我們選擇拿第四塊來當實驗品:
mke2fs /dev/mtdblock4

5. Mount起來,並在裡面寫資料:
mount /dev/mtdblock4 /mnt

6. 記得要做Sync,或者是umount它,這樣資料才會寫進去喔:
sync
umount /mnt


重開機之後,如果沒問題的話,再重新掛載一次就可以看到剛剛寫入的資料了。

留言

張貼留言

這個網誌中的熱門文章

How to use ebtables: ebtable 的小筆記

解決 VirtualBox 無法開啟 NS_ERROR_FAILURE (0x80004005)