We are trying to setup an TFTP server on our Ubuntu Linux host machine for downloading and flashing embedded Linux images to our device which contains a Colibri i.MX7D V1.1C module. We’ve followed the information contained in the: Flashing Embedded Linux over Ethernet and How to setup Networking for Embedded Linux Application Development documents for setup and configuration of the TFPT server running on our Ubuntu Linux host.
We downloaded tftpd-hpa using sudo apt-get install tftpd-hpa
and we created the file: tftpd-hpa on the host in the folder: /etc/default/
. Here are the contents of the tftpd-hpa file:
# /etc/default/tftpd-hpa
TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftp/"
TFTP_ADDRESS="[::]:69"
TFTP_OPTIONS="--secure"
These are the file contents specified in the How to setup Networking for Embedded Linux Application Development document.
We are using IP addresses in U-boot for the client and server that are different from those specified in the Flashing Embedded Linux over Ethernet document since we have a private network setup for communication between the Ubuntu Linux host and the device. For the host we are using 192.168.0.8 instead of 192.168.10.1, and for the client we are using 192.168.0.1 instead of 192.168.10.2.
We are running the Ubuntu Linux host in a VMware virtual machine in a Windows 7 OS. We’ve been successfully using this setup, along with our private network, to debug and download a Qt Application to the device. We can also use SCP to copy files to and from the device using commands from a Terminal Emulator window in Ubuntu Linux.
We’ve tried pining the host IP address from U-boot, and we receive the following output which indicates that U-boot sees the host:
Colibri iMX7 # ping 192.168.0.8
Using FEC0 device
host 192.168.0.8 is alive
Colibri iMX7 #
But when we start U-boot and type: run setupdate
we see the following output which indicates that U-boot is attempting to make a connection to the tftp server:
Colibri iMX7 # run setupdate
MMC: no card present
starting USB...
USB0: USB EHCI 1.00
scanning bus 0 for devices... unable to get device descriptor (error=-1)
1 USB Device(s) found
USB1: USB EHCI 1.00
scanning bus 1 for devices... 1 USB Device(s) found
scanning usb for storage devices... 0 Storage Device(s) found
** Bad device usb 0 **
Using FEC0 device
TFTP from server 192.168.0.8; our IP address is 192.168.0.1
Filename 'colibri_imx7/flash_eth.img'.
Load address: 0x80800000
Loading: T T T T T T T T T T
Retry count exceeded; starting again
Colibri iMX7 #
The client seems to be timing out waiting for a connection to the TFTP server.
We’ve made sure that the TFTP server is running by executing the following command from a Terminal Emulator window: sudo service tftpd-hpa start
.
We also have the necessary files available in the /srv/tftp/
location which were placed there using the ./update.sh -o /srv/tftp/
. We found documentation online that indicates problems occur on occasion when using the line: TFTP_ADDRESS="[::]:69"
in a file. The suggestion was to use: TFTP_ADDRESS="0.0.0.0:69"
instead. We tried this but still experienced the same problem.
What can we do to fix this problem and make TFTP work correctly as it will be important for us to use this method of downloading the image in the future?
Thank You.