1. 程式人生 > >嵌入式Linux開發環境搭建,問題ping、nfs的解決

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

 一. 嵌入式軟體層次

 

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伺服器能正常使用。

 

 

       

&n