玉米糊 发表于 2014-8-6 11:56:14

MYD-AM335X在u-boot下通过网络挂载NFS文件系统

第一步 搭建NFS服务器
1、请参考以下地址的第一步,完成搭建NFS服务器:http://bbs.myir-tech.com/thread-6160-1-1.html。

第一步 设置u-boot环境
2、启动开发板倒计时时按回车进入 u-boot 命令行模式。

3、配置uboot环境
set ipaddr 192.168.1.250
set ethaddr 88:33:14:f6:c0:d4
set serverip 192.168.1.220
saveenv
reset

以上命令作用分别是:设置开发板IP地址、设置网口MAC地址、设置Ubuntu主机服务器的IP地址、保存变量、重启。然后使用ping命令确保开发板和主机ping通:
ping 192.168.1.220
Auto negotitation failed
link up on port 0, speed 100, full duplex
Using cpsw device
host 192.168.1.220 is alive
如上,如果提示 host xxx is alive 说明可以和主机ping通。

如果无法连通,会提示:
ping 192.168.1.220
Auto negotitation failed
Auto negotitation failed
Using cpsw device
ping failed; host 192.168.1.220 is not alive
Ping不通请按以下办法排查:《AM335X板U-Boot下Ping不通主机解决步骤》。

第三步 配置u-boot从NFS启动
要挂载NFS文件系统,目标板u-boot中nfs配置的IP需按一下格式设置:
ip=<client-ip>:<server-ip>:<gw-ip>:<netmask>:<hostname>:<device>:<autoconf>

各部分作用,

[*]<client-ip>:目标板的IP
[*]<server-ip>:NFS服务器主机的IP
[*]<gw-ip>:目标板网关(和主机网关一样)
[*]<netmask>:目标板掩码(和主机掩码一样)
[*]<hostname>:主机名称,可留空
[*]<device>:目标板网络设备,如 eth0
[*]<autoconf>:自动配置网络,即DHCP功能,可设置为on或者off

比如我的目标板和NFS信息为:

[*]目标板IP:192.168.1.250
[*]NFS服务器IP:192.168.1.220
[*]网关:192.168.1.1
[*]掩码:255.255.255.0
[*]使用目标板网络eth0
[*]关闭DHCP
[*]NFS服务器根目录为:/home/jbo/nfsdir
[*]目标板文件系统放在:/home/jbo/nfsdir/rootfs(必须是在NFS服务器目录下)

那么要从挂载NFS文件系统,进入u-boot,执行配置:
run bootargs_defaults;set bootargs ${bootargs} root=/dev/nfsroot nfsroot=192.168.1.220:/home/jbo/nfsdir/rootfs ip=192.168.1.250:192.168.1.220:192.168.1.1:255.255.255.0::eth0:off

设置 nand_boot 选项:
set nand_boot 'nandecc hw 2; nand read.i ${kloadaddr} ${nand_src_addr} ${nand_img_siz}; bootm ${kloadaddr}'

保存:
saveenv


重启开发板就ok了。

如何还原为 NandFlash 启动?
如果以后还是挂载nanflash里面的文件系统,再重新设置 nand_flash 值即可。如下,添加了“echo Booting from nand ...; run nand_args; ”:

set nand_boot ' echo Booting from nand ...; run nand_args; nandecc hw 2; nand read.i ${kloadaddr} ${nand_src_addr} ${nand_img_siz}; bootm ${kloadaddr}'

页: [1]
查看完整版本: MYD-AM335X在u-boot下通过网络挂载NFS文件系统