一. 嵌入式軟件層次
1) Bootloader->引導(dǎo)加載程序
整個嵌入式系統(tǒng)的加載啟動任務(wù)完全交給Bootloader完成,它的主要任務(wù)是將內(nèi)核映象從硬盤讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核入口啟動內(nèi)核(操作系統(tǒng))!通俗來講,Bootloader的作用就是初始化硬件,啟動操作系統(tǒng)。
U-BOOT是Bootloader最常用的一種,將uboot下載至開發(fā)板的nand flash(ROM)中,即可通過仿真軟件Secure CRT對開發(fā)板進(jìn)行初始設(shè)置。 包括開發(fā)板的環(huán)境變量、IP等設(shè)置項,為后面下載內(nèi)核、加載文件系統(tǒng)做基礎(chǔ)。
2)Linux內(nèi)核
實現(xiàn)不同的硬件、軟件需求配置不同的系統(tǒng)內(nèi)核。一般基于已有的內(nèi)核進(jìn)行修改
配置內(nèi)核 -> 編譯內(nèi)核 -> 安裝內(nèi)核 -> 清理內(nèi)核過程文件(make clean)
配置內(nèi)核: make menuconfig ARCH=arm 菜單式交互界面選擇所需的驅(qū)動、協(xié)議文件
編譯內(nèi)核:make uImage(內(nèi)核名) ARCH=arm CROSS_COMPILE=arm-linux-
安裝內(nèi)核:通過tftp服務(wù)器,在基于uboot下下載uImage至 20000fc0(210開發(fā)板啟動地址) "tftp uImage 20007fc0"
3)文件系統(tǒng)
文件系統(tǒng)簡單說就是一種目錄結(jié)構(gòu),由于linux操作系統(tǒng)的設(shè)備在系統(tǒng)中是以文件的形式存在,將這些文件分類管理以及提供和內(nèi)核交互的接口,就形成了一定的目錄結(jié)構(gòu)也就是文件系統(tǒng)?! ?/p>
基本流程:
- a.設(shè)置根文件系統(tǒng)目錄rootfs及內(nèi)部存儲文件目錄bin、dev、lib、sbin、sys、usr、mnt等;
- b.文件系統(tǒng)添加內(nèi)核模塊,在linux內(nèi)核目錄下"/home/S4-Driver/linux-smart210/";
" make modules ARCH=arm CROSS_COMPILE=arm-linux- " 內(nèi)核編譯
" make modules——install ARCH=arm INSTALL_MOD_PATH=/home/S5-/rootfs " 內(nèi)核文件復(fù)制到根文件目錄下
- c.根目錄"/.../rootfs"下安裝交叉編譯器busybox,配置內(nèi)核->編譯內(nèi)核->安裝拷貝make install;
- d.掛載根文件系統(tǒng),使用nfs方式,可實時在線根文件系統(tǒng)rootfs;
SecureCRT -> 通過uboot對開發(fā)板進(jìn)行參數(shù)配置(nfs配置項) -> tftp服務(wù)器下載Linux內(nèi)核 -> bootm 20007fc0運(yùn)行掛載即可!
二.偶遇問題
1. 開發(fā)板ping的系列問題
1) 模型結(jié)構(gòu)搭建:PC機(jī) -> 有線網(wǎng)卡 -> 路由器 -> 直連網(wǎng)線 -> 開發(fā)板網(wǎng)口;
2)a. 設(shè)置虛擬機(jī)為橋接模式,以保證外網(wǎng)可尋找到Linux虛擬機(jī)ip;
b. PC機(jī)使用的是有線網(wǎng)卡,則PC機(jī)及Linux虛擬網(wǎng)絡(luò)適配器覺選擇Realtak USB(有線網(wǎng)口);
c. 保證Linux虛擬機(jī)、PC機(jī)、開發(fā)板三者ip處于同一網(wǎng)段;
3)關(guān)閉Linux虛擬機(jī)、PC機(jī)的防火墻,使得PC可ping通Linux和開發(fā)板
再排除硬件接口問題,即可通訊。
2.nfs掛載問題
nfs掛載出現(xiàn)如:"Server is not responding"、" unable to mount root"等問題,其主要原因是nfs的掛在設(shè)置參數(shù)、下載地址有問題。如smart210下載地址為20007fc0(并非20008000),nfs默認(rèn)是使用udp通信協(xié)議,掛載參數(shù)網(wǎng)上都可喲搜索到,多試一試就沒問題,前提是保證Linux的nfs服務(wù)器能正常使用。
以上就是本次介紹的嵌入式Linux開發(fā)環(huán)境搭建,問題ping、nfs的解決全部知識點(diǎn)內(nèi)容,感謝大家對腳本之家的支持。