The following instructions have been tested on Ubuntu 16.04 (64 bit) in a VMWare virtual machine.
The meta-tq layer extends the Yocto Project's reference system Poky to provide support for a selection of TQ Embedded CPU Modules, including the TQMa6x.
It uses the same codebase as the PTXdist based TQ Linux BSPs and therefore provides the same versions of U-Boot and Linux kernel, but doesn't define a specific root filesystem configuration.
The instructions on this page refer to the BSP and ancillary tools listed in the following table:
Yocto Project / Poky /meta-tq Release | pyro |
---|---|
Target machines | tqma6qp-mba6x tqma6q-mba6x tqma6dl-mba6x tqma6s-mba6x |
U-Boot | 2016.03 |
Linux Kernel | 4.1.15 |
It's strongly recommended to use git for downloading both the Yocto Project / Poky Release as well as meta-tq (instead of downloading archives and extracting them).
For further details regarding Yocto Project please refer to its official documentation.
embedded@ubuntu:~$ sudo apt-get install gawk wget git-core diffstat unzip texinfo gcc-multilib \ build-essential chrpath socat cpio python python3 python3-pip python3-pexpect \ libsdl1.2-dev xterm
embedded@ubuntu:~$ cd ~ embedded@ubuntu:~$ mkdir yocto embedded@ubuntu:~$ cd yocto embedded@ubuntu:~/yocto$ mkdir sources embedded@ubuntu:~/yocto$ cd sources embedded@ubuntu:~/yocto/sources$ git clone https://git.yoctoproject.org/git/poky.git
embedded@ubuntu:~/yocto/sources$ cd poky embedded@ubuntu:~/yocto/sources/poky$ git checkout <required branch> (e.g. morty or pyro) embedded@ubuntu:~/yocto/sources/poky$ cd .. embedded@ubuntu:~/yocto/sources$
embedded@ubuntu:~/yocto/sources$ git clone https://github.com/tq-systems/meta-tq.git
embedded@ubuntu:~/yocto/sources$ cd meta-tq embedded@ubuntu:~/yocto/sources/meta-tq$ git checkout <required branch> (e.g. morty or pyro) embedded@ubuntu:~/yocto/sources/meta-tq$ cd ..
The branch of the Yocto project and the meta-tq project must be the same.
embedded@ubuntu:~/yocto/sources$ source poky/oe-init-build-env build
Add the following line to conf/bblayer.conf
:
/home/embedded/yocto/sources/meta-tq \
It should look like this.
BBLAYERS ?= " \ /home/embedded/yocto/sources/poky/meta \ /home/embedded/yocto/sources/poky/meta-poky \ /home/embedded/yocto/sources/poky/meta-yocto-bsp \ /home/embedded/yocto/sources/meta-tq \ "
embedded@ubuntu:~/yocto/sources/build$ export MACHINE=<name of machine>
Choose one of the following machines for your BSP:
name of machine
= tqma6qp-mba6x, tqma6q-mba6x, tqma6dl-mba6x, tqma6s-mba6x
embedded@ubuntu:~/yocto/sources/build$ bitbake core-image-minimal
The resulting image is located under
~/yocto/sources/build/tmp/deploy/images/<name of machine>/core-image-minimal-<name of machine>.wic
For testing purposes we recommend to use SD cards to install new firmware. To write the built images on the host system to a connected card type:
embedded@ubuntu:~/yocto/sources/build$ sudo dd if=tmp/deploy/images/<name of machine>/core-image-minimal-<name of machine>.wic of=/dev/sdf bs=1M conv=fsync #Assuming the SD card is assigned to /dev/sdf
You have to use the raw device of the SD card not a partition!
To find out what device file the SD card has, type “dmesg” after you connect the card to see the system messages. At the bottom you'll see some “Attached scsi …” messages along with something like:
[ 8197.588395] sdf: sdf1
In case of error messages like “No such file or directory” you have to create the site.conf file:
embedded@ubuntu:~$ mkdir ~/.yocto embedded@ubuntu:~$ nano ~/.yocto/site.conf Add the following lines to site.conf: BB_NUMBER_THREADS ?= "2" PARALLEL_MAKE ?= "-j 2" embedded@ubuntu:~$ cd ~/yocto/build/conf embedded@ubuntu:~/yocto/build/conf$ ln -s ~/.yocto/site.conf site.conf
Then restart the build process with
embedded@ubuntu:~/yocto/build/conf$ cd ~/yocto/build embedded@ubuntu:~/yocto/build$ bitbake -c cleanall u-boot-tq && bitbake core-image-minimal