2. Quick start guide

This document will guide you from importing the virtual machine to debugging an Hello World! example on a customized Linux distribution you will generate with OpenEmbedded/Yocto toolchain.

2.1. Install

The development environment is provided as a virtual disk (to be used by a VirtualBox virtual machine) which you can download from this page:


Compute the MD5SUM value of the zip file you downloaded and compare it to the golden one you find in the download page.

Uncompress the file, and you will get a .vdi file that is our virtual disk image. The environment contains the SDK for all the boards provided by Architech, Hachiko included.

2.1.1. Download VirtualBox


For being able to use it, you first need to install VirtualBox (version 4.2.10 or higher). You can get VirtualBox installer from here:


Download the version that suits your host operating system. You need to download and install the Extension Pack as well.


Make sure that the extension pack has the same version of VirtualBox.

Install the software with all the default options.

2.1.2. Create a new Virtual Machine

  1. Run VirtualBox
  1. Click on New button
  1. Select the name of the virtual machine and the operating system type
  1. Select the amount of memory you want to give to your new virtual machine
  1. Make the virtual machine use Architech’s virtual disk by pointing to the downloaded file. Than click on Create.

2.1.3. Setup the network

We need to setup a port forwarding rule to let you (later) use the virtual machine as a local repository of packages.


The virtual machine must be off

  1. Select Architech’s virtual machine from the list of virtual machines
  1. Click on Settings
  1. Select Network
  1. Expand Advanced of Adapter 1
  1. Click on Port Forwarding
  1. Add a new rule
  1. Configure the rule
  1. Click on Ok

2.1.4. Customize the number of processors

Building an entire system from the ground up is a business that can take up to several hours. To improve the performances of the overall build process, you can, if your computer has enough resources, assign more than one processor to the virtual machine.


The virtual machine must be off

  1. Select Architech’s virtual machine from the list of virtual machines
  1. Click on Settings
  1. Select System
  2. Select Processor
  3. Assign the number of processors you wish to assign to the virtual machine

2.1.5. Create a shared folder

A shared folder is way for host and guest operating systems to exchange files by means of the file system. You need to choose a directory on your host operating system to share with the guest operating system.


The virtual machine must be off

  1. Select Architech’s virtual machine from the list of virtual machines
  1. Click on Settings
  1. Select Shared Folders
  2. Add a new shared folder
  1. Choose a directory to share on your host machine. Make sure Auto-mount is selected.

Once the virtual machine has been booted, the shared folder will be mounted under /media/ directory inside the virtual machine.

2.1.6. Install VBox Additions

The VBox addictions add functionalities to the virtual machine such as better graphic driver and more. It is already installed in the SDK but is important re-install it to configuring correctly the virtual machine with your operating system.

  1. Starts the virtual machine

2. Click on the virtual box menu to the voice Devices and select Insert Guest Additions CD Images.... A message box will appear at the start of the installation, click on run button

  1. To proceed are required admin privileges, so insert the password architech when asked
  1. Then a terminal will show the installation progress. When finished, press Enter key
  1. Before to use the SDK, it is required reboot the virtual machine

2.2. Build


A working internet connection, several GB of free disk space and several hours are required by the build process

  1. Select Architech’s virtual machine from the list of virtual machines inside Virtual Box application
  1. Click on the icon Start button in the toolbar and wait until the virtual machine is ready
  1. Double click on Architech SDK icon you have on the virtual machine desktop.
  1. The first screen gives you two choices: ArchiTech and 3rd Party. Choose ArchiTech.
  1. Select Hachiko as board you want develop on.
  1. A new screen opens up from where you can perform a set of actions. Click on Run bitbake to obtain a terminal ready to start to build an image.
  1. Open local.conf file:
  Host    select
gedit conf/local.conf
  1. Go to the end of the file and add the following lines:
  Host    select
EXTRA_IMAGE_FEATURES_append = " tools-debug debug-tweaks"
IMAGE_INSTALL_append = " tcf-agent"

This will trigger the installation of a features set onto the final root file system, like tcf-agent and gdbserver.

  1. Save the file and close gedit.
  2. Build tiny-image image by means of the following command:
  Host    select
bitbake tiny-image

At the end of the build process, the image will be saved inside directory:

  Host    select
  1. Setup sysroot directory on your host machine:
  Host    select
sudo tar -xjf /home/architech/architech_sdk/architech/hachiko-tiny/yocto/build/tmp/deploy/images/hachiko/tiny-image-hachiko.tar.bz2 -C /home/architech/architech_sdk/architech/hachiko-tiny/sysroot/


sudo password is: “architech

2.3. Deploy

To deploy the root file system, you are going to need an USB flash drive.


The USB flash drive content will be lost forever!

  1. Umount the device:
  Host    select
sudo umount /path/to/your/USB/device/partition
  1. Align a new partition to the first sector of your USB device:
  Host    select
sudo sfdisk /path/to/your/USB/device << EOF
  1. Format it as an EXT2 partition:
  Host    select
sudo mkfs.ext2 /path/to/your/USB/device/partition
  1. Extract your image inside such a media:
  Host    select
sudo tar -xjf /home/architech/architech_sdk/architech/hachiko-tiny/yocto/build/tmp/deploy/images/hachiko/tiny-image-hachiko.tar.bz2 -C /path/to/usb/media
  1. Copy the kernel to the USB flash drive:
  Host    select
cp /home/architech/architech_sdk/architech/hachiko-tiny/yocto/build/tmp/deploy/images/hachiko/uImage /path/to/usb/media/boot
  1. Now copy the device tree:
  Host    select
cp /home/architech/architech_sdk/architech/hachiko-tiny/yocto/build/tmp/deploy/images/hachiko/uImage-rza1-hachiko.dtb  /path/to/usb/media/boot/rza1-hachiko.dtb
  1. Unmount the flash drive from your system
  2. Insert the USB Flash drive in the USB port at the bottom of the USB connector of Hachiko board

2.4. Boot

On Hachiko there is the dedicated serial console connector CN2


which you can connect, by means of a mini-USB cable, to your personal computer.


Every operating system has its own killer application to give you a serial terminal interface. In this guide, we are assuming your host operating system is Ubuntu.

On a Linux (Ubuntu) host machine, the console is seen as a ttyUSBX device and you can access to it by means of an application like minicom.

Minicom needs to know the name of the serial device. The simplest way for you to discover the name of the device is by looking to the kernel messages, so:

  1. clean the kernel messages


sudo dmesg -c

  1. connect the mini-USB cable to the board
  2. display the kernel messages



  1. read the output
  Host    select
[ 2912.634893] usb 3-4: >new full-speed USB device number 6 using xhci_hcd
[ 2912.658153] usb 3-4: >New USB device found, idVendor=0403, idProduct=6001
[ 2912.658160] usb 3-4: >New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2912.658164] usb 3-4: >Product: Hachiko Rev. B
[ 2912.658167] usb 3-4: >Manufacturer: AVNET EMG ITALY
[ 2912.658169] usb 3-4: >SerialNumber: A6XGP6WP
[ 2912.660753] ftdi_sio 3-4:1.0: >FTDI USB Serial Device converter detected
[ 2912.660801] usb 3-4: >Detected FT232RL
[ 2912.660805] usb 3-4: >Number of endpoints 2
[ 2912.660809] usb 3-4: >Endpoint 1 MaxPacketSize 64
[ 2912.660812] usb 3-4: >Endpoint 2 MaxPacketSize 64
[ 2912.660815] usb 3-4: >Setting MaxPacketSize 64
[ 2912.661102] usb 3-4: >FTDI USB Serial Device converter now attached to ttyUSB0

As you can see, here the device has been recognized as ttyUSB0.

Now that you know the device name, run minicom:


sudo minicom -ws

If minicom is not installed, you can install it with:


sudo apt-get install minicom

then you can setup your port with these parameters:

| A -    Serial Device      : /dev/ttyUSB0                              |
| B - Lockfile Location     : /var/lock                                 |
| C -   Callin Program      :                                           |
| D -  Callout Program      :                                           |
| E -    Bps/Par/Bits       : 115200 8N1                                |
| F - Hardware Flow Control : No                                        |
| G - Software Flow Control : No                                        |
|                                                                       |
|    Change which setting?                                              |
        | Screen and keyboard      |
        | Save setup as dfl        |
        | Save setup as..          |
        | Exit                     |
        | Exit from Minicom        |

If on your system the device has not been recognized as ttyUSB0, just replace ttyUSB0 with the proper device.

Once you are done configuring the serial port, you are back to minicom main menu and you can select exit.

Give root to the login prompt:


hachiko login: root

and press Enter.


Sometimes, the time you spend setting up minicom makes you miss all the output that leads to the login and you see just a black screen, press Enter then to get the login prompt.

CN2 is used also to provide the power to the board, so, as soon as your serial terminal emulator is ready you start getting messages from the board.

2.5. Code

The time to create a simple HelloWorld! application using Eclipse has come.

  1. Return to the Splashscreen, which we left on Hachiko board screen, and click on Develop with Eclipse.
  1. Go to File→ New→ Project..., in the node “C/C++” select C Project and press next button.
  1. Insert HelloWorld as project name, open the node Yocto Project ADT Autotools Project and select Hello World ANSI C Autotools Project and press next button.
  1. Insert Author field and click on Finish button. Select Yes on the Open Associated Perspective? question.
  1. Open the windows properties clicking on Project→ Properties and select Yocto Project Settings. Check Use project specific settings in order to use the pengwyn cross-toolchain.
  1. Click on OK button and build the project by selecting Project→ Build All.

2.6. Debug

Use an ethernet cable to connect the board (connector XF1) to your PC. Configure your workstation ip address as Make sure the board can be seen by your host machine:

  Board    select
ifconfig eth0
  Host    select

If the output is similar to this one:

  Host    select
64 bytes from icmp_req=1 ttl=64 time=0.946 ms
64 bytes from icmp_req=2 ttl=64 time=0.763 ms
64 bytes from icmp_req=3 ttl=64 time=0.671 ms
64 bytes from icmp_req=4 ttl=64 time=0.793 ms

then the ethernet connection is ok. Enable the remote debug with Yocto by typing this command on Hachiko console:

  Board    select
/etc/init.d/tcf-agent restart

On the Host machine, follow these steps to let Eclipse deploy and debug your application:

  • Select Run→ Debug Configurations...
  • In the left area, expand C/C++Remote Application.
  • Locate your project and select it to bring up a new tabbed view in the Debug Configurations Dialog.
  • Insert in C/C++ Application the filepath (on your host machine) of the compiled binary.
  • Click on New button near the drop-down menu in the Connection field.
  • Select TCF icon.
  • Insert in Host Name and Connection Name fields the IP address of the target board. (e.g.
  • Then press Finish.
  • Use the drop-down menu now in the Connection field and pick up the IP Address you entered earlier.
  • Enter the absolute path on the target into which you want to deploy the cross-compiled application. Use the Browse button near Remote Absolute File Path for C/C++Application: field. No password is needed.
  • Enter also in the path the name of the application you want to debug. (e.g. HelloWorld)
  • Select Debugger tab
  • In GDB Debugger field, insert the filepath of gdb for your toolchain
  Host    select
  • In Debugger window there is a tab named Shared Library, click on it.
  • Add the libraries paths lib and usr/lib of the rootfs (which must be the same used in the target board)
  Host    select
  • Click Debug to login.
  • Accept the debug perspective.


If debug does not work, check on the board if tcf-agent is running and gdbserver has been installed. You can ignore the message “Cannot access memory at address 0x0”.