Communicate with your board from a Linux Host (Basics)

From ArmadeusWiki
(Redirected from Tftpboot)
Jump to: navigation, search

RS232 Terminal configuration

You will need a RS232 terminal emulator to communicate with U-Boot/Linux console. You can choose between:

We suggest you to use Kermit as Terminal emulator for RS232 connection. Minicom was sadly reported to have problems when communicating with U-Boot (ZModem data transfer). If you just need a simple serial console and not to transfer data through RS232, then GTKTerm is the perfect choice ! (package gtkterm in Ubuntu)

Note Note: Your terminal should be configured with: 115200 bauds 8N1 parameters


TFTP server

In order to send your image files (U-Boot, Linux, rootfs or FPGA's firmware) at higher speed to your Armadeus board, you can use the Ethernet link and a TFTP server. Once the server started, the files located in the server shared directory (/tftpboot by default) will be accessible from the U-Boot/Linux TFTP clients.

TFTP server installation

  • On *Ubuntu / Debian:
$ sudo apt-get install tftpd xinetd

or use Synaptic

  • On Fedora:
# rpm -q tftpd xinetd
  • Then create the directory that will contain all the files that the server will export (you have to be root to do that):
$ sudo mkdir /tftpboot
$ sudo chmod 777 /tftpboot

Server configuration

  • Edit or create the configuration file /etc/xinetd.d/tftp and modify/add it the following lines:
# default: off
# description: The tftp server serves files using the trivial file transfer
#       protocol.  The tftp protocol is often used to boot diskless
#       workstations, download configuration files to network-aware printers,
#       and to start the installation process for some operating systems.
service tftp
{
       socket_type             = dgram
       protocol                = udp
       wait                    = yes
       user                    = root
       server                  = /usr/sbin/in.tftpd
       server_args             = -s /tftpboot
#       disable                 = yes
}

  • Restart xinetd service:
$ sudo killall -HUP xinetd
BIOS> run download_uboot
MAC: 00:1e:ac:00:00:01
operating at 100M full duplex mode
Using dm9000 device
TFTP from server 192.168.0.2; our IP address is 192.168.0.10
Filename 'apf9328-u-boot.bin'.
Load address: 0x8000000
Loading: ###########################################
done
Bytes transferred = 217656 (35238 hex)
BIOS>

Troubleshooting

Debian Jessie

On debian jessie, if we follow the tutorial above we get this error under U-Boot:

BIOS> run update_kernel 
Using FEC device
TFTP from server 192.168.0.214; our IP address is 192.168.0.11
Filename 'testbench27_apf6_test-linux.bin'.
Load address: 0xa0000000
Loading: *
TFTP error: 'Access violation' (2)
Not retrying...

We can see the problem in log with this command :

$ sudo tailf /var/log/syslog | grep tftp
Oct 23 08:43:29 fabien in.tftpd[24535]: connect from 192.168.0.11 (192.168.0.11)
Oct 23 08:43:29 fabien tftpd[24536]: tftpd: trying to get file: testbench27_apf6_test-linux.bin
Oct 23 08:43:29 fabien tftpd[24536]: tftpd: serving file from /srv/tftp

The tftpboot service seems to not follow the configuration file /etc/xinetd.d/tftp.

To solve problem temporarly, we can make a symbolic link in /srv directory :

cd /srv
sudo ln -s /tftpboot tftp

(XXX) Debian jessie magic

Launch tftp manually :

sudo in.tftpd -l -s /srv/tftp/

Found here

Links