嵌入式Linux移植3. NFS根文件系統掛載(從Ubuntu啓動內核,文件系統)

環境介紹:

Windows10

vmware+Ubuntu16.04
OK335xd+am3354(forlinx家的板子)

 

操作目標、結果:

uboot:使用flash中的uboot引導內核

uImage:通過tftp使用Ubuntu中的/tftpboot中的uImage啓動

rootfs根文件系統:通過NFS使用Ubuntu中的/nfs_rootfs中的根文件系統(bin,dev,etc......)

 

 

操作前提:

1.板子可以ping通Windows,Ubuntu

2.tftp服務可以使用

 

操作流程:

1.啓動板子進入uboot-shell

2.設置環境變量

setenv serverip 192.168.0.210   (192.168.0.210爲tftp服務器的ip)
setenv ipaddr 192.168.0.215   (192.168.0.215爲開發板ip和服務器的ip應該在一個網段中)
saveenv

setenv bootargs console=ttyO0,115200n8 root=/dev/nfs nfsroot=192.168.0.210:/nfs_rootfs,nolock rw ip=192.168.0.215:192.168.0.210:192.168.0.1:255.255.255.0::eth0:off screentype=R screensize=800x600-vga

(nfsroot=192.168.0.210:/nfs_rootfs 中的 192.168.0.210 爲 ubuntu 服務器 ip, /nfs_rootfs 爲 ubuntu
下所建的存放文件系統的路徑, 192.168.0.215 是開發板的 ip)

setenv bootcmd "tftp 80000000 uImage;bootm 80000000"

save

備註:如果kernel啓動後信息彙報VFS: Unable to mount root fs via NFS, trying floppy. 則很可能是以上環境變量設置不對,或者文          件系統有問題,或是內核中沒選支持NFS(forlink的已經選了)可以多設置幾次環境變量,錯誤提示如下

若內核中未選:File Systems -> Network File System中選擇 NFS client support 以及 Root file system on NFS。如果找不到Root file        system on NFS 選項,要打開第一級菜單下的Networking support -> Networking options -> TCP/IP networking -> IP: kernel level autoconfiguration。如果NFS要使用DHCP,還得選上 IP: DHCP support。

3.內核啓動成功,板子Linux輸入root獲取管理員權限,cd到/mnt,ls

                            Ubuntu中吧ledtest.o移入nfs_rootfs中的/mnt

                            板子Linux再次ls,出現ledtest

                            板子執行./ledtest

                           小燈閃爍

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章