嵌入式Linux開發環境搭建,問題ping、nfs的解決

行路人&發表於2019-07-20

 一. 嵌入式軟體層次

 

1) Bootloader->引導載入程式

  整個嵌入式系統的載入啟動任務完全交給Bootloader完成,它的主要任務是將核心映象從硬碟讀到RAM中,然後跳轉到核心入口啟動核心(作業系統)!通俗來講,Bootloader的作用就是初始化硬體,啟動作業系統。

U-BOOT是Bootloader最常用的一種,將uboot下載至開發板的nand flash(ROM)中,即可通過模擬軟體Secure CRT對開發板進行初始設定。       包括開發板的環境變數、IP等設定項,為後面下載核心、載入檔案系統做基礎。

2)Linux核心

  實現不同的硬體、軟體需求配置不同的系統核心。一般基於已有的核心進行修改

配置核心 -> 編譯核心 -> 安裝核心 -> 清理核心過程檔案(make clean)

配置核心: make menuconfig ARCH=arm   選單式互動介面選擇所需的驅動、協議檔案

編譯核心:make uImage(核心名)  ARCH=arm CROSS_COMPILE=arm-linux-  

安裝核心:通過tftp伺服器,在基於uboot下下載uImage至 20000fc0(210開發板啟動地址)  "tftp uImage 20007fc0"

3)檔案系統

  檔案系統簡單說就是一種目錄結構,由於linux作業系統的裝置在系統中是以檔案的形式存在將這些檔案分類管理以及提供和核心互動的介面,就形成了一定的目錄結構也就是檔案系統。  

基本流程:a.設定根檔案系統目錄rootfs及內部儲存檔案目錄bin、dev、lib、sbin、sys、usr、mnt等;

     b.檔案系統新增核心模組,在linux核心目錄下"/home/S4-Driver/linux-smart210/";

        " make modules ARCH=arm CROSS_COMPILE=arm-linux- "   核心編譯

        " make modules——install ARCH=arm INSTALL_MOD_PATH=/home/S5-/rootfs "   核心檔案複製到根檔案目錄下

                   c.根目錄"/.../rootfs"下安裝交叉編譯器busybox,配置核心->編譯核心->安裝拷貝make install;

     d.掛載根檔案系統,使用nfs方式,可實時線上根檔案系統rootfs;

  SecureCRT -> 通過uboot對開發板進行引數配置(nfs配置項) -> tftp伺服器下載Linux核心 -> bootm 20007fc0執行掛載即可!

二.偶遇問題

1. 開發板ping的系列問題

1) 模型結構搭建:PC機 -> 有線網路卡 -> 路由器 -> 直連網線 -> 開發板網口;

2)a. 設定虛擬機器為橋接模式,以保證外網可尋找到Linux虛擬機器ip;

   b. PC機使用的是有線網路卡,則PC機及Linux虛擬網路介面卡覺選擇Realtak USB(有線網口);

   c. 保證Linux虛擬機器、PC機、開發板三者ip處於同一網段;

3)關閉Linux虛擬機器、PC機的防火牆,使得PC可ping通Linux和開發板

  再排除硬體介面問題,即可通訊。

2.nfs掛載問題

  nfs掛載出現如:"Server is not responding"、" unable to mount root"等問題,其主要原因是nfs的掛在設定引數、下載地址有問題。如smart210下載地址為20007fc0(並非20008000),nfs預設是使用udp通訊協議,掛載引數網上都可喲搜尋到,多試一試就沒問題,前提是保證Linux的nfs伺服器能正常使用。

 

 

       

 

相關文章