Uboot啟動引數說明及nfs命令列掛載啟動

2021-06-02 23:23:43 字數 3101 閱讀 1609

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作業系統

⑤ 定義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啟動引數說明

bootcmd cp.b 0xc4200000 0x7fc0 0x200000 bootm 倒計時到 0 以後,自動執行的指令 bootdelay 2 倒計時時間為2s baudrate 115200 串列埠波特率,一般使用115200 ethaddr 08 00 3e 26 0a 5c bootf...

uboot中bootargs引數說明

u boot的環境變數值得注意的有兩個 bootcmd 和bootargs。u bootcmd 前面有說過bootcmd是自動啟動時預設執行的一些命令,因此你可以在當前環境中定義各種不同配置,不同環境的引數設定,然後設定bootcmd為你經常使用的那種引數。u bootargs bootargs是環...

linux gcc用法及引數說明

1 linux gcc包含的c c 編譯器 gcc cc c g gcc和cc是一樣的,c 和g 是一樣的,一般c程式就用gcc編譯,c 程式就用g 編譯 2 linux gcc的基本用法 gcc test.c這樣將編譯出乙個名為a.out的程式gcc test.c o test這樣將編譯出乙個名為...