前置作業:
1. Build好的uImage放tftp
2. Build/output/ImageTree目錄放NFS export path備用
3. 登入BMC console測試是否可mount NFS: mount -t nfs -o rw,nolock {src_nfs_path} {dest_path}
NFS開機模式步驟:
1. 重啟BMC,當BMC出現Hit any key to stop autoboot:時按任意鍵,進入u-boot畫面
2. 設定環境變數: (在本機的u-boot)
3.1 備份原本環境變數
print #複製下來另存新檔
3.2 設定環境變數
setenv ipaddr {ipaddr} #給u-boot一個隨意靜態IP
setenv serverip {serverip} #設定tftp server IP
setenv bootcmd 'tftp 82000000 uImage; bootm 82000000' #設定從tftp的uImage開機
(原本是bootcmd=bootfmh #從本機load進memory的uImage開機,復原時只要改回這個即可)
setenv bootargs 'root=/dev/nfs rw nfsroot={nfs_ip}:{nfs_export_path} ip=dhcp console=ttyS4,38400' #設定BMC檔案系統root從NFS mount起來,並給予BMC dhcp IP
(如要指定static ip, ip={bmcip}:{serverip}:{gatewayip}:{netmask}::{bmcnicname}:off)
(如果mount nfs出現錯誤,首先要在bootargs放上nfsrootdebug參數找出真正的原因,若是沒加nolock的問題,將nfsroot=最後加上nolock即可,i.e.nfsroot={nfs_ip}:{nfs_export_path},nolock)
saveenv #存檔寫回本機的uImage
tftp 82000000 uImage #測試tftp的uImage能不能load進memory
bootm 82000000 #從0x82000000記憶體開機
3.3 執行重開機
run bootcmd
登入BMC後查看/proc/cmdline,是否載入kernal是我們bootcmd寫的NFS參數
U-boot指令:
http://flykof.pixnet.net/blog/post/22975136-u-boot%E6%8C%87%E4%BB%A4
BMC default IP: 192.168.0.120
Baud rate: 38400 / 115200
TFTP installation:
https://yulun.me/2016/setup-tftp-server-on-ubuntu/