日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

linux uboot nfs启动,uboot中利用TFTP和NFS加载镜像到ram运行

發(fā)布時間:2024/9/19 46 豆豆
生活随笔 收集整理的這篇文章主要介紹了 linux uboot nfs启动,uboot中利用TFTP和NFS加载镜像到ram运行 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

主機說明:

主機guest 為虛擬機redhat9: IP: 59.64.155.122? 網(wǎng)關 59.64.155.1

redhat9上已經(jīng)配置好NFS服務(參考http://blog.chinaunix.net/u2/80953/showart.php?id=1274973)

也已經(jīng)配置好TFTP服務(參考http://blog.chinaunix.net/u2/80953/showart.php?id=1274976)

NFS服務, TFTP服務都已經(jīng)啟動

終端采用主機host XP的超級終端

實驗板說明:

MPC8349itx開發(fā)板: IP: 59.64.155.244? 網(wǎng)關 59.64.155.1

開發(fā)板eth0為vsc8201芯片,uboot支持驅(qū)動,另一芯片為交換交換芯片vsc7385,單獨模塊驅(qū)動。

U-Boot-1.1.3 ;??? Linux kernel-2.6.13

內(nèi)核支持NFS分區(qū)(即編譯時在File system中選中[*]?Root file system on NFS), 以及支持內(nèi)核IP_PNP(即編譯時在Networking中選中[*]?IP: kernel level autoconfiguration)

File systems? --->

Network File Systems? --->

NFS file system support??????????????????????? ## 必選

[*]?? Provide NFSv3 client support???????????? ## 可選

[*] Root file system on NFS??????????????????????? ## 必選

Networking? --->

[*] Networking support

Networking options? --->

[*]?? IP: kernel level autoconfiguration?????? ## 必選

***************************************************************************

A:?NFS啟動掛載根文件系統(tǒng)

主機上操作:

$ cd /usr/local/mpc8349/

$ ./ltib --preconfig config/platform/mpc8349itx/defconfig-min-fs -f

## 依次進入如下選項選擇(X) NFS only, 根據(jù)情況決定是否選擇[ ] read-only root filesystem

--- Target Image Generation

Options? --->

--- Choose your root filesystem image type

Target image: (ext2.gz ramdisk)? --->???????? ## 改ramdisk文件系統(tǒng)為NFS

(X) NFS only

[ ] read-only root filesystem

## 其他情況參考LTIB使用說明(http://blog.chinaunix.net/u2/80953/showart.php?id=1275002)

## 編譯結(jié)束后生成的根文件系統(tǒng)是位于當前安裝目錄下的rootfs (/usr/local/mpc8349/small/rootfs)

$ ln -s /usr/local/mpc8349/small/rootfs? /home/liuby/rootfsln??? ## 建立NFS服務目錄軟連接

$ su - root??????? ## 切換到root用戶,需要密碼

# echo "/usr/local/mpc8349/small/rootfs? 59.64.155.244(rw,sync,no_root_squash)" > /etc/exports???? ## NFS 服務配置

# service portmap restart

# service nfs restart

# exportfs -arv??????? ## 修改的NFS配置生效(exportfs參數(shù)順序不一樣,顯示有所不同,此順序顯示結(jié)果明了)

# exit

實驗板上操作:

uboot啟動后按鍵進入uboot命令行環(huán)境:

=> cp.b fef50000 40000 20000; go 40004??????? ## 驅(qū)動vsc7385芯片

=> set serverip 59.64.155.122????????? ## 主機地址

=> set ipaddr 59.64.155.244??????????? ## 實驗板地址

=> set netmask 255.255.255.0

=> set netdev eth0?????????????????????## eth0

=> ping 59.64.155.122????????????????? ## 測試連通

=> set hostname PowerQUICC

=> set kernaddr fe810000??????????? ## flash中內(nèi)核起始地址

=> set rootpath /usr/local/mpc8349/small/rootfs??????? ## NFS服務根目錄

=>?setenv bootargs root=/dev/nfs rw nfsroot=$serverip:$rootpath ip=$ipaddr:$serverip:$gatewayip:$netmask:$hostname:$netdev:off console=ttyS0,115200

=> bootm $kernaddr

## 如果一切正常,內(nèi)核啟動后會啟動NFS文件系統(tǒng)作根文件系統(tǒng)。

## 測試: 在開發(fā)板上創(chuàng)建一個文件,在主機上會看到這個文件生成

同樣可以簡化操作(測試nfs服務軟連接目錄):

=> cp.b fef50000 40000 20000; go 40004??????? ## 驅(qū)動vsc7385芯片

=> setenv ipaddr 59.64.155.244

=> setenv bootargs root=/dev/nfs rw nfsroot=59.64.155.122:/home/liuby/rootfsln ip=59.64.155.244:59.64.155.122:255.255.255.0 console=ttyS0,115200

=> bootm fe810000??????????? ## 內(nèi)核鏡像uImage在FLASH中的存儲地址

************************

實驗中遇到一個問題,就是bootm之后內(nèi)核啟動,NFS啟動掛載文件系統(tǒng)快完成時出現(xiàn)下面這個錯誤提示

RPC: sendmsg returned error 101

nfs: RPC call returned error 101

后來才發(fā)現(xiàn)是文件系統(tǒng)中的啟動腳本在啟動過程中修改了eth0的ip地址,導致連接不上NFS server

后來再測試又發(fā)現(xiàn)試圖掛載非NFS文件系統(tǒng)目錄時也會出現(xiàn)此問題,并且在主機上執(zhí)行# showmount 命令結(jié)果會顯示有ip地址(實驗板ip地址)掛載。即: 在ltib編譯文件系統(tǒng)時選擇ext2.gz ramdisk (非NFS only), 最后使用rootfs目錄,出現(xiàn)同樣的問題。

還有遇到過一個問題,根本無法掛載文件系統(tǒng),在啟動時出現(xiàn)下述提示

Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(2,0)

<0>Rebooting in 180 seconds..

后來發(fā)現(xiàn)是 /etc/exports 只有如下一句

/home/liuby/rootfs? 59.64.155.244(rw,sync,no_root_squash)

而沒有像下面這樣指定根目錄的訪問權(quán)限:

/usr/local/mpc8349/small/rootfs? 59.64.155.244(rw,sync,no_root_squash)

結(jié)論: 必須指定NFS文件系統(tǒng)所在目錄或其對應的軟連接做NFS服務根目錄(見下分析)

在NFS文件系統(tǒng)中編譯busybox時可以不選擇編譯mount命令(不建議如此)

nfs總結(jié):

如上 /home/liuby/rootfsln是指向/usr/local/mpc8349/small/rootfs的軟連接

# echo "/home/liuby/rootfsln 59.64.155.244(rw,sync,no_root_squash)" > /etc/exports

# exportfs -arv???????????? ## 會彈出下面的提示

exporting 59.64.155.244:/usr/local/mpc8349/small/rootfs

可見 /etc/exports 中語句 /home/liuby/rootfsln 59.64.155.244(rw,sync,no_root_squash) 和 /usr/local/mpc8349/small/rootfs? 59.64.155.244(rw,sync,no_root_squash) 是等效的.

故:?如果想用不同的文件系統(tǒng),可以改變這個軟連接指向新的文件系統(tǒng),這比復制文件系統(tǒng)或者修改u-boot環(huán)境變量方便多了,并且還不用重新配置/etc/exports。

# echo "/home/liuby/rootfsln 59.64.155.244(rw, sync, no_root_squash)" > /etc/exports

$ rm -f /home/liuby/rootfsln

$?ln -s nfs_rootfs_dir_path? /home/liuby/rootfsln??????????? ## 只需要建立和修改這個軟連接即可

#?exportfs -arv??????????? ## 配置生效(必須)

在uboot環(huán)境變量中只需設置一次rootpath=/home/liuby/rootfsln,?每次只需在主機上修改此軟連接的指向,即可

注意權(quán)限

***************************************************************************

B:?TFTP下載內(nèi)核和文件系統(tǒng)鏡像到ram中啟動

主機上操作:

在主機上TFTP根目錄為/home/liuby/tftpboot/

$ mkdir /home/liuby/tftpboot/image_dir

$ cd /usr/local/mpc8349/small/

$ ./ltib --preconfig config/platform/mpc8349itx/defconfig-min-fs-modified -f --batch????????? ## 編譯內(nèi)核和文件系統(tǒng)鏡像

$ cp -f rootfs/boot/uImage? rootfs.ext2.gz.uboot? ~/tftpboot/image_dir/??????? ## 復制內(nèi)核鏡像和文件系統(tǒng)鏡像到~/tftpboot/image_dir

$ cd ~/tftpboot/

$ ln -s image_dir/ bootln

實驗板上操作:

=> set serverip 59.64.155.122????????? ## 主機地址

=> set ipaddr 59.64.155.244??????????? ## 實驗板地址

=> set netmask 255.255.255.0

=> set tftp_path bootln

=> ping $serverip????????????????????? ## 測試連通

=> cp.b fef50000 40000 20000; go 40004??????? ## 驅(qū)動vsc7385芯片

=> setenv loadkernaddr 1000000

=> setenv loadramdaddr 1200000

=>?tftpboot $loadkernaddr image_dir/uImage??? ## 下載內(nèi)核鏡像到ram

=> tftp $loadramdaddr $tftp_path/rootfs.ext2.gz.uboot??? ## 下載文件系統(tǒng)鏡像到ram

=> bootm $loadkernaddr $loadramdaddr??? ## 啟動ram中內(nèi)核和文件系統(tǒng)鏡像

下載不暢時,用CTRL+C來終止回到提示符

tftp總結(jié):

在TFTP服務根目錄下建立目錄存儲鏡像文件,然后創(chuàng)建軟連接指向需要下載的鏡像目錄,這樣可以通過修改連接文件即可,而不用每次修改uboot環(huán)境變量了

***************************************************************************

C:?TFTP下載內(nèi)核鏡像到ram,NFS掛載根文件系統(tǒng)(target image: NFS only)

主機上利用上面操作的結(jié)果,不進行配置。

實驗板上操作:

=> set serverip 59.64.155.122????????? ## 主機地址

=> set ipaddr 59.64.155.244??????????? ## 實驗板地址

=> set netmask 255.255.255.0

=> set bootargs root=/dev/nfs rw nfsroot=$serverip:/home/liuby/rootfsln ip=$ipaddr:$serverip:$netmask console=ttyS0,115200

=> tftp 1000000 bootln/uImage????????? ## 下載內(nèi)核鏡像到ram 地址1000000

=> bootm 1000000

## 測試發(fā)現(xiàn)內(nèi)核啟動,NFS掛載成功

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

簡便方法:

將下面附錄的文件存儲為.txt文件,例如取名mpc8349itx_uboot_env.txt

用linux命令unix2dos進行轉(zhuǎn)換,然后打開windows XP 超級終端,啟動實驗板進入uboot命令行環(huán)境:

點擊超級終端界面 "文件"->"屬性",彈出屬性對話框,點擊"設置"->"ASCII碼設置",設置行延遲20ms,字符延遲1ms;然后點擊"發(fā)送"->"發(fā)送文本文件",選擇"mpc8349itx_uboot_env.txt"發(fā)送。

此操作相當于在uboot命令行輸入uboot環(huán)境設置參數(shù)

執(zhí)行完操作后保存了這些設置,以后每次在uboot啟動時不用再敲入一行行的設置參數(shù).

在uboot命令行下執(zhí)行

=> run flashnfsboot

相當于 A 操作

在uboot命令行執(zhí)行

=> run tftpramboot

相當于執(zhí)行 B 操作

在uboot命令行執(zhí)行

=> run tftpnfsboot

相當于執(zhí)行 C 操作

?轉(zhuǎn)栽地址:http://blog.chinaunix.net/u3/98913/showart_1978279.html

總結(jié)

以上是生活随笔為你收集整理的linux uboot nfs启动,uboot中利用TFTP和NFS加载镜像到ram运行的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。