【简介】虽然上篇文章中成功的在macOS下刷新了固件,但是很多小伙伴在实际操作中碰到了无法成功的状况,我们来看看最常见的一种。
在/private/tftpboot目录拷贝另一个版本的固件文件,具体拷贝过程不再详述。
打开终端,输入命令 sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist 和 sudo launchctl start com.apple.tftp,启动macOS自带的TFTP服务。然后输入命令 screen -L /dev/cu.usbserial-A9Z484ZY -L 进入serial窗口,上篇文章有介绍,这里一笔带过。
启动防火墙,出现按键提示后,按回车或空格键,出现菜单,这次我们按G键,菜单里没有这个按键提示,按G键,可以快速的配置TFTP并启动上传。接口、TFTP服务器IP地址和本地IP地址都是上次操作时设置好的,保持默认,只有固件映像文件名需要再次输入,这里我们输入新的7.2.6版本的固件完整文件名,开始连接TFTP服务器,紧接着就报错,无法上转固件文件。
为什么会报错?上一篇文章的操作是成功的,问题出在哪里?再次重启防火墙,按任意键进入菜单,按G键启动TFTP快速配置,这次文件名输入7.4.2版本的,连接TFTP服务器,这次文件上传成功,看来问题出在文件上。
首先我们排除文件的完整性,因为7.2.6版本的固件在浏览器管理防火墙的模式下是可以正常更新固件的。那么只有一个可能,就是权限问题了。首先我们看看可以正常刷新的7.4.2版本文件的权限。回到/private/tftpboot目录,鼠标右键点击7.4.2版本文件,弹出菜单选择【显示简介】。
弹出长条形窗口,鼠标点击最下方的【共享与权限】。
可以看到成功刷新的固件文件共有三项权限组成。
再打开不能成功刷新的7.2.6版本文件权限,为了方便对比,我们把两个文件权限放在一起,用红框标注了权限不同的地方。
鼠标点击7.2.6版本文件everyone权限,将无法访问改为只读。
everyone的权限修改完成,改完就可以了,无需保存操作。
再次进行刷固件操作,文件为7.2.6版本,这个版本的权限已经将everyone改为只读了,可以看到上传仍然失败。
两个文件就只剩下一个staff权限了。点击7.2.6版本文件权限下面的+号。
弹出窗口的【用户与群组】里并没有看到staff,这里我们选择【Administrators】,点击【选择】。
现在两个文件权限的差别是,一个为staff只读,另一个为admin只读。
很显然,admin比staff的权限更大,再次刷新固件,这次文件可以成功上传了。
【总结】这个案例中,很多人看到故障提示,首先就会下判断,怀疑TFTP服务没有启动。然后花大量精力去查看MAC的TFTP服务启动问题。我们应该多动手,用成功的操作做对比,从而快速找到问题点。