<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.dh-electronics.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lzenz</id>
	<title>Wiki-DB - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.dh-electronics.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lzenz"/>
	<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Special:Contributions/Lzenz"/>
	<updated>2026-04-27T16:34:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_iMX6-D2&amp;diff=2275</id>
		<title>DHCOM iMX6-D2</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_iMX6-D2&amp;diff=2275"/>
		<updated>2018-09-21T08:16:25Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Linux Kernel Sources / Prebuilt Kernels */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|__TOC__&lt;br /&gt;
|[[Image:IM6Modul.png|600px|COM iMX6-D2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
*[[COM iMX6 Hardware|Hardware]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 100%; color: #000000; background: #f3f3f3;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* &#039;&#039;&#039;Cortex-A9  Freescale i.MX6 Solo/Dual(Lite)/Quad up to 1.2GHz&#039;&#039;&#039;&lt;br /&gt;
* 2D/3D graphics accelerator&lt;br /&gt;
* 0 - 512 MByte NAND flash memory (8 bit bus width) or 2 - 16 GByte eMMC flash&lt;br /&gt;
* 2 MB SPI boot flash&lt;br /&gt;
* 256 - 2048 MByte DDR3-1066 or DDR3-800&lt;br /&gt;
* On-board microSD card socket&lt;br /&gt;
* SD/MMC card interface, 4 bit SDIO&lt;br /&gt;
* LC display controller, 24 bit colors, 2048x1536 pixels&lt;br /&gt;
* LVDS 4-channel, max. 165 Mpixels/s&lt;br /&gt;
* On-board touch controller for 4-wire resistive touch screens&lt;br /&gt;
* Ethernet controller 10/100 Mbit, IEEE1588 conform&lt;br /&gt;
* USB 2.0 OTG high-speed&lt;br /&gt;
* USB 2.0 host high speed&lt;br /&gt;
* Full function UART &lt;br /&gt;
* Standard UART with hardware handshake support&lt;br /&gt;
* Standard UART&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* CAN interface &lt;br /&gt;
* 2 x SPI interface &lt;br /&gt;
* 2 x I2CTM interface &lt;br /&gt;
* I²S Audio codec (1 x microphone, 1 x Line in, 1x Line out)&lt;br /&gt;
* Real-time clock (I2CTM connection), low power temperature compensated&lt;br /&gt;
* 12 bit analog input &lt;br /&gt;
* 1 kbit EEPROM with integrated MAC address &lt;br /&gt;
* 16 bit address/databus interface on SODIMM-200 socket &lt;br /&gt;
* PWM channel&lt;br /&gt;
* 23 GPIOs&lt;br /&gt;
* JTAG debug connection via FFC plug connector &lt;br /&gt;
* Industrial temperature range (-40°C to +85°C)&lt;br /&gt;
* SODIMM-200 socket with DHCOM pin assignment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software Support ==&lt;br /&gt;
*[[COM iMX6 Bootloader U-Boot|Bootloader U-Boot]]&lt;br /&gt;
*[[DHCOM Update Mechanism|DHCOM Update Mechanism for i.MX6]]&lt;br /&gt;
&amp;lt;!-- *[[COM iMX6 WinCE|WinCE]] --&amp;gt;&lt;br /&gt;
*[[COM iMX6 Linux|Linux]]&lt;br /&gt;
*[[Yocto | Yocto on DHCOM i.MX6]]&lt;br /&gt;
*[[COM iMX6 WinCE|WinCE]]&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
==== U-Boot Sources ====&lt;br /&gt;
* [https://github.com/dh-electronics/u-boot-imx6qdl u-boot source code (GitHub)]&lt;br /&gt;
* [[media:U-boot-2015.10_iMX6_V1.1.0.6.zip|Download the latest U-Boot binary (V1.1.0.6)]]&lt;br /&gt;
&lt;br /&gt;
==== Update-Kernel ====&lt;br /&gt;
* [[media:2018-02-01_imx6_updatekernel.zip|2018-02-01 update kernel (binary)]]&lt;br /&gt;
&lt;br /&gt;
====Linux Kernel Sources / Prebuilt Kernels====&lt;br /&gt;
* Mainline&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-imx6qdl/tree/dev/4.4.60_dhcom 4.4.60 mainline (GitHub)]&lt;br /&gt;
:* [[media:2017-07-25_imx6_4.4.60_boot.tar.bz2|4.4.60 mainline prebuilt Kernel (boot partition)]]&lt;br /&gt;
* Vendor&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-imx6-vendor/tree/release/v4.1.15/20171102 4.1.15 vendor 2017-11-02 (GitHub)]&lt;br /&gt;
:* [[media:2017-11-02_imx6_4.1.15_boot.tar.bz2|4.1.15 vendor prebuilt Kernel (boot partition)]]&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-imx6-vendor/tree/release/v3.10.17/20170804 3.10.17 vendor 2017-08-04 (GitHub)]&lt;br /&gt;
:* [[media:2017-08-04_imx6_3.10.17_boot.tar.bz2|3.10.17 vendor prebuilt Kernel (boot partition)]]&lt;br /&gt;
&lt;br /&gt;
==== Debian based root file systems ====&lt;br /&gt;
* Debian alone&lt;br /&gt;
&lt;br /&gt;
:* [[media:2017-05-29_jessie-armhf-base-rootfs.tar.gz|Based on Debian 8 &amp;quot;Jessie&amp;quot; (2017-05-29)]]&lt;br /&gt;
&lt;br /&gt;
:* [[media:2014-10-30_developer-rootfs_DN6_imx6.tar.bz2|Based on Debian 6 &amp;quot;Squeeze&amp;quot; (2014-10-30)]]&amp;lt;br/&amp;gt;&#039;&#039;Remark:&#039;&#039; Shellshock (CVE-2014-6271) is already fixed.&lt;br /&gt;
&lt;br /&gt;
* Debian Qt5&lt;br /&gt;
&lt;br /&gt;
:* [[media:2017-10-06_jessie-armhf-imx6_fsl_4.1.15-rootfs.tar.gz|Based on Debian 8 &amp;quot;Jessie&amp;quot; + Qt5.9.1 (2017-10-06)]]&amp;lt;br/&amp;gt;&#039;&#039;Remark:&#039;&#039; It must be used with i.MX6 Vendor Kernel 4.1.15&lt;br /&gt;
&lt;br /&gt;
:* [[media:2016-12-19_jessie-armhf-imx6_fsl_3.10.17-rootfs.tar.gz|Based on Debian 8 &amp;quot;Jessie&amp;quot; + Qt5.7.1 (2016-12-19)]]&amp;lt;br/&amp;gt;&#039;&#039;Remark:&#039;&#039; It must be used with i.MX6 Vendor Kernel 3.10.17&lt;br /&gt;
&lt;br /&gt;
==== Virtual Machine for Application Development ====&lt;br /&gt;
* [[media:Debian Jessie v1.3.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Mainline Linux 4.4.x eMMC update package ====&lt;br /&gt;
* [[media:HD00035_2017-07-25_USBStick_eMMC_update_package.zip|i.MX6 Linux Kernel 4.4.60 with Debian Jessie Rootfilesystem]] &amp;lt;br/&amp;gt;Extract files to USB stick and use stick to update i.MX6 Solo, DualLite or Quad&lt;br /&gt;
&lt;br /&gt;
==== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ====&lt;br /&gt;
* [[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs, RTC, UART, Watchdog, and more ]] &lt;br /&gt;
* [[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
==== WEC7 DHHalLib.dll (function library) ====&lt;br /&gt;
* [[media:DHHalLib_R04_2016_10_19.zip|Download DHHalLib Library Version 1.3.0.0]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Source_R03_2016_10_19.zip|DHHalLib Demo App Source Code ]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Binary_R03_2016_10_19.zip|DHHalLib Demo App Binary File]]&lt;br /&gt;
* [[media:CSharp_LibWrapper.zip|Download DHHalLib CSharp Demo Wrapper App ]]&lt;br /&gt;
* [[media:CSharp_LibWrapper_Binary.zip|Download DHHalLib CSharp Demo Wrapper App Binary File]]&lt;br /&gt;
&lt;br /&gt;
==== WEC7 binary BSP ====&lt;br /&gt;
* [[media:2016-05-19_DHCOM_iMX6_BSP_BIN.zip|Download WEC7 binary BSP (date: 2016-05-19)]]&lt;br /&gt;
&lt;br /&gt;
==== WEC2013 DHHalLib.dll (function library) ====&lt;br /&gt;
* [[media:DHHalLib_WEC2013_R10_2018_06_12.zip|Download DHHalLib Library Version 1.4.2.0]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Source_WEC2013_R07_2018_06_12.zip|DHHalLib Demo App Source Code ]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Binary_WEC2013_R07_2018_06_12.zip|DHHalLib Demo App Binary File]]&lt;br /&gt;
* [[media:CSharp_LibWrapper_Source_WEC2013_R06_2017_08_08.zip|Download DHHalLib CSharp Wrapper]]&lt;br /&gt;
* [[media:CSharp_DHHalLib_Wrapper_App_Source_WEC2013_R05_2017_08_08.zip|DHHalLib C# Demo App Source Code]]&lt;br /&gt;
* [[media:CSharp_DHHalLib_Wrapper_App_Binary_WEC2013_R05_2017_08_08.zip|DHHalLib C# Demo App Binary File]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Main_Page&amp;diff=2237</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Main_Page&amp;diff=2237"/>
		<updated>2018-08-02T09:33:54Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| style=&amp;quot;width: 100%; color: #000000; border-spacing: 2px; border: 1px solid darkgray;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 25%; text-align: center;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 50%; text-align: center;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 25%; text-align: center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[Image:Welcome.jpg|200px|Welcome to DH electronics MediaWiki]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[Image:LOGO_DH_electronics.jpg|200px|Welcome to DH electronics MediaWiki]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[Image:Mediawiki.jpg|183px|Welcome to DH electronics MediaWiki]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Welcome to DH electronics new MediaWiki. This Wiki has the aim to provide our customers technical support for DH electronics products.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 100%; color: #000000; border-collapse:collapse; border: darkgray; border-style: solid; border-width: 1px 0 1px 0&amp;quot;&lt;br /&gt;
| [[Image:DHCM-120pix-ws.jpg|center|DH Computer on Module|link=DHCOM]]&lt;br /&gt;
|style=&amp;quot;padding:10px;&amp;quot;|&lt;br /&gt;
=== [[DHCOM|&amp;lt;span style=&amp;quot;color:black;&amp;quot;&amp;gt;DHCOM&amp;lt;/span&amp;gt;]] ===&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;Computer On Module&#039;&#039;&#039; (COM) is a powerful embedded computer on a compact circuit board.&lt;br /&gt;
&lt;br /&gt;
Our DHCOM modules offer high performance coupled with extensive features and interfaces, low power consumption&amp;lt;br&amp;gt;as well as compact size.Possible applications for our modules are in visualization, multimedia, automation and communication devices&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;[[DHCOM|here]]&#039;&#039;&#039; to get support information for our &#039;&#039;&#039;[[DHCOM]]&#039;&#039;&#039; products.&lt;br /&gt;
| style=&amp;quot;text-align: right;&amp;quot; |[[Image:IM6Modul.png|center|300px|COM iMX6-D2|link=COM iMX6-D2]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;border: darkgray; border-style: solid; border-width: 1px 0 0 0;&amp;quot;|[[Image:XLON Logo in Schwarz von SD Kopie.jpg|center|120px|DH electronics XLON|link=DHCOM]]&lt;br /&gt;
|style=&amp;quot;padding:10px; border: darkgray; border-style: solid; border-width: 1px 0 0 0;&amp;quot;|&lt;br /&gt;
=== [[XLON|&amp;lt;span style=&amp;quot;color:black;&amp;quot;&amp;gt;XLON&amp;lt;/span&amp;gt;]] ===&lt;br /&gt;
&lt;br /&gt;
Our &#039;&#039;&#039;XLON&#039;&#039;&#039; products are network interfaces for LonWorks-Technology.&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;[[XLON|here]]&#039;&#039;&#039; to get support information for our &#039;&#039;&#039;[[XLON]]&#039;&#039;&#039; products.&lt;br /&gt;
| style=&amp;quot;text-align: right; border: darkgray; border-style: solid; border-width: 1px 0 0 0;&amp;quot; |[[Image:XLON U10.png|center|275px|XLON U10|link=COM iMX6-D2]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Main_Page&amp;diff=2235</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Main_Page&amp;diff=2235"/>
		<updated>2018-08-02T09:28:26Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
{| style=&amp;quot;width: 100%; color: #000000; border-spacing: 2px; border: 1px solid darkgray;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 25%; text-align: center;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 50%; text-align: center;&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 25%; text-align: center;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[Image:Welcome.jpg|200px|Welcome to DH electronics MediaWiki]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[Image:LOGO_DH_electronics.jpg|200px|Welcome to DH electronics MediaWiki]]&lt;br /&gt;
| style=&amp;quot;text-align: center;&amp;quot; | [[Image:Mediawiki.jpg|183px|Welcome to DH electronics MediaWiki]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Welcome to DH electronics new MediaWiki. This Wiki has the aim to provide our customers technical support for DH electronics products.&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 100%; color: #000000; border-collapse:collapse; border-style: solid; border-width: 1px 0 1px 0&amp;quot;&lt;br /&gt;
| [[Image:DHCM-120pix-ws.jpg|center|DH Computer on Module|link=DHCOM]]&lt;br /&gt;
|style=&amp;quot;padding:10px;&amp;quot;|&lt;br /&gt;
=== [[DHCOM|&amp;lt;span style=&amp;quot;color:black;&amp;quot;&amp;gt;DHCOM&amp;lt;/span&amp;gt;]] ===&lt;br /&gt;
&lt;br /&gt;
A &#039;&#039;&#039;Computer On Module&#039;&#039;&#039; (COM) is a powerful embedded computer on a compact circuit board.&lt;br /&gt;
&lt;br /&gt;
Our DHCOM modules offer high performance coupled with extensive features and interfaces, low power consumption&amp;lt;br&amp;gt;as well as compact size.Possible applications for our modules are in visualization, multimedia, automation and communication devices&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;[[DHCOM|here]]&#039;&#039;&#039; to get support information for our &#039;&#039;&#039;[[DHCOM]]&#039;&#039;&#039; products.&lt;br /&gt;
| style=&amp;quot;text-align: right;&amp;quot; |[[Image:IM6Modul.png|center|300px|COM iMX6-D2|link=COM iMX6-D2]]&lt;br /&gt;
|-&lt;br /&gt;
|style=&amp;quot;border-style: solid; border-width: 1px 0 0 0;&amp;quot;|[[Image:XLON Logo in Schwarz von SD Kopie.jpg|center|120px|DH electronics XLON|link=DHCOM]]&lt;br /&gt;
|style=&amp;quot;padding:10px; border-style: solid; border-width: 1px 0 0 0;&amp;quot;|&lt;br /&gt;
=== [[XLON|&amp;lt;span style=&amp;quot;color:black;&amp;quot;&amp;gt;XLON&amp;lt;/span&amp;gt;]] ===&lt;br /&gt;
&lt;br /&gt;
Our &#039;&#039;&#039;XLON&#039;&#039;&#039; products are network interfaces for LonWorks-Technology.&lt;br /&gt;
&lt;br /&gt;
Click &#039;&#039;&#039;[[XLON|here]]&#039;&#039;&#039; to get support information for our &#039;&#039;&#039;[[XLON]]&#039;&#039;&#039; products.&lt;br /&gt;
| style=&amp;quot;text-align: right; border-style: solid; border-width: 1px 0 0 0;&amp;quot; |[[Image:XLON U10.png|center|275px|XLON U10|link=COM iMX6-D2]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_iMX6-D2&amp;diff=2114</id>
		<title>DHCOM iMX6-D2</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_iMX6-D2&amp;diff=2114"/>
		<updated>2018-02-01T09:27:41Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Update-Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|__TOC__&lt;br /&gt;
|[[Image:IM6Modul.png|600px|COM iMX6-D2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
*[[COM iMX6 Hardware|Hardware]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 100%; color: #000000; background: #f3f3f3;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* &#039;&#039;&#039;Cortex-A9  Freescale i.MX6 Solo/Dual(Lite)/Quad up to 1.2GHz&#039;&#039;&#039;&lt;br /&gt;
* 2D/3D graphics accelerator&lt;br /&gt;
* 0 - 512 MByte NAND flash memory (8 bit bus width) or 2 - 16 GByte eMMC flash&lt;br /&gt;
* 2 MB SPI boot flash&lt;br /&gt;
* 256 - 2048 MByte DDR3-1066 or DDR3-800&lt;br /&gt;
* On-board microSD card socket&lt;br /&gt;
* SD/MMC card interface, 4 bit SDIO&lt;br /&gt;
* LC display controller, 24 bit colors, 2048x1536 pixels&lt;br /&gt;
* LVDS 4-channel, max. 165 Mpixels/s&lt;br /&gt;
* On-board touch controller for 4-wire resistive touch screens&lt;br /&gt;
* Ethernet controller 10/100 Mbit, IEEE1588 conform&lt;br /&gt;
* USB 2.0 OTG high-speed&lt;br /&gt;
* USB 2.0 host high speed&lt;br /&gt;
* Full function UART &lt;br /&gt;
* Standard UART with hardware handshake support&lt;br /&gt;
* Standard UART&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* CAN interface &lt;br /&gt;
* 2 x SPI interface &lt;br /&gt;
* 2 x I2CTM interface &lt;br /&gt;
* I²S Audio codec (1 x microphone, 1 x Line in, 1x Line out)&lt;br /&gt;
* Real-time clock (I2CTM connection), low power temperature compensated&lt;br /&gt;
* 12 bit analog input &lt;br /&gt;
* 1 kbit EEPROM with integrated MAC address &lt;br /&gt;
* 16 bit address/databus interface on SODIMM-200 socket &lt;br /&gt;
* PWM channel&lt;br /&gt;
* 23 GPIOs&lt;br /&gt;
* JTAG debug connection via FFC plug connector &lt;br /&gt;
* Industrial temperature range (-40°C to +85°C)&lt;br /&gt;
* SODIMM-200 socket with DHCOM pin assignment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software Support ==&lt;br /&gt;
*[[COM iMX6 Bootloader U-Boot|Bootloader U-Boot]]&lt;br /&gt;
*[[DHCOM Update Mechanism|DHCOM Update Mechanism for i.MX6]]&lt;br /&gt;
&amp;lt;!-- *[[COM iMX6 WinCE|WinCE]] --&amp;gt;&lt;br /&gt;
*[[COM iMX6 Linux|Linux]]&lt;br /&gt;
*[[Yocto | Yocto on DHCOM i.MX6]]&lt;br /&gt;
*[[COM iMX6 WinCE|WinCE]]&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
==== U-Boot Sources ====&lt;br /&gt;
* [https://github.com/dh-electronics/u-boot-imx6qdl u-boot source code (GitHub)]&lt;br /&gt;
* [[media:U-boot-2015.10_iMX6_V1.1.0.6.zip|Download the latest U-Boot binary (V1.1.0.6)]]&lt;br /&gt;
&lt;br /&gt;
==== Update-Kernel ====&lt;br /&gt;
* [[media:2018-02-01_imx6_updatekernel.zip|2018-02-01 update kernel (binary)]]&lt;br /&gt;
&lt;br /&gt;
====Linux Kernel Sources / Prebuilt Kernels====&lt;br /&gt;
* Mainline&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-imx6qdl/tree/dev/4.4.60_dhcom 4.4.60 mainline (GitHub)]&lt;br /&gt;
:* [[media:2017-07-25_imx6_4.4.60_boot.tar.bz2|4.4.60 mainline prebuilt Kernel (prepared for boot partition)]]&lt;br /&gt;
* Vendor&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-imx6-vendor/tree/release/v4.1.15/20171102 4.1.15 vendor 2017-11-02 (GitHub)]&lt;br /&gt;
:* [[media:2017-11-02_imx6_4.1.15_boot.tar.bz2|4.1.15 vendor prebuilt Kernel (prepared for boot partition)]]&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-imx6-vendor/tree/release/v3.10.17/20170804 3.10.17 vendor 2017-08-04 (GitHub)]&lt;br /&gt;
:* [[media:2017-08-04_imx6_3.10.17_boot.tar.bz2|3.10.17 vendor prebuilt Kernel (prepared for boot partition)]]&lt;br /&gt;
&lt;br /&gt;
==== Debian based root file systems ====&lt;br /&gt;
* Debian alone&lt;br /&gt;
&lt;br /&gt;
:* [[media:2017-05-29_jessie-armhf-base-rootfs.tar.gz|Based on Debian 8 &amp;quot;Jessie&amp;quot; (2017-05-29)]]&lt;br /&gt;
&lt;br /&gt;
:* [[media:2014-10-30_developer-rootfs_DN6_imx6.tar.bz2|Based on Debian 6 &amp;quot;Squeeze&amp;quot; (2014-10-30)]]&amp;lt;br/&amp;gt;&#039;&#039;Remark:&#039;&#039; Shellshock (CVE-2014-6271) is already fixed.&lt;br /&gt;
&lt;br /&gt;
* Debian Qt5&lt;br /&gt;
&lt;br /&gt;
:* [[media:2017-10-06_jessie-armhf-imx6_fsl_4.1.15-rootfs.tar.gz|Based on Debian 8 &amp;quot;Jessie&amp;quot; + Qt5.9.1 (2017-10-06)]]&amp;lt;br/&amp;gt;&#039;&#039;Remark:&#039;&#039; It must be used with i.MX6 Vendor Kernel 4.1.15&lt;br /&gt;
&lt;br /&gt;
:* [[media:2016-12-19_jessie-armhf-imx6_fsl_3.10.17-rootfs.tar.gz|Based on Debian 8 &amp;quot;Jessie&amp;quot; + Qt5.7.1 (2016-12-19)]]&amp;lt;br/&amp;gt;&#039;&#039;Remark:&#039;&#039; It must be used with i.MX6 Vendor Kernel 3.10.17&lt;br /&gt;
&lt;br /&gt;
==== Virtual Machine for Application Development ====&lt;br /&gt;
* [[media:Debian Jessie v1.3.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Mainline Linux 4.4.x eMMC update package ====&lt;br /&gt;
* [[media:HD00035_2017-07-25_USBStick_eMMC_update_package.zip|i.MX6 Linux Kernel 4.4.60 with Debian Jessie Rootfilesystem]] &amp;lt;br/&amp;gt;Extract files to USB stick and use stick to update i.MX6 Solo, DualLite or Quad&lt;br /&gt;
&lt;br /&gt;
==== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ====&lt;br /&gt;
* [[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs, RTC, UART, Watchdog, and more ]] &lt;br /&gt;
* [[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
==== WEC7 DHHalLib.dll (function library) ====&lt;br /&gt;
* [[media:DHHalLib_R04_2016_10_19.zip|Download DHHalLib Library Version 1.3.0.0]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Source_R03_2016_10_19.zip|DHHalLib Demo App Source Code ]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Binary_R03_2016_10_19.zip|DHHalLib Demo App Binary File]]&lt;br /&gt;
* [[media:CSharp_LibWrapper.zip|Download DHHalLib CSharp Demo Wrapper App ]]&lt;br /&gt;
* [[media:CSharp_LibWrapper_Binary.zip|Download DHHalLib CSharp Demo Wrapper App Binary File]]&lt;br /&gt;
&lt;br /&gt;
==== WEC7 binary BSP ====&lt;br /&gt;
* [[media:2016-05-19_DHCOM_iMX6_BSP_BIN.zip|Download WEC7 binary BSP (date: 2016-05-19)]]&lt;br /&gt;
&lt;br /&gt;
==== WEC2013 DHHalLib.dll (function library) ====&lt;br /&gt;
* [[media:DHHalLib_WEC2013_R08_2017_11_20.zip|Download DHHalLib Library Version 1.4.0.2]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Source_WEC2013_R05_2017_08_08.zip|DHHalLib Demo App Source Code ]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Binary_WEC2013_R05_2017_08_08.zip|DHHalLib Demo App Binary File]]&lt;br /&gt;
* [[media:CSharp_LibWrapper_Source_WEC2013_R06_2017_08_08.zip|Download DHHalLib CSharp Wrapper]]&lt;br /&gt;
* [[media:CSharp_DHHalLib_Wrapper_App_Source_WEC2013_R05_2017_08_08.zip|DHHalLib C# Demo App Source Code]]&lt;br /&gt;
* [[media:CSharp_DHHalLib_Wrapper_App_Binary_WEC2013_R05_2017_08_08.zip|DHHalLib C# Demo App Binary File]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_iMX6-D2&amp;diff=2113</id>
		<title>DHCOM iMX6-D2</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_iMX6-D2&amp;diff=2113"/>
		<updated>2018-01-16T10:42:42Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Debian based root file systems */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|__TOC__&lt;br /&gt;
|[[Image:IM6Modul.png|600px|COM iMX6-D2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
*[[COM iMX6 Hardware|Hardware]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 100%; color: #000000; background: #f3f3f3;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* &#039;&#039;&#039;Cortex-A9  Freescale i.MX6 Solo/Dual(Lite)/Quad up to 1.2GHz&#039;&#039;&#039;&lt;br /&gt;
* 2D/3D graphics accelerator&lt;br /&gt;
* 0 - 512 MByte NAND flash memory (8 bit bus width) or 2 - 16 GByte eMMC flash&lt;br /&gt;
* 2 MB SPI boot flash&lt;br /&gt;
* 256 - 2048 MByte DDR3-1066 or DDR3-800&lt;br /&gt;
* On-board microSD card socket&lt;br /&gt;
* SD/MMC card interface, 4 bit SDIO&lt;br /&gt;
* LC display controller, 24 bit colors, 2048x1536 pixels&lt;br /&gt;
* LVDS 4-channel, max. 165 Mpixels/s&lt;br /&gt;
* On-board touch controller for 4-wire resistive touch screens&lt;br /&gt;
* Ethernet controller 10/100 Mbit, IEEE1588 conform&lt;br /&gt;
* USB 2.0 OTG high-speed&lt;br /&gt;
* USB 2.0 host high speed&lt;br /&gt;
* Full function UART &lt;br /&gt;
* Standard UART with hardware handshake support&lt;br /&gt;
* Standard UART&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* CAN interface &lt;br /&gt;
* 2 x SPI interface &lt;br /&gt;
* 2 x I2CTM interface &lt;br /&gt;
* I²S Audio codec (1 x microphone, 1 x Line in, 1x Line out)&lt;br /&gt;
* Real-time clock (I2CTM connection), low power temperature compensated&lt;br /&gt;
* 12 bit analog input &lt;br /&gt;
* 1 kbit EEPROM with integrated MAC address &lt;br /&gt;
* 16 bit address/databus interface on SODIMM-200 socket &lt;br /&gt;
* PWM channel&lt;br /&gt;
* 23 GPIOs&lt;br /&gt;
* JTAG debug connection via FFC plug connector &lt;br /&gt;
* Industrial temperature range (-40°C to +85°C)&lt;br /&gt;
* SODIMM-200 socket with DHCOM pin assignment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software Support ==&lt;br /&gt;
*[[COM iMX6 Bootloader U-Boot|Bootloader U-Boot]]&lt;br /&gt;
*[[DHCOM Update Mechanism|DHCOM Update Mechanism for i.MX6]]&lt;br /&gt;
&amp;lt;!-- *[[COM iMX6 WinCE|WinCE]] --&amp;gt;&lt;br /&gt;
*[[COM iMX6 Linux|Linux]]&lt;br /&gt;
*[[Yocto | Yocto on DHCOM i.MX6]]&lt;br /&gt;
*[[COM iMX6 WinCE|WinCE]]&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
==== U-Boot Sources ====&lt;br /&gt;
* [https://github.com/dh-electronics/u-boot-imx6qdl u-boot source code (GitHub)]&lt;br /&gt;
* [[media:U-boot-2015.10_iMX6_V1.1.0.6.zip|Download the latest U-Boot binary (V1.1.0.6)]]&lt;br /&gt;
&lt;br /&gt;
==== Update-Kernel ====&lt;br /&gt;
* [[media:2018-01-16_imx6_updatekernel.zip|2018-01-16 update kernel (binary)]]&lt;br /&gt;
&lt;br /&gt;
====Linux Kernel Sources / Prebuilt Kernels====&lt;br /&gt;
* Mainline&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-imx6qdl/tree/dev/4.4.60_dhcom 4.4.60 mainline (GitHub)]&lt;br /&gt;
:* [[media:2017-07-25_imx6_4.4.60_boot.tar.bz2|4.4.60 mainline prebuilt Kernel (prepared for boot partition)]]&lt;br /&gt;
* Vendor&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-imx6-vendor/tree/release/v4.1.15/20171102 4.1.15 vendor 2017-11-02 (GitHub)]&lt;br /&gt;
:* [[media:2017-11-02_imx6_4.1.15_boot.tar.bz2|4.1.15 vendor prebuilt Kernel (prepared for boot partition)]]&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-imx6-vendor/tree/release/v3.10.17/20170804 3.10.17 vendor 2017-08-04 (GitHub)]&lt;br /&gt;
:* [[media:2017-08-04_imx6_3.10.17_boot.tar.bz2|3.10.17 vendor prebuilt Kernel (prepared for boot partition)]]&lt;br /&gt;
&lt;br /&gt;
==== Debian based root file systems ====&lt;br /&gt;
* Debian alone&lt;br /&gt;
&lt;br /&gt;
:* [[media:2017-05-29_jessie-armhf-base-rootfs.tar.gz|Based on Debian 8 &amp;quot;Jessie&amp;quot; (2017-05-29)]]&lt;br /&gt;
&lt;br /&gt;
:* [[media:2014-10-30_developer-rootfs_DN6_imx6.tar.bz2|Based on Debian 6 &amp;quot;Squeeze&amp;quot; (2014-10-30)]]&amp;lt;br/&amp;gt;&#039;&#039;Remark:&#039;&#039; Shellshock (CVE-2014-6271) is already fixed.&lt;br /&gt;
&lt;br /&gt;
* Debian Qt5&lt;br /&gt;
&lt;br /&gt;
:* [[media:2017-10-06_jessie-armhf-imx6_fsl_4.1.15-rootfs.tar.gz|Based on Debian 8 &amp;quot;Jessie&amp;quot; + Qt5.9.1 (2017-10-06)]]&amp;lt;br/&amp;gt;&#039;&#039;Remark:&#039;&#039; It must be used with i.MX6 Vendor Kernel 4.1.15&lt;br /&gt;
&lt;br /&gt;
:* [[media:2016-12-19_jessie-armhf-imx6_fsl_3.10.17-rootfs.tar.gz|Based on Debian 8 &amp;quot;Jessie&amp;quot; + Qt5.7.1 (2016-12-19)]]&amp;lt;br/&amp;gt;&#039;&#039;Remark:&#039;&#039; It must be used with i.MX6 Vendor Kernel 3.10.17&lt;br /&gt;
&lt;br /&gt;
==== Virtual Machine for Application Development ====&lt;br /&gt;
* [[media:Debian Jessie v1.3.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Mainline Linux 4.4.x eMMC update package ====&lt;br /&gt;
* [[media:HD00035_2017-07-25_USBStick_eMMC_update_package.zip|i.MX6 Linux Kernel 4.4.60 with Debian Jessie Rootfilesystem]] &amp;lt;br/&amp;gt;Extract files to USB stick and use stick to update i.MX6 Solo, DualLite or Quad&lt;br /&gt;
&lt;br /&gt;
==== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ====&lt;br /&gt;
* [[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs, RTC, UART, Watchdog, and more ]] &lt;br /&gt;
* [[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
==== WEC7 DHHalLib.dll (function library) ====&lt;br /&gt;
* [[media:DHHalLib_R04_2016_10_19.zip|Download DHHalLib Library Version 1.3.0.0]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Source_R03_2016_10_19.zip|DHHalLib Demo App Source Code ]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Binary_R03_2016_10_19.zip|DHHalLib Demo App Binary File]]&lt;br /&gt;
* [[media:CSharp_LibWrapper.zip|Download DHHalLib CSharp Demo Wrapper App ]]&lt;br /&gt;
* [[media:CSharp_LibWrapper_Binary.zip|Download DHHalLib CSharp Demo Wrapper App Binary File]]&lt;br /&gt;
&lt;br /&gt;
==== WEC7 binary BSP ====&lt;br /&gt;
* [[media:2016-05-19_DHCOM_iMX6_BSP_BIN.zip|Download WEC7 binary BSP (date: 2016-05-19)]]&lt;br /&gt;
&lt;br /&gt;
==== WEC2013 DHHalLib.dll (function library) ====&lt;br /&gt;
* [[media:DHHalLib_WEC2013_R08_2017_11_20.zip|Download DHHalLib Library Version 1.4.0.2]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Source_WEC2013_R05_2017_08_08.zip|DHHalLib Demo App Source Code ]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Binary_WEC2013_R05_2017_08_08.zip|DHHalLib Demo App Binary File]]&lt;br /&gt;
* [[media:CSharp_LibWrapper_Source_WEC2013_R06_2017_08_08.zip|Download DHHalLib CSharp Wrapper]]&lt;br /&gt;
* [[media:CSharp_DHHalLib_Wrapper_App_Source_WEC2013_R05_2017_08_08.zip|DHHalLib C# Demo App Source Code]]&lt;br /&gt;
* [[media:CSharp_DHHalLib_Wrapper_App_Binary_WEC2013_R05_2017_08_08.zip|DHHalLib C# Demo App Binary File]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_iMX6-D2&amp;diff=2112</id>
		<title>DHCOM iMX6-D2</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_iMX6-D2&amp;diff=2112"/>
		<updated>2018-01-16T10:41:40Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Update-Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|__TOC__&lt;br /&gt;
|[[Image:IM6Modul.png|600px|COM iMX6-D2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
*[[COM iMX6 Hardware|Hardware]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 100%; color: #000000; background: #f3f3f3;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* &#039;&#039;&#039;Cortex-A9  Freescale i.MX6 Solo/Dual(Lite)/Quad up to 1.2GHz&#039;&#039;&#039;&lt;br /&gt;
* 2D/3D graphics accelerator&lt;br /&gt;
* 0 - 512 MByte NAND flash memory (8 bit bus width) or 2 - 16 GByte eMMC flash&lt;br /&gt;
* 2 MB SPI boot flash&lt;br /&gt;
* 256 - 2048 MByte DDR3-1066 or DDR3-800&lt;br /&gt;
* On-board microSD card socket&lt;br /&gt;
* SD/MMC card interface, 4 bit SDIO&lt;br /&gt;
* LC display controller, 24 bit colors, 2048x1536 pixels&lt;br /&gt;
* LVDS 4-channel, max. 165 Mpixels/s&lt;br /&gt;
* On-board touch controller for 4-wire resistive touch screens&lt;br /&gt;
* Ethernet controller 10/100 Mbit, IEEE1588 conform&lt;br /&gt;
* USB 2.0 OTG high-speed&lt;br /&gt;
* USB 2.0 host high speed&lt;br /&gt;
* Full function UART &lt;br /&gt;
* Standard UART with hardware handshake support&lt;br /&gt;
* Standard UART&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* CAN interface &lt;br /&gt;
* 2 x SPI interface &lt;br /&gt;
* 2 x I2CTM interface &lt;br /&gt;
* I²S Audio codec (1 x microphone, 1 x Line in, 1x Line out)&lt;br /&gt;
* Real-time clock (I2CTM connection), low power temperature compensated&lt;br /&gt;
* 12 bit analog input &lt;br /&gt;
* 1 kbit EEPROM with integrated MAC address &lt;br /&gt;
* 16 bit address/databus interface on SODIMM-200 socket &lt;br /&gt;
* PWM channel&lt;br /&gt;
* 23 GPIOs&lt;br /&gt;
* JTAG debug connection via FFC plug connector &lt;br /&gt;
* Industrial temperature range (-40°C to +85°C)&lt;br /&gt;
* SODIMM-200 socket with DHCOM pin assignment&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software Support ==&lt;br /&gt;
*[[COM iMX6 Bootloader U-Boot|Bootloader U-Boot]]&lt;br /&gt;
*[[DHCOM Update Mechanism|DHCOM Update Mechanism for i.MX6]]&lt;br /&gt;
&amp;lt;!-- *[[COM iMX6 WinCE|WinCE]] --&amp;gt;&lt;br /&gt;
*[[COM iMX6 Linux|Linux]]&lt;br /&gt;
*[[Yocto | Yocto on DHCOM i.MX6]]&lt;br /&gt;
*[[COM iMX6 WinCE|WinCE]]&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
==== U-Boot Sources ====&lt;br /&gt;
* [https://github.com/dh-electronics/u-boot-imx6qdl u-boot source code (GitHub)]&lt;br /&gt;
* [[media:U-boot-2015.10_iMX6_V1.1.0.6.zip|Download the latest U-Boot binary (V1.1.0.6)]]&lt;br /&gt;
&lt;br /&gt;
==== Update-Kernel ====&lt;br /&gt;
* [[media:2018-01-16_imx6_updatekernel.zip|2018-01-16 update kernel (binary)]]&lt;br /&gt;
&lt;br /&gt;
====Linux Kernel Sources / Prebuilt Kernels====&lt;br /&gt;
* Mainline&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-imx6qdl/tree/dev/4.4.60_dhcom 4.4.60 mainline (GitHub)]&lt;br /&gt;
:* [[media:2017-07-25_imx6_4.4.60_boot.tar.bz2|4.4.60 mainline prebuilt Kernel (prepared for boot partition)]]&lt;br /&gt;
* Vendor&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-imx6-vendor/tree/release/v4.1.15/20171102 4.1.15 vendor 2017-11-02 (GitHub)]&lt;br /&gt;
:* [[media:2017-11-02_imx6_4.1.15_boot.tar.bz2|4.1.15 vendor prebuilt Kernel (prepared for boot partition)]]&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-imx6-vendor/tree/release/v3.10.17/20170804 3.10.17 vendor 2017-08-04 (GitHub)]&lt;br /&gt;
:* [[media:2017-08-04_imx6_3.10.17_boot.tar.bz2|3.10.17 vendor prebuilt Kernel (prepared for boot partition)]]&lt;br /&gt;
&lt;br /&gt;
==== Debian based root file systems ====&lt;br /&gt;
* Debian alone&lt;br /&gt;
&lt;br /&gt;
:* [[media:2017-05-29_jessie-armhf-base-rootfs.tar.gz|Based on Debian 8 &amp;quot;Jessie&amp;quot; (2017-05-29)]]&lt;br /&gt;
&lt;br /&gt;
:* [[media:2014-10-30_developer-rootfs_DN6_imx6.tar.bz2|Based on Debian 6 &amp;quot;Squeeze&amp;quot; (2014-10-30)]]&amp;lt;br/&amp;gt;&#039;&#039;Remark:&#039;&#039; Shellshock (CVE-2014-6271) is already fixed.&lt;br /&gt;
&lt;br /&gt;
* Debian Qt5&lt;br /&gt;
&lt;br /&gt;
:* [[media:2017-10-06_jessie-armhf-imx6_fsl_4.1.15-rootfs.tar.gz|Based on Debian 8 &amp;quot;Jessie&amp;quot; + Qt5.9.1 (2017-10-06)]]&amp;lt;br/&amp;gt;&amp;lt;font color=&amp;quot;#FF1010&amp;quot;&amp;gt;&#039;&#039;Remark:&#039;&#039; It must be used with i.MX6 Vendor Kernel 4.1.15&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* [[media:2016-12-19_jessie-armhf-imx6_fsl_3.10.17-rootfs.tar.gz|Based on Debian 8 &amp;quot;Jessie&amp;quot; + Qt5.7.1 (2016-12-19)]]&amp;lt;br/&amp;gt;&amp;lt;font color=&amp;quot;#FF1010&amp;quot;&amp;gt;&#039;&#039;Remark:&#039;&#039; It must be used with i.MX6 Vendor Kernel 3.10.17&amp;lt;/font&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Virtual Machine for Application Development ====&lt;br /&gt;
* [[media:Debian Jessie v1.3.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Mainline Linux 4.4.x eMMC update package ====&lt;br /&gt;
* [[media:HD00035_2017-07-25_USBStick_eMMC_update_package.zip|i.MX6 Linux Kernel 4.4.60 with Debian Jessie Rootfilesystem]] &amp;lt;br/&amp;gt;Extract files to USB stick and use stick to update i.MX6 Solo, DualLite or Quad&lt;br /&gt;
&lt;br /&gt;
==== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ====&lt;br /&gt;
* [[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs, RTC, UART, Watchdog, and more ]] &lt;br /&gt;
* [[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
==== WEC7 DHHalLib.dll (function library) ====&lt;br /&gt;
* [[media:DHHalLib_R04_2016_10_19.zip|Download DHHalLib Library Version 1.3.0.0]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Source_R03_2016_10_19.zip|DHHalLib Demo App Source Code ]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Binary_R03_2016_10_19.zip|DHHalLib Demo App Binary File]]&lt;br /&gt;
* [[media:CSharp_LibWrapper.zip|Download DHHalLib CSharp Demo Wrapper App ]]&lt;br /&gt;
* [[media:CSharp_LibWrapper_Binary.zip|Download DHHalLib CSharp Demo Wrapper App Binary File]]&lt;br /&gt;
&lt;br /&gt;
==== WEC7 binary BSP ====&lt;br /&gt;
* [[media:2016-05-19_DHCOM_iMX6_BSP_BIN.zip|Download WEC7 binary BSP (date: 2016-05-19)]]&lt;br /&gt;
&lt;br /&gt;
==== WEC2013 DHHalLib.dll (function library) ====&lt;br /&gt;
* [[media:DHHalLib_WEC2013_R08_2017_11_20.zip|Download DHHalLib Library Version 1.4.0.2]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Source_WEC2013_R05_2017_08_08.zip|DHHalLib Demo App Source Code ]]&lt;br /&gt;
* [[media:DHHalLib_Test_App_Binary_WEC2013_R05_2017_08_08.zip|DHHalLib Demo App Binary File]]&lt;br /&gt;
* [[media:CSharp_LibWrapper_Source_WEC2013_R06_2017_08_08.zip|Download DHHalLib CSharp Wrapper]]&lt;br /&gt;
* [[media:CSharp_DHHalLib_Wrapper_App_Source_WEC2013_R05_2017_08_08.zip|DHHalLib C# Demo App Source Code]]&lt;br /&gt;
* [[media:CSharp_DHHalLib_Wrapper_App_Binary_WEC2013_R05_2017_08_08.zip|DHHalLib C# Demo App Binary File]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_Flash_Update&amp;diff=2073</id>
		<title>DHCOM Flash Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_Flash_Update&amp;diff=2073"/>
		<updated>2017-08-21T09:24:09Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Step by Step */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following updates are possible with the Bootloader:&lt;br /&gt;
# Bootloader&lt;br /&gt;
# Splashimage&lt;br /&gt;
# Settings &lt;br /&gt;
# Linux kernel&lt;br /&gt;
# Linux rootfilesystem&lt;br /&gt;
# WinCE image&lt;br /&gt;
# Display adaptor EEPROM&lt;br /&gt;
&lt;br /&gt;
If you are working with DHCOM AM335x or DHCOM i.MX6 please have a look at [[DHCOM_Update_Mechanism|DHCOM Update Mechanism]].&lt;br /&gt;
&lt;br /&gt;
= User Manual =&lt;br /&gt;
== Step by Step ==&lt;br /&gt;
If you received an &#039;&#039;Update Image&#039;&#039; follow these steps to flash it to your target:&lt;br /&gt;
[[File:Update_stick_v1.PNG|thumb|right|200px|Files on the update media]]&lt;br /&gt;
# untar or unzip (or just copy if not bundled and/or compressed) the &#039;&#039;Update Image&#039;&#039; to the root directory of a usb stick&lt;br /&gt;
#* see picture on the right for an example how your update media should look after this step&lt;br /&gt;
# plug your usb stick into the USB Host port of the target&lt;br /&gt;
# switch on the power supply&lt;br /&gt;
# wait until the update has completed&lt;br /&gt;
#* progress can be followed at serial console&lt;br /&gt;
#* or on the LCD Display (if you have any)&lt;br /&gt;
# switch off the power supply&lt;br /&gt;
# remove the usb stick&lt;br /&gt;
# done&lt;br /&gt;
&lt;br /&gt;
== Pitfalls ==&lt;br /&gt;
# Bootloader U-Boot does not recognice all types of usb sticks. FAT32 und MSDOS master boot record is required.&lt;br /&gt;
# &#039;&#039;Update Image&#039;&#039; is written to a subdirectory on the usb stick. This is not supported.&lt;br /&gt;
&lt;br /&gt;
= Modes =&lt;br /&gt;
== Automatic Mode ==&lt;br /&gt;
:Is called after the start of the bootloader if the environment variable &#039;&#039;&#039;bootcmd&#039;&#039;&#039; contains &#039;&#039;&#039;update auto&#039;&#039;&#039;. The functionality tries to update the flash content &#039;&#039;&#039;via the DHupdate.ini file&#039;&#039;&#039; (Please have a look at [[DHCOM Flash Update#DHupdate.ini file|DHupdate.ini file]]). The update mechanism is searching for the update files on the specified storage devices. The update devices must be defined at the settings block (Please have a look at [[DHCOM Settings|DHCOM settings]]). With the DHupdate.ini file you have the possibility to run more then one updates, e.g. OS image and settings block.&lt;br /&gt;
&lt;br /&gt;
== Commandline Mode ==&lt;br /&gt;
#Instruction: &amp;quot;update&amp;quot; &lt;br /&gt;
#:The functionality tries to update the flash content &#039;&#039;&#039;via the DHupdate.ini file&#039;&#039;&#039;. In contrast to Automatically Update (which you can start with &#039;&#039;&#039;update auto&#039;&#039;&#039;) the update mechanism is searching on every available storage device for the update files.&lt;br /&gt;
#Instruction: &amp;quot;update &amp;lt;type&amp;gt; [filename]&amp;quot; &lt;br /&gt;
#:The functionality &#039;&#039;&#039;doesn&#039;t use the DHupdate.ini file&#039;&#039;&#039;. It allows only one update and the update mechanism is searching on every available storage device for the update files. With the &amp;lt;type&amp;gt; parameter you have to specify the update type. &lt;br /&gt;
#:The &amp;lt;type&amp;gt; parameter could be specified as follows:&lt;br /&gt;
#::* wince = WinCE image update + ENV update&lt;br /&gt;
#::* linux = Linux image update + ENV update &lt;br /&gt;
#:::Note: If you run &amp;lt;code&amp;gt;update linux&amp;lt;/code&amp;gt;, u-boot is searching for an update ENV script too. This script modifies the u-boot environment for Linux. The name of the script has to be the same as the kernel-image-name with the additional ending .env. You can also run an update without a script file. In this case u-boot only updates the kernel-image and the ENV remains unchanged. It is possible to update only the environment of u-boot without a kernel update by inserting the filename of the ENV script too. &lt;br /&gt;
#::* rootfs = Create or replace the linux root-filesystem which is stored in the NAND-Flash. The rootfs update has to be the last item (or second to last item if you insert the &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; command) in the DHupdate.ini file. For further Details: [[DHCOM Update: Linux Root Filesystem|DHCOM Update: Linux Root Filesystem]]&lt;br /&gt;
#::: Note: To run a &#039;&#039;&amp;quot;NAND-Flash root-filesystem update&amp;quot;&#039;&#039; you need a special linux-kernel which must have the filename &#039;&#039;&amp;quot;uImage.update&amp;quot;&#039;&#039;. This kernel must be available in the same diretory on your update-media as the DHupdate.ini file. Depending on your setup you have to update the u-boot environment too.&lt;br /&gt;
#::* bootloader = Bootloader update&lt;br /&gt;
#:::Note: The ENV in Flash memory is created on the first start of u-boot. If you run a bootloader update and the ENV at the new bootloader has changed, the ENV in Flash memory remains unchanged with the bootloader update. But you could delete the ENV block in flash memory before the update, then u-boot will create the new default ENV at the next start after the bootloader update.&lt;br /&gt;
#::* splash = Bootbitmap update&lt;br /&gt;
#::* settings = Settings block update&lt;br /&gt;
#::: Note: Please have a look at [[COM iMX25 Bootloader U-Boot#DHCOM settings|DHCOM settings]].&lt;br /&gt;
#::* eeprom = Display adaptor EEPROM update with DH settings&lt;br /&gt;
#::* reset = Execute a reset after a successfull update. A reset can only be the last item in a DHupdate.ini file. &lt;br /&gt;
#::: Note:  Be careful with the reset command. You can easily build a endless update loop by mistake.&lt;br /&gt;
#:The [filename] parameter could be used to specify a non default filename. The default filenames are:&lt;br /&gt;
#::* wince = default file names nk.gz or nk.bin&lt;br /&gt;
#::* linux = default file name uImage + default script file name uImage.env&lt;br /&gt;
#::* rootfs = default file name fsroot.tar.gz&lt;br /&gt;
#::* bootloader = default file name u-boot.bin&lt;br /&gt;
#::* splash = default file name splash.bmp&lt;br /&gt;
#::* settings = default file name settings.bin&lt;br /&gt;
#::* eeprom = default file name eeprom.bin&lt;br /&gt;
#::* reset = no file to specify&lt;br /&gt;
&lt;br /&gt;
= DHupdate.ini file =&lt;br /&gt;
:The DHupdate.ini file is a text file, which describes the user specified update mechanism. &lt;br /&gt;
&lt;br /&gt;
:[[Image:DHupdate_file_layout.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:For DHupdate.ini File Example, please have a look at the Please have a look at [[COM iMX25 Bootloader U-Boot#Downloads|Download area iMX25]] or [[COM AM35 Bootloader U-Boot#Downloads|Download area AM35x]].&lt;br /&gt;
:&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
:*If you update the [[DHCOM Settings|DHCOM settings]], it is possible to use the new settings for the update progress notifications on the display, by inserting the &amp;quot;refresh&amp;quot; command to the [update] section. Example:&lt;br /&gt;
 [update]&lt;br /&gt;
 settings 00_PV.bin&lt;br /&gt;
 refresh&lt;br /&gt;
 splash DH_800x480.bmp&lt;br /&gt;
 ...&lt;br /&gt;
 [end]&lt;br /&gt;
&lt;br /&gt;
:*It is necessary to use UNIX End Of Line conversion!!!&lt;br /&gt;
:*The order of the bitmap-filenames in the section &amp;lt;code&amp;gt;display&amp;lt;/code&amp;gt; tells the system when to display which bitmap.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Update progress LED description&#039;&#039;&#039;: &lt;br /&gt;
::The LED GPIO is activated as soon as update has started. This takes roughly 6 - 8 seconds. If the update was finished without an error, the LED GPIO is deactivated. If an error occurs during the update the LED GPIO begins blinking.&lt;br /&gt;
::LED error code:&lt;br /&gt;
::1 LED blinking interval = DHupdate.ini File error (Wrong file content or no valid file found)	&lt;br /&gt;
::2 LED blinking interval = Necessary File for Update not found&lt;br /&gt;
::3 LED blinking interval = Flash write or erase error&lt;br /&gt;
::4 LED blinking interval = Wrong OS Image type (e.g. no WinCE *.gz or *.bin file)&lt;br /&gt;
::5 LED blinking interval = Specified file not valid (e.g. linux *.env file)&lt;br /&gt;
::6 LED blinking interval = Image file size is to large&lt;br /&gt;
&lt;br /&gt;
= Overview - Flow Chart =&lt;br /&gt;
:[[Image:Flash Update Overview.png|1020px]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_Flash_Update&amp;diff=2072</id>
		<title>DHCOM Flash Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_Flash_Update&amp;diff=2072"/>
		<updated>2017-08-21T07:57:29Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following updates are possible with the Bootloader:&lt;br /&gt;
# Bootloader&lt;br /&gt;
# Splashimage&lt;br /&gt;
# Settings &lt;br /&gt;
# Linux kernel&lt;br /&gt;
# Linux rootfilesystem&lt;br /&gt;
# WinCE image&lt;br /&gt;
# Display adaptor EEPROM&lt;br /&gt;
&lt;br /&gt;
If you are working with DHCOM AM335x or DHCOM i.MX6 please have a look at [[DHCOM_Update_Mechanism|DHCOM Update Mechanism]].&lt;br /&gt;
&lt;br /&gt;
= User Manual =&lt;br /&gt;
== Step by Step ==&lt;br /&gt;
If you received an &#039;&#039;Update Image&#039;&#039; follow these steps to flash it to your target:&lt;br /&gt;
[[File:Update_stick_v1.PNG|thumb|right|200px|Files on the update media]]&lt;br /&gt;
# untar or unzip (or just copy of not bundled and/or compressed) the &#039;&#039;Update Image&#039;&#039; to the root directory of a usb stick&lt;br /&gt;
#* see picture on the right for an example how your update media should look after this step&lt;br /&gt;
# plug your usb stick into the USB Host port of the target&lt;br /&gt;
# switch on the power supply&lt;br /&gt;
# wait until the update has completed&lt;br /&gt;
#* progress can be followed at serial console&lt;br /&gt;
#* or on the LCD Display (if you have any)&lt;br /&gt;
# switch off the power supply&lt;br /&gt;
# remove the usb stick&lt;br /&gt;
# done&lt;br /&gt;
== Pitfalls ==&lt;br /&gt;
# Bootloader U-Boot does not recognice all types of usb sticks. FAT32 und MSDOS master boot record is required.&lt;br /&gt;
# &#039;&#039;Update Image&#039;&#039; is written to a subdirectory on the usb stick. This is not supported.&lt;br /&gt;
&lt;br /&gt;
= Modes =&lt;br /&gt;
== Automatic Mode ==&lt;br /&gt;
:Is called after the start of the bootloader if the environment variable &#039;&#039;&#039;bootcmd&#039;&#039;&#039; contains &#039;&#039;&#039;update auto&#039;&#039;&#039;. The functionality tries to update the flash content &#039;&#039;&#039;via the DHupdate.ini file&#039;&#039;&#039; (Please have a look at [[DHCOM Flash Update#DHupdate.ini file|DHupdate.ini file]]). The update mechanism is searching for the update files on the specified storage devices. The update devices must be defined at the settings block (Please have a look at [[DHCOM Settings|DHCOM settings]]). With the DHupdate.ini file you have the possibility to run more then one updates, e.g. OS image and settings block.&lt;br /&gt;
&lt;br /&gt;
== Commandline Mode ==&lt;br /&gt;
#Instruction: &amp;quot;update&amp;quot; &lt;br /&gt;
#:The functionality tries to update the flash content &#039;&#039;&#039;via the DHupdate.ini file&#039;&#039;&#039;. In contrast to Automatically Update (which you can start with &#039;&#039;&#039;update auto&#039;&#039;&#039;) the update mechanism is searching on every available storage device for the update files.&lt;br /&gt;
#Instruction: &amp;quot;update &amp;lt;type&amp;gt; [filename]&amp;quot; &lt;br /&gt;
#:The functionality &#039;&#039;&#039;doesn&#039;t use the DHupdate.ini file&#039;&#039;&#039;. It allows only one update and the update mechanism is searching on every available storage device for the update files. With the &amp;lt;type&amp;gt; parameter you have to specify the update type. &lt;br /&gt;
#:The &amp;lt;type&amp;gt; parameter could be specified as follows:&lt;br /&gt;
#::* wince = WinCE image update + ENV update&lt;br /&gt;
#::* linux = Linux image update + ENV update &lt;br /&gt;
#:::Note: If you run &amp;lt;code&amp;gt;update linux&amp;lt;/code&amp;gt;, u-boot is searching for an update ENV script too. This script modifies the u-boot environment for Linux. The name of the script has to be the same as the kernel-image-name with the additional ending .env. You can also run an update without a script file. In this case u-boot only updates the kernel-image and the ENV remains unchanged. It is possible to update only the environment of u-boot without a kernel update by inserting the filename of the ENV script too. &lt;br /&gt;
#::* rootfs = Create or replace the linux root-filesystem which is stored in the NAND-Flash. The rootfs update has to be the last item (or second to last item if you insert the &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; command) in the DHupdate.ini file. For further Details: [[DHCOM Update: Linux Root Filesystem|DHCOM Update: Linux Root Filesystem]]&lt;br /&gt;
#::: Note: To run a &#039;&#039;&amp;quot;NAND-Flash root-filesystem update&amp;quot;&#039;&#039; you need a special linux-kernel which must have the filename &#039;&#039;&amp;quot;uImage.update&amp;quot;&#039;&#039;. This kernel must be available in the same diretory on your update-media as the DHupdate.ini file. Depending on your setup you have to update the u-boot environment too.&lt;br /&gt;
#::* bootloader = Bootloader update&lt;br /&gt;
#:::Note: The ENV in Flash memory is created on the first start of u-boot. If you run a bootloader update and the ENV at the new bootloader has changed, the ENV in Flash memory remains unchanged with the bootloader update. But you could delete the ENV block in flash memory before the update, then u-boot will create the new default ENV at the next start after the bootloader update.&lt;br /&gt;
#::* splash = Bootbitmap update&lt;br /&gt;
#::* settings = Settings block update&lt;br /&gt;
#::: Note: Please have a look at [[COM iMX25 Bootloader U-Boot#DHCOM settings|DHCOM settings]].&lt;br /&gt;
#::* eeprom = Display adaptor EEPROM update with DH settings&lt;br /&gt;
#::* reset = Execute a reset after a successfull update. A reset can only be the last item in a DHupdate.ini file. &lt;br /&gt;
#::: Note:  Be careful with the reset command. You can easily build a endless update loop by mistake.&lt;br /&gt;
#:The [filename] parameter could be used to specify a non default filename. The default filenames are:&lt;br /&gt;
#::* wince = default file names nk.gz or nk.bin&lt;br /&gt;
#::* linux = default file name uImage + default script file name uImage.env&lt;br /&gt;
#::* rootfs = default file name fsroot.tar.gz&lt;br /&gt;
#::* bootloader = default file name u-boot.bin&lt;br /&gt;
#::* splash = default file name splash.bmp&lt;br /&gt;
#::* settings = default file name settings.bin&lt;br /&gt;
#::* eeprom = default file name eeprom.bin&lt;br /&gt;
#::* reset = no file to specify&lt;br /&gt;
&lt;br /&gt;
= DHupdate.ini file =&lt;br /&gt;
:The DHupdate.ini file is a text file, which describes the user specified update mechanism. &lt;br /&gt;
&lt;br /&gt;
:[[Image:DHupdate_file_layout.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:For DHupdate.ini File Example, please have a look at the Please have a look at [[COM iMX25 Bootloader U-Boot#Downloads|Download area iMX25]] or [[COM AM35 Bootloader U-Boot#Downloads|Download area AM35x]].&lt;br /&gt;
:&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
:*If you update the [[DHCOM Settings|DHCOM settings]], it is possible to use the new settings for the update progress notifications on the display, by inserting the &amp;quot;refresh&amp;quot; command to the [update] section. Example:&lt;br /&gt;
 [update]&lt;br /&gt;
 settings 00_PV.bin&lt;br /&gt;
 refresh&lt;br /&gt;
 splash DH_800x480.bmp&lt;br /&gt;
 ...&lt;br /&gt;
 [end]&lt;br /&gt;
&lt;br /&gt;
:*It is necessary to use UNIX End Of Line conversion!!!&lt;br /&gt;
:*The order of the bitmap-filenames in the section &amp;lt;code&amp;gt;display&amp;lt;/code&amp;gt; tells the system when to display which bitmap.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Update progress LED description&#039;&#039;&#039;: &lt;br /&gt;
::The LED GPIO is activated as soon as update has started. This takes roughly 6 - 8 seconds. If the update was finished without an error, the LED GPIO is deactivated. If an error occurs during the update the LED GPIO begins blinking.&lt;br /&gt;
::LED error code:&lt;br /&gt;
::1 LED blinking interval = DHupdate.ini File error (Wrong file content or no valid file found)	&lt;br /&gt;
::2 LED blinking interval = Necessary File for Update not found&lt;br /&gt;
::3 LED blinking interval = Flash write or erase error&lt;br /&gt;
::4 LED blinking interval = Wrong OS Image type (e.g. no WinCE *.gz or *.bin file)&lt;br /&gt;
::5 LED blinking interval = Specified file not valid (e.g. linux *.env file)&lt;br /&gt;
::6 LED blinking interval = Image file size is to large&lt;br /&gt;
&lt;br /&gt;
= Overview - Flow Chart =&lt;br /&gt;
:[[Image:Flash Update Overview.png|1020px]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_Flash_Update&amp;diff=2071</id>
		<title>DHCOM Flash Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_Flash_Update&amp;diff=2071"/>
		<updated>2017-08-21T07:52:11Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following updates are possible with the Bootloader:&lt;br /&gt;
# Bootloader&lt;br /&gt;
# Splashimage&lt;br /&gt;
# Settings &lt;br /&gt;
# Linux kernel&lt;br /&gt;
# Linux rootfilesystem&lt;br /&gt;
# WinCE image&lt;br /&gt;
# Display adaptor EEPROM&lt;br /&gt;
&lt;br /&gt;
If you are working with DHCOM AM335x or DHCOM i.MX6 please have a look at [[DHCOM_Update_Mechanism|DHCOM Update Mechanism]].&lt;br /&gt;
&lt;br /&gt;
= User Manual =&lt;br /&gt;
If you received an &#039;&#039;Update Image&#039;&#039; follow these steps to flash it to your target:&lt;br /&gt;
[[File:Update_stick_v1.PNG|thumb|right|200px|Files on the update media]]&lt;br /&gt;
# untar or unzip (or just copy of not bundled and/or compressed) the &#039;&#039;Update Image&#039;&#039; to the root directory of a usb stick&lt;br /&gt;
#* see picture on the right for an example how your update media should look after this step&lt;br /&gt;
# plug your usb stick into the USB Host port of the target&lt;br /&gt;
# switch on the power supply&lt;br /&gt;
# wait until the update has completed&lt;br /&gt;
#* progress can be followed at serial console&lt;br /&gt;
#* or on the LCD Display (if you have any)&lt;br /&gt;
# switch off the power supply&lt;br /&gt;
# remove the usb stick&lt;br /&gt;
# done&lt;br /&gt;
&lt;br /&gt;
= Modes =&lt;br /&gt;
== Automatic Mode ==&lt;br /&gt;
:Is called after the start of the bootloader if the environment variable &#039;&#039;&#039;bootcmd&#039;&#039;&#039; contains &#039;&#039;&#039;update auto&#039;&#039;&#039;. The functionality tries to update the flash content &#039;&#039;&#039;via the DHupdate.ini file&#039;&#039;&#039; (Please have a look at [[DHCOM Flash Update#DHupdate.ini file|DHupdate.ini file]]). The update mechanism is searching for the update files on the specified storage devices. The update devices must be defined at the settings block (Please have a look at [[DHCOM Settings|DHCOM settings]]). With the DHupdate.ini file you have the possibility to run more then one updates, e.g. OS image and settings block.&lt;br /&gt;
&lt;br /&gt;
== Commandline Mode ==&lt;br /&gt;
#Instruction: &amp;quot;update&amp;quot; &lt;br /&gt;
#:The functionality tries to update the flash content &#039;&#039;&#039;via the DHupdate.ini file&#039;&#039;&#039;. In contrast to Automatically Update (which you can start with &#039;&#039;&#039;update auto&#039;&#039;&#039;) the update mechanism is searching on every available storage device for the update files.&lt;br /&gt;
#Instruction: &amp;quot;update &amp;lt;type&amp;gt; [filename]&amp;quot; &lt;br /&gt;
#:The functionality &#039;&#039;&#039;doesn&#039;t use the DHupdate.ini file&#039;&#039;&#039;. It allows only one update and the update mechanism is searching on every available storage device for the update files. With the &amp;lt;type&amp;gt; parameter you have to specify the update type. &lt;br /&gt;
#:The &amp;lt;type&amp;gt; parameter could be specified as follows:&lt;br /&gt;
#::* wince = WinCE image update + ENV update&lt;br /&gt;
#::* linux = Linux image update + ENV update &lt;br /&gt;
#:::Note: If you run &amp;lt;code&amp;gt;update linux&amp;lt;/code&amp;gt;, u-boot is searching for an update ENV script too. This script modifies the u-boot environment for Linux. The name of the script has to be the same as the kernel-image-name with the additional ending .env. You can also run an update without a script file. In this case u-boot only updates the kernel-image and the ENV remains unchanged. It is possible to update only the environment of u-boot without a kernel update by inserting the filename of the ENV script too. &lt;br /&gt;
#::* rootfs = Create or replace the linux root-filesystem which is stored in the NAND-Flash. The rootfs update has to be the last item (or second to last item if you insert the &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; command) in the DHupdate.ini file. For further Details: [[DHCOM Update: Linux Root Filesystem|DHCOM Update: Linux Root Filesystem]]&lt;br /&gt;
#::: Note: To run a &#039;&#039;&amp;quot;NAND-Flash root-filesystem update&amp;quot;&#039;&#039; you need a special linux-kernel which must have the filename &#039;&#039;&amp;quot;uImage.update&amp;quot;&#039;&#039;. This kernel must be available in the same diretory on your update-media as the DHupdate.ini file. Depending on your setup you have to update the u-boot environment too.&lt;br /&gt;
#::* bootloader = Bootloader update&lt;br /&gt;
#:::Note: The ENV in Flash memory is created on the first start of u-boot. If you run a bootloader update and the ENV at the new bootloader has changed, the ENV in Flash memory remains unchanged with the bootloader update. But you could delete the ENV block in flash memory before the update, then u-boot will create the new default ENV at the next start after the bootloader update.&lt;br /&gt;
#::* splash = Bootbitmap update&lt;br /&gt;
#::* settings = Settings block update&lt;br /&gt;
#::: Note: Please have a look at [[COM iMX25 Bootloader U-Boot#DHCOM settings|DHCOM settings]].&lt;br /&gt;
#::* eeprom = Display adaptor EEPROM update with DH settings&lt;br /&gt;
#::* reset = Execute a reset after a successfull update. A reset can only be the last item in a DHupdate.ini file. &lt;br /&gt;
#::: Note:  Be careful with the reset command. You can easily build a endless update loop by mistake.&lt;br /&gt;
#:The [filename] parameter could be used to specify a non default filename. The default filenames are:&lt;br /&gt;
#::* wince = default file names nk.gz or nk.bin&lt;br /&gt;
#::* linux = default file name uImage + default script file name uImage.env&lt;br /&gt;
#::* rootfs = default file name fsroot.tar.gz&lt;br /&gt;
#::* bootloader = default file name u-boot.bin&lt;br /&gt;
#::* splash = default file name splash.bmp&lt;br /&gt;
#::* settings = default file name settings.bin&lt;br /&gt;
#::* eeprom = default file name eeprom.bin&lt;br /&gt;
#::* reset = no file to specify&lt;br /&gt;
&lt;br /&gt;
= DHupdate.ini file =&lt;br /&gt;
:The DHupdate.ini file is a text file, which describes the user specified update mechanism. &lt;br /&gt;
&lt;br /&gt;
:[[Image:DHupdate_file_layout.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:For DHupdate.ini File Example, please have a look at the Please have a look at [[COM iMX25 Bootloader U-Boot#Downloads|Download area iMX25]] or [[COM AM35 Bootloader U-Boot#Downloads|Download area AM35x]].&lt;br /&gt;
:&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
:*If you update the [[DHCOM Settings|DHCOM settings]], it is possible to use the new settings for the update progress notifications on the display, by inserting the &amp;quot;refresh&amp;quot; command to the [update] section. Example:&lt;br /&gt;
 [update]&lt;br /&gt;
 settings 00_PV.bin&lt;br /&gt;
 refresh&lt;br /&gt;
 splash DH_800x480.bmp&lt;br /&gt;
 ...&lt;br /&gt;
 [end]&lt;br /&gt;
&lt;br /&gt;
:*It is necessary to use UNIX End Of Line conversion!!!&lt;br /&gt;
:*The order of the bitmap-filenames in the section &amp;lt;code&amp;gt;display&amp;lt;/code&amp;gt; tells the system when to display which bitmap.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Update progress LED description&#039;&#039;&#039;: &lt;br /&gt;
::The LED GPIO is activated as soon as update has started. This takes roughly 6 - 8 seconds. If the update was finished without an error, the LED GPIO is deactivated. If an error occurs during the update the LED GPIO begins blinking.&lt;br /&gt;
::LED error code:&lt;br /&gt;
::1 LED blinking interval = DHupdate.ini File error (Wrong file content or no valid file found)	&lt;br /&gt;
::2 LED blinking interval = Necessary File for Update not found&lt;br /&gt;
::3 LED blinking interval = Flash write or erase error&lt;br /&gt;
::4 LED blinking interval = Wrong OS Image type (e.g. no WinCE *.gz or *.bin file)&lt;br /&gt;
::5 LED blinking interval = Specified file not valid (e.g. linux *.env file)&lt;br /&gt;
::6 LED blinking interval = Image file size is to large&lt;br /&gt;
&lt;br /&gt;
= Overview - Flow Chart =&lt;br /&gt;
:[[Image:Flash Update Overview.png|1020px]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:Update_stick_v1.PNG&amp;diff=2070</id>
		<title>File:Update stick v1.PNG</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:Update_stick_v1.PNG&amp;diff=2070"/>
		<updated>2017-08-21T07:48:32Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_Flash_Update&amp;diff=2069</id>
		<title>DHCOM Flash Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_Flash_Update&amp;diff=2069"/>
		<updated>2017-08-21T07:47:45Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* User Manual */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following updates are possible with the Bootloader:&lt;br /&gt;
# Bootloader&lt;br /&gt;
# Splashimage&lt;br /&gt;
# Settings &lt;br /&gt;
# Linux kernel&lt;br /&gt;
# Linux rootfilesystem&lt;br /&gt;
# WinCE image&lt;br /&gt;
# Display adaptor EEPROM&lt;br /&gt;
&lt;br /&gt;
If you are working with DHCOM AM335x or DHCOM i.MX6 please have a look at [[DHCOM_Update_Mechanism|DHCOM Update Mechanism]].&lt;br /&gt;
&lt;br /&gt;
= User Manual =&lt;br /&gt;
If you received an &#039;&#039;Update Image&#039;&#039; follow these steps to flash it to your target:&lt;br /&gt;
# untar or unzip (or just copy of not bundled and/or compressed) the &#039;&#039;Update Image&#039;&#039; to the root directory of a usb stick&lt;br /&gt;
# plug your usb stick into the USB Host port of the target&lt;br /&gt;
# switch on the power supply&lt;br /&gt;
# wait until the update has completed&lt;br /&gt;
## progress can be followed at serial console&lt;br /&gt;
## or on the LCD Display (if you have any)&lt;br /&gt;
# switch off the power supply&lt;br /&gt;
# remove the usb stick&lt;br /&gt;
# done&lt;br /&gt;
&lt;br /&gt;
= Modes =&lt;br /&gt;
== Automatic Mode ==&lt;br /&gt;
:Is called after the start of the bootloader if the environment variable &#039;&#039;&#039;bootcmd&#039;&#039;&#039; contains &#039;&#039;&#039;update auto&#039;&#039;&#039;. The functionality tries to update the flash content &#039;&#039;&#039;via the DHupdate.ini file&#039;&#039;&#039; (Please have a look at [[DHCOM Flash Update#DHupdate.ini file|DHupdate.ini file]]). The update mechanism is searching for the update files on the specified storage devices. The update devices must be defined at the settings block (Please have a look at [[DHCOM Settings|DHCOM settings]]). With the DHupdate.ini file you have the possibility to run more then one updates, e.g. OS image and settings block.&lt;br /&gt;
&lt;br /&gt;
== Commandline Mode ==&lt;br /&gt;
#Instruction: &amp;quot;update&amp;quot; &lt;br /&gt;
#:The functionality tries to update the flash content &#039;&#039;&#039;via the DHupdate.ini file&#039;&#039;&#039;. In contrast to Automatically Update (which you can start with &#039;&#039;&#039;update auto&#039;&#039;&#039;) the update mechanism is searching on every available storage device for the update files.&lt;br /&gt;
#Instruction: &amp;quot;update &amp;lt;type&amp;gt; [filename]&amp;quot; &lt;br /&gt;
#:The functionality &#039;&#039;&#039;doesn&#039;t use the DHupdate.ini file&#039;&#039;&#039;. It allows only one update and the update mechanism is searching on every available storage device for the update files. With the &amp;lt;type&amp;gt; parameter you have to specify the update type. &lt;br /&gt;
#:The &amp;lt;type&amp;gt; parameter could be specified as follows:&lt;br /&gt;
#::* wince = WinCE image update + ENV update&lt;br /&gt;
#::* linux = Linux image update + ENV update &lt;br /&gt;
#:::Note: If you run &amp;lt;code&amp;gt;update linux&amp;lt;/code&amp;gt;, u-boot is searching for an update ENV script too. This script modifies the u-boot environment for Linux. The name of the script has to be the same as the kernel-image-name with the additional ending .env. You can also run an update without a script file. In this case u-boot only updates the kernel-image and the ENV remains unchanged. It is possible to update only the environment of u-boot without a kernel update by inserting the filename of the ENV script too. &lt;br /&gt;
#::* rootfs = Create or replace the linux root-filesystem which is stored in the NAND-Flash. The rootfs update has to be the last item (or second to last item if you insert the &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; command) in the DHupdate.ini file. For further Details: [[DHCOM Update: Linux Root Filesystem|DHCOM Update: Linux Root Filesystem]]&lt;br /&gt;
#::: Note: To run a &#039;&#039;&amp;quot;NAND-Flash root-filesystem update&amp;quot;&#039;&#039; you need a special linux-kernel which must have the filename &#039;&#039;&amp;quot;uImage.update&amp;quot;&#039;&#039;. This kernel must be available in the same diretory on your update-media as the DHupdate.ini file. Depending on your setup you have to update the u-boot environment too.&lt;br /&gt;
#::* bootloader = Bootloader update&lt;br /&gt;
#:::Note: The ENV in Flash memory is created on the first start of u-boot. If you run a bootloader update and the ENV at the new bootloader has changed, the ENV in Flash memory remains unchanged with the bootloader update. But you could delete the ENV block in flash memory before the update, then u-boot will create the new default ENV at the next start after the bootloader update.&lt;br /&gt;
#::* splash = Bootbitmap update&lt;br /&gt;
#::* settings = Settings block update&lt;br /&gt;
#::: Note: Please have a look at [[COM iMX25 Bootloader U-Boot#DHCOM settings|DHCOM settings]].&lt;br /&gt;
#::* eeprom = Display adaptor EEPROM update with DH settings&lt;br /&gt;
#::* reset = Execute a reset after a successfull update. A reset can only be the last item in a DHupdate.ini file. &lt;br /&gt;
#::: Note:  Be careful with the reset command. You can easily build a endless update loop by mistake.&lt;br /&gt;
#:The [filename] parameter could be used to specify a non default filename. The default filenames are:&lt;br /&gt;
#::* wince = default file names nk.gz or nk.bin&lt;br /&gt;
#::* linux = default file name uImage + default script file name uImage.env&lt;br /&gt;
#::* rootfs = default file name fsroot.tar.gz&lt;br /&gt;
#::* bootloader = default file name u-boot.bin&lt;br /&gt;
#::* splash = default file name splash.bmp&lt;br /&gt;
#::* settings = default file name settings.bin&lt;br /&gt;
#::* eeprom = default file name eeprom.bin&lt;br /&gt;
#::* reset = no file to specify&lt;br /&gt;
&lt;br /&gt;
= DHupdate.ini file =&lt;br /&gt;
:The DHupdate.ini file is a text file, which describes the user specified update mechanism. &lt;br /&gt;
&lt;br /&gt;
:[[Image:DHupdate_file_layout.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:For DHupdate.ini File Example, please have a look at the Please have a look at [[COM iMX25 Bootloader U-Boot#Downloads|Download area iMX25]] or [[COM AM35 Bootloader U-Boot#Downloads|Download area AM35x]].&lt;br /&gt;
:&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
:*If you update the [[DHCOM Settings|DHCOM settings]], it is possible to use the new settings for the update progress notifications on the display, by inserting the &amp;quot;refresh&amp;quot; command to the [update] section. Example:&lt;br /&gt;
 [update]&lt;br /&gt;
 settings 00_PV.bin&lt;br /&gt;
 refresh&lt;br /&gt;
 splash DH_800x480.bmp&lt;br /&gt;
 ...&lt;br /&gt;
 [end]&lt;br /&gt;
&lt;br /&gt;
:*It is necessary to use UNIX End Of Line conversion!!!&lt;br /&gt;
:*The order of the bitmap-filenames in the section &amp;lt;code&amp;gt;display&amp;lt;/code&amp;gt; tells the system when to display which bitmap.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Update progress LED description&#039;&#039;&#039;: &lt;br /&gt;
::The LED GPIO is activated as soon as update has started. This takes roughly 6 - 8 seconds. If the update was finished without an error, the LED GPIO is deactivated. If an error occurs during the update the LED GPIO begins blinking.&lt;br /&gt;
::LED error code:&lt;br /&gt;
::1 LED blinking interval = DHupdate.ini File error (Wrong file content or no valid file found)	&lt;br /&gt;
::2 LED blinking interval = Necessary File for Update not found&lt;br /&gt;
::3 LED blinking interval = Flash write or erase error&lt;br /&gt;
::4 LED blinking interval = Wrong OS Image type (e.g. no WinCE *.gz or *.bin file)&lt;br /&gt;
::5 LED blinking interval = Specified file not valid (e.g. linux *.env file)&lt;br /&gt;
::6 LED blinking interval = Image file size is to large&lt;br /&gt;
&lt;br /&gt;
= Overview - Flow Chart =&lt;br /&gt;
:[[Image:Flash Update Overview.png|1020px]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_Flash_Update&amp;diff=2068</id>
		<title>DHCOM Flash Update</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_Flash_Update&amp;diff=2068"/>
		<updated>2017-08-21T07:35:15Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following updates are possible with the Bootloader:&lt;br /&gt;
# Bootloader&lt;br /&gt;
# Splashimage&lt;br /&gt;
# Settings &lt;br /&gt;
# Linux kernel&lt;br /&gt;
# Linux rootfilesystem&lt;br /&gt;
# WinCE image&lt;br /&gt;
# Display adaptor EEPROM&lt;br /&gt;
&lt;br /&gt;
If you are working with DHCOM AM335x or DHCOM i.MX6 please have a look at [[DHCOM_Update_Mechanism|DHCOM Update Mechanism]].&lt;br /&gt;
&lt;br /&gt;
= User Manual =&lt;br /&gt;
&lt;br /&gt;
= Modes =&lt;br /&gt;
== Automatic Mode ==&lt;br /&gt;
:Is called after the start of the bootloader if the environment variable &#039;&#039;&#039;bootcmd&#039;&#039;&#039; contains &#039;&#039;&#039;update auto&#039;&#039;&#039;. The functionality tries to update the flash content &#039;&#039;&#039;via the DHupdate.ini file&#039;&#039;&#039; (Please have a look at [[DHCOM Flash Update#DHupdate.ini file|DHupdate.ini file]]). The update mechanism is searching for the update files on the specified storage devices. The update devices must be defined at the settings block (Please have a look at [[DHCOM Settings|DHCOM settings]]). With the DHupdate.ini file you have the possibility to run more then one updates, e.g. OS image and settings block.&lt;br /&gt;
&lt;br /&gt;
== Commandline Mode ==&lt;br /&gt;
#Instruction: &amp;quot;update&amp;quot; &lt;br /&gt;
#:The functionality tries to update the flash content &#039;&#039;&#039;via the DHupdate.ini file&#039;&#039;&#039;. In contrast to Automatically Update (which you can start with &#039;&#039;&#039;update auto&#039;&#039;&#039;) the update mechanism is searching on every available storage device for the update files.&lt;br /&gt;
#Instruction: &amp;quot;update &amp;lt;type&amp;gt; [filename]&amp;quot; &lt;br /&gt;
#:The functionality &#039;&#039;&#039;doesn&#039;t use the DHupdate.ini file&#039;&#039;&#039;. It allows only one update and the update mechanism is searching on every available storage device for the update files. With the &amp;lt;type&amp;gt; parameter you have to specify the update type. &lt;br /&gt;
#:The &amp;lt;type&amp;gt; parameter could be specified as follows:&lt;br /&gt;
#::* wince = WinCE image update + ENV update&lt;br /&gt;
#::* linux = Linux image update + ENV update &lt;br /&gt;
#:::Note: If you run &amp;lt;code&amp;gt;update linux&amp;lt;/code&amp;gt;, u-boot is searching for an update ENV script too. This script modifies the u-boot environment for Linux. The name of the script has to be the same as the kernel-image-name with the additional ending .env. You can also run an update without a script file. In this case u-boot only updates the kernel-image and the ENV remains unchanged. It is possible to update only the environment of u-boot without a kernel update by inserting the filename of the ENV script too. &lt;br /&gt;
#::* rootfs = Create or replace the linux root-filesystem which is stored in the NAND-Flash. The rootfs update has to be the last item (or second to last item if you insert the &amp;lt;code&amp;gt;reset&amp;lt;/code&amp;gt; command) in the DHupdate.ini file. For further Details: [[DHCOM Update: Linux Root Filesystem|DHCOM Update: Linux Root Filesystem]]&lt;br /&gt;
#::: Note: To run a &#039;&#039;&amp;quot;NAND-Flash root-filesystem update&amp;quot;&#039;&#039; you need a special linux-kernel which must have the filename &#039;&#039;&amp;quot;uImage.update&amp;quot;&#039;&#039;. This kernel must be available in the same diretory on your update-media as the DHupdate.ini file. Depending on your setup you have to update the u-boot environment too.&lt;br /&gt;
#::* bootloader = Bootloader update&lt;br /&gt;
#:::Note: The ENV in Flash memory is created on the first start of u-boot. If you run a bootloader update and the ENV at the new bootloader has changed, the ENV in Flash memory remains unchanged with the bootloader update. But you could delete the ENV block in flash memory before the update, then u-boot will create the new default ENV at the next start after the bootloader update.&lt;br /&gt;
#::* splash = Bootbitmap update&lt;br /&gt;
#::* settings = Settings block update&lt;br /&gt;
#::: Note: Please have a look at [[COM iMX25 Bootloader U-Boot#DHCOM settings|DHCOM settings]].&lt;br /&gt;
#::* eeprom = Display adaptor EEPROM update with DH settings&lt;br /&gt;
#::* reset = Execute a reset after a successfull update. A reset can only be the last item in a DHupdate.ini file. &lt;br /&gt;
#::: Note:  Be careful with the reset command. You can easily build a endless update loop by mistake.&lt;br /&gt;
#:The [filename] parameter could be used to specify a non default filename. The default filenames are:&lt;br /&gt;
#::* wince = default file names nk.gz or nk.bin&lt;br /&gt;
#::* linux = default file name uImage + default script file name uImage.env&lt;br /&gt;
#::* rootfs = default file name fsroot.tar.gz&lt;br /&gt;
#::* bootloader = default file name u-boot.bin&lt;br /&gt;
#::* splash = default file name splash.bmp&lt;br /&gt;
#::* settings = default file name settings.bin&lt;br /&gt;
#::* eeprom = default file name eeprom.bin&lt;br /&gt;
#::* reset = no file to specify&lt;br /&gt;
&lt;br /&gt;
= DHupdate.ini file =&lt;br /&gt;
:The DHupdate.ini file is a text file, which describes the user specified update mechanism. &lt;br /&gt;
&lt;br /&gt;
:[[Image:DHupdate_file_layout.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:For DHupdate.ini File Example, please have a look at the Please have a look at [[COM iMX25 Bootloader U-Boot#Downloads|Download area iMX25]] or [[COM AM35 Bootloader U-Boot#Downloads|Download area AM35x]].&lt;br /&gt;
:&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
:*If you update the [[DHCOM Settings|DHCOM settings]], it is possible to use the new settings for the update progress notifications on the display, by inserting the &amp;quot;refresh&amp;quot; command to the [update] section. Example:&lt;br /&gt;
 [update]&lt;br /&gt;
 settings 00_PV.bin&lt;br /&gt;
 refresh&lt;br /&gt;
 splash DH_800x480.bmp&lt;br /&gt;
 ...&lt;br /&gt;
 [end]&lt;br /&gt;
&lt;br /&gt;
:*It is necessary to use UNIX End Of Line conversion!!!&lt;br /&gt;
:*The order of the bitmap-filenames in the section &amp;lt;code&amp;gt;display&amp;lt;/code&amp;gt; tells the system when to display which bitmap.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Update progress LED description&#039;&#039;&#039;: &lt;br /&gt;
::The LED GPIO is activated as soon as update has started. This takes roughly 6 - 8 seconds. If the update was finished without an error, the LED GPIO is deactivated. If an error occurs during the update the LED GPIO begins blinking.&lt;br /&gt;
::LED error code:&lt;br /&gt;
::1 LED blinking interval = DHupdate.ini File error (Wrong file content or no valid file found)	&lt;br /&gt;
::2 LED blinking interval = Necessary File for Update not found&lt;br /&gt;
::3 LED blinking interval = Flash write or erase error&lt;br /&gt;
::4 LED blinking interval = Wrong OS Image type (e.g. no WinCE *.gz or *.bin file)&lt;br /&gt;
::5 LED blinking interval = Specified file not valid (e.g. linux *.env file)&lt;br /&gt;
::6 LED blinking interval = Image file size is to large&lt;br /&gt;
&lt;br /&gt;
= Overview - Flow Chart =&lt;br /&gt;
:[[Image:Flash Update Overview.png|1020px]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=USB_Mass_Storage_Gadget_(or_MSG)&amp;diff=1969</id>
		<title>USB Mass Storage Gadget (or MSG)</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=USB_Mass_Storage_Gadget_(or_MSG)&amp;diff=1969"/>
		<updated>2017-06-09T05:38:21Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Apply Backing Storage */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Mass Storage Gadget (MSG) provides support for the USB Mass Storage class. The System appears to the host (PC) as a SCSI disk drive if the USB-OTG port is used for the connection. A file or a block device is used as a backing store for the drive.&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== General Information ==&lt;br /&gt;
&lt;br /&gt;
For further information about details of the USB Mass Storage Gadget Driver and how to use it have a look at [http://www.linux-usb.org/gadget/file_storage.html www.linux-usb.org/gadget/file_storage.html] and [https://www.kernel.org/doc/Documentation/usb/mass-storage.txt www.kernel.org]. It is possible to run the driver as loadable kernel module. The steps below descripe how to compile the g_mass_storage module statically into the kernel image. &lt;br /&gt;
&lt;br /&gt;
== Configure the USB-OTG Port ==&lt;br /&gt;
&lt;br /&gt;
On i.MX25 and AM35x to use USB Gadget features the USB-OTG Port has to be initialized in USB slave mode. Add &amp;lt;code&amp;gt;&amp;quot;otg_mode=device&amp;quot;&amp;lt;/code&amp;gt; to the kernel commandline on the bootloader console.&lt;br /&gt;
&lt;br /&gt;
On DHCOM boards it is possible to use the u-boot environment variable &amp;lt;tt&amp;gt;&amp;quot;linux_add_param&amp;quot;&amp;lt;/tt&amp;gt;:&lt;br /&gt;
# enter bootloader console with DEL/BS Key&lt;br /&gt;
# &amp;lt;tt&amp;gt;setenv linux_add_param otg_mode=device&amp;lt;/tt&amp;gt;&lt;br /&gt;
# &amp;lt;tt&amp;gt;saveenv&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remark:&#039;&#039;&#039; The DHCOM i.MX6 and AM335x have dual role usb controllers und drivers. It is not necessary to specify the otg_mode if you use this platforms.&lt;br /&gt;
&lt;br /&gt;
== Prepare the Kernel ==&lt;br /&gt;
&lt;br /&gt;
Prepare the Linux Kernel Sources to be able to compile.&lt;br /&gt;
&lt;br /&gt;
Open a console window and go to the root directory of the kernel sources and start the kernel configuration dialog:&lt;br /&gt;
* &amp;lt;tt&amp;gt; ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make menuconfig &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Enable the following items:&lt;br /&gt;
* Device Drivers --&amp;gt;  USB Support --&amp;gt;  USB Gadget Support &lt;br /&gt;
* Device Drivers --&amp;gt;  USB Support --&amp;gt;  USB Gadget Support --&amp;gt; USB Peripheral Controller &lt;br /&gt;
:: choose the matching device controller:&lt;br /&gt;
::: * DHCOM AM35x, AM335x: Inventra HDRC USB Peripheral (TI, ADI, ...) &lt;br /&gt;
::: * DHCOM iMX25, iMX6: Freescale Highspeed USB DR Peripheral Controller&lt;br /&gt;
* Device Drivers --&amp;gt;  USB Support --&amp;gt;  USB Gadget Support --&amp;gt; USB Gadget Drivers --&amp;gt;  Mass Storage Gadget&lt;br /&gt;
&lt;br /&gt;
Rebuild the Linux kernel and install the kernel to your board. (See DHCOM Update for details.)&lt;br /&gt;
&lt;br /&gt;
== How to Use? ==&lt;br /&gt;
&lt;br /&gt;
=== Static Kernel Module ===&lt;br /&gt;
If the &#039;&#039;&#039;g_mass_storage&#039;&#039;&#039; module has been statically built into the kernel image you have to provide the following parameters to the kernel module via kernel command line (bootargs in u-boot):&lt;br /&gt;
* &amp;lt;tt&amp;gt; g_mass_storage.removable=1 &amp;lt;/tt&amp;gt;&lt;br /&gt;
* &amp;lt;tt&amp;gt; g_mass_storage.luns=1 &amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Apply Backing Storage ===&lt;br /&gt;
On the running device you can use the following line to add the FAT32 partition of the microSD-card to the usb gadget driver:&lt;br /&gt;
* &amp;lt;tt&amp;gt;am35x# echo /dev/mmcblk0p1 &amp;gt; /sys/devices/platform/omap/musb-am35x/musb-hdrc/gadget/lun0/file&amp;lt;/tt&amp;gt;&lt;br /&gt;
If you do not work the AM35x there are some differences in the path of the sysfs. (Easy to find when you go to &amp;lt;tt&amp;gt; cd /sys &amp;lt;/tt&amp;gt; and type &amp;lt;tt&amp;gt; find . -name &amp;quot;lun*&amp;quot; &amp;lt;/tt&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
Now, if you connect the USB-OTG port to your host pc the specified device appears as a drive.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remark:&#039;&#039;&#039;&lt;br /&gt;
* If you run windows then you can only use block devices with filesystems supported by windows (FAT32).&lt;br /&gt;
* Do not use the rootfilesystem partition. This will cause damage to the filesystem. Only one &amp;quot;Writer&amp;quot; on each Filesystem is allowed!&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;&#039;IMPORTANT WARNING!&#039;&#039;&#039; ===&lt;br /&gt;
* While MSG is running and the gadget is connected to a USB host, that USB host will use the backing storage as a private disk drive. It will not expect to see any changes in the backing storage other than the ones it makes. Extraneous changes are liable to corrupt the filesystem and may even crash the host. Only one system (normally, the USB host) may write to the backing storage, and if one system is writing that data, no other should be reading it. The only safe way to share the backing storage between the host and the gadget&#039;s operating system at the same time is to make it read-only on both sides. &lt;br /&gt;
 &lt;br /&gt;
Have a look at [http://www.linux-usb.org/gadget/file_storage.html www.linux-usb.org/gadget/file_storage.html] to get a step by step guide how to work with „Backing Storage Files“.&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1944</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1944"/>
		<updated>2017-05-17T06:12:35Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Use Virtualbox instead of VMware Player/Workstation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Install thf nfs server: &amp;lt;code&amp;gt;$ sudo apt-get install nfs-kernel-server &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a nfsservice directory: &amp;lt;code&amp;gt;$ mkdir /work/nfsroot &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Place the root file system in the folder &amp;lt;code&amp;gt;$ cd /work/nfsroot; sudo tar xf jessie....tar.gz &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Remove network config from rootfs &amp;lt;code&amp;gt;$ rm /work/nfsroot/etc/systemd/network/wired-dhcp.network&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Check whether the line below is part of the &amp;lt;tt&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/tt&amp;gt; file&lt;br /&gt;
#* &amp;lt;code&amp;gt;/work/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&amp;lt;/code&amp;gt;&lt;br /&gt;
#** The &amp;lt;tt&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/tt&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server with &amp;lt;code&amp;gt;4 /etc/init.d/nfs-kernel-server restart&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt;$ sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a tftp service directory: &amp;lt;code&amp;gt;$ mkdir /work/tftp &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt;$ sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
#* Restart the tftp-server with &amp;lt;code&amp;gt;$ /etc/init.d/tftp-hpa restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. For further information see [https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt]&lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Use Virtualbox instead of VMware Player/Workstation ==&lt;br /&gt;
&lt;br /&gt;
[[media:DOC_VMware_Machine_mit_VirtualBox_starten_V1.0_2015-10-21.pdf| VMware Maschine mit VirtualBox starten (German)]]&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1943</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1943"/>
		<updated>2017-05-17T06:12:18Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Use Virtualbox instead of VMware Player/Workstation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Install thf nfs server: &amp;lt;code&amp;gt;$ sudo apt-get install nfs-kernel-server &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a nfsservice directory: &amp;lt;code&amp;gt;$ mkdir /work/nfsroot &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Place the root file system in the folder &amp;lt;code&amp;gt;$ cd /work/nfsroot; sudo tar xf jessie....tar.gz &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Remove network config from rootfs &amp;lt;code&amp;gt;$ rm /work/nfsroot/etc/systemd/network/wired-dhcp.network&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Check whether the line below is part of the &amp;lt;tt&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/tt&amp;gt; file&lt;br /&gt;
#* &amp;lt;code&amp;gt;/work/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&amp;lt;/code&amp;gt;&lt;br /&gt;
#** The &amp;lt;tt&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/tt&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server with &amp;lt;code&amp;gt;4 /etc/init.d/nfs-kernel-server restart&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt;$ sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a tftp service directory: &amp;lt;code&amp;gt;$ mkdir /work/tftp &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt;$ sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
#* Restart the tftp-server with &amp;lt;code&amp;gt;$ /etc/init.d/tftp-hpa restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. For further information see [https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt]&lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Use Virtualbox instead of VMware Player/Workstation ==&lt;br /&gt;
&lt;br /&gt;
[[media:DOC_VMware_Maschine_mit_VirtualBox_starten_V1.0_2015-10-21.pdf| VMware Machine mit VirtualBox starten (German)]]&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1942</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1942"/>
		<updated>2017-05-17T06:11:06Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Use Virtualbox instead of VMware Player/Workstation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Install thf nfs server: &amp;lt;code&amp;gt;$ sudo apt-get install nfs-kernel-server &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a nfsservice directory: &amp;lt;code&amp;gt;$ mkdir /work/nfsroot &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Place the root file system in the folder &amp;lt;code&amp;gt;$ cd /work/nfsroot; sudo tar xf jessie....tar.gz &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Remove network config from rootfs &amp;lt;code&amp;gt;$ rm /work/nfsroot/etc/systemd/network/wired-dhcp.network&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Check whether the line below is part of the &amp;lt;tt&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/tt&amp;gt; file&lt;br /&gt;
#* &amp;lt;code&amp;gt;/work/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&amp;lt;/code&amp;gt;&lt;br /&gt;
#** The &amp;lt;tt&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/tt&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server with &amp;lt;code&amp;gt;4 /etc/init.d/nfs-kernel-server restart&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt;$ sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a tftp service directory: &amp;lt;code&amp;gt;$ mkdir /work/tftp &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt;$ sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
#* Restart the tftp-server with &amp;lt;code&amp;gt;$ /etc/init.d/tftp-hpa restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. For further information see [https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt]&lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Use Virtualbox instead of VMware Player/Workstation ==&lt;br /&gt;
&lt;br /&gt;
[[media:DOC_VMware_Machine_mit_VirtualBox_starten_V1.0_2015-10-21.pdf| VMware Machine mit VirtualBox starten (German)]]&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:DOC_VMware_Machine_mit_VirtualBox_starten_V1.0_2015-10-21.pdf&amp;diff=1941</id>
		<title>File:DOC VMware Machine mit VirtualBox starten V1.0 2015-10-21.pdf</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:DOC_VMware_Machine_mit_VirtualBox_starten_V1.0_2015-10-21.pdf&amp;diff=1941"/>
		<updated>2017-05-17T06:09:35Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: Guide: How to starte a VM created with VMware with VirtualBox&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Guide: How to starte a VM created with VMware with VirtualBox&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1940</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1940"/>
		<updated>2017-05-17T06:08:18Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Install thf nfs server: &amp;lt;code&amp;gt;$ sudo apt-get install nfs-kernel-server &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a nfsservice directory: &amp;lt;code&amp;gt;$ mkdir /work/nfsroot &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Place the root file system in the folder &amp;lt;code&amp;gt;$ cd /work/nfsroot; sudo tar xf jessie....tar.gz &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Remove network config from rootfs &amp;lt;code&amp;gt;$ rm /work/nfsroot/etc/systemd/network/wired-dhcp.network&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Check whether the line below is part of the &amp;lt;tt&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/tt&amp;gt; file&lt;br /&gt;
#* &amp;lt;code&amp;gt;/work/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&amp;lt;/code&amp;gt;&lt;br /&gt;
#** The &amp;lt;tt&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/tt&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server with &amp;lt;code&amp;gt;4 /etc/init.d/nfs-kernel-server restart&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt;$ sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a tftp service directory: &amp;lt;code&amp;gt;$ mkdir /work/tftp &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt;$ sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
#* Restart the tftp-server with &amp;lt;code&amp;gt;$ /etc/init.d/tftp-hpa restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. For further information see [https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt]&lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Use Virtualbox instead of VMware Player/Workstation ==&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip| VMware Machine mit VirtualBox starten (German)]]&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1771</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1771"/>
		<updated>2017-03-27T11:46:52Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Prepare the virtual machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Install thf nfs server: &amp;lt;code&amp;gt;$ sudo apt-get install nfs-kernel-server &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a nfsservice directory: &amp;lt;code&amp;gt;$ mkdir /work/nfsroot &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Place the root file system in the folder &amp;lt;code&amp;gt;$ cd /work/nfsroot; sudo tar xf jessie....tar.gz &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Remove network config from rootfs &amp;lt;code&amp;gt;$ rm /work/nfsroot/etc/systemd/network/wired-dhcp.network&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Check whether the line below is part of the &amp;lt;tt&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/tt&amp;gt; file&lt;br /&gt;
#* &amp;lt;code&amp;gt;/work/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&amp;lt;/code&amp;gt;&lt;br /&gt;
#** The &amp;lt;tt&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/tt&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server with &amp;lt;code&amp;gt;4 /etc/init.d/nfs-kernel-server restart&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt;$ sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a tftp service directory: &amp;lt;code&amp;gt;$ mkdir /work/tftp &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt;$ sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
#* Restart the tftp-server with &amp;lt;code&amp;gt;$ /etc/init.d/tftp-hpa restart&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. For further information see [https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt]&lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1770</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1770"/>
		<updated>2017-03-27T11:45:21Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Prepare the virtual machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Install thf nfs server: &amp;lt;code&amp;gt; sudo apt-get install nfs-kernel-server &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a nfsservice directory: &amp;lt;code&amp;gt; mkdir /work/nfsroot &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Place the root file system in the folder &amp;lt;code&amp;gt;cd /work/nfsroot; sudo tar xf jessie....tar.gz &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Remove network config from rootfs &amp;lt;code&amp;gt; rm /work/nfsroot/etc/systemd/network/wired-dhcp.network&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Check whether the line below is part of the &amp;lt;tt&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/tt&amp;gt; file&lt;br /&gt;
#* &amp;lt;code&amp;gt;/work/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&amp;lt;/code&amp;gt;&lt;br /&gt;
#** The &amp;lt;tt&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/tt&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server by using this commando&lt;br /&gt;
#*&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt; sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a tftp service directory: &amp;lt;code&amp;gt; mkdir /work/tftp &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt; sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
#* Restart the tftp-server by using this commando&lt;br /&gt;
#*&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/tftp-hpa restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. For further information see [https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt]&lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1769</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1769"/>
		<updated>2017-03-27T11:44:06Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Prepare the virtual machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Install thf nfs server: &amp;lt;code&amp;gt; sudo apt-get install nfs-kernel-server &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a nfsservice directory: &amp;lt;code&amp;gt; mkdir /work/nfsroot &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Place the root file system in the folder &amp;lt;code&amp;gt;cd /work/nfsroot; sudo tar xf jessie....tar.gz &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Remove network config from rootfs &amp;lt;code&amp;gt; rm /work/nfsroot/etc/systemd/network/wired-dhcp.network&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Check whether the line below is part of the &amp;lt;tt&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/tt&amp;gt; file&lt;br /&gt;
#* &amp;lt;code&amp;gt;/work/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&amp;lt;/code&amp;gt;&lt;br /&gt;
#** The &amp;lt;tt&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/tt&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server by using this commando&lt;br /&gt;
#*&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt; sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a tftp service directory: &amp;lt;code&amp;gt; mkdir /work/tftp &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt; sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. For further information see [https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt]&lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1768</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1768"/>
		<updated>2017-03-27T11:43:14Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Setup the DHCOM Module for TFTP/NFS Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Install thf nfs server: &amp;lt;code&amp;gt; sudo apt-get install nfs-kernel-server &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a nfsservice directory: &amp;lt;code&amp;gt; mkdir /work/nfsroot &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Place the root file system in the folder &amp;lt;code&amp;gt;cd /work/nfsroot; sudo tar xf jessie....tar.gz &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Remove network config from rootfs &amp;lt;code&amp;gt; rm /work/nfsroot/etc/systemd/network/wired-dhcp.network&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Check whether the line below is part of the &amp;lt;tt&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/tt&amp;gt; file&lt;br /&gt;
#*: &amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: The &amp;lt;tt&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/tt&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server by using this commando&lt;br /&gt;
#*&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt; sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a tftp service directory: &amp;lt;code&amp;gt; mkdir /work/tftp &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt; sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. For further information see [https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt https://www.kernel.org/doc/Documentation/filesystems/nfs/nfsroot.txt]&lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1767</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1767"/>
		<updated>2017-03-27T11:39:00Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Booting via TFTP/NFS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Install thf nfs server: &amp;lt;code&amp;gt; sudo apt-get install nfs-kernel-server &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a nfsservice directory: &amp;lt;code&amp;gt; mkdir /work/nfsroot &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Place the root file system in the folder &amp;lt;code&amp;gt;cd /work/nfsroot; sudo tar xf jessie....tar.gz &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Remove network config from rootfs &amp;lt;code&amp;gt; rm /work/nfsroot/etc/systemd/network/wired-dhcp.network&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Check whether the line below is part of the &amp;lt;tt&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/tt&amp;gt; file&lt;br /&gt;
#*: &amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: The &amp;lt;tt&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/tt&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server by using this commando&lt;br /&gt;
#*&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt; sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a tftp service directory: &amp;lt;code&amp;gt; mkdir /work/tftp &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt; sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1766</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1766"/>
		<updated>2017-03-27T11:37:00Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Setup the DHCOM Module for TFTP/NFS Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Install thf nfs server: &amp;lt;code&amp;gt; sudo apt-get install nfs-kernel-server &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a nfsservice directory: &amp;lt;code&amp;gt; mkdir /work/nfsroot &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Place the root file system in the folder &amp;lt;code&amp;gt;cd /work/nfsroot; sudo tar xf jessie....tar.gz &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Remove network config from rootfs &amp;lt;code&amp;gt; rm /work/nfsroot/etc/systemd/network/wired-dhcp.network&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Check whether the line below is part of the &amp;lt;tt&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/tt&amp;gt; file&lt;br /&gt;
#*: &amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: The &amp;lt;tt&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/tt&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server by using this commando&lt;br /&gt;
#*&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt; sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a tftp service directory: &amp;lt;code&amp;gt; mkdir /work/tftp &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt; sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via TFTP/NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Setup the DHCOM Module for TFTP/NFS Boot ===&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1765</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1765"/>
		<updated>2017-03-27T11:36:37Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Prepare the virtual machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Install thf nfs server: &amp;lt;code&amp;gt; sudo apt-get install nfs-kernel-server &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a nfsservice directory: &amp;lt;code&amp;gt; mkdir /work/nfsroot &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Place the root file system in the folder &amp;lt;code&amp;gt;cd /work/nfsroot; sudo tar xf jessie....tar.gz &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Remove network config from rootfs &amp;lt;code&amp;gt; rm /work/nfsroot/etc/systemd/network/wired-dhcp.network&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Check whether the line below is part of the &amp;lt;tt&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/tt&amp;gt; file&lt;br /&gt;
#*: &amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: The &amp;lt;tt&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/tt&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server by using this commando&lt;br /&gt;
#*&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt; sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a tftp service directory: &amp;lt;code&amp;gt; mkdir /work/tftp &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt; sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via TFTP/NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Setup the DHCOM Module for TFTP/NFS Boot ===&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1764</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1764"/>
		<updated>2017-03-27T11:35:28Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Prepare the virtual machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Install thf nfs server: &amp;lt;code&amp;gt; sudo apt-get install nfs-kernel-server &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a nfsservice directory: &amp;lt;code&amp;gt; mkdir /work/nfsroot &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Place the root file system in the folder &amp;lt;code&amp;gt;cd /work/nfsroot; sudo tar xf jessie....tar.gz &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Remove network config from rootfs &amp;lt;code&amp;gt; rm /work/nfsroot/etc/systemd/network/wired-dhcp.network&amp;lt;/code&amp;gt;&lt;br /&gt;
#* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
#*: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server by using this commando&lt;br /&gt;
#*&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt; sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Create a tftp service directory: &amp;lt;code&amp;gt; mkdir /work/tftp &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt; sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via TFTP/NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Setup the DHCOM Module for TFTP/NFS Boot ===&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1763</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1763"/>
		<updated>2017-03-27T11:29:54Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Booting via TFTP/NFS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
#* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
#*: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server by using this commando&lt;br /&gt;
#*&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
#* Install a tftp server : &amp;lt;code&amp;gt; sudo apt-get install tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#* Edit config: &amp;lt;code&amp;gt; sudo vi /etc/default/tftpd-hpa &amp;lt;/code&amp;gt;&lt;br /&gt;
#** Take care that TFTP_DIRECTORY points to your tftp service directory, for example &#039;/work/tftp&#039;&lt;br /&gt;
#* Copy Kernel and DeviceTree into the tftp service directory&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via TFTP/NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Setup the DHCOM Module for TFTP/NFS Boot ===&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1762</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1762"/>
		<updated>2017-03-27T10:52:47Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Prepare the virtual machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
#* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
#* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
#*: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
#*: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
#* Restart the nfs-server by using this commando&lt;br /&gt;
#*&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via TFTP/NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Setup the DHCOM Module for TFTP/NFS Boot ===&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1761</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1761"/>
		<updated>2017-03-27T10:51:03Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Prepare the virtual machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
# &#039;&#039;&#039;Setup nfs-kernel-server&#039;&#039;&#039;&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
# &#039;&#039;&#039;Setup tftp-hpa server&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via TFTP/NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Setup the DHCOM Module for TFTP/NFS Boot ===&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1760</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1760"/>
		<updated>2017-03-27T10:49:19Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Debian 8 &amp;quot;Jessie&amp;quot; VMware Image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
=== Booting via TFTP/NFS ===&lt;br /&gt;
==== Prepare the virtual machine ====&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
==== Setup the DHCOM Module for TFTP/NFS Boot ====&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via TFTP/NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Setup the DHCOM Module for TFTP/NFS Boot ===&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1759</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1759"/>
		<updated>2017-03-27T10:36:56Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Setup the DHCOM Module for TFTP/NFS Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via TFTP/NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Setup the DHCOM Module for TFTP/NFS Boot ===&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: &#039;&#039;&#039;save it to be permanent&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1758</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1758"/>
		<updated>2017-03-27T10:36:28Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Setup the DHCOM Module for TFTP/NFS Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via TFTP/NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Setup the DHCOM Module for TFTP/NFS Boot ===&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootargs and boot&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# run linuxargs&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: save it to be permanent&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;tftp ${loadaddr} zImage; tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb; run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1757</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1757"/>
		<updated>2017-03-27T10:31:33Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Setup the DHCOM Module for TFTP/NFS Boot */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via TFTP/NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Setup the DHCOM Module for TFTP/NFS Boot ===&lt;br /&gt;
This example works with static IP addresses and is tested with DHCOM i.MX6 U-Boot 2015.10 and Kernle 4.4.38. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootcmd&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: save it to be permanent &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* boot target&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# boot&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1756</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1756"/>
		<updated>2017-03-27T10:30:28Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Booting via NFS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via TFTP/NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Setup the DHCOM Module for TFTP/NFS Boot ===&lt;br /&gt;
This example works with static IP addresses. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootcmd&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: save it to be permanent &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* boot target&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# boot&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1755</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1755"/>
		<updated>2017-03-27T10:30:04Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Booting via NFS */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Jessie v1.2.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [[media:Qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb|&#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;]] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian Squeeze VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Setup the DHCOM Module for TFTP/NFS Boot ===&lt;br /&gt;
This example works with static IP addresses. It is possible to work with DHCP, too. &lt;br /&gt;
* Enter U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal while switching on the power supply of the target&lt;br /&gt;
* Set IP addresses&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set serverip 192.168.178.90&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# env set ipaddr 192.168.178.91&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* bootargs for nfs root&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set rootfs &#039;root=/dev/nfs nfsroot=192.168.178.90:/work/net/nfsroot/ ip=192.168.178.91:192.168.178.90::255.255.255.0:dhcom:eth0:none&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* load Linux kernel and devicetree with tftp (change filename and path to match you setup)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# tftp ${loadaddr} zImage&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# tftp ${fdt_addr} dtbs/imx6dl-dhcom3B-pdk2.dtb&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* set bootcmd&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env set bootcmd &#039;run linuxargs; bootz ${loadaddr} - ${fdt_addr}&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* optional: save it to be permanent &lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# env save&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* boot target&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;tt&amp;gt;# boot&amp;lt;/tt&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=COM_AM335x_Bootloader_U-Boot&amp;diff=1730</id>
		<title>COM AM335x Bootloader U-Boot</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=COM_AM335x_Bootloader_U-Boot&amp;diff=1730"/>
		<updated>2017-01-18T07:32:43Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Start Build */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FAQ ==&lt;br /&gt;
:&#039;&#039;&#039;Q: Initialization of MAC address in the bootloader?&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;A:&#039;&#039;&#039; At the first start, the bootloader reads the MAC addresses (2x) from internal Control Module of the AM335x and creates env variable ethaddr and eth1addr. The env variable ethaddr or eth1addr could be changed during lifetime to any other MAC address. If you like to get back the original MAC address, please remove ethaddr, save environment and restart the system. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Q: The automatic update is not executed before the operating system boots!&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;A:&#039;&#039;&#039; Check if the command &amp;lt;code&amp;gt; update auto &amp;lt;/code&amp;gt; is included in the bootloader environment variable &amp;lt;code&amp;gt;bootcmd&amp;lt;/code&amp;gt; or in a script-variable which is called within &amp;lt;code&amp;gt; bootcmd &amp;lt;/code&amp;gt; before &amp;lt;code&amp;gt; bootm &amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Q: The automatic update does not work with my desired update-media!&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;A:&#039;&#039;&#039; The command &amp;lt;code&amp;gt; update auto &amp;lt;/code&amp;gt; can be configured with flags within the DHCOM settings.bin block. It is possible to disable a interface for the update mechanism. You can run a update from a disabled interface if you use the command &amp;lt;code&amp;gt; update &amp;lt;/code&amp;gt; without the argument &amp;lt;code&amp;gt; auto &amp;lt;/code&amp;gt;. Take care about the correct setup of your media.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Please have a look at the[[COM_AM335-D2#Downloads| AM335x Downloads]] section.&lt;br /&gt;
&lt;br /&gt;
== Enter Bootloader Console ==&lt;br /&gt;
#Connect DHCOM UART1) via null modem cable to the RS232 Port of your PC&lt;br /&gt;
#Start terminal program (e.g. Tera Term) on the Host PC with the following settings:&lt;br /&gt;
#:Baud rate: 115200&lt;br /&gt;
#:Data: 8 bit&lt;br /&gt;
#:Parity: none&lt;br /&gt;
#:Stop bits: 1 bit&lt;br /&gt;
#:Flow control: none&lt;br /&gt;
#Press &amp;quot;del&amp;quot; on the Host PC during Core Module system start to enter bootloader console&lt;br /&gt;
&lt;br /&gt;
==U-boot console commands==&lt;br /&gt;
=== SPI Flash ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;SPI Flash Init&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;sf probe&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;sf probe&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Initializes the OnBoard SPI Flash&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;SPI Flash Read&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;sf read &amp;lt;SDRAM address&amp;gt; &amp;lt;SPI Flash address&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;sf read 80000000 0 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Copies 256Bytes from SPI Flash address 0x0 to SDRAM address 0x1000_0000&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;SPI Flash Write&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;sf write &amp;lt;SDRAM address&amp;gt; &amp;lt;SPI Flash address&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;sf write 80000000 40000 10000&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Copies 64kByte from SDRAM address 0x8000_0000 to SPI Flash address 0x4_0000&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;SPI Flash Erase&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;sf erase &amp;lt;SPI Flash address&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;sf erase 100000 1000&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Deletes SPI Flash content from address 0x10_0000 to 0x10_0FFF &lt;br /&gt;
&lt;br /&gt;
:Note: The Bytes information needs to be sector size aligned!&lt;br /&gt;
&lt;br /&gt;
=== NAND-Flash ===&lt;br /&gt;
We provide the DHCOM AM335x with NAND &#039;&#039;&#039;or&#039;&#039;&#039; eMMC. The following commands are reserved for the NAND version of DHCOM AM335x.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Read from NAND-Flash Device&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;nand read &amp;lt;SDRAM address&amp;gt; &amp;lt;NAND Flash address&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;nand read 80000000 400000 b40000&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Copies 11,25MByte from NAND Flash address 0x40_0000 to SDRAM address 0x8000_0000&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Erase NAND-Flash blocks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;nand erase &amp;lt;Block base address&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;nand erase 400000 40000&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Deletes NAND Flash content from address 0x40_0000 to 0x43_FFFF&lt;br /&gt;
&lt;br /&gt;
:Note: The Bytes information needs to be block size aligned!&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Write to NAND-Flash Device&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;nand write &amp;lt;SDRAM address&amp;gt; &amp;lt;NAND-Flash address&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;nand write 80000000 400000 b40000&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Copies 11,25MByte from SDRAM address 0x8000_0000 to NAND Flash address 0x40_0000&lt;br /&gt;
&lt;br /&gt;
:Note: The Bytes information needs to be page size aligned!&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Show bad NAND-Flash blocks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;nand bad&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Description: Shows the bad NAND-Flash blocks.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Show NAND-Flash content&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;nand dump &amp;lt;NAND-Flash address&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;nand dump 400000&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Shows the content of the specified NAND-Flash block&lt;br /&gt;
&lt;br /&gt;
=== UBI Filesystem ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Partition Definition&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;mtdparts&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;mtdparts&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Shows the current nand flash partitions. In case of AM335x one default partition set, which includes the entire flash. For linux that partition is used to create two volumes &amp;quot;boot&amp;quot; and &amp;quot;rootfs&amp;quot;.&lt;br /&gt;
:Note: In case of UBIFS it is better to have one big partition with different volumes instead of many small partitions, because the wear leveling process is always applied to every partition.&lt;br /&gt;
&lt;br /&gt;
 device nand0 &amp;lt;gpmi-nand&amp;gt;, # parts = 1&lt;br /&gt;
 #: name                size            offset          mask_flags&lt;br /&gt;
 0: gpmc-nand           0x20000000      0x00000000      0&lt;br /&gt;
 active partition: nand0,0 - (gpmc-nand) 0x20000000 @ 0x00000000&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Set or show active partition&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;ubi part &amp;lt;partition name&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;ubi part gpmi-nand&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Show or set current partition. In AM335x default case this is shold always set to gpmc-nand.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mount UBI volume&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;ubifsmount &amp;lt;UBI device&amp;gt;:&amp;lt;volume name&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;ubifsmount ubi0:boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Mount UBIFS volume. The default name of the first AM335x volume is &amp;quot;boot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;List files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;ubifsls &amp;lt;directory&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example 1: &amp;lt;tt&amp;gt;ubifsls&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: List files in a UBIFS directory.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Load Files from UBI volume&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;ubifsload &amp;lt;SDRAM address&amp;gt; &amp;lt;directory+filename&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example 1: &amp;lt;tt&amp;gt;ubifsload 10100000 zimage&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Load file from an UBIFS filesystem to memory.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Unmount UBI volume&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;ubifsumount&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;ubifsumount&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Unmount current volume.&lt;br /&gt;
&lt;br /&gt;
=== SD/MMC Card ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Switch between MicroSD, SD Slot and eMMC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;mmc dev &amp;lt;Slot number&amp;gt; &amp;lt;Partition number&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;mmc dev 0&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Switch between SD/MMC Slots: &lt;br /&gt;
:* 0 --&amp;gt; SD/MMC or MicroSD Slot&lt;br /&gt;
:* 1 --&amp;gt; eMMC Flash&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Initialize SD/MMC Card&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;mmc rescan&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
:Description: Initialize new inserted SD Card&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Show SD/MMC information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;mmcinfo&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Description: Shows SD/MMC device information&lt;br /&gt;
 Device: FSL_SDHC&lt;br /&gt;
 Manufacturer ID: 45&lt;br /&gt;
 OEM: 100&lt;br /&gt;
 Name: SEM08&lt;br /&gt;
 Tran Speed: 52000000&lt;br /&gt;
 Rd Block Len: 512&lt;br /&gt;
 MMC version 4.41&lt;br /&gt;
 High Capacity: Yes&lt;br /&gt;
 Capacity: 7.3 GiB&lt;br /&gt;
 Bus Width: 8-bit&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Write to MicroSD, SD Slot and eMMC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;mmc write &amp;lt;SDRAM address&amp;gt; &amp;lt;block number&amp;gt; &amp;lt;block count&amp;gt; &amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;mmc write 81000000 5000 400&amp;lt;/tt&amp;gt;&lt;br /&gt;
:Description: Write 512kByte (device block size is 512Byte) to the eMMC offset 10MByte.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Read from MicroSD, SD Slot and eMMC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;mmc read &amp;lt;SDRAM address&amp;gt; &amp;lt;block number&amp;gt; &amp;lt;block count&amp;gt; &amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;mmc read 81000000 5000 400&amp;lt;/tt&amp;gt;&lt;br /&gt;
:Description: Read 512kByte (device block size is 512Byte) from the eMMC offset 10MByte.&lt;br /&gt;
&lt;br /&gt;
=== FAT - EXT2 - EXT4 - Filesystem ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;NOTE: All EXT2 commands must also be used for ext4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Show Filesystem information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;fatinfo &amp;lt;interface&amp;gt; &amp;lt;device&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;fatinfo mmc 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Interface: MMC&lt;br /&gt;
  Device 1: Vendor: Man 094150 Snr 266e068c Rev: 1.0 Prod: AF UD&lt;br /&gt;
            Type: Removable Hard Disk&lt;br /&gt;
            Capacity: 121.2 MB = 0.1 GB (248320 x 512)&lt;br /&gt;
  Partition 1: Filesystem: FAT16 &amp;quot;NO NAME    &amp;quot;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;List files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;fatls &amp;lt;interface&amp;gt; &amp;lt;device&amp;gt; &amp;lt;directory&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;ext2ls &amp;lt;interface&amp;gt; &amp;lt;device&amp;gt; &amp;lt;directory&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example 1: &amp;lt;tt&amp;gt;fatls mmc 1&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Example 2: &amp;lt;tt&amp;gt;fatls mmc 1 /folder&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Load Files from SD Card to SDRAM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;fatload &amp;lt;interface&amp;gt; &amp;lt;device&amp;gt; &amp;lt;SDRAM address&amp;gt; &amp;lt;directory+filename&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;ext2load &amp;lt;interface&amp;gt; &amp;lt;device&amp;gt; &amp;lt;SDRAM address&amp;gt; &amp;lt;directory+filename&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example 1: &amp;lt;tt&amp;gt;fatload mmc 1 80100000 nk.gz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Example 2: &amp;lt;tt&amp;gt;fatload mmc 1 80100000 /folder/nk.gz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ethernet ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Load File via TFTP to SDRAM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;tftp &amp;lt;SDRAM address&amp;gt; &amp;lt;directory+filename&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;tftp 80100000 nk.gz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Example TFTP Server: &amp;quot;Winagents TFTP Server Manager&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Note: For TFTP download it is necessary to config the ENV variables &amp;quot;ipaddr&amp;quot; and &amp;quot;serverip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Load File via TFTP to SDRAM using DHCP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;dhcp &amp;lt;SDRAM address&amp;gt; &amp;lt;directory+filename&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;dhcp 80100000 nk.gz&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Example TFTP Server: &amp;quot;Winagents TFTP Server Manager&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Note: It is necessary to config the ENV variable &amp;quot;serverip&amp;quot; with the ip-address of your TFTP-Server&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Ping&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;ping &amp;lt;IP address&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;ping 192.168.55.32&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Read PHY register via MII interface&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;mii dump &amp;lt;PHY address&amp;gt; &amp;lt;PHY register&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;mii dump 0 0&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Remark: The standard MII registers 0-5 are supported by this command.&lt;br /&gt;
&lt;br /&gt;
=== Unzip ===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;unzip &amp;lt;source address&amp;gt; &amp;lt;destination address&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;unzip 82900000 80100000&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Note: The unzip command is supporting the gzip file format.&lt;br /&gt;
&lt;br /&gt;
=== Bitmap ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;bmp info &amp;lt;Bitmap address&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 Image size    : 800 x 480&lt;br /&gt;
 Bits per pixel: 8&lt;br /&gt;
 Compression   : 0&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Display&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039; &amp;lt;code&amp;gt;bmp display &amp;lt;Bitmap SDRAM address&amp;gt; [x y]&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
:Note: It is necessary to load bitmap file to memory address with an offset of an odd multiple of +2, since the use of a four-byte alignment will cause alignment exceptions at run-time.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Display&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;md[.b, .w, .l] &amp;lt;address&amp;gt; [count]&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;md.b 80100000 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Write&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt; mw[.b, .w, .l] &amp;lt;address&amp;gt; &amp;lt;value&amp;gt; [count]&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;mw.b 80100000 aa 100&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Writes the value 0xaa to the next 0x100 bytes from the address 0x8010_0000. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Copy&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt; cp[.b, .w, .l] &amp;lt;source&amp;gt; &amp;lt;destination&amp;gt; &amp;lt;count&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Show DHCOM Settings ===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt; settings &amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example:   &lt;br /&gt;
  VALIDATION_ID:    &amp;quot;DH&amp;quot;&lt;br /&gt;
  DISPLAY_ID:       0x00&lt;br /&gt;
  LENGTH:           0x2c&lt;br /&gt;
  X_RESOLUTION:     800 pixel&lt;br /&gt;
  Y_RESOLUTION:     480 pixel&lt;br /&gt;
  PIXEL_CLOCK:      22200 kHz&lt;br /&gt;
  LCD_CONFIG_FLAGS: 0x3e3&lt;br /&gt;
  HSW:              64 pixel clocks&lt;br /&gt;
  VSW:              2 line clocks&lt;br /&gt;
  HFP:              42 pixel clocks&lt;br /&gt;
  HBP:              86 pixel clocks&lt;br /&gt;
  VFP:              10 line clocks&lt;br /&gt;
  VBP:              33 line clocks&lt;br /&gt;
  DATALINES:        16&lt;br /&gt;
  ACB:              0&lt;br /&gt;
  ACBI:             0&lt;br /&gt;
  GPIO_DIR:         0x01ff&lt;br /&gt;
  GPIO_STATE:       0x0000&lt;br /&gt;
  HW_CONFIG_FLAGS:  0x001e&lt;br /&gt;
&lt;br /&gt;
=== I2C ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;List available devices&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;i2c probe&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 Valid devices:&lt;br /&gt;
 0 = OnBoard I2C portDHCOM I2C port 1&lt;br /&gt;
 1 = not connected&lt;br /&gt;
 2 = DHCOM I2C port 1&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Read&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;i2c md &amp;lt;I2C address&amp;gt; &amp;lt;start address&amp;gt; &amp;lt;end address&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;i2c md 57 10 20&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Reads 16 Bytes from the address 0x10 to address 0x20.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Write&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;i2c mw &amp;lt;I2C address&amp;gt; &amp;lt;I2C register&amp;gt; &amp;lt;Value&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;tt&amp;gt;i2c mw 57 0 aa 5&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Writes 0xaa to 5 Bytes from the offset 0.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
==== Print Variables ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;env print&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Set Variables ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;tt&amp;gt;env set [-f] name [arg ...]&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;Example:&#039;&#039; &amp;lt;code&amp;gt;env set ipaddr 192.168.55.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;Note:&#039;&#039; If you need to edit &amp;quot;bootcmd&amp;quot; it is necessary to insert &amp;quot;;&amp;quot; between the unique commands. You can enter &amp;quot;;&amp;quot; at the command line with &amp;quot;\;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==== Save Variables ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;env save&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Delete Variable ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;env delete &amp;lt;ENV name&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Revert Complete Environment to Default ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;env default -a&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== Import from Textfile ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;env import -t &amp;lt;SDRAM address&amp;gt; $filesize&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Example: &lt;br /&gt;
 &amp;lt;code&amp;gt;fatload mmc 0 0x10000000 uEnv.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
 &amp;lt;code&amp;gt;env import -t 0x10000000 $filesize&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Important:&lt;br /&gt;
The uEnv.txt file should be in unix format. Also make sure that there is an empty line at the end of the file.&lt;br /&gt;
&lt;br /&gt;
==[[DHCOM Update Mechanism |How to do Updates]]==&lt;br /&gt;
&lt;br /&gt;
== Display and Hardware settings == &lt;br /&gt;
=== DHCOM settings and Splash bitmap ===&lt;br /&gt;
:The DHCOM settings are used to setup display and special hardware parameters. For detailed description please have a look at [[DHCOM Settings|&#039;&#039;&#039;How to create a settings.bin file&#039;&#039;&#039;]].&lt;br /&gt;
:The DHCOM settings file and the splash bitmap are loaded via the env variables &amp;quot;&#039;&#039;&#039;load_settings_bin&#039;&#039;&#039;&amp;quot; and &amp;quot;&#039;&#039;&#039;load_splash&#039;&#039;&#039;&amp;quot; during startup from boot partition. The default content of these env variables is:&lt;br /&gt;
 settings_bin_file=default_settings.bin&lt;br /&gt;
 splash_file=splash.bmp&lt;br /&gt;
 load_settings_bin=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${settings_bin_file}&lt;br /&gt;
 load_splash=load mmc ${mmcdev}:${mmcpart} ${splashimage} ${splash_file}&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Note:&#039;&#039;&#039; The DHCOM display settings can also be stored in external eeprom (address 0x50 / 7bit I2C address) which is connected to DHCOM I2C1 port. If eeprom is available and DISP_ADPT_EEPRM flag is set to 1, the settings from eeprom override the settings from boot partition!&lt;br /&gt;
:Next you can see the settings load order:&lt;br /&gt;
:[[Image:DISP_ADPT_EE_check.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Displaying a splash screen with u-boot ===&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* This is possible with u-boot version v0.1.0.0 or newer. &lt;br /&gt;
* Only RGB interface is supported.&lt;br /&gt;
&#039;&#039;&#039;The process to set it up is the following:&#039;&#039;&#039;&lt;br /&gt;
* Configure your display parameters with DHCOM settings generator ([[DHCOM Settings|&#039;&#039;&#039;How to create a settings.bin file&#039;&#039;&#039;]])&amp;lt;br/&amp;gt;&lt;br /&gt;
* Generate settings bin file with settings generator.&lt;br /&gt;
* Copy settings bin file to boot partition on boot media (eMMC, NAND or microSD card).&lt;br /&gt;
* Generate your splash bitmap (bitmap with 8 bit color depth).&lt;br /&gt;
* Copy also bmp file to boot partition.&lt;br /&gt;
* Start DHCOM module and enter u-boot console.&lt;br /&gt;
* Set env variable “&amp;lt;code&amp;gt;settings_bin_file&amp;lt;/code&amp;gt;” with settings bin filename:&amp;lt;br/&amp;gt;Example: &amp;lt;code&amp;gt;env set settings_bin_file 10_LG_7inch_LB070WV8.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
* Set env variable “&amp;lt;code&amp;gt;splash_file&amp;lt;/code&amp;gt;” with bitmap filename:&amp;lt;br/&amp;gt;Example: &amp;lt;code&amp;gt;env set splash_file 800x480_splash_DHCOM_iMX6.bmp&amp;lt;/code&amp;gt;&lt;br /&gt;
:&#039;&#039;&#039;Remark:&#039;&#039;&#039; This can be done in the uLinuxEnv.txt, too. &lt;br /&gt;
* Save u-boot environment to flash: &amp;lt;code&amp;gt;saveenv&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart the system --&amp;gt; Splash bitmap should now be displayed from the bootloader.&lt;br /&gt;
&lt;br /&gt;
=== Display disabled by default ===&lt;br /&gt;
:With default u-boot configuration u-boot &#039;&#039;&#039;doesn&#039;t&#039;&#039;&#039; initialize the Display interface. This feature can be activated by deleting the &amp;quot;&#039;&#039;&#039;panel&#039;&#039;&#039;&amp;quot; environment variable. But also with deactivated display interface, the bootlaoder reads the display settings and pass the settings to the linux kernel.&lt;br /&gt;
 panel=&amp;quot;no_panel&amp;quot;: Display interface is deactiveted in u-boot and backlight is powered off.&lt;br /&gt;
 panel=&amp;quot;RGB&amp;quot;: Default DH 4,3&amp;quot; display is selected.&lt;br /&gt;
 panel=deleted: u-boot initialize display by DH settings file.&lt;br /&gt;
&lt;br /&gt;
=== Backlight enable GPIO ===&lt;br /&gt;
: If ENV variable &amp;quot;panel&amp;quot; is set to &amp;quot;no_panel&amp;quot; the backlight enable GPIO (defined via DHCOM settings file or eeprom settings) will be disabled from the bootloader during startup.&lt;br /&gt;
: If ENV variable &amp;quot;panel&amp;quot; is deleted, the backlight enable GPIO is activated or deactivated in relation to BL_ON flag of DHCOM settings file.  &lt;br /&gt;
: Note: Supported by U-Boot DH VERSION v0.4.2.5 or higher for iMX6&lt;br /&gt;
&lt;br /&gt;
== Building U-Boot (and MLO) ==&lt;br /&gt;
=== Prepare Build Environment ===&lt;br /&gt;
* Download and start the Virtual Machine based on Debian 8 (see [[COM_AM335-D2#Downloads| AM335x Downloads]])&lt;br /&gt;
* Install Denx ELDK 5.4 to /opt (Available at [ftp://ftp.denx.de/pub/eldk/5.4/iso/ ftp://ftp.denx.de/pub/eldk/5.4/iso/]: we use eldk-5.4-armv7a.iso)&lt;br /&gt;
=== Get Sources ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%; color: #000000; background: #ffffff;&amp;quot; |&lt;br /&gt;
| &lt;br /&gt;
1. Start a terminal on Linux&amp;lt;br/&amp;gt;&lt;br /&gt;
2. &amp;lt;tt&amp;gt;# &#039;&#039;git clone [https://github.com/dh-electronics/u-boot-am33x.git https://github.com/dh-electronics/u-boot-am33x.git]&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
3. &amp;lt;tt&amp;gt;# &#039;&#039;cd u-boot-am33x&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
4. &amp;lt;tt&amp;gt;# &#039;&#039;git checkout release/v0.4.0.1&#039;&#039; # checkout latest/required branch or tag&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Start Build===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%; color: #000000; background: #ffffff;&amp;quot; |&lt;br /&gt;
| &lt;br /&gt;
6. &amp;lt;tt&amp;gt;# &#039;&#039;./uboot_make [nand]&#039;&#039;&amp;lt;/tt&amp;gt;  # add argument &#039;nand&#039; to include nand support, not suitable for eMMC devices&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* Your new &amp;lt;tt&amp;gt;u-boot.img&amp;lt;/tt&amp;gt; file is available in &amp;lt;tt&amp;gt;u-boot-am33x/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* If your build does fail please check content of uboot_make and adjust PATH.&lt;br /&gt;
* Use &amp;lt;tt&amp;gt;MLO.byteswap&amp;lt;/tt&amp;gt; if you need to replace the MLO. &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Attention: Risk of bricking the Device!!&#039;&#039;&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=COM_iMX6_Bootloader_U-Boot&amp;diff=1729</id>
		<title>COM iMX6 Bootloader U-Boot</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=COM_iMX6_Bootloader_U-Boot&amp;diff=1729"/>
		<updated>2017-01-18T07:30:45Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Environment */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== FAQ ==&lt;br /&gt;
:&#039;&#039;&#039;Q: Initialization of MAC address in the bootloader?&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;A:&#039;&#039;&#039; At the first start, the bootloader reads the MAC address from EEPROM, write it to eFuses and creates env variable ethaddr. The env variable ethaddr could be changed during lifetime to any other MAC address. If you like to get back the original MAC address, please remove ethaddr, save environment and restart the system. In addition to that the env variable ethaddr would be initialized again with eeprom MAC addresss.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Q: The automatic update is not executed before the operating system boots!&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;A:&#039;&#039;&#039; Check if the command &amp;lt;code&amp;gt; update auto &amp;lt;/code&amp;gt; is included in the bootloader environment variable &amp;lt;code&amp;gt;bootcmd&amp;lt;/code&amp;gt; or in a script-variable which is called within &amp;lt;code&amp;gt; bootcmd &amp;lt;/code&amp;gt; before &amp;lt;code&amp;gt; bootm &amp;lt;/code&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Q: The automatic update does not work with my desired update-media!&#039;&#039;&#039;&lt;br /&gt;
:&#039;&#039;&#039;A:&#039;&#039;&#039; The command &amp;lt;code&amp;gt; update auto &amp;lt;/code&amp;gt; can be configured with flags within the DHCOM settings.bin block. It is possible to disable a interface for the update mechanism. You can run a update from a disabled interface if you use the command &amp;lt;code&amp;gt; update &amp;lt;/code&amp;gt; without the argument &amp;lt;code&amp;gt; auto &amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
Please have a look at the[[COM_iMX6-D2#Downloads| i.MX6 Downloads]] section.&lt;br /&gt;
&lt;br /&gt;
== Enter Bootloader Console ==&lt;br /&gt;
:#Connect DHCOM UART1 (FF UART) via null modem cable to the RS232 Port of your PC&lt;br /&gt;
:#Start terminal program (e.g. Tera Term) on the Host PC with the following settings:&lt;br /&gt;
:#:Baud rate: 115200&lt;br /&gt;
:#:Data: 8 bit&lt;br /&gt;
:#:Parity: none&lt;br /&gt;
:#:Stop bits: 1 bit&lt;br /&gt;
:#:Flow control: none&lt;br /&gt;
:#Press &amp;quot;del&amp;quot; on the Host PC during Core Module system start to enter bootloader console&lt;br /&gt;
&lt;br /&gt;
==U-boot console commands==&lt;br /&gt;
=== SPI Flash ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;SPI Flash Init&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;sf probe&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;sf probe&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Initializes the OnBoard SPI Flash&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;SPI Flash Read&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;sf read &amp;lt;SDRAM address&amp;gt; &amp;lt;SPI Flash address&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;sf read 10000000 0 100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Copies 256Bytes from SPI Flash address 0x0 to SDRAM address 0x1000_0000&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;SPI Flash Write&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;sf write &amp;lt;SDRAM address&amp;gt; &amp;lt;SPI Flash address&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;sf write 10000000 40000 10000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Copies 64kByte from SDRAM address 0x1000_0000 to SPI Flash address 0x4_0000&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;SPI Flash Erase&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;sf erase &amp;lt;SPI Flash address&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;sf erase 100000 1000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Deletes SPI Flash content from address 0x10_0000 to 0x10_0FFF &lt;br /&gt;
&lt;br /&gt;
:Note: The Bytes information needs to be sector size aligned!&lt;br /&gt;
&lt;br /&gt;
=== NAND-Flash ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Read from NAND-Flash Device&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;nand read &amp;lt;SDRAM address&amp;gt; &amp;lt;NAND Flash address&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;nand read 80000000 400000 b40000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Copies 11,25MByte from NAND Flash address 0x40_0000 to SDRAM address 0x8000_0000&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Erase NAND-Flash blocks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;nand erase &amp;lt;Block base address&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;nand erase 400000 40000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Deletes NAND Flash content from address 0x40_0000 to 0x43_FFFF&lt;br /&gt;
&lt;br /&gt;
:Note: The Bytes information needs to be block size aligned!&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Write to NAND-Flash Device&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;nand write &amp;lt;SDRAM address&amp;gt; &amp;lt;NAND-Flash address&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;nand write 80000000 400000 b40000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Copies 11,25MByte from SDRAM address 0x8000_0000 to NAND Flash address 0x40_0000&lt;br /&gt;
&lt;br /&gt;
:Note: The Bytes information needs to be page size aligned!&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Show bad NAND-Flash blocks&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;nand bad&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Description: Shows the bad NAND-Flash blocks.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Show NAND-Flash content&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;nand dump &amp;lt;NAND-Flash address&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;nand dump 400000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Shows the content of the specified NAND-Flash block&lt;br /&gt;
&lt;br /&gt;
=== UBI Filesystem ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Partition Definition&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;mtdparts&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;mtdparts&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Shows the current nand flash partitions. In case of i.MX6 one default partition set, which includes the entire flash. For linux that partition is used to create two volumes &amp;quot;boot&amp;quot; and &amp;quot;rootfs&amp;quot;.&lt;br /&gt;
:Note: In case of UBIFS it is better to have one big partition with different volumes instead of many small partitions, because the wear leveling process is always applied to every partition.&lt;br /&gt;
&lt;br /&gt;
 device nand0 &amp;lt;gpmi-nand&amp;gt;, # parts = 1&lt;br /&gt;
 #: name                size            offset          mask_flags&lt;br /&gt;
 0: gpmi-nand           0x20000000      0x00000000      0&lt;br /&gt;
 active partition: nand0,0 - (gpmi-nand) 0x20000000 @ 0x00000000&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Set or show active partition&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;ubi part &amp;lt;partition name&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;ubi part gpmi-nand&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Show or set current partition. In i.MX6 default case this is shold always set to gpmi-nand.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Mount UBI volume&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;ubifsmount &amp;lt;UBI device&amp;gt;:&amp;lt;volume name&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;ubifsmount ubi0:boot&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Mount UBIFS volume. The default name of the first i.MX6 volume is &amp;quot;boot&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;List files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;ubifsls &amp;lt;directory&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example 1: &amp;lt;code&amp;gt;ubifsls&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: List files in a UBIFS directory.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Load Files from UBI volume&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;ubifsload &amp;lt;SDRAM address&amp;gt; &amp;lt;directory+filename&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example 1: &amp;lt;code&amp;gt;ubifsload 10100000 zimage&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Load file from an UBIFS filesystem to memory.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Unmount UBI volume&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;ubifsumount&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;ubifsumount&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Unmount current volume.&lt;br /&gt;
&lt;br /&gt;
=== SD/MMC Card ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Switch between MicroSD, SD Slot and eMMC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;mmc dev &amp;lt;Slot number&amp;gt; &amp;lt;Partition number&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;mmc dev 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Switch between SD/MMC Slots: 0 --&amp;gt; SD/MMC Slot, 1 --&amp;gt; MicroSD Slot, 2 --&amp;gt; eMMC Flash&lt;br /&gt;
:Note eMMC flash partition number: 0 --&amp;gt; User partition, 1 --&amp;gt; Boot partition 1, 2 --&amp;gt; Boot partition 2&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Initialize SD/MMC Card&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;mmc rescan&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
:Description: Initialize new inserted SD Card&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Show SD/MMC information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;mmcinfo&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Description: Shows SD/MMC device information&lt;br /&gt;
 Device: FSL_SDHC&lt;br /&gt;
 Manufacturer ID: 45&lt;br /&gt;
 OEM: 100&lt;br /&gt;
 Name: SEM08&lt;br /&gt;
 Tran Speed: 52000000&lt;br /&gt;
 Rd Block Len: 512&lt;br /&gt;
 MMC version 4.41&lt;br /&gt;
 High Capacity: Yes&lt;br /&gt;
 Capacity: 7.3 GiB&lt;br /&gt;
 Bus Width: 8-bit&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Write to MicroSD, SD Slot and eMMC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;mmc write &amp;lt;SDRAM address&amp;gt; &amp;lt;block number&amp;gt; &amp;lt;block count&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;mmc write 11000000 5000 400&amp;lt;/code&amp;gt;&lt;br /&gt;
:Description: Write 512kByte (device block size is 512Byte) to the eMMC offset 10MByte.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Read from MicroSD, SD Slot and eMMC&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;mmc read &amp;lt;SDRAM address&amp;gt; &amp;lt;block number&amp;gt; &amp;lt;block count&amp;gt; &amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;mmc read 11000000 5000 400&amp;lt;/code&amp;gt;&lt;br /&gt;
:Description: Read 512kByte (device block size is 512Byte) from the eMMC offset 10MByte.&lt;br /&gt;
&lt;br /&gt;
=== FAT - EXT2 - EXT4 - Filesystem ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;NOTE: All EXT2 commands must also be used for ext4&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Show Filesystem information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;fatinfo &amp;lt;interface&amp;gt; &amp;lt;device&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;fatinfo mmc 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 Interface: MMC&lt;br /&gt;
  Device 1: Vendor: Man 094150 Snr 266e068c Rev: 1.0 Prod: AF UD&lt;br /&gt;
            Type: Removable Hard Disk&lt;br /&gt;
            Capacity: 121.2 MB = 0.1 GB (248320 x 512)&lt;br /&gt;
  Partition 1: Filesystem: FAT16 &amp;quot;NO NAME    &amp;quot;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;List files&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;fatls &amp;lt;interface&amp;gt; &amp;lt;device&amp;gt; &amp;lt;directory&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;ext2ls &amp;lt;interface&amp;gt; &amp;lt;device&amp;gt; &amp;lt;directory&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example 1: &amp;lt;code&amp;gt;fatls mmc 1&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Example 2: &amp;lt;code&amp;gt;fatls mmc 1 /folder&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Load Files from SD Card to SDRAM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;fatload &amp;lt;interface&amp;gt; &amp;lt;device&amp;gt; &amp;lt;SDRAM address&amp;gt; &amp;lt;directory+filename&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;ext2load &amp;lt;interface&amp;gt; &amp;lt;device&amp;gt; &amp;lt;SDRAM address&amp;gt; &amp;lt;directory+filename&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example 1: &amp;lt;code&amp;gt;fatload mmc 1 10100000 nk.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Example 2: &amp;lt;code&amp;gt;fatload mmc 1 10100000 /folder/nk.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Ethernet ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Load File via TFTP to SDRAM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;tftp &amp;lt;SDRAM address&amp;gt; &amp;lt;directory+filename&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;tftp 80100000 nk.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Example TFTP Server: &amp;quot;Winagents TFTP Server Manager&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Note: For TFTP download it is necessary to config the ENV variables &amp;quot;ipaddr&amp;quot; and &amp;quot;serverip&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Load File via TFTP to SDRAM using DHCP&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;dhcp &amp;lt;SDRAM address&amp;gt; &amp;lt;directory+filename&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;dhcp 80100000 nk.gz&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Example TFTP Server: &amp;quot;Winagents TFTP Server Manager&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Note: It is necessary to config the ENV variable &amp;quot;serverip&amp;quot; with the ip-address of your TFTP-Server&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Ping&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;ping &amp;lt;IP address&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;ping 192.168.55.32&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Read PHY register via MII interface&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;mii dump &amp;lt;PHY address&amp;gt; &amp;lt;PHY register&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;mii dump 0 0&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Remark: The standard MII registers 0-5 are supported by this command. When you are working with a DHCOM i.MX6 module only PHY address &amp;quot;0&amp;quot; is allowed.&lt;br /&gt;
&lt;br /&gt;
=== Unzip ===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;unzip &amp;lt;source address&amp;gt; &amp;lt;destination address&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;unzip 12900000 10100000&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Note: The unzip command is supporting the gzip file format.&lt;br /&gt;
&lt;br /&gt;
=== Bitmap ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Information&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;bmp info &amp;lt;Bitmap address&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 Image size    : 800 x 480&lt;br /&gt;
 Bits per pixel: 8&lt;br /&gt;
 Compression   : 0&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Display&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039; &amp;lt;code&amp;gt;bmp display &amp;lt;Bitmap SDRAM address&amp;gt; [x y]&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
:Note: It is necessary to load bitmap file to memory address with an offset of an odd multiple of +2, since the use of a four-byte alignment will cause alignment exceptions at run-time.&lt;br /&gt;
&lt;br /&gt;
=== Memory ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Display&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;md[.b, .w, .l] &amp;lt;address&amp;gt; [count]&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;md.b 80100000 100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Write&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt; mw[.b, .w, .l] &amp;lt;address&amp;gt; &amp;lt;value&amp;gt; [count]&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;mw.b 80100000 aa 100&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Writes the value 0xaa to the next 0x100 bytes from the address 0x8010_0000. &lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Copy&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt; cp[.b, .w, .l] &amp;lt;source&amp;gt; &amp;lt;destination&amp;gt; &amp;lt;count&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Show DHCOM Settings ===&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt; settings &amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example:   &lt;br /&gt;
  VALIDATION_ID:    &amp;quot;DH&amp;quot;&lt;br /&gt;
  DISPLAY_ID:       0x00&lt;br /&gt;
  LENGTH:           0x2c&lt;br /&gt;
  X_RESOLUTION:     800 pixel&lt;br /&gt;
  Y_RESOLUTION:     480 pixel&lt;br /&gt;
  PIXEL_CLOCK:      22200 kHz&lt;br /&gt;
  LCD_CONFIG_FLAGS: 0x3e3&lt;br /&gt;
  HSW:              64 pixel clocks&lt;br /&gt;
  VSW:              2 line clocks&lt;br /&gt;
  HFP:              42 pixel clocks&lt;br /&gt;
  HBP:              86 pixel clocks&lt;br /&gt;
  VFP:              10 line clocks&lt;br /&gt;
  VBP:              33 line clocks&lt;br /&gt;
  DATALINES:        16&lt;br /&gt;
  ACB:              0&lt;br /&gt;
  ACBI:             0&lt;br /&gt;
  GPIO_DIR:         0x01ff&lt;br /&gt;
  GPIO_STATE:       0x0000&lt;br /&gt;
  HW_CONFIG_FLAGS:  0x001e&lt;br /&gt;
&lt;br /&gt;
=== I2C ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;List available devices&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;i2c probe&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 Valid devices:&lt;br /&gt;
 0 = DHCOM I2C port 1&lt;br /&gt;
 1 = DHCOM I2C port 2&lt;br /&gt;
 2 = i.MX6 OnBoard I2C port&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Read&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;i2c md &amp;lt;I2C address&amp;gt; &amp;lt;start address&amp;gt; &amp;lt;end address&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;i2c md 57 10 20&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Reads 16 Bytes from the address 0x10 to address 0x20.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Write&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;i2c mw &amp;lt;I2C address&amp;gt; &amp;lt;I2C register&amp;gt; &amp;lt;Value&amp;gt; &amp;lt;Bytes&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;i2c mw 57 0 aa 5&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Description: Writes 0xaa to 5 Bytes from the offset 0.&lt;br /&gt;
&lt;br /&gt;
=== Environment ===&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Show ENV variables&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;env print&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
 bootdelay=0&lt;br /&gt;
 baudrate=38400&lt;br /&gt;
 ipaddr=192.168.55.230&lt;br /&gt;
 serverip=192.168.55.36&lt;br /&gt;
 gatewayip=192.168.55.36&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 frias=5&lt;br /&gt;
 ...&lt;br /&gt;
 Environment size: 449/262140 bytes&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Set ENV variables&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;env set &amp;lt;ENV name&amp;gt; &amp;lt;ENV value&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
:Example: &amp;lt;code&amp;gt;env set ipaddr 192.168.55.2&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Note: If you need to edit &amp;quot;bootcmd&amp;quot; it is necessary to insert &amp;quot;;&amp;quot; between the unique commands. You can enter &amp;quot;;&amp;quot; at the command line with &amp;quot;\;&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Save ENV variables&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;env save&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Delete ENV variable&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;env delete &amp;lt;ENV name&amp;gt;&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Revert to default ENV&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;env default -a&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Import ENV from textfile&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&#039;&#039;&amp;lt;code&amp;gt;env import -t &amp;lt;SDRAM address&amp;gt; $filesize&amp;lt;/code&amp;gt;&#039;&#039;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Example: &lt;br /&gt;
: &amp;lt;code&amp;gt;fatload mmc 0 0x10000000 uEnv.txt&amp;lt;/code&amp;gt;&lt;br /&gt;
: &amp;lt;code&amp;gt;env import -t 0x10000000 $filesize&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:Important:&lt;br /&gt;
:The uEnv.txt file should be in unix format. Also make sure that there is an empty line at the end of the file.&lt;br /&gt;
&lt;br /&gt;
 bootargs=console=ttyO0,115200n8 root=/dev/mmcblk0p2 mem=128M rootwait&lt;br /&gt;
 bootcmd=mmc rescan; fatload mmc 0 0x82000000 uImage; bootm 0x82000000&lt;br /&gt;
 uenvcmd=boot&lt;br /&gt;
&lt;br /&gt;
==[[DHCOM Update Mechanism |How to do Updates]]==&lt;br /&gt;
&lt;br /&gt;
== Display and Hardware settings == &lt;br /&gt;
=== DHCOM settings and Splash bitmap ===&lt;br /&gt;
:The DHCOM settings are used to setup display and special hardware parameters. For detailed description please have a look at [[DHCOM Settings|&#039;&#039;&#039;How to create a settings.bin file&#039;&#039;&#039;]].&lt;br /&gt;
:The DHCOM settings file and the splash bitmap are loaded via the env variables &amp;quot;&#039;&#039;&#039;load_settings_bin&#039;&#039;&#039;&amp;quot; and &amp;quot;&#039;&#039;&#039;load_splash&#039;&#039;&#039;&amp;quot; during startup from boot partition. The default content of these env variables is:&lt;br /&gt;
 settings_bin_file=default_settings.bin&lt;br /&gt;
 splash_file=splash.bmp&lt;br /&gt;
 load_settings_bin=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${settings_bin_file}&lt;br /&gt;
 load_splash=load mmc ${mmcdev}:${mmcpart} ${loadaddr} ${splash_file}&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;Note:&#039;&#039;&#039; The DHCOM display settings can also be stored in external eeprom (address 0x50 / 7bit I2C address) which is connected to DHCOM I2C1 port. If eeprom is available and DISP_ADPT_EEPRM flag is set to 1, the settings from eeprom override the settings from boot partition!&lt;br /&gt;
:Next you can see the settings load order:&lt;br /&gt;
:[[Image:DISP_ADPT_EE_check.png|600px]]&lt;br /&gt;
&lt;br /&gt;
=== Displaying a splash screen with u-boot ===&lt;br /&gt;
&#039;&#039;&#039;Notes:&#039;&#039;&#039;&lt;br /&gt;
* This is possible with u-boot version v1.0.0.6 or newer. &lt;br /&gt;
* Only RGB interface and LVDS (only first channel) is supported.&lt;br /&gt;
* If you use lvds panel the linux patch &amp;lt;code&amp;gt;“imx6 clk: Init LDB (lvds) parent clock“&amp;lt;/code&amp;gt; (19.Jan 2016) is needed, because otherwise the display isn’t working properly in linux. (https://github.com/dh-electronics/linux-imx6-vendor/commit/6f7cabb4d7504c4d1cfe244d460f9891d5a0e411 )&lt;br /&gt;
&#039;&#039;&#039;The process to set it up is the following:&#039;&#039;&#039;&lt;br /&gt;
* Configure your display parameters with DHCOM settings generator ([[DHCOM Settings|&#039;&#039;&#039;How to create a settings.bin file&#039;&#039;&#039;]])&amp;lt;br/&amp;gt;Here you can see an LVDS display example:&amp;lt;br/&amp;gt;[[Image:DHCOM_display_settings_description.png|1000px]]&lt;br /&gt;
* Generate settings bin file with settings generator.&lt;br /&gt;
* Copy settings bin file to boot partition on boot media (eMMC, NAND or microSD card).&lt;br /&gt;
* Generate your splash bitmap (bitmap with 8 bit color depth).&lt;br /&gt;
* Copy also bmp file to boot partition.&lt;br /&gt;
* Start core module and enter u-boot console.&lt;br /&gt;
* Delete env variable “&amp;lt;code&amp;gt;panel&amp;lt;/code&amp;gt;”: &amp;lt;code&amp;gt;env delete panel&amp;lt;/code&amp;gt;&lt;br /&gt;
* Set env variable “&amp;lt;code&amp;gt;settings_bin_file&amp;lt;/code&amp;gt;” with settings bin filename:&amp;lt;br/&amp;gt;Example: &amp;lt;code&amp;gt;env set settings_bin_file 10_LG_7inch_LB070WV8.bin&amp;lt;/code&amp;gt;&lt;br /&gt;
* Set env variable “&amp;lt;code&amp;gt;splash_file&amp;lt;/code&amp;gt;” with bitmap filename:&amp;lt;br/&amp;gt;Example: &amp;lt;code&amp;gt;env set splash_file 800x480_splash_DHCOM_iMX6.bmp&amp;lt;/code&amp;gt;&lt;br /&gt;
* Save u-boot environment to flash: &amp;lt;code&amp;gt;saveenv&amp;lt;/code&amp;gt;&lt;br /&gt;
* Restart the system --&amp;gt; Splash bitmap should now be displayed from the bootloader.&lt;br /&gt;
&lt;br /&gt;
=== Display disabled by default ===&lt;br /&gt;
:With default u-boot configuration u-boot &#039;&#039;&#039;doesn&#039;t&#039;&#039;&#039; initialize the Display interface. This feature can be activated by deleting the &amp;quot;&#039;&#039;&#039;panel&#039;&#039;&#039;&amp;quot; environment variable. But also with deactivated display interface, the bootlaoder reads the display settings and pass the settings to the linux kernel.&lt;br /&gt;
 panel=&amp;quot;no_panel&amp;quot;: Display interface is deactiveted in u-boot and backlight is powered off.&lt;br /&gt;
 panel=&amp;quot;RGB&amp;quot;: Default DH 4,3&amp;quot; display is selected.&lt;br /&gt;
 panel=deleted: u-boot initialize display by DH settings file.&lt;br /&gt;
&lt;br /&gt;
=== Backlight enable GPIO ===&lt;br /&gt;
: If ENV variable &amp;quot;panel&amp;quot; is set to &amp;quot;no_panel&amp;quot; the backlight enable GPIO (defined via DHCOM settings file or eeprom settings) will be disabled from the bootloader during startup.&lt;br /&gt;
: If ENV variable &amp;quot;panel&amp;quot; is deleted, the backlight enable GPIO is activated or deactivated in relation to BL_ON flag of DHCOM settings file.  &lt;br /&gt;
: Note: Supported by U-Boot DH VERSION v0.4.2.5 or higher for iMX6&lt;br /&gt;
&lt;br /&gt;
== Building U-Boot  ==&lt;br /&gt;
=== Prepare Build Environment ===&lt;br /&gt;
* Download and start the Virtual Machine based on Debian 8 (see [[COM_iMX6-D2#Downloads| i.MX6 Downloads]])&lt;br /&gt;
* Install Denx ELDK 5.4 to /opt (Available at [ftp://ftp.denx.de/pub/eldk/5.4/iso/ ftp://ftp.denx.de/pub/eldk/5.4/iso/]: we use eldk-5.4-armv7a.iso)&lt;br /&gt;
=== Get Sources ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%; color: #000000; background: #ffffff;&amp;quot; |&lt;br /&gt;
| &lt;br /&gt;
1. Start a terminal on Linux&amp;lt;br/&amp;gt;&lt;br /&gt;
2. &amp;lt;tt&amp;gt;# &#039;&#039;git clone [https://github.com/dh-electronics/u-boot-imx6qdl.git https://github.com/dh-electronics/u-boot-imx6qdl.git]&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
3. &amp;lt;tt&amp;gt;# &#039;&#039;cd u-boot-imx6qdl&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
4. &amp;lt;tt&amp;gt;# &#039;&#039;git checkout release/v1.0.0.6&#039;&#039; # checkout latest/required branch or tag&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Start Build===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 100%; color: #000000; background: #ffffff;&amp;quot; |&lt;br /&gt;
| &lt;br /&gt;
6. &amp;lt;tt&amp;gt;# &#039;&#039;./uboot_make [q_d dl s s_1g]&#039;&#039;&amp;lt;/tt&amp;gt;  # add argument &#039;dl&#039; to build for Duallite (if unsure contact DH electronics)&amp;lt;br/&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* Your new &amp;lt;tt&amp;gt;u-boot.imx&amp;lt;/tt&amp;gt; file is available in &amp;lt;tt&amp;gt;u-boot-imx6qdl/&amp;lt;/tt&amp;gt;&lt;br /&gt;
* If your build does fail please check content of uboot_make and adjust PATH. &lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Attention: Risk of bricking the Device!!&#039;&#039;&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Ingredients_of_a_System_Image&amp;diff=1728</id>
		<title>Ingredients of a System Image</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Ingredients_of_a_System_Image&amp;diff=1728"/>
		<updated>2017-01-16T10:41:02Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Our DHCOM computer on module units are supplied initially programmed with the bootloader U-Boot. We offer pre-programming with the complete system image (including customer application) for the delivery in the series. The following table indicates which components therefor necessarily have to be already provided by you and which are optional depending on the situation.&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
In the following table lists all ingredients of a Linux system image. For automatic programming images the latter components are required in addition.&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; | style=&amp;quot;width: 98%; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
!style=&amp;quot;background: #076b8d; color: white&amp;quot; |&amp;lt;tt&amp;gt;Image Component &amp;lt;/tt&amp;gt;&lt;br /&gt;
!style=&amp;quot;background: #076b8d; color: white&amp;quot; |&amp;lt;tt&amp;gt;Required &amp;lt;/tt&amp;gt;&lt;br /&gt;
!style=&amp;quot;background: #076b8d; color: white&amp;quot; |&amp;lt;tt&amp;gt;Recommended &amp;lt;/tt&amp;gt;&lt;br /&gt;
!style=&amp;quot;background: #076b8d; color: white&amp;quot; |&amp;lt;tt&amp;gt;Note&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| Bootloader U-Boot&lt;br /&gt;
| No&lt;br /&gt;
| No&lt;br /&gt;
| In the most cases there are no project specific features in the bootloader. If you do not provide a customized bootloader we at DH electronics assume it is ok to use our latest version with the best hardware support.&lt;br /&gt;
|-&lt;br /&gt;
| U-Boot Environment&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| If your project does not need any special variables or kernel arguments we use our latest standard bootloader u-boot environment. A quick change during the development can be missed likely. We recommend to provide your &amp;quot;printenv&amp;quot; output.&lt;br /&gt;
|-&lt;br /&gt;
| Settings&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| For details have a look at [[DHCOM Settings]]&lt;br /&gt;
|-&lt;br /&gt;
| Splash Bitmap&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| uLinuxEnv.txt&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| Please refer to &amp;quot;U-Boot Environment&amp;quot;. uLinuxEnv.txt is a enhancement of the U-Boot Environment. &lt;br /&gt;
|-&lt;br /&gt;
| Linux Kernel&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Linux Devicetree&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| Linux Rootfilesystem&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Your application and services should be installed in the rootfilesystem. Please provide &#039;&#039;&#039;*.tar.gz&#039;&#039;&#039; Archives.&lt;br /&gt;
|-&lt;br /&gt;
!colspan=&amp;quot;3&amp;quot; style=&amp;quot;background: #076b8d; color: white&amp;quot; |&amp;lt;tt&amp;gt;&#039;&#039;&#039;Automatic Prog. Images&#039;&#039;&#039; &amp;lt;/tt&amp;gt;&lt;br /&gt;
!The following components are used to program the image. They are not programmed to the target, they are a tool for programming.&lt;br /&gt;
|-&lt;br /&gt;
| Update Kernel&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| Please visit the download area of the appropriate DHCOM device.&lt;br /&gt;
|-&lt;br /&gt;
| Bitmaps &amp;lt;br \&amp;gt; - progress.bmp&amp;lt;br \&amp;gt; - error.bmp&amp;lt;br \&amp;gt;- done.bmp&lt;br /&gt;
| No&lt;br /&gt;
| Yes&lt;br /&gt;
| This Bitmaps are shown on the display during programming. Not required for headless systems.&lt;br /&gt;
|-&lt;br /&gt;
| DHupdate.ini&lt;br /&gt;
| Yes&lt;br /&gt;
| Yes&lt;br /&gt;
| For further information see [[I.MX6 Update | I.MX6 Update Mechanism]] or [[DHCOM Flash Update | DHCOM Flash Update (i.MX25 und AM35x)]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1727</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1727"/>
		<updated>2016-12-22T13:31:35Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Qt5.7.1 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [https://dl.dropboxusercontent.com/u/19433555/DHCOM/Debian%20Jessie%20v1.2.zip Debian 8 &amp;quot;Jessie&amp;quot; VMware Image] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6 and DHCOM am335x. Please download and install the [https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb &#039;&#039;&#039;qmake-sysroot-mx6-crossarmhf_5.7.1-1.0&#039;&#039;&#039;] or [https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb &#039;&#039;&#039;qmake-sysroot-am33-crossarmhf_5.7.1-1.0&#039;&#039;&#039;] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # for i.MX6: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # for AM335x: &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/am335x/qmake-sysroot-am33-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [https://dl.dropboxusercontent.com/u/19433555/DHCOM/Debian%20Squeeze%20v1.5pw.zip Debian Squeeze VMware Image (PW: dhelectronics)] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Prepare the DHCOM module ===&lt;br /&gt;
* Go to the U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal (during startup)&lt;br /&gt;
* Change to NFS mode&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;setenv bootcmd &#039;run nandbootlinuxnfs&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:(Back to normal with &amp;lt;code&amp;gt;&#039;run nandbootlinux&#039;&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Set the IP address of the nfs-server (normally the IP address of the virtual machine)&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;setenv serverip X.X.X.X&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:The &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; must be substituted by our IP address&lt;br /&gt;
* Save environment&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;saveenv&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1726</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1726"/>
		<updated>2016-12-20T16:15:16Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Qt5 Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [https://dl.dropboxusercontent.com/u/19433555/DHCOM/Debian%20Jessie%20v1.2.zip Debian 8 &amp;quot;Jessie&amp;quot; VMware Image] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6. Please download and install the [https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb &#039;&#039;&#039;qmake-sysroot-mx6-crossarmhf_5.7.1-1.0&#039;&#039;&#039;] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [https://dl.dropboxusercontent.com/u/19433555/DHCOM/Debian%20Squeeze%20v1.5pw.zip Debian Squeeze VMware Image (PW: dhelectronics)] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Prepare the DHCOM module ===&lt;br /&gt;
* Go to the U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal (during startup)&lt;br /&gt;
* Change to NFS mode&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;setenv bootcmd &#039;run nandbootlinuxnfs&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:(Back to normal with &amp;lt;code&amp;gt;&#039;run nandbootlinux&#039;&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Set the IP address of the nfs-server (normally the IP address of the virtual machine)&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;setenv serverip X.X.X.X&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:The &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; must be substituted by our IP address&lt;br /&gt;
* Save environment&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;saveenv&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1725</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1725"/>
		<updated>2016-12-20T16:12:54Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Qt5 Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [https://dl.dropboxusercontent.com/u/19433555/DHCOM/Debian%20Jessie%20v1.2.zip Debian 8 &amp;quot;Jessie&amp;quot; VMware Image] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6. Please download and install the [https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb &#039;&#039;&#039;qmake-sysroot-mx6-crossarmhf_5.7.1-1.0&#039;&#039;&#039;] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [https://dl.dropboxusercontent.com/u/19433555/DHCOM/Debian%20Squeeze%20v1.5pw.zip Debian Squeeze VMware Image (PW: dhelectronics)] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Prepare the DHCOM module ===&lt;br /&gt;
* Go to the U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal (during startup)&lt;br /&gt;
* Change to NFS mode&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;setenv bootcmd &#039;run nandbootlinuxnfs&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:(Back to normal with &amp;lt;code&amp;gt;&#039;run nandbootlinux&#039;&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Set the IP address of the nfs-server (normally the IP address of the virtual machine)&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;setenv serverip X.X.X.X&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:The &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; must be substituted by our IP address&lt;br /&gt;
* Save environment&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;saveenv&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1724</id>
		<title>Template:DebianVM Development</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=1724"/>
		<updated>2016-12-20T16:11:38Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Qt5 Development */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
For cross developing of applications we provide virtual machines with preinstalled toolchains. Choose the virtual machine which fits to your DHCOM target (Debian 8 on target -&amp;gt; Debian 8 virtual machine). Debian 8 does include support for architecture armhf and armel (Debian 6 only armel). &#039;&#039;&#039;By default Debian 8 is configured for armhf.&#039;&#039;&#039;&lt;br /&gt;
The sections &#039;&#039;&#039;Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more&#039;&#039;&#039; and  &#039;&#039;&#039;Booting via NFS&#039;&#039;&#039; apply for Debian 6 and Debian 8.&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [https://dl.dropboxusercontent.com/u/19433555/DHCOM/Debian%20Jessie%20v1.2.zip Debian 8 &amp;quot;Jessie&amp;quot; VMware Image] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.2.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Qt Creator + Support for imx6 modules + Demos&amp;lt;br/&amp;gt;- Update elbe to v1.0&amp;lt;br/&amp;gt;- Add some tools / editors&lt;br /&gt;
|- &lt;br /&gt;
| v1.1 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.1.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Compatibility VMware player 6.0&lt;br /&gt;
|- &lt;br /&gt;
| v1.0 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.0.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - New Debian 8 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
==== Debian Multiarch Cross Toolchain ====&lt;br /&gt;
Both armhf and armel Cross Toolchains are preinstalled. They should be used for cross development of native Linux applications. They are downloaded and installed with the Debian Package Manager.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
* armel: &#039;&#039;&#039;arm-linux-gnueabi- &#039;&#039;&#039;&lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/usr/bin/&amp;lt;/tt&amp;gt;. Please have a look at the preconfigured Examples for cross development using the Eclipse IDE.&lt;br /&gt;
&lt;br /&gt;
==== Linaro GCC 4.9 armhf ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv7 DHCOM devices.&lt;br /&gt;
* armhf: &#039;&#039;&#039;arm-linux-gnueabihf- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
==== CodeSourcery GCC 4.5 armel ====&lt;br /&gt;
Used for building the Linux Kernel for our ARMv5 DHCOM devices.&lt;br /&gt;
* armel: &#039;&#039;&#039;arm-none-linux-gnueabi- &#039;&#039;&#039; &lt;br /&gt;
Install directory is &amp;lt;tt&amp;gt;/opt/CodeSourcery-2011.03-41/bin/&amp;lt;/tt&amp;gt;. Please refere the section &amp;quot;Linux Kernel&amp;quot; for the matching DHCOM device.&lt;br /&gt;
&lt;br /&gt;
=== Qt5 Development ===&lt;br /&gt;
&lt;br /&gt;
==== Qt5.7.1 ====&lt;br /&gt;
We support the latest Qt5.7.1 on our DHCOM i.MX6. Please download and install the [https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb &#039;&#039;&#039;qmake-sysroot-mx6-crossarmhf_5.7.1-1.0&#039;&#039;&#039;] package to the DebianVM:&lt;br /&gt;
# open a terminal&lt;br /&gt;
# # &amp;lt;tt&amp;gt;wget https://dl.dropboxusercontent.com/u/19433555/DHCOM/imx6/qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# install the package&lt;br /&gt;
# # &amp;lt;tt&amp;gt;sudo dpkg -i qmake-sysroot-mx6-crossarmhf_5.7.1-1.0_amd64.deb&amp;lt;/tt&amp;gt;&lt;br /&gt;
# now the sysroot and qmake is ready to use&lt;br /&gt;
# path to qmake is &amp;lt;tt&amp;gt;/work/qt5_mx6_armhf/sysroot/usr/local/qt5.7.1/bin/qmake&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Qt5.5.1 prebuilt and preinstalled ====&lt;br /&gt;
We provide the prebuilt Qt5.5.1 libraries including WebEngine (only QtQuick) and WebKit in &amp;lt;tt&amp;gt;/work/qt5/sysroot/&amp;lt;/tt&amp;gt;. This directory contains a Debian 8 based rootfilesystem which is prepared for DHCOM i.MX6, the matching sysroot (*-dev packages), and the Qt5.5.1 libraries installed.&lt;br /&gt;
==== Build a Qt5 Application via console ====&lt;br /&gt;
# open a terminal&lt;br /&gt;
# navigate to your Qt5 sources&lt;br /&gt;
# # &amp;lt;tt&amp;gt;/work/qt5/sysroot/usr/local/qt5.5.1/bin/qmake your_own_app.pro&amp;lt;/tt&amp;gt;&lt;br /&gt;
# # &amp;lt;tt&amp;gt;make&amp;lt;/tt&amp;gt;&lt;br /&gt;
==== Qt Creator ====&lt;br /&gt;
# Start Qt Creator IDE&lt;br /&gt;
# Open demo project TwoLED: &amp;lt;tt&amp;gt;/work/qt5_Demos/TwoLED&amp;lt;/tt&amp;gt;&lt;br /&gt;
# There you can find the configurations for your own project.&lt;br /&gt;
&lt;br /&gt;
== Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_player/6_0 Get the VMware player]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [https://dl.dropboxusercontent.com/u/19433555/DHCOM/Debian%20Squeeze%20v1.5pw.zip Debian Squeeze VMware Image (PW: dhelectronics)] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;padding:5px;&amp;quot;&lt;br /&gt;
|- &lt;br /&gt;
! Version: !! File: !! Changes: &lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.5 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Squeeze v1.5pw.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Update VMware Tools&amp;lt;br\&amp;gt;- DH UBI-Tools&amp;lt;br\&amp;gt;- Language: English&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.4 || Debian Squeeze v1.4pw.zip || style=&amp;quot;text-align: left&amp;quot; | - ELBE v0.3.1&amp;lt;br\&amp;gt;- ELDK 4.2&amp;lt;br\&amp;gt;- Qt Creator 2.6.1 + Qt target libs 4.7.2&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.3 || Debian Squeeze v1.3.zipx || style=&amp;quot;text-align: left&amp;quot; | - Mono 2.10&amp;lt;br\&amp;gt;- mtd-utils&amp;lt;br\&amp;gt;- System updates&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.2 || Debian Squeeze v1.2.zipx || style=&amp;quot;text-align: left&amp;quot; | - Emdebian Toolchain gcc 4.3 / g++ 4.3 (&amp;lt;code&amp;gt;arm-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- TortoiseHg + TortoiseHg for Nautilus&amp;lt;br\&amp;gt;- Add Plugin &amp;quot;REST Client&amp;quot; in Iceweasel&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.1 || Debian Squeeze v1.1.zipx || style=&amp;quot;text-align: left&amp;quot; | - Update Eclipse Indigo with CDT 8.0&amp;lt;br\&amp;gt;- Add demo project &amp;quot;crosshelloworld&amp;quot;&lt;br /&gt;
|- style=&amp;quot;text-align: left&amp;quot; valign=&amp;quot;top&amp;quot;&lt;br /&gt;
| v1.0 || Debian Squeeze.zipx || style=&amp;quot;text-align: left&amp;quot; | - First Release&amp;lt;br\&amp;gt;- CodeSourcery Toolchain (&amp;lt;code&amp;gt;arm-none-linux-gnueabi-...&amp;lt;/code&amp;gt;)&amp;lt;br\&amp;gt;- Eclipse Helios &amp;amp; Indigo&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Setting up a Eclipse Cross Executable Project: ===&lt;br /&gt;
* Use Eclipse Indigo (version 3.7.1) for your project.&lt;br /&gt;
* Create a new C++ Project and choose as Executable Project type &#039;&#039;&#039;Cross-Compile Project&#039;&#039;&#039; and as Toolchains &#039;&#039;&#039;Cross GCC&#039;&#039;&#039;&lt;br /&gt;
* Click the Button &amp;quot;Next&amp;quot; and specify under &#039;&#039;&#039;Tool command path&#039;&#039;&#039; the Toolchain path.&lt;br /&gt;
:*CodeSourcery:&lt;br /&gt;
::Folder &amp;quot;&#039;&#039;&#039;&amp;lt;code&amp;gt;/opt/CodeSourcery/Sourcery_G++_Lite/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-none-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
:*Emdebian Toolchain:&lt;br /&gt;
::Folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/usr/bin&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
::Prefix type &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;arm-linux-gnueabi-&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ==&lt;br /&gt;
* The following code samples are designed to get you started quickly with the device interfaces to SPI, I2C, GPIOs and more in Linux userspace applications.&lt;br /&gt;
* Within Eclipse you can Import the provided projects:&lt;br /&gt;
:# Execute &#039;&#039;&#039;&amp;quot;&amp;gt;File&amp;gt;Import ...&amp;quot;&#039;&#039;&#039;&lt;br /&gt;
:# Navigate to &#039;&#039;&#039;&amp;quot;&amp;gt;General&amp;gt;Existing Projects into Workspace&amp;quot;&#039;&#039;&#039; within the import dialog&lt;br /&gt;
:# Follow the dialog until you have finished.&lt;br /&gt;
&lt;br /&gt;
[[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs and more ]] &lt;br /&gt;
&lt;br /&gt;
Included Demos:&lt;br /&gt;
* SPI&lt;br /&gt;
* I2C&lt;br /&gt;
* GPIO&lt;br /&gt;
* RTC&lt;br /&gt;
* UART&lt;br /&gt;
* Watchdog&lt;br /&gt;
* ADC (only for i.MX25)&lt;br /&gt;
&lt;br /&gt;
[[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;br /&gt;
&lt;br /&gt;
* For further documentation have a look at [http://www.kernel.org/doc/Documentation/ http://www.kernel.org/doc/Documentation/].&lt;br /&gt;
&lt;br /&gt;
== Booting via NFS ==&lt;br /&gt;
=== Prepare the virtual machine ===&lt;br /&gt;
* Place the root file system in the folder &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/work/nfsroot&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot;&lt;br /&gt;
* Check whether the line below is part of the &amp;quot;&amp;lt;code&amp;gt;&#039;&#039;&#039;/etc/exports&#039;&#039;&#039;&amp;lt;/code&amp;gt;&amp;quot; file&lt;br /&gt;
: &amp;lt;code&amp;gt;&#039;&#039;&#039;/tftpboot/nfsroot X.X.X.0/255.255.255.0(rw,no_root_squash,no_subtree_check,insecure)&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
: The &amp;lt;code&amp;gt;&#039;&#039;&#039;X&#039;&#039;&#039;&amp;lt;/code&amp;gt; must be substituted by our network settings&lt;br /&gt;
* Restart the nfs-server by using this commando&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;/etc/init.d/nfs-kernel-server restart&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Prepare the DHCOM module ===&lt;br /&gt;
* Go to the U-Boot console by pressing &#039;&#039;&#039;DEL/BACKSPACE&#039;&#039;&#039; on a RS232 terminal (during startup)&lt;br /&gt;
* Change to NFS mode&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;setenv bootcmd &#039;run nandbootlinuxnfs&#039;&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:(Back to normal with &amp;lt;code&amp;gt;&#039;run nandbootlinux&#039;&amp;lt;/code&amp;gt;)&lt;br /&gt;
* Set the IP address of the nfs-server (normally the IP address of the virtual machine)&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;setenv serverip X.X.X.X&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:The &amp;lt;code&amp;gt;X&amp;lt;/code&amp;gt; must be substituted by our IP address&lt;br /&gt;
* Save environment&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;saveenv&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:DHCOM-linux-am3517-3.2.81_BUILD.zip&amp;diff=1713</id>
		<title>File:DHCOM-linux-am3517-3.2.81 BUILD.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:DHCOM-linux-am3517-3.2.81_BUILD.zip&amp;diff=1713"/>
		<updated>2016-10-07T12:58:58Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: Linux Kernel für DHCOM AM335x based on 3.2.81

git: 528c8761fef8fffba9607b665a53bb0669ab43a7

3.2.81-dhcom-g528c876&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux Kernel für DHCOM AM335x based on 3.2.81&lt;br /&gt;
&lt;br /&gt;
git: 528c8761fef8fffba9607b665a53bb0669ab43a7&lt;br /&gt;
&lt;br /&gt;
3.2.81-dhcom-g528c876&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_AM35-D2&amp;diff=1712</id>
		<title>DHCOM AM35-D2</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_AM35-D2&amp;diff=1712"/>
		<updated>2016-10-07T12:49:56Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Linux Kernel Binary and Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|__TOC__&lt;br /&gt;
|[[Image:COMAM35.png|600px|COM AM35-D2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Performance &amp;amp; Features ==&lt;br /&gt;
Have a look at this youtube video to get an overview of the performace of the am3517 with the NEON coprocessor and the SGX 530 Graphics Processing Unit (GPU) included.&lt;br /&gt;
:* [http://www.youtube.com/watch?v=5prkZHkeDFE Sitara AM3517 Processor Demonstration]&lt;br /&gt;
&lt;br /&gt;
:* The NEON coprocessor implements the Advanced SIMD media processing architecture. Single instruction, multiple data (SIMD), is a class of parallel computers with multiple processing elements that perform the same operation on multiple data simultaneously. E. g. NEON is used for video encoding.&lt;br /&gt;
:* The SGX 530 Graphics Processing Unit includes the Universal Scalable Shader Engine (USSE™), with a feature set that exceeds the requirements of OpenGL 2.0 and Microsoft Shader Model 3, enabling 2D, 3D and general purpose (GP-GPU) processing in a single core. This GPU is not included in the AM3505.&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[COM AM35 Hardware|Hardware]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | style=&amp;quot;width: 100%; color: #000000; background: #f3f3f3;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* Cortex-A8 AM3505/17 @ 600 MHz&lt;br /&gt;
* AM3517 inclusive 3d acceleration / AM3505 without 3d acceleration&lt;br /&gt;
* 0 - 2048 MB SLC-NAND flash&lt;br /&gt;
* 64 - 512 MB DDR2-333&lt;br /&gt;
* MicroSD socket onboard&lt;br /&gt;
* Bus interface: 16 addresslines and 16 datalines&lt;br /&gt;
* 4-bit SD/MMC card interface&lt;br /&gt;
* LC-Displaycontroller, RGB, 24 Bit colour depth, 1400 x 1050 Pixel&lt;br /&gt;
* Touchcontroller onboard, 4-wire resistive&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* Ethernet 10/100 MBit&lt;br /&gt;
* 2x USB Host high-speed, USB OTG high-speed&lt;br /&gt;
* Serial Interfaces: 3x UART, 2x I²C, 2x SPI&lt;br /&gt;
* CAN Interface: 1 Mbit/s&lt;br /&gt;
* I²S Audiocodec&lt;br /&gt;
* Real-time Clock RTC onboard&lt;br /&gt;
* Temperature range: Operating -40 to +85 °C&lt;br /&gt;
* SODIMM-200 Connector DHCOM Standard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software Support ==&lt;br /&gt;
*[[COM AM35 Bootloader U-Boot|Bootloader U-Boot]]&lt;br /&gt;
*[[DHCOM Flash Update|DHCOM Update Mechanism for AM35x]]&lt;br /&gt;
*[[COM AM35 WinCE|WinCE]]&lt;br /&gt;
*[[COM AM35 Linux|Linux]]&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
==== X-Loader Binary and Source ====&lt;br /&gt;
* [[media:X-load_am3517_binary.zip|Download the latest X-Load binary (v1.1.0.0)]] &lt;br /&gt;
* [[media:Src_x-load-1.46-am3517.zip|Download the latest X-Load Source (v1.1.0.0)]] &lt;br /&gt;
==== U-Boot Binary and Source ====&lt;br /&gt;
* [[media:U-boot_am3517_binary_V1.2.0.5.zip|Download the latest U-Boot binary (v1.2.0.5)]]&lt;br /&gt;
* [[media:Src_u-boot-2009.11-am3517_V1.2.0.5.zip|Download the latest U-Boot Source (v1.2.0.5)]]&lt;br /&gt;
==== Settings Files ====&lt;br /&gt;
* [[media:00_PrimeView_7inch_PM070WT3.zip|Settings PrimeView 7&amp;quot; Display (PM070WT3) ]]&lt;br /&gt;
* [[media:01_DataImage_4_3inch_FG040360DSSWBG03.zip|Settings DataImage 4,3&amp;quot; Display (FG040360DSSWBG03) ]]&lt;br /&gt;
==== DHupdate.ini example ====&lt;br /&gt;
* [[media:DHupdate_example.zip|DHupdate.ini file example ]]&lt;br /&gt;
==== Update Bitmap example files ====&lt;br /&gt;
* [[media:Update_Bitmaps_AM35x-Design_480x272.zip|Update Bitmap example files for 480x272 display]]&lt;br /&gt;
* [[media:Update_Bitmaps_AM35x-Design_800x480.zip|Update Bitmap example files for 800x480 display]]&lt;br /&gt;
==== Splash Image examples for AM35x ====&lt;br /&gt;
* [[media:DH_AM35x_SplashImages.zip|Example Splash Bitmaps for AM35x for different display resolutions (480x272, 800x480, 1024x768)]]&lt;br /&gt;
==== Root Filesystem Update Kernel ====&lt;br /&gt;
* [[media:AM35x_RootfsUpdateKernel.zip|Update Kernel (dh-version 1v7): A tiny linux kernel used to update the nand-flash root filesystem]]&lt;br /&gt;
==== Linux Kernel Binary and Sources ====&lt;br /&gt;
* [https://github.com/dh-electronics/linux-am35x Linux Kernel based on 3.2.xx mainline available on GitHub]&lt;br /&gt;
* [[media:DHCOM-linux-am3517_BUILD.zip |Current built of the 3.2.12 DHCOM AM35 linux kernel (2014-04-23)]]&lt;br /&gt;
* [[media:DHCOM-linux-am3517-3.2.81_BUILD.zip |Current built of the 3.2.81 DHCOM AM35 linux kernel (2016-10-07)]]&lt;br /&gt;
&lt;br /&gt;
==== Debian Rootfilesystem ====&lt;br /&gt;
* [https://dl.dropboxusercontent.com/u/19433555/DHCOM/am35x/2015-06-19_developer-rootfs_am3517.tar.gz Debian rootfilesystem, based on Debian 6 &amp;quot;Squeeze&amp;quot; incl. SGX kernel modules (3D acceleration)]&lt;br /&gt;
:&#039;&#039;&#039;latest changes: 2014-10-30 -&amp;gt; 2015-06-09&#039;&#039;&#039;&lt;br /&gt;
:: - Update dh gpio utils to v1.6&lt;br /&gt;
:: - Stop display blanking&lt;br /&gt;
:&#039;&#039;&#039;latest changes: 2014-08-22 -&amp;gt; 2014-10-30&#039;&#039;&#039;&lt;br /&gt;
:: - Fixed shellshock (CVE-2014-6271)&lt;br /&gt;
&lt;br /&gt;
==== Virtual Machine for Application Development ====&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ====&lt;br /&gt;
* [[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs, RTC, UART, Watchdog, and more ]] &lt;br /&gt;
* [[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_iMX25-D2&amp;diff=1711</id>
		<title>DHCOM iMX25-D2</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_iMX25-D2&amp;diff=1711"/>
		<updated>2016-10-07T12:36:20Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Linux Kernel Binary and Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|__TOC__&lt;br /&gt;
|[[Image:COMiMX25.png|600px|COM iMX25-D2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[COM iMX25 Hardware|Hardware]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | style=&amp;quot;width: 100%; color: #000000; background: #f3f3f3;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* Freescale ARM9 i.MX25 @ 400 MHz&lt;br /&gt;
* 0 - 2048 MB NAND-FLASH&lt;br /&gt;
* 64 - 128 MB DDR2-266&lt;br /&gt;
* MicroSD Sockel onboard&lt;br /&gt;
* SD/MMC card interface &lt;br /&gt;
* LC-Displaycontroller, 16 Bit colour depth, 800 x 600 Pixel&lt;br /&gt;
* Touchcontroller onboard, 4-wire resistive&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* Ethernet 10/100 MBit&lt;br /&gt;
* 1x USB Host full-speed, USB OTG high-speed&lt;br /&gt;
* Serial Interfaces: 3x UART, 2x I²C, 2x SPI&lt;br /&gt;
* CAN Interface: 1 Mbit/s&lt;br /&gt;
* Real-time Clock RTC onboard&lt;br /&gt;
* Temperature range: Operating -40 to +85 °C&lt;br /&gt;
* SODIMM-200 Connector DHCOM Standard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software Support ==&lt;br /&gt;
*[[COM iMX25 Bootloader U-Boot|Bootloader U-Boot]]&lt;br /&gt;
*[[DHCOM Flash Update|DHCOM Update Mechanism for i.MX25]]&lt;br /&gt;
*[[COM iMX25 WinCE|WinCE]]&lt;br /&gt;
*[[COM iMX25 Linux|Linux]]&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
==== Bootloader Binary ====&lt;br /&gt;
* [[media:U-boot_(V1.18.0.5).zip|Download U-Boot binary (v1.18.0.5)]] (for updating, please have a look at FAQ list)&lt;br /&gt;
==== Settings Files ====&lt;br /&gt;
* [[media:00_PrimeView_7inch_PM070WT3.zip|Settings PrimeView 7&amp;quot; Display (PM070WT3) (for U-Boot Version v1.11.2.0 or higher)]]&lt;br /&gt;
* [[media:01_DataImage_4_3inch_FG040360DSSWBG03.zip|Settings DataImage 4,3&amp;quot; Display (FG040360DSSWBG03) (for U-Boot Version v1.11.2.0 or higher)]]&lt;br /&gt;
==== DHupdate.ini example ====&lt;br /&gt;
* [[media:DHupdate_example.zip|DHupdate.ini file example (for U-Boot Version v1.10.0.0 or higher)]]&lt;br /&gt;
==== Update Bitmap example files ====&lt;br /&gt;
* [[media:Update_Bitmaps_800x480.zip|Update Bitmap example files for 800x480 display]]&lt;br /&gt;
==== Splash Image examples ====&lt;br /&gt;
* [[media:DH_480x272.zip|Example Splash Bitmap for 480x272 Display]]&lt;br /&gt;
* [[media:DH_800x480.zip|Example Splash Bitmap for 800x480 Display]]&lt;br /&gt;
==== Root Filesystem Update Kernel ====&lt;br /&gt;
* [[media:iMX25_RootfsUpdateKernel.zip|Update Kernel (dh-version 1v5): A tiny linux kernel used to update the nand-flash root filesystem]]&lt;br /&gt;
==== Linux Kernel Binary and Sources ====&lt;br /&gt;
* [https://github.com/dh-electronics/linux-imx25 Linux Kernel based on 3.2.xx mainline available on GitHub]&lt;br /&gt;
* [[media:DHCOM-linux-imx-3.2.9_BUILD.zip|Current built of the 3.2.9 DHCOM iMX25 linux kernel (2016-02-24)]]&lt;br /&gt;
* [[media:DHCOM-linux-imx-3.2.81_BUILD.zip|Current built of the 3.2.81 DHCOM iMX25 linux kernel (2016-10-07)]]&lt;br /&gt;
&lt;br /&gt;
==== Debian Rootfilesystem ====&lt;br /&gt;
* [https://dl.dropboxusercontent.com/u/19433555/DHCOM/rootFS_DN_20110805et4_HL7%20%2830.10.2014%29.tar.bz2 Current Debian root file system, based on Debian 6 &amp;quot;Squeeze&amp;quot; (2014-10-30)]&amp;lt;br/&amp;gt;Remark: Shellshock (CVE-2014-6271) is already fixed.&lt;br /&gt;
&lt;br /&gt;
==== Virtual Machine for Application Development ====&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ====&lt;br /&gt;
* [[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs, RTC, UART, Watchdog, and more ]] &lt;br /&gt;
* [[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:DHCOM-linux-imx-3.2.81_BUILD.zip&amp;diff=1710</id>
		<title>File:DHCOM-linux-imx-3.2.81 BUILD.zip</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:DHCOM-linux-imx-3.2.81_BUILD.zip&amp;diff=1710"/>
		<updated>2016-10-07T12:34:51Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: Linux Kernel based on 3.2.81

git: 416610f78777a047de4aa1881fc35bb4c152c327

2016-10-07&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linux Kernel based on 3.2.81&lt;br /&gt;
&lt;br /&gt;
git: 416610f78777a047de4aa1881fc35bb4c152c327&lt;br /&gt;
&lt;br /&gt;
2016-10-07&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_iMX25-D2&amp;diff=1709</id>
		<title>DHCOM iMX25-D2</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_iMX25-D2&amp;diff=1709"/>
		<updated>2016-10-07T12:32:13Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Linux Kernel Binary and Sources */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|__TOC__&lt;br /&gt;
|[[Image:COMiMX25.png|600px|COM iMX25-D2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Hardware ==&lt;br /&gt;
* [[COM iMX25 Hardware|Hardware]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | style=&amp;quot;width: 100%; color: #000000; background: #f3f3f3;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
| style=&amp;quot;width: 50%; background: #076b8d; border: 0pt;&amp;quot; | &lt;br /&gt;
|-&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* Freescale ARM9 i.MX25 @ 400 MHz&lt;br /&gt;
* 0 - 2048 MB NAND-FLASH&lt;br /&gt;
* 64 - 128 MB DDR2-266&lt;br /&gt;
* MicroSD Sockel onboard&lt;br /&gt;
* SD/MMC card interface &lt;br /&gt;
* LC-Displaycontroller, 16 Bit colour depth, 800 x 600 Pixel&lt;br /&gt;
* Touchcontroller onboard, 4-wire resistive&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* Ethernet 10/100 MBit&lt;br /&gt;
* 1x USB Host full-speed, USB OTG high-speed&lt;br /&gt;
* Serial Interfaces: 3x UART, 2x I²C, 2x SPI&lt;br /&gt;
* CAN Interface: 1 Mbit/s&lt;br /&gt;
* Real-time Clock RTC onboard&lt;br /&gt;
* Temperature range: Operating -40 to +85 °C&lt;br /&gt;
* SODIMM-200 Connector DHCOM Standard&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Software Support ==&lt;br /&gt;
*[[COM iMX25 Bootloader U-Boot|Bootloader U-Boot]]&lt;br /&gt;
*[[DHCOM Flash Update|DHCOM Update Mechanism for i.MX25]]&lt;br /&gt;
*[[COM iMX25 WinCE|WinCE]]&lt;br /&gt;
*[[COM iMX25 Linux|Linux]]&lt;br /&gt;
&lt;br /&gt;
== Downloads ==&lt;br /&gt;
==== Bootloader Binary ====&lt;br /&gt;
* [[media:U-boot_(V1.18.0.5).zip|Download U-Boot binary (v1.18.0.5)]] (for updating, please have a look at FAQ list)&lt;br /&gt;
==== Settings Files ====&lt;br /&gt;
* [[media:00_PrimeView_7inch_PM070WT3.zip|Settings PrimeView 7&amp;quot; Display (PM070WT3) (for U-Boot Version v1.11.2.0 or higher)]]&lt;br /&gt;
* [[media:01_DataImage_4_3inch_FG040360DSSWBG03.zip|Settings DataImage 4,3&amp;quot; Display (FG040360DSSWBG03) (for U-Boot Version v1.11.2.0 or higher)]]&lt;br /&gt;
==== DHupdate.ini example ====&lt;br /&gt;
* [[media:DHupdate_example.zip|DHupdate.ini file example (for U-Boot Version v1.10.0.0 or higher)]]&lt;br /&gt;
==== Update Bitmap example files ====&lt;br /&gt;
* [[media:Update_Bitmaps_800x480.zip|Update Bitmap example files for 800x480 display]]&lt;br /&gt;
==== Splash Image examples ====&lt;br /&gt;
* [[media:DH_480x272.zip|Example Splash Bitmap for 480x272 Display]]&lt;br /&gt;
* [[media:DH_800x480.zip|Example Splash Bitmap for 800x480 Display]]&lt;br /&gt;
==== Root Filesystem Update Kernel ====&lt;br /&gt;
* [[media:iMX25_RootfsUpdateKernel.zip|Update Kernel (dh-version 1v5): A tiny linux kernel used to update the nand-flash root filesystem]]&lt;br /&gt;
==== Linux Kernel Binary and Sources ====&lt;br /&gt;
* [https://github.com/dh-electronics/linux-imx25 Linux Kernel based on 3.2.9 mainline available on GitHub]&lt;br /&gt;
* [[media:DHCOM-linux-imx-3.2.9_BUILD.zip|Current built of the 3.2.9 DHCOM iMX25 linux kernel (2016-02-24)]]&lt;br /&gt;
* [[media:DHCOM-linux-imx-3.2.81_BUILD.zip|Current built of the 3.2.81 DHCOM iMX25 linux kernel (2016-10-07)]]&lt;br /&gt;
&lt;br /&gt;
==== Debian Rootfilesystem ====&lt;br /&gt;
* [https://dl.dropboxusercontent.com/u/19433555/DHCOM/rootFS_DN_20110805et4_HL7%20%2830.10.2014%29.tar.bz2 Current Debian root file system, based on Debian 6 &amp;quot;Squeeze&amp;quot; (2014-10-30)]&amp;lt;br/&amp;gt;Remark: Shellshock (CVE-2014-6271) is already fixed.&lt;br /&gt;
&lt;br /&gt;
==== Virtual Machine for Application Development ====&lt;br /&gt;
* [[media:Debian Squeeze v1.5pw.zip|Debian 6 &amp;quot;Squeeze&amp;quot; VMware Image (PW: dhelectronics)]] &amp;lt;br/&amp;gt;Password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==== Code Examples for Userspace-Applications to Access SPI, I2C, GPIOs, and more ====&lt;br /&gt;
* [[media:Demos_SPI_I2C_GPIO.zip|Download Code Examples SPI, I2C, GPIOs, RTC, UART, Watchdog, and more ]] &lt;br /&gt;
* [[media:DHCOM_HAL.zip|Download C++ HAL class library for SPI, I2C, GPIO, UART and physical address space access]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=COM_AM35_Linux&amp;diff=1708</id>
		<title>COM AM35 Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=COM_AM35_Linux&amp;diff=1708"/>
		<updated>2016-10-07T12:16:24Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Building your own Kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Linux virtual machine for development ==&lt;br /&gt;
* Please have a look at: &#039;&#039;&#039;[[Virtual Machine for Application Development]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Building your own Kernel ==&lt;br /&gt;
&lt;br /&gt;
==== Sources for the AM35x Linux Kernel v3.2.12 / v3.2.81 ====&lt;br /&gt;
* The latest Linux Kernel source code is available on GitHub: [https://github.com/dh-electronics/linux-am35x https://github.com/dh-electronics/linux-am35x]&lt;br /&gt;
* We recommend to use on new projects the latest v3.2.81 Linux Kernel&lt;br /&gt;
&lt;br /&gt;
==== How to build a kernel ====&lt;br /&gt;
Get sources from Github and build the linux kernel using 5 threads and a build directory&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|1. Start a terminal on Linux&lt;br /&gt;
|-&lt;br /&gt;
|2. &amp;lt;tt&amp;gt;# &#039;&#039;git clone [https://github.com/dh-electronics/linux-am35x.git https://github.com/dh-electronics/linux-am35x.git]&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3. &amp;lt;tt&amp;gt;# &#039;&#039;mkdir build&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. &amp;lt;tt&amp;gt;# &#039;&#039;cd linux-am35x&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5. &amp;lt;tt&amp;gt;# &#039;&#039;git checkout BRANCH&#039;&#039;&amp;lt;br/&amp;gt;(BRANCH=dev/3.2.12_dhcom or BRANCH=dev/3.2.81_dhcom)&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|6. &amp;lt;tt&amp;gt;# &#039;&#039;ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make O=../build/ dhcm3517_defconfig&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|7. &amp;lt;tt&amp;gt;# &#039;&#039;ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make -j5 O=../build/ uImage&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* Your new &amp;lt;tt&amp;gt;uImage&amp;lt;/tt&amp;gt; file is available in &amp;lt;tt&amp;gt;../build/arch/arm/boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Remark:&#039;&#039;&#039; &lt;br /&gt;
* On linux-am35x.git we use the git branch &amp;quot;master&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 100%; color: #000000; border-spacing: 2px; border: 1px solid darkgray; background: lightgrey;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 100%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== &#039;&#039;Sources older than April 2014&#039;&#039; ===&lt;br /&gt;
==== Sources for the AM35 Kernel based on 3.2.12 Mainline ====&lt;br /&gt;
&lt;br /&gt;
:* [http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.12.tar.bz2 Kernel version: 3.2.12 from www.kernel.org]&lt;br /&gt;
&lt;br /&gt;
:* [[media:DHCOM-linux-am3517.patch.zip‎|Patch for DHCOM AM35 Linux (2014-04-23) [includes RT-Preemptiv patch]]]&lt;br /&gt;
&lt;br /&gt;
:* [[media:DHCOM-linux-am3517.config.zip|Kernel configuration for DHCOM AM35 Linux (2014-04-23)]]&lt;br /&gt;
&lt;br /&gt;
:* [[media:DHCOM-linux-am3517_BUILD.zip |Current built of the 3.2.12 DHCOM AM35 linux kernel (2014-04-23)]]&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;latest changes: 2013-12-05 -&amp;gt; 2014-04-23&#039;&#039;&#039;&lt;br /&gt;
::: - Add DH touch support&lt;br /&gt;
::: - Add Boardfile to use LCD-Interface with GPIO-functionality (DHpicoITX)&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;latest changes: 2013-06-17 -&amp;gt; 2013-12-05&#039;&#039;&#039;&lt;br /&gt;
::: - USB-OTG: Fixed mass storage operation (depends on latest kernel configuration, too)&lt;br /&gt;
::: - BUG-Fix: Set rtc default values to a valid status&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;latest changes: 2013-05-22 -&amp;gt; 2013-06-17&#039;&#039;&#039;&lt;br /&gt;
::: - (Minor) Customizations for 1 GByte Spansion NAND-Flash&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;latest changes: 2013-04-04 -&amp;gt; 2013-05-22&#039;&#039;&#039;&lt;br /&gt;
::: - (Minor) BUG-Fix: Initialization of DHCOM GPIO_E pad fixed&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;latest changes: 2012-12-14 -&amp;gt; 2013-04-04&#039;&#039;&#039;&lt;br /&gt;
::: - SPI BUG-Fix: Disabled &amp;quot;Turbo-Mode&amp;quot; to avoid wrong additional byte-reads (If used: Kernel-Update recommended)&lt;br /&gt;
::: - I2C BUG-Fix: AM35x Errata 1.1.26 (If used: Kernel-Update recommended)&lt;br /&gt;
::: - enabled ETH_VIO_GPIO (necessary for DHCOM pico-ITX) to supply ethernet transformer&lt;br /&gt;
::: - FF UART support added &lt;br /&gt;
::: - DHCOM (CAM) GPIO Padconfigurations changed to GPIO-Mode on default.  &lt;br /&gt;
::: - removed USB-OTG-POWER-GPIO (Use kernel-argument [u-boot env bootargs] &#039;dheva01_version=200&#039; to activate it again) &lt;br /&gt;
::: - backlight PWM default is now 205 (80%)&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;2012-11-08 -&amp;gt; 2012-12-14&#039;&#039;&#039;&lt;br /&gt;
::: - /dev/spidev1.1 is now /dev/spidev1.0&lt;br /&gt;
::: - watchdog driver support for magic close added&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;2012-08-29 -&amp;gt; 2012-11-08&#039;&#039;&#039;&lt;br /&gt;
::: - added audio support&lt;br /&gt;
::: - changed partitionsize of linux-kernel&lt;br /&gt;
&lt;br /&gt;
==== How to build a kernel ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|1. Start a terminal on Linux&lt;br /&gt;
|-&lt;br /&gt;
|2. Copy the above mentioned source files (linux-3.x.y.tar.bz2, .config, *.patch) into our &amp;lt;code&amp;gt;work_path&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3. &amp;lt;tt&amp;gt;# &#039;&#039;cd work_path&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. &amp;lt;tt&amp;gt;# &#039;&#039;tar xfjv linux-3.2.12.tar.bz2&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5. &amp;lt;tt&amp;gt;# &#039;&#039;cd work_path/linux-3.2.12&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|6. &amp;lt;tt&amp;gt;# &#039;&#039;patch -p1 &amp;lt; ../dh-linux-am35x_xxxxxxxx.patch&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|7. &amp;lt;tt&amp;gt;# &#039;&#039;cp ../dh-linux-am35x_xxxxxxxx.config .config&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|8. &amp;lt;tt&amp;gt;# &#039;&#039;ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make uImage&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:* Your new &amp;lt;tt&amp;gt;uImage&amp;lt;/tt&amp;gt; file is available in &amp;lt;tt&amp;gt;work_path/linux-3.2.12/arch/arm/boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Update the kernel with U-Boot ==&lt;br /&gt;
&lt;br /&gt;
:The linux kernel will be updated by the [[COM_AM35_Bootloader_U-Boot#Update|U-Boot flash update]].&lt;br /&gt;
&lt;br /&gt;
:* [[media:DHCOM-linux-am3517_BUILD.zip |Binary Image DHCOM AM35 linux-3.2.12-rt20 kernel (details see above)]]&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|1. Copy the &amp;lt;code&amp;gt;&#039;&#039;&#039;uImage&#039;&#039;&#039;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&#039;&#039;&#039;uImage.env&#039;&#039;&#039;&amp;lt;/code&amp;gt; file onto a microSD card with a FAT file system (you can use the 1st partition on the microSD card)&lt;br /&gt;
|-&lt;br /&gt;
|2. Insert the microSD card and start the system&lt;br /&gt;
|-&lt;br /&gt;
|3. Go to the U-Boot console by pressing &#039;&#039;&#039;BACKSPACE&#039;&#039;&#039;/&#039;&#039;&#039;DEL&#039;&#039;&#039; on a RS232 terminal (during startup)&lt;br /&gt;
|-&lt;br /&gt;
|4. &amp;lt;code&amp;gt;&#039;&#039;update linux&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Debian Rootfilesystem ==&lt;br /&gt;
&lt;br /&gt;
=== Available Rootfilesystems ===&lt;br /&gt;
Please have a look at the [[COM_AM35-D2#Downloads | AM35x Downloads]] section.&lt;br /&gt;
&lt;br /&gt;
=== External Documentation ===&lt;br /&gt;
*  [https://debian-handbook.info/browse/stable/ The Debian Administrator&#039;s Handbook]: A reference book presenting the Debian distribution, from initial installation to configuration of services. The administration and configuration chapters apply to our Debian based root filesystems.&lt;br /&gt;
*  [https://www.debian.org/doc/ Debian Documentation]&lt;br /&gt;
&lt;br /&gt;
=== Login ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 400px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Debian GNU/Linux 6.0 dhcom ttyO0&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dhcom login: &#039;&#039;&#039;root&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Password: &#039;&#039;&#039;foo&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Shutdown ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 400px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;# shutdown -h now&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Calibrating the touchscreen ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 400px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;# ts_calibrate&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
*Check the enviroment variable &amp;quot;TSLIB_TSDEVICE=/dev/input/event0&amp;quot; with &amp;lt;code&amp;gt; printenv &amp;lt;/code&amp;gt; if an error occurs.&lt;br /&gt;
&lt;br /&gt;
===Running Qt Demos ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 400px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;# cd /usr/qt/demos/demoname&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# ./demoname -qws&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
*For the Qt-Browser change &amp;lt;code&amp;gt;demoname&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;browser&amp;lt;/code&amp;gt;&lt;br /&gt;
*If the touchscreen does not work please check the enviroment variable &amp;quot;QWS_MOUSE_PROTO=Tslib:/dev/input/event0&amp;quot; with &amp;lt;code&amp;gt; printenv&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Run Qt demos with powerVR (3d acceleration) support&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 400px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;# cd /usr/qt/demos/embedded/demoname&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# ./demoname -qws&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Run Qt demos with usb mouse input device&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 400px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;# cd /usr/qt/demos/demoname&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# export QWS_MOUSE_PROTO=Auto:/dev/input/mice&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;tt&amp;gt;# ./demoname -qws&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remark:&#039;&#039;&#039; Just remember that you need to run the Qt demos with the options -qws. Omitting -qws results in the app waiting to connect to the QWS Server, which is not running.&lt;br /&gt;
&lt;br /&gt;
== How to create a microSD-card with a rootfilesystem on it ==&lt;br /&gt;
&lt;br /&gt;
1. Format a microSD card like following (in linux e.g. gparted, palimpsest) with &#039;&#039;&#039;Master Boot Record&#039;&#039;&#039; partition scheme&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | style=&amp;quot;width: 450px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;tt&amp;gt;P1 &#039;&#039;&#039;FAT&#039;&#039;&#039;  (Primary partition: 100MB)&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;P2 &#039;&#039;&#039;ext3&#039;&#039;&#039; (Primary partition: Residual space)&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
2. Untar the root file system to the ext3 partition of the microSD card (Don&#039;t copy the tar archive directly to the microSD card)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | style=&amp;quot;width: 450px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
Start the Console on Linux&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;# &#039;&#039;su&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;# &#039;&#039;chmod 755 /path/of/the/microSD_card&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;# &#039;&#039;cd /path/of/the/microSD_card&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;# &#039;&#039;tar xfjv path/to/RootFS/Name_of_RootFS_file.tar.bz2&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Remark:&#039;&#039;&#039; If you got a *.tar.gz file so type &amp;lt;tt&amp;gt; tar xfzv ...  &amp;lt;/tt&amp;gt; to extract the rootfilesystem.&lt;br /&gt;
&lt;br /&gt;
== Kernel Userspace Interfaces to Access Hardware == &lt;br /&gt;
&lt;br /&gt;
=== Serial (UART) Interfaces ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 400px&amp;quot;&lt;br /&gt;
 | style=&amp;quot;width: 50%;&amp;quot;| DHCOM (FF) UART 1||&amp;lt;code&amp;gt;/dev/ttyO0&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||DHCOM (BT) UART 2 ||&amp;lt;code&amp;gt;/dev/ttyO2&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||DHCOM (STD) UART 3 ||&amp;lt;code&amp;gt;/dev/ttyO1&amp;lt;/code&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=== I2C Interfaces ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 400px&amp;quot;&lt;br /&gt;
 | style=&amp;quot;width: 50%;&amp;quot;| DHCOM I2C 1||&amp;lt;code&amp;gt;/dev/i2c-3&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||DHCOM I2C 2 ||&amp;lt;code&amp;gt;/dev/i2c-2&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||On Module Devices ||&amp;lt;code&amp;gt;/dev/i2c-1&amp;lt;/code&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=== SPI Interfaces ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 400px&amp;quot;&lt;br /&gt;
 | style=&amp;quot;width: 50%;&amp;quot;| DHCOM SPI 1||&amp;lt;code&amp;gt;/dev/spidev1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||DHCOM SPI 2 ||&amp;lt;code&amp;gt;/dev/spidev2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=== Control the display brightness ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo &amp;lt;value&amp;gt; &amp;gt;/sys/class/backlight/omap-pwm-backlight/brightness&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:value range: 0..255&lt;br /&gt;
&lt;br /&gt;
=== Control GPIOs ===&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center; width: 600px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! DHCOM Name: !! alt. DHCOM Name: !! SO-DIMM Pin# !! Linux &amp;lt;GPIO#&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| GPIO A || || 154 || 116 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO B || || 156 || 117 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO C || || 162 || 118 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO D || || 163 || 119 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO E || || 164 || 125 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO F || || 165 || 140 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO G || || 167 || 141 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO H || || 173 || 155 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO I || || 175 || 152 &lt;br /&gt;
|-&lt;br /&gt;
| CIF HSYNC || GPIO J || 74 || 96 &lt;br /&gt;
|-&lt;br /&gt;
| CIF PCLK || GPIO K || 72 || 94 &lt;br /&gt;
|-&lt;br /&gt;
| CIF MCLK || GPIO L || 70 || 58 &lt;br /&gt;
|-&lt;br /&gt;
| CIF VSYNC || GPIO M || 68 || 97 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D9 || GPIO N || 66 || 98&lt;br /&gt;
|-&lt;br /&gt;
| CIF D8 || GPIO O || 64 || 95 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D7 || GPIO P || 62 || 106 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D6 || GPIO Q || 60 || 105 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D5 || GPIO R || 58 || 104 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D4 || GPIO S || 56 || 103 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D3 || GPIO T || 54 || 102 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D2 || GPIO U || 52 || 101 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D1 || GPIO V || 50 || 100 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D0 || GPIO W || 48 || 99 &lt;br /&gt;
|}&lt;br /&gt;
:: &#039;&#039;&#039;Remark:&#039;&#039;&#039; Depending on your board configuration some of the additional gpios shared with the camera interface are not available on your system.&lt;br /&gt;
&lt;br /&gt;
:Export&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo &amp;lt;GPIO#&amp;gt; &amp;gt;/sys/class/gpio/export&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:: &#039;&#039;&#039;Remark:&#039;&#039;&#039; Have a look into &amp;lt;code&amp;gt; /sys/class/gpio/ &amp;lt;/code&amp;gt; for already configured gpios.&lt;br /&gt;
:Set direction&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo in &amp;gt;/sys/class/gpio/gpio&amp;lt;GPIO#&amp;gt;/direction&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo out &amp;gt;/sys/class/gpio/gpio&amp;lt;GPIO#&amp;gt;/direction&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Set state&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo 0 &amp;gt;/sys/class/gpio/gpio&amp;lt;GPIO#&amp;gt;/value&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo 1 &amp;gt;/sys/class/gpio/gpio&amp;lt;GPIO#&amp;gt;/value&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Initialize and Test CAN Interface ===&lt;br /&gt;
:Initialize:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;ip link set can0 up type can bitrate 500000&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
:Send test message via cansend (part of can-utils):&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;cansend can0 100#11.2233.44556677.88&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Receive can messages (part of can-utils):&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;candump can0&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Get can-utils:&lt;br /&gt;
:* [[media:can-utils_armel.zip|Debian package containing can-utils (ARM)]]&lt;br /&gt;
&lt;br /&gt;
=== Testing display / framebuffer ===&lt;br /&gt;
:In most common cases the &amp;quot;Display Bits&amp;quot; should be &amp;quot;8&amp;quot;&lt;br /&gt;
:With &amp;quot;fb&amp;quot; you select the number of the framebuffer device (e.g. /dev/fb0)&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 1200px&amp;quot;&lt;br /&gt;
 ||&amp;lt;code&amp;gt;fb_1Colorfill&amp;lt;/code&amp;gt;||Fills the framebuffer device with a given RGB color&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;fb_1Colorfill [fb (0..31)] [Display Bits (1..8)] [Red value (0..255)] [Green value (0..255)] [Blue value (0..255)]&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||&amp;lt;code&amp;gt;fb_fb2BMP&amp;lt;/code&amp;gt;||Copies the framebuffer device data into a 24Bit BMP-File&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;fb_fb2BMP [fb (0..31)] [24-Bit BMP-File]&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||&amp;lt;code&amp;gt;fb_LoadBMP&amp;lt;/code&amp;gt;||Loads a 24Bit BMP-file into a 32Bit framebuffer device&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;fb_LoadBMP [fb (0..31)] [24-Bit BMP-File] [Display Bits (1..8)] [Transparency (0..100)]&amp;lt;/code&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
:Get DH farmebuffer tools:&lt;br /&gt;
:* [[media:dh_framebuffer_tools.zip|DH framebuffer tools version 1.0 (ARM)]]&lt;br /&gt;
&lt;br /&gt;
== Additional Information ==&lt;br /&gt;
*[[Linux Kernel Features | Linux Kernel Features ]]&lt;br /&gt;
*[[ELBE Overview| Embedded Linux Build Environment (ELBE)]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=COM_iMX25_Linux&amp;diff=1707</id>
		<title>COM iMX25 Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=COM_iMX25_Linux&amp;diff=1707"/>
		<updated>2016-10-07T07:58:44Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* How to build a kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ==&amp;lt;br/&amp;gt;FAQ == --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Linux virtual machine for development ==&lt;br /&gt;
* Please have a look at: &#039;&#039;&#039;[[Virtual Machine for Application Development]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Building your own Kernel ==&lt;br /&gt;
&lt;br /&gt;
==== Sources for the iMX25 Linux Kernel v3.2.9 / v3.2.81: ====&lt;br /&gt;
* The latest Linux Kernel source code is available on GitHub: [https://github.com/dh-electronics/linux-imx25 https://github.com/dh-electronics/linux-imx25]&lt;br /&gt;
* We recommend to use on new projects the latest v3.2.81 Linux Kernel&lt;br /&gt;
&lt;br /&gt;
==== How to build a kernel ====&lt;br /&gt;
Get sources from Github and build the linux kernel&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|1. Start a terminal on Linux&lt;br /&gt;
|-&lt;br /&gt;
|2. &amp;lt;tt&amp;gt;# &#039;&#039;git clone [https://github.com/dh-electronics/linux-imx25.git https://github.com/dh-electronics/linux-imx25.git]&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3. &amp;lt;tt&amp;gt;# &#039;&#039;git checkout BRANCH&#039;&#039;&amp;lt;br/&amp;gt;(BRANCH=dev/3.2.9_dhcom or BRANCH=dev/3.2.81_dhcom)&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. &amp;lt;tt&amp;gt;# &#039;&#039;ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make imx25_dhcom_defconfig&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5. &amp;lt;tt&amp;gt;# &#039;&#039;ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make uImage&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* Your new &amp;lt;tt&amp;gt;uImage&amp;lt;/tt&amp;gt; file is available in &amp;lt;tt&amp;gt;arch/arm/boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 100%; color: #000000; border-spacing: 2px; border: 1px solid darkgray; background: lightgrey;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 100%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
&lt;br /&gt;
=== &#039;&#039;Sources older than February 2014&#039;&#039; ===&lt;br /&gt;
==== Sources for the iMX25 Linux Kernel v2.6.38: ====&lt;br /&gt;
&lt;br /&gt;
:* [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.bz2 Mainline Kernel version: 2.6.38 from www.kernel.org]&lt;br /&gt;
&lt;br /&gt;
:* [[media:Linux-2.6.38_DHCOM_iMX25_patch.zip|Patch to DHCOM iMX25 Linux (2014-09-29)]]&lt;br /&gt;
&lt;br /&gt;
:* [[media:Linux-2.6.38_DHCOM_iMX25_config.zip|Kernel configuration for DHCOM iMX25 Linux (2014-09-29)]]&lt;br /&gt;
&lt;br /&gt;
==== Sources for the iMX25 Linux Kernel v3.2.9: ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:* [http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.9.tar.bz2 Mainline Kernel version: 3.2.9 from www.kernel.org]&lt;br /&gt;
&lt;br /&gt;
:* [[media:DHCOM-linux-imx-3.2.9.patch.zip|Patch to DHCOM iMX25 Linux 3.2.9 (2013-09-20)]]&lt;br /&gt;
&lt;br /&gt;
:* [[media:DHCOM-linux-imx-3.2.9.config.zip|Kernel configuration for DHCOM iMX25 Linux 3.2.9 (2013-03-27)]]&lt;br /&gt;
&lt;br /&gt;
==== How to build a kernel ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|1. Start a terminal on Linux&lt;br /&gt;
|-&lt;br /&gt;
|2. Copy the above mentioned source files (linux-3.x.y.tar.bz2, .config, *.patch) into our &amp;lt;code&amp;gt;work_path&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3. &amp;lt;tt&amp;gt;# &#039;&#039;cd work_path&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. &amp;lt;tt&amp;gt;# &#039;&#039;tar xfjv linux-2.6.38.tar.bz2&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5. &amp;lt;tt&amp;gt;# &#039;&#039;cd work_path/linux-2.6.38&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|6. &amp;lt;tt&amp;gt;# &#039;&#039;patch -p1 &amp;lt;linux-2.6.38_DHCOM_iMX25.patch&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|7. &amp;lt;tt&amp;gt;# &#039;&#039;cp .config work_path/linux-2.6.38&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|8. &amp;lt;tt&amp;gt;# &#039;&#039;ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make uImage&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:* Your new &amp;lt;tt&amp;gt;uImage&amp;lt;/tt&amp;gt; file is available in &amp;lt;tt&amp;gt;work_path/linux-2.6.38/arch/arm/boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Update the kernel with U-Boot ==&lt;br /&gt;
&lt;br /&gt;
:The linux kernel will be updated by the [[COM iMX25 Bootloader U-Boot#Update|U-Boot flash update]].&lt;br /&gt;
&lt;br /&gt;
:* [[media:Linux-2.6.38_DHCOM_iMX25_kernel.zip|Binary image 2.6.38 DHCOM iMX25 linux kernel (2014-09-29)]]&lt;br /&gt;
:* [[media:DHCOM-linux-imx-3.2.9_BUILD.zip|Binary image 3.2.9 DHCOM iMX25 linux kernel (2016-02-24)]]&lt;br /&gt;
:* [[media:DHCOM-linux-imx-3.2.78_BUILD.zip|Binary image 3.2.78 DHCOM iMX25 linux kernel (2016-03-08)]]&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|1. Copy the &amp;lt;code&amp;gt;&#039;&#039;&#039;uImage&#039;&#039;&#039;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&#039;&#039;&#039;uImage.env&#039;&#039;&#039;&amp;lt;/code&amp;gt; file onto a microSD card with a FAT file system (you can use the 1st partition on the microSD card)&lt;br /&gt;
|-&lt;br /&gt;
|2. Insert the microSD card and start the system&lt;br /&gt;
|-&lt;br /&gt;
|3. Go to the U-Boot console by pressing &#039;&#039;&#039;BACKSPACE&#039;&#039;&#039; on a RS232 terminal (during startup)&lt;br /&gt;
|-&lt;br /&gt;
|4. &amp;lt;code&amp;gt;&#039;&#039;update linux&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Debian Rootfilesystem ==&lt;br /&gt;
=== Available Rootfilesystems ===&lt;br /&gt;
Please have a look at the [[COM_iMX25-D2#Downloads | iMX25 Downloads]] section.&lt;br /&gt;
&lt;br /&gt;
=== External Documentation ===&lt;br /&gt;
*  [https://debian-handbook.info/browse/stable/ The Debian Administrator&#039;s Handbook]: A reference book presenting the Debian distribution, from initial installation to configuration of services. The administration and configuration chapters apply to our Debian based root filesystems.&lt;br /&gt;
*  [https://www.debian.org/doc/ Debian Documentation]&lt;br /&gt;
&lt;br /&gt;
=== Login ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 400px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Debian GNU/Linux 6.0 dhcom ttymxc1&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dhcom login: &#039;&#039;&#039;root&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Password: &#039;&#039;&#039;foo&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Calibrating the touchscreen ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 400px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;# TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
===Running example Qt Apps ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;# QWS_MOUSE_PROTO=Tslib:/dev/input/event0 /usr/qt/demos/demoname/demoname -qws&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
*&#039;&#039;&#039;Remark:&#039;&#039;&#039; To start the Qt-Browser replace &amp;lt;tt&amp;gt;demoname&amp;lt;/tt&amp;gt; with &amp;lt;tt&amp;gt;browser&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shutdown ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 400px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;# shutdown -h now&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How to create a microSD-card with a rootfilesystem on it ==&lt;br /&gt;
&lt;br /&gt;
1. Format a microSD card like following (in linux e.g. gparted, palimpsest) with &#039;&#039;&#039;Master Boot Record&#039;&#039;&#039; partition scheme&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | style=&amp;quot;width: 450px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;tt&amp;gt;P1 &#039;&#039;&#039;FAT&#039;&#039;&#039;  (Primary partition: 100MB)&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;P2 &#039;&#039;&#039;ext3&#039;&#039;&#039; (Primary partition: Residual space)&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
2. Untar the root file system to the ext3 partition of the microSD card (Don&#039;t copy the tar archive directly to the microSD card)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | style=&amp;quot;width: 450px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
Start the Console on Linux&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;# &#039;&#039;su&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;# &#039;&#039;chmod 755 /path/of/the/microSD_card&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;# &#039;&#039;cd /path/of/the/microSD_card&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;# &#039;&#039;tar xfjv path/to/RootFS/Name_of_RootFS_file.tar.bz2&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Remark:&#039;&#039;&#039; If you got a *.tar.gz file so type &amp;lt;tt&amp;gt; tar xfzv ...  &amp;lt;/tt&amp;gt; to extract the rootfilesystem.&lt;br /&gt;
&lt;br /&gt;
==Busybox Rootfilesystem ==&lt;br /&gt;
=== Calibrating the touchscreen ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;TSLIB_TSDEVICE=/dev/event0 ts_calibrate&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
===Running example Qt Apps ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;QWS_MOUSE_PROTO=Tslib:/dev/event0 /usr/qt/demos/demoname/demoname -qws&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:For the Qt-Browser change &amp;lt;code&amp;gt;demoname&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;browser&amp;lt;/code&amp;gt;&lt;br /&gt;
=== Login/Shutdown system ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 120px&amp;quot;&lt;br /&gt;
 ||Username: ||root&lt;br /&gt;
 |-&lt;br /&gt;
 ||Password: ||n/a&lt;br /&gt;
 |}&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;halt&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel Userspace Interfaces to Access Hardware == &lt;br /&gt;
&lt;br /&gt;
=== Serial (UART) Interfaces ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 400px&amp;quot;&lt;br /&gt;
 |style=&amp;quot;width: 50%;&amp;quot;|DHCOM (FF) UART 1||&amp;lt;code&amp;gt;/dev/ttymxc1&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||DHCOM (BT) UART 2 ||&amp;lt;code&amp;gt;/dev/ttymxc2&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||DHCOM (STD) UART 3 ||&amp;lt;code&amp;gt;/dev/ttymxc4&amp;lt;/code&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=== I2C Interfaces ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 400px&amp;quot;&lt;br /&gt;
 |style=&amp;quot;width: 50%;&amp;quot;|DHCOM I2C 1||&amp;lt;code&amp;gt;/dev/i2c-1&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||DHCOM I2C 2 ||&amp;lt;code&amp;gt;/dev/i2c-2&amp;lt;/code&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=== SPI Interfaces ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 400px&amp;quot;&lt;br /&gt;
 |style=&amp;quot;width: 50%;&amp;quot;|DHCOM SPI 1||&amp;lt;code&amp;gt;/dev/spidev1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||DHCOM SPI 2 ||&amp;lt;code&amp;gt;/dev/spidev2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=== Control the display brightness ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 640px&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo &amp;lt;value&amp;gt; &amp;gt;/sys/devices/platform/imx-fb.0/backlight/imxfb-bl/brightness&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:value range: 0..255&lt;br /&gt;
&lt;br /&gt;
=== Control GPIOs ===&lt;br /&gt;
&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center; width: 600px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! DHCOM Name: !! alt. DHCOM Name: !! Port: !! Pin: !! SO-DIMM Pin# !! Linux &amp;lt;GPIO#&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| GPIO A || || 2 || 12 || 154 || 44&lt;br /&gt;
|-&lt;br /&gt;
| GPIO B || || 3 || 21 || 156 || 85 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO C || || 2 || 4  || 162 || 36 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO D || || 2 || 5  || 163 || 37 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO E || || 2 || 6  || 164 || 38 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO F || || 2 || 7  || 165 || 39 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO G || || 2 || 8  || 167 || 40&lt;br /&gt;
|-&lt;br /&gt;
| GPIO H || || 2 || 9  || 173 || 41&lt;br /&gt;
|-&lt;br /&gt;
| GPIO I || || 3 || 17 || 175 || 81 &lt;br /&gt;
|-&lt;br /&gt;
| CIF HSYNC || GPIO J || 1 || 10 || 74 || 10 &lt;br /&gt;
|-&lt;br /&gt;
| CIF PCLK  || GPIO K || 1 || 11 || 72 || 11 &lt;br /&gt;
|-&lt;br /&gt;
| CIF MCLK  || GPIO L || 1 ||  8 || 70 || 8 &lt;br /&gt;
|-&lt;br /&gt;
| CIF VSYNC || GPIO M || 1 ||  9 || 68 || 9 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D9    || GPIO N || 4 || 21 || 66 || 117&lt;br /&gt;
|-&lt;br /&gt;
| CIF D8    || GPIO O || 1 ||  7 || 64 || 7 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D7    || GPIO P || 1 ||  6 || 62 || 6 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D6    || GPIO Q || 1 || 31 || 60 || 31 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D5    || GPIO R || 1 || 30 || 58 || 30 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D4    || GPIO S || 1 || 29 || 56 || 29 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D3    || GPIO T || 1 || 28 || 54 || 28 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D2    || GPIO U || 1 || 27 || 52 || 27 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Export&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 640px&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo &amp;lt;GPIO#&amp;gt; &amp;gt;/sys/class/gpio/export&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:Set direction&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 640px&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo in &amp;gt;/sys/class/gpio/gpioXX/direction&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo out &amp;gt;/sys/class/gpio/gpioXX/direction&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:Set value&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 640px&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo 0 &amp;gt;/sys/class/gpio/gpioXX/value&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo 1 &amp;gt;/sys/class/gpio/gpioXX/value&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:Get value&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 640px&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;cat /sys/class/gpio/gpioXX/value&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:unexport&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 640px&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo &amp;lt;GPIO#&amp;gt; &amp;gt;/sys/class/gpio/unexport&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Initialize and test CAN ===&lt;br /&gt;
:Initialize:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;ip link set can0 up type can bitrate 500000&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
:Send test message via cansend (part of can-utils):&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;cansend can0 100#11.2233.44556677.88&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Receive message via candump (part of can-utils):&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;candump can0&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Get can-utils:&lt;br /&gt;
:* [[media:can-utils_armel.zip|Debian package containing can-utils (ARM)]]&lt;br /&gt;
&lt;br /&gt;
=== Test display / framebuffer ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 1200px&amp;quot;&lt;br /&gt;
 ||&amp;lt;code&amp;gt;fb_1Colorfill&amp;lt;/code&amp;gt;|| Fills the framebuffer device with a given RGB color&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;Syntax: fb_1Colorfill [fb (0..31)] [Display Bits (1..8)] [Red value (0..255)] [Green value (0..255)] [Blue value (0..255)]&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||&amp;lt;code&amp;gt;fb_fb2BMP&amp;lt;/code&amp;gt;||Copies framebuffer device data into a 24Bit BMP-File&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;Syntax: fb_fb2BMP [fb (0..31)] [24-Bit BMP-File]&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||&amp;lt;code&amp;gt;fb_LoadBMP&amp;lt;/code&amp;gt;||Loads a 24Bit BMP-file into a 32Bit framebuffer device&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;Syntax: fb_LoadBMP [fb (0..31)] [24-Bit BMP-File] [Display Bits (1..8)] [Transparency (0..100)]&amp;lt;/code&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
:In most common cases the &amp;quot;Display Bits&amp;quot; should be &amp;quot;8&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Get DH framebuffer tools:&lt;br /&gt;
:* [[media:dh_framebuffer_tools.zip|DH framebuffer tools v1.0 (ARM)]]&lt;br /&gt;
&lt;br /&gt;
== Additional Information ==&lt;br /&gt;
*[[Linux Kernel Features | Linux Kernel Features ]]&lt;br /&gt;
*[[ELBE Overview| Embedded Linux Build Environment (ELBE)]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=COM_iMX25_Linux&amp;diff=1706</id>
		<title>COM iMX25 Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=COM_iMX25_Linux&amp;diff=1706"/>
		<updated>2016-10-07T07:58:29Z</updated>

		<summary type="html">&lt;p&gt;Lzenz: /* Sources for the iMX25 Linux Kernel v3.2.9 / v3.2.78: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;!-- ==&amp;lt;br/&amp;gt;FAQ == --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Linux virtual machine for development ==&lt;br /&gt;
* Please have a look at: &#039;&#039;&#039;[[Virtual Machine for Application Development]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
==Building your own Kernel ==&lt;br /&gt;
&lt;br /&gt;
==== Sources for the iMX25 Linux Kernel v3.2.9 / v3.2.81: ====&lt;br /&gt;
* The latest Linux Kernel source code is available on GitHub: [https://github.com/dh-electronics/linux-imx25 https://github.com/dh-electronics/linux-imx25]&lt;br /&gt;
* We recommend to use on new projects the latest v3.2.81 Linux Kernel&lt;br /&gt;
&lt;br /&gt;
==== How to build a kernel ====&lt;br /&gt;
Get sources from Github and build the linux kernel&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|1. Start a terminal on Linux&lt;br /&gt;
|-&lt;br /&gt;
|2. &amp;lt;tt&amp;gt;# &#039;&#039;git clone [https://github.com/dh-electronics/linux-imx25.git https://github.com/dh-electronics/linux-imx25.git]&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3. &amp;lt;tt&amp;gt;# &#039;&#039;git checkout BRANCH&#039;&#039;&amp;lt;br/&amp;gt;(BRANCH=dev/3.2.9_dhcom or BRANCH=dev/3.2.78_dhcom)&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. &amp;lt;tt&amp;gt;# &#039;&#039;ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make imx25_dhcom_defconfig&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5. &amp;lt;tt&amp;gt;# &#039;&#039;ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make uImage&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
* Your new &amp;lt;tt&amp;gt;uImage&amp;lt;/tt&amp;gt; file is available in &amp;lt;tt&amp;gt;arch/arm/boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| style=&amp;quot;width: 100%; color: #000000; border-spacing: 2px; border: 1px solid darkgray; background: lightgrey;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
| style=&amp;quot;width: 100%;&amp;quot; |&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
=== &#039;&#039;Sources older than February 2014&#039;&#039; ===&lt;br /&gt;
==== Sources for the iMX25 Linux Kernel v2.6.38: ====&lt;br /&gt;
&lt;br /&gt;
:* [http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.tar.bz2 Mainline Kernel version: 2.6.38 from www.kernel.org]&lt;br /&gt;
&lt;br /&gt;
:* [[media:Linux-2.6.38_DHCOM_iMX25_patch.zip|Patch to DHCOM iMX25 Linux (2014-09-29)]]&lt;br /&gt;
&lt;br /&gt;
:* [[media:Linux-2.6.38_DHCOM_iMX25_config.zip|Kernel configuration for DHCOM iMX25 Linux (2014-09-29)]]&lt;br /&gt;
&lt;br /&gt;
==== Sources for the iMX25 Linux Kernel v3.2.9: ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:* [http://www.kernel.org/pub/linux/kernel/v3.x/linux-3.2.9.tar.bz2 Mainline Kernel version: 3.2.9 from www.kernel.org]&lt;br /&gt;
&lt;br /&gt;
:* [[media:DHCOM-linux-imx-3.2.9.patch.zip|Patch to DHCOM iMX25 Linux 3.2.9 (2013-09-20)]]&lt;br /&gt;
&lt;br /&gt;
:* [[media:DHCOM-linux-imx-3.2.9.config.zip|Kernel configuration for DHCOM iMX25 Linux 3.2.9 (2013-03-27)]]&lt;br /&gt;
&lt;br /&gt;
==== How to build a kernel ====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|1. Start a terminal on Linux&lt;br /&gt;
|-&lt;br /&gt;
|2. Copy the above mentioned source files (linux-3.x.y.tar.bz2, .config, *.patch) into our &amp;lt;code&amp;gt;work_path&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|3. &amp;lt;tt&amp;gt;# &#039;&#039;cd work_path&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|4. &amp;lt;tt&amp;gt;# &#039;&#039;tar xfjv linux-2.6.38.tar.bz2&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|5. &amp;lt;tt&amp;gt;# &#039;&#039;cd work_path/linux-2.6.38&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|6. &amp;lt;tt&amp;gt;# &#039;&#039;patch -p1 &amp;lt;linux-2.6.38_DHCOM_iMX25.patch&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|7. &amp;lt;tt&amp;gt;# &#039;&#039;cp .config work_path/linux-2.6.38&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|8. &amp;lt;tt&amp;gt;# &#039;&#039;ARCH=arm CROSS_COMPILE=arm-none-linux-gnueabi- make uImage&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:* Your new &amp;lt;tt&amp;gt;uImage&amp;lt;/tt&amp;gt; file is available in &amp;lt;tt&amp;gt;work_path/linux-2.6.38/arch/arm/boot&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Update the kernel with U-Boot ==&lt;br /&gt;
&lt;br /&gt;
:The linux kernel will be updated by the [[COM iMX25 Bootloader U-Boot#Update|U-Boot flash update]].&lt;br /&gt;
&lt;br /&gt;
:* [[media:Linux-2.6.38_DHCOM_iMX25_kernel.zip|Binary image 2.6.38 DHCOM iMX25 linux kernel (2014-09-29)]]&lt;br /&gt;
:* [[media:DHCOM-linux-imx-3.2.9_BUILD.zip|Binary image 3.2.9 DHCOM iMX25 linux kernel (2016-02-24)]]&lt;br /&gt;
:* [[media:DHCOM-linux-imx-3.2.78_BUILD.zip|Binary image 3.2.78 DHCOM iMX25 linux kernel (2016-03-08)]]&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|1. Copy the &amp;lt;code&amp;gt;&#039;&#039;&#039;uImage&#039;&#039;&#039;&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;&#039;&#039;&#039;uImage.env&#039;&#039;&#039;&amp;lt;/code&amp;gt; file onto a microSD card with a FAT file system (you can use the 1st partition on the microSD card)&lt;br /&gt;
|-&lt;br /&gt;
|2. Insert the microSD card and start the system&lt;br /&gt;
|-&lt;br /&gt;
|3. Go to the U-Boot console by pressing &#039;&#039;&#039;BACKSPACE&#039;&#039;&#039; on a RS232 terminal (during startup)&lt;br /&gt;
|-&lt;br /&gt;
|4. &amp;lt;code&amp;gt;&#039;&#039;update linux&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Debian Rootfilesystem ==&lt;br /&gt;
=== Available Rootfilesystems ===&lt;br /&gt;
Please have a look at the [[COM_iMX25-D2#Downloads | iMX25 Downloads]] section.&lt;br /&gt;
&lt;br /&gt;
=== External Documentation ===&lt;br /&gt;
*  [https://debian-handbook.info/browse/stable/ The Debian Administrator&#039;s Handbook]: A reference book presenting the Debian distribution, from initial installation to configuration of services. The administration and configuration chapters apply to our Debian based root filesystems.&lt;br /&gt;
*  [https://www.debian.org/doc/ Debian Documentation]&lt;br /&gt;
&lt;br /&gt;
=== Login ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 400px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
||&lt;br /&gt;
&amp;lt;tt&amp;gt;&lt;br /&gt;
Debian GNU/Linux 6.0 dhcom ttymxc1&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
dhcom login: &#039;&#039;&#039;root&#039;&#039;&#039;&amp;lt;br/&amp;gt;&lt;br /&gt;
Password: &#039;&#039;&#039;foo&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
=== Calibrating the touchscreen ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 400px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;# TSLIB_TSDEVICE=/dev/input/event0 ts_calibrate&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
===Running example Qt Apps ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;# QWS_MOUSE_PROTO=Tslib:/dev/input/event0 /usr/qt/demos/demoname/demoname -qws&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
*&#039;&#039;&#039;Remark:&#039;&#039;&#039; To start the Qt-Browser replace &amp;lt;tt&amp;gt;demoname&amp;lt;/tt&amp;gt; with &amp;lt;tt&amp;gt;browser&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Shutdown ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 400px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;# shutdown -h now&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How to create a microSD-card with a rootfilesystem on it ==&lt;br /&gt;
&lt;br /&gt;
1. Format a microSD card like following (in linux e.g. gparted, palimpsest) with &#039;&#039;&#039;Master Boot Record&#039;&#039;&#039; partition scheme&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | style=&amp;quot;width: 450px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
&amp;lt;tt&amp;gt;P1 &#039;&#039;&#039;FAT&#039;&#039;&#039;  (Primary partition: 100MB)&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;P2 &#039;&#039;&#039;ext3&#039;&#039;&#039; (Primary partition: Residual space)&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
2. Untar the root file system to the ext3 partition of the microSD card (Don&#039;t copy the tar archive directly to the microSD card)&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; | style=&amp;quot;width: 450px; color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
Start the Console on Linux&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;# &#039;&#039;su&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;# &#039;&#039;chmod 755 /path/of/the/microSD_card&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;# &#039;&#039;cd /path/of/the/microSD_card&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;# &#039;&#039;tar xfjv path/to/RootFS/Name_of_RootFS_file.tar.bz2&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&#039;&#039;&#039;Remark:&#039;&#039;&#039; If you got a *.tar.gz file so type &amp;lt;tt&amp;gt; tar xfzv ...  &amp;lt;/tt&amp;gt; to extract the rootfilesystem.&lt;br /&gt;
&lt;br /&gt;
==Busybox Rootfilesystem ==&lt;br /&gt;
=== Calibrating the touchscreen ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;TSLIB_TSDEVICE=/dev/event0 ts_calibrate&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
===Running example Qt Apps ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;QWS_MOUSE_PROTO=Tslib:/dev/event0 /usr/qt/demos/demoname/demoname -qws&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:For the Qt-Browser change &amp;lt;code&amp;gt;demoname&amp;lt;/code&amp;gt; to &amp;lt;code&amp;gt;browser&amp;lt;/code&amp;gt;&lt;br /&gt;
=== Login/Shutdown system ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 120px&amp;quot;&lt;br /&gt;
 ||Username: ||root&lt;br /&gt;
 |-&lt;br /&gt;
 ||Password: ||n/a&lt;br /&gt;
 |}&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;halt&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Kernel Userspace Interfaces to Access Hardware == &lt;br /&gt;
&lt;br /&gt;
=== Serial (UART) Interfaces ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 400px&amp;quot;&lt;br /&gt;
 |style=&amp;quot;width: 50%;&amp;quot;|DHCOM (FF) UART 1||&amp;lt;code&amp;gt;/dev/ttymxc1&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||DHCOM (BT) UART 2 ||&amp;lt;code&amp;gt;/dev/ttymxc2&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||DHCOM (STD) UART 3 ||&amp;lt;code&amp;gt;/dev/ttymxc4&amp;lt;/code&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=== I2C Interfaces ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 400px&amp;quot;&lt;br /&gt;
 |style=&amp;quot;width: 50%;&amp;quot;|DHCOM I2C 1||&amp;lt;code&amp;gt;/dev/i2c-1&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||DHCOM I2C 2 ||&amp;lt;code&amp;gt;/dev/i2c-2&amp;lt;/code&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=== SPI Interfaces ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 400px&amp;quot;&lt;br /&gt;
 |style=&amp;quot;width: 50%;&amp;quot;|DHCOM SPI 1||&amp;lt;code&amp;gt;/dev/spidev1.0&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||DHCOM SPI 2 ||&amp;lt;code&amp;gt;/dev/spidev2.0&amp;lt;/code&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
&lt;br /&gt;
=== Control the display brightness ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 640px&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo &amp;lt;value&amp;gt; &amp;gt;/sys/devices/platform/imx-fb.0/backlight/imxfb-bl/brightness&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:value range: 0..255&lt;br /&gt;
&lt;br /&gt;
=== Control GPIOs ===&lt;br /&gt;
&lt;br /&gt;
:{|class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align: center; width: 600px&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! DHCOM Name: !! alt. DHCOM Name: !! Port: !! Pin: !! SO-DIMM Pin# !! Linux &amp;lt;GPIO#&amp;gt; &lt;br /&gt;
|-&lt;br /&gt;
| GPIO A || || 2 || 12 || 154 || 44&lt;br /&gt;
|-&lt;br /&gt;
| GPIO B || || 3 || 21 || 156 || 85 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO C || || 2 || 4  || 162 || 36 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO D || || 2 || 5  || 163 || 37 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO E || || 2 || 6  || 164 || 38 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO F || || 2 || 7  || 165 || 39 &lt;br /&gt;
|-&lt;br /&gt;
| GPIO G || || 2 || 8  || 167 || 40&lt;br /&gt;
|-&lt;br /&gt;
| GPIO H || || 2 || 9  || 173 || 41&lt;br /&gt;
|-&lt;br /&gt;
| GPIO I || || 3 || 17 || 175 || 81 &lt;br /&gt;
|-&lt;br /&gt;
| CIF HSYNC || GPIO J || 1 || 10 || 74 || 10 &lt;br /&gt;
|-&lt;br /&gt;
| CIF PCLK  || GPIO K || 1 || 11 || 72 || 11 &lt;br /&gt;
|-&lt;br /&gt;
| CIF MCLK  || GPIO L || 1 ||  8 || 70 || 8 &lt;br /&gt;
|-&lt;br /&gt;
| CIF VSYNC || GPIO M || 1 ||  9 || 68 || 9 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D9    || GPIO N || 4 || 21 || 66 || 117&lt;br /&gt;
|-&lt;br /&gt;
| CIF D8    || GPIO O || 1 ||  7 || 64 || 7 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D7    || GPIO P || 1 ||  6 || 62 || 6 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D6    || GPIO Q || 1 || 31 || 60 || 31 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D5    || GPIO R || 1 || 30 || 58 || 30 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D4    || GPIO S || 1 || 29 || 56 || 29 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D3    || GPIO T || 1 || 28 || 54 || 28 &lt;br /&gt;
|-&lt;br /&gt;
| CIF D2    || GPIO U || 1 || 27 || 52 || 27 &lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Export&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 640px&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo &amp;lt;GPIO#&amp;gt; &amp;gt;/sys/class/gpio/export&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:Set direction&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 640px&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo in &amp;gt;/sys/class/gpio/gpioXX/direction&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo out &amp;gt;/sys/class/gpio/gpioXX/direction&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:Set value&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 640px&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo 0 &amp;gt;/sys/class/gpio/gpioXX/value&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo 1 &amp;gt;/sys/class/gpio/gpioXX/value&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
:Get value&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 640px&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;cat /sys/class/gpio/gpioXX/value&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:unexport&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 640px&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;echo &amp;lt;GPIO#&amp;gt; &amp;gt;/sys/class/gpio/unexport&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Initialize and test CAN ===&lt;br /&gt;
:Initialize:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;ip link set can0 up type can bitrate 500000&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
 &lt;br /&gt;
:Send test message via cansend (part of can-utils):&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;cansend can0 100#11.2233.44556677.88&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Receive message via candump (part of can-utils):&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|&amp;lt;code&amp;gt;&#039;&#039;candump can0&#039;&#039;&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Get can-utils:&lt;br /&gt;
:* [[media:can-utils_armel.zip|Debian package containing can-utils (ARM)]]&lt;br /&gt;
&lt;br /&gt;
=== Test display / framebuffer ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width: 1200px&amp;quot;&lt;br /&gt;
 ||&amp;lt;code&amp;gt;fb_1Colorfill&amp;lt;/code&amp;gt;|| Fills the framebuffer device with a given RGB color&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;Syntax: fb_1Colorfill [fb (0..31)] [Display Bits (1..8)] [Red value (0..255)] [Green value (0..255)] [Blue value (0..255)]&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||&amp;lt;code&amp;gt;fb_fb2BMP&amp;lt;/code&amp;gt;||Copies framebuffer device data into a 24Bit BMP-File&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;Syntax: fb_fb2BMP [fb (0..31)] [24-Bit BMP-File]&amp;lt;/code&amp;gt;&lt;br /&gt;
 |-&lt;br /&gt;
 ||&amp;lt;code&amp;gt;fb_LoadBMP&amp;lt;/code&amp;gt;||Loads a 24Bit BMP-file into a 32Bit framebuffer device&amp;lt;br&amp;gt;&amp;lt;code&amp;gt;Syntax: fb_LoadBMP [fb (0..31)] [24-Bit BMP-File] [Display Bits (1..8)] [Transparency (0..100)]&amp;lt;/code&amp;gt;&lt;br /&gt;
 |}&lt;br /&gt;
:In most common cases the &amp;quot;Display Bits&amp;quot; should be &amp;quot;8&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Get DH framebuffer tools:&lt;br /&gt;
:* [[media:dh_framebuffer_tools.zip|DH framebuffer tools v1.0 (ARM)]]&lt;br /&gt;
&lt;br /&gt;
== Additional Information ==&lt;br /&gt;
*[[Linux Kernel Features | Linux Kernel Features ]]&lt;br /&gt;
*[[ELBE Overview| Embedded Linux Build Environment (ELBE)]]&lt;/div&gt;</summary>
		<author><name>Lzenz</name></author>
	</entry>
</feed>