U Boot環境變數的解釋說明

2021-06-01 04:52:56 字數 3279 閱讀 5217

u-boot環境變數的解釋說明

環 境 變 量

解 釋 說 明

bootdelay

定義執行自動啟動的等候秒數

baudrate

定義串列埠控制台的波特率

netmask

定義乙太網介面的掩碼

ethaddr

定義乙太網介面的mac位址

bootfile

bootargs

定義傳遞給linux核心的命令列引數

bootcmd

定義自動啟動時執行的幾條命令

serverip

定義tftp伺服器端的ip位址

ipaddr

定義本地的ip位址

stdin

定義標準輸入裝置,一般是串列埠

stdout

定義標準輸出裝置,一般是串列埠

stderr

定義標準出錯資訊輸出裝置,一般是串列埠

uboot> printenv

bootdelay=3

baudrate=115200

ethaddr=00:12:34:56:78:9a

ipaddr=192.168.0.9                         ①

serverip=192.168.0.1                ②

netmask=255.255.255.0

rootpath=/home/zht/rfsys            ③

stdin=serial

stdout=serial

stderr=serial

bootcmd=tftp 21000000 uimage;bootm 21000000     ④

bootargs=root=/dev/nfs rw nfsroot=192.168.0.1:/home/zht/rfsys nfsaddrs=192.168.0.48: 192.168.0.1:192.168.0.1:255.255.255.0 console=ttys0,115200 mem=32m   ⑤

① 設定目標板ip位址

② 設定伺服器ip位址

③ 設定根檔案系統在伺服器上的路徑,注意該路徑一定要設定為伺服器上的nfs目錄。

④ bootcmd是u-boot啟動後執行的命令,命令之間用分號分隔。

bootm 21000000 啟動linux作業系統

在儲存環境變數bootcmd 時 注意命令格式

setenv bootcmd "nand read 31000000 0x60000 500000;bootm 31000000"

若去掉「」 可能會導致 鍵入回車後立馬啟動核心。導致這個問題的原因可能是我移植的uboot的問題,具體可通過檢視修改**解決。

⑤ 定義u-boot傳送給linux核心的命令列引數,該命令列指定以網路檔案系統作為根檔案系統。

其中root=/dev/nfs,並非真的裝置,而是乙個告訴核心經由網路取得根檔案系統的旗標。

引數nfsroot這個引數告訴核心以那一台機器,那個目錄以及那個網路檔案系統選項作為根檔案系統使用。引數的格式如下:

nfsroot=[:][,]

如果指令列上沒有給定 nfsroot 引數,則將使用『/tftpboot/%s』預設值。其它選項如下:

--指定網路檔案系統服務端的網際網路位址(ip address)。如果沒有給定此欄位,則使用由 nfsaddrs 變數(見下面)所決定的值。此引數的用途之一是允許使用不同機器作為反向位址解析協議(rarp) 及網路檔案系統服務端。通常你可以不管它(設為空白)。

-- 服務端上要作為根掛入的目錄名稱。如果字串中有個『%s』 符記(token),此符記將代換為客戶端網際網路位址之 ascii 表示法。

-- 標準的網路檔案系統選項。所有選項都以逗號分開。如果沒有給定此選項欄位則使用下列的預設值:

port            = as given by server portmap daemon

rsize           = 1024

wsize           = 1024

timeo           = 7

retrans         = 3

acregmin        = 3

acregmax        = 60

acdirmin        = 30

acdirmax        = 60

flags           = hard, nointr, noposix, cto, ac

nfsaddrs=::::::

-- 客戶端的網際網路位址。如果沒設,此位址將由反向位址解析協議或啟動協議來決定。使用何種協議端視配置核心時開啟的選項以及 引數而定。如果設定此引數,就不會使用反向位址解析協議或啟動協議。

-- 網路檔案系統服務端之網際網路位址。如果使用反向位址解析協議來決定客戶端位址並且設定此引數,則只接受從指定之服務端傳來的回應。要使用不同的機器作為反向位址解析與網路檔案系統服務端的話,在此指定你的反向位址解析協議服務端(保持空白)並在 nfsroot 引數(見上述)中指定你的網路檔案系統服務端。如果此專案空白則使用回答反向位址解析協議或啟動協議之服務端的位址。

-- 閘道器(gateway)之網際網路位址,若服務端位於不同的子網路上時。如果此專案空白則不使用任何閘道器並假設服務端在本地的(local)網路上,除非由啟動協議接收到值。

-- 本地網路介面的網路掩碼。如果為空白,則網路掩碼由客戶端的網際網路位址匯出,除非由啟動協議接收到值。

-- 客戶端的名稱。如果空白,則使用客戶端網際網路位址之 ascii-標記法,或由啟動協議接收的值。

-- 要使用的網路裝置名稱。如果為空白,所有裝置都會用來發出反向位址解析請求,啟動協議請求由最先找到的裝置發出。網路檔案系統使用接收到反向位址解析協議或啟動協議回應的裝置。如果你只有乙個裝置那你可以不管它。

-- 用以作為自動配置的方法。如果是 `rarp' 或是 `bootp' 則使用所指示的協議。如果此值為 `both' 或空白,若配置核心時有開啟這兩種協議則都使用。 `none' 表示不使用自動配置。這種情況下你必須指定前述欄位中所有必要的值。

此 引數可以作為 nfsaddrs 的引數單獨使用(前面沒有任何 `:` 字元),這種情況下會使用自動配置。然而,此種情況不能使用 `none'作為值。

說明:這只是網上的一種說法,但是沒有啟動起來。因為我的kernel沒有cs8900網絡卡驅動,燒錄後可正常啟動,但無法掛載nfs,我在想是否可以通過命令列引數設定,來設定uboot給kernel傳遞的位址引數,這樣間接驅動nfs服務。我先前通過vivi這樣搞過,也是可行的。

現在可以這樣理解就是說,之前的kernel核心已經配置好了各個基本模組的驅動,這樣就可以用了。

uboot常用的環境變數

環境變數 相當於程式中的全域性變數,但是這裡不同的時在 uboot 雲翔的過程中,這個環境變數始終都是存在的。並且不會消失。環境變數 含義ipaddr 開發板本地的 ip位址 serverip 開發板通過 tftp 指令去tftp tftp 伺服器的 ip位址 gatewayip 開發板的本地閘道器...

Uboot中的環境變數

環境變數其實在uboot中就是一些全域性變數,用來修改uboot執行時的一些特徵,其外在表現為乙個個字串。環境變數的作用 能夠在不用重新編譯的前提下改變uboot執行時所表現出來的特徵,這樣當要調整uboot執行時特性就不用重新修改 編譯 執行uboot了。正常情況下環境變數應該同uboot ker...

uboot 環境變數設定研究

首先要知道uboot的第二個階段是從libarm board.c開始的,void start armboot void 這個函式是檢查flash上的環境變數是否有效,下面的 中的init sequence就是初始化列表 for init fnc ptr init sequence init fnc ...