• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 嵌入式Linux 的Cramfs 根文件系統(tǒng)配置的解決方案

    嵌入式Linux 的Cramfs 根文件系統(tǒng)配置的解決方案

    作者: 時(shí)間:2010-12-12 來(lái)源:網(wǎng)絡(luò) 收藏

      初始化腳本類,包括/etc/init.d 和/etc/rc/init.d 等,它們包含一些服務(wù)類 程序及啟動(dòng)腳本。

      根系統(tǒng)對(duì)掛載系統(tǒng)的主要由兩個(gè)文件決定,即fstab、init.d/rcS[3],fstab 描述了當(dāng)前系統(tǒng)中已被定義好的可以被系統(tǒng)掛載的文件系統(tǒng),init.d/rcS 文件描述了系統(tǒng)啟 動(dòng)時(shí)將啟動(dòng)的命令、服務(wù)程序及將要掛載的的文件系統(tǒng)。

      由此可見(jiàn),要使 根文件系統(tǒng)能滿足應(yīng)用程序的讀寫要求,必須在系統(tǒng)啟動(dòng) 時(shí)為應(yīng)用程序掛載一個(gè)可寫型的文件系統(tǒng),即/etc/fstab 及/etc/init.d/rcS 文件來(lái)掛載可寫 型的文件系統(tǒng)。

    3.2 為Crmafs文件系統(tǒng)添加應(yīng)用程序

      要發(fā)布應(yīng)用程序到系統(tǒng)中,須將應(yīng)用程序及應(yīng)用程序所需要的共享庫(kù)文件一起 添加到根文件系統(tǒng)中。根文件系統(tǒng)可以根據(jù)需要定制,但這樣需要花費(fèi)大量時(shí)間且工作量 大;也可以修改已有的根文件系統(tǒng),這樣可以節(jié)省大量的時(shí)間和精力,且不易出錯(cuò)[4]。

      以下 是以藍(lán)海微芯LJD-2410DVK-I 開(kāi)發(fā)板所提供的root.cramfs 根文件系統(tǒng)為基礎(chǔ)進(jìn)行修 改和的,root.cramfs 是只讀型的文件系統(tǒng),為了能向里邊加入用戶應(yīng)用程序,需要將其 重新掛載、壓縮及解壓縮成新的目錄,步驟如下:

      在root.cramfs 的相同目錄下新建立一個(gè)目錄,如myroot。

      在終端中執(zhí)行命令:mount -o loop root.cramfs myroot, tar –cvf myroot.tar myroot。這兩條 命令的功能分別是將已有的root.cramfs 以塊設(shè)備的方式掛載到myroot 并將myroot 壓縮為 myroot.tar。

      為不出現(xiàn)目錄重名,將 myroot.tar 拷貝到另一目錄進(jìn)行解壓:tar –xvf myroot.tar,解壓 出來(lái)的文件夾myroot 即是即將作為根文件系統(tǒng)的目錄,它是可讀可寫的。

      將已經(jīng)交叉編譯并調(diào)試過(guò)的用戶目標(biāo)程序拷貝到myroot 目錄下的/usr/bin 目錄下,此目 錄為根文件系統(tǒng)中為用戶程序準(zhǔn)備的目錄。同時(shí)將用戶程序所需要用到的關(guān)聯(lián)庫(kù)文件拷貝到 myroot 目錄下的/usr/lib 目錄下,用戶程序的關(guān)聯(lián)庫(kù)文件可通過(guò)ldd 命令查看,ldd 命令格式 如下:

      Ldd [選項(xiàng)] 文件

      選項(xiàng)有-v:打印ldd 的版本號(hào);-d:執(zhí)行符號(hào)重部署,并報(bào)告缺少的目標(biāo)對(duì)象(只對(duì)ELF 格式適用);-r:對(duì)目標(biāo)對(duì)象和函數(shù)執(zhí)行重新部署,并報(bào)告缺少的目標(biāo)對(duì)象和函數(shù)(只對(duì)ELF 格式適用);-h:幫助信息。

      執(zhí)行如下命令來(lái)查看應(yīng)用程序所關(guān)聯(lián)的庫(kù):

      Ldd –v 程序名

      將交叉編譯工具目錄下的/3.4.1/arm-linux/lib 下的libgcc-s.so.*,libstdc++.so.6 復(fù)制到 myroot 目錄下的/root/lib 目錄下。

    3.3 配置根文件系統(tǒng)

      為使 能支持應(yīng)用程序的寫操作,需要修改文件系統(tǒng)的配置文件,即/etc 目錄下的 文件。

      (1) 修改/etc/init.d/rcS 文件

      /etc/init.d/rcS 是 的系統(tǒng)初始化腳本,修改步驟如下:

      用 vi 或其它文本工具打開(kāi)myroot 目錄下的/etc/init.d/rcS 文件;

      在文件中增加:

      /bin/mount –n –t ramfs ramfs /mnt/yaffs(yaffs 是文件系統(tǒng)的一個(gè)目錄);

      /bin/mkdir /mnt/yaffs/Qtopia;

      /bin/mkdir /mnt/yaffs/Qtopia/tmp。

      保存并退出 vi 或文本工具。

      根文件系統(tǒng)的配置如圖 1 所示。


      圖1 根文件系統(tǒng)的配置

    linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

    linux相關(guān)文章:linux教程




    評(píng)論


    相關(guān)推薦

    技術(shù)專區(qū)

    關(guān)閉
    主站蜘蛛池模板: 大城县| 大宁县| 麻江县| 本溪市| 河西区| 韶关市| 图木舒克市| 黑水县| 徐水县| 寿宁县| 太白县| 富顺县| 桃江县| 浦城县| 密云县| 手机| 儋州市| 晋江市| 平果县| 七台河市| 鹤峰县| 怀远县| 义马市| 普宁市| 卓尼县| 星座| 天全县| 顺平县| 阜康市| 合作市| 苏尼特左旗| 郎溪县| 永胜县| 晋江市| 海安县| 枣阳市| 岢岚县| 昌图县| 乌兰察布市| 象州县| 白朗县|