Communicate with your board from a Linux Host (Basics)
Contents
RS232 Terminal configuration
You will need a RS232 terminal emulator to communicate with U-Boot/Linux console. You can choose between:
- Kermit
- Minicom
- GtkTerm
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)
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
- Put some files in /tftpboot
- To test it from U-Boot (if you already have the correct IP addresses, otherwise continue with Setup Basics here):
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