4.3【根文件系统】构建根文件系统

        在Windows中由不同的盘用于存放用户数据,在Linux下也有类似的概念。同Windows的系统盘C盘一样,Linux也有用于存放内核映像文件、内核启动后的第一个程序(init())、Shell程序、以及应用程序所依赖的库等的地方,这些加起来成为根文件系统,它们存放在一个分区里,内核运行后会去挂接这个分区。Linux没有分区的概念,而是以树状结构的方式管理所有目录。

         内核如何启动一个应用程序呢?内核启动后的最后一步会去启动init()进程。在init_post()里会首先打开一个设备open(“dev/console”),sys_dup(0),sys_dup(0),这是一个初始化串口的操作,这样我们可以通过控制台看到内核输出,然后通过run_init_process()启动第一个应用程序。启动的程序由用户设置init = xxx,如果没有指定,则默认依次执行系统指定的程序,如果都没有则报错

 

创建文件

    1、跳转到/work/nfs_root/first_fs查看:cd /work/nfs_root/first_fs

    2、查看文件下的主设备号和次设备号:ls dev/console  /dev/null -l

    会查看到以下内容

crw------- 1 root root 5,1   2010-11-26-07;47 /dev/console     //c为字符设备,5为主设备号,1为次设备号

   3、创建dev目录并跳转到该目录下:mkdir dev

                                                       cd dev/

    4、执行:mknod console c 5 1  //c为字符设备,5为主设备号,1为次设备号

        如果遇到权限问题,加上sudo 即sudo mknod console c 5 1

    5、mknod console c 1  3

构造一个inittab

        mkdir etc

        vi etc/inittab

            写入:console::askfirst:-/bin/sh

 

三、拷贝C库

    1、跳转到目录:cd /work/tools/gcc-3.4.5-glibc-2.3.6/arm-linxu/lib

    2、查看文件夹下的代码:ls -l

        .a为静态库,我们只需要动态库

    3、创建目录:mkdir /work/nfs_root/first_fs/lib

    4、拷贝该文件的库到指定目录:cp *.so*  /work/nfs_root/first_fs/lib  -d

    5、查看:cd /work/nfs_root/first_fs/lib 

 

四、烧写

    (一)制作工具

            1、制作yaffs2

                    解压缩:yaffs_source_util_larger_small_page_nand.tar.bz2

                        tar xjf yaffs_source_util_larger_small_page_nand.tar.bz2

            2、解压缩得到目录:Development.util.ok

                    到该文件下:cd Development._util_ok

                                        cd yaffs2/

                                        ls

                                        cd utils

                                        pwd

                                        ls

                                        make

                                        ls -l    --------->查看编译好的工具

                                        sudo cp mkyaffs2image /user/local/bin/  ---------->将编译好的东西拷贝到指定的目录

                                        sudo chmod +x /usr/local/bin/mkyaffs2image

                    cd /work/nfs_root/

                    mkyaffs2image

                    mkyaffs2image first_fs first_fs.yaffs2

        (二)拷贝到电脑

        (三)烧写

                    进入uboot界面

                        选择 y--->Download root_yaffs image

                            打开DNW,选择需要烧写的文件

 

至此,第一个根文件系统已经弄好,

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林零七

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值