前提:源代码已经编译好,在windows下,下载tftpd32,并创建一个文件夹用来作为共享
查看tftp相关程序
##Linux系统中:
1】检查是否安装tftp server
sudo dpkg –s tftpd-hpa
2】安装
sudo apt-get install tftp-hpa tftpd-hpa
3】修改文件tftpd-hpa
sudo vi /etc/default/tftpd-hpa
###输入
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="-l –c -s"
RUN_DAEMON=”yes”
OPTIONS=”-l-s /tftpboot”
###vim指令
:q 不保存退出,:wq 保存退出,:q! 强制退出, :wq! 强制保存退出(必须有root权限)
4】检查是否安装NFS
sudo dpkg –s install nfs-kernel-server
sudo apt-get install nfs-kernel-server //安装
5】修改配置文件权限
sudo vi /etc/exports
####在最后一行添加:
#/tftpboot/rootfs *(rw,sync,no_root_squash,no_subtree_check)
格式说明:
共享目录:主机名称
主机名称或共享IP:允许按照指定权限访问这个目录的远程主机(如:开发板)
参数:
ro:只读权限
rw:读写权限
no_root_squash:如果是客户端root,那么他对这个目录具有root权限
root_squash:如果是客户端root,那么他的权限被限制为匿名使用者
all_squash:如果是客户端是什么身份,那么他的权限被限制为匿名使用者
6】手动启停NFS服务
sudo/etc/init.d/nfs-kernel-server start ##启动
sudo/etc/init.d/nfs-kernel-server stop ##停止
sudo/etc/init.d/nfs-kernel-server restart ##重启
sudo /etc/init.d/nfs-kermel-server status ##查看当前NFS服务状态
===========================================================================
烧录
###需要传输的文件放在Current Directory目录下。
##想要烧录开发板,首先要从主机上传输文件到开发板 (以开发板DR40X9为例)
*******进入Uboot模式:
7】确保开发板与主机之间可以ping通:
printenv #查看ipaddr,serverip
##如果无法ping通,解决方法如下:
【控制面板】【系统与安全】【windows防火墙】【高级设置】【入站规则】【文件和打印机共享(回显请求 – ICMPv4-In)】-----【ICMPv6-In】【全部启用规则】
8】将需要烧录的bin文件传输到开发板,需要传输的文件必须放在创建的共享文件夹目录下:
# tftpboot PCip -g -r filename //从共享文件夹传输到开发板
# tftp PCip -p -r filename //(从开发板传输到主机)
9】利用tftpboot命令烧录(各开发板文件不同,参数不同,自行查找手册)
tftpboot 参数 文件名
tftpboot 0x84000000 openwrt-ipq40xx-generic-wallys_dr40x9-squashfs-nand-factory.ubi
##烧录成功后,会显示
eth0 PHY0 Down Speed : 10 Half duplex
eth0 PHY1 Down Speed : 10 Half duplex
eth0 PHY2 Down Speed : 10 Half duplex
eth0 PHY3 Down Speed : 10 Half duplex
eth0 PHY4 up Speed : 1000 Half duplex
using eth0 device
TFTP from server 192.168.1.10; our IP address is 192.168.1.11
Filename 'openwrt-ipq40xx-generic-wallys_dr40x9-squashfs-nand-factory.ubi'.
Load address: 0x84000000
Loading: #################################################################
#################################################################
#################################################################
#################################################################
#################################################################
#########################################################
done
Bytes transferred = 7995392 (7a0000 hex)
==============================================================================
#####显示done就ok,整个过程没报错就是正确的
烧录 nornand-ipq40xx-single-2168-202208030527.img
传输文件:
tftpboot nornand-ipq40xx-single-2168-202208030527.img
开始烧录:
imgaddr=0x84000000 && source $imgaddr:script
reset
10】对开发板进行读写操作
nand device 0
nand erase 0x0 0x8000000
nand write 0x84000000 0x0 0x4000000
reset
11】步骤完成,可以进行luci的操作了。