<?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=Mschmoeller</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=Mschmoeller"/>
	<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Special:Contributions/Mschmoeller"/>
	<updated>2026-04-27T21:19:46Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.45.3</generator>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOR_STM32MP1_Linux&amp;diff=3608</id>
		<title>DHCOR STM32MP1 Linux</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOR_STM32MP1_Linux&amp;diff=3608"/>
		<updated>2022-02-22T10:43:48Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Activating Device Tree Overlays */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== U-Boot Bootloader Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Activating Device Tree Overlays ===&lt;br /&gt;
:Some of the hardware features can be activated with the help of a device tree overlay. To activate a device tree overlay, you have to go into the U-Boot console first. This can be done during the first seconds after startup, by simply hitting any button on a keyboard once the system tells you to do so. &lt;br /&gt;
&lt;br /&gt;
:When you are in the bootloder, you can view a list of all available device tree overlays with the following command. &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;&amp;gt; ls mmc 0:4 /boot &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:After that, you can select a device tree overlay with the following commands:&lt;br /&gt;
&lt;br /&gt;
:To activate CAN support:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;&amp;gt; setenv loaddtos &#039;#conf-stm32mp157a-avenger96.dtb#conf-stm32mp15xx-avenger96-overlay-fdcan1-x6.dtbo#conf-stm32mp157a-avenger96-overlay-fdcan2-x6.dtbo&#039; &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:To activate the 96Boards D3Camera Mezzanine Board enter:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;&amp;gt; setenv loaddtos &#039;#conf-stm32mp157a-avenger96.dtb#conf-stm32mp15xx-avenger96-overlay-ov5640-x7.dtbo&#039; &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:If you want to make use of the MIPI DSI interface, you can start with an MIPI DSI interface board developed by DH electronics. If you want to use it, simply contact us to find out more about it. &lt;br /&gt;
:To activate the MIPI DSI Interface enter the following device tree overlay. &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;&amp;gt; setenv loaddtos &#039;#conf-stm32mp157a-avenger96.dtb#conf-stm32mp15xx-avenger96-overlay-644-100-x6-otm8009a.dtbo&#039; &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:If you want to save your settings, so that you don&#039;t have to enter the device tree overlay after every reboot, enter this command: &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;&amp;gt; saveenv &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:To reset your device tree overlay, simply override the last settings:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;&amp;gt; setenv loaddtos &#039;#conf-stm32mp157a-avenger96.dtb&#039; &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Once the device tree overlay is set, you can boot up your board by entering boot:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;&amp;gt; boot &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Linux Userspace Commands ==&lt;br /&gt;
&lt;br /&gt;
=== Logging in after Startup ===&lt;br /&gt;
:After booting, you con login as the user &amp;quot;root&amp;quot; without any password. Note, that the standard console is connected to the UART 1 port (96Boards name). &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;dh-stm32mp1-dhcor-avenger96 login: &#039;&#039;&#039;root&#039;&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interacting with GPIOs ===&lt;br /&gt;
:An GPIO can be activated with the gpioset command. To find out which GPIO is connected to what gpiochip-device, take a look at the Hardware Section below. &lt;br /&gt;
:The GPIO &amp;quot;A&amp;quot; can be turned on by &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# gpioset gpiochip0 14=1&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:and off by &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# gpioset gpiochip0 14=0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Interacting with the User LEDs ===&lt;br /&gt;
:In between the two USB-Host connectors of the Avenger96, you can find four so called User LEDs. These LEDs can be used for simple programming examples and be accessed and manipulated by the user form the userspace. &lt;br /&gt;
:The LEDs are located under /sys/class/leds. &lt;br /&gt;
:To disable the blinking of the LED0 hit following command:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# echo none &amp;gt; /sys/class/leds/green:user0/trigger&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:The LEDs can also be turned on or off permanently by writing either &amp;quot;1&amp;quot; or &amp;quot;0&amp;quot; to the following file:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# echo 1 &amp;gt; /sys/class/leds/green:user0/brightness&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# echo 0 &amp;gt; /sys/class/leds/green:user0/brightness&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Accessing Devices over I2C ===&lt;br /&gt;
:Once you have connected some I2C devices to the Avenger96, you can scan the I2C bus and see if your device is available.&lt;br /&gt;
:To scan for devices on the I2C-Bus 1 enter the following command:&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# i2cdetect -y 1 &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:To write on the device on the address 0x50 to its register number 0x10 the value 0x20 enter the following command:  &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# i2cset -y 1 0x50 0x10 0x20 &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:To read the data of the device on the address 0x50 at its register 0x10 enter this:   &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# i2cget -y 1 0x50 0x10 &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:For a dump of the entire registers of the device at address 0x50 enter the following command:   &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# i2cdump -f 1 0x50 &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Unsing the internal RTC ===&lt;br /&gt;
:Read out the current date and time of the system (not the RTC itself)&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# date&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Set a specific system time &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# date -s &amp;quot;2020-01-30 10:00:00&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Save the current system time to the RTC of the STM32MP1&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# hwclock -w&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:When you allready have stored a date on the RTC and you want to read it out, use the next command. This command only gives back the time, but does not synchronize it with the system time. This is done in the next step. &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# hwclock -r&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:The system time can be synchronised to the RTC by this command: &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# hwclock -s&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Using the second UART port ===&lt;br /&gt;
:If you want to use the second UART Port available on the Low Speed Expansion Connector of the Avenger96, you can access it easily with the tool called minicom&lt;br /&gt;
:To open up its configuration enter the following command&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# minicom -s&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Once you&#039;ve opend minicom, navigate to &#039;&#039;&amp;lt;tt&amp;gt;Serial port setup&amp;lt;/tt&amp;gt;&#039;&#039; and change the Serial Device to &#039;&#039;&amp;lt;tt&amp;gt;/dev/ttySTM1&amp;lt;/tt&amp;gt;&#039;&#039;. &lt;br /&gt;
:Now you can hit &#039;&#039;&amp;lt;tt&amp;gt;exit&amp;lt;/tt&amp;gt;&#039;&#039; and you are in a terminal which is connected to the second UART port. &lt;br /&gt;
&lt;br /&gt;
:To reopen the settings of minicom press &#039;&#039;&amp;lt;tt&amp;gt;CTRL + A&amp;lt;/tt&amp;gt;&#039;&#039; and then &#039;&#039;&amp;lt;tt&amp;gt;O&amp;lt;/tt&amp;gt;&#039;&#039; on your keyboard. &lt;br /&gt;
:To close minicom press &#039;&#039;&amp;lt;tt&amp;gt;CTRL + A&amp;lt;/tt&amp;gt;&#039;&#039; and then &#039;&#039;&amp;lt;tt&amp;gt;X&amp;lt;/tt&amp;gt;&#039;&#039; on your keyboard.&lt;br /&gt;
&lt;br /&gt;
=== Connecting to a WiFi network ===&lt;br /&gt;
:After bootup, you have to enter the following commands: &lt;br /&gt;
&lt;br /&gt;
:activating the wlan0 interface&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# ifconfig wlan0 up&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Enter the SSID and the WPA Key&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# wpa_passphrase &amp;quot;YOUR SSID&amp;quot; your-wpa-key &amp;gt; wpa_supplicant.conf &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Defining the settings&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# wpa_supplicant -B -Dnl8011 -iwlan0 -cwpa_supplicant.conf &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:After that you should get the message &amp;quot;successfully initialized wpa_supplicant&amp;quot;&lt;br /&gt;
&lt;br /&gt;
:Requesting an IP-Address from the DHCP-Server&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# udhcpc -i wlan0 &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Checking your IP Address &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# ifconfig &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Connecting to a Bluetooth Device ===&lt;br /&gt;
:In this example you can see how to connect a bluetooth headset to the Avenger96 and play a song over it. &lt;br /&gt;
:For this you have to first store a *.wav audiofile in the home directory (/home/root). &lt;br /&gt;
&lt;br /&gt;
:First start pulsaudio&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# pulseaudio --start&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Bring up the Bluetooth Device&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# hciconfig hci0 up&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Start the Bluetooth configuration tool&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# bluetoothctl&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Now you are controlling the configuration tool. Here you can start the scanning for bluetooth devices&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;[bluetooth]# scan on&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Once you see the device you like to connect to stop the scanning. &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;[bluetooth]# scan off&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Now Copy the MAC-address of your bluetooth device and pair to it&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;[bluetooth]# pair xx:xx:xx:xx:xx:xx&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Next add it to the list of trusted devices&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;[bluetooth]# trust xx:xx:xx:xx:xx:xx&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Finally connect to it&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;[bluetooth]# connect xx:xx:xx:xx:xx:xx&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Your Headphone should now be connected to the Avenger96, so you can leave the bluetooth configuration tool&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;[bluetooth]# exit&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Now you can start playing your audiofile &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# aplay audiofile.wav&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:When you want to remove your device from the Avenger96, open &#039;&#039;&amp;lt;tt&amp;gt;bluetoothctl&amp;lt;/tt&amp;gt;&#039;&#039; again and remove its MAC-address&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;[bluetooth]# remove xx:xx:xx:xx:xx:xx&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Activating the CAN interface ===&lt;br /&gt;
:The Avenger96 has two CAN FD ports which can be accessed from the GPIOs on the Low Speed Expansion Connector: &lt;br /&gt;
::FDCAN 1:&lt;br /&gt;
:::PA12 - TX&lt;br /&gt;
:::PA11 - RX&lt;br /&gt;
&lt;br /&gt;
::FDCAN 2:&lt;br /&gt;
:::PB13 - TX&lt;br /&gt;
:::PB5 - RX&lt;br /&gt;
&lt;br /&gt;
:To activate them, you have to add a Device Tree Overlay in the bootloader, like mentioned in the beginning of this page. &lt;br /&gt;
:Once this is done, you have to connect a CAN-Transceiver to the GPIOs and from here you can access the CAN-Bus. &lt;br /&gt;
&lt;br /&gt;
:Setup CAN interface with baudrate 500kbit/sec.&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# ip link set can0 up type can bitrate 500000&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Start to listen on CAN port &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# candump can0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Send test message &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# cansend can0 100#11.2233.44556677.88&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Deinitialize CAN port &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# ip link set can0 down&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Activating the MIPI CSI Interface ===&lt;br /&gt;
:The Avenger96 is compatible with the [https://www.96boards.org/product/d3camera/ D3Camera Mezzanine Board] available on the 96Boards website. &lt;br /&gt;
&lt;br /&gt;
:To activate this Mezzanine Board you have to connect it to the Avenger96 before you power it up. Note, that you also have to access the UART0 which is then available on the Solderpins of the D3Camera Mezzanine board. &lt;br /&gt;
:Like for CAN you also have to activate the proper device tree overlay as describte in the beginning of this page. &lt;br /&gt;
&lt;br /&gt;
:Once the system is booted, you have to connect a display to the Avenger96 via HDMI and then enter the following command. &lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# XDG_RUNTIME_DIR=/var/run/user/0/ gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1280,height=720,pixelformat=RGB565 ! waylandsink&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Mounting a USB Drive ===&lt;br /&gt;
:To mount a USB drive connect it to the Avenger96 and mount it with the following command&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# mount /dev/sda1 /mnt&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Now your USB drive is available under the following directory&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# cd /mnt&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:To unmount the drive enter the following command&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# umount /dev/sda1 &amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Formatting and mounting the eMMC ===&lt;br /&gt;
:At first you can check all block devices by this command&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# lsblk&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:First partitionate the eMMC device&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# cfdisk /dev/mmcblk2&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Now select the partitiontable &#039;&#039;&amp;lt;tt&amp;gt;gpt&amp;lt;/tt&amp;gt;&#039;&#039;. Then in the menu you can add a new partiton by entering &#039;&#039;&amp;lt;tt&amp;gt;new&amp;lt;/tt&amp;gt;&#039;&#039; and then the size of your partition e.g. &#039;&#039;&amp;lt;tt&amp;gt;7G&amp;lt;/tt&amp;gt;&#039;&#039;. &lt;br /&gt;
:After that enter &#039;&#039;&amp;lt;tt&amp;gt;write&amp;lt;/tt&amp;gt;&#039;&#039; and confirm it with &#039;&#039;&amp;lt;tt&amp;gt;yes&amp;lt;/tt&amp;gt;&#039;&#039;. Then you can &#039;&#039;&amp;lt;tt&amp;gt;quit&amp;lt;/tt&amp;gt;&#039;&#039; this tool. &lt;br /&gt;
&lt;br /&gt;
:Now you can format the new partition&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# mkfs.ext4 /dev/mmcblk2p1&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:To access this partition you have to mount it just like an USB-Stick&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# mount /dev/mmcblk2p1 /mnt&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Read out the ADC Pins ===&lt;br /&gt;
:The GPIOs G and H are mapped as ADC pins. These pins can meassure a value from 0 V to 2,9 V. This reference voltage of 2,9 V is driven by the LDO1 of the PMIC. &lt;br /&gt;
:The value measured is calculated as followed:&lt;br /&gt;
::&#039;&#039;&amp;lt;tt&amp;gt;Umeassured = ( RAW + OFFSET ) * SCALE&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
:You can read out the values as followed:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;GPIO G:&#039;&#039;&#039;&lt;br /&gt;
:Navigate to its directory&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# cd /sys/bus/iio/devices/iio:device0&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Read out &#039;&#039;&amp;lt;tt&amp;gt;SCALE&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# cat in_voltage_scale&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Read out &#039;&#039;&amp;lt;tt&amp;gt;OFFSET&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# cat in_voltage_offset&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Once you know these two values, you can read the actual ADC value&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# cat in_voltage6_raw&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;&#039;GPIO H:&#039;&#039;&#039;&lt;br /&gt;
:Navigate to its directory&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# cd /sys/bus/iio/devices/iio:device1&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Read out &#039;&#039;&amp;lt;tt&amp;gt;SCALE&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# cat in_voltage_scale&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Read out &#039;&#039;&amp;lt;tt&amp;gt;OFFSET&amp;lt;/tt&amp;gt;&#039;&#039;&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# cat in_voltage_offset&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
:Once you know these two values, you can read the actual ADC value&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;color: #000000; background: #FFFFFF;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&amp;lt;tt&amp;gt;&#039;&#039;# cat in_voltage2_raw&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Kernel Userspace Interfaces to Access Hardware ==&lt;br /&gt;
The pinmuxing of the DHCOR STM32MP1 can be configured just as needed by you as a customer and therefore the interfaces used in each configuration might be different. However, to give you an easy way to start developing with the DHCOR STM32MP1 you can use the Avenger96 Board, which is the reference design for our DHCOR module. Thus, the interfaces described here, are the configuration for the Avenger96.&lt;br /&gt;
&lt;br /&gt;
=== Serial (UART) Interfaces ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | 96Boards Name&lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | Linux Name&lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | Hardware Name&lt;br /&gt;
|-&lt;br /&gt;
| UART 0&lt;br /&gt;
| &amp;lt;tt&amp;gt;/dev/ttySTM1&amp;lt;/tt&amp;gt;&lt;br /&gt;
| UART 7&lt;br /&gt;
|-&lt;br /&gt;
| UART 1 (Standard UART)&lt;br /&gt;
| &amp;lt;tt&amp;gt;/dev/ttySTM0&amp;lt;/tt&amp;gt;&lt;br /&gt;
| UART 4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== I²C Interfaces ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | 96Boards Name&lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | Linux Name&lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | Hardware Name&lt;br /&gt;
|-&lt;br /&gt;
| I2C0&lt;br /&gt;
| &amp;lt;tt&amp;gt;/dev/i2c-1&amp;lt;/tt&amp;gt;&lt;br /&gt;
| I2C2&lt;br /&gt;
|-&lt;br /&gt;
| I2C1&lt;br /&gt;
| &amp;lt;tt&amp;gt;/dev/i2c-0&amp;lt;/tt&amp;gt;&lt;br /&gt;
| I2C1&lt;br /&gt;
|-&lt;br /&gt;
| OnBoard&lt;br /&gt;
| &amp;lt;tt&amp;gt;/dev/i2c-2&amp;lt;/tt&amp;gt;&lt;br /&gt;
| I2C4&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== microSD and eMMC ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | 96Boards Name&lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | Linux Name&lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | Hardware Name&lt;br /&gt;
|-&lt;br /&gt;
| microSD&lt;br /&gt;
| &amp;lt;tt&amp;gt;mmcblk1&amp;lt;/tt&amp;gt;&lt;br /&gt;
| SDMMC1&lt;br /&gt;
|-&lt;br /&gt;
| eMMC&lt;br /&gt;
| &amp;lt;tt&amp;gt;mmcblk2&amp;lt;/tt&amp;gt;&lt;br /&gt;
| SDMMC2&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== GPIOs ===&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | 96Boards Name&lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | Linux Name&lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | Hardware Name&lt;br /&gt;
|-&lt;br /&gt;
| A&lt;br /&gt;
| &amp;lt;tt&amp;gt;gpiochip0 14&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PA14&lt;br /&gt;
|-&lt;br /&gt;
| B&lt;br /&gt;
| &amp;lt;tt&amp;gt;gpiochip1 11&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PB11&lt;br /&gt;
|-&lt;br /&gt;
| C&lt;br /&gt;
| &amp;lt;tt&amp;gt;gpiochip2 3&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PC3&lt;br /&gt;
|-&lt;br /&gt;
| D&lt;br /&gt;
| &amp;lt;tt&amp;gt;gpiochip3 8&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PD8&lt;br /&gt;
|-&lt;br /&gt;
| E&lt;br /&gt;
| &amp;lt;tt&amp;gt;gpiochip3 14&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PD14&lt;br /&gt;
|-&lt;br /&gt;
| F&lt;br /&gt;
| &amp;lt;tt&amp;gt;gpiochip3 15&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PD15&lt;br /&gt;
|-&lt;br /&gt;
| G (mapped as ADC)&lt;br /&gt;
| &amp;lt;tt&amp;gt;gpiochip5 12&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PF12&lt;br /&gt;
|-&lt;br /&gt;
| H (mapped as ADC)&lt;br /&gt;
| &amp;lt;tt&amp;gt;gpiochip5 13&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PF13&lt;br /&gt;
|-&lt;br /&gt;
| I&lt;br /&gt;
| &amp;lt;tt&amp;gt;gpiochip0 12&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PA12&lt;br /&gt;
|-&lt;br /&gt;
| J&lt;br /&gt;
| &amp;lt;tt&amp;gt;gpiochip1 5&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PB5&lt;br /&gt;
|-&lt;br /&gt;
| K&lt;br /&gt;
| &amp;lt;tt&amp;gt;gpiochip0 11&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PA11&lt;br /&gt;
|-&lt;br /&gt;
| L&lt;br /&gt;
| &amp;lt;tt&amp;gt;gpiochip1 13&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PB13&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:Beside the GPIOs, the Avenger96 has also four user LEDs, which are controlled the same way as the GPIOs.&lt;br /&gt;
:{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | 96Boards Name&lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | Linux Name&lt;br /&gt;
! style=&amp;quot;background-color:#efefef; width: 200px; text-align:left&amp;quot; | Hardware Name&lt;br /&gt;
|-&lt;br /&gt;
| LED 0&lt;br /&gt;
| &amp;lt;tt&amp;gt;/sys/class/leds/green:user0&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PZ7&lt;br /&gt;
|-&lt;br /&gt;
| LED 1&lt;br /&gt;
| &amp;lt;tt&amp;gt;/sys/class/leds/green:user1&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PF3&lt;br /&gt;
|-&lt;br /&gt;
| LED 2&lt;br /&gt;
| &amp;lt;tt&amp;gt;/sys/class/leds/green:user2&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PG0&lt;br /&gt;
|-&lt;br /&gt;
| LED 3&lt;br /&gt;
| &amp;lt;tt&amp;gt;/sys/class/leds/green:user3&amp;lt;/tt&amp;gt;&lt;br /&gt;
| PG1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Linux Kernel ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- === Sources: Look at page [[DHCOM iMX6ULL-D2#BSP Sources|i.MX6ULL BSP Sources]] === --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== How to build a Kernel ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; align=&amp;quot;center&amp;quot; |  style=&amp;quot;width: 98%; background: #f3f3f3;&amp;quot; valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
|&lt;br /&gt;
Get sources from Github&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 the Console 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/linux-stm32mp1.git --branch dev/5.4.69_dhsom&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
3. &amp;lt;tt&amp;gt;&#039;&#039;cd linux-stm32mp1&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Configure and build the Device Tree + Kernel&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;
4. &amp;lt;tt&amp;gt;&#039;&#039;ARCH=arm CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf- make stm32mp1_dhsom_defconfig&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
5. &amp;lt;tt&amp;gt;&#039;&#039;ARCH=arm CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf- make menuconfig&#039;&#039;&amp;lt;/tt&amp;gt; (optional: If you want to add/remove Kernel features)&amp;lt;br/&amp;gt;&lt;br /&gt;
6. &amp;lt;tt&amp;gt;&#039;&#039;ARCH=arm CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf- make dtbs&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
7. &amp;lt;tt&amp;gt;&#039;&#039;ARCH=arm CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf- make zImage&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
Create the FIT-image with our script ([[media:Dh-create-fitimage_1.0_all.deb|Download link]])&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;
| &#039;&#039;&#039;Interactive mode for selecting device trees&#039;&#039;&#039;&lt;br /&gt;
| &#039;&#039;&#039;Device trees are set as parameter&#039;&#039;&#039;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
8. &amp;lt;tt&amp;gt;&#039;&#039;create_fitimage&#039;&#039;&amp;lt;/tt&amp;gt;&amp;lt;br/&amp;gt;&lt;br /&gt;
Enter the numbers (space seperated) of the device trees to include (e.g. if you want to include the device tree for the Avenger96 include the number of &amp;lt;tt&amp;gt;&#039;&#039;./arch/arm/boot/dts/stm32mp157a-avenger96.dtb&#039;&#039;&amp;lt;/tt&amp;gt; (usually 1).&amp;lt;br/&amp;gt;&lt;br /&gt;
Enter the numbers (space seperated) of the device trees overlays to include (e.g. for the Avenger96 enter the files which contain &amp;lt;tt&amp;gt;&#039;&#039;Avenger96&#039;&#039;&amp;lt;/tt&amp;gt; (usually 0 1 2 3 4 5 6 7).&lt;br /&gt;
|&lt;br /&gt;
(Example is for the Avenger96) &amp;lt;br&amp;gt;&lt;br /&gt;
8. &amp;lt;tt&amp;gt;&#039;&#039;create_fitimage --dtb ./arch/arm/boot/dts/stm32mp157a-avenger96.dtb --dtbo ./arch/arm/boot/dts/stm32mp157a-avenger96-overlay-644-100-x6-otm8009a.dtbo,./arch/arm/boot/dts/stm32mp157a-avenger96-overlay-644-100-x6-rpi7inch.dtbo,./arch/arm/boot/dts/stm32mp157a-avenger96-overlay-fdcan1-x6.dtbo,./arch/arm/boot/dts/stm32mp157a-avenger96-overlay-fdcan2-x6.dtbo,./arch/arm/boot/dts/stm32mp157a-avenger96-overlay-i2c1-eeprom-x6.dtbo,./arch/arm/boot/dts/stm32mp157a-avenger96-overlay-i2c2-eeprom-x6.dtbo,./arch/arm/boot/dts/stm32mp157a-avenger96-overlay-ov5640-x7.dtbo,./arch/arm/boot/dts/stm32mp157a-avenger96-overlay-spi2-eeprom-x6.dtbo&#039;&#039;&amp;lt;/tt&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=3538</id>
		<title>Add Yocto SDK with QT5 to QT Creator</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=3538"/>
		<updated>2021-10-26T11:59:49Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Download and install the SDK package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following instructions are based on &#039;&#039;&#039;DHCOM STM32MP1&#039;&#039;&#039; computer on module and Yocto version &amp;quot;dunfell&amp;quot;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepairing your virtual machine ==&lt;br /&gt;
&lt;br /&gt;
Get the [[Virtual Machine for Application Development]].&lt;br /&gt;
&lt;br /&gt;
Install the following package:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install qtcreator qt5default&lt;br /&gt;
&lt;br /&gt;
== Download and install the SDK package ==&lt;br /&gt;
&lt;br /&gt;
Get the [[media:20211026-dhlinux-glibc-x86_64-dh-image-demo-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.zip|QT5 SDK for STM32mp1]]&lt;br /&gt;
&lt;br /&gt;
Unpack the archive and install the toolchain. &lt;br /&gt;
&lt;br /&gt;
 $ sh ./dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.sh&lt;br /&gt;
&lt;br /&gt;
Choose the installation directory (default: /opt/dhlinux/nodistro.0/).&lt;br /&gt;
&lt;br /&gt;
The toolchain is now installed to your system.&lt;br /&gt;
&lt;br /&gt;
== Configure Qt Creator ==&lt;br /&gt;
&lt;br /&gt;
Run QT Creator&lt;br /&gt;
&lt;br /&gt;
In Qt Creator go to Tools &amp;gt; Options &amp;gt; Devices and add your Wandboard as a generic linux device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-device.jpg|550px]]&lt;br /&gt;
&lt;br /&gt;
go to Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run and:&lt;br /&gt;
&lt;br /&gt;
Add a new c++ compiler. Select your compiler: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-g++&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-compiler.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new debugger. Select your debugger: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-gdb&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-debugger.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add your Qt version by selecting the qmake located in /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/qmake&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-qt-version.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new kit selecting your new Qt5 version and compiler and setting the sysroot to /opt/dhlinux/nodistro.0/sysroots/cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi and leave the Qt mkspec empty.&lt;br /&gt;
Then select your device&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-kit.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
If there is a warning/error shown, please click apply between each step.&lt;br /&gt;
&lt;br /&gt;
There is one last point. The SDK comes with an environment-setup which sets some variables that are needed if you want to use the toolchain. There are two ways to get this environment into Qt Creator:&lt;br /&gt;
* The first way is rather simple: Open a shell and source the environment-setup script (in the example &amp;lt;tt&amp;gt;/opt/dhlinux/nodistro.0/environment-setup-cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi&amp;lt;/tt&amp;gt;). After that start Qt Creator in the same shell session. If you want to use another toolchain, you have start a new shell session, source the corresponding environment-setup and start QtCreator from there.&lt;br /&gt;
* The other possible way is bit more complicated, but in return it is possible to change the toolchain without restarting Qt Creator: In the settings of the kit there is a button for setting the environment of this kit (&amp;quot;Change&amp;quot;-button right of &amp;quot;Environment&amp;quot;). When this button is pressed, a window for editing text opens. There you can set environment variables by the schema &amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;, one variable can be set per line. You cannot simply copy the setup script, because at the script the shell is called and other variables are referenced which isn&#039;t supported by Qt Creator. It is also possible that the setup script imports additional scripts from the &amp;quot;environment-setup.d&amp;quot; directory of each sysroot. &amp;lt;br /&amp;gt; So you have to source the setup script and look what variables have been set and write them and their respective values into the window. &amp;lt;br /&amp;gt; If you want to use another toolchain, than you can change the used kit. An example for configuring the environment of a kit is inside the collapsible box.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;Example for setting the environment variables at the kit&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/opt/dhlinux/nodistro.0/environment-setup-cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;# Check for LD_LIBRARY_PATH being set, which can break SDK and generally is a bad practice&lt;br /&gt;
 # http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN80&lt;br /&gt;
 # http://xahlee.info/UnixResource_dir/_/ldpath.html&lt;br /&gt;
 # Only disable this check if you are absolutely know what you are doing!&lt;br /&gt;
 if [ ! -z &amp;quot;$LD_LIBRARY_PATH&amp;quot; ]; then&lt;br /&gt;
     echo &amp;quot;Your environment is misconfigured, you probably need to &#039;unset LD_LIBRARY_PATH&#039;&amp;quot;&lt;br /&gt;
     echo &amp;quot;but please check why this was set in the first place and that it&#039;s safe to unset.&amp;quot;&lt;br /&gt;
     echo &amp;quot;The SDK will not operate correctly in most cases when LD_LIBRARY_PATH is set.&amp;quot;&lt;br /&gt;
     echo &amp;quot;For more references see:&amp;quot;&lt;br /&gt;
     echo &amp;quot;  http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN80&amp;quot;&lt;br /&gt;
     echo &amp;quot;  http://xahlee.info/UnixResource_dir/_/ldpath.html&amp;quot;&lt;br /&gt;
     return 1&lt;br /&gt;
 fi&lt;br /&gt;
 export SDKTARGETSYSROOT=/opt/dhlinux/nodistro.0/sysroots/cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi&lt;br /&gt;
 export PATH=/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin:/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/sbin:/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/bin:/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/sbin:/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/../x86_64-oesdk-linux/bin:/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi:/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-musl:$PATH&lt;br /&gt;
 export PKG_CONFIG_SYSROOT_DIR=$SDKTARGETSYSROOT&lt;br /&gt;
 export PKG_CONFIG_PATH=$SDKTARGETSYSROOT/usr/lib/pkgconfig:$SDKTARGETSYSROOT/usr/share/pkgconfig&lt;br /&gt;
 export CONFIG_SITE=/opt/dhlinux/nodistro.0/site-config-cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi&lt;br /&gt;
 export OECORE_NATIVE_SYSROOT=&amp;quot;/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux&amp;quot;&lt;br /&gt;
 export OECORE_TARGET_SYSROOT=&amp;quot;$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export OECORE_ACLOCAL_OPTS=&amp;quot;-I /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/share/aclocal&amp;quot;&lt;br /&gt;
 export OECORE_BASELIB=&amp;quot;lib&amp;quot;&lt;br /&gt;
 export OECORE_TARGET_ARCH=&amp;quot;arm&amp;quot;&lt;br /&gt;
 export OECORE_TARGET_OS=&amp;quot;linux-gnueabi&amp;quot;&lt;br /&gt;
 unset command_not_found_handle&lt;br /&gt;
 export CC=&amp;quot;arm-dhlinux-linux-gnueabi-gcc  -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export CXX=&amp;quot;arm-dhlinux-linux-gnueabi-g++  -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export CPP=&amp;quot;arm-dhlinux-linux-gnueabi-gcc -E  -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export AS=&amp;quot;arm-dhlinux-linux-gnueabi-as &amp;quot;&lt;br /&gt;
 export LD=&amp;quot;arm-dhlinux-linux-gnueabi-ld  --sysroot=$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export GDB=arm-dhlinux-linux-gnueabi-gdb&lt;br /&gt;
 export STRIP=arm-dhlinux-linux-gnueabi-strip&lt;br /&gt;
 export RANLIB=arm-dhlinux-linux-gnueabi-ranlib&lt;br /&gt;
 export OBJCOPY=arm-dhlinux-linux-gnueabi-objcopy&lt;br /&gt;
 export OBJDUMP=arm-dhlinux-linux-gnueabi-objdump&lt;br /&gt;
 export READELF=arm-dhlinux-linux-gnueabi-readelf&lt;br /&gt;
 export AR=arm-dhlinux-linux-gnueabi-ar&lt;br /&gt;
 export NM=arm-dhlinux-linux-gnueabi-nm&lt;br /&gt;
 export M4=m4&lt;br /&gt;
 export TARGET_PREFIX=arm-dhlinux-linux-gnueabi-&lt;br /&gt;
 export CONFIGURE_FLAGS=&amp;quot;--target=arm-dhlinux-linux-gnueabi --host=arm-dhlinux-linux-gnueabi --build=x86_64-linux --with-libtool-sysroot=$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export CFLAGS=&amp;quot; -O2 -pipe -g -feliminate-unused-debug-types &amp;quot;&lt;br /&gt;
 export CXXFLAGS=&amp;quot; -O2 -pipe -g -feliminate-unused-debug-types &amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed&amp;quot;&lt;br /&gt;
 export CPPFLAGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export KCFLAGS=&amp;quot;--sysroot=$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export OECORE_DISTRO_VERSION=&amp;quot;0.0.1&amp;quot;&lt;br /&gt;
 export OECORE_SDK_VERSION=&amp;quot;nodistro.0&amp;quot;&lt;br /&gt;
 export ARCH=arm&lt;br /&gt;
 export CROSS_COMPILE=arm-dhlinux-linux-gnueabi-&lt;br /&gt;
 # Append environment subscripts&lt;br /&gt;
 if [ -d &amp;quot;$OECORE_TARGET_SYSROOT/environment-setup.d&amp;quot; ]; then&lt;br /&gt;
     for envfile in $OECORE_TARGET_SYSROOT/environment-setup.d/*.sh; do &lt;br /&gt;
            . $envfile&lt;br /&gt;
     done&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -d &amp;quot;$OECORE_NATIVE_SYSROOT/environment-setup.d&amp;quot; ]; then&lt;br /&gt;
     for envfile in $OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh; do&lt;br /&gt;
            . $envfile&lt;br /&gt;
     done&lt;br /&gt;
 fi&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are additional scripts in the &amp;quot;environment-setup.d&amp;quot;-directories of the sysroots which are included at the main setup-script. These scripts have the following content:&lt;br /&gt;
&lt;br /&gt;
/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/environment-setup.d/cmake.sh:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;export OE_CMAKE_TOOLCHAIN_FILE=&amp;quot;$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake&amp;quot;&lt;br /&gt;
 export OE_CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX=&amp;quot;`echo $OECORE_BASELIB | sed -e s/lib//`&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/environment-setup.d/openssl.sh:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;export PATH=$OECORE_NATIVE_SYSROOT/usr/bin:$PATH&lt;br /&gt;
 export OE_QMAKE_CFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
 export OE_QMAKE_CXXFLAGS=&amp;quot;$CXXFLAGS&amp;quot;&lt;br /&gt;
 export OE_QMAKE_LDFLAGS=&amp;quot;$LDFLAGS&amp;quot;&lt;br /&gt;
 export OE_QMAKE_CC=&amp;quot;$CC&amp;quot;&lt;br /&gt;
 export OE_QMAKE_CXX=&amp;quot;$CXX&amp;quot;&lt;br /&gt;
 export OE_QMAKE_LINK=&amp;quot;$CXX&amp;quot;&lt;br /&gt;
 export OE_QMAKE_AR=$AR&lt;br /&gt;
 export OE_QMAKE_STRIP=$STRIP&lt;br /&gt;
 export QT_CONF_PATH=$OECORE_NATIVE_SYSROOT/usr/bin/qt.conf&lt;br /&gt;
 export OE_QMAKE_LIBDIR_QT=`qmake -query QT_INSTALL_LIBS`&lt;br /&gt;
 export OE_QMAKE_INCDIR_QT=`qmake -query QT_INSTALL_HEADERS`&lt;br /&gt;
 export OE_QMAKE_MOC=$OECORE_NATIVE_SYSROOT/usr/bin/moc&lt;br /&gt;
 export OE_QMAKE_UIC=$OECORE_NATIVE_SYSROOT/usr/bin/uic&lt;br /&gt;
 export OE_QMAKE_RCC=$OECORE_NATIVE_SYSROOT/usr/bin/rcc&lt;br /&gt;
 export OE_QMAKE_QDBUSCPP2XML=$OECORE_NATIVE_SYSROOT/usr/bin/qdbuscpp2xml&lt;br /&gt;
 export OE_QMAKE_QDBUSXML2CPP=$OECORE_NATIVE_SYSROOT/usr/bin/qdbusxml2cpp&lt;br /&gt;
 export OE_QMAKE_QT_CONFIG=`qmake -query QT_INSTALL_LIBS`/mkspecs/qconfig.pri&lt;br /&gt;
 export OE_QMAKE_PATH_HOST_BINS=$OECORE_NATIVE_SYSROOT/usr/bin&lt;br /&gt;
 export QMAKESPEC=`qmake -query QT_INSTALL_LIBS`/mkspecs/linux-oe-g++&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/environment-setup.d/qt5.sh:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;export OPENSSL_CONF=&amp;quot;$OECORE_NATIVE_SYSROOT/usr/lib/ssl-1.1/openssl.cnf&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This results in the following environment configuration:&lt;br /&gt;
&lt;br /&gt;
[[File:Qtcreator-set-environment.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=3429</id>
		<title>Add Yocto SDK with QT5 to QT Creator</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=3429"/>
		<updated>2021-08-02T13:37:01Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Download and install the SDK package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following instructions are based on &#039;&#039;&#039;DHCOM STM32MP1&#039;&#039;&#039; computer on module and Yocto version &amp;quot;dunfell&amp;quot;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepairing your virtual machine ==&lt;br /&gt;
&lt;br /&gt;
Get the [[Virtual Machine for Application Development]].&lt;br /&gt;
&lt;br /&gt;
Install the following package:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install qtcreator qt5default&lt;br /&gt;
&lt;br /&gt;
== Download and install the SDK package ==&lt;br /&gt;
&lt;br /&gt;
Get the [[media:2021-08-02-dhlinux-glibc-x86_64-dh-image-demo-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.zip|QT5 SDK for STM32mp1]]&lt;br /&gt;
&lt;br /&gt;
Unpack the archive and install the toolchain. &lt;br /&gt;
&lt;br /&gt;
 $ sh ./dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.sh&lt;br /&gt;
&lt;br /&gt;
Choose the installation directory (default: /opt/dhlinux/nodistro.0/).&lt;br /&gt;
&lt;br /&gt;
The toolchain is now installed to your system.&lt;br /&gt;
&lt;br /&gt;
== Configure Qt Creator ==&lt;br /&gt;
&lt;br /&gt;
Run QT Creator&lt;br /&gt;
&lt;br /&gt;
In Qt Creator go to Tools &amp;gt; Options &amp;gt; Devices and add your Wandboard as a generic linux device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-device.jpg|550px]]&lt;br /&gt;
&lt;br /&gt;
go to Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run and:&lt;br /&gt;
&lt;br /&gt;
Add a new c++ compiler. Select your compiler: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-g++&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-compiler.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new debugger. Select your debugger: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-gdb&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-debugger.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add your Qt version by selecting the qmake located in /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/qmake&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-qt-version.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new kit selecting your new Qt5 version and compiler and setting the sysroot to /opt/dhlinux/nodistro.0/sysroots/cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi and leave the Qt mkspec empty.&lt;br /&gt;
Then select your device&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-kit.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
If there is a warning/error shown, please click apply between each step.&lt;br /&gt;
&lt;br /&gt;
There is one last point. The SDK comes with an environment-setup which sets some variables that are needed if you want to use the toolchain. There are two ways to get this environment into Qt Creator:&lt;br /&gt;
* The first way is rather simple: Open a shell and source the environment-setup script (in the example &amp;lt;tt&amp;gt;/opt/dhlinux/nodistro.0/environment-setup-cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi&amp;lt;/tt&amp;gt;). After that start Qt Creator in the same shell session. If you want to use another toolchain, you have start a new shell session, source the corresponding environment-setup and start QtCreator from there.&lt;br /&gt;
* The other possible way is bit more complicated, but in return it is possible to change the toolchain without restarting Qt Creator: In the settings of the kit there is a button for setting the environment of this kit (&amp;quot;Change&amp;quot;-button right of &amp;quot;Environment&amp;quot;). When this button is pressed, a window for editing text opens. There you can set environment variables by the schema &amp;lt;variable&amp;gt;=&amp;lt;value&amp;gt;, one variable can be set per line. You cannot simply copy the setup script, because at the script the shell is called and other variables are referenced which isn&#039;t supported by Qt Creator. It is also possible that the setup script imports additional scripts from the &amp;quot;environment-setup.d&amp;quot; directory of each sysroot. &amp;lt;br /&amp;gt; So you have to source the setup script and look what variables have been set and write them and their respective values into the window. &amp;lt;br /&amp;gt; If you want to use another toolchain, than you can change the used kit. An example for configuring the environment of a kit is inside the collapsible box.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot; style=&amp;quot;overflow:auto;&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight:bold;&amp;quot;&amp;gt;Example for setting the environment variables at the kit&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/opt/dhlinux/nodistro.0/environment-setup-cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;# Check for LD_LIBRARY_PATH being set, which can break SDK and generally is a bad practice&lt;br /&gt;
 # http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN80&lt;br /&gt;
 # http://xahlee.info/UnixResource_dir/_/ldpath.html&lt;br /&gt;
 # Only disable this check if you are absolutely know what you are doing!&lt;br /&gt;
 if [ ! -z &amp;quot;$LD_LIBRARY_PATH&amp;quot; ]; then&lt;br /&gt;
     echo &amp;quot;Your environment is misconfigured, you probably need to &#039;unset LD_LIBRARY_PATH&#039;&amp;quot;&lt;br /&gt;
     echo &amp;quot;but please check why this was set in the first place and that it&#039;s safe to unset.&amp;quot;&lt;br /&gt;
     echo &amp;quot;The SDK will not operate correctly in most cases when LD_LIBRARY_PATH is set.&amp;quot;&lt;br /&gt;
     echo &amp;quot;For more references see:&amp;quot;&lt;br /&gt;
     echo &amp;quot;  http://tldp.org/HOWTO/Program-Library-HOWTO/shared-libraries.html#AEN80&amp;quot;&lt;br /&gt;
     echo &amp;quot;  http://xahlee.info/UnixResource_dir/_/ldpath.html&amp;quot;&lt;br /&gt;
     return 1&lt;br /&gt;
 fi&lt;br /&gt;
 export SDKTARGETSYSROOT=/opt/dhlinux/nodistro.0/sysroots/cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi&lt;br /&gt;
 export PATH=/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin:/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/sbin:/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/bin:/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/sbin:/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/../x86_64-oesdk-linux/bin:/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi:/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-musl:$PATH&lt;br /&gt;
 export PKG_CONFIG_SYSROOT_DIR=$SDKTARGETSYSROOT&lt;br /&gt;
 export PKG_CONFIG_PATH=$SDKTARGETSYSROOT/usr/lib/pkgconfig:$SDKTARGETSYSROOT/usr/share/pkgconfig&lt;br /&gt;
 export CONFIG_SITE=/opt/dhlinux/nodistro.0/site-config-cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi&lt;br /&gt;
 export OECORE_NATIVE_SYSROOT=&amp;quot;/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux&amp;quot;&lt;br /&gt;
 export OECORE_TARGET_SYSROOT=&amp;quot;$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export OECORE_ACLOCAL_OPTS=&amp;quot;-I /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/share/aclocal&amp;quot;&lt;br /&gt;
 export OECORE_BASELIB=&amp;quot;lib&amp;quot;&lt;br /&gt;
 export OECORE_TARGET_ARCH=&amp;quot;arm&amp;quot;&lt;br /&gt;
 export OECORE_TARGET_OS=&amp;quot;linux-gnueabi&amp;quot;&lt;br /&gt;
 unset command_not_found_handle&lt;br /&gt;
 export CC=&amp;quot;arm-dhlinux-linux-gnueabi-gcc  -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export CXX=&amp;quot;arm-dhlinux-linux-gnueabi-g++  -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export CPP=&amp;quot;arm-dhlinux-linux-gnueabi-gcc -E  -mthumb -mfpu=neon-vfpv4 -mfloat-abi=hard -mcpu=cortex-a7 --sysroot=$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export AS=&amp;quot;arm-dhlinux-linux-gnueabi-as &amp;quot;&lt;br /&gt;
 export LD=&amp;quot;arm-dhlinux-linux-gnueabi-ld  --sysroot=$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export GDB=arm-dhlinux-linux-gnueabi-gdb&lt;br /&gt;
 export STRIP=arm-dhlinux-linux-gnueabi-strip&lt;br /&gt;
 export RANLIB=arm-dhlinux-linux-gnueabi-ranlib&lt;br /&gt;
 export OBJCOPY=arm-dhlinux-linux-gnueabi-objcopy&lt;br /&gt;
 export OBJDUMP=arm-dhlinux-linux-gnueabi-objdump&lt;br /&gt;
 export READELF=arm-dhlinux-linux-gnueabi-readelf&lt;br /&gt;
 export AR=arm-dhlinux-linux-gnueabi-ar&lt;br /&gt;
 export NM=arm-dhlinux-linux-gnueabi-nm&lt;br /&gt;
 export M4=m4&lt;br /&gt;
 export TARGET_PREFIX=arm-dhlinux-linux-gnueabi-&lt;br /&gt;
 export CONFIGURE_FLAGS=&amp;quot;--target=arm-dhlinux-linux-gnueabi --host=arm-dhlinux-linux-gnueabi --build=x86_64-linux --with-libtool-sysroot=$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export CFLAGS=&amp;quot; -O2 -pipe -g -feliminate-unused-debug-types &amp;quot;&lt;br /&gt;
 export CXXFLAGS=&amp;quot; -O2 -pipe -g -feliminate-unused-debug-types &amp;quot;&lt;br /&gt;
 export LDFLAGS=&amp;quot;-Wl,-O1 -Wl,--hash-style=gnu -Wl,--as-needed&amp;quot;&lt;br /&gt;
 export CPPFLAGS=&amp;quot;&amp;quot;&lt;br /&gt;
 export KCFLAGS=&amp;quot;--sysroot=$SDKTARGETSYSROOT&amp;quot;&lt;br /&gt;
 export OECORE_DISTRO_VERSION=&amp;quot;0.0.1&amp;quot;&lt;br /&gt;
 export OECORE_SDK_VERSION=&amp;quot;nodistro.0&amp;quot;&lt;br /&gt;
 export ARCH=arm&lt;br /&gt;
 export CROSS_COMPILE=arm-dhlinux-linux-gnueabi-&lt;br /&gt;
 # Append environment subscripts&lt;br /&gt;
 if [ -d &amp;quot;$OECORE_TARGET_SYSROOT/environment-setup.d&amp;quot; ]; then&lt;br /&gt;
     for envfile in $OECORE_TARGET_SYSROOT/environment-setup.d/*.sh; do &lt;br /&gt;
            . $envfile&lt;br /&gt;
     done&lt;br /&gt;
 fi&lt;br /&gt;
 if [ -d &amp;quot;$OECORE_NATIVE_SYSROOT/environment-setup.d&amp;quot; ]; then&lt;br /&gt;
     for envfile in $OECORE_NATIVE_SYSROOT/environment-setup.d/*.sh; do&lt;br /&gt;
            . $envfile&lt;br /&gt;
     done&lt;br /&gt;
 fi&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
There are additional scripts in the &amp;quot;environment-setup.d&amp;quot;-directories of the sysroots which are included at the main setup-script. These scripts have the following content:&lt;br /&gt;
&lt;br /&gt;
/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/environment-setup.d/cmake.sh:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;export OE_CMAKE_TOOLCHAIN_FILE=&amp;quot;$OECORE_NATIVE_SYSROOT/usr/share/cmake/OEToolchainConfig.cmake&amp;quot;&lt;br /&gt;
 export OE_CMAKE_FIND_LIBRARY_CUSTOM_LIB_SUFFIX=&amp;quot;`echo $OECORE_BASELIB | sed -e s/lib//`&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/environment-setup.d/openssl.sh:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;export PATH=$OECORE_NATIVE_SYSROOT/usr/bin:$PATH&lt;br /&gt;
 export OE_QMAKE_CFLAGS=&amp;quot;$CFLAGS&amp;quot;&lt;br /&gt;
 export OE_QMAKE_CXXFLAGS=&amp;quot;$CXXFLAGS&amp;quot;&lt;br /&gt;
 export OE_QMAKE_LDFLAGS=&amp;quot;$LDFLAGS&amp;quot;&lt;br /&gt;
 export OE_QMAKE_CC=&amp;quot;$CC&amp;quot;&lt;br /&gt;
 export OE_QMAKE_CXX=&amp;quot;$CXX&amp;quot;&lt;br /&gt;
 export OE_QMAKE_LINK=&amp;quot;$CXX&amp;quot;&lt;br /&gt;
 export OE_QMAKE_AR=$AR&lt;br /&gt;
 export OE_QMAKE_STRIP=$STRIP&lt;br /&gt;
 export QT_CONF_PATH=$OECORE_NATIVE_SYSROOT/usr/bin/qt.conf&lt;br /&gt;
 export OE_QMAKE_LIBDIR_QT=`qmake -query QT_INSTALL_LIBS`&lt;br /&gt;
 export OE_QMAKE_INCDIR_QT=`qmake -query QT_INSTALL_HEADERS`&lt;br /&gt;
 export OE_QMAKE_MOC=$OECORE_NATIVE_SYSROOT/usr/bin/moc&lt;br /&gt;
 export OE_QMAKE_UIC=$OECORE_NATIVE_SYSROOT/usr/bin/uic&lt;br /&gt;
 export OE_QMAKE_RCC=$OECORE_NATIVE_SYSROOT/usr/bin/rcc&lt;br /&gt;
 export OE_QMAKE_QDBUSCPP2XML=$OECORE_NATIVE_SYSROOT/usr/bin/qdbuscpp2xml&lt;br /&gt;
 export OE_QMAKE_QDBUSXML2CPP=$OECORE_NATIVE_SYSROOT/usr/bin/qdbusxml2cpp&lt;br /&gt;
 export OE_QMAKE_QT_CONFIG=`qmake -query QT_INSTALL_LIBS`/mkspecs/qconfig.pri&lt;br /&gt;
 export OE_QMAKE_PATH_HOST_BINS=$OECORE_NATIVE_SYSROOT/usr/bin&lt;br /&gt;
 export QMAKESPEC=`qmake -query QT_INSTALL_LIBS`/mkspecs/linux-oe-g++&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
/opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/environment-setup.d/qt5.sh:&lt;br /&gt;
&lt;br /&gt;
 &amp;lt;tt&amp;gt;export OPENSSL_CONF=&amp;quot;$OECORE_NATIVE_SYSROOT/usr/lib/ssl-1.1/openssl.cnf&amp;quot;&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This results in the following environment configuration:&lt;br /&gt;
&lt;br /&gt;
[[File:Qtcreator-set-environment.png|1000px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/div&amp;gt;&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_STM32MP1-D2&amp;diff=3272</id>
		<title>DHCOM STM32MP1-D2</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_STM32MP1-D2&amp;diff=3272"/>
		<updated>2021-04-09T13:32:27Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Download binaries/images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Page Under Construction.png|600px|DHCOM STM32MP1-D2]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|__TOC__&lt;br /&gt;
|[[Image:DHCOM STM32MP1 Pers medres.jpg|600px|DHCOM STM32MP1-D2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 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;Dual ARM Cortex®-A7 up to 650 MHz and Single ARM Cortex®-M4 up to 209 MHz&#039;&#039;&#039;&lt;br /&gt;
* 3D GPU OpenGL® ES2.0 up to 533 MHz, Power Management: STPMIC1A&lt;br /&gt;
* TrustZone, cryptography, hash, secure boot&lt;br /&gt;
* DDR3L: 256 / 512 / 1024 Mbyte (32 bit)&lt;br /&gt;
* eMMC flash: 4 / 8 / 16 GB&lt;br /&gt;
* 2 MByte SPI boot flash&lt;br /&gt;
* 256 byte EEPROM&lt;br /&gt;
* WiFi / Bluetooth: WiFi IEEE 802.11 a/b/g/n, 802.11j (hosted mode) with dual band, Bluetooth® v5.0 (BR/EDR/BLE), PCB antenna and U.FL antenna connector&lt;br /&gt;
* On-board microSD card socket &lt;br /&gt;
* RTC with temperature compensation ± 3.0 ppm between -40 to +85°C&lt;br /&gt;
* Supply voltage range: 3.3 or 5.0 VDC / typ. 1 W-1.5 W (without WiFi/BT)&lt;br /&gt;
* Industrial temperature range (-40°C to +85°C)&lt;br /&gt;
* SODIMM-200 socket with DHCOM pin assignment&lt;br /&gt;
* JTAG debug connection via FFC plug connector or Tag-Connect&lt;br /&gt;
* Bus interface: 16 bit asynchron address/data bus, 1 CS&lt;br /&gt;
* Ethernet 1: 10 / 100 Mbit with PHY, IEEE 1588v2&lt;br /&gt;
* Ethernet 2: 10 / 100 Mbit with PHY&lt;br /&gt;
* MMC/SD interface:	4 bit mode&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* CAN 1: V2.0B and CAN FD V1.0, TTCAN (time triggered)&lt;br /&gt;
* CAN 2: V2.0B and CAN FD V1.0&lt;br /&gt;
* UART 1: Rx / Tx / Rts / Cts, up to 12.5 Mbit/s&lt;br /&gt;
* UART 2: Rx / Tx / Rts / Cts, up to 12.5 Mbit/s&lt;br /&gt;
* UART 3: Rx / Tx, up to 12.5 Mbit/s&lt;br /&gt;
* SPI 1: max. 50 Mbit/s&lt;br /&gt;
* I2C 1: max. 1 Mbit/s&lt;br /&gt;
* I2C 2: max. 1 Mbit/s&lt;br /&gt;
* USB host 1: High-Speed&lt;br /&gt;
* USB OTG: High-Speed&lt;br /&gt;
* Parallel camera: 10 bit interface up to 140 Mbytes/s&lt;br /&gt;
* Display RGB: Max. 1366 x 768 pixels, 24 bit&lt;br /&gt;
* MIPI®-DSI 2 data lanes up to 1 GHz each&lt;br /&gt;
* Touch: 4-wire&lt;br /&gt;
* I²S Audio interface&lt;br /&gt;
* GPIOs: 24 IOs&lt;br /&gt;
* PWM: 1x 16 bit&lt;br /&gt;
* Analog: 4x 16 bit ADC and 2x 12 bit DAC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*[[DHCOM STM32MP1 Hardware|Hardware and PCNs]]&lt;br /&gt;
&lt;br /&gt;
== Software Support ==&lt;br /&gt;
*[[DHCOM STM32MP1 Bootloader U-Boot|STM32MP1: Bootloader U-Boot]]&lt;br /&gt;
*[[DHCOM STM32MP1 Linux|STM32MP1: Linux]]&lt;br /&gt;
*[[DHCOM STM32MP1 Yocto|STM32MP1: Yocto]]&lt;br /&gt;
*[[OpenOCD JTAG on STM32MP1|How to use JTAG on STM32MP1]]&lt;br /&gt;
*[[IPC|Inter‐Processor Communication (Cortex-A7 to Cortex-M4)]]&lt;br /&gt;
&lt;br /&gt;
== BSP Sources ==&lt;br /&gt;
==== [https://www.denx.de/wiki/U-Boot U-Boot] ====&lt;br /&gt;
* [https://github.com/dh-electronics/u-boot-stm32mp1/tree/dev/2020.07_dhsom DH U-Boot (based on v2020.07)]&lt;br /&gt;
&lt;br /&gt;
==== [https://www.kernel.org Linux Kernel and Yocto] ====&lt;br /&gt;
* Mainline&lt;br /&gt;
* [https://github.com/dh-electronics/linux-stm32mp1/tree/dev/5.10.17_dhsom DH 5.10.17 Development]&lt;br /&gt;
* [https://github.com/dh-electronics/dhcom_stm32mp1-bsp-platform &#039;&#039;&#039;NEW&#039;&#039;&#039; Yocto meta layer --&amp;gt; Github]&lt;br /&gt;
&lt;br /&gt;
== Download binaries/images ==&lt;br /&gt;
Note: Based on kernel 5.10.x and Yocto version dunfell&lt;br /&gt;
* [[media:Dh-image-demo-dh-stm32mp1-dhcom-pdk2-20210409.wic.xz|&#039;&#039;&#039;NEW&#039;&#039;&#039; DH Mainline based Starter Image]]&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_STM32MP1-D2&amp;diff=3250</id>
		<title>DHCOM STM32MP1-D2</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_STM32MP1-D2&amp;diff=3250"/>
		<updated>2021-02-25T10:26:56Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Linux Kernel and Yocto */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Page Under Construction.png|600px|DHCOM STM32MP1-D2]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|__TOC__&lt;br /&gt;
|[[Image:DHCOM STM32MP1 Pers medres.jpg|600px|DHCOM STM32MP1-D2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 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;Dual ARM Cortex®-A7 up to 650 MHz and Single ARM Cortex®-M4 up to 209 MHz&#039;&#039;&#039;&lt;br /&gt;
* 3D GPU OpenGL® ES2.0 up to 533 MHz, Power Management: STPMIC1A&lt;br /&gt;
* TrustZone, cryptography, hash, secure boot&lt;br /&gt;
* DDR3L: 256 / 512 / 1024 Mbyte (32 bit)&lt;br /&gt;
* eMMC flash: 4 / 8 / 16 GB&lt;br /&gt;
* 2 MByte SPI boot flash&lt;br /&gt;
* 256 byte EEPROM&lt;br /&gt;
* WiFi / Bluetooth: WiFi IEEE 802.11 a/b/g/n, 802.11j (hosted mode) with dual band, Bluetooth® v5.0 (BR/EDR/BLE), PCB antenna and U.FL antenna connector&lt;br /&gt;
* On-board microSD card socket &lt;br /&gt;
* RTC with temperature compensation ± 3.0 ppm between -40 to +85°C&lt;br /&gt;
* Supply voltage range: 3.3 or 5.0 VDC / typ. 1 W-1.5 W (without WiFi/BT)&lt;br /&gt;
* Industrial temperature range (-40°C to +85°C)&lt;br /&gt;
* SODIMM-200 socket with DHCOM pin assignment&lt;br /&gt;
* JTAG debug connection via FFC plug connector or Tag-Connect&lt;br /&gt;
* Bus interface: 16 bit asynchron address/data bus, 1 CS&lt;br /&gt;
* Ethernet 1: 10 / 100 Mbit with PHY, IEEE 1588v2&lt;br /&gt;
* Ethernet 2: 10 / 100 Mbit with PHY&lt;br /&gt;
* MMC/SD interface:	4 bit mode&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* CAN 1: V2.0B and CAN FD V1.0, TTCAN (time triggered)&lt;br /&gt;
* CAN 2: V2.0B and CAN FD V1.0&lt;br /&gt;
* UART 1: Rx / Tx / Rts / Cts, up to 12.5 Mbit/s&lt;br /&gt;
* UART 2: Rx / Tx / Rts / Cts, up to 12.5 Mbit/s&lt;br /&gt;
* UART 3: Rx / Tx, up to 12.5 Mbit/s&lt;br /&gt;
* SPI 1: max. 50 Mbit/s&lt;br /&gt;
* I2C 1: max. 1 Mbit/s&lt;br /&gt;
* I2C 2: max. 1 Mbit/s&lt;br /&gt;
* USB host 1: High-Speed&lt;br /&gt;
* USB OTG: High-Speed&lt;br /&gt;
* Parallel camera: 10 bit interface up to 140 Mbytes/s&lt;br /&gt;
* Display RGB: Max. 1366 x 768 pixels, 24 bit&lt;br /&gt;
* MIPI®-DSI 2 data lanes up to 1 GHz each&lt;br /&gt;
* Touch: 4-wire&lt;br /&gt;
* I²S Audio interface&lt;br /&gt;
* GPIOs: 24 IOs&lt;br /&gt;
* PWM: 1x 16 bit&lt;br /&gt;
* Analog: 4x 16 bit ADC and 2x 12 bit DAC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*[[DHCOM STM32MP1 Hardware|Hardware and PCNs]]&lt;br /&gt;
&lt;br /&gt;
== Software Support ==&lt;br /&gt;
*[[DHCOM STM32MP1 Bootloader U-Boot|STM32MP1: Bootloader U-Boot]]&lt;br /&gt;
*[[DHCOM STM32MP1 Linux|STM32MP1: Linux]]&lt;br /&gt;
*[[DHCOM STM32MP1 Yocto|STM32MP1: Yocto]]&lt;br /&gt;
*[[OpenOCD JTAG on STM32MP1|How to use JTAG on STM32MP1]]&lt;br /&gt;
*[[IPC|Inter‐Processor Communication (Cortex-A7 to Cortex-M4)]]&lt;br /&gt;
&lt;br /&gt;
== BSP Sources ==&lt;br /&gt;
==== [https://www.denx.de/wiki/U-Boot U-Boot] ====&lt;br /&gt;
* [https://github.com/dh-electronics/u-boot-stm32mp1/tree/dev/2020.07_dhsom DH U-Boot (based on v2020.07)]&lt;br /&gt;
&lt;br /&gt;
==== [https://www.kernel.org Linux Kernel and Yocto] ====&lt;br /&gt;
* Mainline&lt;br /&gt;
* [https://github.com/dh-electronics/linux-stm32mp1/tree/dev/5.10.17_dhsom DH 5.10.17 Development]&lt;br /&gt;
* [https://github.com/dh-electronics/dhcom_stm32mp1-bsp-platform &#039;&#039;&#039;NEW&#039;&#039;&#039; Yocto meta layer --&amp;gt; Github]&lt;br /&gt;
&lt;br /&gt;
== Download binaries/images ==&lt;br /&gt;
Note: Based on kernel 5.10.x and Yocto version dunfell&lt;br /&gt;
* [https://xxx &#039;&#039;&#039;NEW&#039;&#039;&#039; DH Mainline based Starter Image]&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=3249</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=3249"/>
		<updated>2021-02-12T12:21:30Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Yocto Builds */&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 9 &amp;quot;Stretch&amp;quot; VM image (for VMware and VirtualBox) ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* Get [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0 VMware player] or [https://www.virtualbox.org/wiki/Downloads VirtualBox]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:RND Debian Stretch v2.0.Vx.zip|Debian 9 &amp;quot;Stretch&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Default password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Default password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;font color=&amp;quot;#FF1010&amp;quot;&amp;gt;Remark: For security reasons, you must set your own password when starting the virtual machine for the first time:&amp;lt;/font&amp;gt;&lt;br /&gt;
::# Enter default user devel password (devel)&lt;br /&gt;
::# Enter default user devel password again (devel)&lt;br /&gt;
::# Enter your own user devel password&lt;br /&gt;
::# Enter your own user devel password again&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;
| v2.0.Vx || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Stretch v2.0.Vx.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - First release version of Debian 9 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv7 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;ARM GCC 8.3&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;Linaro GCC 7.4&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;Linaro GCC 6.3&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;Linaro GCC 4.9&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv5 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;CodeSourcery GCC 4.5&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/CodeSourcery-2011.03-41/bin/arm-none-linux-gnueabi-&amp;lt;/tt&amp;gt;&lt;br /&gt;
=== Yocto Builds ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you are going to set up any DH electronics Yocto project by using the repo tool, you need to install Python version 3.6 or later.&lt;br /&gt;
&lt;br /&gt;
This versions are not provided by official Debian Stretch package repositories.&lt;br /&gt;
To manually install Python 3.6.9 , please follow the instructions:&lt;br /&gt;
 $: sudo apt install libsqlite3-dev&lt;br /&gt;
 $: wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz&lt;br /&gt;
 $: tar xvf Python-3.6.9.tgz&lt;br /&gt;
 $: cd Python-3.6.9&lt;br /&gt;
 $: ./configure --enable-optimizations --enable-shared&lt;br /&gt;
 $: make -j8&lt;br /&gt;
 $: sudo make install&lt;br /&gt;
 $: sudo /sbin/ldconfig -v&lt;br /&gt;
&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VM image (for VMware) ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_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.3.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;&amp;lt;font color=&amp;quot;#FF1010&amp;quot;&amp;gt;&#039;&#039;&#039;Important info (Feb/2018):&#039;&#039;&#039; Don&#039;t update the system, because it will brake the cross compiler. If you are asked to upgrade, say NO!&amp;lt;/font&amp;gt;&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.3 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.3.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Compatibility VMware player 5.0&amp;lt;br/&amp;gt;- Ready for yocto build&amp;lt;br/&amp;gt;- Build environment for DHCOM i.MX6 Qt5.7.1 / Qt5.9.1&amp;lt;br/&amp;gt;- Add some useful tools&lt;br /&gt;
|- &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;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv7 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;Debian Multiarch Cross Toolchain GCC 4.9&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
:::: The Cross Toolchains is 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;
:::: 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;
::* &#039;&#039;&#039;Linaro GCC 4.9&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv5 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;Debian Multiarch Cross Toolchain&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=arm-linux-gnueabi-&amp;lt;/tt&amp;gt;&lt;br /&gt;
:::: The Cross Toolchains is 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;
:::: 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;
::* &#039;&#039;&#039;CodeSourcery GCC 4.5&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/CodeSourcery-2011.03-41/bin/arm-none-linux-gnueabi-&amp;lt;/tt&amp;gt;&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; VM image (for VMware) ==&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;
=== Installed Toolchains ===&lt;br /&gt;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv5 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;Debian Multiarch Cross Toolchain GCC 4.3&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=arm-linux-gnueabi-&amp;lt;/tt&amp;gt;&lt;br /&gt;
:::: The Cross Toolchains is 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;
:::: 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;
::* &#039;&#039;&#039;CodeSourcery GCC 4.5&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-&amp;lt;/tt&amp;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;
== 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 (up to Debian Jessie)&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;
* bootargs for nfs root (since Debian Stretch)&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/,nfsvers=3 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;
== 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>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=3232</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=3232"/>
		<updated>2021-02-03T15:06:42Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Debian 9 &amp;quot;Stretch&amp;quot; VM image (for VMware and VirtualBox) */&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 9 &amp;quot;Stretch&amp;quot; VM image (for VMware and VirtualBox) ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* Get [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0 VMware player] or [https://www.virtualbox.org/wiki/Downloads VirtualBox]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:RND Debian Stretch v2.0.Vx.zip|Debian 9 &amp;quot;Stretch&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Default password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Default password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;font color=&amp;quot;#FF1010&amp;quot;&amp;gt;Remark: For security reasons, you must set your own password when starting the virtual machine for the first time:&amp;lt;/font&amp;gt;&lt;br /&gt;
::# Enter default user devel password (devel)&lt;br /&gt;
::# Enter default user devel password again (devel)&lt;br /&gt;
::# Enter your own user devel password&lt;br /&gt;
::# Enter your own user devel password again&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;
| v2.0.Vx || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Stretch v2.0.Vx.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - First release version of Debian 9 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv7 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;ARM GCC 8.3&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;Linaro GCC 7.4&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;Linaro GCC 6.3&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;Linaro GCC 4.9&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv5 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;CodeSourcery GCC 4.5&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/CodeSourcery-2011.03-41/bin/arm-none-linux-gnueabi-&amp;lt;/tt&amp;gt;&lt;br /&gt;
=== Yocto Builds ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you are going to set up any DH electronics Yocto project by using the repo tool, you need to install Python version 3.6 or later.&lt;br /&gt;
&lt;br /&gt;
This versions are not provided by official Debian Stretch package repositories.&lt;br /&gt;
To manually install Python 3.6.9 , please follow the instructions:&lt;br /&gt;
 $: wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz&lt;br /&gt;
 $: tar xvf Python-3.6.9.tgz&lt;br /&gt;
 $: cd Python-3.6.9&lt;br /&gt;
 $: ./configure --enable-optimizations --enable-shared&lt;br /&gt;
 $: make -j8&lt;br /&gt;
 $: sudo make install&lt;br /&gt;
 $: sudo /sbin/ldconfig -v&lt;br /&gt;
&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VM image (for VMware) ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_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.3.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;&amp;lt;font color=&amp;quot;#FF1010&amp;quot;&amp;gt;&#039;&#039;&#039;Important info (Feb/2018):&#039;&#039;&#039; Don&#039;t update the system, because it will brake the cross compiler. If you are asked to upgrade, say NO!&amp;lt;/font&amp;gt;&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.3 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.3.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Compatibility VMware player 5.0&amp;lt;br/&amp;gt;- Ready for yocto build&amp;lt;br/&amp;gt;- Build environment for DHCOM i.MX6 Qt5.7.1 / Qt5.9.1&amp;lt;br/&amp;gt;- Add some useful tools&lt;br /&gt;
|- &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;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv7 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;Debian Multiarch Cross Toolchain GCC 4.9&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
:::: The Cross Toolchains is 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;
:::: 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;
::* &#039;&#039;&#039;Linaro GCC 4.9&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv5 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;Debian Multiarch Cross Toolchain&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=arm-linux-gnueabi-&amp;lt;/tt&amp;gt;&lt;br /&gt;
:::: The Cross Toolchains is 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;
:::: 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;
::* &#039;&#039;&#039;CodeSourcery GCC 4.5&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/CodeSourcery-2011.03-41/bin/arm-none-linux-gnueabi-&amp;lt;/tt&amp;gt;&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; VM image (for VMware) ==&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;
=== Installed Toolchains ===&lt;br /&gt;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv5 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;Debian Multiarch Cross Toolchain GCC 4.3&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=arm-linux-gnueabi-&amp;lt;/tt&amp;gt;&lt;br /&gt;
:::: The Cross Toolchains is 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;
:::: 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;
::* &#039;&#039;&#039;CodeSourcery GCC 4.5&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-&amp;lt;/tt&amp;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;
== 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 (up to Debian Jessie)&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;
* bootargs for nfs root (since Debian Stretch)&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/,nfsvers=3 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;
== 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>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Template:DebianVM_Development&amp;diff=3227</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=3227"/>
		<updated>2021-01-25T15:46:17Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Debian 9 &amp;quot;Stretch&amp;quot; VM image (for VMware and VirtualBox) */&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 9 &amp;quot;Stretch&amp;quot; VM image (for VMware and VirtualBox) ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* Get [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_0 VMware player] or [https://www.virtualbox.org/wiki/Downloads VirtualBox]&lt;br /&gt;
  &amp;lt;!-- Old Link: http://www.vmware.com/go/get-player-de --&amp;gt;&lt;br /&gt;
* [[media:RND Debian Stretch v2.0.Vx.zip|Debian 9 &amp;quot;Stretch&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;Default password for devel user: &#039;&#039;&#039;devel&#039;&#039;&#039;&amp;lt;br/&amp;gt;Default password for root user: &#039;&#039;&#039;root&#039;&#039;&#039;&lt;br /&gt;
: &amp;lt;font color=&amp;quot;#FF1010&amp;quot;&amp;gt;Remark: For security reasons, you must set your own password when starting the virtual machine for the first time:&amp;lt;/font&amp;gt;&lt;br /&gt;
::# Enter default user devel password (devel)&lt;br /&gt;
::# Enter default user devel password again (devel)&lt;br /&gt;
::# Enter your own user devel password&lt;br /&gt;
::# Enter your own user devel password again&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;
| v2.0.Vx || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Stretch v2.0.Vx.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - First release version of Debian 9 VM&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Installed Toolchains ===&lt;br /&gt;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv7 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;ARM GCC 8.3&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-arm-8.3-2019.03-x86_64-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt; &lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;Linaro GCC 7.4&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-linaro-7.4.1-2019.02-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;Linaro GCC 6.3&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
::* &#039;&#039;&#039;Linaro GCC 4.9&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv5 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;CodeSourcery GCC 4.5&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/CodeSourcery-2011.03-41/bin/arm-none-linux-gnueabi-&amp;lt;/tt&amp;gt;&lt;br /&gt;
=== Yocto Builds ===&lt;br /&gt;
&#039;&#039;&#039;Note:&#039;&#039;&#039; If you are going to set up any DH electronics Yocto project by using the repo tool, you need to install Python version 3.6 or later.&lt;br /&gt;
&lt;br /&gt;
This versions are not provided by official Debian Stretch package repositories.&lt;br /&gt;
To manually install Python 3.6.9 , please follow the instructions:&lt;br /&gt;
 $: wget https://www.python.org/ftp/python/3.6.9/Python-3.6.9.tgz&lt;br /&gt;
 $: tar xvf Python-3.6.9.tgz&lt;br /&gt;
 $: cd Python-3.6.9&lt;br /&gt;
 $: ./configure --enable-optimizations --enable-shared&lt;br /&gt;
 $: make -j8&lt;br /&gt;
 $: sudo make altinstall&lt;br /&gt;
&lt;br /&gt;
== Debian 8 &amp;quot;Jessie&amp;quot; VM image (for VMware) ==&lt;br /&gt;
=== Get the virtual machine ===&lt;br /&gt;
* [https://my.vmware.com/web/vmware/free#desktop_end_user_computing/vmware_workstation_player/12_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.3.zip|Debian 8 &amp;quot;Jessie&amp;quot; VMware Image]] &amp;lt;br/&amp;gt;&amp;lt;font color=&amp;quot;#FF1010&amp;quot;&amp;gt;&#039;&#039;&#039;Important info (Feb/2018):&#039;&#039;&#039; Don&#039;t update the system, because it will brake the cross compiler. If you are asked to upgrade, say NO!&amp;lt;/font&amp;gt;&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.3 || style=&amp;quot;text-align: left;width: 13em&amp;quot; | Debian Jessie v1.3.zip || style=&amp;quot;text-align: left;width: 40em&amp;quot; | - Debian Security updates&amp;lt;br/&amp;gt;- Compatibility VMware player 5.0&amp;lt;br/&amp;gt;- Ready for yocto build&amp;lt;br/&amp;gt;- Build environment for DHCOM i.MX6 Qt5.7.1 / Qt5.9.1&amp;lt;br/&amp;gt;- Add some useful tools&lt;br /&gt;
|- &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;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv7 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;Debian Multiarch Cross Toolchain GCC 4.9&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
:::: The Cross Toolchains is 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;
:::: 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;
::* &#039;&#039;&#039;Linaro GCC 4.9&#039;&#039;&#039;&lt;br /&gt;
:::: armhf: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/gcc-linaro-4.9-2014.11-x86_64_arm-linux-gnueabihf/bin/arm-linux-gnueabihf-&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv5 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;Debian Multiarch Cross Toolchain&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=arm-linux-gnueabi-&amp;lt;/tt&amp;gt;&lt;br /&gt;
:::: The Cross Toolchains is 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;
:::: 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;
::* &#039;&#039;&#039;CodeSourcery GCC 4.5&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/CodeSourcery-2011.03-41/bin/arm-none-linux-gnueabi-&amp;lt;/tt&amp;gt;&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; VM image (for VMware) ==&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;
=== Installed Toolchains ===&lt;br /&gt;
:* &#039;&#039;&#039;Used for building the Linux Kernel for our ARMv5 DHCOM devices.&#039;&#039;&#039;&lt;br /&gt;
::* &#039;&#039;&#039;Debian Multiarch Cross Toolchain GCC 4.3&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=arm-linux-gnueabi-&amp;lt;/tt&amp;gt;&lt;br /&gt;
:::: The Cross Toolchains is 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;
:::: 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;
::* &#039;&#039;&#039;CodeSourcery GCC 4.5&#039;&#039;&#039;&lt;br /&gt;
:::: armel: &amp;lt;tt&amp;gt;CROSS_COMPILE=/opt/CodeSourcery/Sourcery_G++_Lite/bin/arm-none-linux-gnueabi-&amp;lt;/tt&amp;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;
== 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 (up to Debian Jessie)&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;
* bootargs for nfs root (since Debian Stretch)&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/,nfsvers=3 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;
== 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>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_STM32MP1_Yocto&amp;diff=3211</id>
		<title>DHCOM STM32MP1 Yocto</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_STM32MP1_Yocto&amp;diff=3211"/>
		<updated>2020-11-17T13:05:26Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: Created page with &amp;quot;For general information about the Yocto Project please refer to the official [https://www.yoctoproject.org/ Website]. &amp;quot;Yocto is not an embedded Linux distribution – it creat...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For general information about the Yocto Project please refer to the official [https://www.yoctoproject.org/ Website]. &amp;quot;Yocto is not an embedded Linux distribution – it creates a custom one for you.&amp;quot; This says that if you are using Yocto to build your system image &#039;&#039;&#039;you are the distributor&#039;&#039;&#039;. If you&#039;re not aware of what this means for you please contact us.   &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Requirements hardware and software ==&lt;br /&gt;
* Linux-based (Debian/Ubuntu is recommended) host system to use for building Linux/Yocto&lt;br /&gt;
* min 4GB RAM / &amp;gt; 8GB RAM are recommended&lt;br /&gt;
* disk space (depending on image to build about 80 GB)&lt;br /&gt;
* a microSD card-reader to write the generated image to the microSD card&lt;br /&gt;
&lt;br /&gt;
== Supported Stable Branch ==&lt;br /&gt;
With our OpenEmbedded / Yocto BSP Layer for DHCOM STM32MP1 we support the following branches:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:75px; width:300px;&amp;quot;&lt;br /&gt;
! Name !! Version&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Zeus (deprecated) || 3.0 &lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Dunfell|| 3.1&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Setup Yocto Build System &amp;amp; Build Image ==&lt;br /&gt;
&lt;br /&gt;
Please refer to the build instructions in the repository README.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:75px; width:300px;&amp;quot;&lt;br /&gt;
! Name &lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [https://github.com/dh-electronics/dhcom_stm32mp1-bsp-platform/tree/zeus Zeus (deprecated)]&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [https://github.com/dh-electronics/dhcom_stm32mp1-bsp-platform/tree/dunfell Dunfell]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Example Configurations ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Add Yocto SDK with QT5 to QT Creator | Add Yocto SDK with QT5 to QT Creator]]&#039;&#039;&#039;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=DHCOM_STM32MP1-D2&amp;diff=3210</id>
		<title>DHCOM STM32MP1-D2</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=DHCOM_STM32MP1-D2&amp;diff=3210"/>
		<updated>2020-11-17T12:46:39Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:Page Under Construction.png|600px|DHCOM STM32MP1-D2]]&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|__TOC__&lt;br /&gt;
|[[Image:DHCOM STM32MP1 Pers medres.jpg|600px|DHCOM STM32MP1-D2]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== 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;Dual ARM Cortex®-A7 up to 650 MHz and Single ARM Cortex®-M4 up to 209 MHz&#039;&#039;&#039;&lt;br /&gt;
* 3D GPU OpenGL® ES2.0 up to 533 MHz, Power Management: STPMIC1A&lt;br /&gt;
* TrustZone, cryptography, hash, secure boot&lt;br /&gt;
* DDR3L: 256 / 512 / 1024 Mbyte (32 bit)&lt;br /&gt;
* eMMC flash: 4 / 8 / 16 GB&lt;br /&gt;
* 2 MByte SPI boot flash&lt;br /&gt;
* 256 byte EEPROM&lt;br /&gt;
* WiFi / Bluetooth: WiFi IEEE 802.11 a/b/g/n, 802.11j (hosted mode) with dual band, Bluetooth® v5.0 (BR/EDR/BLE), PCB antenna and U.FL antenna connector&lt;br /&gt;
* On-board microSD card socket &lt;br /&gt;
* RTC with temperature compensation ± 3.0 ppm between -40 to +85°C&lt;br /&gt;
* Supply voltage range: 3.3 or 5.0 VDC / typ. 1 W-1.5 W (without WiFi/BT)&lt;br /&gt;
* Industrial temperature range (-40°C to +85°C)&lt;br /&gt;
* SODIMM-200 socket with DHCOM pin assignment&lt;br /&gt;
* JTAG debug connection via FFC plug connector or Tag-Connect&lt;br /&gt;
* Bus interface: 16 bit asynchron address/data bus, 1 CS&lt;br /&gt;
* Ethernet 1: 10 / 100 Mbit with PHY, IEEE 1588v2&lt;br /&gt;
* Ethernet 2: 10 / 100 Mbit with PHY&lt;br /&gt;
* MMC/SD interface:	4 bit mode&lt;br /&gt;
|valign=&amp;quot;top&amp;quot; style=&amp;quot;border: 0pt;&amp;quot; | &lt;br /&gt;
* CAN 1: V2.0B and CAN FD V1.0, TTCAN (time triggered)&lt;br /&gt;
* CAN 2: V2.0B and CAN FD V1.0&lt;br /&gt;
* UART 1: Rx / Tx / Rts / Cts, up to 12.5 Mbit/s&lt;br /&gt;
* UART 2: Rx / Tx / Rts / Cts, up to 12.5 Mbit/s&lt;br /&gt;
* UART 3: Rx / Tx, up to 12.5 Mbit/s&lt;br /&gt;
* SPI 1: max. 50 Mbit/s&lt;br /&gt;
* I2C 1: max. 1 Mbit/s&lt;br /&gt;
* I2C 2: max. 1 Mbit/s&lt;br /&gt;
* USB host 1: High-Speed&lt;br /&gt;
* USB OTG: High-Speed&lt;br /&gt;
* Parallel camera: 10 bit interface up to 140 Mbytes/s&lt;br /&gt;
* Display RGB: Max. 1366 x 768 pixels, 24 bit&lt;br /&gt;
* MIPI®-DSI 2 data lanes up to 1 GHz each&lt;br /&gt;
* Touch: 4-wire&lt;br /&gt;
* I²S Audio interface&lt;br /&gt;
* GPIOs: 24 IOs&lt;br /&gt;
* PWM: 1x 16 bit&lt;br /&gt;
* Analog: 4x 16 bit ADC and 2x 12 bit DAC&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
*[[DHCOM STM32MP1 Hardware|Hardware and PCNs]]&lt;br /&gt;
&lt;br /&gt;
== Software Support ==&lt;br /&gt;
*[[DHCOM STM32MP1 Bootloader U-Boot|STM32MP1: Bootloader U-Boot]]&lt;br /&gt;
*[[DHCOM STM32MP1 Linux|STM32MP1: Linux]]&lt;br /&gt;
*[[DHCOM STM32MP1 Yocto|STM32MP1: Yocto]]&lt;br /&gt;
*[[OpenOCD JTAG on STM32MP1|How to use JTAG on STM32MP1]]&lt;br /&gt;
*[[IPC|Inter‐Processor Communication (Cortex-A7 to Cortex-M4)]]&lt;br /&gt;
&lt;br /&gt;
== BSP Sources ==&lt;br /&gt;
==== [https://www.denx.de/wiki/U-Boot U-Boot] ====&lt;br /&gt;
* [https://github.com/dh-electronics/u-boot-stm32mp1/tree/dev/2020.07_dhsom DH U-Boot (based on v2020.07)]&lt;br /&gt;
&lt;br /&gt;
==== [https://www.kernel.org Linux Kernel] ====&lt;br /&gt;
* Mainline&lt;br /&gt;
:* [https://github.com/dh-electronics/linux-stm32mp1/tree/dev/5.4.69_dhsom DH 5.4.69 Development]&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2916</id>
		<title>Add Yocto SDK with QT5 to QT Creator</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2916"/>
		<updated>2020-05-25T07:31:25Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Download and install the SDK package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following instructions are based on &#039;&#039;&#039;DHCOM STM32MP1&#039;&#039;&#039; computer on module and Yocto version &amp;quot;zeus&amp;quot;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepairing your virtual machine ==&lt;br /&gt;
&lt;br /&gt;
Get the [[Virtual Machine for Application Development]].&lt;br /&gt;
&lt;br /&gt;
Install the following package:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install qtcreator qt5default&lt;br /&gt;
&lt;br /&gt;
== Download and install the SDK package ==&lt;br /&gt;
&lt;br /&gt;
Get the [[media:Dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.zip|QT5 SDK for STM32mp1]]&lt;br /&gt;
&lt;br /&gt;
Unpack the archive and install the toolchain. &lt;br /&gt;
&lt;br /&gt;
 $ sh ./dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.sh&lt;br /&gt;
&lt;br /&gt;
Choose the installation directory (default: /opt/dhlinux/nodistro.0/).&lt;br /&gt;
&lt;br /&gt;
The toolchain is now installed to your system.&lt;br /&gt;
&lt;br /&gt;
== Configure Qt Creator ==&lt;br /&gt;
&lt;br /&gt;
Run QT Creator&lt;br /&gt;
&lt;br /&gt;
In Qt Creator go to Tools &amp;gt; Options &amp;gt; Devices and add your Wandboard as a generic linux device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-device.jpg|550px]]&lt;br /&gt;
&lt;br /&gt;
go to Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run and:&lt;br /&gt;
&lt;br /&gt;
Add a new c++ compiler. Select your compiler: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-g++&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-compiler.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new debugger. Select your debugger: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-gdb&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-debugger.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add your Qt version by selecting the qmake located in /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/qmake&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-qt-version.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new kit selecting your new Qt5 version and compiler and setting the sysroot to /opt/dhlinux/nodistro.0/sysroots/cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi and leave the Qt mkspec empty.&lt;br /&gt;
Finally select your device&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-kit.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
If there is a warning/error shown, please click apply between each step&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2915</id>
		<title>Add Yocto SDK with QT5 to QT Creator</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2915"/>
		<updated>2020-05-19T05:04:52Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Download and install the SDK package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following instructions are based on &#039;&#039;&#039;DHCOM STM32MP1&#039;&#039;&#039; computer on module and Yocto version &amp;quot;zeus&amp;quot;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepairing your virtual machine ==&lt;br /&gt;
&lt;br /&gt;
Get the [[Virtual Machine for Application Development]].&lt;br /&gt;
&lt;br /&gt;
Install the following package:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install qtcreator qt5default&lt;br /&gt;
&lt;br /&gt;
== Download and install the SDK package ==&lt;br /&gt;
&lt;br /&gt;
Get the [[media:Dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.zip|QT5 SDK for STM32mp1]]&lt;br /&gt;
&lt;br /&gt;
Unpack the archive and install the toolchain. &lt;br /&gt;
&lt;br /&gt;
 $ sh ./dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.sh&lt;br /&gt;
&lt;br /&gt;
Choose the installation directory (default: /opt/dhlinux/nodistro.0/).&lt;br /&gt;
&lt;br /&gt;
The toolchain is now installed to your system.&lt;br /&gt;
&lt;br /&gt;
== Configure Qt Creator ==&lt;br /&gt;
&lt;br /&gt;
Run QT Creator&lt;br /&gt;
&lt;br /&gt;
In Qt Creator go to Tools &amp;gt; Options &amp;gt; Devices and add your Wandboard as a generic linux device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-device.jpg|550px]]&lt;br /&gt;
&lt;br /&gt;
go to Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run and:&lt;br /&gt;
&lt;br /&gt;
Add a new c++ compiler. Select your compiler: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-g++&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-compiler.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new debugger. Select your debugger: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-gdb&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-debugger.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add your Qt version by selecting the qmake located in /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/qmake&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-qt-version.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new kit selecting your new Qt5 version and compiler and setting the sysroot to /opt/dhlinux/nodistro.0/sysroots/cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi and leave the Qt mkspec empty.&lt;br /&gt;
Finally select your device&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-kit.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
If there is a warning/error shown, please click apply between each step&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2914</id>
		<title>Add Yocto SDK with QT5 to QT Creator</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2914"/>
		<updated>2020-05-15T05:30:28Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Download and install the SDK package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following instructions are based on &#039;&#039;&#039;DHCOM STM32MP1&#039;&#039;&#039; computer on module and Yocto version &amp;quot;zeus&amp;quot;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepairing your virtual machine ==&lt;br /&gt;
&lt;br /&gt;
Get the [[Virtual Machine for Application Development]].&lt;br /&gt;
&lt;br /&gt;
Install the following package:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install qtcreator qt5default&lt;br /&gt;
&lt;br /&gt;
== Download and install the SDK package ==&lt;br /&gt;
&lt;br /&gt;
Get the [[media:Dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.zip|QT5 SDK for STM32mp1]]&lt;br /&gt;
&lt;br /&gt;
Unpack the archive and install the toolchain. &lt;br /&gt;
&lt;br /&gt;
 $ sh ./dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.sh&lt;br /&gt;
&lt;br /&gt;
Choose the installation directory (default: /opt/dhlinux/nodistro.0/).&lt;br /&gt;
&lt;br /&gt;
The toolchain is now installed to your system.&lt;br /&gt;
&lt;br /&gt;
== Configure Qt Creator ==&lt;br /&gt;
&lt;br /&gt;
Run QT Creator&lt;br /&gt;
&lt;br /&gt;
In Qt Creator go to Tools &amp;gt; Options &amp;gt; Devices and add your Wandboard as a generic linux device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-device.jpg|550px]]&lt;br /&gt;
&lt;br /&gt;
go to Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run and:&lt;br /&gt;
&lt;br /&gt;
Add a new c++ compiler. Select your compiler: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-g++&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-compiler.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new debugger. Select your debugger: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-gdb&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-debugger.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add your Qt version by selecting the qmake located in /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/qmake&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-qt-version.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new kit selecting your new Qt5 version and compiler and setting the sysroot to /opt/dhlinux/nodistro.0/sysroots/cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi and leave the Qt mkspec empty.&lt;br /&gt;
Finally select your device&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-kit.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
If there is a warning/error shown, please click apply between each step&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2913</id>
		<title>Add Yocto SDK with QT5 to QT Creator</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2913"/>
		<updated>2020-05-15T05:29:59Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Prepairing your virtual machine */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following instructions are based on &#039;&#039;&#039;DHCOM STM32MP1&#039;&#039;&#039; computer on module and Yocto version &amp;quot;zeus&amp;quot;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepairing your virtual machine ==&lt;br /&gt;
&lt;br /&gt;
Get the [[Virtual Machine for Application Development]].&lt;br /&gt;
&lt;br /&gt;
Install the following package:&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install qtcreator qt5default&lt;br /&gt;
&lt;br /&gt;
== Download and install the SDK package ==&lt;br /&gt;
&lt;br /&gt;
Get the [[media:Dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.zip|QT5 SDK for STM32mp1]]&lt;br /&gt;
&lt;br /&gt;
Unpack the archive and install the toolchain. &lt;br /&gt;
&lt;br /&gt;
 $ sh ./dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.sh&lt;br /&gt;
&lt;br /&gt;
Choose the installation directory (default: /opt/dhlinux/nodistro.0/)&lt;br /&gt;
&lt;br /&gt;
The toolchain is now installed to your system.&lt;br /&gt;
&lt;br /&gt;
== Configure Qt Creator ==&lt;br /&gt;
&lt;br /&gt;
Run QT Creator&lt;br /&gt;
&lt;br /&gt;
In Qt Creator go to Tools &amp;gt; Options &amp;gt; Devices and add your Wandboard as a generic linux device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-device.jpg|550px]]&lt;br /&gt;
&lt;br /&gt;
go to Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run and:&lt;br /&gt;
&lt;br /&gt;
Add a new c++ compiler. Select your compiler: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-g++&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-compiler.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new debugger. Select your debugger: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-gdb&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-debugger.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add your Qt version by selecting the qmake located in /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/qmake&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-qt-version.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new kit selecting your new Qt5 version and compiler and setting the sysroot to /opt/dhlinux/nodistro.0/sysroots/cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi and leave the Qt mkspec empty.&lt;br /&gt;
Finally select your device&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-kit.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
If there is a warning/error shown, please click apply between each step&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2912</id>
		<title>Add Yocto SDK with QT5 to QT Creator</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2912"/>
		<updated>2020-05-15T05:29:45Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Download and install the SDK package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following instructions are based on &#039;&#039;&#039;DHCOM STM32MP1&#039;&#039;&#039; computer on module and Yocto version &amp;quot;zeus&amp;quot;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepairing your virtual machine ==&lt;br /&gt;
&lt;br /&gt;
Get the [[Virtual Machine for Application Development]].&lt;br /&gt;
&lt;br /&gt;
Install the following package:&lt;br /&gt;
&lt;br /&gt;
	$ sudo apt-get install qtcreator qt5default&lt;br /&gt;
&lt;br /&gt;
== Download and install the SDK package ==&lt;br /&gt;
&lt;br /&gt;
Get the [[media:Dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.zip|QT5 SDK for STM32mp1]]&lt;br /&gt;
&lt;br /&gt;
Unpack the archive and install the toolchain. &lt;br /&gt;
&lt;br /&gt;
 $ sh ./dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.sh&lt;br /&gt;
&lt;br /&gt;
Choose the installation directory (default: /opt/dhlinux/nodistro.0/)&lt;br /&gt;
&lt;br /&gt;
The toolchain is now installed to your system.&lt;br /&gt;
&lt;br /&gt;
== Configure Qt Creator ==&lt;br /&gt;
&lt;br /&gt;
Run QT Creator&lt;br /&gt;
&lt;br /&gt;
In Qt Creator go to Tools &amp;gt; Options &amp;gt; Devices and add your Wandboard as a generic linux device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-device.jpg|550px]]&lt;br /&gt;
&lt;br /&gt;
go to Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run and:&lt;br /&gt;
&lt;br /&gt;
Add a new c++ compiler. Select your compiler: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-g++&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-compiler.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new debugger. Select your debugger: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-gdb&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-debugger.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add your Qt version by selecting the qmake located in /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/qmake&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-qt-version.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new kit selecting your new Qt5 version and compiler and setting the sysroot to /opt/dhlinux/nodistro.0/sysroots/cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi and leave the Qt mkspec empty.&lt;br /&gt;
Finally select your device&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-kit.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
If there is a warning/error shown, please click apply between each step&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2911</id>
		<title>Add Yocto SDK with QT5 to QT Creator</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2911"/>
		<updated>2020-05-15T05:29:27Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Download and install the SDK package */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following instructions are based on &#039;&#039;&#039;DHCOM STM32MP1&#039;&#039;&#039; computer on module and Yocto version &amp;quot;zeus&amp;quot;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepairing your virtual machine ==&lt;br /&gt;
&lt;br /&gt;
Get the [[Virtual Machine for Application Development]].&lt;br /&gt;
&lt;br /&gt;
Install the following package:&lt;br /&gt;
&lt;br /&gt;
	$ sudo apt-get install qtcreator qt5default&lt;br /&gt;
&lt;br /&gt;
== Download and install the SDK package ==&lt;br /&gt;
&lt;br /&gt;
Get the [[media:Dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.zip|QT5 SDK for STM32mp1]]&lt;br /&gt;
&lt;br /&gt;
Unpack the archive and install the toolchain. &lt;br /&gt;
&lt;br /&gt;
	$ sh ./dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.sh&lt;br /&gt;
&lt;br /&gt;
Choose the installation directory (default: /opt/dhlinux/nodistro.0/)&lt;br /&gt;
&lt;br /&gt;
The toolchain is now installed to your system.&lt;br /&gt;
&lt;br /&gt;
== Configure Qt Creator ==&lt;br /&gt;
&lt;br /&gt;
Run QT Creator&lt;br /&gt;
&lt;br /&gt;
In Qt Creator go to Tools &amp;gt; Options &amp;gt; Devices and add your Wandboard as a generic linux device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-device.jpg|550px]]&lt;br /&gt;
&lt;br /&gt;
go to Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run and:&lt;br /&gt;
&lt;br /&gt;
Add a new c++ compiler. Select your compiler: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-g++&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-compiler.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new debugger. Select your debugger: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-gdb&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-debugger.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add your Qt version by selecting the qmake located in /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/qmake&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-qt-version.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new kit selecting your new Qt5 version and compiler and setting the sysroot to /opt/dhlinux/nodistro.0/sysroots/cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi and leave the Qt mkspec empty.&lt;br /&gt;
Finally select your device&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-kit.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
If there is a warning/error shown, please click apply between each step&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2906</id>
		<title>Add Yocto SDK with QT5 to QT Creator</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2906"/>
		<updated>2020-05-14T08:04:33Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following instructions are based on &#039;&#039;&#039;DHCOM STM32MP1&#039;&#039;&#039; computer on module and Yocto version &amp;quot;zeus&amp;quot;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepairing your virtual machine ==&lt;br /&gt;
&lt;br /&gt;
Get the [[Virtual Machine for Application Development]].&lt;br /&gt;
&lt;br /&gt;
Install the following package:&lt;br /&gt;
&lt;br /&gt;
	$ sudo apt-get install qtcreator qt5default&lt;br /&gt;
&lt;br /&gt;
== Download and install the SDK package ==&lt;br /&gt;
&lt;br /&gt;
Get the [[Link]]&lt;br /&gt;
&lt;br /&gt;
Unpack the archive and install the toolchain &lt;br /&gt;
&lt;br /&gt;
	$ sh ./dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.sh&lt;br /&gt;
&lt;br /&gt;
Choose the installation directory (default: /opt/dhlinux/nodistro.0/)&lt;br /&gt;
&lt;br /&gt;
The toolchain is now installed to your system.&lt;br /&gt;
&lt;br /&gt;
== Configure Qt Creator ==&lt;br /&gt;
&lt;br /&gt;
Run QT Creator&lt;br /&gt;
&lt;br /&gt;
In Qt Creator go to Tools &amp;gt; Options &amp;gt; Devices and add your Wandboard as a generic linux device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-device.jpg|550px]]&lt;br /&gt;
&lt;br /&gt;
go to Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run and:&lt;br /&gt;
&lt;br /&gt;
Add a new c++ compiler. Select your compiler: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-g++&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-compiler.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new debugger. Select your debugger: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-gdb&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-debugger.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add your Qt version by selecting the qmake located in /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/qmake&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-qt-version.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new kit selecting your new Qt5 version and compiler and setting the sysroot to /opt/dhlinux/nodistro.0/sysroots/cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi and leave the Qt mkspec empty.&lt;br /&gt;
Finally select your device&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-kit.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
If there is a warning/error shown, please click apply between each step&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2905</id>
		<title>Add Yocto SDK with QT5 to QT Creator</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Add_Yocto_SDK_with_QT5_to_QT_Creator&amp;diff=2905"/>
		<updated>2020-05-14T08:04:10Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: Created page with &amp;quot;The following instructions are based on &amp;#039;&amp;#039;&amp;#039;DHCOM STM32MP1&amp;#039;&amp;#039;&amp;#039; computer on module and Yocto version &amp;quot;zeus&amp;quot; __TOC__   == Prepairing your virtual machine ==  Get the Virtual Mac...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The following instructions are based on &#039;&#039;&#039;DHCOM STM32MP1&#039;&#039;&#039; computer on module and Yocto version &amp;quot;zeus&amp;quot;&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Prepairing your virtual machine ==&lt;br /&gt;
&lt;br /&gt;
Get the [[Virtual Machine for Application Development]].&lt;br /&gt;
&lt;br /&gt;
Install the following package:&lt;br /&gt;
&lt;br /&gt;
	$ sudo apt-get install qtcreator qt5default&lt;br /&gt;
&lt;br /&gt;
== Download and install the SDK package ==&lt;br /&gt;
&lt;br /&gt;
Get the [[Link]]&lt;br /&gt;
&lt;br /&gt;
Unpack the archive and install the toolchain &lt;br /&gt;
&lt;br /&gt;
	$ sh ./dhlinux-glibc-x86_64-meta-toolchain-qt5-cortexa7t2hf-neon-vfpv4-toolchain-nodistro.0.sh&lt;br /&gt;
&lt;br /&gt;
Choose the installation directory (default: /opt/dhlinux/nodistro.0/)&lt;br /&gt;
&lt;br /&gt;
The toolchain is now installed to your system.&lt;br /&gt;
&lt;br /&gt;
== Configure Qt Creator ==&lt;br /&gt;
&lt;br /&gt;
Run QT Creator&lt;br /&gt;
&lt;br /&gt;
In Qt Creator go to Tools &amp;gt; Options &amp;gt; Devices and add your Wandboard as a generic linux device.&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-device.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
go to Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run and:&lt;br /&gt;
&lt;br /&gt;
Add a new c++ compiler. Select your compiler: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-g++&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-compiler.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new debugger. Select your debugger: /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/arm-dhlinux-linux-gnueabi/arm-dhlinux-linux-gnueabi-gdb&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-debugger.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add your Qt version by selecting the qmake located in /opt/dhlinux/nodistro.0/sysroots/x86_64-oesdk-linux/usr/bin/qmake&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-qt-version.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
Add a new kit selecting your new Qt5 version and compiler and setting the sysroot to /opt/dhlinux/nodistro.0/sysroots/cortexa7t2hf-neon-vfpv4-dhlinux-linux-gnueabi and leave the Qt mkspec empty.&lt;br /&gt;
Finally select your device&lt;br /&gt;
&lt;br /&gt;
[[Image:Qtcreator-add-kit.jpg|850px]]&lt;br /&gt;
&lt;br /&gt;
If there is a warning/error shown, please click apply between each step&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:Qtcreator-add-kit.jpg&amp;diff=2904</id>
		<title>File:Qtcreator-add-kit.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:Qtcreator-add-kit.jpg&amp;diff=2904"/>
		<updated>2020-05-14T07:59:39Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:Qtcreator-add-qt-version.jpg&amp;diff=2903</id>
		<title>File:Qtcreator-add-qt-version.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:Qtcreator-add-qt-version.jpg&amp;diff=2903"/>
		<updated>2020-05-14T07:57:11Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:Qtcreator-add-debugger.jpg&amp;diff=2902</id>
		<title>File:Qtcreator-add-debugger.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:Qtcreator-add-debugger.jpg&amp;diff=2902"/>
		<updated>2020-05-14T07:55:29Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:Qtcreator-add-compiler.jpg&amp;diff=2901</id>
		<title>File:Qtcreator-add-compiler.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:Qtcreator-add-compiler.jpg&amp;diff=2901"/>
		<updated>2020-05-14T07:54:30Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:Qtcreator-add-device.jpg&amp;diff=2900</id>
		<title>File:Qtcreator-add-device.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:Qtcreator-add-device.jpg&amp;diff=2900"/>
		<updated>2020-05-14T07:52:08Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Yocto&amp;diff=2899</id>
		<title>Yocto</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Yocto&amp;diff=2899"/>
		<updated>2020-05-13T12:13:04Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Example Configurations */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For general information about the Yocto Project please refer to the official [https://www.yoctoproject.org/ Website]. &amp;quot;Yocto is not an embedded Linux distribution – it creates a custom one for you.&amp;quot; This says that if you are using Yocto to build your system image &#039;&#039;&#039;you are the distributor&#039;&#039;&#039;. If you&#039;re not aware of what this means for you please contact us.   &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Requirements hardware and software ==&lt;br /&gt;
* Linux-based (Debian/Ubuntu is recommended) host system to use for building Linux/Yocto&lt;br /&gt;
* min 4GB RAM / &amp;gt; 8GB RAM are recommended&lt;br /&gt;
* disk space (depending on image to build about 80 GB)&lt;br /&gt;
* a microSD card-reader to write the generated image to the microSD card&lt;br /&gt;
&lt;br /&gt;
== Supported Stable Branch ==&lt;br /&gt;
With our OpenEmbedded / Yocto BSP Layer for DHCOM i.MX6 we support the following branches:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:75px; width:300px;&amp;quot;&lt;br /&gt;
! Name !! Version&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Dizzy || 1.7&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Krogoth || 2.1&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Thud (i.MX6ULL only)|| 2.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Our BSP layer is based on the Freescale Community BSP.&lt;br /&gt;
&lt;br /&gt;
More information about Yocto stable branch maintenance at [https://wiki.yoctoproject.org/wiki/Stable_branch_maintenance https://wiki.yoctoproject.org/]&lt;br /&gt;
&lt;br /&gt;
== Setup Yocto Build System &amp;amp; Build Image ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:75px; width:300px;&amp;quot;&lt;br /&gt;
! Name &lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[Setup Yocto for Dizzy/Krogoth | Dizzy/Krogoth]] (i.MX6S/DL/D/Q)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [https://github.com/dh-electronics/dhcom_imx6-bsp-platform/tree/thud Thud] (i.MX6ULL only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Example Configurations ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Add Yocto SDK with QT5 to QT Creator | Add Yocto SDK with QT5 to QT Creator]]&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[Building Qt5 for i.MX6 using Yocto Dizzy| Building Qt5 for i.MX6 using Yocto Dizzy]]&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[Building Chromium, VLC and X11VNC using Yocto | Building Chromium, VLC and X11VNC using Yocto]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
* The content of this tutorial heavily borrowed from [http://wiki.wandboard.org/Getting_started_with_Yocto_on_Wandboard i.MX6 Wandboard Wiki &#039;Getting started with Yocto on Wandboard&#039;]&lt;br /&gt;
* Have a look at [http://wiki.wandboard.org/Building_Qt5_using_yocto_on_Wandboard &#039;Building Qt5 using yocto on Wandboard&#039;] to get information for adding Qt5&lt;br /&gt;
* Documentation of the latest [https://www.yoctoproject.org/documentation Yocto Project Releases]&lt;br /&gt;
* More additional information on [https://community.freescale.com/docs/DOC-1616 Freescale Yocto Project Main-Page]&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Building_Qt5_using_Yocto&amp;diff=2898</id>
		<title>Building Qt5 using Yocto</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Building_Qt5_using_Yocto&amp;diff=2898"/>
		<updated>2020-05-13T12:11:05Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: Mschmoeller moved page Building Qt5 using Yocto to Building Qt5 for i.MX6 using Yocto Dizzy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#REDIRECT [[Building Qt5 for i.MX6 using Yocto Dizzy]]&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Building_Qt5_for_i.MX6_using_Yocto_Dizzy&amp;diff=2897</id>
		<title>Building Qt5 for i.MX6 using Yocto Dizzy</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Building_Qt5_for_i.MX6_using_Yocto_Dizzy&amp;diff=2897"/>
		<updated>2020-05-13T12:11:05Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: Mschmoeller moved page Building Qt5 using Yocto to Building Qt5 for i.MX6 using Yocto Dizzy&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please read the [[Yocto | Yocto tutorial]] before you proceed with building Qt5. The following instruction were tested on our &#039;&#039;&#039;DHCOM i.MX6&#039;&#039;&#039; computer on module with Yocto stable branch &#039;&#039;&#039;Dizzy&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Configure Sources ==&lt;br /&gt;
&lt;br /&gt;
=== Clone meta-qt5 ===&lt;br /&gt;
&lt;br /&gt;
Clone the stable branch dizzy of meta-qt5 inside the yocto/sources directory:&lt;br /&gt;
&lt;br /&gt;
 $ git clone -b dizzy https://github.com/meta-qt5/meta-qt5.git&lt;br /&gt;
&lt;br /&gt;
Be sure to clone the same branch for meta-qt5 as you are using for the other layers!&lt;br /&gt;
&lt;br /&gt;
=== Edit your yocto configuration files ===&lt;br /&gt;
&lt;br /&gt;
1. Edit yocto/build/conf/bblayers.conf to add the meta-qt5 layer at the end:&lt;br /&gt;
&lt;br /&gt;
  ${BSPDIR}/sources/meta-qt5 \&lt;br /&gt;
  ${BSPDIR}/sources/meta-openembedded/meta-ruby \&lt;br /&gt;
  ${BSPDIR}/sources/meta-openembedded/meta-multimedia \&lt;br /&gt;
&lt;br /&gt;
2. Edit yocto/build/conf/local.conf and add:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
EXTRA_IMAGE_FEATURES = &amp;quot;debug-tweaks ssh-server-openssh &amp;quot;&lt;br /&gt;
&lt;br /&gt;
IMAGE_INSTALL_append = &amp;quot; gcc g++ binutils libgcc libgcc-dev libstdc++ libstdc++-dev libstdc++-staticdev \&lt;br /&gt;
autoconf automake ccache chkconfig glib-networking glibmm \&lt;br /&gt;
packagegroup-core-buildessential pkgconfig  \&lt;br /&gt;
boost cmake zlib glib-2.0 packagegroup-fsl-tools-testapps  \&lt;br /&gt;
    ruby \&lt;br /&gt;
    cpufrequtils \&lt;br /&gt;
    nano \&lt;br /&gt;
    gdb \&lt;br /&gt;
    gstreamer \&lt;br /&gt;
    gst-meta-video \&lt;br /&gt;
    gst-fsl-plugin \&lt;br /&gt;
    gst-plugins-base-app \&lt;br /&gt;
    gst-plugins-base \&lt;br /&gt;
    gst-plugins-good \&lt;br /&gt;
    gst-plugins-good-rtsp \&lt;br /&gt;
    gst-plugins-good-udp \&lt;br /&gt;
    gst-plugins-good-rtpmanager \&lt;br /&gt;
    gst-plugins-good-rtp \&lt;br /&gt;
    gst-plugins-good-video4linux2 \&lt;br /&gt;
    openssh-sftp-server \&lt;br /&gt;
    packagegroup-fsl-gstreamer \&lt;br /&gt;
    packagegroup-fsl-tools-testapps \&lt;br /&gt;
    packagegroup-fsl-tools-benchmark \&lt;br /&gt;
    imx-vpu \&lt;br /&gt;
    imx-test \    	&lt;br /&gt;
    qtbase-fonts \&lt;br /&gt;
    qtbase-plugins \&lt;br /&gt;
    qtbase-tools \&lt;br /&gt;
    qtbase-examples \&lt;br /&gt;
    qtdeclarative \&lt;br /&gt;
    qtdeclarative-plugins \&lt;br /&gt;
    qtdeclarative-tools \&lt;br /&gt;
    qtdeclarative-examples \&lt;br /&gt;
    qtdeclarative-qmlplugins \&lt;br /&gt;
    qtmultimedia \&lt;br /&gt;
    qtmultimedia-plugins \&lt;br /&gt;
    qtmultimedia-examples \&lt;br /&gt;
    qtmultimedia-qmlplugins \&lt;br /&gt;
    qtsvg \&lt;br /&gt;
    qtsvg-plugins \&lt;br /&gt;
    qtsensors \&lt;br /&gt;
    qtimageformats-plugins \&lt;br /&gt;
    qtsystems \&lt;br /&gt;
    qtsystems-tools \&lt;br /&gt;
    qtsystems-examples \&lt;br /&gt;
    qtsystems-qmlplugins \&lt;br /&gt;
    qtscript \&lt;br /&gt;
    qt3d \&lt;br /&gt;
    qt3d-examples \&lt;br /&gt;
    qt3d-qmlplugins \&lt;br /&gt;
    qt3d-tools \&lt;br /&gt;
    qtwebkit \&lt;br /&gt;
    qtwebkit-examples-examples \&lt;br /&gt;
    qtwebkit-qmlplugins \&lt;br /&gt;
    qtgraphicaleffects-qmlplugins \&lt;br /&gt;
    qtconnectivity-qmlplugins \&lt;br /&gt;
    qtlocation-plugins \&lt;br /&gt;
    qtlocation-qmlplugins \&lt;br /&gt;
    cinematicexperience \&lt;br /&gt;
    cairo pango fontconfig freetype pulseaudio dbus \&lt;br /&gt;
    alsa-lib alsa-tools alsa-state alsa-utils-alsaconf fsl-alsa-plugins \&lt;br /&gt;
    i2c-tools \ &lt;br /&gt;
    &amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We include ssh-server-openssh in EXTRA_IMAGE_FEATURES and the openssh-sftp-server in IMAGE_INSTALL_append for rapid deploying using QtCreator&lt;br /&gt;
&lt;br /&gt;
If you plan on using the &#039;core-image-minimal&#039; image, then you must add &#039;dbus&#039; to the IMAGE_INSTALL_append list.&lt;br /&gt;
&lt;br /&gt;
If you plan to use Qt5 eglfs plugin for accelerated graphics using the framebuffer, you need to discard X11 and wayland so the proper graphics drivers get included and remove &#039;&#039;&#039;cairo&#039;&#039;&#039; because of X11 dependencies:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
DISTRO_FEATURES_remove = &amp;quot;x11 wayland&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== &#039;&#039;&#039;Bug&#039;&#039;&#039; in meta-fsl-demos: packagegroup-fsl-tools-testapps ====&lt;br /&gt;
Solution is already available: &lt;br /&gt;
* [https://github.com/Freescale/meta-fsl-demos/commit/eae8a8dd506855f9e12628d7071baade540aa2e4 packagegroup-fsl-tools-testapps: Only install GTK+3 demos when enabling X11]&lt;br /&gt;
* If packagegroup-fsl-tools-testapps is not required please remove it from &amp;lt;tt&amp;gt;IMAGE_INSTALL_append&amp;lt;/tt&amp;gt; in &amp;lt;tt&amp;gt;local.conf&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Bitbake!  ==&lt;br /&gt;
&lt;br /&gt;
Bitbake an image like core-image-minimal (you need to be in your yocto/build directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ bitbake core-image-minimal&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: If bitbake fails with an error regarding cmake or drm recipes, locate their directories, delete them and try again. We discoverd this several times. There is no clean solution available at the moment.&lt;br /&gt;
&lt;br /&gt;
== Test your image  ==&lt;br /&gt;
&lt;br /&gt;
Boot your image and run some Qt5 examples:&lt;br /&gt;
&lt;br /&gt;
 $ . /demo/path -platform eglfs&lt;br /&gt;
&lt;br /&gt;
== Cross compile Qt5 for QtCreator ==&lt;br /&gt;
&lt;br /&gt;
It is now very easy to build an environment for cross compilation using QtCreator. Version 1.7 in paths refers to Yocto Dizzy branch, if you are using different branch please use corresponding paths.&lt;br /&gt;
&lt;br /&gt;
=== bitbake a meta-toolchain-qt5 ===&lt;br /&gt;
&lt;br /&gt;
Bitbake a poky toolchain (you need to be in your yocto/build directory):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 $ bitbake meta-toolchain-qt5&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Install your new toolchain ===&lt;br /&gt;
&lt;br /&gt;
Run the new installer that has been generated in yocto/build/tmp/deploy/sdk&lt;br /&gt;
&lt;br /&gt;
 $ sh poky-eglibc-x86_64-meta-toolchain-qt5-cortexa9hf-vfp-neon-toolchain-1.7.sh&lt;br /&gt;
&lt;br /&gt;
This will install a cross compiler and its needed environment including the Qt5 arm libraries.&lt;br /&gt;
&lt;br /&gt;
=== Configure Qt creator ===&lt;br /&gt;
&lt;br /&gt;
Run qtcreator from the terminal after running the setup environment script located in /opt/poky/1.7&lt;br /&gt;
&lt;br /&gt;
In QtCreator go to Tools &amp;gt; Options &amp;gt; Devices and add your Wandboard as a generic linux device.&lt;br /&gt;
&lt;br /&gt;
go to Tools &amp;gt; Options &amp;gt; Build &amp;amp; Run and:&lt;br /&gt;
# Add a new compiler. Select your poky compiler: /opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/arm-poky-linux-gnueabi/arm-poky-linux-gnueabi-cpp&lt;br /&gt;
# Add your new cross compiled Qt version by selecting the qmake located in /opt/poky/1.7/sysroots/x86_64-pokysdk-linux/usr/bin/qt5&lt;br /&gt;
# Add a new kit selecting your new Qt5 version and compiler and setting the sysroot to /opt/poky/1.7/sysroots/cortexa9hf-vfp-neon-poky-linux-gnueabi and leave the Qt mkspec empty. Finally select your board for the device.&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
* The content of this tutorial heavily borrowed from [http://wiki.wandboard.org/Building_Qt5_using_yocto_on_Wandboard &#039;Building Qt5 using yocto on Wandboard&#039;]&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Avenger96_Camera_Support&amp;diff=2516</id>
		<title>Avenger96 Camera Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Avenger96_Camera_Support&amp;diff=2516"/>
		<updated>2019-10-01T05:47:10Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The support for the CSI interface is not implemented in the Yocto sources yet. If you want to use the D3 camera mezzanine board, you need to do the following steps at first.&lt;br /&gt;
&lt;br /&gt;
== Get the patches and implent them into your own Yocto source ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the patch package: [[media:AV96_D3-camera-support.tar.xz|here]]&lt;br /&gt;
Copy the package content into the meta-av96 layer: meta-av96/recipes-bsp/linux-stm32mp/files&lt;br /&gt;
&lt;br /&gt;
Edit the linux-stm32mp recipe (meta-av96/recipes-bsp/linux-stm32mp/linux-stm32mp_%.bbappend) and add the patch files.&lt;br /&gt;
&lt;br /&gt;
For example : &lt;br /&gt;
 SRC_URI += &amp;quot;file://0003-dts-pinctrl-enable-pull-up-on-dcmi-pins.patch&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then rebuild your image.&lt;br /&gt;
&lt;br /&gt;
== Test your image ==&lt;br /&gt;
&lt;br /&gt;
If you want to easily check if your implementation works, apply the D3 camera mezzanine board to your AV96 board and boot your image.&lt;br /&gt;
&lt;br /&gt;
After ST&#039;s demo launcher has started, click on the &amp;quot;camera preview&amp;quot; option. &lt;br /&gt;
&lt;br /&gt;
Your patches have been applied correctly, if a camera window pops up.&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Avenger96_Camera_Support&amp;diff=2515</id>
		<title>Avenger96 Camera Support</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Avenger96_Camera_Support&amp;diff=2515"/>
		<updated>2019-10-01T05:43:35Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: Created page with &amp;quot; == Introduction ==  The support for the CSI interface is not implemented in the Yocto sources yet. If you want to use the D3 camera mezzanine board, you need to do the follow...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
The support for the CSI interface is not implemented in the Yocto sources yet. If you want to use the D3 camera mezzanine board, you need to do the following steps at first.&lt;br /&gt;
&lt;br /&gt;
== Get the patches and implent them into your own Yocto source ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the patch package: [[media:AV96_D3-camera-support.tar.xz|here]]&lt;br /&gt;
Copy the package content into the meta-av96 layer: meta-av96/recipes-bsp/linux-stm32mp/files&lt;br /&gt;
&lt;br /&gt;
Edit the linux-stm32mp recipe (meta-av96/recipes-bsp/linux-stm32mp/linux-stm32mp_%.bbappend) and add the patch files.&lt;br /&gt;
&lt;br /&gt;
For example : &lt;br /&gt;
 SRC_URI += &amp;quot;file://0003-dts-pinctrl-enable-pull-up-on-dcmi-pins.patch&amp;quot;&lt;br /&gt;
&lt;br /&gt;
Then rebuild your image.&lt;br /&gt;
&lt;br /&gt;
== Test your image ==&lt;br /&gt;
&lt;br /&gt;
If you want to easily check if your implementation works, apply the D3 camera mezzanine board to your AV96 board and boot your image.&lt;br /&gt;
After ST&#039;s demo launcher has started, click on the &amp;quot;camera preview&amp;quot; option. Your patches have been applied correctly, if a camera window pops up.&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Avenger96_Image_Programming&amp;diff=2504</id>
		<title>Avenger96 Image Programming</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Avenger96_Image_Programming&amp;diff=2504"/>
		<updated>2019-08-20T12:47:37Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This guide is about how to flash the AV96 board with STM32 Cube Programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install STM32 Cube Programmer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the installer from the [https://www.st.com/en/development-tools/stm32cubeprog.html official STM32 Cube Programmer site].&lt;br /&gt;
&lt;br /&gt;
Follow ST&#039;s installation instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Get the image ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build your own Yocto image by using the following source and on GitHub: [https://github.com/dh-electronics/meta-av96 AV96 Yocto Layer]&lt;br /&gt;
&lt;br /&gt;
Instructions how to build the image can be found in the repository readme.&lt;br /&gt;
&lt;br /&gt;
Once you have built your own AV96 Yocto image, your build provides all the files you need to use the Cube Programmer.&lt;br /&gt;
&lt;br /&gt;
== Prepairing the target device ==&lt;br /&gt;
&lt;br /&gt;
To get access to your target with the STM32 Cube Programmer you need to switch the AV96 boot mode to USB boot:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:AV96USBBootswitch.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then connect the USB-C interface of the AV96 board to your computer and power on your device.&lt;br /&gt;
&lt;br /&gt;
== Programm the image with STM32 Cube Programmer ==&lt;br /&gt;
&lt;br /&gt;
Start the STM32 Cube Programmer Tool.&lt;br /&gt;
&lt;br /&gt;
If your device is connected correctly, you should be able to see the available USB Port:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:AV96USBConnect.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If not, check your connection and boot mode configuration, then press the refresh button on the right.&lt;br /&gt;
&lt;br /&gt;
Continue by clicking the green &amp;quot;Connect&amp;quot; button on the right.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:AV96USBConnected.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check the device informations on the right bottom side after a successful connection, then click on the &amp;quot;Open file&amp;quot; Header.&lt;br /&gt;
&lt;br /&gt;
Choose the wanted flash layout from your Yocto build.&lt;br /&gt;
&lt;br /&gt;
For example: &lt;br /&gt;
:&#039;&#039;FlashLayout_nor-emmc_stm32mp157a-av96-basic.tsv&#039;&#039; (U-Boot -&amp;gt; NOR-SPI, Linux -&amp;gt; eMMC)&lt;br /&gt;
&lt;br /&gt;
These layouts you can find in the following directory of your build:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;$YOCTO_HOME/build-openstlinuxweston-stn32mp1-av96/tmp-glibc/deploy/images/stm32mp1-av96/flashlayout_av96-weston/&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:AV96Flashlayout.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should be able to see the files, destinations and address offsets which have to be programmed.&lt;br /&gt;
&lt;br /&gt;
If you dont want them all to be flashed, unselect the checkboxes on the left of the wanted partition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to choose the &amp;quot;Binaries path&amp;quot; of the images to be flashed by clicking on the browse button or fill it in manually.&lt;br /&gt;
&lt;br /&gt;
For Yocto this is the following directory:&lt;br /&gt;
&lt;br /&gt;
:&#039;&#039;$YOCTO_HOME/build-openstlinuxweston-stn32mp1-av96/tmp-glibc/deploy/images/stm32mp1-av96&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At last click on &amp;quot;Download&amp;quot; to flash your device. &lt;br /&gt;
&lt;br /&gt;
You will get a status message whether your flash process was successful or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to boot your device please don&#039;t forget to switch the boot mode.&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Avenger96_Image_Programming&amp;diff=2503</id>
		<title>Avenger96 Image Programming</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Avenger96_Image_Programming&amp;diff=2503"/>
		<updated>2019-08-20T12:37:20Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This guide is about how to flash the AV96 board with STM32 Cube Programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install STM32 Cube Programmer ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Download the installer from the [https://www.st.com/en/development-tools/stm32cubeprog.html official STM32 Cube Programmer site].&lt;br /&gt;
&lt;br /&gt;
Follow ST&#039;s installation instructions.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Get the images ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Build your own Yocto image by using the following source and on GitHub: [https://github.com/dh-electronics/meta-av96 AV96 Yocto Layer]&lt;br /&gt;
&lt;br /&gt;
Instructions how to build the image can be found in the repository readme.&lt;br /&gt;
&lt;br /&gt;
Once you have built your own AV96 Yocto image, your build provides all the files you need to use the Cube Programmer.&lt;br /&gt;
&lt;br /&gt;
== Prepairing the target device ==&lt;br /&gt;
&lt;br /&gt;
To get access to your target with the STM32 Cube Programmer you need to switch the AV96 boot mode to USB boot:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:AV96USBBootswitch.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Then connect the USB-C interface of the AV96 board to your computer and power on your device.&lt;br /&gt;
&lt;br /&gt;
== Programm the image with STM32 Cube Programmer ==&lt;br /&gt;
&lt;br /&gt;
Start the STM32 Cube Programmer Tool.&lt;br /&gt;
&lt;br /&gt;
If your device is connected correctly, you should be able to see the available USB Port:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:AV96USBConnect.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If not, check your connection and boot mode configuration, then press the refresh button on the right.&lt;br /&gt;
&lt;br /&gt;
Continue by clicking the green &amp;quot;Connect&amp;quot; button on the right.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:AV96USBConnected.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Check the device informations on the right bottom side after a successful connection, then click on the &amp;quot;Open file&amp;quot; Header.&lt;br /&gt;
&lt;br /&gt;
Choose the wanted flash layout from your Yocto build&lt;br /&gt;
. &lt;br /&gt;
For example: FlashLayout_nor-emmc_stm32mp157a-av96-basic.tsv (U-Boot -&amp;gt; NOR-SPI, Linux -&amp;gt; eMMC)&lt;br /&gt;
&lt;br /&gt;
These layouts you can find in the following directory of your build:&lt;br /&gt;
&lt;br /&gt;
$YOCTO_HOME/build-openstlinuxweston-stn32mp1-av96/tmp-glibc/deploy/images/stm32mp1-av96/flashlayout_av96-weston/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:AV96Flashlayout.png|800px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You should be able to see the files, destinations and address offsets which have to be programmed.&lt;br /&gt;
&lt;br /&gt;
If you dont want them all to be flashed, unselect the checkboxes on the left of the wanted partition.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You need to choose the &amp;quot;Binaries path&amp;quot; of the images to be flashed by clicking on the browse button or fill it in manually.&lt;br /&gt;
&lt;br /&gt;
For Yocto this is the following directory:&lt;br /&gt;
&lt;br /&gt;
$YOCTO_HOME/build-openstlinuxweston-stn32mp1-av96/tmp-glibc/deploy/images/stm32mp1-av96&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
At last click on &amp;quot;Download&amp;quot; to flash your device. &lt;br /&gt;
&lt;br /&gt;
You will get a status message whether your flash process was successful or not.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If you want to boot your device please don&#039;t forget to switch the boot mode.&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:AV96Flashlayout.png&amp;diff=2502</id>
		<title>File:AV96Flashlayout.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:AV96Flashlayout.png&amp;diff=2502"/>
		<updated>2019-08-20T12:23:48Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:AV96USBConnected.png&amp;diff=2501</id>
		<title>File:AV96USBConnected.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:AV96USBConnected.png&amp;diff=2501"/>
		<updated>2019-08-20T12:17:43Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: Mschmoeller uploaded a new version of File:AV96USBConnected.png&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:AV96USBConnected.png&amp;diff=2500</id>
		<title>File:AV96USBConnected.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:AV96USBConnected.png&amp;diff=2500"/>
		<updated>2019-08-20T12:12:08Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:AV96USBConnect.png&amp;diff=2499</id>
		<title>File:AV96USBConnect.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:AV96USBConnect.png&amp;diff=2499"/>
		<updated>2019-08-20T12:05:59Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Avenger96_Image_Programming&amp;diff=2498</id>
		<title>Avenger96 Image Programming</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Avenger96_Image_Programming&amp;diff=2498"/>
		<updated>2019-08-20T11:53:02Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: Created page with &amp;quot; == Introduction ==  This guide is about how to flash the AV96 board with STM32 Cube Programmer.   == Install STM32 Cube Programmer ==  Download the installer from the [https:...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This guide is about how to flash the AV96 board with STM32 Cube Programmer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Install STM32 Cube Programmer ==&lt;br /&gt;
&lt;br /&gt;
Download the installer from the [https://www.st.com/en/development-tools/stm32cubeprog.html official STM32 Cube Programmer site].&lt;br /&gt;
Follow ST&#039;s installation instructions.&lt;br /&gt;
&lt;br /&gt;
== Get the images ==&lt;br /&gt;
&lt;br /&gt;
Build your own Yocto image by using the following source and on GitHub: [https://github.com/dh-electronics/meta-av96 AV96 Yocto Layer]&lt;br /&gt;
Instructions how to build the image can be found in the repository readme.&lt;br /&gt;
&lt;br /&gt;
Once you have built your own AV96 Yocto image, your build provides all the files you need to use the Cube Programmer.&lt;br /&gt;
&lt;br /&gt;
== Prepairing the target device ==&lt;br /&gt;
&lt;br /&gt;
To get access to your target with the STM32 Cube Programmer you need to switch the AV96 boot mode to USB boot:&lt;br /&gt;
&lt;br /&gt;
[[File:AV96USBBootswitch.png|700px]]&lt;br /&gt;
&lt;br /&gt;
== Programm the image with STM32 Cube Programmer ==&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=File:AV96USBBootswitch.png&amp;diff=2497</id>
		<title>File:AV96USBBootswitch.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=File:AV96USBBootswitch.png&amp;diff=2497"/>
		<updated>2019-08-20T11:45:48Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Yocto&amp;diff=2337</id>
		<title>Yocto</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Yocto&amp;diff=2337"/>
		<updated>2019-03-18T11:21:37Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For general information about the Yocto Project please refer to the official [https://www.yoctoproject.org/ Website]. &amp;quot;Yocto is not an embedded Linux distribution – it creates a custom one for you.&amp;quot; This says that if you are using Yocto to build your system image &#039;&#039;&#039;you are the distributor&#039;&#039;&#039;. If you&#039;re not aware of what this means for you please contact us.   &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Requirements hardware and software ==&lt;br /&gt;
* Linux-based (Debian/Ubuntu is recommended) host system to use for building Linux/Yocto&lt;br /&gt;
* min 4GB RAM / &amp;gt; 8GB RAM are recommended&lt;br /&gt;
* disk space (depending on image to build about 80 GB)&lt;br /&gt;
* a microSD card-reader to write the generated image to the microSD card&lt;br /&gt;
&lt;br /&gt;
== Supported Stable Branch ==&lt;br /&gt;
With our OpenEmbedded / Yocto BSP Layer for DHCOM i.MX6 we support the following branches:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:75px; width:300px;&amp;quot;&lt;br /&gt;
! Name !! Version&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Dizzy || 1.7&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Krogoth || 2.1&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Thud (i.MX6ull only)|| 2.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Our BSP layer is based on the Freescale Community BSP.&lt;br /&gt;
&lt;br /&gt;
More information about Yocto stable branch maintenance at [https://wiki.yoctoproject.org/wiki/Stable_branch_maintenance https://wiki.yoctoproject.org/]&lt;br /&gt;
&lt;br /&gt;
== Setup Yocto Build System &amp;amp; Build Image ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:75px; width:300px;&amp;quot;&lt;br /&gt;
! Name &lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[Setup Yocto for Dizzy/Krogoth | Dizzy/Krogoth]] (i.MX6qdl)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[Setup Yocto for Thud | Thud ]] (i.MX6ull only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example Configurations ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Building Qt5 using Yocto | Building Qt5 using Yocto]]&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[Building Chromium, VLC and X11VNC using Yocto | Building Chromium, VLC and X11VNC using Yocto]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
* The content of this tutorial heavily borrowed from [http://wiki.wandboard.org/Getting_started_with_Yocto_on_Wandboard i.MX6 Wandboard Wiki &#039;Getting started with Yocto on Wandboard&#039;]&lt;br /&gt;
* Have a look at [http://wiki.wandboard.org/Building_Qt5_using_yocto_on_Wandboard &#039;Building Qt5 using yocto on Wandboard&#039;] to get information for adding Qt5&lt;br /&gt;
* Documentation of the latest [https://www.yoctoproject.org/documentation Yocto Project Releases]&lt;br /&gt;
* More additional information on [https://community.freescale.com/docs/DOC-1616 Freescale Yocto Project Main-Page]&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Setup_Yocto_for_Dizzy/Krogoth&amp;diff=2336</id>
		<title>Setup Yocto for Dizzy/Krogoth</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Setup_Yocto_for_Dizzy/Krogoth&amp;diff=2336"/>
		<updated>2019-03-18T11:21:15Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: Created page with &amp;quot;== Setup Yocto Build System ==  ==== Install Required Host Packages ====  Install the required packages for your host development system.  The Yocto Project documentation has...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Setup Yocto Build System ==&lt;br /&gt;
&lt;br /&gt;
==== Install Required Host Packages ====&lt;br /&gt;
&lt;br /&gt;
Install the required packages for your host development system.  The Yocto Project documentation has a listing of install commands for many different linux host systems (Debian, Ubuntu, etc.).&lt;br /&gt;
&lt;br /&gt;
[http://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#required-packages-for-the-host-development-system Required Packages for the Host Development System] &lt;br /&gt;
&lt;br /&gt;
==== Download and Install Google&#039;s repo utility ====&lt;br /&gt;
&lt;br /&gt;
The BSP is based on the Yocto Project, which consists of a number of applicable metadata &#039;layers&#039;.  These are managed by the repo utility.&amp;lt;br /&amp;gt;&lt;br /&gt;
 $: mkdir ~/bin&lt;br /&gt;
 $: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo &amp;gt; ~/bin/repo&lt;br /&gt;
 $: chmod a+x ~/bin/repo&lt;br /&gt;
&lt;br /&gt;
==== Create the BSP directory to download all of the metadata for the BSP layers ====&lt;br /&gt;
Note: You can use your own BSP directory. In the following we use &amp;lt;code&amp;gt;~/fsl-community-bsp&amp;lt;/code&amp;gt;&lt;br /&gt;
 $: PATH=${PATH}:~/bin&lt;br /&gt;
 $: cd&lt;br /&gt;
 $: mkdir fsl-community-bsp&lt;br /&gt;
 $: cd fsl-community-bsp&lt;br /&gt;
&lt;br /&gt;
==== Initialize the repositories ==== &lt;br /&gt;
&lt;br /&gt;
The next step is to initialize the repositories. This establishes which branch of the repository will be used for your development. The &#039;&#039;master&#039;&#039; branch is the current development branch. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Note: The master branch is a development branch, not a stable branch.  It is constantly changing with code updates, the adding of new features, and so forth.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 For Dizzy use:&lt;br /&gt;
 $: repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b dizzy&lt;br /&gt;
 &lt;br /&gt;
 For Krogoth use:&lt;br /&gt;
 $: repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b krogoth&lt;br /&gt;
&lt;br /&gt;
==== Download all of the metadata for the BSP layers ====&lt;br /&gt;
&lt;br /&gt;
 $: repo sync&lt;br /&gt;
&lt;br /&gt;
Once this has completed, you should have all of the metadata source of the Freescale Community BSP in fsl-community-bsp.&lt;br /&gt;
&lt;br /&gt;
==== Add DHCOM i.MX6 BSP layer ====&lt;br /&gt;
&lt;br /&gt;
To clone the OpenEmbedded / Yocto BSP layer for DHCOM i.MX6 execute the following steps:&lt;br /&gt;
&lt;br /&gt;
 $: cd fsl-community-bsp/sources&lt;br /&gt;
 &lt;br /&gt;
 For Dizzy use:&lt;br /&gt;
 $: git clone -b dizzy https://github.com/dh-electronics/meta-dhcom_imx6.git&lt;br /&gt;
 &lt;br /&gt;
 For Krogoth use:&lt;br /&gt;
 $: git clone -b krogoth https://github.com/dh-electronics/meta-dhcom_imx6.git&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;~/fsl-community-bsp/build/conf/bblayers.conf&amp;lt;/code&amp;gt; (run bitbake once to create build directory, see &#039;Setup environment and build an image&#039;) to add the meta-dhcom_imx6 layer at the end:&lt;br /&gt;
&lt;br /&gt;
 ${BSPDIR}/sources/meta-dhcom_imx6 \&lt;br /&gt;
&lt;br /&gt;
== Setup environment and build an image ==&lt;br /&gt;
&lt;br /&gt;
To start a build, first set the MACHINE shell environment variable to set the machine.  These are: &amp;lt;br/&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:150px; width:500px; margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
|+DHCOM i.MX6 Machines in Yocto&lt;br /&gt;
! Board Type !! HW !! MACHINE&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Solo || 200 || &amp;lt;code&amp;gt;  dhcom2bimx6s  &amp;lt;/code&amp;gt; (former dhcomimx6s)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 DualLite || 200 || &amp;lt;code&amp;gt;  dhcom2bimx6dl    &amp;lt;/code&amp;gt; (former dhcomimx6dl)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Dual || 200 || &amp;lt;code&amp;gt;  dhcom2bimx6d  &amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Quad || 200 || &amp;lt;code&amp;gt;  dhcom2bimx6q  &amp;lt;/code&amp;gt; (former dhcomimx6q)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Solo || 300 || &amp;lt;code&amp;gt;  dhcom3bimx6s  &amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 DualLite || 300 || &amp;lt;code&amp;gt;  dhcom3bimx6dl    &amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Dual || 300 || &amp;lt;code&amp;gt;  dhcom3bimx6d  &amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Quad || 300 || &amp;lt;code&amp;gt;  dhcom3bimx6q  &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Solo || 400 || &amp;lt;code&amp;gt;  dhcom4bimx6s  &amp;lt;/code&amp;gt; (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 DualLite || 400 || &amp;lt;code&amp;gt;  dhcom4bimx6dl    &amp;lt;/code&amp;gt; (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Dual || 400 || &amp;lt;code&amp;gt;  dhcom4bimx6d  &amp;lt;/code&amp;gt; (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Quad || 400 || &amp;lt;code&amp;gt;  dhcom4bimx6q  &amp;lt;/code&amp;gt; (new)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example, if you have a DHCOM i.MX6 Duallite HW300, then use MACHINE &amp;quot;dhcom3bimx6dl&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Run the &amp;lt;code&amp;gt;setup-environment&amp;lt;/code&amp;gt; script.  This is a helper script which sets up the environment and creates a build directory for you.  The first time you run this, you will be asked to accept the Freescale end user license agreement (EULA).&lt;br /&gt;
&lt;br /&gt;
 $: MACHINE=dhcom3bimx6dl source ./setup-environment build&lt;br /&gt;
&lt;br /&gt;
Run bitbake with &amp;lt;code&amp;gt;core-image-minimal&amp;lt;/code&amp;gt; as its argument.  This will create a small image and should have the shortest possible build time.  Note: all of the sources are downloaded from the internet and built from scratch.  This includes the toolchain (gcc) and all of the native utilities, so building an image for the first time could take a few hours, depending on the performance of your host machine.&lt;br /&gt;
&lt;br /&gt;
 $: bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
==== Locating the images and installing to a microSD card ====&lt;br /&gt;
Once the image is built successfully, there are several target images that are built by default.  One of these is an image suitable for loading directly into an SD card.  It contains all of the required binaries (bootloader, kernel, filesystem) in a preformatted binary image.&lt;br /&gt;
&lt;br /&gt;
You can find the image at:&lt;br /&gt;
&lt;br /&gt;
  build/tmp/deploy/images/&amp;lt;MACHINE&amp;gt;/core-image-minimal-&amp;lt;MACHINE&amp;gt;.sdcard&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;.sdcard&amp;lt;/code&amp;gt; image can be directly copied to an SD card with the &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
 $ sudo dd if=tmp/deploy/images/&amp;lt;MACHINE&amp;gt;/core-image-minimal-&amp;lt;MACHINE&amp;gt;.sdcard of=/dev/sd&amp;lt;N&amp;gt; bs=1M&lt;br /&gt;
&lt;br /&gt;
Note: &#039;&#039;&#039;&amp;lt;MACHINE&amp;gt;&#039;&#039;&#039; in the above corresponds to the MACHINE name provided to bitbake. &#039;&#039;&#039;&amp;quot;N&amp;quot;&#039;&#039;&#039; in the above command is the letter assigned to the SD card.  This will vary depending on your host machine configuration.&lt;br /&gt;
&lt;br /&gt;
==== Running the image on DHCOM i.MX6 ====&lt;br /&gt;
As this is just a console image, you will need a serial terminal program such as minicom in order to interact with the board and run commands.  Simply plug the microSD card into the slot on the DHCOM i.MX6 module and apply power.  You should immediately see log messages in the serial terminal.  When complete, you should get a login prompt:&lt;br /&gt;
&lt;br /&gt;
 Poky (Yocto Project Reference Distro) 2.1.2 dhcom3bimx6dl /dev/ttymxc0&amp;lt;br/&amp;gt;&lt;br /&gt;
 dhcom3bimx6dl login:&lt;br /&gt;
&lt;br /&gt;
The default login username is &#039;root&#039; and there is no password.&lt;br /&gt;
&lt;br /&gt;
=== Other interesting images ===&lt;br /&gt;
&lt;br /&gt;
The image &amp;lt;code&amp;gt; core-image-minimal&amp;lt;/code&amp;gt; builds relatively quickly due to its small size.  It is a good image to test to see if your board works.  There are other images that you can also try, but can take a good deal longer to build.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;border-collapse:collapse; height:150px; margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
! core-image-base&lt;br /&gt;
| Basic image with kernel modules and other features&lt;br /&gt;
|-&lt;br /&gt;
! core-image-x11&lt;br /&gt;
| Basic image with X11 support&lt;br /&gt;
|-&lt;br /&gt;
! core-image-sato&lt;br /&gt;
| Image with Sato, a mobile environment and visual style for mobile devices.&amp;lt;br/&amp;gt;The image supports X11 with a Sato theme, Pimlico applications, and contains terminal, editor, and file manager.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Yocto&amp;diff=2335</id>
		<title>Yocto</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Yocto&amp;diff=2335"/>
		<updated>2019-03-18T10:41:24Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: /* Setup Yocto Build System &amp;amp; Build Image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For general information about the Yocto Project please refer to the official [https://www.yoctoproject.org/ Website]. &amp;quot;Yocto is not an embedded Linux distribution – it creates a custom one for you.&amp;quot; This says that if you are using Yocto to build your system image &#039;&#039;&#039;you are the distributor&#039;&#039;&#039;. If you&#039;re not aware of what this means for you please contact us.   &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Requirements hardware and software ==&lt;br /&gt;
* Linux-based (Debian/Ubuntu is recommended) host system to use for building Linux/Yocto&lt;br /&gt;
* min 4GB RAM / &amp;gt; 8GB RAM are recommended&lt;br /&gt;
* disk space (depending on image to build about 80 GB)&lt;br /&gt;
* a microSD card-reader to write the generated image to the microSD card&lt;br /&gt;
&lt;br /&gt;
== Supported Stable Branch ==&lt;br /&gt;
With our OpenEmbedded / Yocto BSP Layer for DHCOM i.MX6 we support the following branches:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:75px; width:300px;&amp;quot;&lt;br /&gt;
! Name !! Version&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Dizzy || 1.7&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Krogoth || 2.1&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Thud (i.MX6ull only)|| 2.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Our BSP layer is based on the Freescale Community BSP.&lt;br /&gt;
&lt;br /&gt;
More information about Yocto stable branch maintenance at [https://wiki.yoctoproject.org/wiki/Stable_branch_maintenance https://wiki.yoctoproject.org/]&lt;br /&gt;
&lt;br /&gt;
== Setup Yocto Build System &amp;amp; Build Image ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:75px; width:300px;&amp;quot;&lt;br /&gt;
! Name &lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[Setup Yocto for Dizzy/Krogoth | Dizzy/Krogoth]] (i.MX6qdl)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[Setup Yocto for Thud | Thud ]] (i.MX6ull only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Running the image on DHCOM i.MX6 ==&lt;br /&gt;
As this is just a console image, you will need a serial terminal program such as minicom in order to interact with the board and run commands.  Simply plug the microSD card into the slot on the DHCOM i.MX6 module and apply power.  You should immediately see log messages in the serial terminal.  When complete, you should get a login prompt:&lt;br /&gt;
&lt;br /&gt;
 Poky (Yocto Project Reference Distro) 2.1.2 dhcom3bimx6dl /dev/ttymxc0&amp;lt;br/&amp;gt;&lt;br /&gt;
 dhcom3bimx6dl login:&lt;br /&gt;
&lt;br /&gt;
The default login username is &#039;root&#039; and there is no password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example Configurations ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Building Qt5 using Yocto | Building Qt5 using Yocto]]&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[Building Chromium, VLC and X11VNC using Yocto | Building Chromium, VLC and X11VNC using Yocto]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
* The content of this tutorial heavily borrowed from [http://wiki.wandboard.org/Getting_started_with_Yocto_on_Wandboard i.MX6 Wandboard Wiki &#039;Getting started with Yocto on Wandboard&#039;]&lt;br /&gt;
* Have a look at [http://wiki.wandboard.org/Building_Qt5_using_yocto_on_Wandboard &#039;Building Qt5 using yocto on Wandboard&#039;] to get information for adding Qt5&lt;br /&gt;
* Documentation of the latest [https://www.yoctoproject.org/documentation Yocto Project Releases]&lt;br /&gt;
* More additional information on [https://community.freescale.com/docs/DOC-1616 Freescale Yocto Project Main-Page]&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Yocto&amp;diff=2334</id>
		<title>Yocto</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Yocto&amp;diff=2334"/>
		<updated>2019-03-18T10:39:40Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For general information about the Yocto Project please refer to the official [https://www.yoctoproject.org/ Website]. &amp;quot;Yocto is not an embedded Linux distribution – it creates a custom one for you.&amp;quot; This says that if you are using Yocto to build your system image &#039;&#039;&#039;you are the distributor&#039;&#039;&#039;. If you&#039;re not aware of what this means for you please contact us.   &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Requirements hardware and software ==&lt;br /&gt;
* Linux-based (Debian/Ubuntu is recommended) host system to use for building Linux/Yocto&lt;br /&gt;
* min 4GB RAM / &amp;gt; 8GB RAM are recommended&lt;br /&gt;
* disk space (depending on image to build about 80 GB)&lt;br /&gt;
* a microSD card-reader to write the generated image to the microSD card&lt;br /&gt;
&lt;br /&gt;
== Supported Stable Branch ==&lt;br /&gt;
With our OpenEmbedded / Yocto BSP Layer for DHCOM i.MX6 we support the following branches:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:75px; width:300px;&amp;quot;&lt;br /&gt;
! Name !! Version&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Dizzy || 1.7&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Krogoth || 2.1&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Thud (i.MX6ull only)|| 2.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Our BSP layer is based on the Freescale Community BSP.&lt;br /&gt;
&lt;br /&gt;
More information about Yocto stable branch maintenance at [https://wiki.yoctoproject.org/wiki/Stable_branch_maintenance https://wiki.yoctoproject.org/]&lt;br /&gt;
&lt;br /&gt;
== Setup Yocto Build System &amp;amp; Build Image ==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:75px; width:300px;&amp;quot;&lt;br /&gt;
! Name &lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[SetupYoctoDizzyKrogoth | Dizzy/Krogoth]] (i.MX6qdl)&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[SetupYoctoThud | Thud ]] (i.MX6ull only)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Running the image on DHCOM i.MX6 ==&lt;br /&gt;
As this is just a console image, you will need a serial terminal program such as minicom in order to interact with the board and run commands.  Simply plug the microSD card into the slot on the DHCOM i.MX6 module and apply power.  You should immediately see log messages in the serial terminal.  When complete, you should get a login prompt:&lt;br /&gt;
&lt;br /&gt;
 Poky (Yocto Project Reference Distro) 2.1.2 dhcom3bimx6dl /dev/ttymxc0&amp;lt;br/&amp;gt;&lt;br /&gt;
 dhcom3bimx6dl login:&lt;br /&gt;
&lt;br /&gt;
The default login username is &#039;root&#039; and there is no password.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Example Configurations ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Building Qt5 using Yocto | Building Qt5 using Yocto]]&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[Building Chromium, VLC and X11VNC using Yocto | Building Chromium, VLC and X11VNC using Yocto]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
* The content of this tutorial heavily borrowed from [http://wiki.wandboard.org/Getting_started_with_Yocto_on_Wandboard i.MX6 Wandboard Wiki &#039;Getting started with Yocto on Wandboard&#039;]&lt;br /&gt;
* Have a look at [http://wiki.wandboard.org/Building_Qt5_using_yocto_on_Wandboard &#039;Building Qt5 using yocto on Wandboard&#039;] to get information for adding Qt5&lt;br /&gt;
* Documentation of the latest [https://www.yoctoproject.org/documentation Yocto Project Releases]&lt;br /&gt;
* More additional information on [https://community.freescale.com/docs/DOC-1616 Freescale Yocto Project Main-Page]&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
	<entry>
		<id>https://wiki.dh-electronics.com/index.php?title=Yocto&amp;diff=2333</id>
		<title>Yocto</title>
		<link rel="alternate" type="text/html" href="https://wiki.dh-electronics.com/index.php?title=Yocto&amp;diff=2333"/>
		<updated>2019-03-14T13:53:59Z</updated>

		<summary type="html">&lt;p&gt;Mschmoeller: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;For general information about the Yocto Project please refer to the official [https://www.yoctoproject.org/ Website]. &amp;quot;Yocto is not an embedded Linux distribution – it creates a custom one for you.&amp;quot; This says that if you are using Yocto to build your system image &#039;&#039;&#039;you are the distributor&#039;&#039;&#039;. If you&#039;re not aware of what this means for you please contact us.   &lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
== Requirements hardware and software ==&lt;br /&gt;
* Linux-based (Debian/Ubuntu is recommended) host system to use for building Linux/Yocto&lt;br /&gt;
* min 4GB RAM / &amp;gt; 8GB RAM are recommended&lt;br /&gt;
* disk space (depending on image to build about 80 GB)&lt;br /&gt;
* a microSD card-reader to write the generated image to the microSD card&lt;br /&gt;
&lt;br /&gt;
== Supported Stable Branch ==&lt;br /&gt;
With our OpenEmbedded / Yocto BSP Layer for DHCOM i.MX6 we support the following branches:&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:75px; width:300px;&amp;quot;&lt;br /&gt;
! Name !! Version&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Dizzy || 1.7&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Krogoth || 2.1&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| Thud (i.MX6ull only)|| 2.6&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Our BSP layer is based on the Freescale Community BSP.&lt;br /&gt;
&lt;br /&gt;
More information about Yocto stable branch maintenance at [https://wiki.yoctoproject.org/wiki/Stable_branch_maintenance https://wiki.yoctoproject.org/]&lt;br /&gt;
&lt;br /&gt;
== Setup Yocto Build System (Thud - i.MX6ull only) ==&lt;br /&gt;
&lt;br /&gt;
==== Install Required Host Packages ====&lt;br /&gt;
&lt;br /&gt;
Install the required packages for your host development system.  The Yocto Project documentation has a listing of install commands for many different linux host systems (Debian, Ubuntu, etc.).&lt;br /&gt;
&lt;br /&gt;
[http://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#required-packages-for-the-host-development-system Required Packages for the Host Development System] &lt;br /&gt;
&lt;br /&gt;
==== Download and Install Google&#039;s repo utility ====&lt;br /&gt;
&lt;br /&gt;
The BSP is based on the Yocto Project, which consists of a number of applicable metadata &#039;layers&#039;.  These are managed by the repo utility.&amp;lt;br /&amp;gt;&lt;br /&gt;
 $: mkdir ~/bin&lt;br /&gt;
 $: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo &amp;gt; ~/bin/repo&lt;br /&gt;
 $: chmod a+x ~/bin/repo&lt;br /&gt;
&lt;br /&gt;
==== Create the BSP directory to download all of the metadata for the BSP layers ====&lt;br /&gt;
Note: You can use your own BSP directory. In the following we use &amp;lt;code&amp;gt;~/dhcom-yocto-bsp&amp;lt;/code&amp;gt;&lt;br /&gt;
 $: PATH=${PATH}:~/bin&lt;br /&gt;
 $: cd&lt;br /&gt;
 $: mkdir dhcom-yocto-bsp&lt;br /&gt;
 $: cd dhcom-yocto-bsp&lt;br /&gt;
&lt;br /&gt;
==== Initialize the repositories ====&lt;br /&gt;
&lt;br /&gt;
For Thud:&lt;br /&gt;
$: repo init -u https://github.com/dh-electronics/dhcom_imx6-bsp-platform -b thud&lt;br /&gt;
&lt;br /&gt;
==== Download all of the metadata for the BSP layers ====&lt;br /&gt;
&lt;br /&gt;
 $: repo sync&lt;br /&gt;
&lt;br /&gt;
Once this has completed, you should have all of the metadata source of DHCOM and Freescale Community BSP in dhcom-yocto-bsp.&lt;br /&gt;
&lt;br /&gt;
== Setup environment and build an image (Thud- i.MX6ull only) ==&lt;br /&gt;
&lt;br /&gt;
 start a build, first set the MACHINE shell environment variable to set the machine.  These are: &amp;lt;br/&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:150px; width:500px; margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
|+DHCOM i.MX6 Machines in Yocto&lt;br /&gt;
! Board Type !! HW !! MACHINE&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 ULL|| 100 || &amp;lt;code&amp;gt;  dhcom1bimx6ull  &amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example, if you have a DHCOM i.MX6 Duallite HW300, then use MACHINE &amp;quot;dhcom3bimx6dl&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Run the &amp;lt;code&amp;gt;setup-environment&amp;lt;/code&amp;gt; script.  This is a helper script which sets up the environment and creates a build directory for you.  The first time you run this, you will be asked to accept the Freescale end user license agreement (EULA).&lt;br /&gt;
&lt;br /&gt;
 $: MACHINE=dhcom1bimx6ull source ./setup-environment build&lt;br /&gt;
&lt;br /&gt;
Run bitbake with &amp;lt;code&amp;gt;core-image-minimal&amp;lt;/code&amp;gt; as its argument.  This will create a small image and should have the shortest possible build time.  Note: all of the sources are downloaded from the internet and built from scratch.  This includes the toolchain (gcc) and all of the native utilities, so building an image for the first time could take a few hours, depending on the performance of your host machine.&lt;br /&gt;
&lt;br /&gt;
 $: bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
==== Locating the images and installing to a microSD card ====&lt;br /&gt;
Once the image is built successfully, there are several target images that are built by default.  One of these is an image suitable for loading directly into an SD card.  It contains all of the required binaries (bootloader, kernel, filesystem) in a preformatted binary image.&lt;br /&gt;
&lt;br /&gt;
You can find the image at:&lt;br /&gt;
&lt;br /&gt;
  build/tmp/deploy/images/&amp;lt;MACHINE&amp;gt;/core-image-minimal-&amp;lt;MACHINE&amp;gt;.wic.gz&lt;br /&gt;
The &amp;lt;code&amp;gt;.wic.gz&amp;lt;/code&amp;gt; image can be unziped with &amp;lt;code&amp;gt;gunzip&amp;lt;/code&amp;gt; and copied to an SD card with the &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
 $ gunzip -c tmp/deploy/images/&amp;lt;MACHINE&amp;gt;/core-image-minimal-&amp;lt;MACHINE&amp;gt;.wic.gz | sudo dd of=/dev/sd&amp;lt;N&amp;gt; bs=1M iflag=fullblock oflag=direct conv=fsync status=progress&lt;br /&gt;
&lt;br /&gt;
Note: &#039;&#039;&#039;&amp;lt;MACHINE&amp;gt;&#039;&#039;&#039; in the above corresponds to the MACHINE name provided to bitbake. &#039;&#039;&#039;&amp;quot;N&amp;quot;&#039;&#039;&#039; in the above command is the letter assigned to the SD card.  This will vary depending on your host machine configuration.&lt;br /&gt;
&lt;br /&gt;
== Setup Yocto Build System (Krogoth &amp;amp; Dizzy) ==&lt;br /&gt;
&lt;br /&gt;
==== Install Required Host Packages ====&lt;br /&gt;
&lt;br /&gt;
Install the required packages for your host development system.  The Yocto Project documentation has a listing of install commands for many different linux host systems (Debian, Ubuntu, etc.).&lt;br /&gt;
&lt;br /&gt;
[http://www.yoctoproject.org/docs/latest/ref-manual/ref-manual.html#required-packages-for-the-host-development-system Required Packages for the Host Development System] &lt;br /&gt;
&lt;br /&gt;
==== Download and Install Google&#039;s repo utility ====&lt;br /&gt;
&lt;br /&gt;
The BSP is based on the Yocto Project, which consists of a number of applicable metadata &#039;layers&#039;.  These are managed by the repo utility.&amp;lt;br /&amp;gt;&lt;br /&gt;
 $: mkdir ~/bin&lt;br /&gt;
 $: curl http://commondatastorage.googleapis.com/git-repo-downloads/repo &amp;gt; ~/bin/repo&lt;br /&gt;
 $: chmod a+x ~/bin/repo&lt;br /&gt;
&lt;br /&gt;
==== Create the BSP directory to download all of the metadata for the BSP layers ====&lt;br /&gt;
Note: You can use your own BSP directory. In the following we use &amp;lt;code&amp;gt;~/fsl-community-bsp&amp;lt;/code&amp;gt;&lt;br /&gt;
 $: PATH=${PATH}:~/bin&lt;br /&gt;
 $: cd&lt;br /&gt;
 $: mkdir fsl-community-bsp&lt;br /&gt;
 $: cd fsl-community-bsp&lt;br /&gt;
&lt;br /&gt;
==== Initialize the repositories ==== &lt;br /&gt;
&lt;br /&gt;
The next step is to initialize the repositories. This establishes which branch of the repository will be used for your development. The &#039;&#039;master&#039;&#039; branch is the current development branch. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;Note: The master branch is a development branch, not a stable branch.  It is constantly changing with code updates, the adding of new features, and so forth.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 For Dizzy use:&lt;br /&gt;
 $: repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b dizzy&lt;br /&gt;
 &lt;br /&gt;
 For Krogoth use:&lt;br /&gt;
 $: repo init -u https://github.com/Freescale/fsl-community-bsp-platform -b krogoth&lt;br /&gt;
&lt;br /&gt;
==== Download all of the metadata for the BSP layers ====&lt;br /&gt;
&lt;br /&gt;
 $: repo sync&lt;br /&gt;
&lt;br /&gt;
Once this has completed, you should have all of the metadata source of the Freescale Community BSP in fsl-community-bsp.&lt;br /&gt;
&lt;br /&gt;
==== Add DHCOM i.MX6 BSP layer ====&lt;br /&gt;
&lt;br /&gt;
To clone the OpenEmbedded / Yocto BSP layer for DHCOM i.MX6 execute the following steps:&lt;br /&gt;
&lt;br /&gt;
 $: cd fsl-community-bsp/sources&lt;br /&gt;
 &lt;br /&gt;
 For Dizzy use:&lt;br /&gt;
 $: git clone -b dizzy https://github.com/dh-electronics/meta-dhcom_imx6.git&lt;br /&gt;
 &lt;br /&gt;
 For Krogoth use:&lt;br /&gt;
 $: git clone -b krogoth https://github.com/dh-electronics/meta-dhcom_imx6.git&lt;br /&gt;
&lt;br /&gt;
Edit &amp;lt;code&amp;gt;~/fsl-community-bsp/build/conf/bblayers.conf&amp;lt;/code&amp;gt; (run bitbake once to create build directory, see &#039;Setup environment and build an image&#039;) to add the meta-dhcom_imx6 layer at the end:&lt;br /&gt;
&lt;br /&gt;
 ${BSPDIR}/sources/meta-dhcom_imx6 \&lt;br /&gt;
&lt;br /&gt;
== Setup environment and build an image (Krogoth &amp;amp; Dizzy) ==&lt;br /&gt;
&lt;br /&gt;
To start a build, first set the MACHINE shell environment variable to set the machine.  These are: &amp;lt;br/&amp;gt;&lt;br /&gt;
{| border=&amp;quot;1&amp;quot;  style=&amp;quot;border-collapse:collapse; height:150px; width:500px; margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
|+DHCOM i.MX6 Machines in Yocto&lt;br /&gt;
! Board Type !! HW !! MACHINE&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Solo || 200 || &amp;lt;code&amp;gt;  dhcom2bimx6s  &amp;lt;/code&amp;gt; (former dhcomimx6s)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 DualLite || 200 || &amp;lt;code&amp;gt;  dhcom2bimx6dl    &amp;lt;/code&amp;gt; (former dhcomimx6dl)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Dual || 200 || &amp;lt;code&amp;gt;  dhcom2bimx6d  &amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Quad || 200 || &amp;lt;code&amp;gt;  dhcom2bimx6q  &amp;lt;/code&amp;gt; (former dhcomimx6q)&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Solo || 300 || &amp;lt;code&amp;gt;  dhcom3bimx6s  &amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 DualLite || 300 || &amp;lt;code&amp;gt;  dhcom3bimx6dl    &amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Dual || 300 || &amp;lt;code&amp;gt;  dhcom3bimx6d  &amp;lt;/code&amp;gt;&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Quad || 300 || &amp;lt;code&amp;gt;  dhcom3bimx6q  &amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Solo || 400 || &amp;lt;code&amp;gt;  dhcom4bimx6s  &amp;lt;/code&amp;gt; (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 DualLite || 400 || &amp;lt;code&amp;gt;  dhcom4bimx6dl    &amp;lt;/code&amp;gt; (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Dual || 400 || &amp;lt;code&amp;gt;  dhcom4bimx6d  &amp;lt;/code&amp;gt; (new)&lt;br /&gt;
|- align=&amp;quot;left&amp;quot;&lt;br /&gt;
| DHCOM i.MX6 Quad || 400 || &amp;lt;code&amp;gt;  dhcom4bimx6q  &amp;lt;/code&amp;gt; (new)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
For example, if you have a DHCOM i.MX6 Duallite HW300, then use MACHINE &amp;quot;dhcom3bimx6dl&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
Run the &amp;lt;code&amp;gt;setup-environment&amp;lt;/code&amp;gt; script.  This is a helper script which sets up the environment and creates a build directory for you.  The first time you run this, you will be asked to accept the Freescale end user license agreement (EULA).&lt;br /&gt;
&lt;br /&gt;
 $: MACHINE=dhcom3bimx6dl source ./setup-environment build&lt;br /&gt;
&lt;br /&gt;
Run bitbake with &amp;lt;code&amp;gt;core-image-minimal&amp;lt;/code&amp;gt; as its argument.  This will create a small image and should have the shortest possible build time.  Note: all of the sources are downloaded from the internet and built from scratch.  This includes the toolchain (gcc) and all of the native utilities, so building an image for the first time could take a few hours, depending on the performance of your host machine.&lt;br /&gt;
&lt;br /&gt;
 $: bitbake core-image-minimal&lt;br /&gt;
&lt;br /&gt;
==== Locating the images and installing to a microSD card ====&lt;br /&gt;
Once the image is built successfully, there are several target images that are built by default.  One of these is an image suitable for loading directly into an SD card.  It contains all of the required binaries (bootloader, kernel, filesystem) in a preformatted binary image.&lt;br /&gt;
&lt;br /&gt;
You can find the image at:&lt;br /&gt;
&lt;br /&gt;
  build/tmp/deploy/images/&amp;lt;MACHINE&amp;gt;/core-image-minimal-&amp;lt;MACHINE&amp;gt;.sdcard&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;.sdcard&amp;lt;/code&amp;gt; image can be directly copied to an SD card with the &amp;lt;code&amp;gt;dd&amp;lt;/code&amp;gt; command:&lt;br /&gt;
&lt;br /&gt;
 $ sudo dd if=tmp/deploy/images/&amp;lt;MACHINE&amp;gt;/core-image-minimal-&amp;lt;MACHINE&amp;gt;.sdcard of=/dev/sd&amp;lt;N&amp;gt; bs=1M&lt;br /&gt;
&lt;br /&gt;
Note: &#039;&#039;&#039;&amp;lt;MACHINE&amp;gt;&#039;&#039;&#039; in the above corresponds to the MACHINE name provided to bitbake. &#039;&#039;&#039;&amp;quot;N&amp;quot;&#039;&#039;&#039; in the above command is the letter assigned to the SD card.  This will vary depending on your host machine configuration.&lt;br /&gt;
&lt;br /&gt;
==== Running the image on DHCOM i.MX6 ====&lt;br /&gt;
As this is just a console image, you will need a serial terminal program such as minicom in order to interact with the board and run commands.  Simply plug the microSD card into the slot on the DHCOM i.MX6 module and apply power.  You should immediately see log messages in the serial terminal.  When complete, you should get a login prompt:&lt;br /&gt;
&lt;br /&gt;
 Poky (Yocto Project Reference Distro) 2.1.2 dhcom3bimx6dl /dev/ttymxc0&amp;lt;br/&amp;gt;&lt;br /&gt;
 dhcom3bimx6dl login:&lt;br /&gt;
&lt;br /&gt;
The default login username is &#039;root&#039; and there is no password.&lt;br /&gt;
&lt;br /&gt;
=== Other interesting images ===&lt;br /&gt;
&lt;br /&gt;
The image &amp;lt;code&amp;gt; core-image-minimal&amp;lt;/code&amp;gt; builds relatively quickly due to its small size.  It is a good image to test to see if your board works.  There are other images that you can also try, but can take a good deal longer to build.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; style=&amp;quot;border-collapse:collapse; height:150px; margin: 1em auto 1em auto;&amp;quot;&lt;br /&gt;
! Image&lt;br /&gt;
! Description&lt;br /&gt;
|-&lt;br /&gt;
! core-image-base&lt;br /&gt;
| Basic image with kernel modules and other features&lt;br /&gt;
|-&lt;br /&gt;
! core-image-x11&lt;br /&gt;
| Basic image with X11 support&lt;br /&gt;
|-&lt;br /&gt;
! core-image-sato&lt;br /&gt;
| Image with Sato, a mobile environment and visual style for mobile devices.&amp;lt;br/&amp;gt;The image supports X11 with a Sato theme, Pimlico applications, and contains terminal, editor, and file manager.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Example Configurations ==&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;&#039;[[Building Qt5 using Yocto | Building Qt5 using Yocto]]&#039;&#039;&#039;&lt;br /&gt;
*&#039;&#039;&#039;[[Building Chromium, VLC and X11VNC using Yocto | Building Chromium, VLC and X11VNC using Yocto]]&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== External References ==&lt;br /&gt;
* The content of this tutorial heavily borrowed from [http://wiki.wandboard.org/Getting_started_with_Yocto_on_Wandboard i.MX6 Wandboard Wiki &#039;Getting started with Yocto on Wandboard&#039;]&lt;br /&gt;
* Have a look at [http://wiki.wandboard.org/Building_Qt5_using_yocto_on_Wandboard &#039;Building Qt5 using yocto on Wandboard&#039;] to get information for adding Qt5&lt;br /&gt;
* Documentation of the latest [https://www.yoctoproject.org/documentation Yocto Project Releases]&lt;br /&gt;
* More additional information on [https://community.freescale.com/docs/DOC-1616 Freescale Yocto Project Main-Page]&lt;/div&gt;</summary>
		<author><name>Mschmoeller</name></author>
	</entry>
</feed>