娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2025年02月15日(星期六)

2020年02月15日 | Exynos4412從SD卡啟動的簡單網絡文件系統制作

發(fā)布者:dfdiqc 來源: eefocus關鍵字:Exynos4412  SD卡啟動  網絡文件系統 手機看文章 掃描二維碼
隨時隨地手機看文章

1. 簡介

嵌入式系統能夠在開發(fā)板上正常運行,需要先進行系統配置,一個完整的嵌入式系統應該包含的幾個部分::uboot,kernel,rootfs,appfs。這幾部分在ARM板Flash上的位置關系如下圖所示:

嵌入式系統分區(qū)結構

嵌入式系統分區(qū)結構


注:圖片來源于韋東山老師的《嵌入式Linux應用開發(fā)完全手冊》


rootfs可以不用添加到開發(fā)板,而是部署到PC機上,開發(fā)板在運行完kernel,要掛載rootfs時,可以通過NFS網絡掛載到設定好的PC機上的文件系統上。


操作系統: 內核 + 文件(應用, 配置, 設備, ...);


    bootloader: u-boot (交互界面) # lsX

                    help


    kernel    : linux  (沒有交互)

    filesystem: rootfs android qt_rootfs ... 

                       ....    ....

                shell

2. 安裝工具

需要用到的安裝工具包及源碼包如下:


2.1 安裝交叉編譯工具

交叉編譯:在PC機(x86平臺)上開發(fā)程序,在ARM板上運行,提高開發(fā)、編譯速度。

在編譯uboot、內核、busybox、程序文件之前需要安裝兼容開發(fā)板的交叉編譯工具


參考Exynos4412交叉編譯環(huán)境搭建


檢測系統是否已經安裝有交叉編譯環(huán)境:


# arm-linux-gcc -v  

bash: arm-linux-gcc: command not found  

安裝步驟:


找到arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz 所在路徑,并解壓壓縮文件

# tar xf arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz   

# ls  

arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz  opt  

// 解壓后得到一個opt文件夾

在usr/local/目錄下創(chuàng)建文件夾,并將解壓縮的文件夾./opt/FriendlyARM/toolschain/4.5.1/拷貝到/usr/local/arm/目錄:

# mkdir /usr/local/arm  

# cp opt/FriendlyARM/toolschain/4.5.1/ /usr/local/arm/ -rf  

修改環(huán)境變量:

# vim /root/.bash_profile   

// 在文件末尾添加:  

PATH=/usr/local/arm/4.5.1/bin/:$PATH  

export PATH  

注銷用戶,重新登錄用戶后生效

或者:

# source /root/.bash_profile  

// 使配置文件生效

檢查交叉編譯環(huán)境是否安裝成功:

# arm-linux-gcc -v  

......  

gcc version 4.5.1 (ctng-1.8.1-FA)  

// 交叉編譯環(huán)境安裝成功 

檢測到交叉編譯環(huán)境版本為4.5.1,安裝成功。


2.2 Minicom串口工具安裝及配置

參考Minicom串口工具安裝及配置


2.3 安裝fastboot工具

2.4 安裝NFS服務

現在多數Linux發(fā)行版都會自帶NFS服務,一般系統安裝時都會默認安裝NFS服務,如果沒有安裝請查詢資料自行安裝,此處不再敘述NFS安裝方法。


2.5 關閉防火墻

使用NFS網絡文件系統需要系統關閉防火墻,否則,系統啟動過程會失敗。


4. 編譯內核

Tiny4412編譯內核linux-3.5后,將zImage燒寫到SD卡中,啟動過程中會出現卡死的現象

在kernel編譯的時候將TrustZone模塊去掉,之后再編譯,再燒寫


5. 編譯uboot并制作SD卡

參考Tiny4412光盤資料README for FriendlyARM Tiny4412


5.1 Build uboot

a) 安裝好toolchain

    (arm-linux-gcc-4.5.1-v6-vfp-20120301.tgz)

    并設置好環(huán)境變量PATH,保證可以正常使用。


b) 解壓 uboot_tiny4412-20130929.tgz 并進入相應的目錄

    # tar xzf uboot_tiny4412-20130929.tgz

    # ls

    uboot_tiny4412_0929  uboot_tiny4412-20130929.tgz


c) 配置 uboot 并編譯

    # cd uboot_tiny4412

    # make tiny4412_config

    # make


d) 編譯 用于生成bl2 的工具

    # make -C sd_fuse

    或者

    # cd sd_fuse; make

5.2 制作啟動 Tiny4412 的SD卡

a) 先準備一張4G或以上的SDHC卡

    注意:該卡的已有數據將會被破壞,因此請先對SD卡上的數據進行備份。


b) 如果SD卡容量大于等于32G

    # cd uboot_tiny4412_0929/sd_fuse/tiny4412

    # vim sd_fusing.sh 


     36 if [ ${BDEV_SIZE} -gt 32000000 ]; then

     37     echo "Error: Block device size (${BDEV_SIZE}) is too large"

     38 #   exit 1

     39 fi

    將判斷SD卡容量中的處理exit 1注釋掉。


c) fusing SD card

    # 假設SD卡已被PC Linux識別為/dev/sdb, 以root用戶運行以下命令即可:

    # cd sd_fuse/tiny4412

    # ./sd_fusing.sh /dev/sdb

5.3 使用SD卡啟動 Tiny4412

a) 將已經制作好的SD卡插到Tiny4412板上,撥動S2切換到SDBOOT,同時連接串口線到PC且假設已經準備好。


b) 開發(fā)板加電,然后在串口控制臺(如:Minicom),按任意鍵進入uboot命令行模式


c) 對SD卡進行分區(qū)

    輸入以下uboot命令即可對SD卡進行分區(qū):

    # fdisk -c 0 320 806 518

    重新分區(qū)后,可重新格式化FAT分區(qū)

    # fatformat mmc 0:1

5.4 使用fastboot工具燒寫內核

a) 進入fastboot模式以燒寫內核鏡像

    使用USB線連接Tiny4412的MICRO_USB口到PC,然后輸入以下uboot命令:

    # fastboot


b) 燒寫內核鏡像到SD卡

    首先準備好的內核鏡像zImage,進入zImage所在的文件夾

    在PC端輸入以下命令進行燒寫:

    # fastboot flash kernel zImage              (燒寫kernel)

6. 制作簡單的網絡文件系統

6.2 NFS服務配置

6.3 使用busybox編譯出命令

解壓縮:


    # tar xf busybox-1.17.2-20101120.tgz    (linux基本命令)

    # cd busybox-1.17.2

編輯:

配置:


make defconfig    (默認)

make menuconfig    (修改默認配置)

        Busybox Settings  --->

            -> Build Options 

                -> (arm-linux-) Cross Compiler prefix

                    ^^^^^^^^^^ 交叉編譯

                    arm-linux-gcc  指定編譯工具為交叉編譯器;


在busybox中添加命令:rmmod insmod lsmod

        Linux Module Utilities  ---> 

            [ ] Simplified modutils

            [*]   insmod

            [*]   rmmod

            [*]   lsmod

            [*]     Pretty output

            [*]   modprobe

            [*]     Blacklist support

            [*]   depmod


make

make install

或者:

make && make install

^        ^

編譯    安裝(拷貝)


注意: 編譯完時提示; 執(zhí)行程序需要的依賴庫;

    Trying libraries: crypt m

    Library crypt is not needed, excluding it

    Library m is needed, can't exclude it (yet)



安裝完時提示

--------------------------------------------------

You will probably need to make your busybox binary

setuid root to ensure all configured applets will

work properly.

--------------------------------------------------


拷貝安裝完的命令:

    cp ./_install/* /nfsroot -rf



到這里去執(zhí)行編譯好的程序,會提示執(zhí)行失敗????

    是因為在編譯時,選擇使用動態(tài)鏈接;要解決該問題,需要將交叉編譯工具中的庫文件拷貝到nfsroot/lib目錄下。

    

6.4 添加庫文件和動態(tài)鏈接加載器

(執(zhí)行命令需要依賴庫)


    mkdir /nfsroot/lib

    cp /usr/local/arm/4.5.1/arm-none-linux-gnueabi/lib/* /nfsroot/lib -rf

       ^ arm 架構的庫和加載器

6.5 添加設備文件

(應用運行需要)


    mkdir /nfsroot/dev /nfsroot/sys /nfsroot/proc /nfsroot/tmp

    mkdir /nfsroot/etc


    mkdir /nfsroot/etc/init.d

6.5.1 編輯啟動腳本:

    vim /nfsroot/etc/init.d/rcS

        #!/bin/sh


        //掛載虛擬文件系統:

        //    proc虛擬文件系統 : ps top 

        //        kernel運行狀況, 進程信息;

        /bin/mount -t proc  none /proc


        //    sysfs虛擬文件系統: mdev

        //        kernel中所有的支持的設備信息;

        /bin/mount -t sysfs none /sys


        //    tmpfs虛擬文件系統: 

        //        斷電清空數據/dev /tmp

        /bin/mount -t tmpfs none /dev

        //                         ^^^^ 

        ///dev實時描述當前kernel中支持的所有設備的節(jié)點;


        //    tmpfs同上;

        /bin/mount -t tmpfs none /tmp


        //mdev -s : 掃描/sys目錄, 在/dev目錄下生成設備節(jié)點;

        //busybox中有mdev, x86下沒有;

        /sbin/mdev -s


        //支持熱插拔; 需要kernel監(jiān)聽設備的插入拔出并調用/sbin/mdev命令;

        echo /sbin/mdev > /proc/sys/kernel/hotplug

設置腳本的執(zhí)行權限:


    chmod 777 rcS

6.5.2 編輯init進程啟動配置文件:

    vim /nfsroot/etc/inittab

        系統啟動自動執(zhí)行腳本:

        ::sysinit:/etc/init.d/rcS    (系統啟動時執(zhí)行)


        執(zhí)行完腳本,執(zhí)行shell, 指定shell輸入輸出終端ttySAC0:

        ttySAC0::respawn:/bin/sh    (任何時候都執(zhí)行)

注意: 不需要添加inittab; 

    ramdisk-u.img --> inittab --> rcS

        ^ 根文件系統;


關鍵字:Exynos4412  SD卡啟動  網絡文件系統 引用地址:Exynos4412從SD卡啟動的簡單網絡文件系統制作

上一篇:Qemu搭建ARM vexpress開發(fā)環(huán)境(一)
下一篇:Exynos4412交叉編譯環(huán)境搭建

推薦閱讀

  人工智能是目前新興科技中最炙手可熱的項目之一。中共十九大召開以后,中國進一步加速人工智能的研發(fā),有望成為世界人工智能第一大國。  力爭成人工智能第一大國  法國《論壇報》指出,中國許多新興科技企業(yè)都已經越過了起步階段,力爭成為人工智能領域的佼佼者。  報道稱,為了實現這一目標,中國可謂盡心盡力。近日,中國政府宣布將在北京西部...
做車載系統對于IT企業(yè)來講,算得上一件很酷的事,不管采用Car Play還是Android Auto,其實做的是一種系統與另一種系統的集成和融合。Google正在與采用Android系統的汽車品牌逐步加深合作,比如我們提到過的Volvo和Polestar,而目的則是為了獲得最佳的用戶體驗。通常汽車品牌會就未來的聯網技術展望他們的愿景,Google則更在意的是軟件系統的未來,而實際...
嵌入式開發(fā)離不開硬件設備比如:開發(fā)板、外設等,但是如果只是想學習研究Linux內核,想學習Linux內核的架構,工作模式,需要修改一些代碼,重新編譯并燒寫到開發(fā)板中進行驗證,這樣未必有些復雜。然而Qemu的使用可以避免頻繁在開發(fā)板上燒寫版本,如果進行與外設無關,僅僅是內核方面的調試,Qemu模擬ARM開發(fā)環(huán)境完全可以完美地勝任。下面簡單介紹下我的Qem...
本文著重介紹基于機器人操作系統ROS的系統。文中將介紹ROS以及它在無人駕駛場景中的優(yōu)缺點,并討論如何在ROS的基礎上提升無人駕駛系統的可靠性、通信性能和安全性。 在上篇解析光學雷達(LiDAR)技術(《》)之后,本文著重介紹基于機器人操作系統ROS的無人駕駛系統。文中將介紹ROS以及它在無人駕駛場景中的優(yōu)缺點,并討論如何在ROS的基礎上提升無人駕...

史海拾趣

問答坊 | AI 解惑

有沒有關于74LS164方面的資料啊

有關于74LS164方面的資料發(fā)一點上來,謝謝了…

查看全部問答∨

思路決定出路--鍵盤掃描詳解

按鍵掃描是每個搞單片機的都會遇到的問題,也是一個開發(fā)人員必須具備的基本功。先從最基本的說起。在此聲明,沒有代碼,也不要向我要代碼,也不想穿褲子,如果你看了帖子還寫不出代碼,那么我只能說你太笨了。。。。。。。。還是那句話,搞開發(fā)重要 ...…

查看全部問答∨

PCB行業(yè)中關于RoHS指令有害物質的檢測方法

要求2006年7月1日開始,電子電氣設備中禁止使用鉛、汞、六價鉻、鎘和多溴聯苯(PBB)、多溴二苯醚(PBDE);其中鎘限量指標 100PPm(0.01%),另五種限量l000ppm(0.1%)。企業(yè)出口歐盟的產品都需符合以上的限量要求,并且要展示相應的證明文件, ...…

查看全部問答∨

單片機高手進,花錢找人編程

我想變成程序,但不知道要多少錢,請高手個價位 儀器的功能大概如下;1,壓力傳感器測得壓力顯示在數碼管上,另外可以對通過對標定對傳感器進行微調                     &nbs ...…

查看全部問答∨

用DDK做的驅動中,中斷為什么不能實現

我做的是PCI的驅動,用VC6 DDK來實現。板卡橋芯片用的是9052做的驅動中設置中斷可是沒有反應這是為什么呢?將9052的 LINTi1接了個開關,模擬實現中斷的電平輸入。相關程序如下: //獲取中斷資源 case CmResourceTypeInterrupt:     &n ...…

查看全部問答∨

platform builder 4.2如何編譯最快?

就改動BSP某一個文件的一個地方,如何快速編譯?…

查看全部問答∨

編寫S3C2440總線方式控制的流式驅動程序問題

我想用nGCS2作片選,LDADDR0-LDADDR7作地址線,LDDATA0-LDDATA7作數據線進行CPLD的讀寫數據.于是我定義了下面的結構體: #define NGCS2_BASE     0XA4000080 #define NGCS2_PHY_BASE 0x10000080 ///定義CPLD控制寄存器地 ...…

查看全部問答∨

evc 下如何建立ATL/WTL 的工程?

我下載了WTL80,發(fā)現該目錄下有個文件夾“AppWizCE”,要怎樣才能使EVC下能夠通過AppWizard來創(chuàng)建ATL/WTL個工程呢? 如果不能通過AppWizard來創(chuàng)建,evc下如何建立ATL/WTL的exe工程?…

查看全部問答∨

Wince程序在設備上運行報異常!!!

我將bin目錄下的exe文件和sdf數據庫文件復制到wince設備上,運行exe文件就報異常。 異常信息: Error SmartDevice.exe MissingMethodException File or assembly name \'System.Data.SqlServerCe, Version=3.5.1.0, Culture=neutral, PublicKe ...…

查看全部問答∨

單片機的系列比較---M0與M3

Cortex-M3和Cortex-M0的區(qū)別   ARM架構自v6開始分為A/R/M三個系列。CM0/CM3都是屬于M系列的。CortexM0是基于v6架構;CortexM3是v7架構。主要區(qū)別 性能: Cortex-M0 基于32 位架構,利用一個 通過MULS 指令直接與內核相連的3 ...…

查看全部問答∨
小廣播
設計資源 培訓 開發(fā)板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發(fā)圈

 
機器人開發(fā)圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業(yè)務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 固镇县| 双流县| 雷山县| 揭西县| 临澧县| 高清| 阳新县| 刚察县| 霍州市| 政和县| 屯昌县| 灵武市| 新晃| 买车| 哈尔滨市| 汉寿县| 胶南市| 黔江区| 工布江达县| 宜章县| 德安县| 胶州市| 黎城县| 绥中县| 东辽县| 沙田区| 宽甸| 佛学| 旺苍县| 许昌市| 邹城市| 清远市| 宣恩县| 工布江达县| 青龙| 红安县| 武宁县| 金湖县| 藁城市| 白朗县| 冷水江市|