平台:海思hi3716c
linux kernel:3.0.8
rootfs: mer-core based on release 20121018.1
使用下面的bootargs:
setenv bootargs 'mem=764m vmalloc=600mconsole=ttyama0,115200 mmz=ddr,0,0xb3c00000,100m mtdparts=hi_sfc:448k(fastboot),64k(bootargs),3520k(recovery),64k(deviceinfo);hinand:6m(baseparam),8m(logo),10m(fastplay),30m(cache),10m(misc),10m(kernel),300m(system),134m(userdata),4m(blackbox),1536m(sdcard)root=/dev/nfs rw nfsroot=192.168.188.141:/home/zhanghui/nfs/rootfs/mer-hybris ip=dhcp'
問題1:
原因是:kernel中的nfs支援沒設定好。
解決辦法:
理論上說,要用nfs啟動rootfs,需要有兩個支援:
(1)nfsv3 client support
(2)root file system on nfs
但是,在hi3716c的kernel目錄下,'make menuconfig'時死活沒有看到"root file system on nfs"這個選項。
網上查到"root file system on nfs"對應的是"config_root_nfs",於是
#vim arch/arm/configs/godbox_icsmer_defconfig
在上面的檔案加入"config_root_nfs=y"。
然後執行:
#make godbox_icsmer_defconfig
檢視.config檔案,發現並沒有「config_root_nfs」這個東東。表明沒有生效。
the configuration item config_root_nfs:
原來依賴了config_ip_pnp。
於是,#vim arch/arm/configs/godbox_icsmer_defconfig
設定"config_ip_png=y"
#make godbox_icsmer_defconfig
檢查生成的.config檔案,發現config_root_nfs=y已經在裡面了。
#make -j 8 uimage
將生成的核心arch/arm/boot/uimage燒寫入flash,重啟系統。
問題2在問題1解決後,碰到錯誤資訊:
ip-config: incomplete network configurationinformation.
vfs: unable to mount root fs via nfs,trying floppy.
檢視kernel/net/ipv4/ipconfig.c,發現有幾行**:
/** if none of dhcp/bootp/rarp was selected, return with an error.
* this routine gets only called when some pieces of information
* are missing, and without dhcp/bootp/rarp we are unable to get it.
*/if (!ic_proto_enabled)
從這裡看,應該至少使能dhcp/bootp/rarp中的乙個;檢查godbox_icsmer_defconfig發現,這三個東東沒有。
因此,#vim arch/arm/configs/godbox_icsmer_defconfig
在其中新增三行:
config_ip_pnp_dhcp=y
config_ip_pnp_bootp=y
config_ip_pnp_rarp=y
然後,#make godbox_icsmer_defconfig
#make -j 8 uimage
將生成的核心arch/arm/boot/uimage燒寫入flash,重啟系統。
問題3:
還有乙個沒有搞明白的問題。雖然現在用dhcp獲取ip可以通過nfs掛載rootfs了,但如果在bootargs中改用靜態ip,怎麼也不行,總是列印"sending dhcp request"。不知為什麼。
關於Linux啟動時掛載rootfs的幾種方式
一直對linux啟動時掛載根檔案系統的過程存在著很多疑問,今天在水木精華區找到了有用的資料,摘錄如下 1 linux啟動時,經過一系列初始化之後,需要mount 根檔案系統,為最後執行init程序等做準備,mount 根檔案系統有這麼幾種方式 1 檔案系統已經存在於硬碟 或者類似的裝置 的某個分割槽...
NFS的配置與啟動
這裡插進一段用nfs啟動的實做。在安裝配置的步驟之前,這些都是nfs的一些介紹,下面才是安裝配置的步驟!在centos系統中檢視是否有nfs的命令是 rpm qa 在嵌入式開發階段,通常我們會操作乙個掛載在nfs上的系統,這樣更加方便,快捷,無需每次都燒寫nand或nor檔案。sudo mkdir ...
NFS服務的配置及啟動
nfs服務的配置及啟動 nfs 就是network file system的縮寫,它的最大的功能就是可以通過網路讓不同的機器,不同的作業系統可以彼此共享檔案 share files 所以也可以簡單的將它看作乙個檔案伺服器 file server nfs是通過網路進行資料傳輸,那麼nfs使用哪些埠呢,...