正点原子使用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-hpa
和 tftpd-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