用NFS启动rootfs的浅度总结
来源:互联网 发布:php和exec类似的函数 编辑:程序博客网 时间:2024/06/03 17:34
平台:海思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:
VFS: Cannot open root device"nfs" or unknown-block(0,255)
Pleaseappend a correct "root=" boot option; here are the availablepartitions:原因是: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”这个东东。表明没有生效。
找到链接http://cateee.net/lkddb/web-lkddb/ROOT_NFS.html,里面有描述:
Root file system on NFS found in fs/nfs/Kconfig
The configuration item CONFIG_ROOT_NFS:
- prompt: Root file system on NFS
- type: bool
- depends on:
CONFIG_NFS_FS =CONFIG_y && CONFIG_IP_PNP
- defined in fs/nfs/Kconfig
- found in Linux kernels: 2.6.29–2.6.39, 3.0–3.4, 3.6, 3.7-rc+HEAD
于是,
#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.
VFS: Cannot open root device"nfs" or unknown-block(2,0)
Pleaseappend a correct "root=" boot option; here are the availablepartitions:查看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) {
printk(KERN_ERR "IP-Config: Incomplete network configuration information.\n");
return -1;
}
从这里看,应该至少使能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"。不知为什么。
- 用NFS启动rootfs的浅度总结
- 用NFS启动rootfs的浅度总结
- 用NFS挂载rootfs
- nfs方式启动rootfs配置过程
- rootfs,initrd,NFS
- 使用nfs挂载rootfs
- Tiny6410 tftpboot & NFS rootfs
- 利用nfs调试rootfs
- NFS方式挂载rootfs的设置方法
- 利用uboot启动远程Kernel(TFTP)以及挂载远程ROOTFS(NFS)
- 利用uboot启动远程Kernel(TFTP)以及挂载远程ROOTFS(NFS)
- HI3520D使用nfs做rootfs
- nfs启动开发板总结
- ubuntu下tiny6410通过NFS启动系统的方法总结
- linux 启动 挂载rootfs
- rootfs 启动出错
- linux启动时挂载rootfs的几种方式
- linux启动时挂载rootfs的几种方式
- 常用CssHack的写法(IE6-9)以及主流浏览器hack写法
- win7中通过有线连接共享wifi热点设置,让其他有无线网卡的终端连接上网。。
- 第一章 简单工厂模式
- flex学习
- 旧版本Xcode工程在Xcode4.5下真机无法调试问题的解决
- 用NFS启动rootfs的浅度总结
- javadoc,在 Java 的注释上做文章
- (1) MPI-IO: 基本函数 open, close, write_shared
- 半生缘的伤感时尚空间日志发布:残缺的爱,不完美
- Stunnel 加密隧道搭建
- 安装oracle 11g报错
- 如何判断不同格式的文本
- 把Vim改装成一个IDE编程环境
- 关于wince串口接收数据异常