On 2017-05-08 05:51, Bernd Fröhlich wrote:
> Problem is: I always get a timeout after about 10 secondes when I try to
> upload the firmware: <
http://bremac.de/timeout.png>.
> (tried several times, always the same result).
the "tftp" command is a client, not a server. "put" expects a server at
the other end, not a router (which is a tftp client).
you need to run "tftpd" (daemon).
sudo launchctl load -w /System/Library/Launchdaemons/tftp.plist
On yosemite desktop the arguments given to launchd in the above:
<key>ProgramArguments</key>
<array>
<string>/usr/libexec/tftpd</string>
<string>-i</string>
<string>/private/tftpboot</string>
This means you have to place your firmware file in /private/tftpboot and
make sure it is world readable (chnod +o=r <file>)
You'll need to use "sudo" to cp the file over.
you could theoretically run the server manually from command line:
sudo /usr/libexec/tftpd -i /Users/<me>/temp -l
and then place the firmware in the "temp" folder in your home directory.
You can ald add -l to log messages to your screen
In this mode, tftpd should just "hang" while it waits for a connection.
You then all the time you want to get your router to want to fecth the
firmware file from it.
Note: the -i argument specifies a "root" directory that tftp daemon
sees and cannot access files above/outside of that.
So, in above example, if you place "firmware.bin" in your temp folder,
then from the router, you ask it to obtain "firmware.bin".
If you wish to move firmware/config FROM your router to your computer,
you first need to create empty files in that "temp" folder, make sure
they are public read/write (chmod +o=rw ) so that tftpd can write to them.
by design tftpd cannot create files. It is an insecure protocol and
allowing file creation would allow ANYONE to trivially create billions
of files in that directory to fill up your disk.
Without a user argument, tftpd changes its user to "nobody" so it does
not have access to your files, unless they are readable by "nobody".