目錄
一 工具準備
(1)工具包
(2)工具mkfs.jffs2編譯
(3)工具mkyaffs2image編譯
二 檔案系統目錄
三 編譯busybox-1.7.0
四 建立重要目錄
(1)console 和 null
(2)/etc/inittab
(3)安裝c庫
(4)製作根檔案系統
五 優化
(5)支援proc
(6)使用mount -a
(6)支援mdev 工具
mkfs.jffs2 package zlib-1.2.3.tar.gz mtd-utils-05.07.23.tar.bz2
mkyaffs2image package yaffs_source_util_large_small_page_nand.tar.bz2
tool-chain
arm-linux-gcc-3.4.5
#tar xzf zlib-1.2.3.tar.gz
#cd zlib-1.2.3
#./configure --shared --prefix=/usr
#make
#make install
error: mkfs.jffs2.c:71:21: fatal error: sys/acl.h: no such file or directory
sudo apt-get install uuid-dev libacl1-dev liblzo2-dev
#tar xjf mtd-utils-05.07.23.tar.bz2
#cd mtd-utils-05.07.23/util
#make
#make install
#tar xjf? yaffs_source_util_large_small_page_nand.tar.bz2
#cd developement_util_ok
#cd yaffs2
#cd utils
#make
#cp mkyaffs2image /usr/local/bin
#chmod +x /usr/local/bin/mkyaffs2image
mkdir ~/mini2440/rootfs/rootfs -p
vim makefile
arch ?= arm
cross_compile ?= /usr/local/bin/3.4.5/bin/arm-linux-
make
make config_prefix=~/mini2440/rootfs/rootfs install
否則報錯:
warning: unable to open an initial console.
#mkdir dev
#cd dev
#mknod console c 5 1
#mknod null c 1 3
#ls -l
顯示:crw-r--r-- 1 root root 5, 1 2015-05-06 20:39 console
crw-r--r-- 1 root root 1, 3 2015-05-06 20:40 null
表示建立成功
#cd rootfs
#mkdir etc
#vim etc/inittab
輸入:console::askfirst:-/bin/sh
#cd rootfs
#mkdir lib
#cp /usr/local/bin/3.4.5/arm-linux/lib/*.so* ~/mini2440/rootfs/rootfs/lib/ -d
#mkfs.jffs2 -n -s 2048 -e 128kib -d rootfs -o rootfs.jffs2
#mkyaffs2image rootfs rootfs.yaffs2
nfs燒錄
fs-yaffs2:
#nfs 30000000 192.168.1.133:/home/flinn/mini2440/bin/rootfs.yaffs2
#nand erase root
#nand write.yaffs 30000000 0x260000 85b540
fs-jffs2
#nfs 30000000 192.168.1.133:/home/flinn/mini2440/bin/rootfs.jffs2
#nand erase root
#nand write.jffs2 30000000 260000 $filesize
#set bootargs console=ttysac0,115200 root=/dev/mtdblock3 rootfstype=jffs2
當前不支援proc
#vim etc/inittab
console::askfirst:-/bin/sh
::sysinit:/etc/init.d/rcs
建立/etc/init.d/rcs 檔案
#mkdir /etc/init.d
#vim /etc/init.d/rcs
+mount -t proc none /proc
#chmod +x /etc/init.d/rcs
#vim /etc/init.d/rcs
#mount -t proc none /proc
mount -a
mount -a 依賴/etc/fstab
#vim /etc/fstab
+ # device mount-point type option dump fsck order
+ proc /proc proc defaults 0 0
#cd rootfs
#mkdir sys
#vim etc/fstab
+sysfs /sys sysfs defaults 0 0
+tmpfs /dev tmpfs defaults 0 0
#vim etc/init.d/rcs
mount -a
mkdir /dev/pts/
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev -s
rootfs檔案系統的建立
首先,定義兩個file system type結構 fs ramfs inode.c line284 static struct file system type ramfs fs type static struct file system type rootfs fs type ramfs fs...
建立檔案系統
作業系統通過檔案系統管理資料 磁碟建立分割槽後並不能直接被作業系統使用,還需要建立檔案系統 格式化 建立檔案系統的過程又稱為格式化 裸裝置 raw 沒有檔案系統的裝置 常見的檔案系統有 fat32 ntfs ext2 ext3 ext4 xfs hfs等 檔案系統之間的區別 日誌 支援的分割槽大小 ...
linux檔案系統基礎 rootfs的掛載過程
一 目的 本文主要講述linux3.10檔案系統初始化過程的第一階段 掛載rootfs檔案系統。rootfs是基於記憶體的檔案系統,所有操作都在記憶體中完成 也沒有實際的儲存裝置,所以不需要裝置驅動程式的參與。基於以上原因,linux在啟動階段使用rootfs檔案系統,當磁碟驅動程式和磁碟檔案系統成...