正点原子使用nfs和sftp启动开发板

正点原子使用nfs和sftp启动开发板

1 NFS 服务开启

后面进行 Linux 驱动开发的时候需要 NFS 启动,因此要先安装并开启 Ubuntu 中的 NFS 服务,使用如下命令安装 NFS 服务:

sudo apt-get install nfs-kernel-server rpcbind

以后我们可以在开发板上通过网络文件系统来访问nfs文件夹,要先配置 nfs,使用如下命令打开 nfs 配置文件/etc/exports

sudo vim /etc/exports
#打开后添加如下命令
/home/zuozhongkai/linux/nfs *(rw,sync,no_root_squash)

#重启 NFS 服务,使用命令如下
sudo /etc/init.d/nfs-kernel-server restart

紧接着就是测试nfs是否成功打开

使用nfs操作之前需要 创建一个文件夹

使用如下命令测试nfs是否配置成功

nfs [loadAddress] [[hostIPaddr:]bootfilename]
nfs 80800000 192.168.1.253:/home/user/linux/nfs/zImage

2 SSH 服务开启

使用如下命令

sudo apt-get install openssh-server

3 网络操作命令

uboot 是支持网络的,我们在移植 uboot 的时候一般都要调通网络功能,因为在移植 linux kernel 的时候需要使用到 uboot 的网络功能做调试。uboot 支持大量的网络相关命令,比如 dhcp、ping、nfs tftpboot,我们接下来依次学习一下这几个和网络有关的命令。

在使用 uboot 的网络功能之前先用网线将开发板的 ENET2 接口和电脑或者路由器连接起来,I.MX6U-ALPHA 开发板有两个网口:ENET1 ENET2,一定要连接 ENET2,不能连接错了。

设置环境变量

setenv ipaddr 192.168.1.50  #这个是开发板的本地地址
setenv ethaddr b8:ae:1d:01:00:00
setenv gatewayip 192.168.1.1
setenv netmask 255.255.255.0
setenv serverip 192.168.1.253 #这个是ubuntu的网络地址
saveenv

使用ping命令查看ubuntu和开发板是否连接成功

ping 192.168.1.253

如果网口没有打开就需要打开网口

ifconfig -a #查看网口情况
ifconfig eth0 up

4 tftp传输文件

tftp 命令的作用和 nfs 命令一样,都是用于通过网络下载东西到 DRAM 中,只是 tftp 命令使用的 TFTP 协议,Ubuntu 主机作为 TFTP 服务器。因此需要在 Ubuntu 上搭建 TFTP 服务器,需要安装 tftp-hpatftpd-hpa,命令如下:

sudo apt-get install tftp-hpa tftpd-hpa
sudo apt-get install xinetd

和 NFS 一样,TFTP 也需要一个文件夹来存放文件,在用户目录下新建一个目录,命令如下:

mkdir /home/user/linux/tftpboot
chmod 777 /home/user/linux/tftpboot

最后配置 tftp,安装完成以后新建文件/etc/xinetd.d/tftp,如果没有/etc/xinetd.d 目录的话自行创建,然后在里面输入如下内容:

 server tftp
{
    socket_type = dgram
    protocol = udp
    wait = yes
    user = root
    server = /usr/sbin/in.tftpd
    server_args = -s /home/user/linux/tftpboot/
    disable = no
    per_source = 11
    cps = 100 2
    flags = IPv4
}

完了以后启动 tftp 服务,命令如下:

sudo service tftpd-hpa start

打开/etc/default/tftpd-hpa 文件,将其修改为如下所示内容:

# /etc/default/tftpd-hpa

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/home/user/linux/tftpboot"
TFTP_ADDRESS=":69" 
TFTP_OPTIONS="-l -c -s"

TFTP_DIRECTORY 就是我们上面创建的 tftp 文件夹目录,以后我们就将所有需要通过TFTP 传输的文件都放到这个文件夹里面,并且要给予这些文件相应的权限。

最后输入如下命令, 重启 tftp 服务器:

sudo service tftpd-hpa restart

tftp 服务器已经搭建好了,接下来就是使用了。将 zImage 镜像文件拷贝到 tftpboot 文件夹中,并且给予 zImage 相应的权限,命令如下:

cp zImage /home/user/linux/tftpboot/
cd /home/user/linux/tftpboot/
chmod 777 zImage

万事俱备,只剩验证了,uboot 中的 tftp 命令格式如下:

tftpboot [loadAddress] [[hostIPaddr:]bootfilename]
tftp 80800000 zImage