Difference between revisions of "IoTGateway/BSP/Linux/AM57xx/AM57xx User Guide"

From ESS-WIKI
Jump to: navigation, search
 
(77 intermediate revisions by 4 users not shown)
Line 1: Line 1:
 +
{{DISPLAYTITLE:Yocto Linux BSP Ver.1 User Guide for AM57xx/AM335x series}} <!--
 +
{| align="right"
 +
| <span class="fck_mw_magic" _fck_mw_customtag="true" _fck_mw_tagname="TOC" _fck_mw_tagtype="c">_</span>
 +
|}
 +
-->
 +
 
= Introduction =
 
= Introduction =
  
Line 9: Line 15:
 
= Getting Start =
 
= Getting Start =
  
== <span style="color:#0070c0">Prerequisites</span> ==
+
== <span style="color: rgb(0, 112, 192);">Prerequisites</span> ==
  
=== <span style="color:#0070c0">Host Setup</span> ===
+
=== <span style="color: rgb(0, 112, 192);">Host Setup</span> ===
  
Generally,to do Linux development, you’ll need a host PC running Linux. In the development with the advantech SDK, it would be strongly recommend to use Ubuntu 12.04 LTS 64 bit/ Ubuntu 14.04 LTS 64 bit as developing environment. Because we have successfully tested our BSP on these OS version. Please install the Ubuntu 12.04 LTS 64 bit / Ubuntu 14.04 LTS 64 bit at your PC/NB in advance.
+
Generally,to do Linux development, you’ll need a host PC running Linux. In the development with the advantech SDK, it would be strongly recommend to use Ubuntu 14.04 LTS 64 bit as developing environment. Because we have successfully tested our BSP on these OS version. Please install the Ubuntu 14.04 LTS 64 bit at your PC/NB in advance.
  
=== <span style="color:#0070c0">Code Composer Studio</span> ===
+
=== <span style="color: rgb(0, 112, 192);">Code Composer Studio</span> ===
  
Code Composer Studio 6.1.3.00034 must be downloaded manually since you need to fill out a form related to export control. Please download the Linux off-line installation tarball, e.g., CCS6.1.3.00034_linux.tar.gz, from CCS v6 Downloads. For starters, just use your web browser to download the file to $HOME/Downloads.
+
Code Composer Studio 6.1.3.00034 must be downloaded manually since you need to fill out a form related to export control. Please download the Linux off-line installation tarball, e.g., [http://processors.wiki.ti.com/index.php/Download_CCS#Code_Composer_Studio_Version_6_Downloads CCS6.1.3.00034_linux.tar.gz], from CCS v6 Downloads. For starters, just use your web browser to download the file to $HOME/Downloads.
  
=== <span style="color:#0070c0">Docker install and setting</span> ===
+
=== <span style="color: rgb(0, 112, 192);">Docker install and setting</span> ===
  
 
If you don't have docker in your system, then you can follow the below&nbsp; steps to install docker and run it first.
 
If you don't have docker in your system, then you can follow the below&nbsp; steps to install docker and run it first.
Line 28: Line 34:
  
 
To pull ubuntu 14.04 image from Docker Hub
 
To pull ubuntu 14.04 image from Docker Hub
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px">$ docker pull advrisc/u14.04-am57lbv1</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ docker pull advrisc/u14.04-am57lbv1</div>
 
To create container
 
To create container
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px">$ docker run -it --name ${CONTAINER_NAME} -v ${WORKSPACE}:yocto_bsp:rw advrisc/u14.04-am57lbv1 /bin/bash</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ docker run -it --name ${CONTAINER_NAME} -v ${WORKSPACE}:/home/adv/yocto_bsp:rw advrisc/u14.04-am57lbv1 /bin/bash</div>
 
&nbsp;
 
&nbsp;
  
Line 38: Line 44:
  
 
For this example, a directory called yocto_bsp is created for the project.
 
For this example, a directory called yocto_bsp is created for the project.
 
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ mkdir&nbsp;yocto_bsp<br/></div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ sudo chown adv:adv -R yocto_bsp</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cd yocto_bsp/</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ mkdir tisdk</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cd tisdk/</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$&nbsp;repo init -u [https://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git https://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git] -b processor-sdk-03.01.00.06 -m amxxLBV1090.xml&nbsp; &nbsp; <---AM57xx/AM3xx5</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);"><div>
Please download a script from the SDK download page and then execute it on your host to fetch all the packages from TI servers. For example, see am57xx-evm-linux-sdk-arago-src-03.03.00.04.tar.xz file in AM57xx-Linux-SDK-Download-page. Once this package is downloaded, there are just a few extra steps in the build process to fetch all the corresponding packages.
+
$ repo init -u&nbsp;[git://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git -b git://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git&nbsp;-b] &nbsp;refs/tags/am57xxLBV1000&nbsp; <- for LBV1000
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ sudo chown adv:adv -R yocto_bsp</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cd yocto_bsp/</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ mkdir tisdk</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cd tisdk/</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ repo init -u [git://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git git://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git]&nbsp;-b processor-sdk-03.01.00.06</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ repo sync</div>
+
</div></div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ repo sync</div>
 +
If you want to get latest bsp:
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ repo init -u [git://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git git://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git] -b processor-sdk-03.01.00.06</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ repo sync</div>
 
Due to lots of company firewalls/proxies only permitting HTTP traffic this is what our default repo manifest is using. At times the loading of repository server might be too heavy or for other reasons. You may be experience the following issues:
 
Due to lots of company firewalls/proxies only permitting HTTP traffic this is what our default repo manifest is using. At times the loading of repository server might be too heavy or for other reasons. You may be experience the following issues:
  
Line 50: Line 58:
  
 
cd .repo/projects/sources/meta-arago.git
 
cd .repo/projects/sources/meta-arago.git
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">git gc</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ git gc</div>
 
If the error(s) persist try removing your local git/repo cache before attempting to sync again, e.g. if the error indicates an issue in the meta-openembedded repository:
 
If the error(s) persist try removing your local git/repo cache before attempting to sync again, e.g. if the error indicates an issue in the meta-openembedded repository:
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">rm -rf .repo/projects/sources/meta-arago.git</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">rm -rf .repo/project-objects/meta-arago.git.git</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ rm -rf .repo/projects/sources/meta-arago.git</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ rm -rf .repo/project-objects/meta-arago.git.git</div>
 
Additionally you can limit the number of git repositories which are downloaded in parallel by using the additional parameter "-jX". e.g. to download one repository at a time:
 
Additionally you can limit the number of git repositories which are downloaded in parallel by using the additional parameter "-jX". e.g. to download one repository at a time:
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">repo sync -j1</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ repo sync -j1</div>
 
Additionally the following tweak to your IP settings maybe helpful:
 
Additionally the following tweak to your IP settings maybe helpful:
  
Line 62: Line 70:
  
 
<remote fetch="[git://git.arago-project.org git://git.arago-project.org]" name="meta-arago"/>
 
<remote fetch="[git://git.arago-project.org git://git.arago-project.org]" name="meta-arago"/>
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ ./oe-layertool-setup.sh</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ mkdir downloads</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ # You should already have downloaded CCS via web browser.&nbsp; Assuming location at ~/Downloads.</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cp $HOME/Downloads/CCS6.1.3.00034_linux.tar.gz downloads/</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ touch downloads/CCS6.1.3.00034_linux.tar.gz.done</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cd build</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ . conf/setenv</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE==&lt;machine&gt; bitbake arago-core-tisdk-image</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ ./oe-layertool-setup.sh</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ mkdir downloads</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ # You should already have downloaded CCS via web browser.&nbsp; Assuming location at ~/Downloads.</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cp $HOME/Downloads/CCS6.1.3.00034_linux.tar.gz downloads/</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ touch downloads/CCS6.1.3.00034_linux.tar.gz.done</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cd build</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ . conf/setenv</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE=&lt;machine&gt; bitbake arago-core-tisdk-image</div>
 +
You can also&nbsp;compile BSP &nbsp;in the following ways:
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ sudo chown adv:adv -R yocto_bsp</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cd yocto_bsp/</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$&nbsp;git clone&nbsp;[https://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git https://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git] tisdk</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cd tisdk/</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$&nbsp;git checkout processor-sdk-03.01.00.06</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ ./ti-oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-03.01.00.06-adv-config.txt</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ mkdir downloads</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ # You should already have downloaded CCS via web browser.&nbsp; Assuming location at ~/Downloads.</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cp $HOME/Downloads/CCS6.1.3.00034_linux.tar.gz downloads/</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ touch downloads/CCS6.1.3.00034_linux.tar.gz.done</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cd build</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ . conf/setenv</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE=&lt;machine&gt; bitbake arago-core-tisdk-image</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">EX:&nbsp;MACHINE=am57xxrom7510a2 bitbake arago-core-tisdk-image<br/></div>
 
&nbsp;
 
&nbsp;
  
Line 69: Line 79:
 
The following sections provide information for configuration, build options, and supported platforms of the Processor SDK.
 
The following sections provide information for configuration, build options, and supported platforms of the Processor SDK.
  
== <span style="color:#0070c0">Layer Configuration</span> ==
+
== <span style="color: rgb(0, 112, 192);">Layer Configuration</span> ==
  
Processor SDK uses the following oe-layersetup configs to configure the meta layers.
+
Processor SDK uses the following oe-layertool-setup configs to configure the meta layers.
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px">$ ./oe-layersetup.sh</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ ./oe-layertool-setup.sh</div>
 
&nbsp;
 
&nbsp;
  
== <span style="color:#0070c0">Build Options</span> ==
+
== <span style="color: rgb(0, 112, 192);">Build Options</span> ==
  
 
=== <span style="color: rgb(0, 112, 192);">Images</span> ===
 
=== <span style="color: rgb(0, 112, 192);">Images</span> ===
  
 
In addition to individual components packages, the following table provides a list of build targets supported. These are the &lt;target&gt; used in the command:
 
In addition to individual components packages, the following table provides a list of build targets supported. These are the &lt;target&gt; used in the command:
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">MACHINE==&lt;machine&gt; bitbake &lt;target&gt;</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE==&lt;machine&gt; bitbake &lt;target&gt;</div>
 
The "Build Output" is given relative to the arago-tmp-[toolchain]/deploy directory.
 
The "Build Output" is given relative to the arago-tmp-[toolchain]/deploy directory.
  
Line 145: Line 155:
  
 
The following platforms are supported in Processor SDK. These are the &lt;machine&gt; in the command:
 
The following platforms are supported in Processor SDK. These are the &lt;machine&gt; in the command:
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">MACHINE==&lt;machine&gt; bitbake &lt;target&gt;</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE==&lt;machine&gt; bitbake &lt;target&gt;</div>
  
  
Line 169: Line 179:
 
| style="width: 443px;" |  
 
| style="width: 443px;" |  
 
ROM-7510A2
 
ROM-7510A2
 +
 +
|-
 +
| am335xrsb4220a1
 +
| style="width: 443px;" |
 +
RSB-4220A1
 +
 +
|-
 +
| am335xrsb4221a1
 +
| style="width: 443px;" |
 +
RSB-4221A1
 +
 +
|-
 +
| am335xrom3310a1
 +
| style="width: 443px;" |
 +
ROM-3310A1
  
 
|}
 
|}
Line 177: Line 202:
  
 
=== <span style="color: rgb(0, 112, 192);">Build command</span> ===
 
=== <span style="color: rgb(0, 112, 192);">Build command</span> ===
 
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE=&lt;machine&gt; bitbake &lt;target&gt;</div>
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">MACHINE=&lt;machine&gt; bitbake &lt;target&gt;</div>
 
 
Take uboot as an example:
 
Take uboot as an example:
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging</div>
 
The MLO and u-boot.img will be located in the directory, ./arago-tmp-external-linaro-toolchain/deploy/images/am57xxrom7510a2.
 
The MLO and u-boot.img will be located in the directory, ./arago-tmp-external-linaro-toolchain/deploy/images/am57xxrom7510a2.
  
Line 190: Line 214:
  
 
When needed, source code under the work directory (e.g.,arago-tmp-external-linaro-toolchain/work/am57xxrom7510a2-linux-gnueabi/u-boot-ti-staging/2016.05+gitAUTOINC+87ffcd71d0-r14/git) can be modified. After the modification is done, run the following commands to force recompilation with the new code and rebuilding of the recipe, e.g.,
 
When needed, source code under the work directory (e.g.,arago-tmp-external-linaro-toolchain/work/am57xxrom7510a2-linux-gnueabi/u-boot-ti-staging/2016.05+gitAUTOINC+87ffcd71d0-r14/git) can be modified. After the modification is done, run the following commands to force recompilation with the new code and rebuilding of the recipe, e.g.,
 
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE=&lt;machine&gt; bitbake &lt;target&gt; --force -c compile</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE=&lt;machine&gt; bitbake &lt;target&gt;</div>
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">MACHINE=&lt;machine&gt; bitbake &lt;target&gt; --force -c compile</div>
 
 
 
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">MACHINE=&lt;machine&gt; bitbake &lt;target&gt;</div>
 
 
 
 
Take uboot as an example:
 
Take uboot as an example:
 
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging --force -c compile</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging</div>
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging --force -c compile</div>
 
 
 
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging</div>
 
 
 
 
&nbsp;
 
&nbsp;
  
Line 206: Line 222:
  
 
A built recipe can be cleaned using:
 
A built recipe can be cleaned using:
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">MACHINE=&lt;machine&gt; bitbake &lt;target&gt; -c cleansstate</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE=&lt;machine&gt; bitbake &lt;target&gt; -c cleansstate</div>
 
Take uboot as an example:
 
Take uboot as an example:
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging -c cleansstate</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging -c cleansstate</div>
 
The cleansstate task will clean recipe's work directory and remove the recipe's output from the dependency tree used by other recipe's during compilation.
 
The cleansstate task will clean recipe's work directory and remove the recipe's output from the dependency tree used by other recipe's during compilation.
  
= Create a Linux System Boot Media =
+
== <span style="color: rgb(0, 112, 192);">Recipes</span> ==
  
ROM-7510 supports boot from SD card and onboard flash. This section will guide
+
=== <span style="color: rgb(0, 112, 192);">Recipe Basics</span> ===
  
you how to build a image for ROM-7510 Linux system boot media.
+
One or more recipes can be specified for the &lt;target&gt; for greater granularity of recipe development and debug. Specifying a recipe name, minus the version (if the version is appended to the name), will build the recipe and all its dependencies.
  
== <span style="color: rgb(0, 112, 192);">Create a Linux System SD Card</span> ==
+
For example, the command below builds only the opencl recipe and all the dependencies it defines.
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE=am57xxrom7510a2 bitbake opencl</div>
 +
After the bitbake command above is successfully done, arago-tmp-[toolchain]/work/am57xx_evm-linux-gnueabi/opencl directory will be available including the original source code under the git folder, independent shared objects (.so files) under packages-split folder, and IPKs under deploy-ipks folder.
  
Copy full SDK(processor-sdk-linux-image-&lt;machine&gt;.tar.xz) package to your desktop
+
''NOTE:Please note that the output of a recipe can be in another folder under "arago-tmp-[toolchain]/work" directory, depending on the defines of the recipe.''
  
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">mkdir ti-sdk-XXX(XXX represents numbers, e.g. ti-sdk-001)</div>
+
=== <span style="color: rgb(0, 112, 192);">Installing Package</span> ===
  
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">tar –xJf Desktop/processor-sdk-linux-image-&lt;machine&gt;.tar.xz –C ti-sdk-XXX</div>
+
To install a modified and rebuilt package, copy the new IPKs from the deploy-ipks folder (e.g., arago-tmp-[toolchain]/work/am57xx_am57xxrom7510a2-linux-gnueabi/opencl/[version]/deploy-ipks) to the target system and then run the following command to install the IPKs:
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ opkg install [package_ipk].ipk</div>
 +
== <span style="color: rgb(0, 112, 192);">Common Variations</span> ==
  
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">cd ti-sdk-XXX/bin</div>
+
=== <span style="color: rgb(0, 112, 192);">Rebuilding without SGX</span> ===
  
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">./create-sdcard.sh</div>
+
In Processor SDK delivered today the graphics hardware acceleration is enabled by default for device families with SGX (e.g. AM335x, AM437x, AM57xx). As a result, some of the applications with graphics dependencies will not run properly on device variants in those families that do not contain the SGX accelerator (e.g. AM3352, AM4372, etc.). The Processor SDK has been enhanced to provide the same OOB experience with software rendering provided by QT5/Weston. The non-SGX software rendering build will be enabled by adding the following to the bottom of conf/local.conf immediately before invoking bitbake.
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ MACHINE_FEATURES_remove=”sgx”</div>
 +
=== <span style="color: rgb(0, 112, 192);">Rebuilding without Wayland</span> ===
  
Select SD card
+
If a full Window system is not needed, i.e. if you simply want apps to run full screen using EGLFS then you can remove Wayland by adding the following to the bottom of conf/local.conf immediately before invoking bitbake:
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ DISTRO_FEATURES_remove = "wayland"</div>
 +
&nbsp;
  
 +
= Create a Linux System Boot Media =
 +
 +
Our motherboard&nbsp;generally supports from SD card and onboard flash. This section will take&nbsp;ROM-7510 as an example to introduce how to make a system boot media.
 +
 +
== <span style="color: rgb(0, 112, 192);">Create a Linux System SD Card</span> ==
  
 +
Copy full SDK(processor-sdk-linux-image-&lt;machine&gt;.tar.xz) package to your desktop
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ mkdir ti-sdk-XXX(XXX represents numbers, e.g. ti-sdk-001)</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ tar –xJf Desktop/processor-sdk-linux-image-&lt;machine&gt;.tar.xz –C ti-sdk-XXX</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cd ti-sdk-XXX/bin</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ ./create-sdcard.sh</div>
 +
Select SD card:
  
Select number of partitions
+
[[File:AM57XX select sd 1.png|336x119px|AM57XX select sd 1.png]]
  
 +
Select number of partitions:
  
 +
[[File:AM57XX partition 1.png|735x201px|AM57XX partition 1.png]]
  
 
Whether to continue:
 
Whether to continue:
  
 
+
[[File:AM57XX continue 1.png|734x205px|AM57XX continue 1.png]]
  
 
Select Pre-built System image:
 
Select Pre-built System image:
  
 
+
[[File:AM57XX pre 1.png|736x187px|AM57XX pre 1.png]]
  
 
If you need to transfer whole system to on-board flash, please press y followed by Enter.
 
If you need to transfer whole system to on-board flash, please press y followed by Enter.
  
 
+
[[File:AM57XX upgrade 1.png|442x27px|AM57XX upgrade 1.png]]
  
 
While "[Operation Finished]" shows up means the transferring is finished.
 
While "[Operation Finished]" shows up means the transferring is finished.
  
&nbsp;
+
Then insert the Linux system SD card to ROM-7510, it will boot up with Linux environment.
  
 
== <span style="color: rgb(0, 112, 192);">Boot from Onboard Flash</span> ==
 
== <span style="color: rgb(0, 112, 192);">Boot from Onboard Flash</span> ==
  
If you already have a Linux system SD card, you can refer to the following steps to copy the content to onboard flash and then boot from onboard flash. Advantech also provides you a script “mk-eMMC-boot.sh” to speed up the process of installing system image to onboard flash.
+
If you have&nbsp;already get&nbsp;a Linux system SD card and the last step of make process&nbsp;selected "y", you can refer to the following steps to burn the system to the onboard flash.
 
 
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">cd mk_inand</div>
 
 
 
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">./mk-eMMC-boot.sh</div>
 
  
 +
Please insert the Linux system SD card to ROM-7510, and then power up.&nbsp;It&nbsp;boot&nbsp;from the SD card.
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cd /mk_inand</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ ./mk-eMMC-boot.sh</div>
 
Select eMMC:
 
Select eMMC:
  
 +
[[File:AM57XX select emmc 1.png|305x107px|AM57XX select emmc 1.png]]
  
 +
Select number of partitions:
  
Select number of partitions,
+
[[File:AM57XX partition emmc 3.png|656x200px|AM57XX partition emmc 3.png]]
 
 
 
 
  
 
Partition completion. Continue the burning system or not?
 
Partition completion. Continue the burning system or not?
  
 
+
[[File:AM57XX continue emmc 1.png|654x182px|AM57XX continue emmc 1.png]]
  
 
If “y” was pressed, the system will be burned to eMMC.
 
If “y” was pressed, the system will be burned to eMMC.
Line 277: Line 309:
 
While "[Operation Finished]" shows up means the burning is finished.
 
While "[Operation Finished]" shows up means the burning is finished.
  
&nbsp;
+
Then you can boot from onboard flash without SD card.&nbsp;
  
= Local development =
+
== <span style="color: rgb(0, 112, 192);">Debug console information</span> ==
  
All instructions in this guide are based on Ubuntu 14.04 LTS developing environment. Please install the Ubuntu 14.04 LTS at your PC/NB in advance.
+
If you want to see debug message from device, you need to prepare for hardware device and software tool.
  
== <span style="color: rgb(0, 112, 192);">Set up Build Environment</span> ==
+
=== <span class="mw-headline" id="preparing_for_hardware_device"><span style="color: rgb(0, 112, 192);">Preparing for hardware device</span></span> ===
  
Perform the following command in terminal console
+
*The following URL provides information about the debug port slot and the debug port line for each device
  
cd ti-sdk-XXX/
+
[http://ess-wiki.advantech.com.tw/view/Debug_Port_Information#i.MX6 <font color="#0066cc">Debug Port Information</font>]
  
./sdk-install.sh
+
=== <span class="mw-headline" id="preparing_for_software_tool"><span style="color: rgb(0, 112, 192);">Preparing for software tool</span></span> ===
  
== <span style="color: rgb(0, 112, 192);">Rebuild sources</span> ==
+
*You need to prepare the debug console tool. For example: "minicom" tool or "putty" tool.
 +
*Baud rate: 115200
  
Using the&nbsp;[http://processors.wiki.ti.com/index.php/Processor_Linux_SDK_Top-Level_Makefile top-level makefile]&nbsp;in the SDK root directory. For example:
+
&nbsp; &nbsp;
  
<code>make all</code>&nbsp;rebuilds all components in the SDK
+
= Local development =
  
<code>make linux</code>&nbsp;configures and builds the kernel
+
All instructions in this guide are based on Ubuntu 14.04 LTS developing environment. Please install the Ubuntu 14.04 LTS at your PC/NB in advance.
  
<code>make u-boot-spl</code>&nbsp;builds u-boot, u-boot-spl and MLO
+
== <span style="color: rgb(0, 112, 192);">Set up Build Environment</span> ==
  
== <span style="color:#0070c0">Recipes</span> ==
+
Perform the following command in terminal console
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ cd ti-sdk-XXX/</div><div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ ./sdk-install.sh</div>
 +
== <span style="color: rgb(0, 112, 192);">Rebuild sources</span> ==
  
=== <span style="color:#0070c0">Recipe Basics</span> ===
+
Using the&nbsp;[http://processors.wiki.ti.com/index.php/Processor_Linux_SDK_Top-Level_Makefile top-level makefile]&nbsp;in the SDK root directory. For example:
  
One or more recipes can be specified for the &lt;target&gt; for greater granularity of recipe development and debug. Specifying a recipe name, minus the version (if the version is appended to the name), will build the recipe and all its dependencies.
+
Rebuilds all components in the SDK:
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ make all</div>
 +
Configures and builds the kernel:
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ make linux</div>
 +
If you want to copy the compiled module to the specified directory:
  
For example, the command below builds only the opencl recipe and all the dependencies it defines.
+
Please specifying the installation directory in the&nbsp;Rules.make file firstly
<div style="background:#eee; border:1px solid #ccc; padding:5px 10px">MACHINE=am57xxrom7510a1 bitbake opencl</div>
+
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">DESTDIR=<''install_directory''></div>
After the bitbake command above is successfully done, arago-tmp-[toolchain]/work/am57xx_evm-linux-gnueabi/opencl directory will be available including the original source code under the git folder, independent shared objects (.so files) under packages-split folder, and IPKs under deploy-ipks folder.
+
Then executing the following instructions:
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ make linux_install</div>
 +
Builds u-boot, u-boot-spl and MLO:
 +
<div style="background: rgb(238, 238, 238); padding: 5px 10px; border: 1px solid rgb(204, 204, 204);">$ make u-boot</div>
 +
&nbsp; &nbsp;
  
NOTE
+
= Customization =
  
&nbsp;
+
== <span style="color:#0070c0">Package addition</span> ==
 
 
Please note that the output of a recipe can be in another folder under "arago-tmp-[toolchain]/work" directory, depending on the defines of the recipe.
 
  
&nbsp;
+
=== <span style="color:#0070c0">To add vsftpd & crontab</span> ===
  
&nbsp;
+
:Navigate to the directory where '''tisdk-rootfs-image.bbappend''' located
 
+
::<code>$ cd <span style="color:#7030a0">'''${BSP_HOME}'''</span>/sources/meta-advantech/meta-ti-adv/recipes-core/images/</code>
=== <span style="color:#0070c0">Forced Re-compilation</span> ===
+
:Add following line to '''tisdk-rootfs-image.bbappend'''
 
+
::<code>IMAGE_INSTALL += " cronie vsftpd "</code>
When needed, source code under the work directory (e.g., arago-tmp-[toolchain]/work/am57xx_evm-linux-gnueabi/opencl/git) can be modified. After the modification is done, run the following commands to force recompilation with the new code and rebuilding of the recipe, e.g.,
+
:Then, follow the [[IoTGateway/BSP/Linux/AM57xx/AM57xx_User_Guide#Build_Steps|Build Steps]] above to generate the image.
<div style="background:#eee;  border:1px solid #ccc;  padding:5px 10px">MACHINE=am57xxrom7510a1&nbsp;bitbake opencl --force -c compile</div><div style="background:#eee;  border:1px solid #ccc;  padding:5px 10px">MACHINE=am57xxrom7510a1 bitbake opencl</div>
 
=== <span style="color:#0070c0">Installing Package</span> ===
 
 
 
To install a modified and rebuilt package, copy the new IPKs from the deploy-ipks folder (e.g., arago-tmp-[toolchain]/work/am57xx_evm-linux-gnueabi/opencl/[version]/deploy-ipks) to the target system and then run the following command to install the IPKs:
 
<div style="background:#eee;  border:1px solid #ccc;  padding:5px 10px">opkg install [package_ipk].ipk</div>
 
== <span style="color:#0070c0">Common Variations</span> ==
 
 
 
=== <span style="color:#0070c0">Rebuilding without SGX</span> ===
 
 
 
In Processor SDK delivered today the graphics hardware acceleration is enabled by default for device families with SGX (e.g. AM335x, AM437x, AM57xx). As a result, some of the applications with graphics dependencies will not run properly on device variants in those families that do not contain the SGX accelerator (e.g. AM3352, AM4372, etc.). The Processor SDK has been enhanced to provide the same OOB experience with software rendering provided by QT5/Weston. The non-SGX software rendering build will be enabled by adding the following to the bottom of conf/local.conf immediately before invoking bitbake.
 
<div style="background:#eee;  border:1px solid #ccc;  padding:5px 10px">MACHINE_FEATURES_remove=”sgx”</div>
 
=== <span style="color:#0070c0">Rebuilding without Wayland</span> ===
 
 
 
If a full Window system is not needed, i.e. if you simply want apps to run full screen using EGLFS then you can remove Wayland by adding the following to the bottom of conf/local.conf immediately before invoking bitbake:
 
<div style="background:#eee;  border:1px solid #ccc;  padding:5px 10px">DISTRO_FEATURES_remove = "wayland"</div>
 

Latest revision as of 07:36, 17 October 2019


Introduction

This page provides the steps to build the Processor SDK and individual components from source. The Processor SDK build is based on the Arago Project which provides a set of layers for OpenEmbedded and the Yocto Project targeting TI platforms.

This page will provide the basic steps require to recreate the Processor SDK along with a reference of Processor SDK specific configurations, build targets, and target devices. Also, tips and suggestions are provided along with links for more in-depth information.

 

Getting Start

Prerequisites

Host Setup

Generally,to do Linux development, you’ll need a host PC running Linux. In the development with the advantech SDK, it would be strongly recommend to use Ubuntu 14.04 LTS 64 bit as developing environment. Because we have successfully tested our BSP on these OS version. Please install the Ubuntu 14.04 LTS 64 bit at your PC/NB in advance.

Code Composer Studio

Code Composer Studio 6.1.3.00034 must be downloaded manually since you need to fill out a form related to export control. Please download the Linux off-line installation tarball, e.g., CCS6.1.3.00034_linux.tar.gz, from CCS v6 Downloads. For starters, just use your web browser to download the file to $HOME/Downloads.

Docker install and setting

If you don't have docker in your system, then you can follow the below  steps to install docker and run it first.

To install Docker Engine on your platform

Please refer to Docker Installation Guide for details

To pull ubuntu 14.04 image from Docker Hub

$ docker pull advrisc/u14.04-am57lbv1

To create container

$ docker run -it --name ${CONTAINER_NAME} -v ${WORKSPACE}:/home/adv/yocto_bsp:rw advrisc/u14.04-am57lbv1 /bin/bash

 

Build Steps

The following example shows how to download the Advantech Yocto BSP from GitHub.

For this example, a directory called yocto_bsp is created for the project.

$ mkdir yocto_bsp
$ sudo chown adv:adv -R yocto_bsp
$ cd yocto_bsp/
$ mkdir tisdk
$ cd tisdk/
$ repo init -u https://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git -b processor-sdk-03.01.00.06 -m amxxLBV1090.xml    <---AM57xx/AM3xx5

$ repo init -u -b git://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git -b  refs/tags/am57xxLBV1000  <- for LBV1000

$ repo sync

If you want to get latest bsp:

$ repo init -u git://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git -b processor-sdk-03.01.00.06
$ repo sync

Due to lots of company firewalls/proxies only permitting HTTP traffic this is what our default repo manifest is using. At times the loading of repository server might be too heavy or for other reasons. You may be experience the following issues:

 23456789.png

First just try repo syncing again it might just have been a connection glitch.

Then, if the error(s) persist try using git's garbage collection on the failing repository before attempting to sync again, e.g. if the error indicates an issue in the meta-openembedded repository:

cd .repo/projects/sources/meta-arago.git

$ git gc

If the error(s) persist try removing your local git/repo cache before attempting to sync again, e.g. if the error indicates an issue in the meta-openembedded repository:

$ rm -rf .repo/projects/sources/meta-arago.git
$ rm -rf .repo/project-objects/meta-arago.git.git

Additionally you can limit the number of git repositories which are downloaded in parallel by using the additional parameter "-jX". e.g. to download one repository at a time:

$ repo sync -j1

Additionally the following tweak to your IP settings maybe helpful:

sudo sysctl -w net.ipv4.tcp_window_scaling=0

If your Internet connection permits you might also try switching those failing repositories to using the git protocol instead by modifying your .repo/manifest.xml as follows:

<remote fetch="git://git.arago-project.org" name="meta-arago"/>

$ ./oe-layertool-setup.sh
$ mkdir downloads
$ # You should already have downloaded CCS via web browser.  Assuming location at ~/Downloads.
$ cp $HOME/Downloads/CCS6.1.3.00034_linux.tar.gz downloads/
$ touch downloads/CCS6.1.3.00034_linux.tar.gz.done
$ cd build
$ . conf/setenv
$ MACHINE=<machine> bitbake arago-core-tisdk-image

You can also compile BSP  in the following ways:

$ sudo chown adv:adv -R yocto_bsp
$ cd yocto_bsp/
$ git clone https://github.com/ADVANTECH-Corp/adv-ti-yocto-bsp.git tisdk
$ cd tisdk/
$ git checkout processor-sdk-03.01.00.06
$ ./ti-oe-layertool-setup.sh -f configs/processor-sdk/processor-sdk-03.01.00.06-adv-config.txt
$ mkdir downloads
$ # You should already have downloaded CCS via web browser.  Assuming location at ~/Downloads.
$ cp $HOME/Downloads/CCS6.1.3.00034_linux.tar.gz downloads/
$ touch downloads/CCS6.1.3.00034_linux.tar.gz.done
$ cd build
$ . conf/setenv
$ MACHINE=<machine> bitbake arago-core-tisdk-image
EX: MACHINE=am57xxrom7510a2 bitbake arago-core-tisdk-image

 

Processor SDK Build Reference

The following sections provide information for configuration, build options, and supported platforms of the Processor SDK.

Layer Configuration

Processor SDK uses the following oe-layertool-setup configs to configure the meta layers.

$ ./oe-layertool-setup.sh

 

Build Options

Images

In addition to individual components packages, the following table provides a list of build targets supported. These are the <target> used in the command:

$ MACHINE==<machine> bitbake <target>

The "Build Output" is given relative to the arago-tmp-[toolchain]/deploy directory.

Target

Build Output

Description

arago-core-tisdk-image

images/<machine>/processor-sdk-linux-image-<machine>.tar.xz

Full SDK

tisdk-rootfs-image

images/<machine>/tisdk-rootfs-image-<machine>.tar.xz

Target Filesystem

u-boot-ti-staging

images/<machine>/u-boot-<machine>.img

images/<machine>/MLO-<machine>

u-boot

linux-processor-sdk

images/<machine>/zImage-<machine>.bin

images/<machine>/zImage-<machine>.dtb

kernel

 

Platforms

The following platforms are supported in Processor SDK. These are the <machine> in the command:

$ MACHINE==<machine> bitbake <target>


MACHINE

Supported Product

am57xxrom7510a1

ROM-7510A1

am57xxrom7510a2

ROM-7510A2

am335xrsb4220a1

RSB-4220A1

am335xrsb4221a1

RSB-4221A1

am335xrom3310a1

ROM-3310A1

 

Command

Build command

$ MACHINE=<machine> bitbake <target>

Take uboot as an example:

$ MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging

The MLO and u-boot.img will be located in the directory, ./arago-tmp-external-linaro-toolchain/deploy/images/am57xxrom7510a2.

When the target is arago-core-tisdk-image, MLO,u-boot.img,zImage, devicetree file, filesystem and full SDK will compiled.

 

To modify source code and rebuild u-boot

When needed, source code under the work directory (e.g.,arago-tmp-external-linaro-toolchain/work/am57xxrom7510a2-linux-gnueabi/u-boot-ti-staging/2016.05+gitAUTOINC+87ffcd71d0-r14/git) can be modified. After the modification is done, run the following commands to force recompilation with the new code and rebuilding of the recipe, e.g.,

$ MACHINE=<machine> bitbake <target> --force -c compile
$ MACHINE=<machine> bitbake <target>

Take uboot as an example:

$ MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging --force -c compile
$ MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging

 

Cleaning Built Recipe

A built recipe can be cleaned using:

$ MACHINE=<machine> bitbake <target> -c cleansstate

Take uboot as an example:

$ MACHINE=am57xxrom7510a2 bitbake u-boot-ti-staging -c cleansstate

The cleansstate task will clean recipe's work directory and remove the recipe's output from the dependency tree used by other recipe's during compilation.

Recipes

Recipe Basics

One or more recipes can be specified for the <target> for greater granularity of recipe development and debug. Specifying a recipe name, minus the version (if the version is appended to the name), will build the recipe and all its dependencies.

For example, the command below builds only the opencl recipe and all the dependencies it defines.

$ MACHINE=am57xxrom7510a2 bitbake opencl

After the bitbake command above is successfully done, arago-tmp-[toolchain]/work/am57xx_evm-linux-gnueabi/opencl directory will be available including the original source code under the git folder, independent shared objects (.so files) under packages-split folder, and IPKs under deploy-ipks folder.

NOTE:Please note that the output of a recipe can be in another folder under "arago-tmp-[toolchain]/work" directory, depending on the defines of the recipe.

Installing Package

To install a modified and rebuilt package, copy the new IPKs from the deploy-ipks folder (e.g., arago-tmp-[toolchain]/work/am57xx_am57xxrom7510a2-linux-gnueabi/opencl/[version]/deploy-ipks) to the target system and then run the following command to install the IPKs:

$ opkg install [package_ipk].ipk

Common Variations

Rebuilding without SGX

In Processor SDK delivered today the graphics hardware acceleration is enabled by default for device families with SGX (e.g. AM335x, AM437x, AM57xx). As a result, some of the applications with graphics dependencies will not run properly on device variants in those families that do not contain the SGX accelerator (e.g. AM3352, AM4372, etc.). The Processor SDK has been enhanced to provide the same OOB experience with software rendering provided by QT5/Weston. The non-SGX software rendering build will be enabled by adding the following to the bottom of conf/local.conf immediately before invoking bitbake.

$ MACHINE_FEATURES_remove=”sgx”

Rebuilding without Wayland

If a full Window system is not needed, i.e. if you simply want apps to run full screen using EGLFS then you can remove Wayland by adding the following to the bottom of conf/local.conf immediately before invoking bitbake:

$ DISTRO_FEATURES_remove = "wayland"

 

Create a Linux System Boot Media

Our motherboard generally supports from SD card and onboard flash. This section will take ROM-7510 as an example to introduce how to make a system boot media.

Create a Linux System SD Card

Copy full SDK(processor-sdk-linux-image-<machine>.tar.xz) package to your desktop

$ mkdir ti-sdk-XXX(XXX represents numbers, e.g. ti-sdk-001)
$ tar –xJf Desktop/processor-sdk-linux-image-<machine>.tar.xz –C ti-sdk-XXX
$ cd ti-sdk-XXX/bin
$ ./create-sdcard.sh

Select SD card:

AM57XX select sd 1.png

Select number of partitions:

AM57XX partition 1.png

Whether to continue:

AM57XX continue 1.png

Select Pre-built System image:

AM57XX pre 1.png

If you need to transfer whole system to on-board flash, please press y followed by Enter.

AM57XX upgrade 1.png

While "[Operation Finished]" shows up means the transferring is finished.

Then insert the Linux system SD card to ROM-7510, it will boot up with Linux environment.

Boot from Onboard Flash

If you have already get a Linux system SD card and the last step of make process selected "y", you can refer to the following steps to burn the system to the onboard flash.

Please insert the Linux system SD card to ROM-7510, and then power up. It boot from the SD card.

$ cd /mk_inand
$ ./mk-eMMC-boot.sh

Select eMMC:

AM57XX select emmc 1.png

Select number of partitions:

AM57XX partition emmc 3.png

Partition completion. Continue the burning system or not?

AM57XX continue emmc 1.png

If “y” was pressed, the system will be burned to eMMC.

While "[Operation Finished]" shows up means the burning is finished.

Then you can boot from onboard flash without SD card. 

Debug console information

If you want to see debug message from device, you need to prepare for hardware device and software tool.

Preparing for hardware device

  • The following URL provides information about the debug port slot and the debug port line for each device

Debug Port Information

Preparing for software tool

  • You need to prepare the debug console tool. For example: "minicom" tool or "putty" tool.
  • Baud rate: 115200

   

Local development

All instructions in this guide are based on Ubuntu 14.04 LTS developing environment. Please install the Ubuntu 14.04 LTS at your PC/NB in advance.

Set up Build Environment

Perform the following command in terminal console

$ cd ti-sdk-XXX/
$ ./sdk-install.sh

Rebuild sources

Using the top-level makefile in the SDK root directory. For example:

Rebuilds all components in the SDK:

$ make all

Configures and builds the kernel:

$ make linux

If you want to copy the compiled module to the specified directory:

Please specifying the installation directory in the Rules.make file firstly

DESTDIR=<install_directory>

Then executing the following instructions:

$ make linux_install

Builds u-boot, u-boot-spl and MLO:

$ make u-boot

   

Customization

Package addition

To add vsftpd & crontab

Navigate to the directory where tisdk-rootfs-image.bbappend located
$ cd ${BSP_HOME}/sources/meta-advantech/meta-ti-adv/recipes-core/images/
Add following line to tisdk-rootfs-image.bbappend
IMAGE_INSTALL += " cronie vsftpd "
Then, follow the Build Steps above to generate the image.