日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > windows >内容正文

windows

ARM开发板系统移植-----rootfs的制作

發布時間:2024/3/12 windows 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ARM开发板系统移植-----rootfs的制作 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前面兩篇文章分別介紹了mini2440開發板上運行的bootloader和kernel,到這里系統啟動后其實是停留在一個“僵死”的狀態---無法掛載根文件系統。

  這里將介紹如何制作一個根文件系統,并且掛載到內核中---即讓內核能夠訪問到文件系統中的目錄和文件。從用戶的角度來看文件系統無非就是各個目錄和文件,注意,這些目錄和文件可以存在內存中,也可以存在Nand Flash 或者NOR Flash中,視具體的文件系統而定。本文就用基于內存的initram 和基于網絡的nfs文件系統做例子介紹文件系統的概念。

  首先什么是文件系統?就本人理解而言,它就是操作系統提供的一種抽象,即操作系統將存儲介質抽象化,并提供一種訪問這種抽象的方法,讓用戶能夠簡潔且方便的訪問存儲介質(如硬盤和nand flash等)。為了實現這種抽象,操作系統把存儲介質進行單元劃分,文件存儲在介質時就占據若干個單元。當然操作系統還記錄下各個文件的基本屬性(如文件大小、存儲位置、所屬人、訪問權限等等),并組成一個文件控制塊(FCB)。所有文件的FCB保存在一個目錄文件中,即一個目錄文件就是內容是FCB的文件,其自身也有FCB目錄文件的FCB記錄在上一層目錄中,這樣層層往上連接就形成了樹狀目錄結構。或者這樣描述:文件系統包含兩部分:一組文件(即所要保存的數據)和目錄文件(目錄文件的內容是每個文件的FCB,FCB記錄了文件的所有屬性)。如下圖所示:

  如上圖所示是一個典型的Linux系統目錄結構,從用戶的角度看這就是Linux的文件系統,從右往左看,假設run目錄下有個文件file,那么file的FCB就保存在run目錄文件中,而run又是一個文件,其FCB 保存在VAR這個目錄文件中,最后var的FCB就保存在根目錄文件中。一次要訪問到file,實質就是要沿著/var/run/file 這樣一個路徑。但是從操作系統的角度來看,這僅僅是提供給用戶的可視性文件系統,具體的實現細節(比如文件的物理結構和邏輯結構)它已經隱藏起來。需要注意的是文件系統存儲在外存儲器中(nand flash等),內存中也會有相應的表明文件屬性的目錄項,用以加快操作系統訪問文件的效率。即內核中也會有FCB的內容,甚至目錄文件也會存在內存中。

  根據上面的背景知識其實就可以總結出建立根文件系統的步驟,無非就是創建這些目錄和文件,然后讓內核能夠認識它們(即在內核中掛載根文件系統)。

  具體步驟如下:

  1、創建各個目錄和必須的文件

    1.1、創建空目錄:

      #mkdir rootfs

      #cd rootfs

      #mkdir bin dev etc lib proc sbin sys usr mnt tmp var

      #mkdir usr/bin usr/lib usr/sbin lib/modules

    1.2、創建設備文件:創建Linux啟動需要的設備驅動文件:控制臺和空

      #cd rootfs/dev

      #mknod -m 666 console c 5 1

      #mknod -m 666 null c 1 3

    1.3、加入配置文件:添加內核啟動的一些配置文件

???????????????? #tar etc.tar.gz

      #mv etc/* .../rootfs/etc/ -rf

    1.4、添加內核模塊:

      #cd .../linux

      #make modules ARCH=arm CROSS_COMPILE=arm-linux-

      #make modules_install ARCH=arm INSTALL_MOD_PATH=.../rootfs

   ?? 1.5、編譯/安裝busybox:使用busybox添加常用的命令如cd、ls、date等等

      #make menuconfig

      #make

      #make install    

2、掛載根文件系統:事實上掛載根文件系統就是完成指明根文件系統放在何處、操作系統如何使用文件系    統的目錄文件等等工作。這里介紹一個基于內存的掛載方式,即根文件系統在編譯后直接整合在內核代碼中,隨著代碼被加載到內存中,內核啟動過程中可以直接使用文件系統。initramfs文件系統的制作:

    2.1、#cd? .../rootfs/

       #ln -s ./bin/busybox init

???????????2.2、 配置內核,讓內核知道文件系統的掛載方式是initramfs。

???????????2.3、編譯內核

   ? 2.4、設置uboot參數:

       setenv bootargs noinitrd console=ttySAC0,115200

  完成上面的工作就可以制作成一個擁有initramfs 文件系統的完整的Linux系統。

  至此一個完整的Linux系統就已經能夠在mini2440中運行,接下來就可以在其上進行驅動或者應用開發。

?

總結

以上是生活随笔為你收集整理的ARM开发板系统移植-----rootfs的制作的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。