TFTP on macOS
Client
Before entering tftp, change your directory in terminal where the file you want to push is sent.
tftp 192.168.x.x
Prompt switches to tftp>
bin # sets tftp to binary mode trace on # gives you verbose output put [firmware file]
Server
The server is disabled by default.
Starting the tftp server
sudo launchctl load -F /System/Library/LaunchDaemons/tftp.plist
Stopping the tftp server
sudo launchctl unload -F /System/Library/LaunchDaemons/tftp.plist
Check the process to ensure the server is running. If there is a blank response, server is not running.
netstat -atp UDP | grep tftp
The tftp server uses /private/tftpboot as its default folder. You can use command+shift+g to enter the path directly. Any files you wish for the client to receive, you must move the files there.
cp filename /private/tftpboot
Since the folder is restricted, you need to set the correct permissions on the file.
chmod -R 766 /private/tftpboot
There is a gotcha with the TFTP daemon, which is you cant copy a file to the TFTP daemon if that file does not already exist there. To work around it you can just create a file and set the permission for it. Then your devices will just send data into the pre-created file.
### Create the file touch /private/tftpboot/FILENAME ### Set permissions chmod -R 766 /private/tftpboot