嵌入式根文件系统制作
构建一个最基本的嵌入式根文件系统,只是为了让Linux能够正常启动,根文件系统是yaffs2的根文件系统 1.创建根文件系统的目录结构 mkdir rootfs cd rootfs mkdir bin dev etc lib mnt proc sbin sys?tmp usr var mkdir usr/bin usr/lib usr/sbin lib/modules? 2.创建设备文件 cd dev/ mknod -m 666 console c 5 1 mknod -m 666 null c 1 3 3.编写etc目录下的配置文件 cd etc touch fstab fstab文件内容 proc /proc proc defaults 0 0 none /tmp ramfs defaults 0 0 mdev /dev ramfs defaults 0 0 sysfs /sys sysfs defaults 0 0 touch inittab inittab文件内容 console::sysinit:/etc/init.d/rcS ::respawn:-bin/sh ::restart:/sbin/init ::ctrlaltdel:/bin/umount -a -r ::shutdown:/bin/umount -a -r ::shutdown:/sbin/swapoff –a mkdir init.d cd init.d touch rcS rcS文件内容 #!/bin/sh export PATH=/sbin:/bin:/usr/sbin:/usr/bin /bin/mount -a echo /sbin/mdev > proc/sys/kernel/hotplug mdev –s 4.配置编译busybox (1)修改busybox根目录下的Makefile CROSS_COMPILE ?=arm-linux-????//164行 ARCH ?= arm???????????????????// 189行 (2)使用make menuconfig配置busybox,这只是一个简单的配置,还可裁减,去掉不用的命令 Busybox Settings??--->? ???????Build Options??---> ??????????????[*] Build BusyBox as a static binary (no shared libs)? ??????????????(arm-linux-) Cross Compiler prefix ???????Installation Options??--->? ??????????????[*] Don't use /usr?? ??????????????(/arm/linux/rootfs) BusyBox installation prefix? Linux System Utilities??--->? ???????[*] mdev? ??????????????[*]???Support /etc/mdev.conf? 其它的暂时采用默认的配置 5.编译安装busybox make make install 这样在rootfs目录下会生成bin、sbin、usr和文件linuxrc的内容 6.制作yaffs2根文件系统映像文件 采用的是国嵌的制作yaffs2文件系统映像工具 ./mkyaffs2image rootfs rootfs.img 最基本的yaffs2根文件系统制作完毕 将rootfs.img烧写到nand flash中,系统就可以启动起来 ? 注意:1.要u-boot支持yaffs2根文件系统烧写,即采用nand write.yaffs2命令来烧写yaffs2根文件系统,不能直接采用nand write来烧写,不然系统读不出来yaffs2根文件系统内容 2.nand flash最小写入单位是按页写,所以烧写的时候注意地址必须是页的整数倍 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |