一. 嵌入式軟件層次


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服務器能正常使用。
以上就是本次介紹的嵌入式Linux開發環境搭建,問題ping、nfs的解決全部知識點內容,感謝大家對腳本之家的支持。