Last week we got a VK-RZ/A1H board, including the display and started testing it. We have already used previous revisions so our idea was to check if there are new features available and if all other sample applications that were tested before work fine. For some of the tests we got in need to either modify or extend existing Linux binaries and since there was no out-of-the-box build tutorial on Vekatech site, we’ve decided to do the building myself. In this post, we shall describe the necessary steps to get an usable Linux binaries and later on to extend them.
So first things first – we needed a point to start from. Vekatech offer a build of Yocto Linux so our fist shot was to look into Yocto repository and check if there are ready recipes that we can use. Fortunately there was a better starting point – Renesas/ArchiTech Hachiko board.
1. So our first step was to download and setup a virtual machine that will serve as a build system and can be easily copied around. Of course if you have a Linux host, you can continue without creating a VM.
1.1. Download and configure the build virtual machine.
Hachiko/Hachiko64 build VM images can be downloaded from here. It is a huge file and it takes a while till its downloaded.
A step-by-step guide on how to configure the virtual machine and execute it available here.
2. Then we need to build Yocto for Hachiko in order to make sure that everything has been properly configured and works as expected. Those brave (or should we say confident instead) enough can skip this step and go directly to step 3. However it is recommended to verify that everything works fine, before we start making any changes. In case it is necessary to use root privileges, use root password architech.
2.1. Start the VM and once its up and running double click on the icon.
2.2. Choose “ArchiTech” from the available options.
2.3. Select “Hachiko” from the available options.
2.4. Choose “Run bitbake” from the command options menu.
2.5. Follow the build instructions as described on ArchiTech quick start guide:
2.5.1. gedit conf/local.conf
2.5.2. At the end of the file add the following lines:
EXTRA_IMAGE_FEATURES_append = ” tools-debug debug-tweaks”
IMAGE_INSTALL_append = ” tcf-agent”
2.5.3. Save the modified file and execute the following bitbake command:
At the end of the build, available images should be in: /home/architech/architech_sdk/architech/hachiko-tiny/yocto/build/tmp/deploy/images/hachiko.
NB: At this point we got a build problem since mklibs-0.1.38.tar.gz was already removed from the repository and could not be built. Therefore we had to do a small patch in the recipe to make it download and build mklibs-0.1.40.tar.gz. In order to do this you either have to edit the files manuall, or checkout the edited version from our github repository:
3. Modify and patch Yocto to be able to fully utilize Vekatech VK-RZ/A1H features.
In order to modify the Yocto kernel we would need first to compare the differences in hardware for Hachiko board and for VK-RZ/A1H. The good news is that there are not many differences as we can see from the respective hardware manuals and schematics:
Out of these documents it is possible to identify the following important differences that need to be patched in Linux BSP and kernel:
- On VK-RZ/A1H the P1_5 is LED
- On VK-RZ/A1H UART3 needs to have P8_9 as RxD3 and P8_8 as TxD3 configured.
- On VK-RZ/A1H the PHY mode select is different (jumpers used)
3.1. Modify the patches that already exist for Hachiko in order to match the changes listed above.
The patch files that need to be modified for Hachiko board are in the folder:
archivech/hachiko/yocto/meta-hachiko/recipes/kernel/linux/files/ and then there are two files:
Once we patch them with the required changes for the board (which depend on the board) we can repeat the “bitbake tiny-image” command and it will (much faster this time) regenerated the kernel image.