imx53的nfs啓動內核和文件系統

最近一直研究imx53的nfs啓動,今天終於搞出來了,結果csdn又不能寫博客了,這幾天一直被這個問題困擾着,上網搜了好多資料,但都是給出了一系列的代碼,問題是針對每一種開發板的設置還不一樣,整的自己暈暈乎乎的,不知道用哪一種方法。今天把網上的方法整理了一下,終於把nfs啓動搞定了,下面廢話不多說,說說我的過程吧

虛擬機中的設置:

           1)在虛擬機中的ubuntu下面的mnt下面建立一個rootfs文件夾,mkdir /mnt/rootfs

            2)在虛擬機中添加的共享目錄中添加新建的文件名和訪問ip

                 gedit /etc/exports

                  在最後一行添加

                       /mnt/rootfs 192.168.0.*(insecure,rw,sync,no_root_squash,no_subtree_check)

                      如果不添加的話,無法掛載,而且後面的各種屬性的意思,百度上都有,我就不解釋了

            3)重啓nfs 輸入命令  /etc/init.d/nfs-kernel-server restart

                  關閉防火牆 ufw status 先查看一下防火牆狀態,然後關閉 ufw disable

如果想看看共享文件夾是否成功的話,可以在開發板上掛載一下這個文件夾試試

             比如我的虛擬機ip是192.168.0.61

                  在超級終端輸入:mount -o nolock 192.168.0.61:/mnt/rootfs  /mnt/nfs

                   測試一下是否能掛載成功

在uboot邊的設置如下

                    建議使用環境變量沒改過的uboot,有時候改亂了,就不大好了,

               我的uboot改正後是這樣的


 1)開機的時候先觀察一下自己的uboot是如何引導的,看最後一行bootcmd=run bootcmd_net ,開機首先運行這一句,

2)然後我們跳到bootcmd_net這一句,這一句是我改正後的,bootcmd_net 運行了三句,其中第二句和第三句是關鍵,bootarts_nfs,在上面有,他設置了,rootfs文件系統的位置和定義爲nfs啓動,通過我們觀察bootarts_nfs,我們可以發現,我們只需要設置一下serverip和nfsroot就可以了,設置爲自己的,其中的root=/dev/nfs 是虛擬的,不用管,直接這麼寫就可以

3)第三句是我自己改正的,這句是引導內核的,其中loadaddr爲加載到內存中的地址,後面爲nfs內核的目錄(這種方法不穩定)

   修正,這裏的bootcmd_net中的nfs加載內核的方式修改爲tftp ${loadaddr}......因爲nfs不穩定,加載不好使,所以改成tftp加載,這樣需要提前在虛擬機中修改tftp目錄,gedit /etc/xinetd.d/tftp

LINUX tftp配置方法:



1.下載tftp服務器、客戶端tftp和守護進程xinetd三個包

yum install xinetd tftp tftp-server 

 

2.配置gedit /etc/xinetd.d/tftp 

修改server_args = -s /tftpboot -c,這裏的-c一定要加上,否則只能下載不能上傳!!!

service tftp

{

disable = no

socket_type             = dgram

protocol                = udp

wait                    = yes

user                    = root

server                  = /usr/sbin/in.tftpd

server_args             = -s /tftpboot -c

per_source              = 11

cps                     = 100 2

flags                   = IPv4

}

 

3.關閉防火牆  

lokkit --disabled

 

4.建立tftp工作目錄並修改屬性(不修改屬性會出現error)

cd /

mkdir tftpboot

chmod 777 -R /tftpboot/

 

然後

ifconfig

tftp 192.168.1.111

get 111

 

 

此時會出現錯誤

Error code 0: Permission denied 

gedit  /etc/sysconfig/selinux,

設定其中的 

SELINUX=disabled 

然後重啓電腦即可 





   然後在uboot中修改一下內核爲tftp目錄下就可以了,別忘了把內核複製到tftp目錄哈,

這麼多天,包括五一假期也放在這上面了,終於有結果了

這樣引導就可以使用了,其實把內容網上都有,但是不適合自己罷了,關鍵時刻還是要自己分析引導過程,懂得原理才能解決問題,一味的亂查資料,這樣只會事倍功半
發佈了25 篇原創文章 · 獲贊 10 · 訪問量 32萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章