1. 问题描述
nfs(Network File System)网络文件系统,通过nfs可以在计算机之间通过网络来分享资源,比如可以将linux 镜像和设备树文件放到Ubuntu中,然后在uboot中使用nfs命令将Ubuntu中的linux镜像和设备树下载到开发板的DRAM中。这样做的目的是为了方便调试linux镜像和设备树,也就是网络调试,通过网络调试是Linux开发中最常用的调试方法。uboot中的nfs命令格式如下所示:
nfs [loadAddress] [[hostIPaddr:]bootfilename]
loadAddress是要保存的DRAM地址,[[hostIPaddr:]bootfilename]是要下载的文件地址。以ALIENTEK-ALPHA开发板编译的Linux镜像文件zImage下载到开发板DRAM的0x80800000这个地址处,如下图所示:
由上图可以看出nfs下载Linux镜像文件zImage出现 Loading: *** ERROR: File lookup fail
错误。
2. 解决方案
上面的错误是因为uboot无法通过nfs启动Ubuntu系统内的共享目录。需要在
/etc/default/nfs-kernel-server文件进行修改,修改完成后保存退出重启下nfs服务就可以了。修改内容如下图所示:
配置完成后使用sudo service nfs-kernel-server restart命令重启nfs服务。
3. 验证nfs服务
重新启动ALIENTEK-ALPHA开发板,uboot启动完成后使用nfs命令下载Linux镜像文件zImage,如下图所示: