1. 程式人生 > >根文件系統制作與NFS掛載

根文件系統制作與NFS掛載

restart 程序 路徑 前綴 初始化 連接 修改 文件夾 哪些

一:busybox:

  1、完整的操作系統=bootloader(u-boot)+kernel(zImage)+根文件系統。

  2、根文件系統的核心就是 各種以及系統運行配置參數(類似於linux的cd、ls、mkdir......)。

  3、根文件系統的核心文件:bin,sbin,usr,etc,lib

  4、制作嵌入式根文件系統,可以利用busybox開源的工具軟件,它集合了所有的命令

二:根文件系統制作

  1:開發板跟的軟件包理匹配的busybox工具,解壓到linux中。

  2:進行菜單配置:make menuconfig---------------進入解壓後的目錄

    a)、編譯器前綴技術分享

    b)、配置共享庫(這裏就是要掛載NFS的文件夾)---我的目錄/work/busybox-1.17.2/rootfs/                              技術分享

    c)、配置安裝路徑(可以不修改,為了你對自己文件有清晰的分類管理,建議修改)

           技術分享

    d)、配置模塊,取消掉技術分享

            然後技術分享

  3、編譯安裝文件系統:make -j8;make install -j8 ------------------進入解壓後的目錄

    1、安裝後查看生成的文件:ls /work/busybox-1.17.2/rootfs -l

      技術分享

    2、查看生成的busybox是否是arm架構的程序:

      file /work/busybox-1.17.2/rootfs//bin/busybox技術分享

    3、復制命令的動態庫 -------- 進入共享的文件夾

      先查看生成的busybox程序依賴哪些動態庫

      arm-linux-readelf -d bin/busybox | grep .so

      查看編譯器的安裝路徑 which arm-linux-gcc

      復制編譯器的lib文件到共享目錄下 cp /opt/FriendlyARM/toolschain/4.5.1/arm-nonc-linux-gnueabi/lib/ .

    4、創建其他目錄 mkdir dev home proc tmp var etc/init.d mnt opt sys -p

    5、創建控制臺文件 mknod dev/console 5 1

      註:該文件世設備文件,只能用mknod創建,不能用vim,gedit,touch。c表示字符設備,5表示主設備號,1表示此設備號

    6、根據需要在etc目錄下創建fstab文件

      技術分享

      以上文件是設置linux掛載上文件系統 後 還需要掛載 的 其他文件系統

    7、在etc目錄下創建inittab文件

      因為在linux的examples文件夾裏面已經提供了一個模板,我們只需把它拷貝過來修改就能用了 cp /work/busybox-1.17.2/examples/inittab etc/

       ::sysinit:/etc/init.d/rcS
      console::askfirst:-/bin/sh
      ::restart:/sbin/init
      ::ctrlaltdel:/sbin/reboot
      ::shutdown:/bin/umount -a -r
      ::shutdown:/sbin/swapoff -a

    8、在etc/init.d/裏面創建rcS文件

      gedit etc/init.d/rcS &

      內容:#!/bin/sh
        mkdir /dev/shm -p
        mkdir /dev/pts -p
        #
掛載 fstab 文件中指定的所有文件系統
        mount -a
        #
以下是熱拔插支持
        echo /sbin/mdev > /proc/sys/kernel/hotplug
        mdev -s

         hostname 你的名字(非中文)

    9、在etc目錄下創建profile文件

      內容:技術分享

    10、添加用戶信息,因為x86裏面已經有了,所以我們可直接從裏面復制出來使用

      cp /etc/passwd etc/

    11、總結linux啟動過程,以及嵌入式系統啟動過程

      在bootloader中 制定 各種要求 傳遞 給 linux內核的 參數,在開機後先mount上制定文件系統,(該文件系統主要負責啟動運行的配置文件)

      1)、busybox init啟動後,初始化控臺

      2)、掃描etc/init.d文件

      3)、執行系統初始化命令,還有執行rcS文件(這裏面會包含制定掛載的文件系統)

      4)、執行所有wait動作的命令

      5)、執行所有once動作的命令

      6)、執行所有終止時必須重新啟動的 inittab 命令(動作類型: respawn)

      7)、執行所有終止時必須重新啟動但啟動前必須詢問用戶的 inittab 命令(動作類型: askfirst)

      8)、啟動shell程序

      9)、執行profile文件

  到此根文件系統制作完成!

三:NFS 文件系統掛載

  1、開啟nfs服務:service nfs restart--本次有效

          chkconfig iptables on

  2、關閉window防火墻,linux防火墻

  3、設置ip

  4、開啟開發板設置環境變量:

    格式:root=/dev/nfs nfsroot=虛擬機 IP:虛擬機的 NFS 根文件系統路徑 ip=開發板 IP:虛擬機 IP:網關:子網掩碼::eth0:off init=/linuxrc console=ttySAC0 lcd=S70
    setenv bootargs root=/dev/nfs nfsroot=192.168.111.251:/root/work/rootfs/ ip=192.168.111.252:192.168.111.251:192.168.111.1:255.255.255.0:edu118:eth0:off init=/linuxrc console=ttySAC0 lcd=w101(必須是同一行)
  5、掛載完成

  6、測試:開發板連接電腦進入共享文件下進行測試

  

      

      

      

      

        

    

根文件系統制作與NFS掛載