用NFS掛載時引數解析及uboot設定
NFS引數解析和uboot核心設定
setenv bootargs "root=/dev/nfs nfsroot=192.168.0.231:/forlinx/rootip=192.168.0.232:192.168.0.231:192.168.0.2 0 1:255.255.255.0:witech.com.cn:eth0ff console=ttySAC0,115200"
/dev/nfs 是固定的
192.168.0.231 是PC上Linux伺服器的IP
192.168.0.231:/forlinx/root 是被掛載的目錄192.168.0.232 是開發板的IP
192.168.0.201 是閘道器
255.255.255.0 是子網掩碼
witech.com.cn 是名字,可以改
嵌入式linux的開發中,核心移植及根檔案系統的建立過程中,為了驗證核心移植是否成功,根檔案系統的建立是否可行,需要將它們的映像檔案燒寫到Flash中反覆試驗。如此頻繁地燒寫Flash,既浪費時間,減低了開發效率,還會對Flash造成損傷。因此在核心移植及根檔案系統的建立過程中一般採用網路引導。具體操作過程如下:一 Boot Loader環境變數及核心引數設定我的開發板的boot loader採用的是U-boot,其環境變數設定如下:Uboot> printenv
核心配置要求新增核心對NFS的支援:選中networking options-》IP:kernel level auloconfiguralion項選中file systems-》network file systems-》下的root file system on nfs 和nfs file system support
NFS伺服器配置
以root身份登陸Linux伺服器,編輯/etc目錄下的共享目錄配置檔案exports,指定共享目錄及許可權等。
執行如下命令編輯檔案/etc/exports:# vi /etc/exports在該檔案裡新增如下內容:/home/zht/rfsys 192.168.0.*(rw,sync,no_root_squash)編輯完過後儲存退出,然後執行命令exports –rav檢查輸入是否正確。新增的內容表示:允許ip地址範圍在192.168.0.*的計算機以讀寫的許可權來訪問/home/zht/rfsys目錄。/home/work也稱為伺服器輸出共享目錄。括號內的引數意義描述如下:rw:讀/寫許可權,只讀許可權的引數為ro;sync:資料同步寫入記憶體和硬碟,也可以使用async,此時資料會先暫存於記憶體中,而不立即寫入硬碟。no_root_squash:NFS伺服器共享目錄使用者的屬性,如果使用者是 root,那麼對於這個共享目錄來說就具有 root 的許可權。接著執行如下命令,啟動埠對映:# /etc/rc.d/init.d/portmap start最後執行如下命令啟動NFS服務,此時NFS會啟用守護程序,然後就開始監聽 Client 端的請求:# /etc/rc.d/init.d/nfs start在NFS伺服器啟動後,還需要檢查Linux伺服器的防火牆等設定(一般需要關閉防火牆服務,執行iptables -F),確保沒有遮蔽掉NFS使用的埠和允許通訊的主機,主要是檢查Linux伺服器iptables,ipchains等選項的設定,以及/etc/hosts.deny,/etc/hosts.allow檔案。我們首先在Linux伺服器上進行NFS伺服器的迴環測試,驗證共享目錄是否能夠被訪問。在Linux伺服器上執行如下命令:# mount –t nfs 192.168.0.20: /home/zht/rfsys /mnt# ls /mnt命令將Linux伺服器的NFS輸出共享目錄掛載到/mnt目錄下,因此,如果NFS正常工作,應該能夠在/mnt目錄看到/home/work共享目錄中的內容。
TFTP伺服器的配置以root使用者登入,執行setup命令#setup選擇Systme services,選擇tftp。開啟tftp配置檔案/etc/xinetd.d/tftp將server_args設定為核心映像檔案所在目錄,預設為/tftpboot我的核心映像在/home/zht/sources/kernel/linux-2.4.27目錄中,設定如下:service tftp{ disable = no socket_type = dgram protocol = udp wait = yes user = root server = /usr/sbin/in.tftpd server_args = -s /home/zht/sources/kernel/linux-2.4.27 per_source = 11 cps = 100 2 flags = IPv4}重新啟動PC linux作業系統或者執行service xinetd restart命令啟動tftp伺服器。執行netstat -a | grep tftp 可以檢視tftp伺服器是否配置成功。