前言
淘了一块Marvell ESPRESSObin,但是这块板子没有焊接eMMC,有一个TF卡插槽,一个USB3.0接口和一个USB2.0接口,实测可以从USB3.0接口和TF卡启动,本文记录配置该开发板从NFS启动的过程。本文所记录内容全部是在Ubuntu 16.04环境下实现。
HOST准备工作
在Ubuntu上要配置好TFTP Server和NFS。
配置TFTP Server
TFTP Server用于给ESPRESSObin提供Linux内核及dtb下载。
安装tftpd-hpa,其配置文件是/etc/default/tftpd-hpa,按实际需求修改其中的路径,并将Linux内核及dtb文件放置在该路径下,这里Linux内核及dtb文件直接使用从ESPRESSObin官网下载好的文件。
配置NFS
安装nfs-kernel-server,配置/etc/exports,增加一行指向ESPRESSObin根文件系统所在路径,示例如下
/aarch64rootfs *(rw,sync,no_subtree_check,no_root_squash)
ESPRESSObin配置
U-Boot配置
使用minicom连接ESPRESSObin,启动时按回车停止自动启动,设置如下env:
net_nfs=tftp ${kernel_addr} ${image_name};tftp ${fdt_addr} ${fdt_name};run nfsargs addip addtty addmisc;booti ${kernel_addr} - ${fdt_addr}
nfsargs=setenv bootargs root=/dev/nfs rw nfsroot=${serverip}:${rootpath}
addip=setenv bootargs ${bootargs} ip=${ipaddr}:${serverip}:${gatewayip}:${netmask}:${hostname}:${netdev}:off panic=1
addtty=setenv bootargs ${bootargs} console=${console}
addmisc=setenv bootargs ${bootargs}
console=ttyMV0,115200 earlycon=ar3700_uart,0xd0012000
上面的ipaddr, serverip, gatewayip, netmask, rootpath等根据实际情况进行设置,但是要注意
netdev=wan
这一项必须设置为wan,ESPRESSObin这个板子上有一个交换机芯片,板子上做了3个网口,其中靠近USB3.0的那个接口是wan口,要将netdev设置为wan,并将网线插到这个接口中才能通过NFS启动,不然通过U-Boot加载内核之后,挂载根文件系统的时候就失败了。