From Estone Technology Wiki
Jump to: navigation, search

Quick Setup Guide


OS Support

Yocto Embedded Linux

SDK Download


To install

   sh poky-glibc-x86_64-meta-toolchain-qt5-cortexa9hf-neon-toolchain-2.1.3.sh

MFG Tool Download


   cd ppc4510-mfg/Profiles/Linux/OS firmware/files/linux/
   cp imx6dl-hio.dtb imx6q-hio.dtb zImage .
   cp rootfs.tar.bz2 recovery.rootfs.tar.bz2 .
   cp SPL u-boot.img .
  • Use Micro A - USB connect to the OTG slot on the HIO Core Board
  • execute ppc4510-mfg/MfgTool2.exe
  • Change boot switch to 2
  • Plug in 12V power.


  • Click “Start” will start the OS flashing process.


  • Complete


  • Quit MFG tools, remove OTG cable, and power.

Kernel Compile

   git clone -b imx_3.14.52_1.1.0_ga https://github.com/estonetechnology/ppc-4510-linux-kernel.git 
   source /opt/poky/2.1/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi 
   export ARCH=arm 
   export CROSS_COMPILE=arm-poky-linux-gnueabi-
   make hio-imx6dl-ppc4510_defconfig 
   make; make hio-imx6dl-ppc4510.dtb 
  • Generate required files:

zImage: ppc-4510-linux-kernel/arch/arm/boot/zImage
hio-imx6dl-ppc4510.dtb: ppc-4510-linux-kernel/arch/arm/boot/dts/hio-imx6dl-ppc4510.dtb

Uboot Compile

   git clone -b imx_v2015.04_3.14.52_1.1.0_ga https://github.com/estonetechnology/ppc-4510-linux-uboot
   source /opt/poky/2.1/environment-setup-cortexa9hf-vfp-neon-poky-linux-gnueabi 
   export ARCH=arm 
   export CROSS_COMPILE=arm-poky-linux-gnueabi- 
   make hio-imx6dl-board_spl_defconfig 
  • Generate required files: SPL u-boot.img

Rootfs Compile

  • Platform source code download

To download the platform source code, you need to have repo installed.

  • Install the repo utility:
   mkdir ~/bin
   curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
   chmod a+x ~/bin/repo
  • Download the source code:
   mkdir fsl-community-bsp
   cd fsl-community-bsp
   repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b krogoth
   repo sync
   cd fsl-community-bsp/sources/
   git clone -b pyro https://github.com/meta-qt5/meta-qt5.git
   git clone -b krogoth https://github.com/chausieu/meta-hio.git
   git clone -b krogoth git://git.yoctoproject.org/meta-mono
   cd fsl-community-bsp
   . ./setup-environment build
   git clone https://github.com/chausieu/hio-imx6dl-iob3200-conf.git
   mv hio-imx6dl-iob3200-conf/local.conf hio-imx6dl-iob3200-conf/bblayers.conf conf/
  • compile the image:
   bitbake core-image-full-cmdline
  • Compiled image will be stored in: fsl-community-bsp/build/tmp/deploy/images/hio-imx6dl-iob3200/

USB Update

   mkfs.vfat /dev/sda1
  • Extract Update file:
   cd /path/to/usb
   tar -xvf /path/to/ppc4510-usb-update-kernel3.14.52-yocto2.1-qt5.6.2.tar.bz2
  • Plug USB to ppc4510 and power on
  • Enter login Information and it will automatically update

Testing Unit

Setup environment for the test:

  • Ubuntu machine with minicom set up / Windows machine with PuTTy set up
  • Console cable

Ubuntu OS:
To install minicom on the Ubuntu host, type command below:

$ sudo apt-get install minicom

Configure minicom:

$ sudo minicom -s

Configure as below and save as dfl.


Windows OS:

Download PuTTY here

- Connect the Development Cable to the board, and connect the USB to a Windows PC.
- Go to Computer Management console on Windows PC, click Ports (COM&LPT)' to expand. There should be Prolific USB-to-Serial Com Port(COM4) displayed.
- Download the 'putty terminal software into the Windows PC > Start Putty > Change these configuration on the user interface:

Serial line: COM4
Speed: 115200

- Click Open, the putty console window should display.
- Power on board, the backend output will show on the putty console window.


  • Ethernet connection

Plug the network cable in, the unit will get an IP address from DHCP server.

Note: In case of failure, follow commands below:

# ifconfig eth0 up
# udhcpc

Check the IP address:

# ifconfig 

This command will show you what is the IP address.

Ex: IP address: (It is various depending on the DHCP server settings)

Check connection:

# ping (ping a host at the same network)
# ping www.habeyusa.com (It would be successful if the network connects to the Internet)
  • Wifi connection

Enable the Wifi interface:

# ifconfig wlan0 up

Scan wifi hotspots:

# iwlist wlan0 scan 

Modify the wifi configuration file according to Router Setting:

# cd /usr/share/wifi
# nano wpa_supplicant.conf

Input the SSID and the password of Router in the specified position:

  pairwise=TKIP CCMP
  group=CCMP TKIP WEP104 WEP40

Run the following command, then acquire the IP address dynamically from Router's DHCP service:

# wpa_supplicant –Dwext –iwlan0 –c./wpa_supplicant.conf –B
# udhcpc –i wlan0

Check connection:

# ifconfig -a
# ping (an IP address from same local network)
  • Bandwidth:

From Terminal 1:

# ifconfig (Ex: IP address is
# iperf -s (to set up as a server)

From Terminal 2:

# iperf -c

The result will show the bandwidth as Mb/s as below.
Note: The bandwidth is various depending on the LAN bandwidth.

SD Card

When a SD card is inserted, it will be recognized automatically and a message will show in the console as below.


To test the card to see if it is usable:

# mkdir /mnt/sdcard
# mount /dev/mmcblk0p1 /mnt/sdcard

Check to see if it is mounted:


To see the content:

# ls /mnt/sdcard


Unmount the card before removing out:

#umount /mnt/sdcard


When a USB is connected, it will be detected automatically and a message will be printed in the console screen.

Ex: Screen below is shown when a USB flash drive connected.


To access to the usb flash drive, it must be mounted firstly:

# mkdir /mnt/usb
# mount /dev/sda1 /mnt/usb

Now, access to the usb drive content:

# ls /mnt/usb


To unplug the usb flash drive, it should firstly be unmounted:

# umount /mnt/usb

Note: Repeat this method for another USB ports.


The images includes several wav files. They are located in /usr/share/sounds/alsa.

# ls /usr/share/sounds/alsa


To play them, use aplay as below:

# aplay /usr/share/sounds/alsa/Front_Left.wav

Also, use speaker-test to test speakers:

# speaker-test -c2 -t wav

Serial Ports

To perform this test, TxD and RxD pins need to be connected.

Molex connector:


 Pin 1: COM REF (GND  RS232 Port)
 Pin 2: TxD (RS232 Port)
 Pin 3: CANL
 Pin 4: 24VDC
 Pin 5: Shield
 Pin 6: RxD (RS232 Port)
 Pin 7: CANH
 Pin 8: GND

COM Port:


From Ubuntu minicom:

Listen on ttymxc2:

# stty -F /dev/ttymxc2 115200 raw -echo
# cat /dev/ttymxc2

From unit:

Transmit data over ttymxc2:

# stty -F /dev/ttymxc2 115200 raw -echo
# echo Hello > /dev/ttymxc2

A result as Hello word will be printed in the minicom


Touch Screen

To calibrate:

# ts_calibrate


To drag, draw test:

# ts_test

When a crosshair moves, its position will be printed out in the terminal.



Set Up Qt Creator for Yocto Device

The instruction is listed here

Set Up Eclipse IDE for Yocto Device

The instruction is listed here


Note: The Android Marshmallow 6.0 was mostly tested in the 14.04 x64 Ubuntu.


Install required packages. Open Terminal and type commands below:

$ sudo apt-get install uuid uuid-dev zlib1g-dev liblz-dev liblzo2-2 liblzo2-dev lzop
$ sudo apt-get install git-core curl u-boot-tools mtd-utils android-tools-fsutils
$ sudo apt-get install openjdk-7-jdk gnupg flex bison gperf libsdl1.2-dev libesd0-dev
$ sudo apt-get install libwxgtk2.8 squashfs-tools build-essential zip libncurses5-dev
$ sudo apt-get install libncurses5-dev schedtool libxml2 libxml2-utils xsltproc libc6-dev
$ sudo apt-get install schedtool g++-multilib lib32z1-dev lib32readline-gplv2-dev gcc-multilib 
$ sudo apt-get install libswitch-perl gcc-arm-linux-gnueabihf libssl1.0.0 libssl-dev

Configure git account:

$git config --global user.name "First Last"
$git config --global user.email "first.last@company.com"

Create repo:

$ cd ~
$ mkdir ppc4510-android
$ mkdir bin
$ cd ppc4510-android
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo

Getting Android source code:

Download Android 6.0.1 source code:


Extracting files:

$ cd ~/ppc4510-android
$ tar xvjf android-source-imx6-6.0.1-part1.tar.bz2
$ tar xvjf android-source-imx6-6.0.1-part2.tar.bz2
$ tar xvjf android-source-imx6-6.0.1-part3.tar.bz2


Update all source codes from us for the unit:

$ repo init -u https://github.com/ppc-4510-android/bsp-platform
$ repo sync

Compiling images

Setting up build environment:

$ source build/envsetup.sh

Selecting product to build:

$ lunch sabresd_6dq-user

Compiling image:

$ make

Adding images into MfgTool to flash the unit:

$ ./build/hb-tools/make.sh MFG

After completion, the file as PPC-4510-MNC-HABEY-*.zip is used.

Unzip the *.zip file to get the mfgtools

How to build partial images:

Building kernel image:

$ ./build/hb-tools/make.sh k

Building uboot image:

$ ./build/hb-tools/make.sh u

Building boot image:

$ ./build/hb-tools/make.sh b

Building system image:

$ ./build/hb-tools/make.sh a

Building recovery image:

$ ./build/hb-tools/make.sh OTA

Image releases

Download the compiled image here

Flashing image

Switching boot position to "2".


Use a mini USB type B to USB type A cable to connect the unit from OTG port to windows host.


Using mfgtools that has been extracted above to flash. Execute the ppc-4510-android.vbs:

Click Start to flash the image.
The flashing process is done once two processing bars turned to green.
Now, click Stop and Exit the tool.

Starting up the unit
Unplug the cable and power. Change the boot selection to "1"
Now, connect to power adapter and power on. The unit will start up.

Testing Unit


To test Wifi/Ethernet bandwidth, running iPerf app from the unit.

  • Testing the WiFi bandwidth:

Connecting to WiFi hotspot: Go to Settings > Wifi > Turn on. After it connected, it will get an IP address from DHCP server.

Opening iPerf app from the unit, type -s and click ON. This process is to make the unit to become a server with an IP address that has been leased from DHCP server. Ex: It is as photo below


Opening the Terminal from Ubuntu host, type command below:

$ iperf -c

The bandwidth will be shown.


Note: The bandwidth is various depending on your network.

  • Testing the Ethernet:

Follow exactly steps for WiFi above.

Serial Port

To perform this test, connect TxD and RxD pin.

Molex connector:

Connecting pin 3 & 7:

COM port:


Connecting pin 2 & 3:

Open pre-installed ComAssistant app.

Select port: /dev/ttymxc2 and /dev/ttyUSB0
Select baud: 9600
Turn they ON

Now, click Send or check the Check box next to Send button for Auto.
Once it is working, the windows at the top will show up.



The ES File Explorer app is used to test USB flash drives.

When connecting a USB flash drive into the unit, a dialog pops up asking to use the ES File Explorer app to open the USB device. Select OK to open it.

The USB will be shown under Local.


To perform read/write test, you can make a directory, copy, remove in this USB device.assistant.pn

SD Card

Open ES File Explorer and insert a SD card into SD slot. The Sd card will be recognized under Local.


Copy/remove files/directories from this card to see its performance.


The Display Tester pre-installed app is used for the test.

Open Display Tester > Select Display quality at the top right.


  • To test the defective pixels

Select the Defective pixel detection > Slide the screen to pick background colors such as red, green, blue, white, grey, black, yellow, etc to detect defective pixels.

  • To test the touch point

Select the Multi-touch counter

  • To test the display quality

Select the Real world photos and slide the screen to get several photos to check the quality and also can compare with other devices.


Touch screen

Open the Touch Test pre-installed app from the unit. It will allow you to draw for the test.