====== 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