<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://wikilegacy.armadeus.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=FabienM</id>
	<title>ArmadeusWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="http://wikilegacy.armadeus.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=FabienM"/>
	<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Special:Contributions/FabienM"/>
	<updated>2026-04-27T18:40:54Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.6</generator>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=OPOS93_SP&amp;diff=15180</id>
		<title>OPOS93 SP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=OPOS93_SP&amp;diff=15180"/>
		<updated>2025-09-23T12:59:12Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS93_SP]]&lt;br /&gt;
[[Category:MainBoards]]&lt;br /&gt;
[[Category:Hardware]]&lt;br /&gt;
[[Category:Efinix]]&lt;br /&gt;
[[Category:Trion]]&lt;br /&gt;
[[Category:FPGA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.opossom.com/english/product-opos93sp/index.html  OPOS93SP] is a SoM derivated from [https://www.opossom.com/english/product-opos93sp/index.html  OPOS93] with a FPGA [https://www.efinixinc.com/shop/t20.php Trion T20] produced by Efinix.&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
&lt;br /&gt;
* [[OPOS93_SP_Interfaces_description | Interface description]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=OPOS93_SP&amp;diff=15179</id>
		<title>OPOS93 SP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=OPOS93_SP&amp;diff=15179"/>
		<updated>2025-09-23T12:57:40Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* FPGA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.opossom.com/english/product-opos93sp/index.html  OPOS93SP] is a SoM derivated from [https://www.opossom.com/english/product-opos93sp/index.html  OPOS93] with a FPGA [https://www.efinixinc.com/shop/t20.php Trion T20] produced by Efinix.&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
&lt;br /&gt;
* [[OPOS93_SP_Interfaces_description | Interface description]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=OPOS93_SP&amp;diff=15178</id>
		<title>OPOS93 SP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=OPOS93_SP&amp;diff=15178"/>
		<updated>2025-09-23T12:57:27Z</updated>

		<summary type="html">&lt;p&gt;FabienM: Created page with &amp;quot;== Description ==   [https://www.opossom.com/english/product-opos93sp/index.html  OPOS93SP] is a SoM derivated from [https://www.opossom.com/english/product-opos93sp/index.html  OPOS93] with a FPGA [https://www.efinixinc.com/shop/t20.php Trion T20] produced by Efinix.  === FPGA ===  *  Trion T20&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Description ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[https://www.opossom.com/english/product-opos93sp/index.html  OPOS93SP] is a SoM derivated from [https://www.opossom.com/english/product-opos93sp/index.html  OPOS93] with a FPGA [https://www.efinixinc.com/shop/t20.php Trion T20] produced by Efinix.&lt;br /&gt;
&lt;br /&gt;
=== FPGA ===&lt;br /&gt;
&lt;br /&gt;
* [[OPOS93_SP_Interfaces_description | Trion T20]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Hardware&amp;diff=15177</id>
		<title>Hardware</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Hardware&amp;diff=15177"/>
		<updated>2025-09-23T12:47:25Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Baseboards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Armadeus Boards==&lt;br /&gt;
The following boards are developed by [http://www.armadeus.com Armadeus Systems].&amp;lt;br&amp;gt; Members of the Armadeus Project association can purchase these products at discount prices. Take a look at the [[Association]] page for details.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
=== APFxx and OPOSxx Systems on Module (SoM) ===&lt;br /&gt;
* [[APF9328]]: i.MXL based module&lt;br /&gt;
* [[APF27]]: i.MX27 based module with Spartan3 FPGA&lt;br /&gt;
* [[APF51]]: i.MX51 based module with Spartan6 FPGA&lt;br /&gt;
* [[APF28]]: i.MX28 based module&lt;br /&gt;
* [[APF6]]: i.MX6 based module&lt;br /&gt;
* [[APF6_SP]] : i.MX6 based module with CycloneV FPGA&lt;br /&gt;
* [[OPOS6UL]] : i.MX6UL based module&lt;br /&gt;
* [[OPOS6UL_NANO]] : i.MX6UL based nano module&lt;br /&gt;
* [[OPOS6UL_SP]] : i.MX6ULL based module with a Spartan6 FPGA&lt;br /&gt;
* [[OPOS93]]: i.MX93 based module&lt;br /&gt;
* [[OPOS93_SP]]: i.MX93 based module with a Trion FPGA&lt;br /&gt;
* [[Footprints]] : Footprint available for APFxx module&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
=== Baseboards ===&lt;br /&gt;
* [[OPOS93SPDev]]: full featured development board for the OPOS93_SP&lt;br /&gt;
* [[OPOS93Dev]]: full featured development board for the OPOS93&lt;br /&gt;
* [[OPOS6ULDev used with an OPOS6UL_NANO]]: full featured development board of the [[OPOS6UL]], but used with an [[OPOS6UL_NANO]] SOM (needs a SODIMM adapter&lt;br /&gt;
* [[OPOS6ULDev]]: full featured development board for the [[OPOS6UL]]&lt;br /&gt;
* No more available:&lt;br /&gt;
** [[APF9328DevLight]]: low cost development board for the APF9328&lt;br /&gt;
** [[APF9328DevFull]]: full featured development board for the APF9328&lt;br /&gt;
** [[APF6Dev]]: full featured development board for the APF6&lt;br /&gt;
** [[APF28Dev]]: full featured development board for the APF28&lt;br /&gt;
** [[APF51Dev]]: full featured development board for the APF51&lt;br /&gt;
** [[APF27Dev]]: full featured development board for the APF27 (with several options)&lt;br /&gt;
** [[APF27 PPS]]/PPS: network applications development board for the APF27&lt;br /&gt;
** [[PPS51]]: network applications development board for the APF51&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Extension Boards ===&lt;br /&gt;
* [[Chimei_LW700|LW700AT_Adapt]]: Adapter for the Chimei LW700 TFT LCD&lt;br /&gt;
* [[Wireless_extension_board|APW wireless board]]: Add WiFi &amp;amp; Bluetooth &amp;amp; GPS &amp;amp; GSM to your [[APF27Dev]]&lt;br /&gt;
* [[SP_VISION]]: Extension with Spartan6 FPGA, for video processing&lt;br /&gt;
* No more available:&lt;br /&gt;
** [[LQ043_Adapt]]: Adapter for the Sharp LQ043 TFT LCD&lt;br /&gt;
** [[MTF-T035|MTF-T035_Adapt]]: Adapter for the Microtips MTF-T035 TFT LCD&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
=== Demo Boards ===&lt;br /&gt;
* [[HMS Demo]]: industrial demo platform&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* [http://kicad-pcb.org/ Kicad EDA tool]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Hardware&amp;diff=15176</id>
		<title>Hardware</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Hardware&amp;diff=15176"/>
		<updated>2025-09-23T12:46:13Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Baseboards */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Armadeus Boards==&lt;br /&gt;
The following boards are developed by [http://www.armadeus.com Armadeus Systems].&amp;lt;br&amp;gt; Members of the Armadeus Project association can purchase these products at discount prices. Take a look at the [[Association]] page for details.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
=== APFxx and OPOSxx Systems on Module (SoM) ===&lt;br /&gt;
* [[APF9328]]: i.MXL based module&lt;br /&gt;
* [[APF27]]: i.MX27 based module with Spartan3 FPGA&lt;br /&gt;
* [[APF51]]: i.MX51 based module with Spartan6 FPGA&lt;br /&gt;
* [[APF28]]: i.MX28 based module&lt;br /&gt;
* [[APF6]]: i.MX6 based module&lt;br /&gt;
* [[APF6_SP]] : i.MX6 based module with CycloneV FPGA&lt;br /&gt;
* [[OPOS6UL]] : i.MX6UL based module&lt;br /&gt;
* [[OPOS6UL_NANO]] : i.MX6UL based nano module&lt;br /&gt;
* [[OPOS6UL_SP]] : i.MX6ULL based module with a Spartan6 FPGA&lt;br /&gt;
* [[OPOS93]]: i.MX93 based module&lt;br /&gt;
* [[OPOS93_SP]]: i.MX93 based module with a Trion FPGA&lt;br /&gt;
* [[Footprints]] : Footprint available for APFxx module&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
=== Baseboards ===&lt;br /&gt;
* [[OPOS6ULDev used with an OPOS6UL_NANO]]: full featured development board of the [[OPOS6UL]], but used with an [[OPOS6UL_NANO]] SOM (needs a SODIMM adapter&lt;br /&gt;
* [[OPOS6ULDev]]: full featured development board for the [[OPOS6UL]]&lt;br /&gt;
* No more available:&lt;br /&gt;
** [[APF9328DevLight]]: low cost development board for the APF9328&lt;br /&gt;
** [[APF9328DevFull]]: full featured development board for the APF9328&lt;br /&gt;
** [[APF6Dev]]: full featured development board for the APF6&lt;br /&gt;
** [[APF28Dev]]: full featured development board for the APF28&lt;br /&gt;
** [[APF51Dev]]: full featured development board for the APF51&lt;br /&gt;
** [[APF27Dev]]: full featured development board for the APF27 (with several options)&lt;br /&gt;
** [[APF27 PPS]]/PPS: network applications development board for the APF27&lt;br /&gt;
** [[PPS51]]: network applications development board for the APF51&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Extension Boards ===&lt;br /&gt;
* [[Chimei_LW700|LW700AT_Adapt]]: Adapter for the Chimei LW700 TFT LCD&lt;br /&gt;
* [[Wireless_extension_board|APW wireless board]]: Add WiFi &amp;amp; Bluetooth &amp;amp; GPS &amp;amp; GSM to your [[APF27Dev]]&lt;br /&gt;
* [[SP_VISION]]: Extension with Spartan6 FPGA, for video processing&lt;br /&gt;
* No more available:&lt;br /&gt;
** [[LQ043_Adapt]]: Adapter for the Sharp LQ043 TFT LCD&lt;br /&gt;
** [[MTF-T035|MTF-T035_Adapt]]: Adapter for the Microtips MTF-T035 TFT LCD&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
=== Demo Boards ===&lt;br /&gt;
* [[HMS Demo]]: industrial demo platform&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* [http://kicad-pcb.org/ Kicad EDA tool]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Hardware&amp;diff=15169</id>
		<title>Hardware</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Hardware&amp;diff=15169"/>
		<updated>2025-08-25T08:32:18Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* APFxx and OPOSxx Systems on Module (SoM) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Armadeus Boards==&lt;br /&gt;
The following boards are developed by [http://www.armadeus.com Armadeus Systems].&amp;lt;br&amp;gt; Members of the Armadeus Project association can purchase these products at discount prices. Take a look at the [[Association]] page for details.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionnalities&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
=== APFxx and OPOSxx Systems on Module (SoM) ===&lt;br /&gt;
* [[APF9328]]: i.MXL based module&lt;br /&gt;
* [[APF27]]: i.MX27 based module with Spartan3 FPGA&lt;br /&gt;
* [[APF51]]: i.MX51 based module with Spartan6 FPGA&lt;br /&gt;
* [[APF28]]: i.MX28 based module&lt;br /&gt;
* [[APF6]]: i.MX6 based module&lt;br /&gt;
* [[APF6_SP]] : i.MX6 based module with CycloneV FPGA&lt;br /&gt;
* [[OPOS6UL]] : i.MX6UL based module&lt;br /&gt;
* [[OPOS6UL_NANO]] : i.MX6UL based nano module&lt;br /&gt;
* [[OPOS6UL_SP]] : i.MX6ULL based module with a Spartan6 FPGA&lt;br /&gt;
* [[OPOS93]]: i.MX93 based module&lt;br /&gt;
* [[OPOS93_SP]]: i.MX93 based module with a Trion FPGA&lt;br /&gt;
* [[Footprints]] : Footprint available for APFxx module&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
=== Baseboards ===&lt;br /&gt;
* [[OPOS6ULDev used with an OPOS6UL_NANO]]: full featured development board of the [[OPOS6UL]], but used with an [[OPOS6UL_NANO]] SOM (needs a SODIMM adapter&lt;br /&gt;
* [[OPOS6ULDev]]: full featured development board for the [[OPOS6UL]]&lt;br /&gt;
* [[APF6Dev]]: full featured development board for the APF6&lt;br /&gt;
* [[APF28Dev]]: full featured development board for the APF28&lt;br /&gt;
* [[APF51Dev]]: full featured development board for the APF51&lt;br /&gt;
* [[APF27Dev]]: full featured development board for the APF27 (with several options)&lt;br /&gt;
* [[APF27 PPS]]/PPS: network applications development board for the APF27&lt;br /&gt;
* [[PPS51]]: network applications development board for the APF51&lt;br /&gt;
* No more available:&lt;br /&gt;
** [[APF9328DevLight]]: low cost development board for the APF9328&lt;br /&gt;
** [[APF9328DevFull]]: full featured development board for the APF9328&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Extension Boards ===&lt;br /&gt;
* [[Chimei_LW700|LW700AT_Adapt]]: Adapter for the Chimei LW700 TFT LCD&lt;br /&gt;
* [[Wireless_extension_board|APW wireless board]]: Add WiFi &amp;amp; Bluetooth &amp;amp; GPS &amp;amp; GSM to your [[APF27Dev]]&lt;br /&gt;
* [[SP_VISION]]: Extension with Spartan6 FPGA, for video processing&lt;br /&gt;
* No more available:&lt;br /&gt;
** [[LQ043_Adapt]]: Adapter for the Sharp LQ043 TFT LCD&lt;br /&gt;
** [[MTF-T035|MTF-T035_Adapt]]: Adapter for the Microtips MTF-T035 TFT LCD&lt;br /&gt;
&lt;br /&gt;
||&lt;br /&gt;
&lt;br /&gt;
=== Demo Boards ===&lt;br /&gt;
* [[HMS Demo]]: industrial demo platform&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Tools==&lt;br /&gt;
* [http://kicad-pcb.org/ Kicad EDA tool]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=OPOS93&amp;diff=15168</id>
		<title>OPOS93</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=OPOS93&amp;diff=15168"/>
		<updated>2025-08-25T08:29:01Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Description */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS93]]&lt;br /&gt;
&lt;br /&gt;
{{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
The [https://www.opossom.com/english/product-opos93/index.html  OPOS93] is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive AI computation and extended connectivity.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=OPOS93&amp;diff=15167</id>
		<title>OPOS93</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=OPOS93&amp;diff=15167"/>
		<updated>2025-08-25T08:28:51Z</updated>

		<summary type="html">&lt;p&gt;FabienM: Created page with &amp;quot;Category: OPOS93  {{Under_Construction}}  ==Description==  The[https://www.opossom.com/english/product-opos93/index.html  OPOS93] is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive AI computation and extended connectivity.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS93]]&lt;br /&gt;
&lt;br /&gt;
{{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
==Description==&lt;br /&gt;
&lt;br /&gt;
The[https://www.opossom.com/english/product-opos93/index.html  OPOS93] is a high-end [https://en.wikipedia.org/wiki/Single-board_computer Single Board Computer] targeted for advanced GUI, intensive AI computation and extended connectivity.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=OPOS93_SP_Interfaces_description&amp;diff=15165</id>
		<title>OPOS93 SP Interfaces description</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=OPOS93_SP_Interfaces_description&amp;diff=15165"/>
		<updated>2025-04-10T06:09:10Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS93_SP]]&lt;br /&gt;
[[Category: FPGA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Using_FPGA| &amp;lt;&amp;lt; FPGA general page]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=OPOS6UL_SP_Interfaces_description&amp;diff=15164</id>
		<title>OPOS6UL SP Interfaces description</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=OPOS6UL_SP_Interfaces_description&amp;diff=15164"/>
		<updated>2025-04-10T06:09:00Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Links */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS6UL_SP]]&lt;br /&gt;
[[Category: FPGA]]&lt;br /&gt;
[[Category: Spartan6]]&lt;br /&gt;
[[Category: ISE]]&lt;br /&gt;
[[Category: XILINX]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
This article describe the bus interface communication between the i.MX6UL(L) and the spartan6. In i.MX6UL(L) the bus used to make communication with the FPGA is named &#039;&#039;&#039;EIM&#039;&#039;&#039; for &#039;&#039;&#039;E&#039;&#039;&#039;xternal &#039;&#039;&#039;I&#039;&#039;&#039;nterface &#039;&#039;&#039;M&#039;&#039;&#039;odule. All description of this bus can be found under the i.MX6UL(L) [https://www.nxp.com/webapp/Download?colCode=IMX6ULRM reference manual] in chapter 21 (page 821).&lt;br /&gt;
&lt;br /&gt;
FPGA used on board is an &#039;&#039;&#039;XC6SLX9-2CSG225&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
== Simplified view ==&lt;br /&gt;
&lt;br /&gt;
[[File:OPOS6UL_SP_EIM_FPGA_INTERFACE.png|600px|center|thumb|&#039;&#039;&#039;figure 1&#039;&#039;&#039; - &#039;&#039;i.MX6UL(L)-Spartan6 bus description&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
Normal communication between i.MX6UL(L) processor and Spartan6 fpga is done with black following signals :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;EIM_BCLK&#039;&#039;&#039; : Clock&lt;br /&gt;
* &#039;&#039;&#039;EIM_DA[15:0]&#039;&#039;&#039;: 16bits data and address bus&lt;br /&gt;
* &#039;&#039;&#039;EIM_LBA (ADV)&#039;&#039;&#039;: Signal used for data/address muxing&lt;br /&gt;
* &#039;&#039;&#039;EIM_RW&#039;&#039;&#039;: Read/Write control signal&lt;br /&gt;
* &#039;&#039;&#039;EIM_CS0&#039;&#039;&#039;: Chip select&lt;br /&gt;
&lt;br /&gt;
Gray following signals can be used by EIM (External Interface Memory), but not used in default configuration :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;EIM_EB0&#039;&#039;&#039;: Select byte 0 on bus&lt;br /&gt;
* &#039;&#039;&#039;EIM_EB1&#039;&#039;&#039;: Select byte 1 on bus&lt;br /&gt;
* &#039;&#039;&#039;OE&#039;&#039;&#039; : Output enable&lt;br /&gt;
* &#039;&#039;&#039;EIM_CLK0&#039;&#039;&#039;: second clock (EIM_ACLK)&lt;br /&gt;
&lt;br /&gt;
Blue following signals are used for FPGA configuration from imx. Some EIM (black) signals are also used for it.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;FPGA_INITB&#039;&#039;&#039;: Initialize FPGA&lt;br /&gt;
* &#039;&#039;&#039;FPGA_PROGRAM&#039;&#039;&#039; : Program (configure) FPGA&lt;br /&gt;
* &#039;&#039;&#039;FPGA_DONE&#039;&#039;&#039;: FPGA configuration is done.&lt;br /&gt;
&lt;br /&gt;
== Tutorials ==&lt;br /&gt;
&lt;br /&gt;
* [[opos6ul_sp_fpga_simple_howto | Simple tutorial to make communication]]&lt;br /&gt;
== Default configuration on CSx ==&lt;br /&gt;
&lt;br /&gt;
=== Clocks ===&lt;br /&gt;
&lt;br /&gt;
The clock used to clock the FPGA is EIM_BCLK (IO_L1P_CCLK_2(N12) and IO_L29P_GCLK3_2(N8)) and is configured to &#039;&#039;&#039;99 MHz&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Chip Select ===&lt;br /&gt;
&lt;br /&gt;
The EIM memory space is mapped into 128 MB total memory space in the processor&lt;br /&gt;
memory. This memory space begin at address &#039;&#039;&#039;0x50000000&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Start address&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| End address&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Size&lt;br /&gt;
! scope=&amp;quot;col&amp;quot;| Name&lt;br /&gt;
|-&lt;br /&gt;
! scope=&amp;quot;row&amp;quot;| 0x5000_0000&lt;br /&gt;
| 0x57FF_FFFF&lt;br /&gt;
| 128 MB&lt;br /&gt;
| EIM (NOR/SRAM)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
The total 128 MB of memory can be divided among the EIM four chip selects. See reference manual of i.MX6ULL for more information.&lt;br /&gt;
&lt;br /&gt;
=== Timings ===&lt;br /&gt;
&lt;br /&gt;
==== Read ====&lt;br /&gt;
&lt;br /&gt;
* U-Boot: To read one 16 bits value in 0 (0x50000000 in i.MX) do :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; md.w 50000000 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Linux: To read one 16 bits value in 0 (0x50000000 in i.MX) do :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# devmem 0x50000000 16&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Bus timings are following :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;wavedrom&amp;gt;&lt;br /&gt;
{ signal: [&lt;br /&gt;
  { name: &amp;quot;BCLK&amp;quot;,  wave: &amp;quot;P......&amp;quot; },&lt;br /&gt;
  { name: &amp;quot;DA&amp;quot;,  wave: &amp;quot;x34...x&amp;quot;,   data: &amp;quot;addr data&amp;quot;, node:&amp;quot;..c...d.&amp;quot; },&lt;br /&gt;
  { name: &amp;quot;ADV&amp;quot;, wave: &amp;quot;101....&amp;quot;},&lt;br /&gt;
  { name: &amp;quot;RW&amp;quot;, wave: &amp;quot;0......&amp;quot;},&lt;br /&gt;
  { name: &amp;quot;CS0&amp;quot;, wave: &amp;quot;1.0...1&amp;quot;},&lt;br /&gt;
  {                               node:&amp;quot;..a...b.&amp;quot; }&lt;br /&gt;
],&lt;br /&gt;
  edge: [&#039;a&amp;lt;-|-&amp;gt;b RWSC=4&#039;, &#039;c-a&#039;, &#039;d-b&#039;]&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/wavedrom&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Write ====&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* U-Boot: To write one 16 bits value in 0 (0x50000000 in i.MX) do :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; mw.w 50000000 CAFE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Linux: To write one 16 bits value in 0 (0x50000000 in i.MX) do :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# devmem 0x50000000 16 0xCAFE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Bus timings are following :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;wavedrom&amp;gt;&lt;br /&gt;
{ signal: [&lt;br /&gt;
  { name: &amp;quot;BCLK&amp;quot;,  wave: &amp;quot;P......&amp;quot; },&lt;br /&gt;
  { name: &amp;quot;DA&amp;quot;,  wave: &amp;quot;x34...x&amp;quot;,   data: &amp;quot;addr data&amp;quot;, node:&amp;quot;..c...d.&amp;quot; },&lt;br /&gt;
  { name: &amp;quot;ADV&amp;quot;, wave: &amp;quot;101....&amp;quot;},&lt;br /&gt;
  { name: &amp;quot;RW&amp;quot;, wave: &amp;quot;0.1...0&amp;quot;},&lt;br /&gt;
  { name: &amp;quot;CS0&amp;quot;, wave: &amp;quot;1.0...1&amp;quot;},&lt;br /&gt;
  {                               node:&amp;quot;..a...b.&amp;quot; }&lt;br /&gt;
],&lt;br /&gt;
  edge: [&#039;a&amp;lt;-|-&amp;gt;b WWSC=4&#039;, &#039;c-a&#039;, &#039;d-b&#039;]&lt;br /&gt;
 }&lt;br /&gt;
&amp;lt;/wavedrom&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== code &amp;amp; mapping ==&lt;br /&gt;
=== Pinout ===&lt;br /&gt;
&lt;br /&gt;
Schematics interfaces is given here :&lt;br /&gt;
&lt;br /&gt;
[[File:Opos6ul_sp_sch_int.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
UCF example for interface generated by [https://github.com/Martoni/periphondemand POD] is given here :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
NET &amp;quot;rstgen_syscon00_ext_clk&amp;quot; LOC=&amp;quot;N8&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_BCLK&lt;br /&gt;
NET &amp;quot;rstgen_syscon00_ext_clk&amp;quot; TNM_NET = &amp;quot;rstgen_syscon00_ext_clk&amp;quot;;&lt;br /&gt;
TIMESPEC &amp;quot;TS_rstgen_syscon00_ext_clk&amp;quot; = PERIOD &amp;quot;rstgen_syscon00_ext_clk&amp;quot; 10.101 ns HIGH 50 %;&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;0&amp;gt;&amp;quot; LOC=&amp;quot;P11&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA0&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_cs_n&amp;quot; LOC=&amp;quot;R11&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_CS0&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;1&amp;gt;&amp;quot; LOC=&amp;quot;M11&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA1&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;2&amp;gt;&amp;quot; LOC=&amp;quot;N11&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA2&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;10&amp;gt;&amp;quot; LOC=&amp;quot;R10&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA10&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;11&amp;gt;&amp;quot; LOC=&amp;quot;L9&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA11&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;12&amp;gt;&amp;quot; LOC=&amp;quot;M10&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA12&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;13&amp;gt;&amp;quot; LOC=&amp;quot;M8&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA13&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;14&amp;gt;&amp;quot; LOC=&amp;quot;K8&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA14&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;15&amp;gt;&amp;quot; LOC=&amp;quot;L8&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA15&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_adv&amp;quot; LOC=&amp;quot;R7&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_LBA&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;7&amp;gt;&amp;quot; LOC=&amp;quot;N6&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA7&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_rw&amp;quot; LOC=&amp;quot;R6&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_RW&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;3&amp;gt;&amp;quot; LOC=&amp;quot;P5&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA3&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;4&amp;gt;&amp;quot; LOC=&amp;quot;R5&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA4&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;5&amp;gt;&amp;quot; LOC=&amp;quot;L6&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA5&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;6&amp;gt;&amp;quot; LOC=&amp;quot;L5&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA6&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;8&amp;gt;&amp;quot; LOC=&amp;quot;M5&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA8&lt;br /&gt;
NET &amp;quot;imx6ul_wb16_wrapper00_imx_da&amp;lt;9&amp;gt;&amp;quot; LOC=&amp;quot;N5&amp;quot; | IOSTANDARD=LVCMOS33; # EIM_DA9&lt;br /&gt;
NET &amp;quot;irq_mngr00_gls_irq&amp;quot; LOC=&amp;quot;P3&amp;quot; | IOSTANDARD=LVCMOS33; # FPGA_INITB&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Simulation model ===&lt;br /&gt;
&lt;br /&gt;
Some simulation model has been written to test eim in VHDL and in python with cocotb.&lt;br /&gt;
&lt;br /&gt;
==== VHDL ====&lt;br /&gt;
&lt;br /&gt;
imx_read and imx_write simulation fonctions are included in POD (Peripheral On Demand) library. Available in [https://github.com/Martoni/pod_lib/blob/master/platforms/opos6ulsp/simulation/opos6ul_test_pkg.vhd platform/opos6ulsp] directory.&lt;br /&gt;
&lt;br /&gt;
==== Cocotb ====&lt;br /&gt;
&lt;br /&gt;
It&#039;s possible to simulate eim access with [https://cocotb.readthedocs.io/en/latest/introduction.html cocotb] module named [https://github.com/Martoni/cocotbext-imxeim cocotbext-imxeim].&lt;br /&gt;
&lt;br /&gt;
=== HDL bus wrapper ===&lt;br /&gt;
&lt;br /&gt;
Bus wrapper has been written in VHDL and chisel to convert EIM protocol to Wishbone bus protocol.&lt;br /&gt;
&lt;br /&gt;
==== VHDL ====&lt;br /&gt;
&lt;br /&gt;
A 16 bits multiplexed EIM to 16bits wishbone master bus is available in [https://github.com/Martoni/periphondemand POD] library. The VHDL sources are available following [https://github.com/Martoni/pod_lib/blob/master/library/wrappers/imx6ul_wb16_wrapper/hdl/imx6ul_wb16_wrapper.vhd this link].&lt;br /&gt;
&lt;br /&gt;
==== Chisel ====&lt;br /&gt;
&lt;br /&gt;
A chisel package is available in module [https://github.com/Martoni/ChisArmadeus chisArmadeus] to drive Wishbone master bus with EIM bus [https://github.com/Martoni/ChisArmadeus/blob/master/src/main/scala/chisarmadeus/op6sp/op6sp.scala here].&lt;br /&gt;
&lt;br /&gt;
=== FPGA Interrupt ===&lt;br /&gt;
&lt;br /&gt;
To generate an IRQ from the FPGA to the i.MX, the pin FPGA_INITB is used by default. It correspond to [[GPIOlib#Datasheet_GPIO_number_correspondance | GPIO4_IO16]] on i.MX.&lt;br /&gt;
&lt;br /&gt;
=== FPGA J2 connector mapping ===&lt;br /&gt;
&lt;br /&gt;
Mapping of FPGA pin is given in following [[op6spJ2pinout | csv file]].&lt;br /&gt;
&lt;br /&gt;
== FPGA configuration protocol ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TODO&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Links ==&lt;br /&gt;
&lt;br /&gt;
* [https://www.nxp.com/docs/en/reference-manual/IMX6ULLRM.pdf i.MX6UL(L) reference manual] (PDF chapter 21 page 821)&lt;br /&gt;
* [https://www.nxp.com/docs/en/data-sheet/IMX6ULLIEC.pdf i.MX6UL(L) Datasheet] (PDF)&lt;br /&gt;
* [https://www.xilinx.com/support/documentation/user_guides/ug380.pdf Spartan6 configuration] (PDF)&lt;br /&gt;
* [https://github.com/Martoni/pod_lib/tree/master/platforms/opos6ulsp Peripheral On Demand configuration files]&lt;br /&gt;
&lt;br /&gt;
[[Using_FPGA| &amp;lt;&amp;lt; FPGA general page]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=OPOS93_SP_Interfaces_description&amp;diff=15163</id>
		<title>OPOS93 SP Interfaces description</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=OPOS93_SP_Interfaces_description&amp;diff=15163"/>
		<updated>2025-04-10T06:08:40Z</updated>

		<summary type="html">&lt;p&gt;FabienM: Created page with &amp;quot;Category: OPOS93_SP Category: FPGA   {{Under_Construction}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: OPOS93_SP]]&lt;br /&gt;
[[Category: FPGA]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{{Under_Construction}}&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Using_FPGA&amp;diff=15162</id>
		<title>Using FPGA</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Using_FPGA&amp;diff=15162"/>
		<updated>2025-04-09T13:23:08Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Developing on the APF FPGA */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: FPGA]]&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
==Developing on the APF FPGA==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionalities&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== FPGA Interfaces ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;APF9328&#039;&#039;&#039;: [[IMX9328-Spartan3 interface description]]&lt;br /&gt;
* &#039;&#039;&#039;APF27&#039;&#039;&#039;: [[IMX27-Spartan3A interface description]]&lt;br /&gt;
* &#039;&#039;&#039;APF51&#039;&#039;&#039;: [[IMX51-Spartan6 interface description]]&lt;br /&gt;
* &#039;&#039;&#039;APF6_SP&#039;&#039;&#039;: [[APF6_SP Interfaces description]]&lt;br /&gt;
* &#039;&#039;&#039;OPOS6UL_SP&#039;&#039;&#039;: [[OPOS6UL_SP Interfaces description]]&lt;br /&gt;
* &#039;&#039;&#039;OPOS93_SP&#039;&#039;&#039;: [[OPOS93_SP Interfaces description]]&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Using Armadeus FPGA===&lt;br /&gt;
Manage the FPGA from Armadeus distribution.&lt;br /&gt;
&lt;br /&gt;
* Configure the FPGA [[FPGA_loader | from Linux]], [[Target_Software_Installation#FPGA_firmware_test | from U-Boot]], [[PCIe_fpga_load | from PCIe]].&lt;br /&gt;
* Flashing FPGA firmware [[Uboot_FPGA_firmware_update_from_Linux | from Linux]], [[Target_Software_Installation#FPGA_firmware_installation | from U-Boot]]&lt;br /&gt;
* [[FPGA_register | Access the FPGA address domain from Linux]]&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Make some examples ===&lt;br /&gt;
&lt;br /&gt;
These examples give the basis to make VHDL design for FPGA.&lt;br /&gt;
&lt;br /&gt;
* [[Simple blinking LED | LED]]&lt;br /&gt;
* [[A simple design with Wishbone bus | Complete example with button and led on wishbone bus communication and Linux drivers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Design Tools===&lt;br /&gt;
Description of tools used to simulate, to synthesize, and to download/configure FGPA.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Xilinx&#039;&#039;&#039;&lt;br /&gt;
* [[ISE WebPack and Vivado]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Altera&#039;&#039;&#039;&lt;br /&gt;
* [[Quartus | Quartus Prime (Altera/Intel&#039;s free devt tool)]]&lt;br /&gt;
* [[Modelsim-Altera | Install Modelsim-Altera (starter edition)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lattice&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[IceCube | Install IceCube]]&lt;br /&gt;
* [[Diamond | Install Lattice Diamond]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Microsemi&#039;&#039;&#039;&lt;br /&gt;
* [http://www.fabienm.eu/flf/installing-libero-on-debian-9/ Install Libero]&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Automatize FPGA design making ===&lt;br /&gt;
&lt;br /&gt;
==== [[Peripherals On Demand]] ====&lt;br /&gt;
For complex projects, POD should be used to simplify design.&lt;br /&gt;
&lt;br /&gt;
==== [[FuseSoC]] ====&lt;br /&gt;
FuseSoC is a builder written in Python used to automatize FPGA constructions&lt;br /&gt;
&lt;br /&gt;
==== CactusII ====&lt;br /&gt;
&lt;br /&gt;
[http://funbase.cs.tut.fi/ Graphical IDE] for managing FPGA/ASIC design with IPX-ACT standard.&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== HDL ===&lt;br /&gt;
&lt;br /&gt;
===VHDL ===&lt;br /&gt;
&lt;br /&gt;
* [[VHDL coding styles|VHDL coding styles &amp;amp; externals documentations]]&lt;br /&gt;
* [http://www.xess.com/design_examples.php#XESS_Examples Nice ideas/examples to look at]&lt;br /&gt;
* [http://www.opencores.org www.opencores.org]&lt;br /&gt;
* [http://www.gmvhdl.com/VHDL.html An Introductory VHDL Tutorial]&lt;br /&gt;
&lt;br /&gt;
=== Verilog ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.veripool.org/wiki/verilator Verilator] an High speed verilog simulator&lt;br /&gt;
* [http://iverilog.icarus.com/ Icarus] Famous open-source verilog simulator&lt;br /&gt;
* [https://symbiyosys.readthedocs.io/en/latest/ SymbiYosys] open-source Verilog formal verification&lt;br /&gt;
&lt;br /&gt;
=== Synthesizable Synchronous HDL ===&lt;br /&gt;
==== [[Migen]] ====&lt;br /&gt;
&lt;br /&gt;
With migen, it&#039;s possible to develop FPGA design in Python then generate Verilog for synthezis.&lt;br /&gt;
&lt;br /&gt;
==== [[Chisel]] ====&lt;br /&gt;
With Chisel, it&#039;s possible to develop FPGA design in Scala then generate C++ model for simulation and Verilog model for synthesis. Armadeus system can help you to integrate a Chisel project on Armadeus board. &lt;br /&gt;
&lt;br /&gt;
==== [[SpinalHDL]] ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SpinalHDL/SpinalHDL Another HDL generator] (VHDL) written in Scala.&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
Some useful links.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Wishbone &#039;&#039;&#039;&lt;br /&gt;
* [http://cdn.opencores.org/downloads/wbspec_b3.pdf  official Wishbone specifications]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Wishbone_%28computer_bus%29 Wikipedia Wishbone doc]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Spartan &#039;&#039;&#039;&lt;br /&gt;
* [http://www.xilinx.com/support/documentation/data_sheets/ds099.pdf Spartan-3 FPGA Family Data Sheet]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; CycloneV&#039;&#039;&#039;&lt;br /&gt;
* [https://www.altera.com/products/fpga/cyclone-series/cyclone-v/overview.html CycloneV overview from altera]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; OpenSource &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.fabienm.eu/flf/wp-content/uploads/2017/05/fpgamap-1.svg OpenSource FPGA map]&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Using_FPGA&amp;diff=15161</id>
		<title>Using FPGA</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Using_FPGA&amp;diff=15161"/>
		<updated>2025-04-09T13:16:48Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* FPGA Interfaces */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: FPGA]]&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
==Developing on the APF FPGA==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;5&amp;quot; summary=&amp;quot;Hardware Add-Ons by functionalities&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== FPGA Interfaces ===&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;APF9328&#039;&#039;&#039;: [[IMX9328-Spartan3 interface description]]&lt;br /&gt;
* &#039;&#039;&#039;APF27&#039;&#039;&#039;: [[IMX27-Spartan3A interface description]]&lt;br /&gt;
* &#039;&#039;&#039;APF51&#039;&#039;&#039;: [[IMX51-Spartan6 interface description]]&lt;br /&gt;
* &#039;&#039;&#039;APF6_SP&#039;&#039;&#039;: [[APF6_SP Interfaces description]]&lt;br /&gt;
* &#039;&#039;&#039;OPOS6UL_SP&#039;&#039;&#039;: [[OPOS6UL_SP Interfaces description]]&lt;br /&gt;
* &#039;&#039;&#039;OPOS93_SP&#039;&#039;: [[OPOS93_SP Interfaces description]]&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Using Armadeus FPGA===&lt;br /&gt;
Manage the FPGA from Armadeus distribution.&lt;br /&gt;
&lt;br /&gt;
* Configure the FPGA [[FPGA_loader | from Linux]], [[Target_Software_Installation#FPGA_firmware_test | from U-Boot]], [[PCIe_fpga_load | from PCIe]].&lt;br /&gt;
* Flashing FPGA firmware [[Uboot_FPGA_firmware_update_from_Linux | from Linux]], [[Target_Software_Installation#FPGA_firmware_installation | from U-Boot]]&lt;br /&gt;
* [[FPGA_register | Access the FPGA address domain from Linux]]&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Make some examples ===&lt;br /&gt;
&lt;br /&gt;
These examples give the basis to make VHDL design for FPGA.&lt;br /&gt;
&lt;br /&gt;
* [[Simple blinking LED | LED]]&lt;br /&gt;
* [[A simple design with Wishbone bus | Complete example with button and led on wishbone bus communication and Linux drivers]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Design Tools===&lt;br /&gt;
Description of tools used to simulate, to synthesize, and to download/configure FGPA.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Xilinx&#039;&#039;&#039;&lt;br /&gt;
* [[ISE WebPack and Vivado]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Altera&#039;&#039;&#039;&lt;br /&gt;
* [[Quartus | Quartus Prime (Altera/Intel&#039;s free devt tool)]]&lt;br /&gt;
* [[Modelsim-Altera | Install Modelsim-Altera (starter edition)]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Lattice&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [[IceCube | Install IceCube]]&lt;br /&gt;
* [[Diamond | Install Lattice Diamond]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Microsemi&#039;&#039;&#039;&lt;br /&gt;
* [http://www.fabienm.eu/flf/installing-libero-on-debian-9/ Install Libero]&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== Automatize FPGA design making ===&lt;br /&gt;
&lt;br /&gt;
==== [[Peripherals On Demand]] ====&lt;br /&gt;
For complex projects, POD should be used to simplify design.&lt;br /&gt;
&lt;br /&gt;
==== [[FuseSoC]] ====&lt;br /&gt;
FuseSoC is a builder written in Python used to automatize FPGA constructions&lt;br /&gt;
&lt;br /&gt;
==== CactusII ====&lt;br /&gt;
&lt;br /&gt;
[http://funbase.cs.tut.fi/ Graphical IDE] for managing FPGA/ASIC design with IPX-ACT standard.&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
=== HDL ===&lt;br /&gt;
&lt;br /&gt;
===VHDL ===&lt;br /&gt;
&lt;br /&gt;
* [[VHDL coding styles|VHDL coding styles &amp;amp; externals documentations]]&lt;br /&gt;
* [http://www.xess.com/design_examples.php#XESS_Examples Nice ideas/examples to look at]&lt;br /&gt;
* [http://www.opencores.org www.opencores.org]&lt;br /&gt;
* [http://www.gmvhdl.com/VHDL.html An Introductory VHDL Tutorial]&lt;br /&gt;
&lt;br /&gt;
=== Verilog ===&lt;br /&gt;
&lt;br /&gt;
* [https://www.veripool.org/wiki/verilator Verilator] an High speed verilog simulator&lt;br /&gt;
* [http://iverilog.icarus.com/ Icarus] Famous open-source verilog simulator&lt;br /&gt;
* [https://symbiyosys.readthedocs.io/en/latest/ SymbiYosys] open-source Verilog formal verification&lt;br /&gt;
&lt;br /&gt;
=== Synthesizable Synchronous HDL ===&lt;br /&gt;
==== [[Migen]] ====&lt;br /&gt;
&lt;br /&gt;
With migen, it&#039;s possible to develop FPGA design in Python then generate Verilog for synthezis.&lt;br /&gt;
&lt;br /&gt;
==== [[Chisel]] ====&lt;br /&gt;
With Chisel, it&#039;s possible to develop FPGA design in Scala then generate C++ model for simulation and Verilog model for synthesis. Armadeus system can help you to integrate a Chisel project on Armadeus board. &lt;br /&gt;
&lt;br /&gt;
==== [[SpinalHDL]] ====&lt;br /&gt;
&lt;br /&gt;
[https://github.com/SpinalHDL/SpinalHDL Another HDL generator] (VHDL) written in Scala.&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|- style=&amp;quot;background:#f4f4f4; color:black; -moz-border-radius:18px;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
===Links===&lt;br /&gt;
Some useful links.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Wishbone &#039;&#039;&#039;&lt;br /&gt;
* [http://cdn.opencores.org/downloads/wbspec_b3.pdf  official Wishbone specifications]&lt;br /&gt;
* [http://en.wikipedia.org/wiki/Wishbone_%28computer_bus%29 Wikipedia Wishbone doc]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Spartan &#039;&#039;&#039;&lt;br /&gt;
* [http://www.xilinx.com/support/documentation/data_sheets/ds099.pdf Spartan-3 FPGA Family Data Sheet]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; CycloneV&#039;&#039;&#039;&lt;br /&gt;
* [https://www.altera.com/products/fpga/cyclone-series/cyclone-v/overview.html CycloneV overview from altera]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; OpenSource &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* [http://www.fabienm.eu/flf/wp-content/uploads/2017/05/fpgamap-1.svg OpenSource FPGA map]&lt;br /&gt;
&lt;br /&gt;
| width=&amp;quot;50%&amp;quot; |&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Armadeus_3&amp;diff=15108</id>
		<title>Armadeus 3</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Armadeus_3&amp;diff=15108"/>
		<updated>2022-06-30T12:12:18Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* How-to obtain the Armadeus 3 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page will help you use the Armadeus 3.x software release. It also provides you with information about changes compared to the previous 2.x versions of Armadeus.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
Armadeus 3 adds many new features, including the following:&lt;br /&gt;
&lt;br /&gt;
*Some architectural changes to support different hardware targets: [[APF9328]] and [[APF27]]&lt;br /&gt;
*New versions of U-Boot (1.3.4), Linux kernel (2.6.27), GCC (4.2.1), Busybox (1.12.1) and also a recent version of Buildroot&lt;br /&gt;
*New naming convention of files&lt;br /&gt;
*New Flash partition mapping on the target&lt;br /&gt;
*TBC&lt;br /&gt;
&lt;br /&gt;
==Important Information regarding documentation==&lt;br /&gt;
&lt;br /&gt;
{{Note|With the introduction of the Armadeus 3 SDK, the Wiki documentation has moved to support the new software. Nevertheless you can download the following HTML dump to have the Armadeus 2.x compatible documentation: [http://www.armadeus.com/assos_downloads/wiki/wiki_assoc_html_dump_03_12_2008.tar.gz Armadeus 2.x wiki]. Wiki will also moved in the next weeks so to have an always Armadeus 3.x compatible HTML dump [http://www.armadeus.com/assos_downloads/wiki/wiki_assoc_html_dump_02_03_2009.tar.gz it&#039;s here]&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
To summarize the documentation changes, here are the rules to adapt the documentation according to your target and version of Armadeus.&lt;br /&gt;
* First Armadeus configuration once you have downloaded the Armadeus package found somewhere in First Setup pages:&lt;br /&gt;
: Armadeus 3 first command to use according to your &amp;lt;board&amp;gt; (apf9328 or apf27): make &amp;lt;board&amp;gt;_defconfig&lt;br /&gt;
: Armadeus 2 first command for apf9328: make&lt;br /&gt;
&lt;br /&gt;
* Binary files location according to your &amp;lt;board&amp;gt; (apf9328 or apf27):&lt;br /&gt;
: Armadeus 3 is buildroot/binaries/&amp;lt;board&amp;gt;/&lt;br /&gt;
: Armadeus 2 was buildroot/armadeus/&lt;br /&gt;
&lt;br /&gt;
* Armadeus 3 binary files naming convention according to your &amp;lt;board&amp;gt; (apf9328 or apf27):&lt;br /&gt;
: &amp;lt;board&amp;gt;-u-boot.brec&lt;br /&gt;
: &amp;lt;board&amp;gt;-u-boot.bin&lt;br /&gt;
: &amp;lt;board&amp;gt;-linux.bin&lt;br /&gt;
: &amp;lt;board&amp;gt;-rootfs.arm.jffs2&lt;br /&gt;
: &amp;lt;board&amp;gt;-rootfs.arm.tar&lt;br /&gt;
&lt;br /&gt;
* Armadeus 2 binary files naming convention for apf9328 only:&lt;br /&gt;
: u-boot.brec&lt;br /&gt;
: u-boot.bin&lt;br /&gt;
: linux-kernel-2.6.xx.x-arm.bin&lt;br /&gt;
: rootfs.arm.jffs2&lt;br /&gt;
: rootfs.arm.tar&lt;br /&gt;
&lt;br /&gt;
* Non configurable users-space tools including compiler for your board (apf9328 or apf27):&lt;br /&gt;
: Armadeus 3 tools for the apf9328 are located at buildroot/build_armv4t/&lt;br /&gt;
: Armadeus 3 tools for the apf27 are located at buildroot/build_armv5te/&lt;br /&gt;
: Armadeus 2 tools are located at buildroot/build_arm/&lt;br /&gt;
&lt;br /&gt;
* Configurable user-space tools (Linux, rootfs, U-Boot, Busybox...) for your board (apf9328 or apf27):&lt;br /&gt;
: Armadeus 3 tools for the apf9328 are located at buildroot/project_build_armv4t/apf9328/&lt;br /&gt;
: Armadeus 3 tools for the apf27 are located at buildroot/project_build_armv5te/apf27/&lt;br /&gt;
: Armadeus 2 tools are located at buildroot/project_build_arm/armadeus/&lt;br /&gt;
&lt;br /&gt;
* cross compilation toolchain for your board (apf9328 or apf27):&lt;br /&gt;
: Armadeus 3 source toolchain for the apf9328 is located at buildroot/toolchain_build_armv4t/&lt;br /&gt;
: Armadeus 3 source toolchain for the apf27 is located at buildroot/toolchain_build_armv5te/&lt;br /&gt;
: Armadeus 2 toolchain is located at buildroot/toolchain_build_arm/&lt;br /&gt;
&lt;br /&gt;
Keeping these rules in mind, you are ready to use any wiki page as a guideline whatever you are working with: Armadeus 2.x or 3.&lt;br /&gt;
&lt;br /&gt;
==How-to obtain the Armadeus 3==&lt;br /&gt;
&lt;br /&gt;
The third generation of Armadeus is either available on the gitlab repository: https://gitlab.com/armadeus/armadeus-bsp/-/tags/release-3.4 or by download: https://gitlab.com/armadeus/armadeus-bsp/-/archive/release-3.4/armadeus-bsp-release-3.4.tar.gz&lt;br /&gt;
&lt;br /&gt;
You can checkout the new version of armadeus or update your working version of armadeus. &#039;&#039;&#039;We strongly suggest you to checkout the new version of Armadeus because the new naming convention of files will produce a second directory structure of toolchain, projects, build and image files that could be a source of confusion.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
* Checkout the new version:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
  git clone git@gitlab.com:armadeus/armadeus-bsp.git armadeus&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
this commmand will download the latest version of Armadeus.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;: &#039;&#039;&#039;Do not use spaces&#039;&#039;&#039; in the directory name !&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Update your working version of armadeus&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: Do not use a simple &amp;quot;git checkout&amp;quot; because some legacy buildroot patches will break your compilation!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 cd armadeus&lt;br /&gt;
 rm -rf buildroot/package&lt;br /&gt;
 rm -rf buildroot/target&lt;br /&gt;
 rm -rf buildroot/toolchain&lt;br /&gt;
 git checkout -f&lt;br /&gt;
 make apf9328_defconfig or make apf27_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;WARNING: the latest command (make &amp;lt;board&amp;gt;_defconfig ) is very important to start with an up to date configuration!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
At any time you can cleanup the old directories built with armadeus 2:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 rm -rf buildroot/binaries/armadeus&lt;br /&gt;
 rm -rf buildroot/build_arm&lt;br /&gt;
 rm -rf buildroot/project_build_arm&lt;br /&gt;
 rm -rf buildroot/toolchain_build_arm&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* How-to obtain the legacy Armadeus 2 (If you&#039;re not ready to upgrade your target): Download tar.gz at https://gitlab.com/armadeus/armadeus-bsp/-/tags/release-2.x&lt;br /&gt;
&lt;br /&gt;
==How-to configure and build Armadeus 3==&lt;br /&gt;
&lt;br /&gt;
* After changing the directory to &#039;&#039;armadeus&#039;&#039;, you have to configure Armadeus software for the APF target.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 cd armadeus/&lt;br /&gt;
 make &#039;&#039;&#039;apf9328_defconfig&#039;&#039;&#039; or make &#039;&#039;&#039;apf27_defconfig&#039;&#039;&#039; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;The &#039;&amp;lt;board&amp;gt;_defconfig&#039; configuration option is the first difference with the previous releases of Armadeus. &lt;br /&gt;
This configuration has to be done only once after a checkout or after an update from an older version Armadeus. This command configures Armadeus for the apf board then launches the regular Buildroot configuration menu:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Image:Menuconfig3.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Configure Armadeus&lt;br /&gt;
 &lt;br /&gt;
In System configuration ---&amp;gt; Armadeus Device Support menu, you can check and change the quantity of RAM available on your Armadeus board. (Default value 16MB is just fine with all APF9328 boards and 64MB for the smallest apf27).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;In Filesystem images --&amp;gt; for each type of filesystems to build you have the option to copy the binary file to secondary location like your tftp server folder (for exemple /tftpboot).&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;In Bootloaders --&amp;gt; You will find U-Boot options at the end of this menu including the option to copy U-Boot to a secondary location like /tftpboot&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;In Kernel --&amp;gt; Destination for linux kernel binaries --&amp;gt; You will find options to copy linux to a secondary location like /tftpboot&amp;lt;/b&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Exit the configuration tool and save your configuration&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Launch the build process and enjoy a cup of coffee for the next hour&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The toolchain is built automatically. During this procedure, several files are downloaded from Internet. Please wait for a while.... it takes at least one hour to compile everything!&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Enjoy the result&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The generated binary files can be found in the new subdirectory &amp;lt;b&amp;gt;&#039;&#039;buildroot/binaries/&amp;lt;board&amp;gt;/&#039;&#039;:&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
: &#039;&#039;&#039;apf9328-u-boot.brec&#039;&#039;&#039; (apf9328 BRecord image that can be used with the bootstrap, if U-Boot is not installed or not working, see [[BootLoader]] page)&lt;br /&gt;
: &#039;&#039;&#039;&amp;lt;board&amp;gt;-u-boot.bin&#039;&#039;&#039; (U-Boot image file to be used with U-Boot itself, see [[BootLoader#Update_U-Boot | updating U-Boot]])&lt;br /&gt;
: &#039;&#039;&#039;&amp;lt;board&amp;gt;-linux.bin&#039;&#039;&#039; (Linux image to use with U-Boot, see [[Target_Software_Installation#Linux_kernel_installation | InstallLinux]])&lt;br /&gt;
: &#039;&#039;&#039;&amp;lt;board&amp;gt;-rootfs.arm.jffs2&#039;&#039;&#039; (FileSystem/RootFS image to use with U-Boot, see [[Target_Software_Installation#Linux_rootfs_installation | RootFS flashing]])&lt;br /&gt;
: &#039;&#039;&#039;&amp;lt;board&amp;gt;-rootfs.arm.tar&#039;&#039;&#039; (for an NFS/MMC RootFS, see [[Network_Configuration#Boot_from_NFS|Booting from NFS]] &amp;amp; [[MultiMediaCard#Booting_from_MMC.2FSD | Booting from a MMC/SD]])&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt; Please note the new naming convention of binary files and directories&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The toolchain and project files share a new nameing convention too:&lt;br /&gt;
: &#039;&#039;&#039;buildroot/build_armv&amp;lt;x&amp;gt;t&#039;&#039;&#039; (contains all non configurable user-space tools)&lt;br /&gt;
: &#039;&#039;&#039;buildroot/project_build_armv&amp;lt;x&amp;gt;t/&amp;lt;board&amp;gt;&#039;&#039;&#039; (contains all configurable user-space tools: target filesystem, &amp;lt;b&amp;gt;linux&amp;lt;/b&amp;gt;, busybox and &amp;lt;b&amp;gt;u-boot&amp;lt;/b&amp;gt;...)&lt;br /&gt;
: &#039;&#039;&#039;buildroot/toolchain_build_armv&amp;lt;x&amp;gt;t&#039;&#039;&#039; (cross compilation toolchain)&lt;br /&gt;
&lt;br /&gt;
More information is available in the  [http://buildroot.uclibc.org/buildroot.html buildroot documentation]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;b&amp;gt;Prepare binary images for download&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The simplest method to prepare binary files for a download to target is to copy them in the tftpboot public directory (for example /tftpboot). You can do it manually:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
cp -f buildroot/binaries/&amp;lt;board&amp;gt;/* /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or you can configure buildroot to copy the image files automatically as described hereabove in &#039;&#039;&#039;Configure Armadeus&#039;&#039;&#039;.&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;b&amp;gt;From here we will suppose all the image files are available at the root of your tftp server&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==How-to upgrade the apf9328 target==&lt;br /&gt;
&lt;br /&gt;
To prepare the upgrade of the target you have to copy binary files from &#039;&#039;buildroot/binaries/apf9328/&#039;&#039; to your &#039;&#039;/tftpboot&#039;&#039; folder or make this process automatic using the command: &#039;&#039;&#039;make menuconfig&#039;&#039;&#039;. The communication with target is fully compatible with previous versions of Armadeus, as explained in [[Communicate| communicate with the target]]&lt;br /&gt;
&lt;br /&gt;
===update U-Boot (on the target)===&lt;br /&gt;
&lt;br /&gt;
Using the command &#039;&#039;&#039;printenv&#039;&#039;&#039; check the target IP variables:&lt;br /&gt;
 BIOS&amp;gt; printenv&lt;br /&gt;
 bootcmd=run jffsboot&lt;br /&gt;
 bootdelay=20&lt;br /&gt;
 ...&lt;br /&gt;
 gatewayip=192.168.0.1&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 ipaddr=192.168.0.10&lt;br /&gt;
 serverip=192.168.0.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ipaddr&#039;&#039;&#039; is the target IP address and &#039;&#039;&#039;serverip&#039;&#039;&#039; is the one of the Host PC running the tftp server. The page [[Target_Software_Installation]] will help you to set these variables.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If everything is fine you should be ready to download the new release of u-boot:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Load the new U-Boot code in RAM&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
You can use the following commands to download U-boot:&amp;lt;br&amp;gt;&lt;br /&gt;
With Ethernet and a TFTP server:&lt;br /&gt;
&lt;br /&gt;
 BIOS&amp;gt; tftpboot 08000000 apf9328-u-boot.bin&lt;br /&gt;
&lt;br /&gt;
 dm9000 i/o: 0x15c00000, id: 0x90000a46&lt;br /&gt;
 DM9000: running in 16 bit mode&lt;br /&gt;
 MAC: 00:1e:ac:00:00:02&lt;br /&gt;
 operating at 100M full duplex mode&lt;br /&gt;
 TFTP from server 192.168.0.2; our IP address is 192.168.0.10&lt;br /&gt;
 Filename &#039;apf9328-u-boot.bin&#039;.&lt;br /&gt;
 Load address: 0x8000000&lt;br /&gt;
 Loading: ##################################&lt;br /&gt;
 done&lt;br /&gt;
 Bytes transferred = 173036 (2a3ec hex)&lt;br /&gt;
&lt;br /&gt;
Or with Ethernet and a NFS server:&lt;br /&gt;
 BIOS&amp;gt; nfs 08000000 ${serverip}:/nfs_path_to_buildroot/binaries/apf9328/apf9328-u-boot.bin&lt;br /&gt;
Or with the kermit and a serial line&lt;br /&gt;
 BIOS&amp;gt; loadb 08000000&lt;br /&gt;
    &amp;lt;CTRL&amp;gt;&amp;lt;ALT GR&amp;gt;\&lt;br /&gt;
    c&lt;br /&gt;
    send path_to_buildroot/binaries/apf9328/apf9328-u_boot.bin&lt;br /&gt;
    c&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Test the downloaded version of u-boot&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 BIOS&amp;gt; go 08000000&lt;br /&gt;
 &lt;br /&gt;
 ## Starting application at 0x08000000 ...&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 U-Boot 1.3.4 (Dec  2 2008 - 18:44:41) apf9328 patch 3.3&lt;br /&gt;
 &lt;br /&gt;
 I2C:   ready&lt;br /&gt;
 DRAM:  16 MB&lt;br /&gt;
 Flash:  8 MB&lt;br /&gt;
 In:    serial&lt;br /&gt;
 Out:   serial&lt;br /&gt;
 Err:   serial&lt;br /&gt;
 &lt;br /&gt;
 Hit any key to stop autoboot:  0&lt;br /&gt;
 BIOS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Transfer code from RAM to Flash memory&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
There is a simple U-Boot command/script to do that:&lt;br /&gt;
 BIOS&amp;gt; run flash_uboot&lt;br /&gt;
 &lt;br /&gt;
 .. done&lt;br /&gt;
 Un-Protected 2 sectors&lt;br /&gt;
 &lt;br /&gt;
 .. done&lt;br /&gt;
 Erased 2 sectors&lt;br /&gt;
 Copy to Flash... done&lt;br /&gt;
 .. done&lt;br /&gt;
 Protected 2 sectors&lt;br /&gt;
 Flashing uboot succeed&lt;br /&gt;
 BIOS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Advanced informations can be found at the [[BootLoader]] wiki page.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Reset the environment variables and reset the board&#039;&#039;&#039; &lt;br /&gt;
&lt;br /&gt;
Note: This is important to support the new flash memory mapping. &#039;&#039;&#039;!! You will loose all the variables you had defined before !!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
 BIOS&amp;gt; run flash_reset_env&lt;br /&gt;
 &lt;br /&gt;
 . done&lt;br /&gt;
 Un-Protected 1 sectors&lt;br /&gt;
 &lt;br /&gt;
 . done&lt;br /&gt;
 Erased 1 sectors&lt;br /&gt;
 Erasing of flash environment variables done!&lt;br /&gt;
 BIOS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;b&amp;gt;&amp;lt;u&amp;gt;And do not forget to reset the board by hardware or software.&amp;lt;/u&amp;gt;&amp;lt;/b&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 BIOS&amp;gt; reset&lt;br /&gt;
 &lt;br /&gt;
 U-Boot 1.3.4 (Dec  2 2008 - 18:44:41) apf9328 patch 3.3&lt;br /&gt;
 &lt;br /&gt;
 I2C:   ready&lt;br /&gt;
 DRAM:  16 MB&lt;br /&gt;
 Flash:  8 MB&lt;br /&gt;
 ...&lt;br /&gt;
&lt;br /&gt;
===update linux and rootfs (on the target)===&lt;br /&gt;
&lt;br /&gt;
* Check and set the IP variables:&lt;br /&gt;
&lt;br /&gt;
 BIOS&amp;gt; printenv&lt;br /&gt;
 bootcmd=run jffsboot&lt;br /&gt;
 bootdelay=20&lt;br /&gt;
 ...&lt;br /&gt;
 gatewayip=192.168.0.1&lt;br /&gt;
 netmask=255.255.255.0&lt;br /&gt;
 ipaddr=192.168.0.10&lt;br /&gt;
 serverip=192.168.0.2&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;ipaddr&#039;&#039;&#039; is the target IP address and &#039;&#039;&#039;serverip&#039;&#039;&#039; is the one of the Host PC running the tftp server. The page [[Target_Software_Installation]] will help you to set these variables.&lt;br /&gt;
&lt;br /&gt;
You can use the &#039;&#039;&#039;dhcp&#039;&#039;&#039; command to automatically configure these variables from your DHCP server. You probably will have to adjust the &#039;&#039;&#039;serverip&#039;&#039;&#039; variable manually.&lt;br /&gt;
&lt;br /&gt;
 BIOS&amp;gt; dhcp&lt;br /&gt;
 dm9000 i/o: 0x15c00000, id: 0x90000a46&lt;br /&gt;
 MAC: 00:0e:32:00:00:02&lt;br /&gt;
 operating at 100M full duplex mode&lt;br /&gt;
 BOOTP broadcast 1&lt;br /&gt;
 DHCP client bound to address 192.168.0.10&lt;br /&gt;
 BIOS&amp;gt; setenv serverip 192.168.0.2&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&lt;br /&gt;
Do not forget to save your changes in FLASH, to have them available at next power up:&lt;br /&gt;
 BIOS&amp;gt; saveenv&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Update Linux (still on the target)&lt;br /&gt;
&lt;br /&gt;
Using the new release of U-Boot, it is quite simple to update Linux kernel and rootfs using the news scripts included in the release:&lt;br /&gt;
&lt;br /&gt;
 BIOS&amp;gt; run update_kernel&lt;br /&gt;
&lt;br /&gt;
 dm9000 i/o: 0x15c00000, id: 0x90000a46&lt;br /&gt;
 DM9000: running in 16 bit mode&lt;br /&gt;
 MAC: 00:1e:ac:00:00:02&lt;br /&gt;
 operating at 100M full duplex mode&lt;br /&gt;
 TFTP from server 192.168.0.2; our IP address is 192.168.0.10&lt;br /&gt;
 Filename &#039;apf9328-linux.bin&#039;.&lt;br /&gt;
 Load address: 0x8000000&lt;br /&gt;
 Loading: #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          ##############################################&lt;br /&gt;
 done&lt;br /&gt;
 Bytes transferred = 1564776 (17e068 hex)&lt;br /&gt;
 &lt;br /&gt;
 ................ done&lt;br /&gt;
 Erased 16 sectors&lt;br /&gt;
 Copy to Flash... done&lt;br /&gt;
 Flashing kernel succeed&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Update rootfs (still on the target)&lt;br /&gt;
&lt;br /&gt;
 BIOS&amp;gt; run update_rootfs&lt;br /&gt;
&lt;br /&gt;
 dm9000 i/o: 0x15c00000, id: 0x90000a46&lt;br /&gt;
 DM9000: running in 16 bit mode&lt;br /&gt;
 MAC: 00:1e:ac:00:00:02&lt;br /&gt;
 operating at 100M full duplex mode&lt;br /&gt;
 TFTP from server 192.168.0.2; our IP address is 192.168.0.10&lt;br /&gt;
 Filename &#039;apf9328-rootfs.arm.jffs2&#039;.&lt;br /&gt;
 Load address: 0x8000000&lt;br /&gt;
 Loading: #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          #################################################################&lt;br /&gt;
          ######################################################&lt;br /&gt;
 done&lt;br /&gt;
 Bytes transferred = 3932160 (3c0000 hex)&lt;br /&gt;
 &lt;br /&gt;
 ........................................... done&lt;br /&gt;
 Erased 43 sectors&lt;br /&gt;
 Copy to Flash... done&lt;br /&gt;
 Flashing rootfs succeed&lt;br /&gt;
 BIOS&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===update your fpga firmware (on the target)===&lt;br /&gt;
&lt;br /&gt;
Please follow the standard procedure [[InstallTargetSoftware#FPGA_firmware_installation | Firmware installation]]&lt;br /&gt;
&lt;br /&gt;
==How-to develop with Armadeus / customize your SDK==&lt;br /&gt;
&lt;br /&gt;
Your new Armadeus 3 is running fine on the target. Now you probably would like to customize the target for your project.&amp;lt;br&amp;gt;&lt;br /&gt;
If you are a Buildroot user, the following instructions should sound familiar.&lt;br /&gt;
&lt;br /&gt;
===How-to add a software package===&lt;br /&gt;
&lt;br /&gt;
Use the command &#039;&#039;&#039;make menuconfig&#039;&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:menuconfig_package.png]]&lt;br /&gt;
&lt;br /&gt;
Select your package in the menu &amp;quot;package&amp;quot;, save the configuration and compile a new rootfs&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Note|For a given release, not all packages are tested/running. You can consult the list of the working packages [[Buildroot-20081103_integration| here]].}}&lt;br /&gt;
&lt;br /&gt;
On the target, download and flash the new rootfs:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 BIOS&amp;gt; run update_rootfs&lt;br /&gt;
 ...&lt;br /&gt;
 BIOS&amp;gt; boot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How-to remove a package===&lt;br /&gt;
&lt;br /&gt;
Supposing you would like to remove an unwanted package from the target.&lt;br /&gt;
* The first step is to use the command &#039;&#039;&#039;make menuconfig&#039;&#039;&#039; to unselect this package but this command will not remove the package from the rootfs. You have to use the &#039;&#039;clean&#039;&#039; command of buildroot. In the lines hereafter replace the word &amp;lt;package&amp;gt; with the real name of your package.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
  $ make menuconfig&lt;br /&gt;
  ... deselect your &amp;lt;package&amp;gt;&lt;br /&gt;
  $ make &amp;lt;package&amp;gt;-clean&lt;br /&gt;
  $ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Your new rootfs is now ready to use - Enjoy&lt;br /&gt;
&lt;br /&gt;
* Some packages do not support any uninstall behavior. In such a case you can rebuild your environment using the global clean command. This command requests to compile almost everything and therefore will take time.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
  $ make menuconfig&lt;br /&gt;
  ... deselect your &amp;lt;package&amp;gt;&lt;br /&gt;
  $ make clean&lt;br /&gt;
  $ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Warning|Using this method you will lose any modification you could have done directly in the directory buildroot/project_build_armvYY/apfXX/root.&lt;br /&gt;
Please read the chapter [[Armadeus_3#How-to_modify_root_filesystem| How-to modify root filesystem]] hereafter.}}&lt;br /&gt;
&lt;br /&gt;
Your new rootfs is ready to use - Enjoy&lt;br /&gt;
&lt;br /&gt;
* A faster method exists to force to rebuild rootfs. You can delete the root directory. &amp;lt;b&amp;gt;Unfortunately some libraries (ie c++ lib) are not reinstalled using this method.&amp;lt;/b&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
  $ make menuconfig&lt;br /&gt;
  ... deselect your &amp;lt;package&amp;gt;&lt;br /&gt;
  $ rm -rf buildroot/project_build_armv4t/apf9328/root&lt;br /&gt;
  $ rm -rf buildroot/project_build_armv4t/apf9328/.root&lt;br /&gt;
  $ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Warning|Using this method you will lose any modification you could have done directly in the directory buildroot/project_build_armvYY/apfXX/root.&lt;br /&gt;
Please read the chapter [[Armadeus_3#How-to_modify_root_filesystem| How-to modify root filesystem]] hereafter.}}&lt;br /&gt;
&lt;br /&gt;
Your new rootfs is ready to use - Enjoy&lt;br /&gt;
&lt;br /&gt;
===How-to modify a software===&lt;br /&gt;
&lt;br /&gt;
You would like to modify a package and test your modification on the target. The command &#039;&#039;&#039;make &amp;lt;package&amp;gt;-clean&#039;&#039;&#039; will force to rebuild the package you modified:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
  $ make &amp;lt;package&amp;gt;-clean&lt;br /&gt;
  $ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Your new rootfs is ready to use - Enjoy&lt;br /&gt;
&lt;br /&gt;
===How-to create a buildroot package===&lt;br /&gt;
&lt;br /&gt;
The creation of a new buildroot package is described more in depth in the specific wiki page [[Buildroot_Packages]] and in the [http://buildroot.uclibc.org/buildroot.html buildroot documentation]&lt;br /&gt;
&lt;br /&gt;
===How-to modify root filesystem===&lt;br /&gt;
&lt;br /&gt;
There are different methods to modify the rootfs of the apf9328:&lt;br /&gt;
# modify files directly on the target (ideal solution for first trials)&lt;br /&gt;
# modify files in buildroot/project_build_armv4t/apf9328/root/ (to validate your modification with armadeus)&lt;br /&gt;
# modify files in buildroot/target/device/aramdeus/rootfs/target_skeleton (your modifcation will support a &#039;&#039;&#039;make clean&#039;&#039;&#039; )&lt;br /&gt;
# create a patch file in armadeus/patches (your modification will support a &#039;&#039;&#039;git checkout&#039;&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===How-to modify Linux kernel===&lt;br /&gt;
&lt;br /&gt;
To rebuild the kernel or any kernel driver you can use the commands:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make linux-clean&lt;br /&gt;
 $ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
your new Linux kernel and rootfs containing drivers are ready to use - Enjoy&lt;br /&gt;
&lt;br /&gt;
There is another method to rebuild the kernel faster than the previous one:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make linux&lt;br /&gt;
 $ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
With this method only the modified files are compiled.&lt;br /&gt;
&lt;br /&gt;
===How-to configure a Linux kernel===&lt;br /&gt;
&lt;br /&gt;
There is a command to modify the linux kernel configuration:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $make linux-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Modify your kernel configuration, save your change and rebuild Armadeus in few seconds:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How-to configure U-Boot===&lt;br /&gt;
&lt;br /&gt;
you can change the U-Boot configuration using the buildroot command &#039;&#039;&#039;make menuconfig&#039;&#039;&#039;. U-Boot options are in the sub-menu &#039;&#039;&#039;target filesystem options&#039;&#039;&#039;. In order to rebuild U-Boot with new options it is necessary to remove U-Boot first:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $make menuconfig&lt;br /&gt;
 ...&lt;br /&gt;
 $make u-boot-dirclean&lt;br /&gt;
 $make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{Warning| the command &#039;&#039;&#039;make u-boot-dirclean&#039;&#039;&#039; delete the U-Boot directory and any modification you did in this directory.}}&lt;br /&gt;
&lt;br /&gt;
===How-to modify U-Boot===&lt;br /&gt;
&lt;br /&gt;
To rebuild U-Boot you can use the command &#039;&#039;&#039;make u-boot-clean; make&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make u-boot-clean&lt;br /&gt;
 $ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
your new U-Boot is ready to use - Enjoy&lt;br /&gt;
&lt;br /&gt;
If you modify the config file &#039;&#039;apf9328.h&#039;&#039; located in &#039;&#039;buildroot/project_build_armv4t/apf9328/u-boot-1.3.4/include/configs/apf9328.h&#039;&#039;, then we suggest you to rebuild the whole u-boot package:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make u-boot-distclean&lt;br /&gt;
 $ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===How-to configure busybox===&lt;br /&gt;
It also possible to modify the Busybox configuration to add or remove some features:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $make busybox-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To be continued...&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://buildroot.uclibc.org/buildroot.html Buildroot&#039;s documentation]&lt;br /&gt;
&lt;br /&gt;
[[Category:Software]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Template:ArmadeusNews&amp;diff=15107</id>
		<title>Template:ArmadeusNews</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Template:ArmadeusNews&amp;diff=15107"/>
		<updated>2022-06-30T12:06:56Z</updated>

		<summary type="html">&lt;p&gt;FabienM: Undo revision 15106 by FabienM (talk)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=====June 30th, 2022: Gitlab is now official repository for armadeus bsp =====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Gitlab is now official repository for armadeus bsp : https://gitlab.com/armadeus/armadeus-bsp&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====August 7th, 2018: New software release [[Releases#Release_7.0_.28latest_stable_one.29|Armadeus 7.0]]=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This new [[Releases#Release_7.0_.28latest_stable_one.29| release]] introduces the support for the new [[OPOS6UL]] &amp;amp; [[OPOS6UL_NANO]] SoM and concludes the move to Buildroot 2017.02.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====August 11th, 2015: New software release [[Releases#Release_6.0_.28latest_stable_one.29|Armadeus 6.0]]=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This new [[Releases#Release_6.0_.28latest_stable_one.29| release]] introduces the support for the new [[APF6]] &amp;amp; [[APF6_SP]] Armadeus modules and concludes the move to Buildroot 2015.02 and U-Boot 2014.07+. It also consolidates the support for vanilla Linux kernels (3.19+).&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====June 17th, 2014: Bump to [[U-Boot-2014.04| U-Boot 2014.04]]=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
All Armadeus boards moved to [[U-Boot-2014.04| U-Boot 2014.04]] on [[http://sourceforge.net/p/armadeus/code/ci/master/tree/ GIT]] &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====December 25th 2013: New software release [[Releases#Release_5.3_.28latest_stable_one.29|Armadeus 5.3]]=====&lt;br /&gt;
This new [[Releases#Release_5.3_.28latest_stable_one.29| release]] concludes the move to Buildroot 2013.05 and U-Boot 2013.04. It also consolidates the support for vanilla Linux kernels (3.1x).&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====June 11th 2013: Bump to Buildroot 2013.05 on GIT [[Current_Buildroot_status_in_Armadeus]]=====&lt;br /&gt;
Armadeus moved to Buildroot 2013.05 on GIT. Buildroot 2013.05 will apply after the BSP is fully rebuilt, so first backup your work in progress then do: git pull; git clean -dfx; make apfxx_defconfig; make &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====October 12th 2012: New software release [[Releases#Release_5.2_.28latest_stable_one.29|Armadeus 5.2]]=====&lt;br /&gt;
This new  [[Releases#Release_5.2_.28latest_stable_one.29| release]] enhances the supported features on the [[APF28]] board, fix a wireless issue on the PPS board and add few other improvements to the Armadeus software&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====August 12th 2012: Armadeus 5.0 is released=====&lt;br /&gt;
Consolidated support for the [[APF28]] board, BR 2012.02, U-Boot 2012.04, misc. fixes.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====January 27th 2012: Armadeus 4.1 is released=====&lt;br /&gt;
This new release adds (very preliminary &amp;amp; experimental) support for the [[APF28]] board, BR 2011.05, better BR integration, Linux 3.0 for APF51 and industrial automation new packages.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====Some members of Armadeus Project team will attend booth n°71 at LSM 2011 in Strasbourg (11 to 14th July 2011)=====&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====July 9th 2011: Armadeus 4.0 is released=====&lt;br /&gt;
This new release adds support for the [[APF51]] board, BR 2010.11 and continue integration work (experimental) of Linux 2.6.38 for APF27/PPS &amp;amp; APF9328.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====May 1rst 2011: [[APF51]] SOM and [[APF51Dev]] docking board are available=====&lt;br /&gt;
These new powerfull boards are available on the Armadeus Systems Online Shop.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====March 3rd 2011: [[Release_3.4|Armadeus 3.4]] is released=====&lt;br /&gt;
This new release adds support for the [[APF27_PPS]] board, and continue integration work (experimental) of BR 2010.xx &amp;amp; Linux 2.6.38.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====July 30th 2010: [[Release_3.3|Armadeus 3.3]] is released=====&lt;br /&gt;
This new release adds better support for the [[Wireless_extension_board|APW]], WiFi, Bluetooth, GPS, Qt 4.5.3, BR 2010.05 &amp;amp; U-Boot 2010.03 (experimental), etc... &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====January 15th 2010: [[Wireless_extension_board|APW]] board is available=====&lt;br /&gt;
The new [[Wireless_extension_board|APW]] board (&amp;quot;Wireless&amp;quot; extension for the APF27) is available on the Armadeus Systems Online Shop.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====December 1rst 2009: [[Release_3.2|Armadeus 3.2]] is released=====&lt;br /&gt;
This new release adds better support for the [[APF27]] &amp;amp; 7&amp;quot; screen, new packages (pygame, xenomai, etc...), svn to git migration, etc... &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====July 8th 2009: [[Current_events#General_Assembly_.2F_LSM_2009 | General Assembly / LSM 2009 ]]=====&lt;br /&gt;
On Wednesday July 8th 2009, occurred the General Assembly in Nantes (France) &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====June 29th 2009: [[Armadeus 3|Armadeus software 3.1]] is released, following the [[APF27Dev|APF27DevFull]] availability=====&lt;br /&gt;
The new Armadeus release 3.1 supports Linux kernel 2.6.29, GDB 6.7.1, APF27 FPGA download, HDMI Output of APF27DevFull and much more.&lt;br /&gt;
This release can be downloaded as a tarball package from [http://sourceforge.net/project/showfiles.php?group_id=122057 the usual place]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====February 26th 2009: [[Armadeus 3|Armadeus software 3.0]] is released, following the [[APF27]] availability=====&lt;br /&gt;
The new Armadeus release 3.0 supports the new Armadeus Systems APF27 board, linux kernel 2.6.27, GCC 4.2.1, U-Boot 1.3.4 and much more.&lt;br /&gt;
The software released can be downloaded as a tarball package from the usual place:  &lt;br /&gt;
http://sourceforge.net/projects/armadeus&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====December 6th 2008: [[Armadeus 3]] software available from subversion repository=====&lt;br /&gt;
The third generation of armadeus software is on the track. The documentation is available at [[Armadeus 3]]. For your convenience a copy of the wiki supporting previous version of Armadeus is available for offline browsing at [http://www.armadeus.com/assos_downloads/wiki/wiki_assoc_html_dump_03_12_2008.tar.gz Armadeus 2.x wiki]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====20 May 2008: DevFull boards are available=====&lt;br /&gt;
DevFull development boards are available and will be soon sold at discount price (for Armadeus Project members) on [http://www.store.armadeus.com/index.php?language=en armadeus systems online shop]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====17 Dec. 2007: Armadeus software version 2.2 released!=====&lt;br /&gt;
Armadeus release 2.2 adds many new drivers, fixes many bugs, supports the new linux kernel 2.6.23 and a recent version of buildroot. &lt;br /&gt;
Armadeus 2.2 can be downloaded as a tarball package from the usual place: &lt;br /&gt;
http://sourceforge.net/projects/armadeus&lt;br /&gt;
 &lt;br /&gt;
or directly from the Subversion server (SVN): &lt;br /&gt;
svn co https://armadeus.svn.sourceforge.net/svnroot/armadeus/tags/release-2.2 armadeus-2.2 &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Sept. 2007: APF9328 boards have been received &amp;amp; first DevFull prototypes are under test=====&lt;br /&gt;
Now all boards are available. DevFull is working well and will be available at the end of year.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====10 Jun. 2007: DevLight and LCD_Adapt received, but still waiting for APF9328 :-( !=====&lt;br /&gt;
DevLight and LCD_Adapter boards have been received but we are now waiting for new APF9328.&lt;br /&gt;
&lt;br /&gt;
=====26 Mar. 2007: DevLight and LCD_Adapt ordered !=====&lt;br /&gt;
A new DevLight order has been placed! Expected delivey date: week 17/18&lt;br /&gt;
&lt;br /&gt;
The LCD_Adapter boards have been ordered too. Expected delivery date: week 18/19&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====22 Mar. 2007: DevLight boards are out-of-stock !=====&lt;br /&gt;
We have no more DevLight boards for the moment. New one have been ordered but will only be available mid-April&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====09 Feb. 2007: Release v2.0 is out !=====&lt;br /&gt;
Software Release 2.0 is (at least ;-) ) available. To download it, go on Sourceforge... Now serious things can begin ! &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====05 Nov. 2006: APF DevLight boards received=====&lt;br /&gt;
New members can now join us easily.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Oct. 2006: APF DevLight boards quite ready=====&lt;br /&gt;
DevLight boards are in production and will be available end of October.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====12 Sept. 2006: APF DevLight boards ordered=====&lt;br /&gt;
Nico has placed an order today for 50 APF DevLight boards. They should arrive mid-october. They will allow more people to join this project soon.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====10 Sept. 2006: Wiki and Web sites are quite up now=====&lt;br /&gt;
250 years (and some months) after the birth of Wolfgang, a new genius has come to earth: the Armadeus project... ;-)&lt;br /&gt;
Wiki and web site (http://www.armadeus.com) begin to rock...&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Template:ArmadeusNews|Show all News]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Template:ArmadeusNews&amp;diff=15106</id>
		<title>Template:ArmadeusNews</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Template:ArmadeusNews&amp;diff=15106"/>
		<updated>2022-06-30T12:06:31Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* June 30th, 2022: Gitlab is now official repository for armadeus bsp */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=====June 30th, 2022: Gitlab is now official repository for armadeus bsp =====&lt;br /&gt;
&lt;br /&gt;
Gitlab is now official repository for armadeus bsp : https://gitlab.com/armadeus/armadeus-bsp&lt;br /&gt;
&lt;br /&gt;
=====August 7th, 2018: New software release [[Releases#Release_7.0_.28latest_stable_one.29|Armadeus 7.0]]=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This new [[Releases#Release_7.0_.28latest_stable_one.29| release]] introduces the support for the new [[OPOS6UL]] &amp;amp; [[OPOS6UL_NANO]] SoM and concludes the move to Buildroot 2017.02.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====August 11th, 2015: New software release [[Releases#Release_6.0_.28latest_stable_one.29|Armadeus 6.0]]=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This new [[Releases#Release_6.0_.28latest_stable_one.29| release]] introduces the support for the new [[APF6]] &amp;amp; [[APF6_SP]] Armadeus modules and concludes the move to Buildroot 2015.02 and U-Boot 2014.07+. It also consolidates the support for vanilla Linux kernels (3.19+).&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====June 17th, 2014: Bump to [[U-Boot-2014.04| U-Boot 2014.04]]=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
All Armadeus boards moved to [[U-Boot-2014.04| U-Boot 2014.04]] on [[http://sourceforge.net/p/armadeus/code/ci/master/tree/ GIT]] &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====December 25th 2013: New software release [[Releases#Release_5.3_.28latest_stable_one.29|Armadeus 5.3]]=====&lt;br /&gt;
This new [[Releases#Release_5.3_.28latest_stable_one.29| release]] concludes the move to Buildroot 2013.05 and U-Boot 2013.04. It also consolidates the support for vanilla Linux kernels (3.1x).&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====June 11th 2013: Bump to Buildroot 2013.05 on GIT [[Current_Buildroot_status_in_Armadeus]]=====&lt;br /&gt;
Armadeus moved to Buildroot 2013.05 on GIT. Buildroot 2013.05 will apply after the BSP is fully rebuilt, so first backup your work in progress then do: git pull; git clean -dfx; make apfxx_defconfig; make &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====October 12th 2012: New software release [[Releases#Release_5.2_.28latest_stable_one.29|Armadeus 5.2]]=====&lt;br /&gt;
This new  [[Releases#Release_5.2_.28latest_stable_one.29| release]] enhances the supported features on the [[APF28]] board, fix a wireless issue on the PPS board and add few other improvements to the Armadeus software&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====August 12th 2012: Armadeus 5.0 is released=====&lt;br /&gt;
Consolidated support for the [[APF28]] board, BR 2012.02, U-Boot 2012.04, misc. fixes.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====January 27th 2012: Armadeus 4.1 is released=====&lt;br /&gt;
This new release adds (very preliminary &amp;amp; experimental) support for the [[APF28]] board, BR 2011.05, better BR integration, Linux 3.0 for APF51 and industrial automation new packages.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====Some members of Armadeus Project team will attend booth n°71 at LSM 2011 in Strasbourg (11 to 14th July 2011)=====&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====July 9th 2011: Armadeus 4.0 is released=====&lt;br /&gt;
This new release adds support for the [[APF51]] board, BR 2010.11 and continue integration work (experimental) of Linux 2.6.38 for APF27/PPS &amp;amp; APF9328.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====May 1rst 2011: [[APF51]] SOM and [[APF51Dev]] docking board are available=====&lt;br /&gt;
These new powerfull boards are available on the Armadeus Systems Online Shop.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====March 3rd 2011: [[Release_3.4|Armadeus 3.4]] is released=====&lt;br /&gt;
This new release adds support for the [[APF27_PPS]] board, and continue integration work (experimental) of BR 2010.xx &amp;amp; Linux 2.6.38.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====July 30th 2010: [[Release_3.3|Armadeus 3.3]] is released=====&lt;br /&gt;
This new release adds better support for the [[Wireless_extension_board|APW]], WiFi, Bluetooth, GPS, Qt 4.5.3, BR 2010.05 &amp;amp; U-Boot 2010.03 (experimental), etc... &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====January 15th 2010: [[Wireless_extension_board|APW]] board is available=====&lt;br /&gt;
The new [[Wireless_extension_board|APW]] board (&amp;quot;Wireless&amp;quot; extension for the APF27) is available on the Armadeus Systems Online Shop.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====December 1rst 2009: [[Release_3.2|Armadeus 3.2]] is released=====&lt;br /&gt;
This new release adds better support for the [[APF27]] &amp;amp; 7&amp;quot; screen, new packages (pygame, xenomai, etc...), svn to git migration, etc... &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====July 8th 2009: [[Current_events#General_Assembly_.2F_LSM_2009 | General Assembly / LSM 2009 ]]=====&lt;br /&gt;
On Wednesday July 8th 2009, occurred the General Assembly in Nantes (France) &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====June 29th 2009: [[Armadeus 3|Armadeus software 3.1]] is released, following the [[APF27Dev|APF27DevFull]] availability=====&lt;br /&gt;
The new Armadeus release 3.1 supports Linux kernel 2.6.29, GDB 6.7.1, APF27 FPGA download, HDMI Output of APF27DevFull and much more.&lt;br /&gt;
This release can be downloaded as a tarball package from [http://sourceforge.net/project/showfiles.php?group_id=122057 the usual place]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====February 26th 2009: [[Armadeus 3|Armadeus software 3.0]] is released, following the [[APF27]] availability=====&lt;br /&gt;
The new Armadeus release 3.0 supports the new Armadeus Systems APF27 board, linux kernel 2.6.27, GCC 4.2.1, U-Boot 1.3.4 and much more.&lt;br /&gt;
The software released can be downloaded as a tarball package from the usual place:  &lt;br /&gt;
http://sourceforge.net/projects/armadeus&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====December 6th 2008: [[Armadeus 3]] software available from subversion repository=====&lt;br /&gt;
The third generation of armadeus software is on the track. The documentation is available at [[Armadeus 3]]. For your convenience a copy of the wiki supporting previous version of Armadeus is available for offline browsing at [http://www.armadeus.com/assos_downloads/wiki/wiki_assoc_html_dump_03_12_2008.tar.gz Armadeus 2.x wiki]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====20 May 2008: DevFull boards are available=====&lt;br /&gt;
DevFull development boards are available and will be soon sold at discount price (for Armadeus Project members) on [http://www.store.armadeus.com/index.php?language=en armadeus systems online shop]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====17 Dec. 2007: Armadeus software version 2.2 released!=====&lt;br /&gt;
Armadeus release 2.2 adds many new drivers, fixes many bugs, supports the new linux kernel 2.6.23 and a recent version of buildroot. &lt;br /&gt;
Armadeus 2.2 can be downloaded as a tarball package from the usual place: &lt;br /&gt;
http://sourceforge.net/projects/armadeus&lt;br /&gt;
 &lt;br /&gt;
or directly from the Subversion server (SVN): &lt;br /&gt;
svn co https://armadeus.svn.sourceforge.net/svnroot/armadeus/tags/release-2.2 armadeus-2.2 &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Sept. 2007: APF9328 boards have been received &amp;amp; first DevFull prototypes are under test=====&lt;br /&gt;
Now all boards are available. DevFull is working well and will be available at the end of year.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====10 Jun. 2007: DevLight and LCD_Adapt received, but still waiting for APF9328 :-( !=====&lt;br /&gt;
DevLight and LCD_Adapter boards have been received but we are now waiting for new APF9328.&lt;br /&gt;
&lt;br /&gt;
=====26 Mar. 2007: DevLight and LCD_Adapt ordered !=====&lt;br /&gt;
A new DevLight order has been placed! Expected delivey date: week 17/18&lt;br /&gt;
&lt;br /&gt;
The LCD_Adapter boards have been ordered too. Expected delivery date: week 18/19&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====22 Mar. 2007: DevLight boards are out-of-stock !=====&lt;br /&gt;
We have no more DevLight boards for the moment. New one have been ordered but will only be available mid-April&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====09 Feb. 2007: Release v2.0 is out !=====&lt;br /&gt;
Software Release 2.0 is (at least ;-) ) available. To download it, go on Sourceforge... Now serious things can begin ! &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====05 Nov. 2006: APF DevLight boards received=====&lt;br /&gt;
New members can now join us easily.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Oct. 2006: APF DevLight boards quite ready=====&lt;br /&gt;
DevLight boards are in production and will be available end of October.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====12 Sept. 2006: APF DevLight boards ordered=====&lt;br /&gt;
Nico has placed an order today for 50 APF DevLight boards. They should arrive mid-october. They will allow more people to join this project soon.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====10 Sept. 2006: Wiki and Web sites are quite up now=====&lt;br /&gt;
250 years (and some months) after the birth of Wolfgang, a new genius has come to earth: the Armadeus project... ;-)&lt;br /&gt;
Wiki and web site (http://www.armadeus.com) begin to rock...&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Template:ArmadeusNews|Show all News]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Template:ArmadeusNews&amp;diff=15105</id>
		<title>Template:ArmadeusNews</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Template:ArmadeusNews&amp;diff=15105"/>
		<updated>2022-06-30T12:05:55Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=====June 30th, 2022: Gitlab is now official repository for armadeus bsp =====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Gitlab is now official repository for armadeus bsp : https://gitlab.com/armadeus/armadeus-bsp&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====August 7th, 2018: New software release [[Releases#Release_7.0_.28latest_stable_one.29|Armadeus 7.0]]=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This new [[Releases#Release_7.0_.28latest_stable_one.29| release]] introduces the support for the new [[OPOS6UL]] &amp;amp; [[OPOS6UL_NANO]] SoM and concludes the move to Buildroot 2017.02.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====August 11th, 2015: New software release [[Releases#Release_6.0_.28latest_stable_one.29|Armadeus 6.0]]=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
This new [[Releases#Release_6.0_.28latest_stable_one.29| release]] introduces the support for the new [[APF6]] &amp;amp; [[APF6_SP]] Armadeus modules and concludes the move to Buildroot 2015.02 and U-Boot 2014.07+. It also consolidates the support for vanilla Linux kernels (3.19+).&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====June 17th, 2014: Bump to [[U-Boot-2014.04| U-Boot 2014.04]]=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
All Armadeus boards moved to [[U-Boot-2014.04| U-Boot 2014.04]] on [[http://sourceforge.net/p/armadeus/code/ci/master/tree/ GIT]] &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====December 25th 2013: New software release [[Releases#Release_5.3_.28latest_stable_one.29|Armadeus 5.3]]=====&lt;br /&gt;
This new [[Releases#Release_5.3_.28latest_stable_one.29| release]] concludes the move to Buildroot 2013.05 and U-Boot 2013.04. It also consolidates the support for vanilla Linux kernels (3.1x).&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====June 11th 2013: Bump to Buildroot 2013.05 on GIT [[Current_Buildroot_status_in_Armadeus]]=====&lt;br /&gt;
Armadeus moved to Buildroot 2013.05 on GIT. Buildroot 2013.05 will apply after the BSP is fully rebuilt, so first backup your work in progress then do: git pull; git clean -dfx; make apfxx_defconfig; make &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====October 12th 2012: New software release [[Releases#Release_5.2_.28latest_stable_one.29|Armadeus 5.2]]=====&lt;br /&gt;
This new  [[Releases#Release_5.2_.28latest_stable_one.29| release]] enhances the supported features on the [[APF28]] board, fix a wireless issue on the PPS board and add few other improvements to the Armadeus software&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====August 12th 2012: Armadeus 5.0 is released=====&lt;br /&gt;
Consolidated support for the [[APF28]] board, BR 2012.02, U-Boot 2012.04, misc. fixes.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====January 27th 2012: Armadeus 4.1 is released=====&lt;br /&gt;
This new release adds (very preliminary &amp;amp; experimental) support for the [[APF28]] board, BR 2011.05, better BR integration, Linux 3.0 for APF51 and industrial automation new packages.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====Some members of Armadeus Project team will attend booth n°71 at LSM 2011 in Strasbourg (11 to 14th July 2011)=====&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====July 9th 2011: Armadeus 4.0 is released=====&lt;br /&gt;
This new release adds support for the [[APF51]] board, BR 2010.11 and continue integration work (experimental) of Linux 2.6.38 for APF27/PPS &amp;amp; APF9328.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====May 1rst 2011: [[APF51]] SOM and [[APF51Dev]] docking board are available=====&lt;br /&gt;
These new powerfull boards are available on the Armadeus Systems Online Shop.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====March 3rd 2011: [[Release_3.4|Armadeus 3.4]] is released=====&lt;br /&gt;
This new release adds support for the [[APF27_PPS]] board, and continue integration work (experimental) of BR 2010.xx &amp;amp; Linux 2.6.38.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====July 30th 2010: [[Release_3.3|Armadeus 3.3]] is released=====&lt;br /&gt;
This new release adds better support for the [[Wireless_extension_board|APW]], WiFi, Bluetooth, GPS, Qt 4.5.3, BR 2010.05 &amp;amp; U-Boot 2010.03 (experimental), etc... &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====January 15th 2010: [[Wireless_extension_board|APW]] board is available=====&lt;br /&gt;
The new [[Wireless_extension_board|APW]] board (&amp;quot;Wireless&amp;quot; extension for the APF27) is available on the Armadeus Systems Online Shop.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====December 1rst 2009: [[Release_3.2|Armadeus 3.2]] is released=====&lt;br /&gt;
This new release adds better support for the [[APF27]] &amp;amp; 7&amp;quot; screen, new packages (pygame, xenomai, etc...), svn to git migration, etc... &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====July 8th 2009: [[Current_events#General_Assembly_.2F_LSM_2009 | General Assembly / LSM 2009 ]]=====&lt;br /&gt;
On Wednesday July 8th 2009, occurred the General Assembly in Nantes (France) &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====June 29th 2009: [[Armadeus 3|Armadeus software 3.1]] is released, following the [[APF27Dev|APF27DevFull]] availability=====&lt;br /&gt;
The new Armadeus release 3.1 supports Linux kernel 2.6.29, GDB 6.7.1, APF27 FPGA download, HDMI Output of APF27DevFull and much more.&lt;br /&gt;
This release can be downloaded as a tarball package from [http://sourceforge.net/project/showfiles.php?group_id=122057 the usual place]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====February 26th 2009: [[Armadeus 3|Armadeus software 3.0]] is released, following the [[APF27]] availability=====&lt;br /&gt;
The new Armadeus release 3.0 supports the new Armadeus Systems APF27 board, linux kernel 2.6.27, GCC 4.2.1, U-Boot 1.3.4 and much more.&lt;br /&gt;
The software released can be downloaded as a tarball package from the usual place:  &lt;br /&gt;
http://sourceforge.net/projects/armadeus&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====December 6th 2008: [[Armadeus 3]] software available from subversion repository=====&lt;br /&gt;
The third generation of armadeus software is on the track. The documentation is available at [[Armadeus 3]]. For your convenience a copy of the wiki supporting previous version of Armadeus is available for offline browsing at [http://www.armadeus.com/assos_downloads/wiki/wiki_assoc_html_dump_03_12_2008.tar.gz Armadeus 2.x wiki]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====20 May 2008: DevFull boards are available=====&lt;br /&gt;
DevFull development boards are available and will be soon sold at discount price (for Armadeus Project members) on [http://www.store.armadeus.com/index.php?language=en armadeus systems online shop]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====17 Dec. 2007: Armadeus software version 2.2 released!=====&lt;br /&gt;
Armadeus release 2.2 adds many new drivers, fixes many bugs, supports the new linux kernel 2.6.23 and a recent version of buildroot. &lt;br /&gt;
Armadeus 2.2 can be downloaded as a tarball package from the usual place: &lt;br /&gt;
http://sourceforge.net/projects/armadeus&lt;br /&gt;
 &lt;br /&gt;
or directly from the Subversion server (SVN): &lt;br /&gt;
svn co https://armadeus.svn.sourceforge.net/svnroot/armadeus/tags/release-2.2 armadeus-2.2 &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Sept. 2007: APF9328 boards have been received &amp;amp; first DevFull prototypes are under test=====&lt;br /&gt;
Now all boards are available. DevFull is working well and will be available at the end of year.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====10 Jun. 2007: DevLight and LCD_Adapt received, but still waiting for APF9328 :-( !=====&lt;br /&gt;
DevLight and LCD_Adapter boards have been received but we are now waiting for new APF9328.&lt;br /&gt;
&lt;br /&gt;
=====26 Mar. 2007: DevLight and LCD_Adapt ordered !=====&lt;br /&gt;
A new DevLight order has been placed! Expected delivey date: week 17/18&lt;br /&gt;
&lt;br /&gt;
The LCD_Adapter boards have been ordered too. Expected delivery date: week 18/19&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====22 Mar. 2007: DevLight boards are out-of-stock !=====&lt;br /&gt;
We have no more DevLight boards for the moment. New one have been ordered but will only be available mid-April&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====09 Feb. 2007: Release v2.0 is out !=====&lt;br /&gt;
Software Release 2.0 is (at least ;-) ) available. To download it, go on Sourceforge... Now serious things can begin ! &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====05 Nov. 2006: APF DevLight boards received=====&lt;br /&gt;
New members can now join us easily.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Oct. 2006: APF DevLight boards quite ready=====&lt;br /&gt;
DevLight boards are in production and will be available end of October.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====12 Sept. 2006: APF DevLight boards ordered=====&lt;br /&gt;
Nico has placed an order today for 50 APF DevLight boards. They should arrive mid-october. They will allow more people to join this project soon.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====10 Sept. 2006: Wiki and Web sites are quite up now=====&lt;br /&gt;
250 years (and some months) after the birth of Wolfgang, a new genius has come to earth: the Armadeus project... ;-)&lt;br /&gt;
Wiki and web site (http://www.armadeus.com) begin to rock...&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Template:ArmadeusNews|Show all News]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Footprints&amp;diff=15104</id>
		<title>Footprints</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Footprints&amp;diff=15104"/>
		<updated>2022-06-30T12:03:42Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To develop a custom docking board for an APFxx module, a symbol/footprint component is necessary. As Armadeus systems uses Mentor PAD to design their boards then, by default, PAD&#039;s footprint/symbol are approved for industrial designs.&lt;br /&gt;
Some footprint/symbol are available for others design software, they are marked &#039;&#039;&#039;na&#039;&#039;&#039; for &#039;&#039;&#039;n&#039;&#039;&#039;ot &#039;&#039;&#039;a&#039;&#039;&#039;pproved if no industrial design has been made with these footprint/symbol.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! Software &amp;gt;!! rowspan=&amp;quot;2&amp;quot; | Mentor PAD !! rowspan=&amp;quot;2&amp;quot; | Mentor PAD export !! rowspan=&amp;quot;2&amp;quot; | KiCad !! rowspan=&amp;quot;2&amp;quot; | Eagle&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
!  Module V&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[APF9328]] || not available || not available || not available || not available&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| &lt;br /&gt;
[[APF27]] &lt;br /&gt;
|| [https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf27/PAD/mentor_symbol_apf27.c] &amp;lt;br /&amp;gt; &lt;br /&gt;
[https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf27/PAD/mentor_footprint_apf27.d]&lt;br /&gt;
|| [https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf27/PAD_export/mentor_export_symbol_apf27.txt] &amp;lt;br /&amp;gt;&lt;br /&gt;
[https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf27/PAD_export/mentor_export_footprint_apf27.asc]&lt;br /&gt;
|| not available &lt;br /&gt;
|| not available&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
|&lt;br /&gt;
[[APF51]]&lt;br /&gt;
|| [https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf51/PAD/mentor_symbol_apf51.c]&amp;lt;br /&amp;gt; &lt;br /&gt;
[https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf51/PAD/mentor_footprint_apf51.d]&lt;br /&gt;
|| [https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf51/PAD_export/mentor_export_symbol_apf51.txt]&amp;lt;br /&amp;gt;&lt;br /&gt;
[https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf51/PAD_expert/mentor_export_footprint_apf51.asc]&lt;br /&gt;
|| not available&lt;br /&gt;
|| not available&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[APF28]]&lt;br /&gt;
|| [https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf28/PAD/mentor_symbol_apf28.c]&amp;lt;br /&amp;gt; &lt;br /&gt;
[https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf28/PAD/mentor_footprint_apf28.d]&lt;br /&gt;
|| [https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf28/PAD_export/mentor_export_symbol_apf28.txt] &amp;lt;br /&amp;gt;&lt;br /&gt;
[https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf28/PAD_export/mentor_export_footprint_apf28.asc]&lt;br /&gt;
|| [https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf28/kicad/kicad_symbol_apf28.lib] &amp;lt;br /&amp;gt;&lt;br /&gt;
[https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf28/kicad/kicad_symbol_apf28.kicad_mod]&lt;br /&gt;
|| not available&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[APF6]]&lt;br /&gt;
|| [https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf6/PAD/apf6.p] &amp;lt;br /&amp;gt;&lt;br /&gt;
[https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf6/PAD/apf6.d]&lt;br /&gt;
|| [https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf6/PAD_export/apf6.txt] &amp;lt;br /&amp;gt;&lt;br /&gt;
[https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/apf6/PAD_export/footprint.asc]&lt;br /&gt;
|| not available&lt;br /&gt;
|| not available&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[APF6_SP]]&lt;br /&gt;
|| TODO&lt;br /&gt;
|| TODO&lt;br /&gt;
|| not available&lt;br /&gt;
|| not available&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[OPOS6UL]]&lt;br /&gt;
|| TODO&lt;br /&gt;
|| TODO&lt;br /&gt;
|| [https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/opos6ul/kicad/opos6ul.lib)] &amp;lt;br /&amp;gt;&lt;br /&gt;
[https://gitlab.com/armadeus/armadeus-bsp/-/tree/master/hardware/opos6ul/kicad/Opos6ul_Socket_SODIMM_DDR3_TE_2013289.kicad_mod]&lt;br /&gt;
|| not available&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[OPOS6UL_NANO]]&lt;br /&gt;
|| TODO&lt;br /&gt;
|| TODO&lt;br /&gt;
|| TODO&lt;br /&gt;
|| not available&lt;br /&gt;
|- align=&amp;quot;center&amp;quot;&lt;br /&gt;
| [[OPOS6UL_SP]]&lt;br /&gt;
|| TODO&lt;br /&gt;
|| TODO&lt;br /&gt;
|| TODO&lt;br /&gt;
|| not available&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
All Symbols/Footprint described in this table can be found in [[Toolchain#Get_Armadeus_software | Armadeus gitlab repository]] in &#039;&#039;&#039;hardware&#039;&#039;&#039; directory.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=APF6_legacy_Linux_4.1_kernel_status&amp;diff=15103</id>
		<title>APF6 legacy Linux 4.1 kernel status</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=APF6_legacy_Linux_4.1_kernel_status&amp;diff=15103"/>
		<updated>2022-06-30T11:50:05Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: kernel]]&lt;br /&gt;
[[Category: APF6]]&lt;br /&gt;
The [[APF6]] Linux distribution can be found here: [https://gitlab.com/armadeus/armadeus-bsp/-/tags latest stable installation tarball from gitlab]&lt;br /&gt;
&lt;br /&gt;
==Current version==&lt;br /&gt;
Currently (armadeus-6.0) default supported Linux version for APF6 is: &#039;&#039;&#039;vanilla 3.19&#039;&#039;&#039;. Details about this kernel can be found [[APF6_Linux_kernel_status|here]].&lt;br /&gt;
&lt;br /&gt;
We also support &amp;quot;legacy&amp;quot; kernels, based on Freescale/Wandboard&#039;s versions, to have GPU/VPU functionalities available until integrated in vanilla/mainline. This page detail the Freescale 4.1.xxx Linux version support.&lt;br /&gt;
&lt;br /&gt;
Details concerning the drivers usage can be found [[Setup|below]].&lt;br /&gt;
&lt;br /&gt;
* NT = Not Tested&lt;br /&gt;
* NA = Not Available / Not possible&lt;br /&gt;
&lt;br /&gt;
==APF6 module==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;Functionnalities test results&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#b9e9a3;&amp;quot; |  &#039;&#039;&#039;4.1.15_2.0.0_ga legacy&#039;&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Driver&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;Compiling ? &amp;lt;br&amp;gt; Static / Module&#039;&#039;&#039; || &#039;&#039;&#039; Working ? &#039;&#039;&#039; || &#039;&#039;&#039;Comments&#039;&#039;&#039;&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;eMMC&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;SPI&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || [[SPI]] / Not tested yet.&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;I2C&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[I2C]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Keypad&#039;&#039;&#039; || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || Not tested yet&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;MMC/SD/SDIO&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;UART&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Ethernet&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;USB OTG&#039;&#039;&#039; ||  style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT ||  style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[USB]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;USB HOST1&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[USB]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;PWM&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[PWM]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;RTC&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT ||  style=&amp;quot;background:#eeee00;&amp;quot; | NT || i.MX6 internal [[RTC]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Watchdog&#039;&#039;&#039; || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT ||  style=&amp;quot;background:#eeee00;&amp;quot; | NT || [[Watchdog]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;PM sleep/wakeup&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || [[Power management]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Frequency scaling&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || Not tested yet&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;CSI (Camera)&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || Tested with a wandcam and SDL capture demo.&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;SSI (Audio)&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[ALSA]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Video codec (H.263/4)&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || H.264 with [[Gstreamer]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;3D GPU&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || OpenGLES 2.0&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Security/Sahara/RTIC&#039;&#039;&#039; || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || Not tested yet&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Wi-Fi (b/g)&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||  style=&amp;quot;background:#eeee00;&amp;quot; | NT || [[Wifi]] - [[Wl12xx_driver]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Bluetooth&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||  style=&amp;quot;background:#eeee00;&amp;quot; | NT || [[Bluetooth]] / No RTS/CTS Bluetooth&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;FPGA POD interface&#039;&#039;&#039; || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || Not tested yet&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;FPGA loading&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || Only available on APF6SP&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Xenomai&#039;&#039;&#039; || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT&lt;br /&gt;
|----------------&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APF6Dev development baseboard==&lt;br /&gt;
* NT = Not Tested&lt;br /&gt;
* NA = Not Available / Not possible&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;Functionnalities test results&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#b9e9a3;&amp;quot; |  &#039;&#039;&#039;4.1.15_2.0.0_ga legacy&#039;&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Driver&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;Compiling ? &amp;lt;br&amp;gt; Static / Module&#039;&#039;&#039; || &#039;&#039;&#039;Working ?&#039;&#039;&#039; || &#039;&#039;&#039;Comments&#039;&#039;&#039;&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;SATA&#039;&#039;&#039; || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT ||&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;PCIe&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT ||&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;microSD&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Ethernet&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:orange;&amp;quot; | ~OK || 100M only at the moment&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;LCD&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || Tested with LW700. [[LCD]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Backlight&#039;&#039;&#039; || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || Not tested yet&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Headphone audio Out&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[ALSA]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;SPDIF Optical audio Out&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[ALSA]] be sure to force SPDIF output with: aplay -D &amp;quot;default:CARD=imxspdif&amp;quot; /usr/share/sounds/alsa/Side_Left.wav&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;HDMI audio Out&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[ALSA]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;MIC audio In&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[ALSA]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Touchscreen&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || Single touch only.&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;USB Host 1&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || High Speed&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;CAN Bus&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || [[CAN_bus_Linux_driver]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;HDMI&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || Issues with some DVI monitor.&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;GPS&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || [[GPS]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;GSM / 3G&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || [[Gsm]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;GPIO&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[GPIOlib]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;User LED&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[GPIO LEDS]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;User button&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[GPIO keys]]&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;RTC MCP79400&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||  style=&amp;quot;background:#eeee00;&amp;quot; | NT || [[RTC]]. Timekeeping only.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=APF27_Linux_kernel_status&amp;diff=15102</id>
		<title>APF27 Linux kernel status</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=APF27_Linux_kernel_status&amp;diff=15102"/>
		<updated>2022-06-30T11:49:34Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;See [[Kernel-upstream-status]] for fresh information about APF27 kernel status.&lt;br /&gt;
&lt;br /&gt;
The APF27 Linux distribution can be found here: [https://gitlab.com/armadeus/armadeus-bsp/-/tags latest stable installation tarball from gitlab]&lt;br /&gt;
&lt;br /&gt;
==Current version==&lt;br /&gt;
Currently (Armadeus-6.0) supported Linux version is: &#039;&#039;&#039;2.6.29.6&#039;&#039;&#039;. &lt;br /&gt;
Details concerning the drivers usage can be found [[Setup|here]].&lt;br /&gt;
&lt;br /&gt;
* NT = Not Tested&lt;br /&gt;
* NA = Not Available / Not possible&lt;br /&gt;
&lt;br /&gt;
==APF27 module (ie i.MX27 internal controllers + FPGA)==&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;Functionnalities test results&amp;quot;&lt;br /&gt;
|----------------&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#b9e9a3;&amp;quot; |  &#039;&#039;&#039;2.6.29.6&#039;&#039;&#039; &lt;br /&gt;
|----------------&lt;br /&gt;
! &#039;&#039;&#039;Driver&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;Compiling ? &amp;lt;br&amp;gt; Static / Module&#039;&#039;&#039; || &#039;&#039;&#039; Working ? &#039;&#039;&#039; || &#039;&#039;&#039;Comments&#039;&#039;&#039; &lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;NAND Flash&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || NA || style=&amp;quot;background:#00ff00;&amp;quot; |OK || &lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;PCMCIA&#039;&#039;&#039; || NA || NA || NA || can not be used on the APF27&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;1Wire&#039;&#039;&#039; || style=&amp;quot;background:#eeee00;&amp;quot; |NT || style=&amp;quot;background:#eeee00;&amp;quot; |NT || style=&amp;quot;background:#eeee00;&amp;quot; |NT || not integrated yet&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;ATA&#039;&#039;&#039; || NA || NA || NA || can not be used on the APF27&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;SPI&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||  &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;I2C&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Keypad&#039;&#039;&#039; || style=&amp;quot;background:#eeee00;&amp;quot; |NT || style=&amp;quot;background:#eeee00;&amp;quot; |NT || style=&amp;quot;background:#eeee00;&amp;quot; |NT || not integrated yet&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;MMC/SD/SDIO&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || NA  || style=&amp;quot;background:#00ff00;&amp;quot; | OK || &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;UART&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK  || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK  || &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Ethernet&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;USB OTG&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || Used as High Speed Host only (for the moment == on APF27Dev) &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;USB HOST1&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;USB HOST2&#039;&#039;&#039; || NA || style=&amp;quot;background:#eeee00;&amp;quot; |NT || style=&amp;quot;background:#eeee00;&amp;quot; |NT ||&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;PWM&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;RTC&#039;&#039;&#039; || style=&amp;quot;background:#eeee00;&amp;quot; |NT || style=&amp;quot;background:#eeee00;&amp;quot; |NT || style=&amp;quot;background:#eeee00;&amp;quot; |NT || internal RTC &lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Watchdog&#039;&#039;&#039; || style=&amp;quot;background:#eeee00;&amp;quot; |NT || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || i.MX27 internal Watchdog &lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;CSI&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;GPIO&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || NA || style=&amp;quot;background:#f6b400;&amp;quot; | Partially || GPIOlib work but no interrupts with /sys/class/gpio/gpioX/edge file&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;LCD&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;SSI (Audio)&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Video codec (H.263/4)&#039;&#039;&#039; || NA || style=&amp;quot;background:#eeee00;&amp;quot; |NT || style=&amp;quot;background:#eeee00;&amp;quot; |NT || Only encoding was validated. Mostly relies on userspace tools.&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Security/Sahara/RTIC&#039;&#039;&#039; || style=&amp;quot;background:#eeee00;&amp;quot; |NT || style=&amp;quot;background:#eeee00;&amp;quot; |NT || style=&amp;quot;background:#eeee00;&amp;quot; |NT ||&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;FPGA POD interface&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK|| style=&amp;quot;background:#00ff00;&amp;quot; | OK || Wishbone bus &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;FPGA loading&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==APF27Dev development baseboard==&lt;br /&gt;
* NT = Not Tested&lt;br /&gt;
* NA = Not Available / Not possible&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;Functionnalities test results&amp;quot;&lt;br /&gt;
| colspan=&amp;quot;5&amp;quot; align=&amp;quot;center&amp;quot; style=&amp;quot;background:#b9e9a3;&amp;quot; |  &#039;&#039;&#039;2.6.29.6&#039;&#039;&#039;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! &#039;&#039;&#039;Driver&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | &#039;&#039;&#039;Compiling ? &amp;lt;br&amp;gt; Static / Module&#039;&#039;&#039; || &#039;&#039;&#039; Working ? &#039;&#039;&#039; || &#039;&#039;&#039;Comments&#039;&#039;&#039;&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;RTC&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; |OK || [[RTC|DS1374]] &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;microSD&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK|| style=&amp;quot;background:#00ff00;&amp;quot; | OK || &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Ethernet&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;RS232&#039;&#039;&#039; || style=&amp;quot;background:#00ff00;&amp;quot; | OK || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;LCD&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Audio out&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[ALSA]] &lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Audio in&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||  &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Touchscreen&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[TSC2102_Linux_driver]]&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;USB Host High Speed&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;USB Host Full Speed&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK ||&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;ADC&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK  || MAX1027 &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;DAC&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || MAX5821&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;CAN Bus&#039;&#039;&#039; || NA || style=&amp;quot;background:#eeee00;&amp;quot; |NT|| style=&amp;quot;background:#eeee00;&amp;quot; | NT || MCP2515&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;HDMI&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | No drivers needed || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[DVI_/_HDMI|AD9889]] &lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;GPS&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | No drivers needed || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[Wireless extension board]]&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;GSM&#039;&#039;&#039; || colspan=&amp;quot;2&amp;quot; | No drivers needed || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[Wireless extension board]]&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Wi-Fi&#039;&#039;&#039; || NA || style=&amp;quot;background:#00ff00;&amp;quot; | OK || style=&amp;quot;background:#00ff00;&amp;quot; | OK || [[Wireless extension board]]&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|&#039;&#039;&#039;Bluetooth&#039;&#039;&#039; || NA || style=&amp;quot;background:#eeee00;&amp;quot; | NT || style=&amp;quot;background:#eeee00;&amp;quot; | NT || [[Wireless extension board]]&lt;br /&gt;
&lt;br /&gt;
|----------------&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category: kernel]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Quilt&amp;diff=15101</id>
		<title>Quilt</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Quilt&amp;diff=15101"/>
		<updated>2022-06-30T11:44:44Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Introduction ==&lt;br /&gt;
Quilt is a little tool used to manage patches. The project is hosted on [http://savannah.nongnu.org/projects/quilt savannah forge] and can be found in debian package repository.&lt;br /&gt;
&lt;br /&gt;
== Using quilt in Armadeus project ==&lt;br /&gt;
&lt;br /&gt;
Quilt is useful when linux kernel or buildroot modification must be done. Because Armadeus use official linux/buildroot sources, each specific modification for our platform must be done with a patch. And patches are versionned on Armadeus gitlab repository in directory buildroot/target/device/armadeus/linux/kernel-patches/ for Linux kernel and in patches/buildroot for buildroot.&lt;br /&gt;
&lt;br /&gt;
=== quiltify.sh ===&lt;br /&gt;
&lt;br /&gt;
To use it under Armadeus Project, a simple script was written to simplify it : &#039;&#039;quiltify.sh&#039;&#039;. Launch it from the root project :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
  [  ] $ ./scripts/quiltify.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then answer questions (defaults are recommended). For linux kernel, quiltify will rename your source directory and download/patch/compile again the sources.&lt;br /&gt;
&lt;br /&gt;
=== By Hand ===&lt;br /&gt;
&lt;br /&gt;
quiltify is used when patch are stored in Armadeus standard directory. For specific projects, where patches are stored elsewhere it doesn&#039;t work. To do this, you can follow this procedure:&lt;br /&gt;
&lt;br /&gt;
* linux-dirclean: linux kernel should be rebuild from &#039;&#039;scratch&#039;&#039; then first we have to cut the branch (in bsp root directory do):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux-dirclean&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* linux-extract: We have to just extract virgin linux source (don&#039;t compile yet):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux-extract&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Once extract done, go to linux source directory and add patch one by one :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ cd buildroot/output/build/linux-5.3-rc4/&lt;br /&gt;
# Import patches one by one:&lt;br /&gt;
$ quilt import /Path/to/personnal/kernel/patches/my_wonderful_patch.patch&lt;br /&gt;
# All patches from a directory:&lt;br /&gt;
$ quilt import /Path/to/personnal/kernel/patches/*.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Play with quilt ===&lt;br /&gt;
&lt;br /&gt;
Once you done it, you can go to linux sources directory &#039;&#039;buildroot/project_build_armv5te/apf27/linux-2.6.29.6&#039;&#039; then list all patches applied to with quilt command :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
  [  ] $ quilt applied&lt;br /&gt;
015-armadeus-logo-add_armadeus-project_tux.patch&lt;br /&gt;
016-armadeus-imxfb-add_platform_specific_init_exit_functions.patch&lt;br /&gt;
018-armadeus-i2c-imx-add_driver_to_linux_build_system.patch&lt;br /&gt;
…&lt;br /&gt;
336-armadeus-imxfb-makes_it_compatible_with_arch_imx.patch&lt;br /&gt;
337-armadeus-imxfb-add_lcd_clock_def_for_imx_platform.patch&lt;br /&gt;
338-denx-mxcgpio-emulates_interrupt_on_both_edges.patch&lt;br /&gt;
339-apf27-armadeus-spidev.patch&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
If you want to create a new patch, just use &#039;&#039;new&#039;&#039; quilt command. Then &#039;&#039;&#039;before&#039;&#039;&#039; modifying Linux file, add it to quilt with &#039;&#039;add&#039;&#039; command.&lt;br /&gt;
&lt;br /&gt;
The file can be modified according to your wish.&lt;br /&gt;
&lt;br /&gt;
Once modification done, you can generate the patch using &#039;&#039;refresh&#039;&#039; command. To add yours patches in the right directory, go to your project root then launch the script with &#039;&#039;export&#039;&#039; command :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
  [  ] $ ./scripts/quiltify.sh export&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Your patch is now ready to be committed on Armadeus gitlab.&lt;br /&gt;
&lt;br /&gt;
== Documentation ==&lt;br /&gt;
&lt;br /&gt;
The [http://linux.die.net/man/1/quilt man page] of quilt is a good documentation, it&#039;s strongly recommended to read it before using it.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=How_to_make_a_VHDL_design_in_Ubuntu/Debian&amp;diff=15100</id>
		<title>How to make a VHDL design in Ubuntu/Debian</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=How_to_make_a_VHDL_design_in_Ubuntu/Debian&amp;diff=15100"/>
		<updated>2022-06-30T10:44:55Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: FPGA]]&lt;br /&gt;
&lt;br /&gt;
This tutorial describes how to install all the necessary tools to develop simple designs under Ubuntu for the Armadeus Project.&amp;lt;br&amp;gt;&lt;br /&gt;
As Ubuntu is a Debian based distribution, all the informations on this page should work with Debian too.&lt;br /&gt;
&lt;br /&gt;
== Editing VHDL ==&lt;br /&gt;
&lt;br /&gt;
To edit VHDL code all standard editing softwares like Vim, Emacs or others can be used. &lt;br /&gt;
But Emacs has a really good [http://www.iis.ee.ethz.ch/~zimmi/emacs/vhdl-mode.html vhdl-mode] used by lots of designers. If you hate Emacs, you &lt;br /&gt;
can use the xilinx-embedded editor or vim with a [http://code.google.com/p/vim-vhdl/ VHDL-plugin] under development.&lt;br /&gt;
&lt;br /&gt;
== Making a simple project ==&lt;br /&gt;
&lt;br /&gt;
It&#039;s a good idea to make a clean project tree for your design, because different software are &lt;br /&gt;
used and each generates a large amount of files.&lt;br /&gt;
&lt;br /&gt;
Here is an example of a VHDL project tree :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;MySimple_project/&#039;&#039;&#039;&lt;br /&gt;
**&#039;&#039;&#039;src/&#039;&#039;&#039; for all sources files (.vhd,.ucf,.xcf)&lt;br /&gt;
**&#039;&#039;&#039;testbench/&#039;&#039;&#039; VHDL sources files for testing your design&lt;br /&gt;
**&#039;&#039;&#039;ise/&#039;&#039;&#039; Xilinx web pack will work in this directory&lt;br /&gt;
**&#039;&#039;&#039;simu/&#039;&#039;&#039; All files generated by the simulator&lt;br /&gt;
&lt;br /&gt;
== Simulation ==&lt;br /&gt;
To stay in the Free Software spirit, the best method to simulate is to use [http://ghdl.free.fr/ GHDL] (based on GCC).&amp;lt;br&amp;gt;&lt;br /&gt;
To install it on Ubuntu you just have to type :&lt;br /&gt;
 $ sudo apt-get install ghdl&lt;br /&gt;
&lt;br /&gt;
You can find a good tutorial for using GHDL [http://forum.ubuntu-fr.org/viewtopic.php?pid=1545563#p839075 here] and on [http://ghdl.free.fr/ghdl/Starting-with-GHDL.html#Starting-with-GHDL the official website]. It&#039;s supposed that the project tree &lt;br /&gt;
used is this one described previously.&lt;br /&gt;
&lt;br /&gt;
Analysing files:&lt;br /&gt;
 $ ghdl -i --ieee=synopsys --warn-no-vital-generic --workdir=simu --work=work src/*.vhdl testbench/testb_file.vhd&lt;br /&gt;
And compile:&lt;br /&gt;
 $ ghdl -m --ieee=synopsys --warn-no-vital-generic --workdir=simu --work=work testb_file&lt;br /&gt;
&lt;br /&gt;
After that a binary file named &#039;&#039;testb_file&#039;&#039; is created; to launch simulation we just have to: &lt;br /&gt;
 $ ./testb_file --stop-time=500ns --vcdgz=testb_file.vcdgz &lt;br /&gt;
The stop time option sets the simulation time and the vcdgz option will generate a gunzip compressed wave file to visualize the result.&lt;br /&gt;
&lt;br /&gt;
Visualizing the result can be done with gtkwave:&lt;br /&gt;
 $ sudo apt-get install gtkwave&lt;br /&gt;
&lt;br /&gt;
We can launch it with the following command :&lt;br /&gt;
 $ gunzip --stdout testb_file.vcdgz | gtkwave --vcd&lt;br /&gt;
&lt;br /&gt;
[[Image:gtkwave.png|700px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
It can be a good idea to make a Makefile instead of typing all this commands, here is a little Makefile:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code lang=&amp;quot;makefile&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
 # project name&lt;br /&gt;
 PROJECT=bus_led_top&lt;br /&gt;
 # vhdl files&lt;br /&gt;
 FILES = src/bus_led.vhd src/bus_led_top.vhd&lt;br /&gt;
 # testbench&lt;br /&gt;
 SIMTOP = led_top_tb&lt;br /&gt;
 SIMFILES = testbench/led_top_tb.vhd&lt;br /&gt;
 # Simu break condition&lt;br /&gt;
 GHDL_SIM_OPT    = --assert-level=error&lt;br /&gt;
 #GHDL_SIM_OPT    = --stop-time=500ns&lt;br /&gt;
 &lt;br /&gt;
 SIMDIR = simu&lt;br /&gt;
 SYNTHFILES = bin/bus_led_ise/netgen/synthesis&lt;br /&gt;
 &lt;br /&gt;
 GHDL_CMD        = ghdl&lt;br /&gt;
 GHDL_FLAGS      = --ieee=synopsys --warn-no-vital-generic&lt;br /&gt;
 &lt;br /&gt;
 VIEW_CMD        = /usr/bin/gtkwave&lt;br /&gt;
 &lt;br /&gt;
 ghdl-compile :                                                                                                 &lt;br /&gt;
  mkdir -p simu                                                                                               &lt;br /&gt;
  $(GHDL_CMD) -i $(GHDL_FLAGS) --workdir=simu --work=work $(SIMFILES) $(FILES)                                &lt;br /&gt;
  $(GHDL_CMD) -m $(GHDL_FLAGS) --workdir=simu --work=work $(SIMTOP)                                           &lt;br /&gt;
  @mv $(SIMTOP) simu/$(SIMTOP)                                                                                &lt;br /&gt;
                                                                                                               &lt;br /&gt;
 ghdl-run :                                                                                                    &lt;br /&gt;
  @$(SIMDIR)/$(SIMTOP) $(GHDL_SIM_OPT) --vcdgz=$(SIMDIR)/$(SIMTOP).vcdgz                                      &lt;br /&gt;
                                                                                                              &lt;br /&gt;
 ghdl-view:                                                                                                    &lt;br /&gt;
  gunzip --stdout $(SIMDIR)/$(SIMTOP).vcdgz | $(VIEW_CMD) --vcd                                               &lt;br /&gt;
                                                                                                              &lt;br /&gt;
 ghdl-clean :                                                                                                  &lt;br /&gt;
  $(GHDL_CMD) --clean --workdir=simu     &lt;br /&gt;
&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
to use it, just write :&lt;br /&gt;
 $ make ghdl-compile&lt;br /&gt;
to compile, then:&lt;br /&gt;
 $ make ghdl-run&lt;br /&gt;
to run the design, then:&lt;br /&gt;
 $ make ghdl-view&lt;br /&gt;
to launch gtkwave and visualize the results.&lt;br /&gt;
&lt;br /&gt;
== Syntesis, place &amp;amp; route ==&lt;br /&gt;
&lt;br /&gt;
=== GUI installation ===&lt;br /&gt;
To synthesize the design it is mandatory to use Xilinx tools (It&#039;s not exactly true, others tools can be used for synthesize like Mentor tools, but at the end, to make the bitstream, Xilinx tools are mandatory), fortunately Xilinx provides his webpack for Linux. [[ISE_WebPack_installation_on_Linux| Click here if you didn&#039;t install it yet.]]&lt;br /&gt;
&lt;br /&gt;
To launch the floorplanner, DISPLAY has to be change:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 export DISPLAY=:0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
After this installation, ISE can be found in the directory &#039;&#039;$(Xilinx_root_dir)/bin/lin&#039;&#039;.&lt;br /&gt;
To avoid retyping export, a little script &#039;&#039;launch_ise.sh&#039;&#039; can be made in &#039;&#039;bin/lin/&#039;&#039; directory:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
export DISPLAY=:0&lt;br /&gt;
~/Xilinx92i/bin/lin/ise&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then make launch click :&lt;br /&gt;
&lt;br /&gt;
[[Image:lanceurise.png]]&lt;br /&gt;
&lt;br /&gt;
There is a good tutorial on [http://harded.free.fr/site/?p=31 harded.free.fr].&lt;br /&gt;
&lt;br /&gt;
=== Using Xilinx command line tools for shell syntesis ===&lt;br /&gt;
&lt;br /&gt;
See [http://panteltje.com/panteltje/fpga/index.html Using Xilinx Webpack-8.1i on grml Linux in scripted mode, without GUI] for an introduction. &lt;br /&gt;
&lt;br /&gt;
First of all, library files has to be copied in library directory :&lt;br /&gt;
 sudo -s&lt;br /&gt;
 mkdir /usr/local/lib/xilinx/&lt;br /&gt;
 cp Xilinx_directory/bin/lin/*.so /usr/local/lib/xilinx/&lt;br /&gt;
 echo /usr/local/lib/xilinx &amp;gt;&amp;gt; /etc/ld.so.conf&lt;br /&gt;
 ldconfig&lt;br /&gt;
&lt;br /&gt;
Then modify your .bashrc (add at the end):&lt;br /&gt;
 PLATFORM=lin&lt;br /&gt;
 XILINX=Xilinx_directory&lt;br /&gt;
 export XILINX&lt;br /&gt;
 PATH=Xilinx_directory/bin/lin:$PATH&lt;br /&gt;
 export PATH&lt;br /&gt;
&lt;br /&gt;
Then ISE can be used in command line (xst, ngdbuild, map, bit,...). To avoid typing very long commands it can be a good idea to use a Makefile, xess.com provide a full [http://www.xess.com/appnotes/makefile.php Makefile] to do this and a basic Makefile for simulation and synthesis can be found in the armadeus gitlab project: [https://gitlab.com/armadeus/armadeus-bsp/-/blob/master/firmware/wishbone_example/wishbone_example9328_27/Makefile]. To use it modify the head and write the names of your files :&lt;br /&gt;
&lt;br /&gt;
*General options&lt;br /&gt;
&lt;br /&gt;
 # project name&lt;br /&gt;
 PROJECT=bus_led_top&lt;br /&gt;
 # vhdl files&lt;br /&gt;
 FILES = src/bus_led.vhd src/bus_led_top.vhd&lt;br /&gt;
&lt;br /&gt;
* constraints for synthesis&lt;br /&gt;
&lt;br /&gt;
 # pin configuration&lt;br /&gt;
 UCF_FILE = src/bus_led.ucf&lt;br /&gt;
 # Synthesis constraints file&lt;br /&gt;
 XCF_FILE = &lt;br /&gt;
&lt;br /&gt;
*Testbench options&lt;br /&gt;
&lt;br /&gt;
 # testbench&lt;br /&gt;
 SIMTOP = led_top_tb&lt;br /&gt;
 SIMFILES = ../apf_pkg/apf_test_pkg.vhd testbench/led_top_tb.vhd&lt;br /&gt;
&lt;br /&gt;
*Simulation can stop after a given time or after an assert error (end of test for example)&lt;br /&gt;
&lt;br /&gt;
 # Simu break condition&lt;br /&gt;
 GHDL_SIM_OPT    = --assert-level=error&lt;br /&gt;
 #GHDL_SIM_OPT    = --stop-time=500ns&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=A_simple_design_with_Wishbone_bus&amp;diff=15099</id>
		<title>A simple design with Wishbone bus</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=A_simple_design_with_Wishbone_bus&amp;diff=15099"/>
		<updated>2022-06-30T10:43:16Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: FPGA]]&lt;br /&gt;
&lt;br /&gt;
This article is intended to explain how to design Wishbone compatible components with simple example. &lt;br /&gt;
The VHDL source code can be found in firmware/wishbone_example from  [https://gitlab.com/armadeus/armadeus-bsp our gitlab repository].&lt;br /&gt;
&lt;br /&gt;
Description of the Wishbone structure for Armadeus APF boards can be found [[FpgaArchitecture#Le_bus_Wishbone | here]] (in french).&lt;br /&gt;
&lt;br /&gt;
== General structure ==&lt;br /&gt;
&lt;br /&gt;
The main functionality of this component is to allow to switch-on a LED when a button is pressed.&lt;br /&gt;
&lt;br /&gt;
When button is pressed, the component &#039;&#039;button&#039;&#039; send interrupt signal to&lt;br /&gt;
&#039;&#039;irq_mngr&#039;&#039;. &#039;&#039;irq_mngr&#039;&#039; will toggle a flag and send interruption to&lt;br /&gt;
&#039;&#039;&#039;i.MX&#039;&#039;&#039; processor. A Linux driver on &#039;&#039;&#039;i.MX&#039;&#039;&#039; will read &#039;&#039;irq_mngr&#039;&#039; and&lt;br /&gt;
acknowledge irq by writing &#039;1&#039; on the corresponding register. And finally, Linux driver will&lt;br /&gt;
toggle LED value by writing in &#039;&#039;led&#039;&#039; register.&lt;br /&gt;
&lt;br /&gt;
[[image:Wb_buttonled_top.png|700px|center|thumb|&#039;&#039;&#039;figure 1&#039;&#039;&#039; - &#039;&#039;Schematics of wishbone example. /!\ Bus signals are wrong for the APF51 because addr and data are multiplexed.&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;imx_wrapper&#039;&#039;, &#039;&#039;syscon&#039;&#039; and &#039;&#039;irq_mngr&#039;&#039; are standards&lt;br /&gt;
ARMadeus-Wishbone IPs that just been instantiated in our design.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;button&#039;&#039; and &#039;&#039;led&#039;&#039; are simple slave component we want to integrate in the FPGA.&lt;br /&gt;
&lt;br /&gt;
All these components are connected together with the &#039;glue logic&#039; component &#039;&#039;intercon&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Wrapper ===&lt;br /&gt;
The [http://armadeus.git.sourceforge.net/git/gitweb.cgi?p=armadeus/armadeus;a=blob;f=firmware/wishbone_example/src/wishbone_wrapper.vhd;h=d23110bac06cb121677e551c9eb5efc36b9e5981;hb=HEAD wrapper] is used to convert i.MX interface signals into Wishbone signals.&lt;br /&gt;
&lt;br /&gt;
=== Intercon === &lt;br /&gt;
&lt;br /&gt;
The [http://armadeus.git.sourceforge.net/git/gitweb.cgi?p=armadeus/armadeus;a=blob;f=firmware/wishbone_example/src/intercon.vhd;h=dfa98f69ee2263a715945173e138c846e186981c;hb=HEAD  intercon] is a component used to manage signals between Wishbone master and slave components. This component decode Wishbone-master addresses and dispatch them to Wishbone-slave components.&lt;br /&gt;
&lt;br /&gt;
[[image:Wb_intercon.png|center|500px|thumb|&#039;&#039;&#039;figure 2&#039;&#039;&#039; - &#039;&#039;Intercon internal structure&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
== Wishbone slave application components ==&lt;br /&gt;
&lt;br /&gt;
In this example there are 3 Wishbone-slave components :&lt;br /&gt;
&lt;br /&gt;
=== irq manager ===&lt;br /&gt;
&lt;br /&gt;
Some components (here, only &#039;&#039;button&#039;&#039;) generate interrupts, [http://armadeus.git.sourceforge.net/git/gitweb.cgi?p=armadeus/armadeus;a=blob;f=firmware/wishbone_example/src/irq_mngr.vhd;h=014735fb81478b668091beac08af358d6c61240c;hb=HEAD irq manager] is used to mux these interrupts for i.MX. The irq_mngr can manage up to 16 internal interrupts. &lt;br /&gt;
&lt;br /&gt;
IRQ manager component has tree registers, one to enable interrupts, one for flags/acknowledge interrupts and one identification register :&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;irq_mgr registers&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! register !! function&lt;br /&gt;
|-&lt;br /&gt;
| mask&lt;br /&gt;
| write &#039;1&#039; to allow irq&lt;br /&gt;
|-&lt;br /&gt;
| ack/pend&lt;br /&gt;
| read for pending irq, write to acknowledge irq&lt;br /&gt;
|-&lt;br /&gt;
| id&lt;br /&gt;
| identification register&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== wb_led ===&lt;br /&gt;
&lt;br /&gt;
{{Note| On apf9328_devfull and on apf27_dev a LED is already soldered on fpga. &amp;lt;br&amp;gt; &#039;&#039;&#039;For apf27_dev the FPGA bank1 must be powered with 3.3V&#039;&#039;&#039; (connect pin 39 and pin 1 on J20 header (near Ethernet one)). For &#039;&#039;&#039;apf51Dev&#039;&#039;&#039; don&#039;t forget to power banks with jumper FPGA_Bank3 and FPGA_Bank1}}&lt;br /&gt;
&lt;br /&gt;
This component is a simple 16-bit Wishbone slave output port, from [http://cdn.opencores.org/downloads/wbspec_b3.pdf wishbone specification example] (p110).&lt;br /&gt;
&lt;br /&gt;
[[image:wbs_led.png|center|thumb|600px|&#039;&#039;&#039;figure 3&#039;&#039;&#039; - &#039;&#039;LED internal structure&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
It is a simple register, that can be read and write. The LED is controlled with register pin 0.&lt;br /&gt;
&lt;br /&gt;
The two registers are :&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;wb_led registers&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! register name !! (relative) address !! function&lt;br /&gt;
|-&lt;br /&gt;
| LED || 0x00 || Write &#039;1&#039; in LSB to shutdown LED&lt;br /&gt;
|-&lt;br /&gt;
| id || 0x02 || read identification number&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== wb_button ===&lt;br /&gt;
&lt;br /&gt;
Wb_button component, is like &#039;&#039;led&#039;&#039; but in read only and with an edge detector to rise irq.&lt;br /&gt;
&lt;br /&gt;
{{Note| On [[APF27Dev]] and [[APF51Dev]] a button is already soldered to a FPGA pin. Just don&#039;t forget to power corresponding FPGA bank.&amp;lt;br&amp;gt; For [[APF9328DevFull]] a button must be connected to IO_L01N_0 FPGA pin (connector X7/FPGA2, pin 1)}}&lt;br /&gt;
[[image:wbs_button.png|center|thumb|500px|&#039;&#039;&#039;figure 4&#039;&#039;&#039; - &#039;&#039;Button internal structure&#039;&#039;]]&lt;br /&gt;
&lt;br /&gt;
The two registers are:&lt;br /&gt;
&lt;br /&gt;
{| align=&amp;quot;center&amp;quot; border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; summary=&amp;quot;wb_button registers&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot; align=&amp;quot;center&amp;quot;&lt;br /&gt;
! register !! (relative) address !! function&lt;br /&gt;
|-&lt;br /&gt;
| id || 0x00 || read identification number&lt;br /&gt;
|-&lt;br /&gt;
| Button || 0x02 || read LSB to know button state&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Components drivers ==&lt;br /&gt;
&lt;br /&gt;
Each component is driven by a Linux driver described above. All driver code is in armadeus directory in [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/linux/modules/fpga/wishbone_example/ target/linux/module/fpga/wishbone_example/].&lt;br /&gt;
&lt;br /&gt;
Each component has an identification register with unique number. This number is used by driver when modprobed to unsure that device is present.&lt;br /&gt;
&lt;br /&gt;
=== irq manager ===&lt;br /&gt;
&lt;br /&gt;
The description of IRQ management module is available [[POD_Interrupt_handler | here]]. The module&#039;s source code can be found [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/linux/modules/fpga/wishbone_example/wb_irq_mngr/main.c?view=markup  here].&lt;br /&gt;
&lt;br /&gt;
=== LED ===&lt;br /&gt;
&lt;br /&gt;
LED driver is seen in Linux like a character driver. Writing in a &#039;&#039;/dev&#039;&#039; file will enable or disable the LED.&lt;br /&gt;
&lt;br /&gt;
The driver is composed of two modules :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;led_ocore&#039;&#039;&#039; : this module implement generic LED driver mechanisms.&lt;br /&gt;
* &#039;&#039;&#039;wb_example_led&#039;&#039;&#039; : This module describe specific datas for each LED-component available in design. These datas are described in structure &#039;&#039;plat_led_port&#039;&#039; and &#039;&#039;plat_led_device&#039;&#039;. The module will register each LED with &#039;&#039;platform_device_register()&#039;&#039; function. When a &#039;&#039;plat_led_port&#039;&#039; device is registered, &#039;&#039;led_ocore&#039;&#039; driver will detect it and will probe it with &#039;&#039;led_probe&#039;&#039; function.&lt;br /&gt;
&lt;br /&gt;
=== button ===&lt;br /&gt;
&lt;br /&gt;
Button driver is seen in Linux like a character driver. When a process want to read value in button register, the driver will block reading until an interrupt occur.&lt;br /&gt;
&lt;br /&gt;
Structure of button driver is similar to LED driver (two modules) :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;button_ocore&#039;&#039;&#039; : This module implements generic button driver mechanisms.&lt;br /&gt;
* &#039;&#039;&#039;wb_example_button&#039;&#039;&#039; : Like LED module, this module describes specific data for each button-component available in design.&lt;br /&gt;
&lt;br /&gt;
== Using the design ==&lt;br /&gt;
&lt;br /&gt;
All code for this design is available in ARMadeus tree, [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/firmware/wishbone_example/ firmware] (VHDL) and [http://armadeus.svn.sourceforge.net/viewvc/armadeus/trunk/target/linux/modules/fpga/wishbone_example/ software] (Linux drivers).&lt;br /&gt;
&lt;br /&gt;
=== Make the FPGA bitstream ===&lt;br /&gt;
&lt;br /&gt;
ISE Webpack is mandatory to generate the bitstream, so [[ISE_WebPack_installation_on_Linux | its installation is required]]. Once bitstream has been generated, it can be downloaded in FPGA with [[Target_Software_Installation#FPGA_firmware_installation | U-Boot]] or [[FPGA_loader | Linux]].&lt;br /&gt;
For &#039;&#039;&#039;apf51&#039;&#039;&#039;, bitstream is under the directory &#039;&#039;&#039;firmware/wishbone_example/wishbone_example51/binaries/top_wishbone_example51_lx9.bin&#039;&#039;&#039;. For apf27 and apf9328 bitstream can be found in &#039;&#039;&#039;firmware/wishbone_example/wishbone_example9328_27/bin/&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
=== Compile Linux drivers ===&lt;br /&gt;
&lt;br /&gt;
To compile the drivers for this design select them in Linux menuconfig:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make linux-menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
    Device Drivers ---&amp;gt;&lt;br /&gt;
        Armadeus specific drivers ---&amp;gt;&lt;br /&gt;
            FPGA Drivers ---&amp;gt;&lt;br /&gt;
                [*]   Board designs&lt;br /&gt;
                [*]     board drivers for wishbone example&lt;br /&gt;
                &amp;lt;M&amp;gt;       board Button&lt;br /&gt;
                &amp;lt;M&amp;gt;       board Led&lt;br /&gt;
                &amp;lt;M&amp;gt;       board irq&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
and compile them:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make linux &amp;amp;&amp;amp; make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then reflash [[Target_Software_Installation#Linux_kernel_installation | Linux]] and  [[Target_Software_Installation#rootfs_installation | rootfs]] images.&lt;br /&gt;
&lt;br /&gt;
=== Play with button and LED ===&lt;br /&gt;
&lt;br /&gt;
==== Load modules ====&lt;br /&gt;
&lt;br /&gt;
Modules must be loaded in right order with &#039;&#039;modprobe&#039;&#039; command :&lt;br /&gt;
&lt;br /&gt;
* IRQ manager :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe irq_ocore&lt;br /&gt;
# modprobe wb_example_irq_mngr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Button generic module must be loaded before board module:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe button_ocore&lt;br /&gt;
# modprobe wb_example_buttons&lt;br /&gt;
button button.0: BUTTON0: MAJOR: 249 MINOR: 0&lt;br /&gt;
BUTTON0 loaded&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* LED generic module must be loaded before board module:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# modprobe led_ocore&lt;br /&gt;
# modprobe wb_example_led&lt;br /&gt;
LED0: MAJOR: 248 MINOR: 0&lt;br /&gt;
LED module LED0 insered&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Device access ====&lt;br /&gt;
&lt;br /&gt;
Devices access are done with special caracters file. These file must be created &#039;&#039;&#039;with major and minor number given when modules are loaded&#039;&#039;&#039; (see &#039;&#039;Load modules&#039;&#039; above) :&lt;br /&gt;
&lt;br /&gt;
* Make LED access :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mknod /dev/led0 c LED_MAJOR_NUMBER 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Make button access :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# mknod /dev/button0 c BUTTON_MAJOR_NUMBER 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Replace &#039;&#039;&#039;LED_MAJOR_NUMBER&#039;&#039;&#039; and &#039;&#039;&#039;BUTTON_MAJOR_NUMBER&#039;&#039;&#039; with correct major number given when modprobe is done.&lt;br /&gt;
&lt;br /&gt;
==== Test LED ====&lt;br /&gt;
&lt;br /&gt;
A test program is available in module directory:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
target/linux/modules/fpga/board_designs/wishbone_example/wb_led/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
simply compile it with arm-linux-gcc compiler :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Download &#039;&#039;testled&#039;&#039; binary on your APF, then test it :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ./testled /dev/led0 &lt;br /&gt;
Testing led driver&lt;br /&gt;
Read 1&lt;br /&gt;
Write 0&lt;br /&gt;
Read 0&lt;br /&gt;
Write 1&lt;br /&gt;
Read 1&lt;br /&gt;
Write 0&lt;br /&gt;
Read 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
LED is blinking slowly.&lt;br /&gt;
&lt;br /&gt;
==== Test Button ====&lt;br /&gt;
&lt;br /&gt;
A test program is available in directory:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
target/linux/modules/fpga/board_designs/wishbone_example/wb_button/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
simply compile it in the directory with command:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
copy the &#039;&#039;testbutton&#039;&#039; binary in your target then launch it:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ./testbutton /dev/button0&lt;br /&gt;
Testing button driver&lt;br /&gt;
Read 1&lt;br /&gt;
Read 0&lt;br /&gt;
Read 1&lt;br /&gt;
Read 0&lt;br /&gt;
Read 1&lt;br /&gt;
Read 0&lt;br /&gt;
Read 0&lt;br /&gt;
Read 1&lt;br /&gt;
Read 0&lt;br /&gt;
Read 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Each time button is pushed or released, button state is printed out.&lt;br /&gt;
&lt;br /&gt;
==== Switching LED with button ====&lt;br /&gt;
&lt;br /&gt;
A simple program is available in wishbone example directory:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
target/linux/modules/fpga/board_designs/wishbone_example/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to switch on the LED when button is pressed.&lt;br /&gt;
&lt;br /&gt;
To compile :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make test&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
To use it, simply type (after downloaded it under your target):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# ./push-led /dev/button0 /dev/led0 &lt;br /&gt;
Blink a led pushing button&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Push the button to switch on/off the LED.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Trash_Fr:Compilateur_crois%C3%A9&amp;diff=15098</id>
		<title>Trash Fr:Compilateur croisé</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Trash_Fr:Compilateur_crois%C3%A9&amp;diff=15098"/>
		<updated>2022-06-30T10:42:19Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Récupération de l&amp;#039;archive Armadeus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Comment installer le kit de développement du projet Armadeus pour Linux/Window$&lt;br /&gt;
&lt;br /&gt;
{{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
==Prérequis pour une installation Window$==&lt;br /&gt;
Pour développer des programme pour la carte Armadeus, il vous faudra installer Cygwin dans un premier temps: http://www.cygwin.com.&lt;br /&gt;
Choisissez une installation par défaut et ajoutez les paquets suivants en cliquant une fois sur l&#039;icône &amp;quot;skip&amp;quot;:&lt;br /&gt;
* devel  -&amp;gt; subversion &lt;br /&gt;
* devel  -&amp;gt; make&lt;br /&gt;
* devel  -&amp;gt; patchutils&lt;br /&gt;
* devel  -&amp;gt; gcc-core&lt;br /&gt;
* devel  -&amp;gt; gcc-g++&lt;br /&gt;
* devel  -&amp;gt; gdb&lt;br /&gt;
* devel  -&amp;gt; binutils&lt;br /&gt;
* devel  -&amp;gt; libncurses-devel&lt;br /&gt;
* devel  -&amp;gt; gettext-devel&lt;br /&gt;
* devel  -&amp;gt; bison&lt;br /&gt;
* devel  -&amp;gt; flex&lt;br /&gt;
* system -&amp;gt; util-linux&lt;br /&gt;
* web    -&amp;gt; wget&lt;br /&gt;
&lt;br /&gt;
==Prérequis pour une installation Linux==&lt;br /&gt;
Vérifiez que vous avez les paquets suivants installés dans votre distribution:&lt;br /&gt;
* cvs (fixme)&lt;br /&gt;
* gettext&lt;br /&gt;
* libncurses&lt;br /&gt;
* svn&lt;br /&gt;
* wget&lt;br /&gt;
* autoconf &lt;br /&gt;
* zlib1g-dev&lt;br /&gt;
* libacl1-dev&lt;br /&gt;
&lt;br /&gt;
Sous Debian, vous pouvez utiliser la commande suivante:&lt;br /&gt;
 $ sudo apt-get install autoconf automake bison flex g++ gettext libncurses5-dev liblzo1 liblzo-dev liblzo2-2 liblzo2-dev \&lt;br /&gt;
               patch subversion texinfo wget zlib1g-dev libacl1 libacl1-dev&lt;br /&gt;
&lt;br /&gt;
Il a été rapporté que l&#039;installation se déroule bien sur: Fedora Core 3, Fedora Core 4, Debian Sarge, Ubuntu Edgy&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Ouvrez un shell et suivez la procédure suivante:&lt;br /&gt;
&lt;br /&gt;
===Récupération de l&#039;archive Armadeus===&lt;br /&gt;
* Si vous voulez la derniere version du logiciel atmadeus, récupérez les fichiers requis depuis le dépôt:&lt;br /&gt;
 $ git clone git://git.code.sf.net/p/armadeus/code armadeus  &lt;br /&gt;
&lt;br /&gt;
Un répertoire appelé armadeus/ sera créé sur votre disque dur et contiendra tous les fichiers dont vous aurez besoin.&lt;br /&gt;
* Sinon, téléchargez l&#039;archive d&#039;installation depuis gitlab: https://gitlab.com/armadeus/armadeus-bsp/-/tags et décompressez la dans un répertoire avec au moins 2 Go d&#039;espace libre.&lt;br /&gt;
&lt;br /&gt;
===Configurez le générateur de distribution Armadeus :===&lt;br /&gt;
 $ cd armadeus/&lt;br /&gt;
 $ make menuconfig  (ou juste make la première fois).&lt;br /&gt;
Ceci lancera la configuration du Buildroot.&lt;br /&gt;
Dans le menu Board Support Option, sélectionnez votre carte armadeus (apf/apm9328), la taille de la RAM (16/32MB) et ainsi de suite... &lt;br /&gt;
* Si vous avez besoin de la LIBSTD C++, ajoutez ceci dans le menuconfig/options du toolchain/options additionelles de gcc : &lt;br /&gt;
--disable-libstdcxx-pch. Ceci désactivera l&#039;utilisation des en-êtes du précompilateur.&lt;br /&gt;
*Quittez l&#039;outil de configuration en enregistrant votre config.&lt;br /&gt;
&lt;br /&gt;
===Lancez le build===&lt;br /&gt;
 $ make&lt;br /&gt;
La chaine de compile, le noyau linux et le système de fichier sont construits automatiquement. Durant cette procédure, plusieurs fichiers seront téléchargés depuis Internet. S&#039;il vous plait, attendez un peu... cela prend au moins une heure la première fois!&lt;br /&gt;
&lt;br /&gt;
===Problèmes:===&lt;br /&gt;
* &amp;lt;strike&amp;gt;crash de la compilation avec uclibc-0.9.28: lancez make à nouveau&amp;lt;/strike&amp;gt; should be fixed now&lt;br /&gt;
* &amp;lt;strike&amp;gt;crash de la compilation avec gdb 6.3: lancez make à nouveau&amp;lt;/strike&amp;gt; should be fixed now&lt;br /&gt;
* &amp;lt;strike&amp;gt;crash de la compilation avec linux 2.6.12: lancez make à nouveau&amp;lt;/strike&amp;gt; should be fixed now&lt;br /&gt;
&lt;br /&gt;
===Appréciez le résultat===&lt;br /&gt;
Les fichiers binaires générés se trouvent dans le sous-répertoire armadeus/buildroot/binaries/armadeus:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;u-boot.brec&#039;&#039;&#039; (peut être utilisé en mode bootstrap si U-Boot n&#039;est pas installé ou ne marche plus. Dans ce cas regardez la page du [[BootLoader]] )&lt;br /&gt;
* &#039;&#039;&#039;u-boot.bin&#039;&#039;&#039; (à télécharger depuis U-Boot, regardez la page [[BootLoader]] &amp;quot;Update u-boot&amp;quot;)&lt;br /&gt;
* &#039;&#039;&#039;linux-kernel-2.6.xx-arm.bin&#039;&#039;&#039; (à télécharger depuis U-Boot, regardez InstallLinux)&lt;br /&gt;
* &#039;&#039;&#039;rootfs.arm.jffs2&#039;&#039;&#039; (à télécharger depuis U-Boot, regardez InstallFileSystem?)&lt;br /&gt;
* &#039;&#039;&#039;rootfs.arm.tar&#039;&#039;&#039; (pour un rootfs par NFS ou sur MMC/SD, regardez RootNFS)&lt;br /&gt;
&lt;br /&gt;
==Pour garder votre copie de travail à jour par rapport au dépôt Armadeus==&lt;br /&gt;
 $ svn update&lt;br /&gt;
Ceci mettra à jour votre répertoire de travail à la dernière release.&lt;br /&gt;
&lt;br /&gt;
Note: si &amp;quot;svn update&amp;quot; échoue à cause d&#039;un répertoire ou fichier qui existe déjà, faites ceci:&lt;br /&gt;
 $ rm -rf &amp;lt;le_répertoire/ou_le_fichier&amp;gt;&lt;br /&gt;
 $ svn update&lt;br /&gt;
&lt;br /&gt;
Vous pouvez faire un:&lt;br /&gt;
 $ make defconfig&lt;br /&gt;
pour avoir récupérer les paramètres par défaut puis un:&lt;br /&gt;
 $ make menuconfig&lt;br /&gt;
pour apporter vos modifications personnelles&lt;br /&gt;
&lt;br /&gt;
Vous devez faire un &#039;&#039;&#039;make&#039;&#039;&#039; pour reconstruire les fichiers binaires et ensuite chargez les fichiers binaires sur votre cible/carte.&lt;br /&gt;
&lt;br /&gt;
Note: Si finalement rien ne marche alors que ça marchait avant la dernière mise à jour,&lt;br /&gt;
vous pouvez appliquer la procédure suivante:&lt;br /&gt;
 $ rm -rf buildroot&lt;br /&gt;
 $ rm Makefile&lt;br /&gt;
 $ svn update&lt;br /&gt;
 $ make&lt;br /&gt;
 $ make&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=FPGA_and_led&amp;diff=15097</id>
		<title>FPGA and led</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=FPGA_and_led&amp;diff=15097"/>
		<updated>2022-06-30T10:41:29Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Note| This article is only for &#039;&#039;&#039;apf9328&#039;&#039;&#039; module board}}&lt;br /&gt;
&lt;br /&gt;
This project is intented for people who are new to VHDL. Code for this design can be found [https://gitlab.com/armadeus/armadeus-bsp on armadeus gitlab] into firmware/leds/button_led/. &lt;br /&gt;
&lt;br /&gt;
We will connect a switch and a led to the FPGA and use some VHDL code to toggle the led state each time the switch is pressed.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Some usefull informations:&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The main FPGA page [http://www.armadeus.com/wiki/index.php?title=FPGA] of the armadeus wiki.&lt;br /&gt;
&lt;br /&gt;
This document [http://www.cs.uml.edu/~fredm/courses/91.548-spr06/files/qst.pdf] gives a lot of usefull information on how to use ISE Webpack.&lt;br /&gt;
&lt;br /&gt;
Page 9 of this document shows the devlight pinout matrix: [http://www.armadeus.com/downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight.pdf]&lt;br /&gt;
&lt;br /&gt;
Pages 28 and 29 of the APF datasheet shows the mapping of the devlight pinouts with the FPGA pinouts :[http://www.armadeus.com/downloads/apf9328/documentation/dataSheet_APF9328.pdf]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Schematic&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[Image:schema.png]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anatomy of the circuit&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The led_top.vhd is a VHDL file where the components of the circuit are instantiated and connected between them.&lt;br /&gt;
&lt;br /&gt;
The functional diagram of the circuit is :&lt;br /&gt;
&lt;br /&gt;
[[Image:led_top.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benoît Canet / benoit on #armadeus&lt;br /&gt;
[[Category: FPGA]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Fr:FAQ&amp;diff=15096</id>
		<title>Fr:FAQ</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Fr:FAQ&amp;diff=15096"/>
		<updated>2022-06-30T10:40:40Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Où sont les sources ? */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Questions générales==&lt;br /&gt;
&lt;br /&gt;
===Quel est le but du &amp;quot;projet Armadeus&amp;quot; ?===&lt;br /&gt;
Le but de ce projet est de permettre à tous de développer facilement des systèmes embarqués à base de Logiciel/matériel Libres.&lt;br /&gt;
&amp;quot;Quand tous les systèmes embarqués tourneront sur des Logiciels Libres, la vie n&#039;en sera que meilleure ! ;-)&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
===Que signifie &amp;quot;Armadeus&amp;quot; ?===&lt;br /&gt;
&amp;quot;Armadeus&amp;quot; est la contraction de &amp;quot;ARM&amp;quot; et &amp;quot;Amadeus&amp;quot;. En effet nous avons choisi l&#039;architecture ARM pour sa simplicité et son efficacité, et nos cartes sont aussi douées pour faire tourner des systèmes embarqués que ne l&#039;était Mozart pour composer de la musique (:-) ). Bon, le projet Armadeus a aussi surtout vu le jour en 2006, année du 250ème anniversaire de la naissance de Mozart.&lt;br /&gt;
&lt;br /&gt;
===Comment obtenir de l&#039;aide ?===&lt;br /&gt;
[[Help:Contents | Page détaillant comment obtenir de l&#039;aide]]&amp;lt;br&amp;gt;&lt;br /&gt;
Si vous habitez en France, nous avons des membres à Besançon, Montbéliard &amp;amp; Mulhouse qui peuvent vous aider (suivant leur temps libre). Pour les membres Suisses, ils peuvent éventuellement obtenir de l&#039;aide à Bâle, Lausanne &amp;amp; Zürich.&amp;lt;br&amp;gt;&lt;br /&gt;
===Quelle est la relation entre http://www.armadeus.org et http://www.armadeus.com ? Y a t&#039;il une société derrière l&#039;assoc existante ?===&lt;br /&gt;
&lt;br /&gt;
http://armadeus.com&amp;gt; est le site web dédié à la société Armadeus Systems. Elle développe et produit les cartes qui sont ensuite proposées aux membres de l&#039;association à des tarifs réduits (usage non commercial uniquement !). &lt;br /&gt;
&lt;br /&gt;
Historiquement l&#039;association Armadeus Project a été fondée avant la société Armadeus Systems. &lt;br /&gt;
Après un an d&#039;existence, nous avons vite vu que les objectifs que nous nous étions fixés ne pouvaient être atteint sans un investissement plus conséquent en temps et en moyens financiers.&lt;br /&gt;
C&#039;est la raison pour laquelle la société à été fondée.&lt;br /&gt;
&lt;br /&gt;
L&#039;association a été crée par plaisir et aussi afin d&#039;aider les particuliers et les universitaires à développer des systèmes embarqués Linux. L&#039;association est à but non lucratif et fonctionne essentiellement grâce au temps investit par les membres fondateurs.&lt;br /&gt;
&lt;br /&gt;
Les développements (hardware/firmware/software) effectués au sein de l&#039;association sont sous licence GPL/LGPL. Les cartes electroniques financées par l&#039;association ne peuvent être utilisées à des fins commerciales.&lt;br /&gt;
&lt;br /&gt;
==Questions sur le Matériel==&lt;br /&gt;
&lt;br /&gt;
===De quoi est composée la carte Armadeus APF9328 ?===&lt;br /&gt;
Cette carte est architecturée autour d&#039;un [http://www.freescale.com/files/32bit/doc/ref_manual/MC9328MXLRM.pdf processeur i.MXL de chez Freescale] (ex Motorola). Ce processeur 32 bits contient un coeur ARM920T cadencé à 192Mhz et possède les périphériques intégrés suivant:&lt;br /&gt;
* 1 contrôleur LCD (TFT, CSTN, STN) jusqu&#039;à 640x480 avec contrôle de rétro-éclairage&lt;br /&gt;
* 1 port USB 1.1 device&lt;br /&gt;
* 2 bus SPI &lt;br /&gt;
* 1 bus I2C&lt;br /&gt;
* 2 port séries asynchrones rapides&lt;br /&gt;
* 2 ports séries synchrones (SSI)&lt;br /&gt;
* 1 contrôleur MMC/SD (mode 4bits)&lt;br /&gt;
* 1 PWM (capable de générer des sons)&lt;br /&gt;
* 1 interface pour capteur CCD&lt;br /&gt;
* un mode bootstrap série (plus besoin de JTAG pour programmer le bootloader)&lt;br /&gt;
* un grands nombre de GPIOs (entrées/sorties), dépendant des périphériques configurés&lt;br /&gt;
&lt;br /&gt;
Voici un lien pour avoir plus d&#039;informations: [http://www.armadeus.com/downloads/apf9328/documentation/dataSheet_APF9328.pdf]&lt;br /&gt;
&lt;br /&gt;
Sur notre carte l&#039;i.MXL est associé à:&lt;br /&gt;
* 16Mo de SDRAM rapide (bus 32 bits)&lt;br /&gt;
* 16Mo de Flash NOR (bus 16 bits)&lt;br /&gt;
* un contrôleur 10/100Mbits Ethernet Davicom DM9000&lt;br /&gt;
* un FPGA Xilinx Spartan3 200k portes (optionnel)&lt;br /&gt;
* un CAN (SPI) et un CNA (I2C) (optionnels)&lt;br /&gt;
* des convertisseurs de niveau série (console), PHY USB et PHY Ethernet&lt;br /&gt;
* 2 connecteurs donnant accès aux signaux principaux&lt;br /&gt;
&lt;br /&gt;
===Qu&#039;est-ce que la carte APF9328DevLight ?===&lt;br /&gt;
Les cartes APF9328 ont été conçues pour être aussi petites que possible et être capables de s&#039;intégrer dans n&#039;importe quel système embarqué. Une carte APF9328 n&#039;est donc pas utilisable seule. Considérez la plutôt comme un module processeur pouvant se connecter partout. Pour développer sur les cartes APF9328 vous pouvez soit développer votre propre &amp;quot;carte fille&amp;quot;, soit utiliser celles que nous avons développées pour nos propres besoins.&lt;br /&gt;
&lt;br /&gt;
Actuellement seule la carte &amp;quot;DevLight&amp;quot; est disponible en quantité. Elle contient:&lt;br /&gt;
* un connecteur série&lt;br /&gt;
* un connecteur USB&lt;br /&gt;
* un connecteur Ethernet&lt;br /&gt;
* une zone prototype de test&lt;br /&gt;
* un connecteur microSD&lt;br /&gt;
* un zone préroutée permettant de connecter un TFT (MTFT035 / LQ043)&lt;br /&gt;
* une alimentation régulée avec une entrée standard&lt;br /&gt;
&lt;br /&gt;
Voici un lien pour avoir plus d&#039;informations&lt;br /&gt;
[http://www.armadeus.com/downloads/apf9328DevLight/documentation/dataSheet_APF9328_DevLight.pdf]&lt;br /&gt;
&lt;br /&gt;
===Qu&#039;est-ce que la carte APF9328DevFull ?===&lt;br /&gt;
La carte &amp;quot;DevFull&amp;quot; sera la version sur-vitaminée de la DevLight. Les premiers prototypes sont en cours de validation (sortie prévue mi avril 2008). Cette carte de développement contiendra:&lt;br /&gt;
* un contrôleur audio + avec interface écran tactile&lt;br /&gt;
* un contrôleur de bus CAN (option)&lt;br /&gt;
* un connecteur MMC/SD&lt;br /&gt;
* une RTC sauvegardée par batterie (option)&lt;br /&gt;
* un connecteur LCD compatible avec les TFT (LQ043 / MTFT035)&lt;br /&gt;
* un host USB 2.0 Fullspeed (2 ports)&lt;br /&gt;
* une sortie vidéo (PAL/NTSC)&lt;br /&gt;
* une mémoire externe pour le FPGA (option)&lt;br /&gt;
* une alimentation à découpage 2.5A avec une plage d&#039;entrée étendue&lt;br /&gt;
* de nombreux connecteurs permettant d&#039;accèder facilement à tous les signaux de la carte&lt;br /&gt;
&lt;br /&gt;
===De quel matériel ai-je besoin pour commencer à développer ?===&lt;br /&gt;
En plus de la carte APF9328 et d&#039;une carte de développement (type DevLight), vous aurez besoin:&lt;br /&gt;
* d&#039;une alimentation stabilisée délivrant une tension &amp;gt;= 5v,&lt;br /&gt;
* d&#039;un cable série Null-Modem et d&#039;un port série sur votre PC (ou d&#039;un adaptateur USB &amp;lt;-&amp;gt; série pour certains portables),&lt;br /&gt;
* d&#039;un routeur Ethernet pour monter un réseau local entre votre PC et la carte, ainsi que des cables Ethernet adequat,&lt;br /&gt;
* d&#039;un cable USB, type ceux utilisés pour les imprimantes (si vous voulez utiliser la fonctionnalité USB),&lt;br /&gt;
* et éventuellement d&#039;un fer à souder avec un multimètre.&lt;br /&gt;
* enfin un Adapteur USB/Série si vous n&#039;avez pas de port série sur votre ordinateur (C&#039;est souvent le cas des ordinateurs portables récents)&lt;br /&gt;
&lt;br /&gt;
===Où trouver ce matériel===&lt;br /&gt;
* Sur des sites marchands d&#039;électronique comme http://www.conrad.fr/ ou http://www.selectronic.fr/&lt;br /&gt;
* Exemples:&lt;br /&gt;
** Alimentation stabilisée:&lt;br /&gt;
***http://www.selectronic.fr/article.asp?article_ref_entier=11.1063-9999&lt;br /&gt;
***http://www.selectronic.fr/article.asp?article_ref_entier=10.0854-9999&lt;br /&gt;
** Adaptateur USB/Série:&lt;br /&gt;
***http://www.selectronic.fr:80/article.asp?article_ref_entier=90.8014-6&lt;br /&gt;
***http://www.pearl.fr/cables/cables-informatiques/usb/interface-usb-vers-1-port-serie_PX3034.html&lt;br /&gt;
***http://www.conrad.fr/webapps/adaptateur_serie.html&lt;br /&gt;
** Câble série null modem (RS232 9F/9F) croisé:&lt;br /&gt;
***http://www.selectronic.fr:80/article.asp?article_ref_entier=90.8502-9999&lt;br /&gt;
&lt;br /&gt;
===Est ce que vos cartes sont compatibles avec la norme RoHS ?===&lt;br /&gt;
Oui&lt;br /&gt;
&lt;br /&gt;
==Questions sur le Logiciel==&lt;br /&gt;
&lt;br /&gt;
===Sur quelles briques de Logiciels Libres repose le projet ?===&lt;br /&gt;
* U-Boot pour le bootloader&lt;br /&gt;
* Linux 2.6 pour le système d&#039;exploitation&lt;br /&gt;
* Buildroot pour la génération du &amp;quot;rootfs&amp;quot;, avec toute sa suite logicielle&lt;br /&gt;
* Qt/Embedded OpenSource (Qtopia) ou SDL pour l&#039;interface graphique&lt;br /&gt;
* et nos programmes à nous :-)&lt;br /&gt;
&lt;br /&gt;
===Où sont les sources ?===&lt;br /&gt;
Notre projet est hébergé sur gitlab: https://gitlab.com/armadeus/armadeus-bsp&lt;br /&gt;
&lt;br /&gt;
===Quelles sont les connaissances nécessaires pour développer ?===&lt;br /&gt;
* connaissances de base des systèmes Unix/Linux&lt;br /&gt;
* les bases en C/C++&lt;br /&gt;
* des notions d&#039;électronique sont recommandées&lt;br /&gt;
* nous essayons de faire en sorte que toutes les explications données ne soient pas réservées aux &amp;quot;hackers&amp;quot;&lt;br /&gt;
&lt;br /&gt;
===Quelles sont les performances de votre système ?===&lt;br /&gt;
[[Performances]]&lt;br /&gt;
&lt;br /&gt;
===Au secours j&#039;ai besoin d&#039;aide===&lt;br /&gt;
[[Help:Contents]]&lt;br /&gt;
&lt;br /&gt;
{{LanguageBar|FAQ|FAQ|FAQ}}&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=WindowsInstall&amp;diff=15095</id>
		<title>WindowsInstall</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=WindowsInstall&amp;diff=15095"/>
		<updated>2022-06-30T10:39:58Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Need_Update}}&lt;br /&gt;
&lt;br /&gt;
How-To install Armadeus Software Development Kit for Window$&lt;br /&gt;
&lt;br /&gt;
The toolchain can also be built on a windows system. To do this, VMWare(a virtualization tool) has to be installed first.&lt;br /&gt;
&lt;br /&gt;
==Prerequisites for Window$ installation==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span style=&amp;quot;color:red&amp;quot;&amp;gt;&lt;br /&gt;
Be sure to have at least 3Go on, your hard disk before starting the installation&lt;br /&gt;
&amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
*Install VMWare workstation for evaluation: http://www.vmware.com/download/&lt;br /&gt;
Remark: you need to be registered to download the evaluation... &lt;br /&gt;
&lt;br /&gt;
*Download an Ubuntu ISO distribution (eg: Feisty) and burn a CD&lt;br /&gt;
*Start VMWare and create a new virtual machine (File-&amp;gt;New)&lt;br /&gt;
*Configure the virtual machine (memory space, RAM...)&lt;br /&gt;
*Place the Ubuntu ISO CD in the drive&lt;br /&gt;
*Start the virtual machine&lt;br /&gt;
*Once the Ubuntu desktop appears, click install&lt;br /&gt;
*At the end of the installation, quit Ubuntu (shutdown)&lt;br /&gt;
*Now you have a complete Linux OS.&lt;br /&gt;
Linux can be started by double clicking on the .vmx file.&lt;br /&gt;
&lt;br /&gt;
As the VMWare workstation is only valid a few weeks, you will need to install the VMWare player which is free (http://www.vmware.com/download/player/). &lt;br /&gt;
&lt;br /&gt;
Depending on the linux distribution you have installed, several packages have to be installed before compiling the Armadeus package. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;u&amp;gt;Take a look at the [[LinuxInstall]] for the rest of the procedure.&amp;lt;/u&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Cygwin user ONLY==&lt;br /&gt;
&lt;br /&gt;
Choose the default installation (nothing to modify) and add the following packages by clicking one time on the &amp;quot;skip&amp;quot; icon:&lt;br /&gt;
* devel  -&amp;gt; automake&lt;br /&gt;
* devel  -&amp;gt; binutils&lt;br /&gt;
* devel  -&amp;gt; bison&lt;br /&gt;
* devel  -&amp;gt; flex&lt;br /&gt;
* devel  -&amp;gt; gcc-core&lt;br /&gt;
* devel  -&amp;gt; gcc-g++&lt;br /&gt;
* devel  -&amp;gt; gdb&lt;br /&gt;
* devel  -&amp;gt; gettext-devel&lt;br /&gt;
* devel  -&amp;gt; libncurses-devel&lt;br /&gt;
* devel  -&amp;gt; make&lt;br /&gt;
* devel  -&amp;gt; patchutils&lt;br /&gt;
* devel  -&amp;gt; subversion &lt;br /&gt;
* python -&amp;gt; python an interactive interpreter&lt;br /&gt;
* system -&amp;gt; util-linux&lt;br /&gt;
* web    -&amp;gt; wget&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
&lt;br /&gt;
Open a cygwin shell and follow this procedure:&lt;br /&gt;
&lt;br /&gt;
==Get Armadeus software==&lt;br /&gt;
* If you are a user:&lt;br /&gt;
then download the installation archive from [gitlab https://gitlab.com/armadeus/armadeus-bsp/-/tags] and detar it wherever you want.&lt;br /&gt;
 $ tar xjvf armadeusArchiveName.tar.bz2&lt;br /&gt;
* If you are a registered developper:&lt;br /&gt;
In cygwin, check out the required files from the SVN repository:&lt;br /&gt;
 $ git clone git://git.code.sf.net/p/armadeus/code armadeus armadeus&lt;br /&gt;
A directory named armadeus/ will be created on your hard-disk and will contain all the files you need.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;strong&amp;gt;Remarks&amp;lt;/strong&amp;gt;: &lt;br /&gt;
*The armadeus directory has to be placed within the cygwin directory&lt;br /&gt;
*&amp;lt;strong&amp;gt;Do not use spaces&amp;lt;/strong&amp;gt; in the directory name !&lt;br /&gt;
*Write access are limited to the integrators&lt;br /&gt;
&lt;br /&gt;
* If it is your &amp;lt;strong&amp;gt;first toolchain installation&amp;lt;/strong&amp;gt; , the following script has to be executed in order to patch some cygwin files and add the required fake user for the rootfs generation  &lt;br /&gt;
 $ ./armadeus/host/patches/cygwin/run&lt;br /&gt;
&lt;br /&gt;
==Configure Armadeus software==&lt;br /&gt;
 $ cd armadeus/&lt;br /&gt;
 $ make menuconfig  (or just make the first time).&lt;br /&gt;
This will launch the buildroot configuration.&lt;br /&gt;
in Board Support Option menu, select your armadeus board (apf/apm9328), the RAM size (16/32MB) and so on... &lt;br /&gt;
* If you need the LIBSTD C++, add this in the menuconfig/toolchain options/additional gcc options: &lt;br /&gt;
--disable-libstdcxx-pch. This will disable the use of the precompiler headers&lt;br /&gt;
* Exit the configuration tool and save your config&lt;br /&gt;
&lt;br /&gt;
==Launch build==&lt;br /&gt;
 $ make&lt;br /&gt;
The toolchain is built automatically. During this procedure, several files are downloaded from the web. Please wait for a while.... it takes at least one hour for the first run!&lt;br /&gt;
&lt;br /&gt;
===Known Problems===&lt;br /&gt;
* none for the moment :)&lt;br /&gt;
&lt;br /&gt;
==Enjoy the result==&lt;br /&gt;
The generated binary files can be found in the subdirectory armadeus/software/buildroot:&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;u-boot.brec&#039;&#039;&#039; (can be used with the bootstrap, if U-Boot is not installed or not working, see [[BootLoader]] page)&lt;br /&gt;
* &#039;&#039;&#039;u-boot.bin&#039;&#039;&#039; (for download with uboot, see [[BootLoader]] &amp;quot;Update u-boot&amp;quot; page)&lt;br /&gt;
* &#039;&#039;&#039;linux-kernel-2.6.xx-arm.bin&#039;&#039;&#039; (for download with uboot, see InstallLinux)&lt;br /&gt;
* &#039;&#039;&#039;rootfs.arm.jffs2&#039;&#039;&#039; (for download with uboot, see InstallFileSystem?)&lt;br /&gt;
* &#039;&#039;&#039;rootfs.arm.tar&#039;&#039;&#039; (for an nfsroot, see RootNFS?)&lt;br /&gt;
&lt;br /&gt;
==To keep your copy up-to-date within the armadeus tree==&lt;br /&gt;
 $ svn update&lt;br /&gt;
This will update your working directory to the latest release.&lt;br /&gt;
&lt;br /&gt;
Note: if &amp;quot;svn update&amp;quot; fails because a directory or a file already exists, then do:&lt;br /&gt;
 $ rm -rf &amp;lt;this-directory/file&amp;gt;&lt;br /&gt;
 $ svn update&lt;br /&gt;
&lt;br /&gt;
You can do a:&lt;br /&gt;
 $ make defconfig&lt;br /&gt;
to have the latest features automatically activated and a &lt;br /&gt;
 $ make menuconfig&lt;br /&gt;
to set again your personnal parameters (SDRAM size...).&lt;br /&gt;
&lt;br /&gt;
You have to do a &#039;&#039;&#039;make&#039;&#039;&#039; to rebuild binary files end then upload the binary files to your target.&lt;br /&gt;
&lt;br /&gt;
Note: if definitively everything goes wrong while it worked before the last update.&lt;br /&gt;
You can apply the following procedure:&lt;br /&gt;
 $ make dirclean&lt;br /&gt;
 $ rm -rf software/buildroot&lt;br /&gt;
 $ rm Makefile&lt;br /&gt;
 $ svn update&lt;br /&gt;
 $ make&lt;br /&gt;
 $ make&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=LinuxInstall&amp;diff=15094</id>
		<title>LinuxInstall</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=LinuxInstall&amp;diff=15094"/>
		<updated>2022-06-30T10:38:44Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Get Armadeus software */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;big&amp;gt;How-To install Armadeus Software Development Kit (SDK) on Linux systems. This SDK is currently based on the (excellent) [http://buildroot.net/ Buildroot].&amp;lt;/big&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The installation was successfully tested on the following distributions:&lt;br /&gt;
* Debian Lenny (5.0),  Squeeze (6.0.x), Wheezy (7.2), Jessie (8.0)&lt;br /&gt;
* X/KUbuntu Edgy Eft (6.10), Gutsy Gibbon (7.10), Hardy Heron (8.04) &amp;amp; Jaunty Jackalope (9.04)&lt;br /&gt;
* Ubuntu  Lucid Lynx (10.04) (32 &amp;amp; 64bits), 12.04 LTS (32 &amp;amp; 64bits), 13.10 (32 &amp;amp; 64bits), 14.04, 15.04 &amp;amp; 16.04&lt;br /&gt;
* LUbuntu 17.10&lt;br /&gt;
* Mandriva 2006&lt;br /&gt;
* Fedora Core 3 &amp;amp; 4, Fedora 10, Laughlin (14)&lt;br /&gt;
* Red Hat Enterprise 5.2&lt;br /&gt;
* Gentoo 10.0 (32 &amp;amp; 64 bits)&lt;br /&gt;
* SuSE 10.1, OpenSUSE 11.3 - 12.3&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The installation may fail on:&#039;&#039;&#039;&lt;br /&gt;
* Ubuntu Karmic Koala (9.10): tslib fails to build&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;APF28 requirements:&#039;&#039;&#039;&lt;br /&gt;
* APF28 board requires a Linux distribution with (GNU) tar version 1.20 or later to compile the Linux Kernel - Please update or upgrade your Linux distribution. &lt;br /&gt;
&lt;br /&gt;
==Prerequisites for Linux installation==&lt;br /&gt;
{{Note|From here we assume that your Linux system has a &#039;&#039;make&#039;&#039; version &#039;&#039;&#039;greater or equal to&#039;&#039;&#039; 3.81. To check it: &lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make -v&lt;br /&gt;
GNU Make 3.81&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
For armadeus up to 3.4, make should be &#039;&#039;&#039;strictly&#039;&#039;&#039; make-3.81 (make-3.82 is too strict). A Fedora (14 and 15) -specific solution can be found later; other recent distributions such as mageia1 also have make-3.82, and a generic solution, based on configure&amp;amp;&amp;amp; make&amp;amp;&amp;amp; sudo make install can be used to install make-3.81 (which can be retrieved from http://ftp.gnu.org/gnu/make/make-6.81.tar.gz) in /usr/local/bin (and , according to one&#039;s PATH, make 3-81 can be invoked directly or as /usr/local/bin/make). &lt;br /&gt;
 &lt;br /&gt;
Depending on your distribution, some additional packages are required:&lt;br /&gt;
&lt;br /&gt;
===Debian/Ubuntu based systems===&lt;br /&gt;
[[Ubuntu/Debian installation prerequisites]]&lt;br /&gt;
&lt;br /&gt;
===Mandriva based systems=== &lt;br /&gt;
[[Mandriva installation prerequisites]]&lt;br /&gt;
&lt;br /&gt;
===RPM-based systems (RedHat, Fedora, CentOS)===&lt;br /&gt;
[[RedHat/Fedora installation prerequisites]]&lt;br /&gt;
&lt;br /&gt;
===OpenSuse based systems===&lt;br /&gt;
[[OpenSuse installation prerequisites]]&lt;br /&gt;
&lt;br /&gt;
===Gentoo based systems===&lt;br /&gt;
[[Gentoo installation prerequisites]]&lt;br /&gt;
&lt;br /&gt;
==Get Armadeus software==&lt;br /&gt;
* &#039;&#039;&#039;If you are a &amp;quot;careful&amp;quot; user&#039;&#039;&#039;, then download [https://gitlab.com/armadeus/armadeus-bsp/-/tags the latest stable installation tarball from gitlab] and detar it wherever you want:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ tar xjvf armadeus-7.0.tar.bz2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;If you want the latest snapshot or if you have an [[OPOS6UL]]&#039;&#039;&#039;, the whole development tree can be checked out from our [[GIT]] repository.&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ git clone git@gitlab.com:armadeus/armadeus-bsp.git armadeus&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* depending on your previous choice, a directory named &#039;&#039;armadeus/&#039;&#039; or &#039;&#039;armadeus-7.0/&#039;&#039; will be created on your hard-disk and will contain all the files you need.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Remarks&#039;&#039;&#039;:&lt;br /&gt;
* &#039;&#039;&#039;Do not use spaces&#039;&#039;&#039; in the directory name !&lt;br /&gt;
* &#039;&#039;&#039;Do not use a directory path beginning with /usr.&#039;&#039;&#039; It is a known bug of Buildroot (until BR2012.11, at 2012-12).&lt;br /&gt;
* GIT write/push accesses are limited to the integrators ([[User:JulienB|JulienB]], [[User:SebastienSz|SebastienSz]], [[User:Jorasse|Jorasse]], [[User:FabienM|FabienM]], [[User:SebastienR|SebastienR]])&lt;br /&gt;
&lt;br /&gt;
==Configure SDK/BSP options==&lt;br /&gt;
{{Note|If you are new to Armadeus and have troubles compiling armadeus-5.x/armadeus-6.x using the following instructions, you may find some hints here: [[Releases]]}}&lt;br /&gt;
*Go to the directory where you put the Armadeus sources:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ cd armadeus/  (or armadeus-7.0/)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*The first time you compile an Armadeus distribution you have to specify the target (here the [[APF9328]]) to work with. &lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make apf9328_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This command reloads the default configuration to support your target and automatically start a Buildroot&#039;s configuration menu.&lt;br /&gt;
&lt;br /&gt;
* Current valid default configurations are:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
apf9328_defconfig  apf27_defconfig  pps_defconfig  apf28_defconfig  apf51_defconfig  pps51_defconfig apf6_defconfig apf6legacy_defconfig opos6ul_defconfig opos6ulnano_defconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note| To get the full list of available config just type make, it will download buildroot and print following message :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ make&lt;br /&gt;
[...]&lt;br /&gt;
 System not configured. Use make &amp;lt;board&amp;gt;_defconfig &lt;br /&gt;
 armadeus valid configurations are:                &lt;br /&gt;
     opos6ul_legacy_defconfig opos6ulnano-preempt-rt_defconfig apf6_defconfig pps_defconfig opos6ultest_defconfig apf51_defconfig opos6ulsp_defconfig apf6dawnsmalllinux_defconfig apf27preempt-rt_defconfig apf27test_defconfig apf27_defconfig apf28legacytest_defconfig opos6ullegacy-4.14_defconfig opos6ulnano_defconfig apf28legacy_defconfig apf6mainline-4.19_defconfig opos6ul_defconfig apf6legacy_defconfig apf6xenomai_defconfig apf51test_defconfig opos6ul-preempt-rt_defconfig apf6legacy-preempt-rt_defconfig apf6legacy-4.1_defconfig pps51_defconfig apf6mainline-4.9_defconfig apf28test_defconfig apf28_defconfig apf6mediacenter_defconfig opos6ullegacy-4.9_defconfig opos6ul_recovery_defconfig apf6failsafe_defconfig apf6test_defconfig opos6ullegacy-4.1_defconfig apf27xenomai_defconfig&lt;br /&gt;
                                                   &lt;br /&gt;
Makefile:129: recipe for target &#039;/usr/local/projects/apf6_sp_419/buildroot/.configured&#039; failed&lt;br /&gt;
make: *** [/usr/local/projects/apf6_sp_419/buildroot/.configured] Error 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
For PPS boards, please see [[APF27_PPS]] or [[PPS51]] Wiki pages, as these boards have specific build.&lt;br /&gt;
&lt;br /&gt;
* After some downloads, you will get the Buildroot configuration interface:&lt;br /&gt;
&lt;br /&gt;
{{Note|If you ever made changes during the following steps, at any time, you can reload the default configuration with:&lt;br /&gt;
 $ make xxx_defconfig       (xxx depending on your module name)}}&lt;br /&gt;
&lt;br /&gt;
[[Image:Menuconfig3.png]]&amp;lt;br&amp;gt;&lt;br /&gt;
*If you are not familiar with Buildroot here are some tips:&lt;br /&gt;
*# you can move the highlighted item with the &amp;quot;up&amp;quot;/&amp;quot;down&amp;quot; arrow keys&lt;br /&gt;
*# with the &amp;quot;left&amp;quot;/&amp;quot;right&amp;quot; arrow keys you can choose between &amp;quot;Select&amp;quot;, &amp;quot;Exit&amp;quot; or &amp;quot;Help&amp;quot; buttons&lt;br /&gt;
*# &amp;quot;space&amp;quot;/&amp;quot;enter&amp;quot;:&lt;br /&gt;
*#* selects the currently highlighted item if you are on the &amp;quot;Select&amp;quot; button&lt;br /&gt;
*#* go back in previous menu if you are on &amp;quot;Exit&amp;quot; button&lt;br /&gt;
*#* show you some Help for current item if you are on &amp;quot;Help&amp;quot; button&lt;br /&gt;
*# for more Help about Buildroot commands, select &amp;quot;Help&amp;quot; in the main configuration screen&lt;br /&gt;
&lt;br /&gt;
* Update the memory configuration of your board (&#039;&#039;&#039;if needed&#039;&#039;&#039;; by default BSP is configured for the minimal memory configuration available on the corresponding board):&lt;br /&gt;
&lt;br /&gt;
:In menu:&lt;br /&gt;
:&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;System configuration  ---&amp;gt;    [*] Armadeus Device Support  ---&amp;gt;&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
:you can check and change the quantity of RAM available on your Armadeus board:&lt;br /&gt;
:[[Image:Build_config_memory.png]]&lt;br /&gt;
:For [[APF9328]] the memory can be either 16 or 32MiB (be sure to select 1 RAM chip)&lt;br /&gt;
:For [[APF27]] it could be either 64MiB or 128MiB (2 x 64MiB) (in that case be sure to select 2 chips of 64MiB instead of 1 chip of 128MiB).&lt;br /&gt;
:For [[APF51]] it could be either 256MiB or 512MiB (2x256MiB) (in such case be sure to select 2 chips of 256MiB instead of 1 chip of 512).&lt;br /&gt;
:For [[APF28]] The memory can be 128, 256, 512 or 1024MiB (be sure to select 1 RAM chip).&lt;br /&gt;
:For [[APF6]]/[[APF6SP]] The memory can be 512 Mbytes or 1Gbytes with ram chip size of 512Mbytes.&lt;br /&gt;
:For [[OPOS6UL]]/[[OPOS6UL_NANO]] The memory size is automatically detected so you don&#039;t care ;-)&lt;br /&gt;
&lt;br /&gt;
* You may decrease the compilation time by increasing the number of parallel jobs running simultaneously on your system (the result is not guaranteed). This option is located in:&lt;br /&gt;
:&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;Build Options ---&amp;gt;    (0) Number of jobs to run simultaneously&amp;lt;/pre&amp;gt;&lt;br /&gt;
0 means that Buildroot will try to guess automatically how much parallel jobs it can launch.&lt;br /&gt;
&lt;br /&gt;
* During the SDK/BSP build, a lot of software archives are downloaded from Internet. The downloaded files are put by default in the &#039;&#039;armadeus/downloads/&#039;&#039; directory. &#039;&#039;&#039;If you have several views or plan to build the toolchain several times&#039;&#039;&#039;, we advise you to put all the downloaded files in &#039;&#039;/local/downloads&#039;&#039; (for example). This is done by configuring Buildroot to use this directory for all your views. Nevertheless, Buildroot will be downloaded separately for each build environment you set up.&lt;br /&gt;
:&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;Build options  ---&amp;gt;    (...) Download dir&amp;lt;/pre&amp;gt;&lt;br /&gt;
:[[Image:Build_config_download.png]]&lt;br /&gt;
{{Note|Of course, &#039;&#039;/local/downloads&#039;&#039; should exists on your system and you should have writing rights on it !}}&lt;br /&gt;
* In recent Buildroot you can also use the following method:&lt;br /&gt;
 export BR2_DL_DIR=/local/downloads&lt;br /&gt;
&lt;br /&gt;
* After the build, we advise you to copy all the files in &#039;&#039;downloads/&#039;&#039; / &#039;&#039;/local/downloads&#039;&#039; on a removable medium, in case you want to install the development tools on other systems, without to have to reload all the archives.&lt;br /&gt;
&lt;br /&gt;
* Now, Exit the configuration tool and save your configuration&lt;br /&gt;
&lt;br /&gt;
* You can come back to this configuration menu, by typing (your changes will be kept): &lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Launch build==&lt;br /&gt;
 $ make&lt;br /&gt;
The toolchain and the full distribution are automatically built. During this procedure, several files are downloaded from Internet. &amp;lt;br&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Please wait for a while.... it takes at least one hour for the first run!&#039;&#039;&#039;&amp;lt;br&amp;gt;&lt;br /&gt;
By default, the downloaded files/tarball are put in the &#039;&#039;armadeus/downloads/&#039;&#039; directory. Please see the previous chapter to know how to optimize that if you plan to build several views or want to build faster.&lt;br /&gt;
&lt;br /&gt;
==Enjoy the result==&lt;br /&gt;
The generated binary files can be found in the subdirectory &#039;&#039;buildroot/output/images&#039;&#039;:&lt;br /&gt;
*&#039;&#039;apf9328-u-boot.brec&#039;&#039; (only on [[APF9328]]): BRecord image that can be used with the bootstrap, if U-Boot is not installed or not working (see [[BootLoader]] page)&lt;br /&gt;
*&#039;&#039;xxx-u-boot.bin&#039;&#039;: U-Boot image file to be used with U-Boot itself, (see [[BootLoader#Update_U-Boot | updating U-Boot]])&lt;br /&gt;
*&#039;&#039;xxx-linux.bin&#039;&#039;: Linux image to use with U-Boot, (see [[Target_Software_Installation#Linux_kernel_installation | updating Linux]])&lt;br /&gt;
*&#039;&#039;xxx-rootfs.jffs2&#039;&#039;: JFFS2 filesystem/rootfs image to use with U-Boot, (see [[Target_Software_Installation#Linux_rootfs_installation | updating rootfs]])&lt;br /&gt;
*&#039;&#039;xxx-rootfs.ubi&#039;&#039; (not supported on [[APF9328]]): [[UBIFS|UBI]] filesystem/rootfs image to use with U-Boot, (see [[Target_Software_Installation#Linux_rootfs_installation | updating rootfs]])&lt;br /&gt;
*&#039;&#039;xxx-rootfs.ext4&#039;&#039;: EXT4 filesystem/rootfs image to use with U-Boot, (on [[APF6]] and [[OPOS6UL]])&lt;br /&gt;
*&#039;&#039;xxx-rootfs.tar&#039;&#039;: for an NFS/MMC based rootfs, (see [[Network_Configuration#Boot_from_NFS | Booting from NFS]] &amp;amp; [[MultiMediaCard#Booting_from_MMC.2FSD | Booting from a MMC/SD]])&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Please note the new naming convention of binary files and directories (since Armadeus 4.0)&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
*&#039;&#039;buildroot/output/build&#039;&#039;: contains all the build results for target root filesystem, Linux, Busybox and U-Boot...&lt;br /&gt;
*&#039;&#039;buildroot/output/toolchain/&#039;&#039;: cross compilation toolchain&#039;s build dir. Binaries usable for cross-compilation are in &#039;&#039;buildroot/output/host/usr/bin&#039;&#039;.&lt;br /&gt;
*&#039;&#039;buildroot/output/target/&#039;&#039;: target filessytem before generating rootfs images&lt;br /&gt;
&lt;br /&gt;
More information is available in the  [http://buildroot.uclibc.org/buildroot.html Buildroot&#039;s documentation]&lt;br /&gt;
&lt;br /&gt;
* Note: Previous versions (3.x) of Armadeus SDK stored the generated binary files at a different place: &#039;&#039; &#039;&#039;buildroot/binaries/XX/&#039;&#039; (where XX was the name of your board).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You then copy the binary image to your server directory:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ cp buildroot/output/images/* /tftpboot&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==To keep your local copy/repository up-to-date with the armadeus GIT repository==&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will update your working directory to the latest release.&lt;br /&gt;
&lt;br /&gt;
Note: if &amp;quot;git pull&amp;quot; fails because a directory or a file already exists, then do:&lt;br /&gt;
 $ rm -rf &amp;lt;this-directory/file&amp;gt;&lt;br /&gt;
 $ git pull&lt;br /&gt;
&lt;br /&gt;
You can do a:&lt;br /&gt;
 $ make apfXX_defconfig&lt;br /&gt;
to have the latest features automatically activated.&lt;br /&gt;
&lt;br /&gt;
You have to do a &#039;&#039;&#039;make&#039;&#039;&#039; to rebuild binary files and then upload the binary files to your target.&lt;br /&gt;
&lt;br /&gt;
Note: if definitively everything goes wrong while it worked before the last update.&lt;br /&gt;
You can apply the following procedure (all your modifications in buildroot will be lost):&lt;br /&gt;
 $ rm -rf buildroot/&lt;br /&gt;
 $ rm Makefile&lt;br /&gt;
 $ git pull&lt;br /&gt;
 $ make apfXX_defconfig&lt;br /&gt;
 $ make&lt;br /&gt;
 $ cp buildroot/output/images/* /tftpboot&lt;br /&gt;
&lt;br /&gt;
Enjoy!&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Bugs&amp;diff=15093</id>
		<title>Bugs</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Bugs&amp;diff=15093"/>
		<updated>2022-06-30T10:36:26Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* List of known bugs and others problems reported */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==List of known bugs and others problems reported==&lt;br /&gt;
* If you want a day by day view on all the &#039;&#039;&#039;OPEN&#039;&#039;&#039; bugs currently reported, please consult the project repository on gitlab:&lt;br /&gt;
**https://gitlab.com/armadeus/armadeus-bsp/-/issues&lt;br /&gt;
* To have the list of bugs &amp;amp; workaround (if any) per Release:&lt;br /&gt;
** [[Releases]]&lt;br /&gt;
&lt;br /&gt;
== (Very) Old releases ==&lt;br /&gt;
* Armadeus release 2.2&lt;br /&gt;
* Armadeus release 2.0&lt;br /&gt;
&lt;br /&gt;
CCache seems to make some troubles for the moment:&lt;br /&gt;
During a second buildroot compiling, the compiler does not use the right Linux&lt;br /&gt;
headers. This is only visible with packages that needs system dependent headers.&lt;br /&gt;
(ex: compile a new buildroot and then do a make menuconfig and select additional package:&lt;br /&gt;
&#039;&#039;utils-linux&#039;&#039; and then compile again. ...... this will not work ). &lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;workaround:&#039;&#039;&#039; Disable ccache for the moment &lt;br /&gt;
&lt;br /&gt;
* Armadeus release 1.6&lt;br /&gt;
&lt;br /&gt;
If project is compiled twice then jffs2 generation of rootfs can fail&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;workaround:&#039;&#039;&#039; do the compilation in a new shell.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=FAQ&amp;diff=15092</id>
		<title>FAQ</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=FAQ&amp;diff=15092"/>
		<updated>2022-06-30T10:34:54Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==General Questions==&lt;br /&gt;
&lt;br /&gt;
===What is the &amp;quot;Armadeus Project&amp;quot; intended for ?===&lt;br /&gt;
The goal of this project is to allow everyone to easily develop embedded Open Source systems.&lt;br /&gt;
When all the embedded systems in the world will run open source software, life will be better ;-)&lt;br /&gt;
&lt;br /&gt;
===How do I get help ?===&lt;br /&gt;
First take a look at the whole Wiki. If you can&#039;t find help contact us directly: [[Help:Contents]]. If you are located in France, we have members in Besançon, Montbéliard &amp;amp; Mulhouse who can provide help. For Swiss members, we can provide help in Basel, Lausanne &amp;amp; Zürich.&lt;br /&gt;
&lt;br /&gt;
=== Why are there http://armadeus.org and http://armadeus.com ? Is there a company backing/hiding behind the project? ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;http://armadeus.com&amp;gt; is the webpage dedicated to Armadeus Systems. &amp;lt;br&amp;gt; &lt;br /&gt;
The company develops and produces the main boards which are then available at a discount price to the association members (non commercial usage only!). &lt;br /&gt;
&lt;br /&gt;
Historically the Armadeus Project (association) was founded before Armadeus Systems (company).  &amp;lt;br&amp;gt;&lt;br /&gt;
After one year of existence we realized that it was quite impossible to achieve our goals without investing more time and more cash. That&#039;s why the company was founded.&lt;br /&gt;
&lt;br /&gt;
The association was started for our own pleasure and also to help universities and enthusiasts develop Linux embedded systems.  &amp;lt;br&amp;gt;&lt;br /&gt;
It is a non profit association and works mostly on founders&#039; free time.&lt;br /&gt;
&lt;br /&gt;
The developments (hardware/firmware/software) performed within the association are under GPL/LGPL licence.  &amp;lt;br&amp;gt;&lt;br /&gt;
The hardware funded by the association can not be used in a commercial product.&lt;br /&gt;
&lt;br /&gt;
=== Is there some rule to respect to contribute to the wiki? ===&lt;br /&gt;
Yes there are few rules that help you to contribute to update the wiki there:  [[WritingRules |HowTo write articles for armadeus wiki]]  &lt;br /&gt;
&lt;br /&gt;
==Hardware Questions==&lt;br /&gt;
===Are the Armadeus boards RoHS compliant ?===&lt;br /&gt;
Yes&lt;br /&gt;
&lt;br /&gt;
===I have an APF27 kit and my 7&amp;quot; Chimei LW700 LCD is blinking (RGB colors), what can I do ?===&lt;br /&gt;
You&#039;re probably running an old (&amp;lt; 3.3) Armadeus BSP release and so default LCD is Sharp LQ043. You have to change your Linux configuration to support your LCD. Please follow instructions on [[FrameBuffer|this page]].&lt;br /&gt;
&lt;br /&gt;
== Gateware Questions (FPGA) ==&lt;br /&gt;
&lt;br /&gt;
=== My bitstream break my APF ===&lt;br /&gt;
&lt;br /&gt;
If you are using ISE13.x or upper, there is a bug loading script TCL file. When design is generated by POD, a script is sourced to make bitstream (myproject.tcl), the source commande ignore the constraint file (ucf) and FPGA pinout is done randomly. To avoid this, once tcl script sourced, re-run all design.&lt;br /&gt;
&lt;br /&gt;
==Software Questions==&lt;br /&gt;
===Where are the sources ?===&lt;br /&gt;
&lt;br /&gt;
We have a project on gitlab : https://gitlab.com/armadeus/armadeus-bsp&lt;br /&gt;
&lt;br /&gt;
===What are the performances of your board ?===&lt;br /&gt;
[[Performances | Wiki page talking about board performances]]&lt;br /&gt;
&lt;br /&gt;
===How do I get help/support===&lt;br /&gt;
[[Help:Contents]]&lt;br /&gt;
&lt;br /&gt;
=== How to register my interrupt routine in Linux application ? ===&lt;br /&gt;
[[How to register my interrupt routine in Linux application ?]]&lt;br /&gt;
&lt;br /&gt;
=== How to launch my application at startup ? ===&lt;br /&gt;
See [[Automatically_launch_your_application | Automatically launch your application]] page.&lt;br /&gt;
&lt;br /&gt;
===U-Boot seems ok but prints: *** Warning - bad CRC, using default environment - Is there something wrong?=== &lt;br /&gt;
Everything is ok. It is an U-Boot feature that happens if the environment partition is empty.&amp;lt;br&amp;gt;&lt;br /&gt;
Please read the U-Boot FAQ on this issue: http://www.denx.de/wiki/view/DULG/WarningBadCRCUsingDefaultEnvironment&lt;br /&gt;
&lt;br /&gt;
{{LanguageBar|FAQ|FAQ|FAQ}}&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15073</id>
		<title>2022 02 18 Container docker pour vieux BSP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15073"/>
		<updated>2022-02-21T08:37:25Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Le Dockerfile Armadeus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Avec la pénurie de composants actuelle beaucoup d&#039;entreprises sont contraintes de modifier leurs cartes électroniques de manière à supporter des variantes de leurs composants. Ce changement de composants impose souvent de retoucher le logiciel et de «remettre les mains dans le code» archivé depuis belle lurette.&lt;br /&gt;
Le temps du développement n&#039;étant pas celui de la production, les projets sont souvent «figés» de longue date. Et les machines qui permettaient de compiler le matériel sont totalement obsolète quand le produit est en «full-prod».&lt;br /&gt;
&lt;br /&gt;
Réinstaller les vieux logiciels qui ont permis de développer le produit se révèle souvent une gageur sur des systèmes actuels.&lt;br /&gt;
&lt;br /&gt;
Heureusement pour Armadeus, tout le développement de ses cartes se fait sous Linux. Et nous avons aujourd&#039;hui un outils formidable pour faire tourner de vieux logiciel sur des systèmes «à jour» : &#039;&#039;&#039;la virtualisation légère&#039;&#039;&#039;, avec notamment le logiciel [https://fr.wikipedia.org/wiki/Docker_(logiciel) docker].&lt;br /&gt;
&lt;br /&gt;
= Docker, la virtualisation légère =&lt;br /&gt;
&lt;br /&gt;
Selon [https://fr.wikipedia.org/wiki/Docker_(logiciel) Wikipedia] Docker est «une plateforme permettant de lancer certaines applications dans des conteneurs logiciels. Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution pratique de virtualisation qui exécute les processus de façon isolée2.»&lt;br /&gt;
&lt;br /&gt;
Dit simplement, Docker est une machine virtuelle qui émule le système d&#039;exploitation et les librairies mais pas les instructions machine. Ce qui en fait une machine virtuelle très performante.&lt;br /&gt;
&lt;br /&gt;
Docker est très intéressant pour faire tourner un programme dans un environnement logiciels contrôlé avec des versions figées. C&#039;est par exemple le cas pour compiler un BSP en utilisant une vieille distribution linux.&lt;br /&gt;
&lt;br /&gt;
= Compilation du BSP armadeus pour APF27 =&lt;br /&gt;
&lt;br /&gt;
L&#039;APF27 est typiquement la carte qui est encore actuellement en production chez armadeus mais dont le BSP n&#039;est plus utilisable avec les outils actuels. À l&#039;origine, le BSP de l&#039;apf27 était compilé sur des version d&#039;ubuntu datant des années 2010 !&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut pouvoir reprendre son  projet sans avoir à redémarrer un ordinateur de cette époque, voici comment faire avec docker.&lt;br /&gt;
L&#039;exemple de cet article a été réalisé sur une distribution ubuntu version Ubuntu 20.04.3 LTS.&lt;br /&gt;
&lt;br /&gt;
== Lancement de Docker ==&lt;br /&gt;
&lt;br /&gt;
Docker est un «deamon» qu&#039;il faut lancer en tâche de fond sur son système. Sur Ubuntu c&#039;est systemd qui contrôle ça :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo systemctl start docker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que docker tourne en tâche de fond, on peu lancer directement une console `bash` ubuntu version 12.04 avec la commande&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker run -it ubuntu:12.04 /bin/bash&lt;br /&gt;
root@1a5b88e1759c:/# cat /etc/lsb-release &lt;br /&gt;
DISTRIB_ID=Ubuntu&lt;br /&gt;
DISTRIB_RELEASE=12.04&lt;br /&gt;
DISTRIB_CODENAME=precise&lt;br /&gt;
DISTRIB_DESCRIPTION=&amp;quot;Ubuntu 12.04.5 LTS&amp;quot;&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un container existe déjà sur les serveurs docker avec une version minimaliste. En tapant la commande ci-dessus, docker va simplement télécharger le container pour le lancer sur la machine.&lt;br /&gt;
&lt;br /&gt;
Notre shell bash tourne bien dans une distribution ubuntu version 12.04. Pour visualiser les container actifs dans docker on lancera la commande suivant dans une autre console :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker ps&lt;br /&gt;
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES&lt;br /&gt;
1a5b88e1759c   ubuntu:12.04   &amp;quot;/bin/bash&amp;quot;   2 minutes ago   Up 2 minutes             stoic_noether&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on quitte la console avec `exit`, le container sera mis en inactif et il faudra le relancer pour pouvoir s&#039;y ré-attacher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@1a5b88e1759c:/# exit&lt;br /&gt;
exit&lt;br /&gt;
$ sudo docker container start stoic_noether&lt;br /&gt;
stoic_noether&lt;br /&gt;
$ sudo docker attach stoic_noether&lt;br /&gt;
root@1a5b88e1759c:/# history&lt;br /&gt;
    1  ls&lt;br /&gt;
    2  top&lt;br /&gt;
    3  cat /etc/lsb-release &lt;br /&gt;
    4  exit&lt;br /&gt;
    5  history&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;on se trouve dans la console on peut tenter de télécharger et compiler le bsp armadeus-7.0 par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
root@3264de07ca45:/# cd /opt/&lt;br /&gt;
root@3264de07ca45:/opt# mkdir bsp&lt;br /&gt;
root@3264de07ca45:/opt# cd bsp/&lt;br /&gt;
root@3264de07ca45:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download&lt;br /&gt;
bash: wget: command not found&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
E: Unable to locate package wget&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get update&lt;br /&gt;
Ign http://archive.ubuntu.com precise Release.gpg&lt;br /&gt;
[...]&lt;br /&gt;
E: Some index files failed to download. They have been ignored, or old ones used instead.&lt;br /&gt;
root@3264de07ca45:/opt/bsp# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ach! Très vite on se rend compte que la distribution fournie par docker est bien trop minimaliste pour que l&#039;on puisse travailler avec. Nous allons donc devoir construire notre propre container qui partira de cette distribution pour la customiser.&lt;br /&gt;
&lt;br /&gt;
== Construction d&#039;un container ==&lt;br /&gt;
&lt;br /&gt;
Pour construire son propre container, il faut créer un fichier de configuration avec le nom &#039;&#039;&#039;Dockerfile&#039;&#039;&#039;. Dans lequel on donnera le container de départ :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;INI&amp;quot;&amp;gt;&lt;br /&gt;
#Simple commentaire d&#039;entête&lt;br /&gt;
FROM ubuntu:12.04&lt;br /&gt;
&lt;br /&gt;
# on ajoute les dépots apt encore accessible aujourd&#039;hui&lt;br /&gt;
&lt;br /&gt;
# Sources from https://gist.github.com/ivomts/4558134&lt;br /&gt;
RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et on construit le container en lui donnant un nom et une version :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker build -t apf27bsp:0.1 .&lt;br /&gt;
Sending build context to Docker daemon   2.56kB&lt;br /&gt;
Step 1/2 : FROM ubuntu:12.04&lt;br /&gt;
 ---&amp;gt; 5b117edd0b76&lt;br /&gt;
Step 2/2 : RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ---&amp;gt; Running in 0b854be1e236&lt;br /&gt;
Removing intermediate container 0b854be1e236&lt;br /&gt;
 ---&amp;gt; 9c3cb7850267&lt;br /&gt;
Successfully built 9c3cb7850267&lt;br /&gt;
Successfully tagged apf27bsp:0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le container ainsi construit peut être lancé avec la commande que l&#039;on connaît bien maintenant :&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
$ sudo docker container run -it apf27bsp:0.1 /bin/bash&lt;br /&gt;
root@d6f2e3190f9b:/# apt-get update&lt;br /&gt;
Get:1 http://old-releases.ubuntu.com precise Release.gpg [198 B]&lt;br /&gt;
...&lt;br /&gt;
root@d6f2e3190f9b:/# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
The following extra packages will be installed:&lt;br /&gt;
  libidn11&lt;br /&gt;
The following NEW packages will be installed:&lt;br /&gt;
  libidn11 wget&lt;br /&gt;
0 upgraded, 2 newly installed, 0 to remove and 27 not upgraded.&lt;br /&gt;
Need to get 392 kB of archives.&lt;br /&gt;
After this operation, 970 kB of additional disk space will be used.&lt;br /&gt;
Do you want to continue [Y/n]? y&lt;br /&gt;
...&lt;br /&gt;
root@d6f2e3190f9b:/# cd /opt/&lt;br /&gt;
root@d6f2e3190f9b:/opt# ls&lt;br /&gt;
root@d6f2e3190f9b:/opt# mkdir bsp&lt;br /&gt;
root@d6f2e3190f9b:/opt# cd bsp/&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download --no-check-certificate&lt;br /&gt;
...&lt;br /&gt;
Saving to: `download&#039;&lt;br /&gt;
&lt;br /&gt;
100%[=========================================================================================================================================================================&amp;gt;] 6,572,959   1.87M/s   in 3.8s    &lt;br /&gt;
&lt;br /&gt;
2022-02-18 15:58:54 (1.67 MB/s) - `download&#039; saved [6572959/6572959]&lt;br /&gt;
&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# mv download armadeus-7.0.tar.bz2&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# apt-get install bzip2&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# tar jxf armadeus-7.0.tar.bz2 &lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp#&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Très vite on se rend compte que nous avons beaucoup de logiciels à télécharger et installer. Le problème des containers c&#039;est que rien n&#039;est enregistré, donc à chaque fois qu&#039;on lance le container avec la commande `run` tout est remis à zéro.&lt;br /&gt;
&lt;br /&gt;
Il devient donc indispensable d&#039;ajouter les commandes de mise à jour des packages dans le `Dockerfile`. Heureusement, Armadeus propose un script pour ça dans son BSP comme nous allons le voir par la suite.&lt;br /&gt;
&lt;br /&gt;
== Montage de répertoires «host» ==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer les fichiers que l&#039;on compile avec le container il va être nécessaire de «monter» un répertoire de son ordinateur dans le container.&lt;br /&gt;
&lt;br /&gt;
Ce montage se fait au lancement du container. Par exemple si nous souhaitons monter le répertoire de téléchargement des packets buildroot ainsi que le répertoire du bsp armadeus nous utiliserons la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker run --mount src=/downloads,target=/downloads,type=bind \&lt;br /&gt;
                --mount src=/home/user/prj/armadeusbsp,target=/opt/bsp/,type=bind \&lt;br /&gt;
                -it apf27bsp:1.0 /bin/bash&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous mutualiserons ainsi le répertoires /downloads de notre machine et nous récupérerons les binaires générés à la compilation du bsp dans le container.&lt;br /&gt;
&lt;br /&gt;
== Le Dockerfile Armadeus ==&lt;br /&gt;
&lt;br /&gt;
Armadeus fourni le [https://sourceforge.net/p/armadeus/code/ci/master/tree/scripts/docker/apf27-ubuntu-12.04/ Dockerfile pour compiler l&#039;apf27]. Le script se trouve dans le répertoire `scripts/docker/apf27-ubuntu-12.04` du bsp. Un fichier README.md donne la marche à suivre pour le construire et le lancer.&lt;br /&gt;
&lt;br /&gt;
Pour construire le container, il suffit de se rendre dans le répertoire et de taper la commande :&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo docker build -t apf27bsp:0.1 .&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15072</id>
		<title>2022 02 18 Container docker pour vieux BSP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15072"/>
		<updated>2022-02-21T08:32:19Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Construction d&amp;#039;un container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Avec la pénurie de composants actuelle beaucoup d&#039;entreprises sont contraintes de modifier leurs cartes électroniques de manière à supporter des variantes de leurs composants. Ce changement de composants impose souvent de retoucher le logiciel et de «remettre les mains dans le code» archivé depuis belle lurette.&lt;br /&gt;
Le temps du développement n&#039;étant pas celui de la production, les projets sont souvent «figés» de longue date. Et les machines qui permettaient de compiler le matériel sont totalement obsolète quand le produit est en «full-prod».&lt;br /&gt;
&lt;br /&gt;
Réinstaller les vieux logiciels qui ont permis de développer le produit se révèle souvent une gageur sur des systèmes actuels.&lt;br /&gt;
&lt;br /&gt;
Heureusement pour Armadeus, tout le développement de ses cartes se fait sous Linux. Et nous avons aujourd&#039;hui un outils formidable pour faire tourner de vieux logiciel sur des systèmes «à jour» : &#039;&#039;&#039;la virtualisation légère&#039;&#039;&#039;, avec notamment le logiciel [https://fr.wikipedia.org/wiki/Docker_(logiciel) docker].&lt;br /&gt;
&lt;br /&gt;
= Docker, la virtualisation légère =&lt;br /&gt;
&lt;br /&gt;
Selon [https://fr.wikipedia.org/wiki/Docker_(logiciel) Wikipedia] Docker est «une plateforme permettant de lancer certaines applications dans des conteneurs logiciels. Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution pratique de virtualisation qui exécute les processus de façon isolée2.»&lt;br /&gt;
&lt;br /&gt;
Dit simplement, Docker est une machine virtuelle qui émule le système d&#039;exploitation et les librairies mais pas les instructions machine. Ce qui en fait une machine virtuelle très performante.&lt;br /&gt;
&lt;br /&gt;
Docker est très intéressant pour faire tourner un programme dans un environnement logiciels contrôlé avec des versions figées. C&#039;est par exemple le cas pour compiler un BSP en utilisant une vieille distribution linux.&lt;br /&gt;
&lt;br /&gt;
= Compilation du BSP armadeus pour APF27 =&lt;br /&gt;
&lt;br /&gt;
L&#039;APF27 est typiquement la carte qui est encore actuellement en production chez armadeus mais dont le BSP n&#039;est plus utilisable avec les outils actuels. À l&#039;origine, le BSP de l&#039;apf27 était compilé sur des version d&#039;ubuntu datant des années 2010 !&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut pouvoir reprendre son  projet sans avoir à redémarrer un ordinateur de cette époque, voici comment faire avec docker.&lt;br /&gt;
L&#039;exemple de cet article a été réalisé sur une distribution ubuntu version Ubuntu 20.04.3 LTS.&lt;br /&gt;
&lt;br /&gt;
== Lancement de Docker ==&lt;br /&gt;
&lt;br /&gt;
Docker est un «deamon» qu&#039;il faut lancer en tâche de fond sur son système. Sur Ubuntu c&#039;est systemd qui contrôle ça :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo systemctl start docker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que docker tourne en tâche de fond, on peu lancer directement une console `bash` ubuntu version 12.04 avec la commande&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker run -it ubuntu:12.04 /bin/bash&lt;br /&gt;
root@1a5b88e1759c:/# cat /etc/lsb-release &lt;br /&gt;
DISTRIB_ID=Ubuntu&lt;br /&gt;
DISTRIB_RELEASE=12.04&lt;br /&gt;
DISTRIB_CODENAME=precise&lt;br /&gt;
DISTRIB_DESCRIPTION=&amp;quot;Ubuntu 12.04.5 LTS&amp;quot;&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un container existe déjà sur les serveurs docker avec une version minimaliste. En tapant la commande ci-dessus, docker va simplement télécharger le container pour le lancer sur la machine.&lt;br /&gt;
&lt;br /&gt;
Notre shell bash tourne bien dans une distribution ubuntu version 12.04. Pour visualiser les container actifs dans docker on lancera la commande suivant dans une autre console :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker ps&lt;br /&gt;
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES&lt;br /&gt;
1a5b88e1759c   ubuntu:12.04   &amp;quot;/bin/bash&amp;quot;   2 minutes ago   Up 2 minutes             stoic_noether&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on quitte la console avec `exit`, le container sera mis en inactif et il faudra le relancer pour pouvoir s&#039;y ré-attacher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@1a5b88e1759c:/# exit&lt;br /&gt;
exit&lt;br /&gt;
$ sudo docker container start stoic_noether&lt;br /&gt;
stoic_noether&lt;br /&gt;
$ sudo docker attach stoic_noether&lt;br /&gt;
root@1a5b88e1759c:/# history&lt;br /&gt;
    1  ls&lt;br /&gt;
    2  top&lt;br /&gt;
    3  cat /etc/lsb-release &lt;br /&gt;
    4  exit&lt;br /&gt;
    5  history&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;on se trouve dans la console on peut tenter de télécharger et compiler le bsp armadeus-7.0 par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
root@3264de07ca45:/# cd /opt/&lt;br /&gt;
root@3264de07ca45:/opt# mkdir bsp&lt;br /&gt;
root@3264de07ca45:/opt# cd bsp/&lt;br /&gt;
root@3264de07ca45:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download&lt;br /&gt;
bash: wget: command not found&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
E: Unable to locate package wget&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get update&lt;br /&gt;
Ign http://archive.ubuntu.com precise Release.gpg&lt;br /&gt;
[...]&lt;br /&gt;
E: Some index files failed to download. They have been ignored, or old ones used instead.&lt;br /&gt;
root@3264de07ca45:/opt/bsp# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ach! Très vite on se rend compte que la distribution fournie par docker est bien trop minimaliste pour que l&#039;on puisse travailler avec. Nous allons donc devoir construire notre propre container qui partira de cette distribution pour la customiser.&lt;br /&gt;
&lt;br /&gt;
== Construction d&#039;un container ==&lt;br /&gt;
&lt;br /&gt;
Pour construire son propre container, il faut créer un fichier de configuration avec le nom &#039;&#039;&#039;Dockerfile&#039;&#039;&#039;. Dans lequel on donnera le container de départ :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;INI&amp;quot;&amp;gt;&lt;br /&gt;
#Simple commentaire d&#039;entête&lt;br /&gt;
FROM ubuntu:12.04&lt;br /&gt;
&lt;br /&gt;
# on ajoute les dépots apt encore accessible aujourd&#039;hui&lt;br /&gt;
&lt;br /&gt;
# Sources from https://gist.github.com/ivomts/4558134&lt;br /&gt;
RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et on construit le container en lui donnant un nom et une version :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker build -t apf27bsp:0.1 .&lt;br /&gt;
Sending build context to Docker daemon   2.56kB&lt;br /&gt;
Step 1/2 : FROM ubuntu:12.04&lt;br /&gt;
 ---&amp;gt; 5b117edd0b76&lt;br /&gt;
Step 2/2 : RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ---&amp;gt; Running in 0b854be1e236&lt;br /&gt;
Removing intermediate container 0b854be1e236&lt;br /&gt;
 ---&amp;gt; 9c3cb7850267&lt;br /&gt;
Successfully built 9c3cb7850267&lt;br /&gt;
Successfully tagged apf27bsp:0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le container ainsi construit peut être lancé avec la commande que l&#039;on connaît bien maintenant :&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
$ sudo docker container run -it apf27bsp:0.1 /bin/bash&lt;br /&gt;
root@d6f2e3190f9b:/# apt-get update&lt;br /&gt;
Get:1 http://old-releases.ubuntu.com precise Release.gpg [198 B]&lt;br /&gt;
...&lt;br /&gt;
root@d6f2e3190f9b:/# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
The following extra packages will be installed:&lt;br /&gt;
  libidn11&lt;br /&gt;
The following NEW packages will be installed:&lt;br /&gt;
  libidn11 wget&lt;br /&gt;
0 upgraded, 2 newly installed, 0 to remove and 27 not upgraded.&lt;br /&gt;
Need to get 392 kB of archives.&lt;br /&gt;
After this operation, 970 kB of additional disk space will be used.&lt;br /&gt;
Do you want to continue [Y/n]? y&lt;br /&gt;
...&lt;br /&gt;
root@d6f2e3190f9b:/# cd /opt/&lt;br /&gt;
root@d6f2e3190f9b:/opt# ls&lt;br /&gt;
root@d6f2e3190f9b:/opt# mkdir bsp&lt;br /&gt;
root@d6f2e3190f9b:/opt# cd bsp/&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download --no-check-certificate&lt;br /&gt;
...&lt;br /&gt;
Saving to: `download&#039;&lt;br /&gt;
&lt;br /&gt;
100%[=========================================================================================================================================================================&amp;gt;] 6,572,959   1.87M/s   in 3.8s    &lt;br /&gt;
&lt;br /&gt;
2022-02-18 15:58:54 (1.67 MB/s) - `download&#039; saved [6572959/6572959]&lt;br /&gt;
&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# mv download armadeus-7.0.tar.bz2&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# apt-get install bzip2&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# tar jxf armadeus-7.0.tar.bz2 &lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp#&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Très vite on se rend compte que nous avons beaucoup de logiciels à télécharger et installer. Le problème des containers c&#039;est que rien n&#039;est enregistré, donc à chaque fois qu&#039;on lance le container avec la commande `run` tout est remis à zéro.&lt;br /&gt;
&lt;br /&gt;
Il devient donc indispensable d&#039;ajouter les commandes de mise à jour des packages dans le `Dockerfile`. Heureusement, Armadeus propose un script pour ça dans son BSP comme nous allons le voir par la suite.&lt;br /&gt;
&lt;br /&gt;
== Montage de répertoires «host» ==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer les fichiers que l&#039;on compile avec le container il va être nécessaire de «monter» un répertoire de son ordinateur dans le container.&lt;br /&gt;
&lt;br /&gt;
Ce montage se fait au lancement du container. Par exemple si nous souhaitons monter le répertoire de téléchargement des packets buildroot ainsi que le répertoire du bsp armadeus nous utiliserons la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker run --mount src=/downloads,target=/downloads,type=bind \&lt;br /&gt;
                --mount src=/home/user/prj/armadeusbsp,target=/opt/bsp/,type=bind \&lt;br /&gt;
                -it apf27bsp:1.0 /bin/bash&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous mutualiserons ainsi le répertoires /downloads de notre machine et nous récupérerons les binaires générés à la compilation du bsp dans le container.&lt;br /&gt;
&lt;br /&gt;
== Le Dockerfile Armadeus ==&lt;br /&gt;
&lt;br /&gt;
Armadeus fourni le Dockerfile pour compiler l&#039;apf27, il suffit donc de le construire en se rendant dans le répertoire `scripts/docker/apf27-ubuntu-12.04` du bsp. Un fichier README.md donne la marche à suivre pour le construire et le lancer.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Template:Derni%C3%A8resNouvelles&amp;diff=15071</id>
		<title>Template:DernièresNouvelles</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Template:Derni%C3%A8resNouvelles&amp;diff=15071"/>
		<updated>2022-02-21T08:27:47Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* 18 Février 2022: Container docker pour vieux BSP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=====18 Février 2022: Container docker pour vieux BSP=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[2022_02_18_Container_docker_pour_vieux_BSP| Comment utiliser une vieille distribution Linux sur un ordinateur récent pour pouvoir compiler le BSP pour apf27 en toute tranquilité]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====7 Août 2018: La nouvelle version [[Releases#Release_7.0_.28latest_stable_one.29|Armadeus 7.0]] est disponible=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Cette nouvelle [[Releases#Release_7.0_.28latest_stable_one.29| version]] ajoute le support des nouveaux SoM [[OPOS6UL]] et [[OPOS6UL_NANO]] et finalise la mise à jour vers Buildroot 2017.02.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====11 Août 2015: La nouvelle version [[Releases#Release_6.0_.28latest_stable_one.29|Armadeus 6.0]] est disponible=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Cette nouvelle [[Releases#Release_6.0_.28latest_stable_one.29| version]] ajoute le support des nouveaux modules Armadeus ([[APF6]] et [[APF6_SP]]) et finalise la mise à jour vers Buildroot 2015.02 et U-Boot 2014.07+. Elle améliore aussi le support pour les noyaux Linux vanilla (3.19+).&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====25 Décembre 2013: La nouvelle version [[Releases#Release_5.3_.28latest_stable_one.29|Armadeus 5.3]] est disponible=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Cette nouvelle [[Releases#Release_5.3_.28latest_stable_one.29| version]] finalise la mise à jour vers Buildroot 2013.05 et U-Boot 2013.04. Elle ajoute aussi le support pour les noyaux Linux vanilla (3.1x). L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version-5-3-du-bsp-du-projet-armadeus].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====12 Octobre 2012: Nouvelle version du logiciel Armadeus: [[Releases#Release_5.2_.28latest_stable_one.29|Armadeus 5.2]] est disponible=====&lt;br /&gt;
Cette nouvelle [[Releases#Release_5.2_.28latest_stable_one.29| version]] ajoute de nouvelles fonctionnalitées a la carte [[APF28]] , corrige un probleme sur l interface wifi de la carte PPS et ajoute plusieurs ameliorations au logiciel Armadeus &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====12 Août 2012: La release Armadeus 5.0 est sortie=====&lt;br /&gt;
Cette nouvelle release ajoute le support stable de l&#039;[[APF28]], BR 2012.02, U-Boot 2012.04. Plus les corrections de bugs et les améliorations d&#039;utilisation habituelles bien sûr.&lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version-5-0-du-projet-armadeus].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====27 Janvier 2012: La release Armadeus 4.1 est sortie=====&lt;br /&gt;
Cette nouvelle release ajoute le pré-support (vraiment expérimental) de l&#039;[[APF28]], BR 2011.05, une meilleure intégration de BR, Linux 3.0 pour APF51 et de nouveaux packages orientés automatisation industrielle. Plus les corrections de bugs et les améliorations d&#039;utilisation habituelles bien sûr.&lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version-4-1-du-projet-armadeus].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====Certains membres d&#039;Armadeus Project tiendront un stand (71) aux RMLL 2011 à Strasbourg  (du 11 au 14 Juillet)=====&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====9 Juillet 2011: La release Armadeus 4.0 est sortie=====&lt;br /&gt;
Cette nouvelle release ajoute le support pour l&#039;[[APF51]] , BR 2010.11 et continue le travail d&#039;intégration (expérimental) de Linux 2.6.38 pour APF27/PPS et APF9328.&lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version-40-du-projet-armadeus].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====1er Mai 2011: Le module [[APF51]] et sa carte d&#039;accueil [[APF51Dev]] sont disponibles=====&lt;br /&gt;
Ces nouvelles cartes surpuissantes ( ;-) ) sont disponible dans la boutique en ligne d&#039;Armadeus Systems.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====3 Mars 2011: [[Release_3.4|La release Armadeus 3.4]] est sortie=====&lt;br /&gt;
Cette nouvelle release ajoute le support pour la carte d&#039;accueil [[APF27_PPS]] et continue le travail d&#039;intégration (expérimental) de Linux 2.6.38 et Buildroot 2010.xx.&lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version 34-du- projet-armadeus]. &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====30 Juillet 2010: [[Release_3.3|La release Armadeus 3.3]] est sortie=====&lt;br /&gt;
Cette nouvelle release améliore le support pour l&#039;[[Wireless_extension_board|APW]], WiFi, Bluetooth, GPS, ajoute Qt 4.5.3, BR 2010.05 &amp;amp; U-Boot 2010.03 (expérimental), etc... &lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/2010/08/24/27281.html].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Janvier 2010: La carte APW est disponible=====&lt;br /&gt;
La nouvelle carte [[Wireless_extension_board|APW]] (extension &amp;quot;Wireless&amp;quot; pour l&#039;APF27) est disponible dans la boutique en ligne d&#039;Armadeus Systems.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====1er Décembre 2009: [[Release_3.2|La release Armadeus 3.2]] est sortie=====&lt;br /&gt;
La nouvelle release Armadeus 3.2 améliore le support [[APF27]], ajoute un écran 7 pouces, de nouveaux packages (pygame, xenomai, etc...), migration svn vers git, etc... &lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/2009/12/02/26228.html]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====29 Juin 2009: La release Armadeus 3.1 est sortie, suivant la disponibilité des [[APF27Dev|APF27DevFull]]=====&lt;br /&gt;
La nouvelle release Armadeus 3.1 supporte désormais Linux 2.6.29, GDB 6.7.1, la sortie HDMI de l&#039;APF27DevFull, le FPGA de l&#039;APF27 et une foultitude de nouveautés.&amp;lt;br&amp;gt;&lt;br /&gt;
Elle peut être téléchargée sous forme d&#039;archive à [http://sourceforge.net/project/showfiles.php?group_id=122057 l&#039;endroit habituel.]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====26 Février 2009: La release [[Armadeus 3]] est sortie, juste après les [[APF27]]=====&lt;br /&gt;
La nouvelle release Armadeus 3.0 supporte la nouvelle carte d&#039;Armadeus Systems ([[APF27]]), Linux 2.6.27, GCC 4.2.1, U-Boot 1.3.4 et une foultitude de nouveautés.&amp;lt;br&amp;gt;&lt;br /&gt;
Elle peut être téléchargée sous forme d&#039;archive à l&#039;endroit habituel: http://sourceforge.net/projects/armadeus&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====20 Mai 2008: Les cartes DevFull sont arrivées=====&lt;br /&gt;
Les cartes de développement [[APF9328DevFull|DevFull]] sont désormais produites et seront bientôt en vente à tarif préférentiel (pour les membres d&#039;Armadeus Project) dans le [http://www.store.armadeus.com/index.php?language=fr magasin en ligne d&#039;armadeus systems]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Sept. 2007: Des cartes APF9328 ont été reçues &amp;amp; les premiers prototypes de DevFull sont en test=====&lt;br /&gt;
Toutes les cartes sont désormais disponibles. Le DevFull fonctionne bien et sera vraisemblablement disponible vers la fin de l&#039;année.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====10 Juin 2007: Des DevLight et des LCD_Adapt ont été reçues, mais nous attendons toujours les APF9328 :-( !=====&lt;br /&gt;
Des DevLight et des LCD_Adapt ont été reçues, mais nous attendons toujours les APF9328. Date de livraison: fin Juin ??&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====26 Mar. 2007: des DevLight et des LCD_Adapt ont été commandées !=====&lt;br /&gt;
De nouvelles DevLight ont été commandées ! Date de livraison: semaine 17/18 (mi-Avril)&lt;br /&gt;
&lt;br /&gt;
Les LCD_Adapter ont été commandées aussi. Date de livraison: semaine 18/19&lt;br /&gt;
&lt;br /&gt;
=====22 Mars 2007: Rupture de stock sur les DevLight=====&lt;br /&gt;
Devant l&#039;arrivée massive de nouveaux membres, nous sommes en rupture de stock de DevLight. De nouvelles cartes ont été commandées mais elles ne seront disponibles que mi-Avril.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====01 Mars 2007: Article dans GLMF=====&lt;br /&gt;
Le magazine français GNU/Linux Magazine France (Linux Mag) a publié ce mois-ci notre article de présentation de l&#039;association&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====09 Fev. 2007: ça y est la V2.0 est sortie !=====&lt;br /&gt;
La version 2.0 est (enfin ;-) ) disponible. Pour la charger, RDV sur Sourceforge... Maintenant les choses sérieuses vont pouvoir commencer !&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====05 Nov. 2006: Les APF DevLight sont prêtes !=====&lt;br /&gt;
&lt;br /&gt;
Nous pouvons désormais accueillir 50 nouveaux membres ! &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Oct. 2006: Les cartes APF DevLight seront bientôt là=====&lt;br /&gt;
Les cartes DevLight (de développement) sont en cours de production et seront disponibles fin Octobre. &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====12 Sept. 2006: Les cartes APF DevLight sont commandées=====&lt;br /&gt;
Nico a commandé 50 cartes APF DevLight aujourd&#039;hui. Elles devraient arriver mi-Octobre. Elles permettront à un plus grand nombre de personnes de rejoindre le projet bientôt ! :-). &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====10 Sept. 2006: Le Wiki et le site Web sont presques prêts=====&lt;br /&gt;
250 ans (et quelques mois) après la naissance de notre idole Wolfgang, un nouveau génie est apparu sur Terre: le projet Armadeus... ;-) &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Template:DernièresNouvelles|Voir toutes les nouvelles]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Template:Derni%C3%A8resNouvelles&amp;diff=15070</id>
		<title>Template:DernièresNouvelles</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Template:Derni%C3%A8resNouvelles&amp;diff=15070"/>
		<updated>2022-02-21T08:27:37Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* 18 Février 2022: Container docker pour vieux BSP */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=====18 Février 2022: Container docker pour vieux BSP=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[2022_02_18_Container_docker_pour_vieux_BSP| Comment utiliser une vieille distribution Linux sur un ordinateur récent pour pouvoir compiler le BSP pour apf27 en toute tranquilité]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====7 Août 2018: La nouvelle version [[Releases#Release_7.0_.28latest_stable_one.29|Armadeus 7.0]] est disponible=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Cette nouvelle [[Releases#Release_7.0_.28latest_stable_one.29| version]] ajoute le support des nouveaux SoM [[OPOS6UL]] et [[OPOS6UL_NANO]] et finalise la mise à jour vers Buildroot 2017.02.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====11 Août 2015: La nouvelle version [[Releases#Release_6.0_.28latest_stable_one.29|Armadeus 6.0]] est disponible=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Cette nouvelle [[Releases#Release_6.0_.28latest_stable_one.29| version]] ajoute le support des nouveaux modules Armadeus ([[APF6]] et [[APF6_SP]]) et finalise la mise à jour vers Buildroot 2015.02 et U-Boot 2014.07+. Elle améliore aussi le support pour les noyaux Linux vanilla (3.19+).&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====25 Décembre 2013: La nouvelle version [[Releases#Release_5.3_.28latest_stable_one.29|Armadeus 5.3]] est disponible=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Cette nouvelle [[Releases#Release_5.3_.28latest_stable_one.29| version]] finalise la mise à jour vers Buildroot 2013.05 et U-Boot 2013.04. Elle ajoute aussi le support pour les noyaux Linux vanilla (3.1x). L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version-5-3-du-bsp-du-projet-armadeus].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====12 Octobre 2012: Nouvelle version du logiciel Armadeus: [[Releases#Release_5.2_.28latest_stable_one.29|Armadeus 5.2]] est disponible=====&lt;br /&gt;
Cette nouvelle [[Releases#Release_5.2_.28latest_stable_one.29| version]] ajoute de nouvelles fonctionnalitées a la carte [[APF28]] , corrige un probleme sur l interface wifi de la carte PPS et ajoute plusieurs ameliorations au logiciel Armadeus &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====12 Août 2012: La release Armadeus 5.0 est sortie=====&lt;br /&gt;
Cette nouvelle release ajoute le support stable de l&#039;[[APF28]], BR 2012.02, U-Boot 2012.04. Plus les corrections de bugs et les améliorations d&#039;utilisation habituelles bien sûr.&lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version-5-0-du-projet-armadeus].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====27 Janvier 2012: La release Armadeus 4.1 est sortie=====&lt;br /&gt;
Cette nouvelle release ajoute le pré-support (vraiment expérimental) de l&#039;[[APF28]], BR 2011.05, une meilleure intégration de BR, Linux 3.0 pour APF51 et de nouveaux packages orientés automatisation industrielle. Plus les corrections de bugs et les améliorations d&#039;utilisation habituelles bien sûr.&lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version-4-1-du-projet-armadeus].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====Certains membres d&#039;Armadeus Project tiendront un stand (71) aux RMLL 2011 à Strasbourg  (du 11 au 14 Juillet)=====&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====9 Juillet 2011: La release Armadeus 4.0 est sortie=====&lt;br /&gt;
Cette nouvelle release ajoute le support pour l&#039;[[APF51]] , BR 2010.11 et continue le travail d&#039;intégration (expérimental) de Linux 2.6.38 pour APF27/PPS et APF9328.&lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version-40-du-projet-armadeus].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====1er Mai 2011: Le module [[APF51]] et sa carte d&#039;accueil [[APF51Dev]] sont disponibles=====&lt;br /&gt;
Ces nouvelles cartes surpuissantes ( ;-) ) sont disponible dans la boutique en ligne d&#039;Armadeus Systems.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====3 Mars 2011: [[Release_3.4|La release Armadeus 3.4]] est sortie=====&lt;br /&gt;
Cette nouvelle release ajoute le support pour la carte d&#039;accueil [[APF27_PPS]] et continue le travail d&#039;intégration (expérimental) de Linux 2.6.38 et Buildroot 2010.xx.&lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version 34-du- projet-armadeus]. &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====30 Juillet 2010: [[Release_3.3|La release Armadeus 3.3]] est sortie=====&lt;br /&gt;
Cette nouvelle release améliore le support pour l&#039;[[Wireless_extension_board|APW]], WiFi, Bluetooth, GPS, ajoute Qt 4.5.3, BR 2010.05 &amp;amp; U-Boot 2010.03 (expérimental), etc... &lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/2010/08/24/27281.html].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Janvier 2010: La carte APW est disponible=====&lt;br /&gt;
La nouvelle carte [[Wireless_extension_board|APW]] (extension &amp;quot;Wireless&amp;quot; pour l&#039;APF27) est disponible dans la boutique en ligne d&#039;Armadeus Systems.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====1er Décembre 2009: [[Release_3.2|La release Armadeus 3.2]] est sortie=====&lt;br /&gt;
La nouvelle release Armadeus 3.2 améliore le support [[APF27]], ajoute un écran 7 pouces, de nouveaux packages (pygame, xenomai, etc...), migration svn vers git, etc... &lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/2009/12/02/26228.html]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====29 Juin 2009: La release Armadeus 3.1 est sortie, suivant la disponibilité des [[APF27Dev|APF27DevFull]]=====&lt;br /&gt;
La nouvelle release Armadeus 3.1 supporte désormais Linux 2.6.29, GDB 6.7.1, la sortie HDMI de l&#039;APF27DevFull, le FPGA de l&#039;APF27 et une foultitude de nouveautés.&amp;lt;br&amp;gt;&lt;br /&gt;
Elle peut être téléchargée sous forme d&#039;archive à [http://sourceforge.net/project/showfiles.php?group_id=122057 l&#039;endroit habituel.]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====26 Février 2009: La release [[Armadeus 3]] est sortie, juste après les [[APF27]]=====&lt;br /&gt;
La nouvelle release Armadeus 3.0 supporte la nouvelle carte d&#039;Armadeus Systems ([[APF27]]), Linux 2.6.27, GCC 4.2.1, U-Boot 1.3.4 et une foultitude de nouveautés.&amp;lt;br&amp;gt;&lt;br /&gt;
Elle peut être téléchargée sous forme d&#039;archive à l&#039;endroit habituel: http://sourceforge.net/projects/armadeus&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====20 Mai 2008: Les cartes DevFull sont arrivées=====&lt;br /&gt;
Les cartes de développement [[APF9328DevFull|DevFull]] sont désormais produites et seront bientôt en vente à tarif préférentiel (pour les membres d&#039;Armadeus Project) dans le [http://www.store.armadeus.com/index.php?language=fr magasin en ligne d&#039;armadeus systems]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Sept. 2007: Des cartes APF9328 ont été reçues &amp;amp; les premiers prototypes de DevFull sont en test=====&lt;br /&gt;
Toutes les cartes sont désormais disponibles. Le DevFull fonctionne bien et sera vraisemblablement disponible vers la fin de l&#039;année.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====10 Juin 2007: Des DevLight et des LCD_Adapt ont été reçues, mais nous attendons toujours les APF9328 :-( !=====&lt;br /&gt;
Des DevLight et des LCD_Adapt ont été reçues, mais nous attendons toujours les APF9328. Date de livraison: fin Juin ??&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====26 Mar. 2007: des DevLight et des LCD_Adapt ont été commandées !=====&lt;br /&gt;
De nouvelles DevLight ont été commandées ! Date de livraison: semaine 17/18 (mi-Avril)&lt;br /&gt;
&lt;br /&gt;
Les LCD_Adapter ont été commandées aussi. Date de livraison: semaine 18/19&lt;br /&gt;
&lt;br /&gt;
=====22 Mars 2007: Rupture de stock sur les DevLight=====&lt;br /&gt;
Devant l&#039;arrivée massive de nouveaux membres, nous sommes en rupture de stock de DevLight. De nouvelles cartes ont été commandées mais elles ne seront disponibles que mi-Avril.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====01 Mars 2007: Article dans GLMF=====&lt;br /&gt;
Le magazine français GNU/Linux Magazine France (Linux Mag) a publié ce mois-ci notre article de présentation de l&#039;association&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====09 Fev. 2007: ça y est la V2.0 est sortie !=====&lt;br /&gt;
La version 2.0 est (enfin ;-) ) disponible. Pour la charger, RDV sur Sourceforge... Maintenant les choses sérieuses vont pouvoir commencer !&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====05 Nov. 2006: Les APF DevLight sont prêtes !=====&lt;br /&gt;
&lt;br /&gt;
Nous pouvons désormais accueillir 50 nouveaux membres ! &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Oct. 2006: Les cartes APF DevLight seront bientôt là=====&lt;br /&gt;
Les cartes DevLight (de développement) sont en cours de production et seront disponibles fin Octobre. &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====12 Sept. 2006: Les cartes APF DevLight sont commandées=====&lt;br /&gt;
Nico a commandé 50 cartes APF DevLight aujourd&#039;hui. Elles devraient arriver mi-Octobre. Elles permettront à un plus grand nombre de personnes de rejoindre le projet bientôt ! :-). &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====10 Sept. 2006: Le Wiki et le site Web sont presques prêts=====&lt;br /&gt;
250 ans (et quelques mois) après la naissance de notre idole Wolfgang, un nouveau génie est apparu sur Terre: le projet Armadeus... ;-) &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Template:DernièresNouvelles|Voir toutes les nouvelles]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Template:Derni%C3%A8resNouvelles&amp;diff=15069</id>
		<title>Template:DernièresNouvelles</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Template:Derni%C3%A8resNouvelles&amp;diff=15069"/>
		<updated>2022-02-18T16:27:23Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;__NOTOC__&lt;br /&gt;
&lt;br /&gt;
=====18 Février 2022: Container docker pour vieux BSP=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[2022_02_18_Container_docker_pour_vieux_BSP| Comment utiliser une vieille distribution Linux pour pouvoir compiler le BSP pour apf27 en toute tranquilité]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
=====7 Août 2018: La nouvelle version [[Releases#Release_7.0_.28latest_stable_one.29|Armadeus 7.0]] est disponible=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Cette nouvelle [[Releases#Release_7.0_.28latest_stable_one.29| version]] ajoute le support des nouveaux SoM [[OPOS6UL]] et [[OPOS6UL_NANO]] et finalise la mise à jour vers Buildroot 2017.02.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====11 Août 2015: La nouvelle version [[Releases#Release_6.0_.28latest_stable_one.29|Armadeus 6.0]] est disponible=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Cette nouvelle [[Releases#Release_6.0_.28latest_stable_one.29| version]] ajoute le support des nouveaux modules Armadeus ([[APF6]] et [[APF6_SP]]) et finalise la mise à jour vers Buildroot 2015.02 et U-Boot 2014.07+. Elle améliore aussi le support pour les noyaux Linux vanilla (3.19+).&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=====25 Décembre 2013: La nouvelle version [[Releases#Release_5.3_.28latest_stable_one.29|Armadeus 5.3]] est disponible=====&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
Cette nouvelle [[Releases#Release_5.3_.28latest_stable_one.29| version]] finalise la mise à jour vers Buildroot 2013.05 et U-Boot 2013.04. Elle ajoute aussi le support pour les noyaux Linux vanilla (3.1x). L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version-5-3-du-bsp-du-projet-armadeus].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====12 Octobre 2012: Nouvelle version du logiciel Armadeus: [[Releases#Release_5.2_.28latest_stable_one.29|Armadeus 5.2]] est disponible=====&lt;br /&gt;
Cette nouvelle [[Releases#Release_5.2_.28latest_stable_one.29| version]] ajoute de nouvelles fonctionnalitées a la carte [[APF28]] , corrige un probleme sur l interface wifi de la carte PPS et ajoute plusieurs ameliorations au logiciel Armadeus &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====12 Août 2012: La release Armadeus 5.0 est sortie=====&lt;br /&gt;
Cette nouvelle release ajoute le support stable de l&#039;[[APF28]], BR 2012.02, U-Boot 2012.04. Plus les corrections de bugs et les améliorations d&#039;utilisation habituelles bien sûr.&lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version-5-0-du-projet-armadeus].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====27 Janvier 2012: La release Armadeus 4.1 est sortie=====&lt;br /&gt;
Cette nouvelle release ajoute le pré-support (vraiment expérimental) de l&#039;[[APF28]], BR 2011.05, une meilleure intégration de BR, Linux 3.0 pour APF51 et de nouveaux packages orientés automatisation industrielle. Plus les corrections de bugs et les améliorations d&#039;utilisation habituelles bien sûr.&lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version-4-1-du-projet-armadeus].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====Certains membres d&#039;Armadeus Project tiendront un stand (71) aux RMLL 2011 à Strasbourg  (du 11 au 14 Juillet)=====&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====9 Juillet 2011: La release Armadeus 4.0 est sortie=====&lt;br /&gt;
Cette nouvelle release ajoute le support pour l&#039;[[APF51]] , BR 2010.11 et continue le travail d&#039;intégration (expérimental) de Linux 2.6.38 pour APF27/PPS et APF9328.&lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version-40-du-projet-armadeus].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====1er Mai 2011: Le module [[APF51]] et sa carte d&#039;accueil [[APF51Dev]] sont disponibles=====&lt;br /&gt;
Ces nouvelles cartes surpuissantes ( ;-) ) sont disponible dans la boutique en ligne d&#039;Armadeus Systems.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====3 Mars 2011: [[Release_3.4|La release Armadeus 3.4]] est sortie=====&lt;br /&gt;
Cette nouvelle release ajoute le support pour la carte d&#039;accueil [[APF27_PPS]] et continue le travail d&#039;intégration (expérimental) de Linux 2.6.38 et Buildroot 2010.xx.&lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/news/sortie-de-la-version 34-du- projet-armadeus]. &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====30 Juillet 2010: [[Release_3.3|La release Armadeus 3.3]] est sortie=====&lt;br /&gt;
Cette nouvelle release améliore le support pour l&#039;[[Wireless_extension_board|APW]], WiFi, Bluetooth, GPS, ajoute Qt 4.5.3, BR 2010.05 &amp;amp; U-Boot 2010.03 (expérimental), etc... &lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/2010/08/24/27281.html].&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Janvier 2010: La carte APW est disponible=====&lt;br /&gt;
La nouvelle carte [[Wireless_extension_board|APW]] (extension &amp;quot;Wireless&amp;quot; pour l&#039;APF27) est disponible dans la boutique en ligne d&#039;Armadeus Systems.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====1er Décembre 2009: [[Release_3.2|La release Armadeus 3.2]] est sortie=====&lt;br /&gt;
La nouvelle release Armadeus 3.2 améliore le support [[APF27]], ajoute un écran 7 pouces, de nouveaux packages (pygame, xenomai, etc...), migration svn vers git, etc... &lt;br /&gt;
L&#039;annonce sur LinuxFr: [http://linuxfr.org/2009/12/02/26228.html]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====29 Juin 2009: La release Armadeus 3.1 est sortie, suivant la disponibilité des [[APF27Dev|APF27DevFull]]=====&lt;br /&gt;
La nouvelle release Armadeus 3.1 supporte désormais Linux 2.6.29, GDB 6.7.1, la sortie HDMI de l&#039;APF27DevFull, le FPGA de l&#039;APF27 et une foultitude de nouveautés.&amp;lt;br&amp;gt;&lt;br /&gt;
Elle peut être téléchargée sous forme d&#039;archive à [http://sourceforge.net/project/showfiles.php?group_id=122057 l&#039;endroit habituel.]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====26 Février 2009: La release [[Armadeus 3]] est sortie, juste après les [[APF27]]=====&lt;br /&gt;
La nouvelle release Armadeus 3.0 supporte la nouvelle carte d&#039;Armadeus Systems ([[APF27]]), Linux 2.6.27, GCC 4.2.1, U-Boot 1.3.4 et une foultitude de nouveautés.&amp;lt;br&amp;gt;&lt;br /&gt;
Elle peut être téléchargée sous forme d&#039;archive à l&#039;endroit habituel: http://sourceforge.net/projects/armadeus&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====20 Mai 2008: Les cartes DevFull sont arrivées=====&lt;br /&gt;
Les cartes de développement [[APF9328DevFull|DevFull]] sont désormais produites et seront bientôt en vente à tarif préférentiel (pour les membres d&#039;Armadeus Project) dans le [http://www.store.armadeus.com/index.php?language=fr magasin en ligne d&#039;armadeus systems]&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Sept. 2007: Des cartes APF9328 ont été reçues &amp;amp; les premiers prototypes de DevFull sont en test=====&lt;br /&gt;
Toutes les cartes sont désormais disponibles. Le DevFull fonctionne bien et sera vraisemblablement disponible vers la fin de l&#039;année.&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====10 Juin 2007: Des DevLight et des LCD_Adapt ont été reçues, mais nous attendons toujours les APF9328 :-( !=====&lt;br /&gt;
Des DevLight et des LCD_Adapt ont été reçues, mais nous attendons toujours les APF9328. Date de livraison: fin Juin ??&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====26 Mar. 2007: des DevLight et des LCD_Adapt ont été commandées !=====&lt;br /&gt;
De nouvelles DevLight ont été commandées ! Date de livraison: semaine 17/18 (mi-Avril)&lt;br /&gt;
&lt;br /&gt;
Les LCD_Adapter ont été commandées aussi. Date de livraison: semaine 18/19&lt;br /&gt;
&lt;br /&gt;
=====22 Mars 2007: Rupture de stock sur les DevLight=====&lt;br /&gt;
Devant l&#039;arrivée massive de nouveaux membres, nous sommes en rupture de stock de DevLight. De nouvelles cartes ont été commandées mais elles ne seront disponibles que mi-Avril.&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====01 Mars 2007: Article dans GLMF=====&lt;br /&gt;
Le magazine français GNU/Linux Magazine France (Linux Mag) a publié ce mois-ci notre article de présentation de l&#039;association&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====09 Fev. 2007: ça y est la V2.0 est sortie !=====&lt;br /&gt;
La version 2.0 est (enfin ;-) ) disponible. Pour la charger, RDV sur Sourceforge... Maintenant les choses sérieuses vont pouvoir commencer !&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====05 Nov. 2006: Les APF DevLight sont prêtes !=====&lt;br /&gt;
&lt;br /&gt;
Nous pouvons désormais accueillir 50 nouveaux membres ! &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====15 Oct. 2006: Les cartes APF DevLight seront bientôt là=====&lt;br /&gt;
Les cartes DevLight (de développement) sont en cours de production et seront disponibles fin Octobre. &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====12 Sept. 2006: Les cartes APF DevLight sont commandées=====&lt;br /&gt;
Nico a commandé 50 cartes APF DevLight aujourd&#039;hui. Elles devraient arriver mi-Octobre. Elles permettront à un plus grand nombre de personnes de rejoindre le projet bientôt ! :-). &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
=====10 Sept. 2006: Le Wiki et le site Web sont presques prêts=====&lt;br /&gt;
250 ans (et quelques mois) après la naissance de notre idole Wolfgang, un nouveau génie est apparu sur Terre: le projet Armadeus... ;-) &amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Template:DernièresNouvelles|Voir toutes les nouvelles]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15068</id>
		<title>2022 02 18 Container docker pour vieux BSP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15068"/>
		<updated>2022-02-18T16:24:38Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Le Dockerfile Armadeus */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Avec la pénurie de composants actuelle beaucoup d&#039;entreprises sont contraintes de modifier leurs cartes électroniques de manière à supporter des variantes de leurs composants. Ce changement de composants impose souvent de retoucher le logiciel et de «remettre les mains dans le code» archivé depuis belle lurette.&lt;br /&gt;
Le temps du développement n&#039;étant pas celui de la production, les projets sont souvent «figés» de longue date. Et les machines qui permettaient de compiler le matériel sont totalement obsolète quand le produit est en «full-prod».&lt;br /&gt;
&lt;br /&gt;
Réinstaller les vieux logiciels qui ont permis de développer le produit se révèle souvent une gageur sur des systèmes actuels.&lt;br /&gt;
&lt;br /&gt;
Heureusement pour Armadeus, tout le développement de ses cartes se fait sous Linux. Et nous avons aujourd&#039;hui un outils formidable pour faire tourner de vieux logiciel sur des systèmes «à jour» : &#039;&#039;&#039;la virtualisation légère&#039;&#039;&#039;, avec notamment le logiciel [https://fr.wikipedia.org/wiki/Docker_(logiciel) docker].&lt;br /&gt;
&lt;br /&gt;
= Docker, la virtualisation légère =&lt;br /&gt;
&lt;br /&gt;
Selon [https://fr.wikipedia.org/wiki/Docker_(logiciel) Wikipedia] Docker est «une plateforme permettant de lancer certaines applications dans des conteneurs logiciels. Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution pratique de virtualisation qui exécute les processus de façon isolée2.»&lt;br /&gt;
&lt;br /&gt;
Dit simplement, Docker est une machine virtuelle qui émule le système d&#039;exploitation et les librairies mais pas les instructions machine. Ce qui en fait une machine virtuelle très performante.&lt;br /&gt;
&lt;br /&gt;
Docker est très intéressant pour faire tourner un programme dans un environnement logiciels contrôlé avec des versions figées. C&#039;est par exemple le cas pour compiler un BSP en utilisant une vieille distribution linux.&lt;br /&gt;
&lt;br /&gt;
= Compilation du BSP armadeus pour APF27 =&lt;br /&gt;
&lt;br /&gt;
L&#039;APF27 est typiquement la carte qui est encore actuellement en production chez armadeus mais dont le BSP n&#039;est plus utilisable avec les outils actuels. À l&#039;origine, le BSP de l&#039;apf27 était compilé sur des version d&#039;ubuntu datant des années 2010 !&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut pouvoir reprendre son  projet sans avoir à redémarrer un ordinateur de cette époque, voici comment faire avec docker.&lt;br /&gt;
L&#039;exemple de cet article a été réalisé sur une distribution ubuntu version Ubuntu 20.04.3 LTS.&lt;br /&gt;
&lt;br /&gt;
== Lancement de Docker ==&lt;br /&gt;
&lt;br /&gt;
Docker est un «deamon» qu&#039;il faut lancer en tâche de fond sur son système. Sur Ubuntu c&#039;est systemd qui contrôle ça :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo systemctl start docker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que docker tourne en tâche de fond, on peu lancer directement une console `bash` ubuntu version 12.04 avec la commande&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker run -it ubuntu:12.04 /bin/bash&lt;br /&gt;
root@1a5b88e1759c:/# cat /etc/lsb-release &lt;br /&gt;
DISTRIB_ID=Ubuntu&lt;br /&gt;
DISTRIB_RELEASE=12.04&lt;br /&gt;
DISTRIB_CODENAME=precise&lt;br /&gt;
DISTRIB_DESCRIPTION=&amp;quot;Ubuntu 12.04.5 LTS&amp;quot;&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un container existe déjà sur les serveurs docker avec une version minimaliste. En tapant la commande ci-dessus, docker va simplement télécharger le container pour le lancer sur la machine.&lt;br /&gt;
&lt;br /&gt;
Notre shell bash tourne bien dans une distribution ubuntu version 12.04. Pour visualiser les container actifs dans docker on lancera la commande suivant dans une autre console :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker ps&lt;br /&gt;
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES&lt;br /&gt;
1a5b88e1759c   ubuntu:12.04   &amp;quot;/bin/bash&amp;quot;   2 minutes ago   Up 2 minutes             stoic_noether&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on quitte la console avec `exit`, le container sera mis en inactif et il faudra le relancer pour pouvoir s&#039;y ré-attacher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@1a5b88e1759c:/# exit&lt;br /&gt;
exit&lt;br /&gt;
$ sudo docker container start stoic_noether&lt;br /&gt;
stoic_noether&lt;br /&gt;
$ sudo docker attach stoic_noether&lt;br /&gt;
root@1a5b88e1759c:/# history&lt;br /&gt;
    1  ls&lt;br /&gt;
    2  top&lt;br /&gt;
    3  cat /etc/lsb-release &lt;br /&gt;
    4  exit&lt;br /&gt;
    5  history&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;on se trouve dans la console on peut tenter de télécharger et compiler le bsp armadeus-7.0 par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
root@3264de07ca45:/# cd /opt/&lt;br /&gt;
root@3264de07ca45:/opt# mkdir bsp&lt;br /&gt;
root@3264de07ca45:/opt# cd bsp/&lt;br /&gt;
root@3264de07ca45:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download&lt;br /&gt;
bash: wget: command not found&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
E: Unable to locate package wget&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get update&lt;br /&gt;
Ign http://archive.ubuntu.com precise Release.gpg&lt;br /&gt;
[...]&lt;br /&gt;
E: Some index files failed to download. They have been ignored, or old ones used instead.&lt;br /&gt;
root@3264de07ca45:/opt/bsp# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ach! Très vite on se rend compte que la distribution fournie par docker est bien trop minimaliste pour que l&#039;on puisse travailler avec. Nous allons donc devoir construire notre propre container qui partira de cette distribution pour la customiser.&lt;br /&gt;
&lt;br /&gt;
== Construction d&#039;un container ==&lt;br /&gt;
&lt;br /&gt;
Pour construire son propre container, il faut créer un fichier de configuration avec le nom &#039;&#039;&#039;Dockerfile&#039;&#039;&#039;. Dans lequel on donnera le container de départ :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;INI&amp;quot;&amp;gt;&lt;br /&gt;
#Simple commentaire d&#039;entête&lt;br /&gt;
FROM ubuntu:12.04&lt;br /&gt;
&lt;br /&gt;
# on ajoute les dépots apt encore accessible aujourd&#039;hui&lt;br /&gt;
&lt;br /&gt;
# Sources from https://gist.github.com/ivomts/4558134&lt;br /&gt;
RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et on construit le container en lui donnant un nom et une version :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker build -t apf27bsp:0.1 .&lt;br /&gt;
Sending build context to Docker daemon   2.56kB&lt;br /&gt;
Step 1/2 : FROM ubuntu:12.04&lt;br /&gt;
 ---&amp;gt; 5b117edd0b76&lt;br /&gt;
Step 2/2 : RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ---&amp;gt; Running in 0b854be1e236&lt;br /&gt;
Removing intermediate container 0b854be1e236&lt;br /&gt;
 ---&amp;gt; 9c3cb7850267&lt;br /&gt;
Successfully built 9c3cb7850267&lt;br /&gt;
Successfully tagged apf27bsp:0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le container ainsi construit peut être lancer avec la commande que l&#039;on connaît bien maintenant :&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
$ sudo docker container run -it apf27bsp:0.1 /bin/bash&lt;br /&gt;
root@d6f2e3190f9b:/# apt-get update&lt;br /&gt;
Get:1 http://old-releases.ubuntu.com precise Release.gpg [198 B]&lt;br /&gt;
...&lt;br /&gt;
root@d6f2e3190f9b:/# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
The following extra packages will be installed:&lt;br /&gt;
  libidn11&lt;br /&gt;
The following NEW packages will be installed:&lt;br /&gt;
  libidn11 wget&lt;br /&gt;
0 upgraded, 2 newly installed, 0 to remove and 27 not upgraded.&lt;br /&gt;
Need to get 392 kB of archives.&lt;br /&gt;
After this operation, 970 kB of additional disk space will be used.&lt;br /&gt;
Do you want to continue [Y/n]? y&lt;br /&gt;
...&lt;br /&gt;
root@d6f2e3190f9b:/# cd /opt/&lt;br /&gt;
root@d6f2e3190f9b:/opt# ls&lt;br /&gt;
root@d6f2e3190f9b:/opt# mkdir bsp&lt;br /&gt;
root@d6f2e3190f9b:/opt# cd bsp/&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download --no-check-certificate&lt;br /&gt;
...&lt;br /&gt;
Saving to: `download&#039;&lt;br /&gt;
&lt;br /&gt;
100%[=========================================================================================================================================================================&amp;gt;] 6,572,959   1.87M/s   in 3.8s    &lt;br /&gt;
&lt;br /&gt;
2022-02-18 15:58:54 (1.67 MB/s) - `download&#039; saved [6572959/6572959]&lt;br /&gt;
&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# mv download armadeus-7.0.tar.bz2&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# apt-get install bzip2&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# tar jxf armadeus-7.0.tar.bz2 &lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp#&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Très vite on se rend compte que nous avons beaucoup de logiciels à télécharger et installer. Le problème des containers c&#039;est que rien n&#039;est enregistré, donc à chaque fois qu&#039;on lance le container avec la commande `run` tout est remis à zéro.&lt;br /&gt;
&lt;br /&gt;
Il devient donc indispensable d&#039;ajouter les commandes de mise à jour des packages dans le `Dockerfile`. Heureusement, Armadeus propose un script pour ça dans son BSP comme nous allons le voir par la suite.&lt;br /&gt;
&lt;br /&gt;
== Montage de répertoires «host» ==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer les fichiers que l&#039;on compile avec le container il va être nécessaire de «monter» un répertoire de son ordinateur dans le container.&lt;br /&gt;
&lt;br /&gt;
Ce montage se fait au lancement du container. Par exemple si nous souhaitons monter le répertoire de téléchargement des packets buildroot ainsi que le répertoire du bsp armadeus nous utiliserons la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker run --mount src=/downloads,target=/downloads,type=bind \&lt;br /&gt;
                --mount src=/home/user/prj/armadeusbsp,target=/opt/bsp/,type=bind \&lt;br /&gt;
                -it apf27bsp:1.0 /bin/bash&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous mutualiserons ainsi le répertoires /downloads de notre machine et nous récupérerons les binaires générés à la compilation du bsp dans le container.&lt;br /&gt;
&lt;br /&gt;
== Le Dockerfile Armadeus ==&lt;br /&gt;
&lt;br /&gt;
Armadeus fourni le Dockerfile pour compiler l&#039;apf27, il suffit donc de le construire en se rendant dans le répertoire `scripts/docker/apf27-ubuntu-12.04` du bsp. Un fichier README.md donne la marche à suivre pour le construire et le lancer.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15067</id>
		<title>2022 02 18 Container docker pour vieux BSP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15067"/>
		<updated>2022-02-18T16:16:07Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Construction d&amp;#039;un container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Avec la pénurie de composants actuelle beaucoup d&#039;entreprises sont contraintes de modifier leurs cartes électroniques de manière à supporter des variantes de leurs composants. Ce changement de composants impose souvent de retoucher le logiciel et de «remettre les mains dans le code» archivé depuis belle lurette.&lt;br /&gt;
Le temps du développement n&#039;étant pas celui de la production, les projets sont souvent «figés» de longue date. Et les machines qui permettaient de compiler le matériel sont totalement obsolète quand le produit est en «full-prod».&lt;br /&gt;
&lt;br /&gt;
Réinstaller les vieux logiciels qui ont permis de développer le produit se révèle souvent une gageur sur des systèmes actuels.&lt;br /&gt;
&lt;br /&gt;
Heureusement pour Armadeus, tout le développement de ses cartes se fait sous Linux. Et nous avons aujourd&#039;hui un outils formidable pour faire tourner de vieux logiciel sur des systèmes «à jour» : &#039;&#039;&#039;la virtualisation légère&#039;&#039;&#039;, avec notamment le logiciel [https://fr.wikipedia.org/wiki/Docker_(logiciel) docker].&lt;br /&gt;
&lt;br /&gt;
= Docker, la virtualisation légère =&lt;br /&gt;
&lt;br /&gt;
Selon [https://fr.wikipedia.org/wiki/Docker_(logiciel) Wikipedia] Docker est «une plateforme permettant de lancer certaines applications dans des conteneurs logiciels. Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution pratique de virtualisation qui exécute les processus de façon isolée2.»&lt;br /&gt;
&lt;br /&gt;
Dit simplement, Docker est une machine virtuelle qui émule le système d&#039;exploitation et les librairies mais pas les instructions machine. Ce qui en fait une machine virtuelle très performante.&lt;br /&gt;
&lt;br /&gt;
Docker est très intéressant pour faire tourner un programme dans un environnement logiciels contrôlé avec des versions figées. C&#039;est par exemple le cas pour compiler un BSP en utilisant une vieille distribution linux.&lt;br /&gt;
&lt;br /&gt;
= Compilation du BSP armadeus pour APF27 =&lt;br /&gt;
&lt;br /&gt;
L&#039;APF27 est typiquement la carte qui est encore actuellement en production chez armadeus mais dont le BSP n&#039;est plus utilisable avec les outils actuels. À l&#039;origine, le BSP de l&#039;apf27 était compilé sur des version d&#039;ubuntu datant des années 2010 !&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut pouvoir reprendre son  projet sans avoir à redémarrer un ordinateur de cette époque, voici comment faire avec docker.&lt;br /&gt;
L&#039;exemple de cet article a été réalisé sur une distribution ubuntu version Ubuntu 20.04.3 LTS.&lt;br /&gt;
&lt;br /&gt;
== Lancement de Docker ==&lt;br /&gt;
&lt;br /&gt;
Docker est un «deamon» qu&#039;il faut lancer en tâche de fond sur son système. Sur Ubuntu c&#039;est systemd qui contrôle ça :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo systemctl start docker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que docker tourne en tâche de fond, on peu lancer directement une console `bash` ubuntu version 12.04 avec la commande&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker run -it ubuntu:12.04 /bin/bash&lt;br /&gt;
root@1a5b88e1759c:/# cat /etc/lsb-release &lt;br /&gt;
DISTRIB_ID=Ubuntu&lt;br /&gt;
DISTRIB_RELEASE=12.04&lt;br /&gt;
DISTRIB_CODENAME=precise&lt;br /&gt;
DISTRIB_DESCRIPTION=&amp;quot;Ubuntu 12.04.5 LTS&amp;quot;&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un container existe déjà sur les serveurs docker avec une version minimaliste. En tapant la commande ci-dessus, docker va simplement télécharger le container pour le lancer sur la machine.&lt;br /&gt;
&lt;br /&gt;
Notre shell bash tourne bien dans une distribution ubuntu version 12.04. Pour visualiser les container actifs dans docker on lancera la commande suivant dans une autre console :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker ps&lt;br /&gt;
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES&lt;br /&gt;
1a5b88e1759c   ubuntu:12.04   &amp;quot;/bin/bash&amp;quot;   2 minutes ago   Up 2 minutes             stoic_noether&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on quitte la console avec `exit`, le container sera mis en inactif et il faudra le relancer pour pouvoir s&#039;y ré-attacher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@1a5b88e1759c:/# exit&lt;br /&gt;
exit&lt;br /&gt;
$ sudo docker container start stoic_noether&lt;br /&gt;
stoic_noether&lt;br /&gt;
$ sudo docker attach stoic_noether&lt;br /&gt;
root@1a5b88e1759c:/# history&lt;br /&gt;
    1  ls&lt;br /&gt;
    2  top&lt;br /&gt;
    3  cat /etc/lsb-release &lt;br /&gt;
    4  exit&lt;br /&gt;
    5  history&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;on se trouve dans la console on peut tenter de télécharger et compiler le bsp armadeus-7.0 par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
root@3264de07ca45:/# cd /opt/&lt;br /&gt;
root@3264de07ca45:/opt# mkdir bsp&lt;br /&gt;
root@3264de07ca45:/opt# cd bsp/&lt;br /&gt;
root@3264de07ca45:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download&lt;br /&gt;
bash: wget: command not found&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
E: Unable to locate package wget&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get update&lt;br /&gt;
Ign http://archive.ubuntu.com precise Release.gpg&lt;br /&gt;
[...]&lt;br /&gt;
E: Some index files failed to download. They have been ignored, or old ones used instead.&lt;br /&gt;
root@3264de07ca45:/opt/bsp# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ach! Très vite on se rend compte que la distribution fournie par docker est bien trop minimaliste pour que l&#039;on puisse travailler avec. Nous allons donc devoir construire notre propre container qui partira de cette distribution pour la customiser.&lt;br /&gt;
&lt;br /&gt;
== Construction d&#039;un container ==&lt;br /&gt;
&lt;br /&gt;
Pour construire son propre container, il faut créer un fichier de configuration avec le nom &#039;&#039;&#039;Dockerfile&#039;&#039;&#039;. Dans lequel on donnera le container de départ :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;INI&amp;quot;&amp;gt;&lt;br /&gt;
#Simple commentaire d&#039;entête&lt;br /&gt;
FROM ubuntu:12.04&lt;br /&gt;
&lt;br /&gt;
# on ajoute les dépots apt encore accessible aujourd&#039;hui&lt;br /&gt;
&lt;br /&gt;
# Sources from https://gist.github.com/ivomts/4558134&lt;br /&gt;
RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et on construit le container en lui donnant un nom et une version :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker build -t apf27bsp:0.1 .&lt;br /&gt;
Sending build context to Docker daemon   2.56kB&lt;br /&gt;
Step 1/2 : FROM ubuntu:12.04&lt;br /&gt;
 ---&amp;gt; 5b117edd0b76&lt;br /&gt;
Step 2/2 : RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ---&amp;gt; Running in 0b854be1e236&lt;br /&gt;
Removing intermediate container 0b854be1e236&lt;br /&gt;
 ---&amp;gt; 9c3cb7850267&lt;br /&gt;
Successfully built 9c3cb7850267&lt;br /&gt;
Successfully tagged apf27bsp:0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le container ainsi construit peut être lancer avec la commande que l&#039;on connaît bien maintenant :&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
$ sudo docker container run -it apf27bsp:0.1 /bin/bash&lt;br /&gt;
root@d6f2e3190f9b:/# apt-get update&lt;br /&gt;
Get:1 http://old-releases.ubuntu.com precise Release.gpg [198 B]&lt;br /&gt;
...&lt;br /&gt;
root@d6f2e3190f9b:/# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
The following extra packages will be installed:&lt;br /&gt;
  libidn11&lt;br /&gt;
The following NEW packages will be installed:&lt;br /&gt;
  libidn11 wget&lt;br /&gt;
0 upgraded, 2 newly installed, 0 to remove and 27 not upgraded.&lt;br /&gt;
Need to get 392 kB of archives.&lt;br /&gt;
After this operation, 970 kB of additional disk space will be used.&lt;br /&gt;
Do you want to continue [Y/n]? y&lt;br /&gt;
...&lt;br /&gt;
root@d6f2e3190f9b:/# cd /opt/&lt;br /&gt;
root@d6f2e3190f9b:/opt# ls&lt;br /&gt;
root@d6f2e3190f9b:/opt# mkdir bsp&lt;br /&gt;
root@d6f2e3190f9b:/opt# cd bsp/&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download --no-check-certificate&lt;br /&gt;
...&lt;br /&gt;
Saving to: `download&#039;&lt;br /&gt;
&lt;br /&gt;
100%[=========================================================================================================================================================================&amp;gt;] 6,572,959   1.87M/s   in 3.8s    &lt;br /&gt;
&lt;br /&gt;
2022-02-18 15:58:54 (1.67 MB/s) - `download&#039; saved [6572959/6572959]&lt;br /&gt;
&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# mv download armadeus-7.0.tar.bz2&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# apt-get install bzip2&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# tar jxf armadeus-7.0.tar.bz2 &lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp#&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Très vite on se rend compte que nous avons beaucoup de logiciels à télécharger et installer. Le problème des containers c&#039;est que rien n&#039;est enregistré, donc à chaque fois qu&#039;on lance le container avec la commande `run` tout est remis à zéro.&lt;br /&gt;
&lt;br /&gt;
Il devient donc indispensable d&#039;ajouter les commandes de mise à jour des packages dans le `Dockerfile`. Heureusement, Armadeus propose un script pour ça dans son BSP comme nous allons le voir par la suite.&lt;br /&gt;
&lt;br /&gt;
== Montage de répertoires «host» ==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer les fichiers que l&#039;on compile avec le container il va être nécessaire de «monter» un répertoire de son ordinateur dans le container.&lt;br /&gt;
&lt;br /&gt;
Ce montage se fait au lancement du container. Par exemple si nous souhaitons monter le répertoire de téléchargement des packets buildroot ainsi que le répertoire du bsp armadeus nous utiliserons la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker run --mount src=/downloads,target=/downloads,type=bind \&lt;br /&gt;
                --mount src=/home/user/prj/armadeusbsp,target=/opt/bsp/,type=bind \&lt;br /&gt;
                -it apf27bsp:1.0 /bin/bash&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous mutualiserons ainsi le répertoires /downloads de notre machine et nous récupérerons les binaires générés à la compilation du bsp dans le container.&lt;br /&gt;
&lt;br /&gt;
== Le Dockerfile Armadeus ==&lt;br /&gt;
&lt;br /&gt;
Armadeus fourni le Dockerfile pour compiler l&#039;apf27, il suffit donc de le construire en se rendant dans le répertoire `??` du bsp. Un fichier README.md donne la marche à suivre pour le construire et le lancer.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15066</id>
		<title>2022 02 18 Container docker pour vieux BSP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15066"/>
		<updated>2022-02-18T16:15:13Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Construction d&amp;#039;un container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Avec la pénurie de composants actuelle beaucoup d&#039;entreprises sont contraintes de modifier leurs cartes électroniques de manière à supporter des variantes de leurs composants. Ce changement de composants impose souvent de retoucher le logiciel et de «remettre les mains dans le code» archivé depuis belle lurette.&lt;br /&gt;
Le temps du développement n&#039;étant pas celui de la production, les projets sont souvent «figés» de longue date. Et les machines qui permettaient de compiler le matériel sont totalement obsolète quand le produit est en «full-prod».&lt;br /&gt;
&lt;br /&gt;
Réinstaller les vieux logiciels qui ont permis de développer le produit se révèle souvent une gageur sur des systèmes actuels.&lt;br /&gt;
&lt;br /&gt;
Heureusement pour Armadeus, tout le développement de ses cartes se fait sous Linux. Et nous avons aujourd&#039;hui un outils formidable pour faire tourner de vieux logiciel sur des systèmes «à jour» : &#039;&#039;&#039;la virtualisation légère&#039;&#039;&#039;, avec notamment le logiciel [https://fr.wikipedia.org/wiki/Docker_(logiciel) docker].&lt;br /&gt;
&lt;br /&gt;
= Docker, la virtualisation légère =&lt;br /&gt;
&lt;br /&gt;
Selon [https://fr.wikipedia.org/wiki/Docker_(logiciel) Wikipedia] Docker est «une plateforme permettant de lancer certaines applications dans des conteneurs logiciels. Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution pratique de virtualisation qui exécute les processus de façon isolée2.»&lt;br /&gt;
&lt;br /&gt;
Dit simplement, Docker est une machine virtuelle qui émule le système d&#039;exploitation et les librairies mais pas les instructions machine. Ce qui en fait une machine virtuelle très performante.&lt;br /&gt;
&lt;br /&gt;
Docker est très intéressant pour faire tourner un programme dans un environnement logiciels contrôlé avec des versions figées. C&#039;est par exemple le cas pour compiler un BSP en utilisant une vieille distribution linux.&lt;br /&gt;
&lt;br /&gt;
= Compilation du BSP armadeus pour APF27 =&lt;br /&gt;
&lt;br /&gt;
L&#039;APF27 est typiquement la carte qui est encore actuellement en production chez armadeus mais dont le BSP n&#039;est plus utilisable avec les outils actuels. À l&#039;origine, le BSP de l&#039;apf27 était compilé sur des version d&#039;ubuntu datant des années 2010 !&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut pouvoir reprendre son  projet sans avoir à redémarrer un ordinateur de cette époque, voici comment faire avec docker.&lt;br /&gt;
L&#039;exemple de cet article a été réalisé sur une distribution ubuntu version Ubuntu 20.04.3 LTS.&lt;br /&gt;
&lt;br /&gt;
== Lancement de Docker ==&lt;br /&gt;
&lt;br /&gt;
Docker est un «deamon» qu&#039;il faut lancer en tâche de fond sur son système. Sur Ubuntu c&#039;est systemd qui contrôle ça :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo systemctl start docker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que docker tourne en tâche de fond, on peu lancer directement une console `bash` ubuntu version 12.04 avec la commande&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker run -it ubuntu:12.04 /bin/bash&lt;br /&gt;
root@1a5b88e1759c:/# cat /etc/lsb-release &lt;br /&gt;
DISTRIB_ID=Ubuntu&lt;br /&gt;
DISTRIB_RELEASE=12.04&lt;br /&gt;
DISTRIB_CODENAME=precise&lt;br /&gt;
DISTRIB_DESCRIPTION=&amp;quot;Ubuntu 12.04.5 LTS&amp;quot;&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un container existe déjà sur les serveurs docker avec une version minimaliste. En tapant la commande ci-dessus, docker va simplement télécharger le container pour le lancer sur la machine.&lt;br /&gt;
&lt;br /&gt;
Notre shell bash tourne bien dans une distribution ubuntu version 12.04. Pour visualiser les container actifs dans docker on lancera la commande suivant dans une autre console :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker ps&lt;br /&gt;
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES&lt;br /&gt;
1a5b88e1759c   ubuntu:12.04   &amp;quot;/bin/bash&amp;quot;   2 minutes ago   Up 2 minutes             stoic_noether&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on quitte la console avec `exit`, le container sera mis en inactif et il faudra le relancer pour pouvoir s&#039;y ré-attacher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@1a5b88e1759c:/# exit&lt;br /&gt;
exit&lt;br /&gt;
$ sudo docker container start stoic_noether&lt;br /&gt;
stoic_noether&lt;br /&gt;
$ sudo docker attach stoic_noether&lt;br /&gt;
root@1a5b88e1759c:/# history&lt;br /&gt;
    1  ls&lt;br /&gt;
    2  top&lt;br /&gt;
    3  cat /etc/lsb-release &lt;br /&gt;
    4  exit&lt;br /&gt;
    5  history&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;on se trouve dans la console on peut tenter de télécharger et compiler le bsp armadeus-7.0 par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
root@3264de07ca45:/# cd /opt/&lt;br /&gt;
root@3264de07ca45:/opt# mkdir bsp&lt;br /&gt;
root@3264de07ca45:/opt# cd bsp/&lt;br /&gt;
root@3264de07ca45:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download&lt;br /&gt;
bash: wget: command not found&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
E: Unable to locate package wget&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get update&lt;br /&gt;
Ign http://archive.ubuntu.com precise Release.gpg&lt;br /&gt;
[...]&lt;br /&gt;
E: Some index files failed to download. They have been ignored, or old ones used instead.&lt;br /&gt;
root@3264de07ca45:/opt/bsp# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ach! Très vite on se rend compte que la distribution fournie par docker est bien trop minimaliste pour que l&#039;on puisse travailler avec. Nous allons donc devoir construire notre propre container qui partira de cette distribution pour la customiser.&lt;br /&gt;
&lt;br /&gt;
== Construction d&#039;un container ==&lt;br /&gt;
&lt;br /&gt;
Pour construire son propre container, il faut créer un fichier de configuration avec le nom &#039;&#039;&#039;Dockerfile&#039;&#039;&#039;. Dans lequel on donnera le container de départ :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;INI&amp;quot;&amp;gt;&lt;br /&gt;
#Simple commentaire d&#039;entête&lt;br /&gt;
FROM ubuntu:12.04&lt;br /&gt;
&lt;br /&gt;
# on ajoute les dépots apt encore accessible aujourd&#039;hui&lt;br /&gt;
&lt;br /&gt;
# Sources from https://gist.github.com/ivomts/4558134&lt;br /&gt;
RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et on construit le container en lui donnant un nom et une version :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker build -t apf27bsp:0.1 .&lt;br /&gt;
Sending build context to Docker daemon   2.56kB&lt;br /&gt;
Step 1/2 : FROM ubuntu:12.04&lt;br /&gt;
 ---&amp;gt; 5b117edd0b76&lt;br /&gt;
Step 2/2 : RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ---&amp;gt; Running in 0b854be1e236&lt;br /&gt;
Removing intermediate container 0b854be1e236&lt;br /&gt;
 ---&amp;gt; 9c3cb7850267&lt;br /&gt;
Successfully built 9c3cb7850267&lt;br /&gt;
Successfully tagged apf27bsp:0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le container ainsi construit peut être lancer avec la commande que l&#039;on connaît bien maintenant :&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
$ sudo docker container run -it apf27bsp:0.1 /bin/bash&lt;br /&gt;
root@d6f2e3190f9b:/# apt-get update&lt;br /&gt;
Get:1 http://old-releases.ubuntu.com precise Release.gpg [198 B]&lt;br /&gt;
...&lt;br /&gt;
root@d6f2e3190f9b:/# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
The following extra packages will be installed:&lt;br /&gt;
  libidn11&lt;br /&gt;
The following NEW packages will be installed:&lt;br /&gt;
  libidn11 wget&lt;br /&gt;
0 upgraded, 2 newly installed, 0 to remove and 27 not upgraded.&lt;br /&gt;
Need to get 392 kB of archives.&lt;br /&gt;
After this operation, 970 kB of additional disk space will be used.&lt;br /&gt;
Do you want to continue [Y/n]? y&lt;br /&gt;
...&lt;br /&gt;
root@d6f2e3190f9b:/# cd /opt/&lt;br /&gt;
root@d6f2e3190f9b:/opt# ls&lt;br /&gt;
root@d6f2e3190f9b:/opt# mkdir bsp&lt;br /&gt;
root@d6f2e3190f9b:/opt# cd bsp/&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download --no-check-certificate&lt;br /&gt;
...&lt;br /&gt;
Saving to: `download&#039;&lt;br /&gt;
&lt;br /&gt;
100%[=========================================================================================================================================================================&amp;gt;] 6,572,959   1.87M/s   in 3.8s    &lt;br /&gt;
&lt;br /&gt;
2022-02-18 15:58:54 (1.67 MB/s) - `download&#039; saved [6572959/6572959]&lt;br /&gt;
&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# mv download armadeus-7.0.tar.bz2&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# apt-get install bzip2&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# tar jxf armadeus-7.0.tar.bz2 &lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp#&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Très vite on se rend compte que nous avons beaucoup de logiciel à télécharger et installer. Le problème des container c&#039;est que rien n&#039;est enregistré, donc à chaque fois qu&#039;on lance le container avec la commande `run` tout est remis à zéro.&lt;br /&gt;
&lt;br /&gt;
Il devient donc rapidement indispensable d&#039;ajouter les commande de mise à jour des packages dans le `Dockerfile`. Heureusement, Armadeus propose un script pour ça dans son BSP comme nous allons le voir par la suite.&lt;br /&gt;
&lt;br /&gt;
== Montage de répertoires «host» ==&lt;br /&gt;
&lt;br /&gt;
Pour récupérer les fichiers que l&#039;on compile avec le container il va être nécessaire de «monter» un répertoire de son ordinateur dans le container.&lt;br /&gt;
&lt;br /&gt;
Ce montage se fait au lancement du container. Par exemple si nous souhaitons monter le répertoire de téléchargement des packets buildroot ainsi que le répertoire du bsp armadeus nous utiliserons la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker run --mount src=/downloads,target=/downloads,type=bind \&lt;br /&gt;
                --mount src=/home/user/prj/armadeusbsp,target=/opt/bsp/,type=bind \&lt;br /&gt;
                -it apf27bsp:1.0 /bin/bash&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous mutualiserons ainsi le répertoires /downloads de notre machine et nous récupérerons les binaires générés à la compilation du bsp dans le container.&lt;br /&gt;
&lt;br /&gt;
== Le Dockerfile Armadeus ==&lt;br /&gt;
&lt;br /&gt;
Armadeus fourni le Dockerfile pour compiler l&#039;apf27, il suffit donc de le construire en se rendant dans le répertoire `??` du bsp. Un fichier README.md donne la marche à suivre pour le construire et le lancer.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15065</id>
		<title>2022 02 18 Container docker pour vieux BSP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15065"/>
		<updated>2022-02-18T16:07:08Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Construction d&amp;#039;un container */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Avec la pénurie de composants actuelle beaucoup d&#039;entreprises sont contraintes de modifier leurs cartes électroniques de manière à supporter des variantes de leurs composants. Ce changement de composants impose souvent de retoucher le logiciel et de «remettre les mains dans le code» archivé depuis belle lurette.&lt;br /&gt;
Le temps du développement n&#039;étant pas celui de la production, les projets sont souvent «figés» de longue date. Et les machines qui permettaient de compiler le matériel sont totalement obsolète quand le produit est en «full-prod».&lt;br /&gt;
&lt;br /&gt;
Réinstaller les vieux logiciels qui ont permis de développer le produit se révèle souvent une gageur sur des systèmes actuels.&lt;br /&gt;
&lt;br /&gt;
Heureusement pour Armadeus, tout le développement de ses cartes se fait sous Linux. Et nous avons aujourd&#039;hui un outils formidable pour faire tourner de vieux logiciel sur des systèmes «à jour» : &#039;&#039;&#039;la virtualisation légère&#039;&#039;&#039;, avec notamment le logiciel [https://fr.wikipedia.org/wiki/Docker_(logiciel) docker].&lt;br /&gt;
&lt;br /&gt;
= Docker, la virtualisation légère =&lt;br /&gt;
&lt;br /&gt;
Selon [https://fr.wikipedia.org/wiki/Docker_(logiciel) Wikipedia] Docker est «une plateforme permettant de lancer certaines applications dans des conteneurs logiciels. Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution pratique de virtualisation qui exécute les processus de façon isolée2.»&lt;br /&gt;
&lt;br /&gt;
Dit simplement, Docker est une machine virtuelle qui émule le système d&#039;exploitation et les librairies mais pas les instructions machine. Ce qui en fait une machine virtuelle très performante.&lt;br /&gt;
&lt;br /&gt;
Docker est très intéressant pour faire tourner un programme dans un environnement logiciels contrôlé avec des versions figées. C&#039;est par exemple le cas pour compiler un BSP en utilisant une vieille distribution linux.&lt;br /&gt;
&lt;br /&gt;
= Compilation du BSP armadeus pour APF27 =&lt;br /&gt;
&lt;br /&gt;
L&#039;APF27 est typiquement la carte qui est encore actuellement en production chez armadeus mais dont le BSP n&#039;est plus utilisable avec les outils actuels. À l&#039;origine, le BSP de l&#039;apf27 était compilé sur des version d&#039;ubuntu datant des années 2010 !&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut pouvoir reprendre son  projet sans avoir à redémarrer un ordinateur de cette époque, voici comment faire avec docker.&lt;br /&gt;
L&#039;exemple de cet article a été réalisé sur une distribution ubuntu version Ubuntu 20.04.3 LTS.&lt;br /&gt;
&lt;br /&gt;
== Lancement de Docker ==&lt;br /&gt;
&lt;br /&gt;
Docker est un «deamon» qu&#039;il faut lancer en tâche de fond sur son système. Sur Ubuntu c&#039;est systemd qui contrôle ça :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo systemctl start docker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que docker tourne en tâche de fond, on peu lancer directement une console `bash` ubuntu version 12.04 avec la commande&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker run -it ubuntu:12.04 /bin/bash&lt;br /&gt;
root@1a5b88e1759c:/# cat /etc/lsb-release &lt;br /&gt;
DISTRIB_ID=Ubuntu&lt;br /&gt;
DISTRIB_RELEASE=12.04&lt;br /&gt;
DISTRIB_CODENAME=precise&lt;br /&gt;
DISTRIB_DESCRIPTION=&amp;quot;Ubuntu 12.04.5 LTS&amp;quot;&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un container existe déjà sur les serveurs docker avec une version minimaliste. En tapant la commande ci-dessus, docker va simplement télécharger le container pour le lancer sur la machine.&lt;br /&gt;
&lt;br /&gt;
Notre shell bash tourne bien dans une distribution ubuntu version 12.04. Pour visualiser les container actifs dans docker on lancera la commande suivant dans une autre console :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker ps&lt;br /&gt;
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES&lt;br /&gt;
1a5b88e1759c   ubuntu:12.04   &amp;quot;/bin/bash&amp;quot;   2 minutes ago   Up 2 minutes             stoic_noether&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on quitte la console avec `exit`, le container sera mis en inactif et il faudra le relancer pour pouvoir s&#039;y ré-attacher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@1a5b88e1759c:/# exit&lt;br /&gt;
exit&lt;br /&gt;
$ sudo docker container start stoic_noether&lt;br /&gt;
stoic_noether&lt;br /&gt;
$ sudo docker attach stoic_noether&lt;br /&gt;
root@1a5b88e1759c:/# history&lt;br /&gt;
    1  ls&lt;br /&gt;
    2  top&lt;br /&gt;
    3  cat /etc/lsb-release &lt;br /&gt;
    4  exit&lt;br /&gt;
    5  history&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;on se trouve dans la console on peut tenter de télécharger et compiler le bsp armadeus-7.0 par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
root@3264de07ca45:/# cd /opt/&lt;br /&gt;
root@3264de07ca45:/opt# mkdir bsp&lt;br /&gt;
root@3264de07ca45:/opt# cd bsp/&lt;br /&gt;
root@3264de07ca45:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download&lt;br /&gt;
bash: wget: command not found&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
E: Unable to locate package wget&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get update&lt;br /&gt;
Ign http://archive.ubuntu.com precise Release.gpg&lt;br /&gt;
[...]&lt;br /&gt;
E: Some index files failed to download. They have been ignored, or old ones used instead.&lt;br /&gt;
root@3264de07ca45:/opt/bsp# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ach! Très vite on se rend compte que la distribution fournie par docker est bien trop minimaliste pour que l&#039;on puisse travailler avec. Nous allons donc devoir construire notre propre container qui partira de cette distribution pour la customiser.&lt;br /&gt;
&lt;br /&gt;
== Construction d&#039;un container ==&lt;br /&gt;
&lt;br /&gt;
Pour construire son propre container, il faut créer un fichier de configuration avec le nom &#039;&#039;&#039;Dockerfile&#039;&#039;&#039;. Dans lequel on donnera le container de départ :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;INI&amp;quot;&amp;gt;&lt;br /&gt;
#Simple commentaire d&#039;entête&lt;br /&gt;
FROM ubuntu:12.04&lt;br /&gt;
&lt;br /&gt;
# on ajoute les dépots apt encore accessible aujourd&#039;hui&lt;br /&gt;
&lt;br /&gt;
# Sources from https://gist.github.com/ivomts/4558134&lt;br /&gt;
RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et on construit le container en lui donnant un nom et une version :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker build -t apf27bsp:0.1 .&lt;br /&gt;
Sending build context to Docker daemon   2.56kB&lt;br /&gt;
Step 1/2 : FROM ubuntu:12.04&lt;br /&gt;
 ---&amp;gt; 5b117edd0b76&lt;br /&gt;
Step 2/2 : RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ---&amp;gt; Running in 0b854be1e236&lt;br /&gt;
Removing intermediate container 0b854be1e236&lt;br /&gt;
 ---&amp;gt; 9c3cb7850267&lt;br /&gt;
Successfully built 9c3cb7850267&lt;br /&gt;
Successfully tagged apf27bsp:0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le container ainsi construit peut être lancer avec la commande que l&#039;on connaît bien maintenant :&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
$ sudo docker container run -it apf27bsp:0.1 /bin/bash&lt;br /&gt;
root@d6f2e3190f9b:/# apt-get update&lt;br /&gt;
Get:1 http://old-releases.ubuntu.com precise Release.gpg [198 B]&lt;br /&gt;
...&lt;br /&gt;
root@d6f2e3190f9b:/# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
The following extra packages will be installed:&lt;br /&gt;
  libidn11&lt;br /&gt;
The following NEW packages will be installed:&lt;br /&gt;
  libidn11 wget&lt;br /&gt;
0 upgraded, 2 newly installed, 0 to remove and 27 not upgraded.&lt;br /&gt;
Need to get 392 kB of archives.&lt;br /&gt;
After this operation, 970 kB of additional disk space will be used.&lt;br /&gt;
Do you want to continue [Y/n]? y&lt;br /&gt;
...&lt;br /&gt;
root@d6f2e3190f9b:/# cd /opt/&lt;br /&gt;
root@d6f2e3190f9b:/opt# ls&lt;br /&gt;
root@d6f2e3190f9b:/opt# mkdir bsp&lt;br /&gt;
root@d6f2e3190f9b:/opt# cd bsp/&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download --no-check-certificate&lt;br /&gt;
...&lt;br /&gt;
Saving to: `download&#039;&lt;br /&gt;
&lt;br /&gt;
100%[=========================================================================================================================================================================&amp;gt;] 6,572,959   1.87M/s   in 3.8s    &lt;br /&gt;
&lt;br /&gt;
2022-02-18 15:58:54 (1.67 MB/s) - `download&#039; saved [6572959/6572959]&lt;br /&gt;
&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# mv download armadeus-7.0.tar.bz2&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# apt-get install bzip2&lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp# tar jxf armadeus-7.0.tar.bz2 &lt;br /&gt;
root@d6f2e3190f9b:/opt/bsp#&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Très vite on se rend compte que nous avons beaucoup de logiciel à télécharger et installer. Le problème des container c&#039;est que rien n&#039;est enregistré, donc à chaque fois qu&#039;on lance le containert avec la commande `run` tout est remis à zéro.&lt;br /&gt;
&lt;br /&gt;
Il devient donc rapidement indispensable d&#039;ajouter les commande de mise à jour des packages dans le `Dockerfile`. Et pour récupérer les fichiers que l&#039;on compile avec le container il va être nécessaire de «monter» un répertoire de son ordinateur dans le container.&lt;br /&gt;
&lt;br /&gt;
Ce montage se fait au lancement du container. Par exemple si nous souhaitons monter le répertoire de téléchargement des packets buildroot ainsi que le répertoire du bsp armadeus nous utiliserons la commande :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
sudo docker run --mount src=/downloads,target=/downloads,type=bind \&lt;br /&gt;
                --mount src=/home/user/prj/armadeusbsp,target=/opt/bsp/,type=bind \&lt;br /&gt;
                -it apf27bsp:1.0 /bin/bash&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Nous mutualiserons ainsi le répertoires /downloads de notre machine et nous récupérerons les binaires générés à la compilation du bsp dans le container.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15064</id>
		<title>2022 02 18 Container docker pour vieux BSP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15064"/>
		<updated>2022-02-18T15:52:53Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Lancement de Docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Avec la pénurie de composants actuelle beaucoup d&#039;entreprises sont contraintes de modifier leurs cartes électroniques de manière à supporter des variantes de leurs composants. Ce changement de composants impose souvent de retoucher le logiciel et de «remettre les mains dans le code» archivé depuis belle lurette.&lt;br /&gt;
Le temps du développement n&#039;étant pas celui de la production, les projets sont souvent «figés» de longue date. Et les machines qui permettaient de compiler le matériel sont totalement obsolète quand le produit est en «full-prod».&lt;br /&gt;
&lt;br /&gt;
Réinstaller les vieux logiciels qui ont permis de développer le produit se révèle souvent une gageur sur des systèmes actuels.&lt;br /&gt;
&lt;br /&gt;
Heureusement pour Armadeus, tout le développement de ses cartes se fait sous Linux. Et nous avons aujourd&#039;hui un outils formidable pour faire tourner de vieux logiciel sur des systèmes «à jour» : &#039;&#039;&#039;la virtualisation légère&#039;&#039;&#039;, avec notamment le logiciel [https://fr.wikipedia.org/wiki/Docker_(logiciel) docker].&lt;br /&gt;
&lt;br /&gt;
= Docker, la virtualisation légère =&lt;br /&gt;
&lt;br /&gt;
Selon [https://fr.wikipedia.org/wiki/Docker_(logiciel) Wikipedia] Docker est «une plateforme permettant de lancer certaines applications dans des conteneurs logiciels. Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution pratique de virtualisation qui exécute les processus de façon isolée2.»&lt;br /&gt;
&lt;br /&gt;
Dit simplement, Docker est une machine virtuelle qui émule le système d&#039;exploitation et les librairies mais pas les instructions machine. Ce qui en fait une machine virtuelle très performante.&lt;br /&gt;
&lt;br /&gt;
Docker est très intéressant pour faire tourner un programme dans un environnement logiciels contrôlé avec des versions figées. C&#039;est par exemple le cas pour compiler un BSP en utilisant une vieille distribution linux.&lt;br /&gt;
&lt;br /&gt;
= Compilation du BSP armadeus pour APF27 =&lt;br /&gt;
&lt;br /&gt;
L&#039;APF27 est typiquement la carte qui est encore actuellement en production chez armadeus mais dont le BSP n&#039;est plus utilisable avec les outils actuels. À l&#039;origine, le BSP de l&#039;apf27 était compilé sur des version d&#039;ubuntu datant des années 2010 !&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut pouvoir reprendre son  projet sans avoir à redémarrer un ordinateur de cette époque, voici comment faire avec docker.&lt;br /&gt;
L&#039;exemple de cet article a été réalisé sur une distribution ubuntu version Ubuntu 20.04.3 LTS.&lt;br /&gt;
&lt;br /&gt;
== Lancement de Docker ==&lt;br /&gt;
&lt;br /&gt;
Docker est un «deamon» qu&#039;il faut lancer en tâche de fond sur son système. Sur Ubuntu c&#039;est systemd qui contrôle ça :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo systemctl start docker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que docker tourne en tâche de fond, on peu lancer directement une console `bash` ubuntu version 12.04 avec la commande&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker run -it ubuntu:12.04 /bin/bash&lt;br /&gt;
root@1a5b88e1759c:/# cat /etc/lsb-release &lt;br /&gt;
DISTRIB_ID=Ubuntu&lt;br /&gt;
DISTRIB_RELEASE=12.04&lt;br /&gt;
DISTRIB_CODENAME=precise&lt;br /&gt;
DISTRIB_DESCRIPTION=&amp;quot;Ubuntu 12.04.5 LTS&amp;quot;&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un container existe déjà sur les serveurs docker avec une version minimaliste. En tapant la commande ci-dessus, docker va simplement télécharger le container pour le lancer sur la machine.&lt;br /&gt;
&lt;br /&gt;
Notre shell bash tourne bien dans une distribution ubuntu version 12.04. Pour visualiser les container actifs dans docker on lancera la commande suivant dans une autre console :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker ps&lt;br /&gt;
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES&lt;br /&gt;
1a5b88e1759c   ubuntu:12.04   &amp;quot;/bin/bash&amp;quot;   2 minutes ago   Up 2 minutes             stoic_noether&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on quitte la console avec `exit`, le container sera mis en inactif et il faudra le relancer pour pouvoir s&#039;y ré-attacher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@1a5b88e1759c:/# exit&lt;br /&gt;
exit&lt;br /&gt;
$ sudo docker container start stoic_noether&lt;br /&gt;
stoic_noether&lt;br /&gt;
$ sudo docker attach stoic_noether&lt;br /&gt;
root@1a5b88e1759c:/# history&lt;br /&gt;
    1  ls&lt;br /&gt;
    2  top&lt;br /&gt;
    3  cat /etc/lsb-release &lt;br /&gt;
    4  exit&lt;br /&gt;
    5  history&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;on se trouve dans la console on peut tenter de télécharger et compiler le bsp armadeus-7.0 par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
root@3264de07ca45:/# cd /opt/&lt;br /&gt;
root@3264de07ca45:/opt# mkdir bsp&lt;br /&gt;
root@3264de07ca45:/opt# cd bsp/&lt;br /&gt;
root@3264de07ca45:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download&lt;br /&gt;
bash: wget: command not found&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
E: Unable to locate package wget&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get update&lt;br /&gt;
Ign http://archive.ubuntu.com precise Release.gpg&lt;br /&gt;
[...]&lt;br /&gt;
E: Some index files failed to download. They have been ignored, or old ones used instead.&lt;br /&gt;
root@3264de07ca45:/opt/bsp# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ach! Très vite on se rend compte que la distribution fournie par docker est bien trop minimaliste pour que l&#039;on puisse travailler avec. Nous allons donc devoir construire notre propre container qui partira de cette distribution pour la customiser.&lt;br /&gt;
&lt;br /&gt;
== Construction d&#039;un container ==&lt;br /&gt;
&lt;br /&gt;
Pour construire son propre container, il faut créer un fichier de configuration avec le nom &#039;&#039;&#039;Dockerfile&#039;&#039;&#039;. Dans lequel on donnera le container de départ :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;INI&amp;quot;&amp;gt;&lt;br /&gt;
#Simple commentaire d&#039;entête&lt;br /&gt;
FROM ubuntu:12.04&lt;br /&gt;
&lt;br /&gt;
# on ajoute les dépots apt encore accessible aujourd&#039;hui&lt;br /&gt;
&lt;br /&gt;
# Sources from https://gist.github.com/ivomts/4558134&lt;br /&gt;
RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp; \&lt;br /&gt;
    echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Et on construit le container en lui donnant un nom et une version :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker build -t apf27bsp:0.1 .&lt;br /&gt;
Sending build context to Docker daemon   2.56kB&lt;br /&gt;
Step 1/2 : FROM ubuntu:12.04&lt;br /&gt;
 ---&amp;gt; 5b117edd0b76&lt;br /&gt;
Step 2/2 : RUN echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;  /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list &amp;amp;&amp;amp;     echo &amp;quot;deb-src http://old-releases.ubuntu.com/ubuntu/ precise-updates main restricted&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list&lt;br /&gt;
 ---&amp;gt; Running in 0b854be1e236&lt;br /&gt;
Removing intermediate container 0b854be1e236&lt;br /&gt;
 ---&amp;gt; 9c3cb7850267&lt;br /&gt;
Successfully built 9c3cb7850267&lt;br /&gt;
Successfully tagged apf27bsp:0.1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le container ainsi construit peut être lancer avec la commande que l&#039;on connaît bien maintenant :&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15063</id>
		<title>2022 02 18 Container docker pour vieux BSP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15063"/>
		<updated>2022-02-18T15:45:31Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Lancement de Docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Avec la pénurie de composants actuelle beaucoup d&#039;entreprises sont contraintes de modifier leurs cartes électroniques de manière à supporter des variantes de leurs composants. Ce changement de composants impose souvent de retoucher le logiciel et de «remettre les mains dans le code» archivé depuis belle lurette.&lt;br /&gt;
Le temps du développement n&#039;étant pas celui de la production, les projets sont souvent «figés» de longue date. Et les machines qui permettaient de compiler le matériel sont totalement obsolète quand le produit est en «full-prod».&lt;br /&gt;
&lt;br /&gt;
Réinstaller les vieux logiciels qui ont permis de développer le produit se révèle souvent une gageur sur des systèmes actuels.&lt;br /&gt;
&lt;br /&gt;
Heureusement pour Armadeus, tout le développement de ses cartes se fait sous Linux. Et nous avons aujourd&#039;hui un outils formidable pour faire tourner de vieux logiciel sur des systèmes «à jour» : &#039;&#039;&#039;la virtualisation légère&#039;&#039;&#039;, avec notamment le logiciel [https://fr.wikipedia.org/wiki/Docker_(logiciel) docker].&lt;br /&gt;
&lt;br /&gt;
= Docker, la virtualisation légère =&lt;br /&gt;
&lt;br /&gt;
Selon [https://fr.wikipedia.org/wiki/Docker_(logiciel) Wikipedia] Docker est «une plateforme permettant de lancer certaines applications dans des conteneurs logiciels. Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution pratique de virtualisation qui exécute les processus de façon isolée2.»&lt;br /&gt;
&lt;br /&gt;
Dit simplement, Docker est une machine virtuelle qui émule le système d&#039;exploitation et les librairies mais pas les instructions machine. Ce qui en fait une machine virtuelle très performante.&lt;br /&gt;
&lt;br /&gt;
Docker est très intéressant pour faire tourner un programme dans un environnement logiciels contrôlé avec des versions figées. C&#039;est par exemple le cas pour compiler un BSP en utilisant une vieille distribution linux.&lt;br /&gt;
&lt;br /&gt;
= Compilation du BSP armadeus pour APF27 =&lt;br /&gt;
&lt;br /&gt;
L&#039;APF27 est typiquement la carte qui est encore actuellement en production chez armadeus mais dont le BSP n&#039;est plus utilisable avec les outils actuels. À l&#039;origine, le BSP de l&#039;apf27 était compilé sur des version d&#039;ubuntu datant des années 2010 !&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut pouvoir reprendre son  projet sans avoir à redémarrer un ordinateur de cette époque, voici comment faire avec docker.&lt;br /&gt;
L&#039;exemple de cet article a été réalisé sur une distribution ubuntu version Ubuntu 20.04.3 LTS.&lt;br /&gt;
&lt;br /&gt;
== Lancement de Docker ==&lt;br /&gt;
&lt;br /&gt;
Docker est un «deamon» qu&#039;il faut lancer en tâche de fond sur son système. Sur Ubuntu c&#039;est systemd qui contrôle ça :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo systemctl start docker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que docker tourne en tâche de fond, on peu lancer directement une console `bash` ubuntu version 12.04 avec la commande&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker run -it ubuntu:12.04 /bin/bash&lt;br /&gt;
root@1a5b88e1759c:/# cat /etc/lsb-release &lt;br /&gt;
DISTRIB_ID=Ubuntu&lt;br /&gt;
DISTRIB_RELEASE=12.04&lt;br /&gt;
DISTRIB_CODENAME=precise&lt;br /&gt;
DISTRIB_DESCRIPTION=&amp;quot;Ubuntu 12.04.5 LTS&amp;quot;&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Un container existe déjà sur les serveurs docker avec une version minimaliste. En tapant la commande ci-dessus, docker va simplement télécharger le container pour le lancer sur la machine.&lt;br /&gt;
&lt;br /&gt;
Notre shell bash tourne bien dans une distribution ubuntu version 12.04. Pour visualiser les container actifs dans docker on lancera la commande suivant dans une autre console :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker ps&lt;br /&gt;
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES&lt;br /&gt;
1a5b88e1759c   ubuntu:12.04   &amp;quot;/bin/bash&amp;quot;   2 minutes ago   Up 2 minutes             stoic_noether&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on quitte la console avec `exit`, le container sera mis en inactif et il faudra le relancer pour pouvoir s&#039;y ré-attacher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@1a5b88e1759c:/# exit&lt;br /&gt;
exit&lt;br /&gt;
$ sudo docker container start stoic_noether&lt;br /&gt;
stoic_noether&lt;br /&gt;
$ sudo docker attach stoic_noether&lt;br /&gt;
root@1a5b88e1759c:/# history&lt;br /&gt;
    1  ls&lt;br /&gt;
    2  top&lt;br /&gt;
    3  cat /etc/lsb-release &lt;br /&gt;
    4  exit&lt;br /&gt;
    5  history&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que l&#039;on se trouve dans la console on peut tenter de télécharger et compiler le bsp armadeus-7.0 par exemple :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
root@3264de07ca45:/# cd /opt/&lt;br /&gt;
root@3264de07ca45:/opt# mkdir bsp&lt;br /&gt;
root@3264de07ca45:/opt# cd bsp/&lt;br /&gt;
root@3264de07ca45:/opt/bsp# wget https://sourceforge.net/projects/armadeus/files/armadeus/armadeus-7.0/armadeus-7.0.tar.bz2/download&lt;br /&gt;
bash: wget: command not found&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get install wget&lt;br /&gt;
Reading package lists... Done&lt;br /&gt;
Building dependency tree       &lt;br /&gt;
Reading state information... Done&lt;br /&gt;
E: Unable to locate package wget&lt;br /&gt;
root@3264de07ca45:/opt/bsp# apt-get update&lt;br /&gt;
Ign http://archive.ubuntu.com precise Release.gpg&lt;br /&gt;
[...]&lt;br /&gt;
E: Some index files failed to download. They have been ignored, or old ones used instead.&lt;br /&gt;
root@3264de07ca45:/opt/bsp# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ach! Très vite on se rend compte que la distribution fournie par docker est bien trop minimaliste pour que l&#039;on puisse travailler avec. Nous allons donc devoir construire notre propre container qui partira de cette distribution pour la customiser.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15062</id>
		<title>2022 02 18 Container docker pour vieux BSP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15062"/>
		<updated>2022-02-18T15:26:35Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Lancement de Docker */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Avec la pénurie de composants actuelle beaucoup d&#039;entreprises sont contraintes de modifier leurs cartes électroniques de manière à supporter des variantes de leurs composants. Ce changement de composants impose souvent de retoucher le logiciel et de «remettre les mains dans le code» archivé depuis belle lurette.&lt;br /&gt;
Le temps du développement n&#039;étant pas celui de la production, les projets sont souvent «figés» de longue date. Et les machines qui permettaient de compiler le matériel sont totalement obsolète quand le produit est en «full-prod».&lt;br /&gt;
&lt;br /&gt;
Réinstaller les vieux logiciels qui ont permis de développer le produit se révèle souvent une gageur sur des systèmes actuels.&lt;br /&gt;
&lt;br /&gt;
Heureusement pour Armadeus, tout le développement de ses cartes se fait sous Linux. Et nous avons aujourd&#039;hui un outils formidable pour faire tourner de vieux logiciel sur des systèmes «à jour» : &#039;&#039;&#039;la virtualisation légère&#039;&#039;&#039;, avec notamment le logiciel [https://fr.wikipedia.org/wiki/Docker_(logiciel) docker].&lt;br /&gt;
&lt;br /&gt;
= Docker, la virtualisation légère =&lt;br /&gt;
&lt;br /&gt;
Selon [https://fr.wikipedia.org/wiki/Docker_(logiciel) Wikipedia] Docker est «une plateforme permettant de lancer certaines applications dans des conteneurs logiciels. Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution pratique de virtualisation qui exécute les processus de façon isolée2.»&lt;br /&gt;
&lt;br /&gt;
Dit simplement, Docker est une machine virtuelle qui émule le système d&#039;exploitation et les librairies mais pas les instructions machine. Ce qui en fait une machine virtuelle très performante.&lt;br /&gt;
&lt;br /&gt;
Docker est très intéressant pour faire tourner un programme dans un environnement logiciels contrôlé avec des versions figées. C&#039;est par exemple le cas pour compiler un BSP en utilisant une vieille distribution linux.&lt;br /&gt;
&lt;br /&gt;
= Compilation du BSP armadeus pour APF27 =&lt;br /&gt;
&lt;br /&gt;
L&#039;APF27 est typiquement la carte qui est encore actuellement en production chez armadeus mais dont le BSP n&#039;est plus utilisable avec les outils actuels. À l&#039;origine, le BSP de l&#039;apf27 était compilé sur des version d&#039;ubuntu datant des années 2010 !&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut pouvoir reprendre son  projet sans avoir à redémarrer un ordinateur de cette époque, voici comment faire avec docker.&lt;br /&gt;
L&#039;exemple de cet article a été réalisé sur une distribution ubuntu version Ubuntu 20.04.3 LTS.&lt;br /&gt;
&lt;br /&gt;
== Lancement de Docker ==&lt;br /&gt;
&lt;br /&gt;
Docker est un «deamon» qu&#039;il faut lancer en tâche de fond sur son système. Sur Ubuntu c&#039;est systemd qui contrôle ça :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo systemctl start docker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que docker tourne en tâche de fond, on peu lancer directement une console `bash` ubuntu version 12.04 avec la commande&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker run -it ubuntu:12.04 /bin/bash&lt;br /&gt;
root@1a5b88e1759c:/# cat /etc/lsb-release &lt;br /&gt;
DISTRIB_ID=Ubuntu&lt;br /&gt;
DISTRIB_RELEASE=12.04&lt;br /&gt;
DISTRIB_CODENAME=precise&lt;br /&gt;
DISTRIB_DESCRIPTION=&amp;quot;Ubuntu 12.04.5 LTS&amp;quot;&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notre shell bash tourne bien dans une distribution ubuntu version 12.04. Pour visualiser les container actifs dans docker on lancera la commande suivant dans une autre console :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker ps&lt;br /&gt;
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES&lt;br /&gt;
1a5b88e1759c   ubuntu:12.04   &amp;quot;/bin/bash&amp;quot;   2 minutes ago   Up 2 minutes             stoic_noether&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on quitte la console avec `exit`, le container sera mis en inactif et il faudra le relancer pour pouvoir s&#039;y réattacher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@1a5b88e1759c:/# exit&lt;br /&gt;
exit&lt;br /&gt;
$ sudo docker container start stoic_noether&lt;br /&gt;
stoic_noether&lt;br /&gt;
$ sudo docker attach stoic_noether&lt;br /&gt;
root@1a5b88e1759c:/# history&lt;br /&gt;
    1  ls&lt;br /&gt;
    2  top&lt;br /&gt;
    3  cat /etc/lsb-release &lt;br /&gt;
    4  exit&lt;br /&gt;
    5  history&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15061</id>
		<title>2022 02 18 Container docker pour vieux BSP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15061"/>
		<updated>2022-02-18T15:26:01Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Compilation du BSP armadeus pour APF27 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Avec la pénurie de composants actuelle beaucoup d&#039;entreprises sont contraintes de modifier leurs cartes électroniques de manière à supporter des variantes de leurs composants. Ce changement de composants impose souvent de retoucher le logiciel et de «remettre les mains dans le code» archivé depuis belle lurette.&lt;br /&gt;
Le temps du développement n&#039;étant pas celui de la production, les projets sont souvent «figés» de longue date. Et les machines qui permettaient de compiler le matériel sont totalement obsolète quand le produit est en «full-prod».&lt;br /&gt;
&lt;br /&gt;
Réinstaller les vieux logiciels qui ont permis de développer le produit se révèle souvent une gageur sur des systèmes actuels.&lt;br /&gt;
&lt;br /&gt;
Heureusement pour Armadeus, tout le développement de ses cartes se fait sous Linux. Et nous avons aujourd&#039;hui un outils formidable pour faire tourner de vieux logiciel sur des systèmes «à jour» : &#039;&#039;&#039;la virtualisation légère&#039;&#039;&#039;, avec notamment le logiciel [https://fr.wikipedia.org/wiki/Docker_(logiciel) docker].&lt;br /&gt;
&lt;br /&gt;
= Docker, la virtualisation légère =&lt;br /&gt;
&lt;br /&gt;
Selon [https://fr.wikipedia.org/wiki/Docker_(logiciel) Wikipedia] Docker est «une plateforme permettant de lancer certaines applications dans des conteneurs logiciels. Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution pratique de virtualisation qui exécute les processus de façon isolée2.»&lt;br /&gt;
&lt;br /&gt;
Dit simplement, Docker est une machine virtuelle qui émule le système d&#039;exploitation et les librairies mais pas les instructions machine. Ce qui en fait une machine virtuelle très performante.&lt;br /&gt;
&lt;br /&gt;
Docker est très intéressant pour faire tourner un programme dans un environnement logiciels contrôlé avec des versions figées. C&#039;est par exemple le cas pour compiler un BSP en utilisant une vieille distribution linux.&lt;br /&gt;
&lt;br /&gt;
= Compilation du BSP armadeus pour APF27 =&lt;br /&gt;
&lt;br /&gt;
L&#039;APF27 est typiquement la carte qui est encore actuellement en production chez armadeus mais dont le BSP n&#039;est plus utilisable avec les outils actuels. À l&#039;origine, le BSP de l&#039;apf27 était compilé sur des version d&#039;ubuntu datant des années 2010 !&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut pouvoir reprendre son  projet sans avoir à redémarrer un ordinateur de cette époque, voici comment faire avec docker.&lt;br /&gt;
L&#039;exemple de cet article a été réalisé sur une distribution ubuntu version Ubuntu 20.04.3 LTS.&lt;br /&gt;
&lt;br /&gt;
== Lancement de Docker ==&lt;br /&gt;
&lt;br /&gt;
Docker est un «deamon» qu&#039;il faut lancer en tâche de fond sur son système. Sur Ubuntu c&#039;est systemd qui contrôle ça :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo systemctl start docker&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une fois que docker tourne en tâche de fond, on peu lancer directement une console `bash` ubuntu version 12.04 avec la commande&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo docker run -it ubuntu:12.04 /bin/bash&lt;br /&gt;
root@1a5b88e1759c:/# cat /etc/lsb-release &lt;br /&gt;
DISTRIB_ID=Ubuntu&lt;br /&gt;
DISTRIB_RELEASE=12.04&lt;br /&gt;
DISTRIB_CODENAME=precise&lt;br /&gt;
DISTRIB_DESCRIPTION=&amp;quot;Ubuntu 12.04.5 LTS&amp;quot;&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notre shell bash tourne bien dans une distribution ubuntu version 12.04. Pour visualiser les container actifs dans docker on lancera la commande suivant dans une autre console :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sh&amp;quot;&amp;gt;&lt;br /&gt;
 sudo docker ps&lt;br /&gt;
[sudo] password for fabienm: &lt;br /&gt;
CONTAINER ID   IMAGE          COMMAND       CREATED         STATUS         PORTS     NAMES&lt;br /&gt;
1a5b88e1759c   ubuntu:12.04   &amp;quot;/bin/bash&amp;quot;   2 minutes ago   Up 2 minutes             stoic_noether&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on quitte la console avec `exit`, le container sera mis en inactif et il faudra le relancer pour pouvoir s&#039;y réattacher :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
root@1a5b88e1759c:/# exit&lt;br /&gt;
exit&lt;br /&gt;
$ sudo docker container start stoic_noether&lt;br /&gt;
stoic_noether&lt;br /&gt;
$ sudo docker attach stoic_noether&lt;br /&gt;
root@1a5b88e1759c:/# history&lt;br /&gt;
    1  ls&lt;br /&gt;
    2  top&lt;br /&gt;
    3  cat /etc/lsb-release &lt;br /&gt;
    4  exit&lt;br /&gt;
    5  history&lt;br /&gt;
root@1a5b88e1759c:/# &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15060</id>
		<title>2022 02 18 Container docker pour vieux BSP</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=2022_02_18_Container_docker_pour_vieux_BSP&amp;diff=15060"/>
		<updated>2022-02-18T15:06:40Z</updated>

		<summary type="html">&lt;p&gt;FabienM: Created page with &amp;quot;= Introduction =  Avec la pénurie de composants actuelle beaucoup d&amp;#039;entreprises sont contraintes de modifier leurs cartes électroniques de manière à supporter des variante...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introduction =&lt;br /&gt;
&lt;br /&gt;
Avec la pénurie de composants actuelle beaucoup d&#039;entreprises sont contraintes de modifier leurs cartes électroniques de manière à supporter des variantes de leurs composants. Ce changement de composants impose souvent de retoucher le logiciel et de «remettre les mains dans le code» archivé depuis belle lurette.&lt;br /&gt;
Le temps du développement n&#039;étant pas celui de la production, les projets sont souvent «figés» de longue date. Et les machines qui permettaient de compiler le matériel sont totalement obsolète quand le produit est en «full-prod».&lt;br /&gt;
&lt;br /&gt;
Réinstaller les vieux logiciels qui ont permis de développer le produit se révèle souvent une gageur sur des systèmes actuels.&lt;br /&gt;
&lt;br /&gt;
Heureusement pour Armadeus, tout le développement de ses cartes se fait sous Linux. Et nous avons aujourd&#039;hui un outils formidable pour faire tourner de vieux logiciel sur des systèmes «à jour» : &#039;&#039;&#039;la virtualisation légère&#039;&#039;&#039;, avec notamment le logiciel [https://fr.wikipedia.org/wiki/Docker_(logiciel) docker].&lt;br /&gt;
&lt;br /&gt;
= Docker, la virtualisation légère =&lt;br /&gt;
&lt;br /&gt;
Selon [https://fr.wikipedia.org/wiki/Docker_(logiciel) Wikipedia] Docker est «une plateforme permettant de lancer certaines applications dans des conteneurs logiciels. Docker étend le format de conteneur Linux standard, LXC, avec une API de haut niveau fournissant une solution pratique de virtualisation qui exécute les processus de façon isolée2.»&lt;br /&gt;
&lt;br /&gt;
Dit simplement, Docker est une machine virtuelle qui émule le système d&#039;exploitation et les librairies mais pas les instructions machine. Ce qui en fait une machine virtuelle très performante.&lt;br /&gt;
&lt;br /&gt;
Docker est très intéressant pour faire tourner un programme dans un environnement logiciels contrôlé avec des versions figées. C&#039;est par exemple le cas pour compiler un BSP en utilisant une vieille distribution linux.&lt;br /&gt;
&lt;br /&gt;
= Compilation du BSP armadeus pour APF27 =&lt;br /&gt;
&lt;br /&gt;
L&#039;APF27 est typiquement la carte qui est encore actuellement en production chez armadeus mais dont le BSP n&#039;est plus utilisable avec les outils actuels. À l&#039;origine, le BSP de l&#039;apf27 était compilé sur des version d&#039;ubuntu datant des années 2010 !&lt;br /&gt;
&lt;br /&gt;
Si l&#039;on veut pouvoir reprendre son  projet sans avoir à redémarrer un ordinateur de cette époque, voici comment faire avec docker.&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=User:FabienM&amp;diff=15059</id>
		<title>User:FabienM</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=User:FabienM&amp;diff=15059"/>
		<updated>2022-02-18T14:40:59Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Blog */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[MemberList | &amp;lt;&amp;lt; liste des membres]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mes petites bidouilles avec l&#039;armadeus =&lt;br /&gt;
&lt;br /&gt;
* [[Une led qui clignote avec le spartan 3]]&lt;br /&gt;
* [[Petits trucs en vrac]]&lt;br /&gt;
* [[Led sensor]]&lt;br /&gt;
* [[vim | The best editor in the world]]&lt;br /&gt;
&lt;br /&gt;
= Trucs =&lt;br /&gt;
&lt;br /&gt;
== Python en environnement virtuel ==&lt;br /&gt;
&lt;br /&gt;
Un pense bète pour installer la version voulue de python en environnement virtuel avec virtualenv:&lt;br /&gt;
&lt;br /&gt;
=== virtualenv et autre tkinter ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install python-tk python3-tk tk-dev&lt;br /&gt;
apt-get install python-virtualenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python 3.7.4 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libffi-dev&lt;br /&gt;
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz&lt;br /&gt;
tar -Jxvf Python-3.7.4.tar.xz&lt;br /&gt;
cd Python-3.7.4&lt;br /&gt;
./configure --enable-shared&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig /usr/local/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== virtualenv ===&lt;br /&gt;
&lt;br /&gt;
* Virtual env configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install python-virtualenv&lt;br /&gt;
mkdir virtenv&lt;br /&gt;
cd virtenv&lt;br /&gt;
virtualenv --python=/usr/local/bin/python3.7 envp37&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* enum bug fix:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/virtenv/envp37/lib/python3.7&lt;br /&gt;
ln -s /usr/local/lib/python3.7/enum.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Activation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source /home/armadeus/virtenv/envp37/bin/activate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Desactivation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deactivate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;P&#039;&#039;&#039;eripheral &#039;&#039;&#039;O&#039;&#039;&#039;n &#039;&#039;&#039;D&#039;&#039;&#039;emand =&lt;br /&gt;
&lt;br /&gt;
* [[Specification feedback]]&lt;br /&gt;
&lt;br /&gt;
= Participation à la documentation ArmadeuS Project =&lt;br /&gt;
&lt;br /&gt;
* [[How to make a VHDL design in Ubuntu/Debian]]&lt;br /&gt;
* [[How to simulate post synthesis and post place &amp;amp; route design with GHDL]]&lt;br /&gt;
&lt;br /&gt;
* [[Using FPGA]]&lt;br /&gt;
&lt;br /&gt;
* [[A simple design with Wishbone bus]]&lt;br /&gt;
&lt;br /&gt;
* [[How to use kernel 2.6.38.x on APF27]]&lt;br /&gt;
&lt;br /&gt;
== Trash ==&lt;br /&gt;
* [[APF27_FPGA-IMX_interface_description | Description of FPGA-IMX interface for APF27]]&lt;br /&gt;
* [[APF51_FPGA-IMX_interface_description | Description of FPGA-IMX interface for APF51]]&lt;br /&gt;
* [[FPGA | FPGA on APF introduction]]&lt;br /&gt;
* [[FPGA and led | Button and LED]]&lt;br /&gt;
&lt;br /&gt;
== Projets ==&lt;br /&gt;
&lt;br /&gt;
* Camera [[C38A]] with chip ov7620&lt;br /&gt;
* Camera omnivision [[VC21CC1]]&lt;br /&gt;
* [[Robotic]]&lt;br /&gt;
* [[Home monitoring energy | Compteur d&#039;énergie électrique]]&lt;br /&gt;
* [[OOCP]] (Only One Cable Project)&lt;br /&gt;
* [[Use MySQL-client on apf9328]]&lt;br /&gt;
* [[Light-APF27Dev | Light-APF27Dev project ]]&lt;br /&gt;
&lt;br /&gt;
= Liens utiles =&lt;br /&gt;
&lt;br /&gt;
* Projets [http://sourceforge.net/projects/armadeus sourceforge]&lt;br /&gt;
* Site [http://www.armadeus.com/english/index.html entreprise]&lt;br /&gt;
* Les codes de retour d&#039;erreurs : http://www.opengroup.org/onlinepubs/007908799/xsh/errno.h.html&lt;br /&gt;
* [[Buildroot_Packages]]&lt;br /&gt;
* [http://sebsauvage.net/files/20130426_cpp_quovadis2013cppontheweb-130425105424-phpapp01.pdf Un papier très intéressant] d&#039;un développeur de jeux vidéo prônant l&#039;utilisation du C++ ... pour le web. Notamment grâce à l&#039;utilisation de [http://sebsauvage.net/files/20130426_cpp_multiplatformconthewebwithemscripten-130405172545-phpapp01.pdf emscripten] qui permet de compiler du C++ vers le javascript (HTML5).&lt;br /&gt;
&lt;br /&gt;
= Somes usefull tricks =&lt;br /&gt;
== press a button ==&lt;br /&gt;
Here, function to «press enter to continue» on apf in different languages :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setbit /proc/driver/gpio/portFmode 13 1 # set pin as gpio&lt;br /&gt;
setbit /proc/driver/gpio/portFdir 13 0  # set pin as input&lt;br /&gt;
setbit /proc/driver/gpio/portFirq 13 1  # irq on rising edge&lt;br /&gt;
&lt;br /&gt;
/usr/bin/testsuite/testbutton /dev/gpio/PF13 3 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &#039;&#039;testbutton&#039;&#039; program comming from&lt;br /&gt;
&#039;&#039;target/linux/modules/fpga/wishbone_example/wb_button&#039;&#039;. Type «make» in this&lt;br /&gt;
directory to compile it.&lt;br /&gt;
&lt;br /&gt;
== Logging with timestamps in seconds ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
LIGHT=$(cat /sys/class/hwmon/hwmon0/device/in3_input)&lt;br /&gt;
TIME=$(date +%s)&lt;br /&gt;
echo $TIME&amp;quot;, sec, &amp;quot;$LIGHT&amp;quot;, mV,&amp;quot; &amp;gt;&amp;gt; log;&lt;br /&gt;
sleep 2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Press enter to continue ==&lt;br /&gt;
=== C ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void pressEnterToContinue(void)&lt;br /&gt;
{&lt;br /&gt;
    printf(&amp;quot;Press enter to continue\n&amp;quot;);&lt;br /&gt;
    getc(stdin);//XXX &lt;br /&gt;
    while( getc(stdin) != &#039;\n&#039;) ; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt; //XXX&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void pressEnterToContinue(void)&lt;br /&gt;
{&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Press enter to continue&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
    getc(stdin); //XXX&lt;br /&gt;
    std::cin.ignore( std::numeric_limits &amp;lt;std::streamsize&amp;gt; ::max(), &#039;\n&#039; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python 2 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def pressEnterToContinue():&lt;br /&gt;
    print &amp;quot;Press enter to continue&amp;quot;&lt;br /&gt;
    raw_input()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python 3 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def pressEnterToContinue():&lt;br /&gt;
    print(&amp;quot;Press enter to continue&amp;quot;)&lt;br /&gt;
    input()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Kernel Driver =&lt;br /&gt;
&lt;br /&gt;
* [[IIO kernel driver model]]&lt;br /&gt;
* [[UIO kernel driver model]]&lt;br /&gt;
&lt;br /&gt;
= bac à sable =&lt;br /&gt;
[[Image:dessin.svg]]&lt;br /&gt;
&lt;br /&gt;
* [[APF6_SP_DDR3_PINOUT]]&lt;br /&gt;
* [[APF6_SP The full howto]]&lt;br /&gt;
&lt;br /&gt;
== Wavedrom ==&lt;br /&gt;
&lt;br /&gt;
If [https://github.com/Martoni/mediawiki_wavedrom wavedrom plugin] is installed on this wiki, we can see a beautiful waves bellow :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;wavedrom&amp;gt;&lt;br /&gt;
{ signal: [&lt;br /&gt;
  { name: &amp;quot;clk&amp;quot;,  wave: &amp;quot;p......&amp;quot; },&lt;br /&gt;
  { name: &amp;quot;bus&amp;quot;,  wave: &amp;quot;x.34.5x&amp;quot;,   data: &amp;quot;head body tail&amp;quot; },&lt;br /&gt;
  { name: &amp;quot;wire&amp;quot;, wave: &amp;quot;0.1..0.&amp;quot; },&lt;br /&gt;
]}&lt;br /&gt;
&amp;lt;/wavedrom&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Blog =&lt;br /&gt;
&lt;br /&gt;
* [[2022_02_18_Container_docker_pour_vieux_BSP]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=User:FabienM&amp;diff=15058</id>
		<title>User:FabienM</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=User:FabienM&amp;diff=15058"/>
		<updated>2022-02-18T14:29:16Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[MemberList | &amp;lt;&amp;lt; liste des membres]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Mes petites bidouilles avec l&#039;armadeus =&lt;br /&gt;
&lt;br /&gt;
* [[Une led qui clignote avec le spartan 3]]&lt;br /&gt;
* [[Petits trucs en vrac]]&lt;br /&gt;
* [[Led sensor]]&lt;br /&gt;
* [[vim | The best editor in the world]]&lt;br /&gt;
&lt;br /&gt;
= Trucs =&lt;br /&gt;
&lt;br /&gt;
== Python en environnement virtuel ==&lt;br /&gt;
&lt;br /&gt;
Un pense bète pour installer la version voulue de python en environnement virtuel avec virtualenv:&lt;br /&gt;
&lt;br /&gt;
=== virtualenv et autre tkinter ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install python-tk python3-tk tk-dev&lt;br /&gt;
apt-get install python-virtualenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python 3.7.4 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libffi-dev&lt;br /&gt;
wget https://www.python.org/ftp/python/3.7.4/Python-3.7.4.tar.xz&lt;br /&gt;
tar -Jxvf Python-3.7.4.tar.xz&lt;br /&gt;
cd Python-3.7.4&lt;br /&gt;
./configure --enable-shared&lt;br /&gt;
make&lt;br /&gt;
sudo make install&lt;br /&gt;
sudo ldconfig /usr/local/lib&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== virtualenv ===&lt;br /&gt;
&lt;br /&gt;
* Virtual env configuration:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
apt-get install python-virtualenv&lt;br /&gt;
mkdir virtenv&lt;br /&gt;
cd virtenv&lt;br /&gt;
virtualenv --python=/usr/local/bin/python3.7 envp37&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* enum bug fix:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ~/virtenv/envp37/lib/python3.7&lt;br /&gt;
ln -s /usr/local/lib/python3.7/enum.py&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Activation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
source /home/armadeus/virtenv/envp37/bin/activate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Desactivation:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
deactivate&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &#039;&#039;&#039;P&#039;&#039;&#039;eripheral &#039;&#039;&#039;O&#039;&#039;&#039;n &#039;&#039;&#039;D&#039;&#039;&#039;emand =&lt;br /&gt;
&lt;br /&gt;
* [[Specification feedback]]&lt;br /&gt;
&lt;br /&gt;
= Participation à la documentation ArmadeuS Project =&lt;br /&gt;
&lt;br /&gt;
* [[How to make a VHDL design in Ubuntu/Debian]]&lt;br /&gt;
* [[How to simulate post synthesis and post place &amp;amp; route design with GHDL]]&lt;br /&gt;
&lt;br /&gt;
* [[Using FPGA]]&lt;br /&gt;
&lt;br /&gt;
* [[A simple design with Wishbone bus]]&lt;br /&gt;
&lt;br /&gt;
* [[How to use kernel 2.6.38.x on APF27]]&lt;br /&gt;
&lt;br /&gt;
== Trash ==&lt;br /&gt;
* [[APF27_FPGA-IMX_interface_description | Description of FPGA-IMX interface for APF27]]&lt;br /&gt;
* [[APF51_FPGA-IMX_interface_description | Description of FPGA-IMX interface for APF51]]&lt;br /&gt;
* [[FPGA | FPGA on APF introduction]]&lt;br /&gt;
* [[FPGA and led | Button and LED]]&lt;br /&gt;
&lt;br /&gt;
== Projets ==&lt;br /&gt;
&lt;br /&gt;
* Camera [[C38A]] with chip ov7620&lt;br /&gt;
* Camera omnivision [[VC21CC1]]&lt;br /&gt;
* [[Robotic]]&lt;br /&gt;
* [[Home monitoring energy | Compteur d&#039;énergie électrique]]&lt;br /&gt;
* [[OOCP]] (Only One Cable Project)&lt;br /&gt;
* [[Use MySQL-client on apf9328]]&lt;br /&gt;
* [[Light-APF27Dev | Light-APF27Dev project ]]&lt;br /&gt;
&lt;br /&gt;
= Liens utiles =&lt;br /&gt;
&lt;br /&gt;
* Projets [http://sourceforge.net/projects/armadeus sourceforge]&lt;br /&gt;
* Site [http://www.armadeus.com/english/index.html entreprise]&lt;br /&gt;
* Les codes de retour d&#039;erreurs : http://www.opengroup.org/onlinepubs/007908799/xsh/errno.h.html&lt;br /&gt;
* [[Buildroot_Packages]]&lt;br /&gt;
* [http://sebsauvage.net/files/20130426_cpp_quovadis2013cppontheweb-130425105424-phpapp01.pdf Un papier très intéressant] d&#039;un développeur de jeux vidéo prônant l&#039;utilisation du C++ ... pour le web. Notamment grâce à l&#039;utilisation de [http://sebsauvage.net/files/20130426_cpp_multiplatformconthewebwithemscripten-130405172545-phpapp01.pdf emscripten] qui permet de compiler du C++ vers le javascript (HTML5).&lt;br /&gt;
&lt;br /&gt;
= Somes usefull tricks =&lt;br /&gt;
== press a button ==&lt;br /&gt;
Here, function to «press enter to continue» on apf in different languages :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
setbit /proc/driver/gpio/portFmode 13 1 # set pin as gpio&lt;br /&gt;
setbit /proc/driver/gpio/portFdir 13 0  # set pin as input&lt;br /&gt;
setbit /proc/driver/gpio/portFirq 13 1  # irq on rising edge&lt;br /&gt;
&lt;br /&gt;
/usr/bin/testsuite/testbutton /dev/gpio/PF13 3 &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
With &#039;&#039;testbutton&#039;&#039; program comming from&lt;br /&gt;
&#039;&#039;target/linux/modules/fpga/wishbone_example/wb_button&#039;&#039;. Type «make» in this&lt;br /&gt;
directory to compile it.&lt;br /&gt;
&lt;br /&gt;
== Logging with timestamps in seconds ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
while true&lt;br /&gt;
do&lt;br /&gt;
LIGHT=$(cat /sys/class/hwmon/hwmon0/device/in3_input)&lt;br /&gt;
TIME=$(date +%s)&lt;br /&gt;
echo $TIME&amp;quot;, sec, &amp;quot;$LIGHT&amp;quot;, mV,&amp;quot; &amp;gt;&amp;gt; log;&lt;br /&gt;
sleep 2&lt;br /&gt;
done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Press enter to continue ==&lt;br /&gt;
=== C ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void pressEnterToContinue(void)&lt;br /&gt;
{&lt;br /&gt;
    printf(&amp;quot;Press enter to continue\n&amp;quot;);&lt;br /&gt;
    getc(stdin);//XXX &lt;br /&gt;
    while( getc(stdin) != &#039;\n&#039;) ; &lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== C++ ===&lt;br /&gt;
&amp;lt;source lang=&amp;quot;C&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt; //XXX&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
&lt;br /&gt;
void pressEnterToContinue(void)&lt;br /&gt;
{&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;Press enter to continue&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
    getc(stdin); //XXX&lt;br /&gt;
    std::cin.ignore( std::numeric_limits &amp;lt;std::streamsize&amp;gt; ::max(), &#039;\n&#039; );&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python 2 ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def pressEnterToContinue():&lt;br /&gt;
    print &amp;quot;Press enter to continue&amp;quot;&lt;br /&gt;
    raw_input()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Python 3 ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;python&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
def pressEnterToContinue():&lt;br /&gt;
    print(&amp;quot;Press enter to continue&amp;quot;)&lt;br /&gt;
    input()&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Kernel Driver =&lt;br /&gt;
&lt;br /&gt;
* [[IIO kernel driver model]]&lt;br /&gt;
* [[UIO kernel driver model]]&lt;br /&gt;
&lt;br /&gt;
= bac à sable =&lt;br /&gt;
[[Image:dessin.svg]]&lt;br /&gt;
&lt;br /&gt;
* [[APF6_SP_DDR3_PINOUT]]&lt;br /&gt;
* [[APF6_SP The full howto]]&lt;br /&gt;
&lt;br /&gt;
== Wavedrom ==&lt;br /&gt;
&lt;br /&gt;
If [https://github.com/Martoni/mediawiki_wavedrom wavedrom plugin] is installed on this wiki, we can see a beautiful waves bellow :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;wavedrom&amp;gt;&lt;br /&gt;
{ signal: [&lt;br /&gt;
  { name: &amp;quot;clk&amp;quot;,  wave: &amp;quot;p......&amp;quot; },&lt;br /&gt;
  { name: &amp;quot;bus&amp;quot;,  wave: &amp;quot;x.34.5x&amp;quot;,   data: &amp;quot;head body tail&amp;quot; },&lt;br /&gt;
  { name: &amp;quot;wire&amp;quot;, wave: &amp;quot;0.1..0.&amp;quot; },&lt;br /&gt;
]}&lt;br /&gt;
&amp;lt;/wavedrom&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Blog =&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Serial_Transfer&amp;diff=15055</id>
		<title>Serial Transfer</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Serial_Transfer&amp;diff=15055"/>
		<updated>2022-02-01T16:31:42Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Microcom */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Instructions to use the serial port of your Armadeus board to transfer files from/to your PC.&lt;br /&gt;
{{Note|This page explains how to transfer files on the board when the Linux system has started, &#039;&#039;&#039;not from U-Boot !&#039;&#039;&#039;.&lt;br /&gt;
To know how to configure serial link for U-Boot communication, [[Connection_with_U-Boot_on_Linux|it&#039;s here]].}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
When you only have a serial link (RS232/USB) as connection with your devt PC (ie no Ethernet available), then you can use Zmodem protocol to send/receive files to/from your Shell/Console of your Armadeus board.&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Target (APF)====&lt;br /&gt;
Modify your Buildroot configuration:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to add lrzsz package:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Networking applications  ---&amp;gt;&lt;br /&gt;
        [*]   lrzsz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then rebuild your rootfs:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reflash it or manually copy &#039;&#039;rz&#039;&#039; and &#039;&#039;sz&#039;&#039; executables found in &#039;&#039;$ARMADEUS_ROOTFS_DIR/usr/bin/&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Host====&lt;br /&gt;
* Install lrzsz package, if not already installed on your system. For example on Ubuntu/Debian:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo apt-get install lrzsz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Install minicom tool:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo apt-get install minicom&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The first time, configure minicom (as root):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo minicom -s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
&lt;br /&gt;
{{Warning| You must use [[minicom]] as serial terminal and not [[kermit]]/[[screen]], sorry ! :-(}}&lt;br /&gt;
* Be sure to have correctly configured Minicom (line speed, 8N1, no flow control, and correct download/upload directories path).&lt;br /&gt;
* Use &#039;&#039;&#039;rz&#039;&#039;&#039; for receiving and &#039;&#039;&#039;sz&#039;&#039;&#039; to send files:&lt;br /&gt;
====Host (PC) --&amp;gt; Target (APF)====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cd /whereToPutTheFileOnTheTarget/&lt;br /&gt;
 # rz -bZ&lt;br /&gt;
 .. waiting to receive.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* then in minicom do: &#039;&#039;&#039;Ctrl+a , s&#039;&#039;&#039; and choose zmodem protocol and the file to send.&lt;br /&gt;
* Wait a little and your file will be copied to your board rootfs ! ;-)&lt;br /&gt;
&lt;br /&gt;
====Target (APF) --&amp;gt; Host (PC)====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cd /location/of_the/file_to_send/on_the_apf/&lt;br /&gt;
 # sz -b --zmodem filename&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Minicom handles the file receiving automatically (and put it in your $HOME by default, or the directory you configured in Minicom: Ctrl+z, o, &#039;&#039;Filenames and paths&#039;&#039;, &#039;&#039;Download directory&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===TBDL===&lt;br /&gt;
====Serial transfer through USB gadget as serial link====&lt;br /&gt;
After having booted your board:&lt;br /&gt;
* On your Target, open a new terminal on your serial link (here USB):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # /sbin/getty -L ttygserial 115200 vt100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* On your Host, launch Minicom and configure it to use &#039;&#039;/dev/ttyUSB1&#039;&#039; at 115200, then connect it to this terminal&lt;br /&gt;
&lt;br /&gt;
===Transfer without terminal===&lt;br /&gt;
* On your Target, launch receiving:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# rz --zmodem 1&amp;gt;/dev/ttyXXX 0&amp;lt;/dev/ttyXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* On your Host, launch transfer:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ sz --zmodem /tftpboot/afiletosend 1&amp;gt;/dev/ttyUSB1 0&amp;lt;/dev/ttyUSB1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UBoot ==&lt;br /&gt;
&lt;br /&gt;
=== Minicom ===&lt;br /&gt;
&lt;br /&gt;
With [[minicom]] use ymodem :&lt;br /&gt;
&lt;br /&gt;
* type:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; loady ${loadaddr}&lt;br /&gt;
Ctrl+A Z&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Select ymodem  then filename&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* http://www.ohse.de/uwe/software/lrzsz.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Serial ports]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Serial_Transfer&amp;diff=15054</id>
		<title>Serial Transfer</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Serial_Transfer&amp;diff=15054"/>
		<updated>2022-02-01T16:30:53Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* Linux */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Instructions to use the serial port of your Armadeus board to transfer files from/to your PC.&lt;br /&gt;
{{Note|This page explains how to transfer files on the board when the Linux system has started, &#039;&#039;&#039;not from U-Boot !&#039;&#039;&#039;.&lt;br /&gt;
To know how to configure serial link for U-Boot communication, [[Connection_with_U-Boot_on_Linux|it&#039;s here]].}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
When you only have a serial link (RS232/USB) as connection with your devt PC (ie no Ethernet available), then you can use Zmodem protocol to send/receive files to/from your Shell/Console of your Armadeus board.&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Target (APF)====&lt;br /&gt;
Modify your Buildroot configuration:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to add lrzsz package:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Networking applications  ---&amp;gt;&lt;br /&gt;
        [*]   lrzsz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then rebuild your rootfs:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reflash it or manually copy &#039;&#039;rz&#039;&#039; and &#039;&#039;sz&#039;&#039; executables found in &#039;&#039;$ARMADEUS_ROOTFS_DIR/usr/bin/&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Host====&lt;br /&gt;
* Install lrzsz package, if not already installed on your system. For example on Ubuntu/Debian:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo apt-get install lrzsz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Install minicom tool:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo apt-get install minicom&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The first time, configure minicom (as root):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo minicom -s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
&lt;br /&gt;
{{Warning| You must use [[minicom]] as serial terminal and not [[kermit]]/[[screen]], sorry ! :-(}}&lt;br /&gt;
* Be sure to have correctly configured Minicom (line speed, 8N1, no flow control, and correct download/upload directories path).&lt;br /&gt;
* Use &#039;&#039;&#039;rz&#039;&#039;&#039; for receiving and &#039;&#039;&#039;sz&#039;&#039;&#039; to send files:&lt;br /&gt;
====Host (PC) --&amp;gt; Target (APF)====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cd /whereToPutTheFileOnTheTarget/&lt;br /&gt;
 # rz -bZ&lt;br /&gt;
 .. waiting to receive.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* then in minicom do: &#039;&#039;&#039;Ctrl+a , s&#039;&#039;&#039; and choose zmodem protocol and the file to send.&lt;br /&gt;
* Wait a little and your file will be copied to your board rootfs ! ;-)&lt;br /&gt;
&lt;br /&gt;
====Target (APF) --&amp;gt; Host (PC)====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cd /location/of_the/file_to_send/on_the_apf/&lt;br /&gt;
 # sz -b --zmodem filename&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Minicom handles the file receiving automatically (and put it in your $HOME by default, or the directory you configured in Minicom: Ctrl+z, o, &#039;&#039;Filenames and paths&#039;&#039;, &#039;&#039;Download directory&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===TBDL===&lt;br /&gt;
====Serial transfer through USB gadget as serial link====&lt;br /&gt;
After having booted your board:&lt;br /&gt;
* On your Target, open a new terminal on your serial link (here USB):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # /sbin/getty -L ttygserial 115200 vt100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* On your Host, launch Minicom and configure it to use &#039;&#039;/dev/ttyUSB1&#039;&#039; at 115200, then connect it to this terminal&lt;br /&gt;
&lt;br /&gt;
===Transfer without terminal===&lt;br /&gt;
* On your Target, launch receiving:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# rz --zmodem 1&amp;gt;/dev/ttyXXX 0&amp;lt;/dev/ttyXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* On your Host, launch transfer:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ sz --zmodem /tftpboot/afiletosend 1&amp;gt;/dev/ttyUSB1 0&amp;lt;/dev/ttyUSB1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== UBoot ==&lt;br /&gt;
&lt;br /&gt;
=== Microcom ===&lt;br /&gt;
&lt;br /&gt;
With [[microcom]] use ymodem :&lt;br /&gt;
&lt;br /&gt;
* type:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
BIOS&amp;gt; loady ${loadaddr}&lt;br /&gt;
Ctrl+A Z&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Select ymodem  then filename&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* http://www.ohse.de/uwe/software/lrzsz.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Serial ports]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=Serial_Transfer&amp;diff=15053</id>
		<title>Serial Transfer</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=Serial_Transfer&amp;diff=15053"/>
		<updated>2022-02-01T16:29:14Z</updated>

		<summary type="html">&lt;p&gt;FabienM: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Instructions to use the serial port of your Armadeus board to transfer files from/to your PC.&lt;br /&gt;
{{Note|This page explains how to transfer files on the board when the Linux system has started, &#039;&#039;&#039;not from U-Boot !&#039;&#039;&#039;.&lt;br /&gt;
To know how to configure serial link for U-Boot communication, [[Connection_with_U-Boot_on_Linux|it&#039;s here]].}}&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
&lt;br /&gt;
When you only have a serial link (RS232/USB) as connection with your devt PC (ie no Ethernet available), then you can use Zmodem protocol to send/receive files to/from your Shell/Console of your Armadeus board.&lt;br /&gt;
&lt;br /&gt;
== Linux ==&lt;br /&gt;
&lt;br /&gt;
===Installation===&lt;br /&gt;
&lt;br /&gt;
====Target (APF)====&lt;br /&gt;
Modify your Buildroot configuration:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to add lrzsz package:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
Package Selection for the target  ---&amp;gt;&lt;br /&gt;
    Networking applications  ---&amp;gt;&lt;br /&gt;
        [*]   lrzsz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
and then rebuild your rootfs:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Reflash it or manually copy &#039;&#039;rz&#039;&#039; and &#039;&#039;sz&#039;&#039; executables found in &#039;&#039;$ARMADEUS_ROOTFS_DIR/usr/bin/&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Host====&lt;br /&gt;
* Install lrzsz package, if not already installed on your system. For example on Ubuntu/Debian:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo apt-get install lrzsz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Install minicom tool:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo apt-get install minicom&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* The first time, configure minicom (as root):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ sudo minicom -s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Usage===&lt;br /&gt;
&lt;br /&gt;
{{Warning| You must use [[minicom]] as serial terminal and not [[kermit]]/[[screen]], sorry ! :-(}}&lt;br /&gt;
* Be sure to have correctly configured Minicom (line speed, 8N1, no flow control, and correct download/upload directories path).&lt;br /&gt;
* Use &#039;&#039;&#039;rz&#039;&#039;&#039; for receiving and &#039;&#039;&#039;sz&#039;&#039;&#039; to send files:&lt;br /&gt;
====Host (PC) --&amp;gt; Target (APF)====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cd /whereToPutTheFileOnTheTarget/&lt;br /&gt;
 # rz -bZ&lt;br /&gt;
 .. waiting to receive.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* then in minicom do: &#039;&#039;&#039;Ctrl+a , s&#039;&#039;&#039; and choose zmodem protocol and the file to send.&lt;br /&gt;
* Wait a little and your file will be copied to your board rootfs ! ;-)&lt;br /&gt;
&lt;br /&gt;
====Target (APF) --&amp;gt; Host (PC)====&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cd /location/of_the/file_to_send/on_the_apf/&lt;br /&gt;
 # sz -b --zmodem filename&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Minicom handles the file receiving automatically (and put it in your $HOME by default, or the directory you configured in Minicom: Ctrl+z, o, &#039;&#039;Filenames and paths&#039;&#039;, &#039;&#039;Download directory&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
===TBDL===&lt;br /&gt;
====Serial transfer through USB gadget as serial link====&lt;br /&gt;
After having booted your board:&lt;br /&gt;
* On your Target, open a new terminal on your serial link (here USB):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # /sbin/getty -L ttygserial 115200 vt100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* On your Host, launch Minicom and configure it to use &#039;&#039;/dev/ttyUSB1&#039;&#039; at 115200, then connect it to this terminal&lt;br /&gt;
&lt;br /&gt;
===Transfer without terminal===&lt;br /&gt;
* On your Target, launch receiving:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
# rz --zmodem 1&amp;gt;/dev/ttyXXX 0&amp;lt;/dev/ttyXXX&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* On your Host, launch transfer:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ sz --zmodem /tftpboot/afiletosend 1&amp;gt;/dev/ttyUSB1 0&amp;lt;/dev/ttyUSB1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* http://www.ohse.de/uwe/software/lrzsz.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Serial ports]]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
	<entry>
		<id>http://wikilegacy.armadeus.com/index.php?title=ISE_WebPack_installation_on_Linux&amp;diff=15050</id>
		<title>ISE WebPack installation on Linux</title>
		<link rel="alternate" type="text/html" href="http://wikilegacy.armadeus.com/index.php?title=ISE_WebPack_installation_on_Linux&amp;diff=15050"/>
		<updated>2022-01-20T09:57:16Z</updated>

		<summary type="html">&lt;p&gt;FabienM: /* ISE 14.7 tips */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category: FPGA]]&lt;br /&gt;
==Xilinx WebPack installation instructions for Linux Ubuntu (6.10) with ISE 10.1.==&lt;br /&gt;
&lt;br /&gt;
{{Note|Tested on:&lt;br /&gt;
* Ubuntu Dapper (6.10) &amp;amp; Gusty (7.10) x86 32bits, &lt;br /&gt;
* KUbuntu 7.10 x86 32bits&lt;br /&gt;
}}&lt;br /&gt;
=== Packages needed ===&lt;br /&gt;
Install following package before installing ISE:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ sudo apt-get install libstdc++5 libmotif4 libxp6 libcurl3&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Instructions ===&lt;br /&gt;
{{Note|On new version of ISE webpack &#039;&#039;&#039;tcl console&#039;&#039;&#039; is not activated by default. To use it check the menu &#039;&#039;&#039;View-&amp;gt;Panels-&amp;gt;Tcl Console&#039;&#039;&#039;}}&lt;br /&gt;
* download &#039;&#039;&#039;ISE WebPACK - WebInstall / ISE WebPACK 10.1 (Free Download)&#039;&#039;&#039; archive [http://www.xilinx.com/ise/logic_design_prod/webpack.htm from here]. You will need to create a Xilinx&#039;s account and register before being able to download files (it&#039;s free).&lt;br /&gt;
* Choose the full download version &amp;quot;Download Files Individually&amp;quot; (2,4 Gbytes). When asked, you are not obliged to accept Java download manager (if you are sure of your Internet connection quality). &#039;&#039;&#039;Note the registration ID, it will be asked later during installation.&#039;&#039;&#039;&lt;br /&gt;
[[Image:ISE_full_download.png]]&lt;br /&gt;
* You will get a &#039;&#039;webpack_SFD.tar&#039;&#039; archive, save it in your &#039;&#039;$HOME&#039;&#039; dir&lt;br /&gt;
* unzip the archive:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ cd $HOME&lt;br /&gt;
 $ tar xvf webpack_SFD.tar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* launch the installation&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ cd webpack&lt;br /&gt;
 $ ./setup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Follows the instructions of the graphical interface (you need to launch setup as root if you want to install JTAG tools &#039;&#039;&#039;but on Armadeus JTAG tools are not needed to program the FPGA&#039;&#039;&#039;):&lt;br /&gt;
[[Image:ISE_install_select.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ISE_install_dir.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ISE_install_options.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ISE_install_options2.png]]&lt;br /&gt;
&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
[[Image:ISE_install_update.png]]&lt;br /&gt;
&lt;br /&gt;
== Installation guide for debian Wheezy (intel i5 64bits)  and ISE 14.6 ==&lt;br /&gt;
&lt;br /&gt;
* with a 64bits (amd64 on debian) first configure i386 compatibility:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
sudo dpkg --add-architecture i386&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install ia32-libs ia32-libs-gtk&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Following package must then be installed :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt-get install libstdc++5 libxp6 libcurl3 libmotif4&lt;br /&gt;
sudo apt-get install libstdc++5:i386 libxp6:i386 libcurl3:i386 libmotif4:i386&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Download «ISE Design Suite - 14.6 Full Product Installation» on [http://www.xilinx.com/support/download/index.html/content/xilinx/en/downloadNav/design-tools.html xilinx website] (7.3Go !)&lt;br /&gt;
&lt;br /&gt;
* decompress the tar archive with following command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
tar xvf Xilinx_ISE_DS_14.6_P.68d_3.tar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* launch installer :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
cd Xilinx_ISE_DS_14.6_P.68d_3&lt;br /&gt;
./xsetup&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* accept all conditions&lt;br /&gt;
* select &#039;&#039;ISE WebPACK&#039;&#039; under menu &#039;&#039;&#039;Select Products to Install&#039;&#039;&#039;.&lt;br /&gt;
* keep default settings&lt;br /&gt;
* Give a directory where you have enough space (1.6Go).&lt;br /&gt;
* click on &#039;&#039;&#039;Install&#039;&#039;&#039; button&lt;br /&gt;
* get a free license on [http://www.xilinx.com/getlicense this page].&lt;br /&gt;
&lt;br /&gt;
* Go to the directory ISE/ then create the following shell script named &#039;&#039;&#039;launchISE&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
source ../ISE/14.6/ISE_DS/settings32.sh&lt;br /&gt;
cd ../ISE/14.6/ISE_DS/ISE/bin/lin/&lt;br /&gt;
./ise&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Give rights :&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
chmod 777 launchISE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Then launch it:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
./launchISE&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Enjoy the power of Xilinx tools.&lt;br /&gt;
&lt;br /&gt;
* To add tcl console : View -&amp;gt; Panels -&amp;gt; Tcl Console&lt;br /&gt;
&lt;br /&gt;
{{Note| For [[Migen]], you can also export xilinx path in your &#039;&#039;&#039;~/.bashrc&#039;&#039;&#039; file :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
export XILINX=/opt/Xilinx/14.7/ISE_DS/ISE/&lt;br /&gt;
export PATH=$PATH:${XILINX}/bin/lin&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
== ISE 14.7 tips ==&lt;br /&gt;
&lt;br /&gt;
* To launch FPGA Editor, install following packages, then add symbolic links [https://askubuntu.com/a/1187070 as explained here].&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
sudo apt install libxm4&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Troubleshooting ==&lt;br /&gt;
&lt;br /&gt;
=== CoreGen TCL Evaluation Error ===&lt;br /&gt;
&lt;br /&gt;
TCL problems with coregen come from an old version of java [https://wiki.archlinux.org/index.php/Xilinx_ISE_WebPACK#CORE_Generator_fails_to_generate_core as explain on archlinux wiki].&lt;br /&gt;
&lt;br /&gt;
Solution #2 works :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
# backup old java&lt;br /&gt;
$ mv /opt/Xilinx/14.7/ISE_DS/ISE/java/lin64/jre/bin/java /opt/Xilinx/14.7/ISE_DS/ISE/java/lin64/jre/bin/java.old&lt;br /&gt;
# make symbolic link for java 6&lt;br /&gt;
$ ln -s /opt/Xilinx/14.7/ISE_DS/ISE/java6/lin64/jre/bin/java /opt/Xilinx/14.7/ISE_DS/ISE/java/lin64/jre/bin/java&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* http://www.xilinx.com/ise/logic_design_prod/webpack.htm&lt;br /&gt;
* Good french tutorial : http://harded.free.fr/site/?p=55&lt;br /&gt;
* [http://outputlogic.com/xcell_using_xilinx_tools/74_xperts_04.pdf to use it in command lines]&lt;br /&gt;
* [http://www.wiki.xilinx.com/ Xilinx Wiki]&lt;br /&gt;
* [http://forums.xilinx.com/ Xilinx forum]&lt;/div&gt;</summary>
		<author><name>FabienM</name></author>
	</entry>
</feed>