根文件系统移植.docx_第1页
根文件系统移植.docx_第2页
根文件系统移植.docx_第3页
根文件系统移植.docx_第4页
根文件系统移植.docx_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

【Step 1】根文件系统的制作1. 下载源码/downloads2. 解压源码3. 配置源码make menuconfigBusybox Settings - Build Options -* Build BusyBox as a static binary (no shared libs) Force NOMMU build Build with Large File Support (for accessing files 2 GB)(arm-hamber-linux-gnueabi-) Cross Compiler prefix() Additional CFLAGS4. 编译make5. 安装busybox默认安装路径为源码目录下的_installmake install 6. 进入到_install目录下,添加其他需要目录mkdir dev etc mnt proc var tmp sys root7. 添加库将工具链中的库拷贝到_install目录下删除lib下的所有目录.o.a .la对动态库进行瘦身以减小文件系统的大小arm-hamber-linux-gnueabi-strip lib/*注意,lib目录下默认没有写权限chmod R u+w lib8. 添加系统启动文件在etc下添加文件inittab,文件内容如下在etc下添加文件fstab,文件内容如下这里挂在的文件系统有三个proc、sysfs和tmpfs,在内核中proc和sysfs默认都支持,而tmpfs是没有支持的,需要添加tmpfs的支持修改内核配置注意,是linux内核File systems -Pseudo filesystems - * Virtual memory file system support (former shm fs)* Tmpfs POSIX Access Control Lists重新编译内核(如果这里已经选中,就不需要重新编译内核了)在etc下创建init.d目录,并在init.d下创建rcS文件,rcS文件内容为为rcS添加可执行权限:chmod +x init.d/rcS在etc下添加profile文件,文件内容为9. 设备文件创建根文件系统中有一个设备节点是必须的,在dev下创建console节点sudo mknod dev/console c 5 1【Step 2】NFS测试1. 备份rootfscp rootfs rootfs_bak -arm rootfs/* -a2. 将我们的文件系统拷贝到tftpboot目录下改名rootfs3. 设置uboot环境变量setenv bootcmd tftp 33000000 zImage; go 33000000setenv bootargsroot=nfsnfsroot=00:/home/hamber/tftpboot/rootfsinit=/linuxrcconsole=ttySAC0,115200ip=10saveenv4. 重新启动开发板,查看是否能够正常挂载,功能是否正常【Step 3】制作ramdisk文件系统通过NFS测试以后,就可以制作ramdisk文件系统了,具体如下1. 制作一个大小为8M的虚拟磁盘在tftpboot目录下dd if=/dev/zero of=initrd.img bs=1k count=8192initrd.img为8M2. 格式化这个虚拟磁盘为ext3(不支持ext4,只支持ext3、ext2)mkfs.ext3 -F initrd.img3. 在mount下面创建initrd目录作为挂载点sudo mkdir /mnt/initrd4. 将这个虚拟磁盘挂载到/mnt/initrd下注意这里的initrd.img不要和Ubuntu根目录下的initrd.img弄混了,同时initrd.img不能存放在rootfs目录中sudo mount -t ext3 -o loop initrd.img /mnt/initrd5. 将我们的文件系统写入initrd.img中将测试好的文件系统里的内容全部拷贝到/mnt/initrd目录下面sudo cp tftpboot/rootfs/* /mnt/initrd -a6. 卸载/mnt/initrdsudo umount /mnt/initrd/7. 压缩initrd.img为initrd.img.gzgzip -best -c initrd.img initrd.img.gz8. 配置内核支持RAMDISK制作完 initrd.img.gz后,需要配置内核支持RAMDISK作为启动文件系统Device DriversSCSI device support - SCSI disk supportBlock devices - RAM block device support(1)Default number of RAM disks 本来是16(8192) Default RAM disk size (kbytes)本来是4096General setup -* Initial RAM filesystem and RAM disk (initramfs/initrd)support重新编译内核9. 在u-boot命令行重新设置启动参数setenv bootcmdtftp 33000000 zImage;tftp 30800000 initrd.img.gz;go 33000000setenv bootargsroot=/dev/ram rwinit=/linuxrcinitrd=0x30800000,8Mconsole=ttySAC0,115200saveenv重新启动开发板查看能否正常启动【Step 4】制作cramfs文件系统1. cramfs文件系统镜像制作由于系统提供制作cramfs文件系统的工具,则可以利用。具体操作如下sudo mkfs.cramfs rootfs rootfs.cramfs2. 拷贝到tftpboot目录下cp rootfs.cramfs ./3. 将rootfs.cramfs烧写到nand flash的第三个分区上u-boot下执行如下命令tftp 30008000 rootfs.cramfsnand erase 500000 800000nand write 30008000 500000 8000004. 重新设置u-boot启动参数setenv bootcmd tftp 33000000 zImage; go 33000000setenv bootargsroot=/dev/mtdblock2init=/linuxrcconsole=ttySAC0,115200saveenv5. 启动开发板,测试是否成功。rootfarsight /root # ls /bin etc linuxrc sbin tmp vardev lib mnt proc test usrrootfarsight /root # mkdir testmkdir: Cannot create directory test: Read-only file system这是由cramfs文件系统决定的,cramfs格式的文件系统是只读文件系统。【Step 5】制作jffs2文件系统1. zlib的编译解压zlib-1.2.5.tar.bz2并进入zlib-1.2.5配置编译安装./configuremakesudo make install2. mtd工具编译解压mtd-snapshot-20050519.tar.bz2 并进入mtd/util编译安装makesudo make install这样我们的系统里就有了mkfs.jffs2这个工具了3. jffs2文件系统镜像制作tftpboot目录下4. jffs2文件系统烧写tftp 30008000 rootfs.jffs2nand erase 500000 800000nand write 30008000 500000

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论