针对于linux开发环境,一般是通过nfs来挂载文件系统,通过tftp下载编译固件
首先需要搭建nfs服务器以及tftp文件系统,
安装nfs服务器软件:
sudo apt-get install nfs-kernel-server
sudo apt-get install portmap
配置环境变量:
mkdir /home/cxt/nfsdir
chmod 777 nfsdir
sudo vim /etc/exports
/home/cxt/nfsdir *(insecure,rw,sync,no_root_squash,no_subtree_check)
sudo mount -o loop -t ext4 core-image-base-imx6ull14x14evk.ext4 /home/cxt/nfsdir/
安装tftp服务器:
1.安装tftp-server
sudo apt-get install tftpd-hpa
sudo apt-get install tftp-hpa(如果不需要客户端可以不安装)
tftp-hpa是客户端
tftpd-hpa是服务器端
2.配置TFTP服务器
sudo vim /etc/default/tftpd-hpa
将原来的内容改为:
TFTP_USERNAME=”tftp”
TFTP_ADDRESS=”0.0.0.0:69″
TFTP_DIRECTORY=”tftp根目录” #服务器目录,需要设置权限为777,chomd 777 //home/cxt/tftp
TFTP_OPTIONS=”-l -c -s”
3.重新启动TFTP服务
sudo service tftpd-hpa restart
sudo service tftpd-hpa restart
关闭防火墙:ufw disable
重启nfs 服务器:sudo service nfs-kernel-server restart
PC端服务器重启之后,需要重新启动tftp以及nfs server端的服务
检测挂载文件系统信息:mount -e
然后就是开发板uboot设置:
U-Boot > setenv loadaddr 0x80800000
U-Boot > setenv fdtaddr 0x83000000
U-Boot > setenv ipaddr 192.168.0.101
U-Boot > setenv serverip 192.168.0.100
U-Boot > setenv gatewayip 192.168.0.1
U-Boot > setenv image zImage
U-Boot > setenv fdt_file zImage-imx6ull-14x14-evk.dtb
U-Boot > setenv rootfsinfo 'setenv bootargs ${bootargs} root=/dev/nfs ip=${ipaddr} nfsroot=${serverip}:/home/cxt/nfsdir,v3,tcp console=ttymxc0,115200 ip=192.168.1.101:192.168.1.102:192.168.1.1:255.255.255.0:imx6ull:eth0:off'
U-Boot > setenv bootcmd_net 'run rootfsinfo; dhcp ${image}; dhcp ${fdt_addr} ${fdt_file}; bootz ${loadaddr} - ${fdt_addr}'
U-Boot > setenv bootcmd 'run bootcmd_net'
U-Boot > saveenv
U-Boot > reset
取消某个环境变量参数: setenv 变量 空,比如删除bootcmd环境变量:setenv bootcmd “”
取消所有的环境参数:
env default -a & saveenv & reset
pc 主机重启以后需要重新配置nfs和tftp服务器,可以通过servei nfs-kernel-server status查看当前的nfs服务状态