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, Tibidabo 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.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 Tibidabo 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 core-image-minimal-dev image by means of the following command:
  Host    select
bitbake core-image-minimal-dev

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/tibidabo/yocto/build/tmp/deploy/images/tibidabo/core-image-minimal-dev-tibidabo.tar.bz2 -C /home/architech/architech_sdk/architech/tibidabo/sysroot/


sudo password is: “architech

2.3. Deploy

To deploy the root file system, you are going to need a micro SD card.

  1. Copy the root file system to your SD card
  Host    select
sudo dd if=~/architech_sdk/architech/tibidabo/yocto/tmp/deploy/images/tibidabo/core-image-minimal-dev-tibidabo.sdcard of=/path/to/your/sd/card/device


Be very careful when you use dd to write to a device to pick up the right device, otherwise you can mess up another disk you have on your machine, destroying its content forever!


The content of the SD card will be lost forever!


Be sure you unmount the device from the filesystem before using dd program, you sure don’t want to have the operating system interfere during the write process.

  1. After dd completes, make sure everything has been really written to the SD card:
  Host    select
  1. Unmount the micro SD card from your computer
  2. Plug the micro SD in the board socket.

2.4. Boot

First of all, make sure the board can boot entirely from the micro SD card by setting SW1 with this configuration


Take the power socket adapter compatible with your country, plug it in the power adapter. When in position, you should hear a slight click. Power on the board connecting the external power adapter to Tibidabo connector CN19.

Now it’s time to start the serial console.

On Tibidabo there is the dedicated serial console connector CN1


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
  Host    select
sudo dmesg -c
  1. connect the mini-USB cable to the board already powered-on
  2. display the kernel messages
  Host    select
  1. read the output
  Host    select
[ 2614.290675] usb 3-4: >new full-speed USB device number 4 using xhci_hcd
[ 2614.313854] usb 3-4: >New USB device found, idVendor=0403, idProduct=6015
[ 2614.313861] usb 3-4: >New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2614.313865] usb 3-4: >Product: FT230X Basic UART
[ 2614.313868] usb 3-4: >Manufacturer: FTDI
[ 2614.313870] usb 3-4: >SerialNumber: DN002OZI
[ 2614.379284] usbcore: registered new interface driver usbserial
[ 2614.379298] usbcore: registered new interface driver usbserial_generic
[ 2614.379306] USB Serial support registered for generic
[ 2614.379310] usbserial: USB Serial Driver core
[ 2614.387899] usbcore: registered new interface driver ftdi_sio
[ 2614.387914] USB Serial support registered for FTDI USB Serial Device
[ 2614.387997] ftdi_sio 3-4:1.0: >FTDI USB Serial Device converter detected
[ 2614.388029] usb 3-4: >Detected FT-X
[ 2614.388031] usb 3-4: >Number of endpoints 2
[ 2614.388034] usb 3-4: >Endpoint 1 MaxPacketSize 64
[ 2614.388035] usb 3-4: >Endpoint 2 MaxPacketSize 64
[ 2614.388037] usb 3-4: >Setting MaxPacketSize 64
[ 2614.388260] usb 3-4: >FTDI USB Serial Device converter now attached to /dev/ttyUSB0
[ 2614.388288] ftdi_sio: v1.6.0:USB FTDI Serial Converters Driver

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

Now that you know the device name, run minicom:

  Host    select
sudo minicom -ws

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

  Host    select
sudo apt-get install minicom

then you can setup your port with these parameters:

  Host    select
| 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 /dev/ttyUSB0, just replace /dev/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:


tibidabo 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.

2.5. Code

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

  1. Return to the Splashscreen, which we left on Tibidabo board screen, and click on Develop with Eclipse.
  1. Go to File→ New→ Project, select C/C++→ C Project and press next button.
  1. Insert HelloWorld as project name, 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.
  2. Build the project by selecting Project→ Build All.

2.6. Debug

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

  Board    select
ifconfig pt0
  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 Tibidabo 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. Hello)
  • 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.