I have an embedded VxWorks target that needs to boot its kernel from my Ubuntu computer. How do I install and run a TFTP server?
3 Answers
TFTP Server Install and Setup
Install following packages.
sudo apt-get install xinetd tftpd tftp
Create /etc/xinetd.d/tftp and put this entry
service tftp { protocol = udp port = 69 socket_type = dgram wait = yes user = nobody server = /usr/sbin/in.tftpd server_args = /tftpboot disable = no }
Create a folder /tftpboot this should match whatever you gave in server_args. mostly it will be tftpboot
sudo mkdir /tftpboot sudo chmod -R 777 /tftpboot sudo chown -R nobody /tftpboot
Restart the xinetd service.
newer systems:
sudo service xinetd restart
older systems:
sudo /etc/init.d/xinetd restart
Now our tftp server is up and running.
Testing our tftp server
Create a file named test with some content in /tftpboot path of the tftp server
Obtain the ip address of the tftp server using ifconfig command
Now in some other system follow the following steps.
tftp 192.168.1.2 tftp> get test Sent 159 bytes in 0.0 seconds tftp> quit cat test
Source: http://mohammadthalif.wordpress.com/2010/03/05/installing-and-testing-tftpd-in-ubuntudebian/
-
1only step 4 needs to be changed, since xinetd is spawned by upstart. you need to restart it with 'service xinetd restart'– BЈовићSep 4, 2013 at 12:14
-
3I followed this instruction and faced permission denied! Destination filename [c2950-i6q4l2-mz.121-22.EA1b.bin]? TFTP: error code 2 received - Access violation %Error opening tftp://10.1.11.14/c2950-i6q4l2-mz.121-22.EA1b.bin (Permission denied) #copy flash:c2950-i6q4l2-mz.121-22.EA1b.bin tftp: Address or name of remote host []? 10.1.11.14 Destination filename [c2950-i6q4l2-mz.121-22.EA1b.bin]? TFTP: error code 2 received - Access violation Apr 8, 2014 at 6:30
-
1@Mohammad Rafiee: the blog post linked to here added some info: run
sudo chmod -R 777 /tftpboot
between step 1 and 2 of "Testing our tftp server". Not that it helped me, but it looks like it helped others.– GauthierAug 28, 2014 at 11:43 -
2On 14.04, this did not work for me. The info about
/tftpboot
in/etc/xinetd.d/tftp
did not seem to matter. Instead, the client looks in the directory/srv/tftp
as specified in/etc/inetd.conf
. I don't if the way things are setup changed since the article, or if I screwed up somehow. If the answer above does not work for you, try putting your test file in/srv/tftp
instead.– GauthierAug 28, 2014 at 12:28 -
2Please note that with Ubuntu 16.04, you will experience
error code 2 (access violation)
. To fix it puttftpboot -s
inserver_args
(no leading slash,-s
at the end. Source: icesquare.com/wordpress/…– CharlesBAug 31, 2018 at 13:13
You can install tftpd-hpa
and change the configurations . Steps for installing tftpd-hpa is explained in this blog post.
-
2Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference.– guntbertSep 6, 2013 at 7:02
-
1upvoted you only because tftpd-hpa is a stupid simple tftp server to use and doesn't actually require any of the config needed in that post just drop your files in /var/lib/tftpboot and you are set (on ubuntu 16.04 not sure about other OS). Jan 3, 2017 at 4:25
You can install atftpd
and it will create a directory called /tftpboot
in which you may place your files. Put especially the pxelinux.0
file there. Any future configuration will be addressed if it is necessary.
When you install the package with
sudo apt-get install atftpd
it will use Debconf to prompt you for some choices. You can set many choices(server timeout may be useful), especially the basepath. You can also adjust the multicast range.
-
What is pxelinux.0 for? I'm booting a VxWorks target, so I thought that I only need the file vxworks in /tftpboot. Oct 15, 2012 at 21:11
-
-
Try renaming
vxworks
topxelinux.0
, just to see whether my answer will work for future users. Oct 18, 2012 at 20:40 -
-
@BЈовић This is somewhat of an old answer and I honestly do not know the procedure for 13.04. Sep 4, 2013 at 11:02