
<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://armadeus.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PaoloB</id>
		<title>ArmadeusWiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://armadeus.org/wiki/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=PaoloB"/>
		<link rel="alternate" type="text/html" href="http://armadeus.org/wiki/index.php?title=Special:Contributions/PaoloB"/>
		<updated>2026-04-04T01:59:21Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.26.3</generator>

	<entry>
		<id>http://armadeus.org/wiki/index.php?title=POD_Tutorial_2&amp;diff=7359</id>
		<title>POD Tutorial 2</title>
		<link rel="alternate" type="text/html" href="http://armadeus.org/wiki/index.php?title=POD_Tutorial_2&amp;diff=7359"/>
				<updated>2009-09-16T09:37:06Z</updated>
		
		<summary type="html">&lt;p&gt;PaoloB: updated pod syntax: addcomponent became addinstance&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;﻿ {{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
Here is a simple use case example for POD. We will create a project to include a full modem UART coming from OpenCores.org. This IP is compatible with the [[OpenCore_16550_IP_Linux_driver|16550 Linux serial driver]]. The platform used is the APF9328.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[image:projectuart.png|center|thumb|500px|'''figure 1''' - ''Simple example with one uart'']]&lt;br /&gt;
&lt;br /&gt;
In this example, a complete POD project is built including the synthesis, the simulation and the generation of the Linux drivers. The operating system used to run POD is Ubuntu 7.10.&lt;br /&gt;
&lt;br /&gt;
== Project creation ==&lt;br /&gt;
&lt;br /&gt;
In a terminal, run POD as follow:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ python pod.py&lt;br /&gt;
POD&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The runtime file ''pod.py'' is in directory ''pod/bin/''.&lt;br /&gt;
&lt;br /&gt;
A console prompt is displayed. To create a project, enter in the project environment&lt;br /&gt;
then write ''create'':&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD&amp;gt; project&lt;br /&gt;
POD.project&amp;gt; create uartproject&lt;br /&gt;
Project uartproject created&lt;br /&gt;
POD.project:uartproject&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The project created is named ''uartproject''. Now, the targeted platform can be selected with the ''selectplatform'' command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:uartproject&amp;gt; selectplatform apf9328&lt;br /&gt;
Component platform added as apf9328&lt;br /&gt;
Component imx9328_wb16_wrapper added as imx9328_wb16_wrapper00&lt;br /&gt;
Component rstgen_syscon added as rstgen_syscon00&lt;br /&gt;
Component irq_mngr added as irq_mngr00&lt;br /&gt;
setting base address 0x0 for irq_mngr00.swb16&lt;br /&gt;
Platform apf9328 selected&lt;br /&gt;
POD.project:uartproject&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
When the platform APF9328 is selected, POD automatically loads some components : the wrapper, the syscon and the interrupts manager corresponding to this platform. These components are used for a Wishbone bus. If they are not required they can be deleted with the ''delcomponent'' command.&lt;br /&gt;
&lt;br /&gt;
To complete the project, the uart16550 component must be loaded. The component library proposes severals components categories that can be displayed with the ''listcomponent'' command: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:uartproject&amp;gt; listcomponents&lt;br /&gt;
syscons wrappers test components&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
UART components can be found in &amp;quot;components&amp;quot; category :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:uartproject&amp;gt; listcomponents components&lt;br /&gt;
i2cocore  button  irq_mngr  led  uart16550  ledsensor  simplegpio&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A component can then be load with the ''addcomponent'' command:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:uartproject&amp;gt; addinstance components.uart16550 uart&lt;br /&gt;
Component uart16550 added as uart&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now that all the components of the project are loaded, we can connect them.&lt;br /&gt;
&lt;br /&gt;
== Component connection ==&lt;br /&gt;
&lt;br /&gt;
=== Interrupt connection ===&lt;br /&gt;
&lt;br /&gt;
The UART component has one connection pin named ''interrupt.int_o'', it will be connected to the irqport pin 0 of the interrupt manager (irq_mngr00):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
uartproject&amp;gt; connectpin uart.interrupt.int_o irq_mngr00.irq.irqport.0&lt;br /&gt;
pin connected&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== FPGA connections ===&lt;br /&gt;
&lt;br /&gt;
The UART signals must be connected outside the fpga. The platform name is used like another component of the project. The UART pins will be connected to the platform pins ''via'' the apf9328 instance.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:uartproject&amp;gt; connectpin uart.uart.srx_pad_i apf9328.fpga.IO_L21N_2&lt;br /&gt;
POD.project:uartproject&amp;gt; connectpin uart.uart.stx_pad_o apf9328.fpga.IO_L21P_2&lt;br /&gt;
POD.project:uartproject&amp;gt; connectpin uart.uart.rts_pad_o apf9328.fpga.IO_L22N_2&lt;br /&gt;
POD.project:uartproject&amp;gt; connectpin uart.uart.cts_pad_i apf9328.fpga.IO_L22P_2&lt;br /&gt;
POD.project:uartproject&amp;gt; connectpin uart.uart.dtr_pad_o apf9328.fpga.IO_L23N_2&lt;br /&gt;
POD.project:uartproject&amp;gt; connectpin uart.uart.dsr_pad_i apf9328.fpga.IO_L23P_2&lt;br /&gt;
POD.project:uartproject&amp;gt; connectpin uart.uart.dcd_pad_i apf9328.fpga.IO_L24N_2&lt;br /&gt;
POD.project:uartproject&amp;gt; connectpin uart.uart.ri_pad_i apf9328.fpga.IO_L40N_2&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Bus connection ===&lt;br /&gt;
&lt;br /&gt;
The irq manager was automaticaly connected to the wrapper/syscon when the platform was selected (part of the plateform), thus only the UART must be connected to the wrapper with the ''connectbus'' command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:uartproject&amp;gt; connectbus imx9328_wb16_wrapper00.mwb16 uart.swb16&lt;br /&gt;
Bus connected&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Clock connection ===&lt;br /&gt;
&lt;br /&gt;
The Wishbone bus requires a clock and a reset connection to be assigned, this can be done by means of the ''addbusclock'' command.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt; addbusclock rstgen_syscon00.candr imx9328_wb16_wrapper00.mwb16&lt;br /&gt;
Connected&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This connection is done automatically when command ''autoconnectbus'' is called.&lt;br /&gt;
&lt;br /&gt;
== Code generation ==&lt;br /&gt;
&lt;br /&gt;
The component connections are now done. The Intercon and the Top components&lt;br /&gt;
can then be automatically generated.&lt;br /&gt;
&lt;br /&gt;
=== Intercon ===&lt;br /&gt;
&lt;br /&gt;
The intercon is a component creating the connections for the Wishbone bus. It is generated with the ''intercon'' command and with the master bus interface as parameter :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:uartproject&amp;gt; intercon imx9328_wb16_wrapper00.mwb16&lt;br /&gt;
setting base address 0x10 for uart.swb16&lt;br /&gt;
Component imx9328_wb16_wrapper00_mwb16_intercon added as&lt;br /&gt;
imx9328_wb16_wrapper00_mwb16_intercon&lt;br /&gt;
Intercon with name : imx9328_wb16_wrapper00_mwb16_intercon Done&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A new component named ''imx9328_wb16_wrapper00_mwb16_intercon'' is created and added to the project.&lt;br /&gt;
&lt;br /&gt;
=== Top ===&lt;br /&gt;
&lt;br /&gt;
The Top component is a VHDL component creating the non Wishbone connections. To generate it just type ''top'' :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:uartproject&amp;gt; top&lt;br /&gt;
Top generated with name : top_uartproject.vhd&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Toolchain project generation ==&lt;br /&gt;
&lt;br /&gt;
The project is now fully specified, we can generate the project files for the synthesis, for the simulation and for the driver.&lt;br /&gt;
&lt;br /&gt;
=== Synthesis ===&lt;br /&gt;
&lt;br /&gt;
The targeted FPGA is a Xilinx Spartan3 and thus ISE is needed for the synthesis. Under the ''synthesis'' environment ISE can be selected with the ''selecttoolchain'' command :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:uartproject&amp;gt; synthesis&lt;br /&gt;
POD.project.synthesis&amp;gt; selecttoolchain ise&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then the synthesis project can be generated : &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project.synthesis&amp;gt; generateproject&lt;br /&gt;
Make directory for imx9328_wb16_wrapper&lt;br /&gt;
Make directory for rstgen_syscon&lt;br /&gt;
Make directory for irq_mngr&lt;br /&gt;
Make directory for uart16550&lt;br /&gt;
Make directory for imx9328_wb16_wrapper00_mwb16_intercon&lt;br /&gt;
POD.project.synthesis&amp;gt; generatepinout&lt;br /&gt;
Constraint file generated with name :&lt;br /&gt;
uartproject/synthesis/uartproject.ucf&lt;br /&gt;
POD.project.synthesis&amp;gt; generatetcl&lt;br /&gt;
Script generated with name uartproject.tcl&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The ''generateproject'' command creates a subdirectory for each component and fill in it with the corresponding VHDL code. &lt;br /&gt;
''generatepinout'' command creates the constraint file for the fpga-pin configuration and ''generatetcl'' creates the tcl script to automatise ISE.&lt;br /&gt;
&lt;br /&gt;
In ISE, to synthesize the project we just have to launch :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
% source uartproject.tcl&lt;br /&gt;
&amp;lt;/source&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Simulation project===&lt;br /&gt;
TBD&lt;br /&gt;
&lt;br /&gt;
=== Driver generation ===&lt;br /&gt;
&lt;br /&gt;
To generate the driver, the operating system must be selected :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project:uartproject&amp;gt; driver&lt;br /&gt;
POD.project.driver&amp;gt; selectoperatingsystem linux&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then command ''generateproject'' can be used to create the driver project:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project.driver&amp;gt; generateproject&lt;br /&gt;
No driver for imx9328_wb16_wrapper&lt;br /&gt;
No driver for rstgen_syscon&lt;br /&gt;
Copy drivers template for irq_mngr&lt;br /&gt;
Copy drivers template for uart16550&lt;br /&gt;
No driver for imx9328_wb16_wrapper00_mwb16_intercon&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For each component in the project, POD looks for a template driver according to the OS selected (here Linux). If a template is found, the files are copied in the ''project/drivers/'' directory.&lt;br /&gt;
In this example, only the ''irq_mngr'' and the ''uart16550'' have a linux driver.&lt;br /&gt;
&lt;br /&gt;
Once the template sources copied, they can be filled in with the ''filltemplates'' command :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD.project.driver&amp;gt; filltemplates&lt;br /&gt;
Fill template for irq_mngr&lt;br /&gt;
Fill template for uart16550&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The drivers will be copied in the Armadeus project tree with the command ''copydrivers''. But before, the driver directory must be selected with the ''selectprojecttree'' command:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
...&amp;gt; selectprojecttree ~/armadeus/target/linux/modules/fpga/POD&lt;br /&gt;
POD.project:uartproject.driver&amp;gt; copydrivers&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Script ==&lt;br /&gt;
&lt;br /&gt;
Scripts can be used to automatize the conception of a project.&lt;br /&gt;
A script is a simple text file with one command per line. The # symbol can be used for delimiting comments.&lt;br /&gt;
&lt;br /&gt;
Scripts can be launched directly from the command line when calling POD:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
$ python pod.py scriptname&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Or can be loaded from POD :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD&amp;gt; source scriptname&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Finally a command history can be saved as a script with the ''savehistory'' command :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
POD&amp;gt; savehistory uartscript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The whole script for the uart project example can be found below :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;bash&amp;quot;&amp;gt;&lt;br /&gt;
project.create uartproject&lt;br /&gt;
project.selectplatform apf9328&lt;br /&gt;
project.listcomponents&lt;br /&gt;
project.listcomponents components&lt;br /&gt;
project.addcomponent components.uart16550 uart&lt;br /&gt;
project.connectpin uart.interrupt.int_o irq_mngr00.irq.irqport.0&lt;br /&gt;
project.connectpin uart.uart.srx_pad_i apf9328.fpga.IO_L21N_2&lt;br /&gt;
project.connectpin uart.uart.stx_pad_o apf9328.fpga.IO_L21P_2&lt;br /&gt;
project.connectpin uart.uart.rts_pad_o apf9328.fpga.IO_L22N_2&lt;br /&gt;
project.connectpin uart.uart.cts_pad_i apf9328.fpga.IO_L22P_2&lt;br /&gt;
project.connectpin uart.uart.dtr_pad_o apf9328.fpga.IO_L23N_2&lt;br /&gt;
project.connectpin uart.uart.dsr_pad_i apf9328.fpga.IO_L23P_2&lt;br /&gt;
project.connectpin uart.uart.dcd_pad_i apf9328.fpga.IO_L24N_2&lt;br /&gt;
project.connectpin uart.uart.ri_pad_i apf9328.fpga.IO_L40N_2&lt;br /&gt;
project.connectbus imx9328_wb16_wrapper00.mwb16 uart.swb16&lt;br /&gt;
project.addbusclock rstgen_syscon00.candr imx9328_wb16_wrapper00.mwb16&lt;br /&gt;
project.intercon imx9328_wb16_wrapper00.mwb16&lt;br /&gt;
project.codegen.intercon imx9328_wb16_wrapper00.mwb16&lt;br /&gt;
project.codegen.top&lt;br /&gt;
project.synthesis.selecttoolchain ise&lt;br /&gt;
project.synthesis.generateproject&lt;br /&gt;
project.synthesis.generatepinout&lt;br /&gt;
project.synthesis.generatetcl&lt;br /&gt;
project.simulation.selecttoolchain ghdl&lt;br /&gt;
project.simulation.generatetestbench&lt;br /&gt;
project.simulation.generatemakefile&lt;br /&gt;
project.driver.selectoperatingsystem linux&lt;br /&gt;
project.driver.generateproject&lt;br /&gt;
project.driver.filltemplates&lt;br /&gt;
project.driver.selectprojecttree ~/armadeus/target/linux/modules/fpga/POD&lt;br /&gt;
project.driver.copydrivers&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
[[Category:POD]]&lt;/div&gt;</summary>
		<author><name>PaoloB</name></author>	</entry>

	<entry>
		<id>http://armadeus.org/wiki/index.php?title=QEMU&amp;diff=6749</id>
		<title>QEMU</title>
		<link rel="alternate" type="text/html" href="http://armadeus.org/wiki/index.php?title=QEMU&amp;diff=6749"/>
				<updated>2009-06-17T16:05:12Z</updated>
		
		<summary type="html">&lt;p&gt;PaoloB: /* Launch it */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Under_Construction}}&lt;br /&gt;
&lt;br /&gt;
Well, you don't have enough money to buy an Armadeus board and just want to be part of the &amp;quot;Software&amp;quot; side of the project ? Then QEMU can be a good choice for you !! &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
{{Warning|&lt;br /&gt;
Just be aware that currently Armadeus hardware is not emulated under QEMU, we are just using an other board hardware emulation (ARM Versatile) and Linux kernel to launch our rootfs and test our software which is not hardware related (ie User interface, Network, etc...)&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
In order to build a hardware matching machine for Armadeus boards under Qemu, follow this link and add devices you are interested to see emulated in Qemu: &lt;br /&gt;
[[QemuMachineDevelopment | Qemu machine development]]&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
* on Debian, *Ubuntu just do a:&lt;br /&gt;
 [armadeus]$ sudo apt-get install qemu bridge-utils ?vde?&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
QEMU has several ways of emulating the network:&lt;br /&gt;
* user mode (by default): you can access Internet from your emulated target or an internal Samba/TFTP server but your are not directly accessible&lt;br /&gt;
* bridge mode: you can communicate directly with the Host&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Note|For a first try you can skip following part and go directly [[QEMU#Get.2Fgenerate_simulation_images|here.]]}}&lt;br /&gt;
As we want to mimic the devt environment with a real target (that has its own IP adress and is eccesible from the host) we will use &amp;quot;bridged mode&amp;quot;.&lt;br /&gt;
This mode require some configuration on your Host:&lt;br /&gt;
* Install ''bridge_utils'' package&lt;br /&gt;
* Activate IPv4 forwarding, for example on Ubuntu, uncomment the following line in ''/etc/sysctl.conf'':&lt;br /&gt;
&amp;lt;pre class=host&amp;gt;&lt;br /&gt;
 $ sudo vim /etc/sysctl.conf&lt;br /&gt;
 &lt;br /&gt;
   # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
   #net/ipv4/ip_forward=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* In ''/etc/network/interface'' comment the line referring to your current Ethernet card and replace them with:&lt;br /&gt;
&lt;br /&gt;
 auto br0&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
  bridge_ports eth0&lt;br /&gt;
  bridge_fd 9&lt;br /&gt;
  bridge_hello 2&lt;br /&gt;
  bridge_maxage 12&lt;br /&gt;
  bridge_stp off &lt;br /&gt;
 &lt;br /&gt;
 #auto eth0&lt;br /&gt;
 #iface eth0 inet dhcp&lt;br /&gt;
{{Note|If you are using a modern linux distribution like Ubuntu, also be sure NetworkManager is disabled/not configured. Otherwise conflict occur and network does not work at all.}}&lt;br /&gt;
&lt;br /&gt;
* Create a script ''/etc/qemu-ifup'' that will be executed upon the start of QEMU:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 echo &amp;quot;Executing /etc/qemu-ifup&amp;quot;&lt;br /&gt;
 echo &amp;quot;Bringing up $1 for bridged mode...&amp;quot;&lt;br /&gt;
 sudo /sbin/ifconfig $1 0.0.0.0 promisc up&lt;br /&gt;
 echo &amp;quot;Adding $1 to br0...&amp;quot;&lt;br /&gt;
 sudo /usr/sbin/brctl addif br0 $1&lt;br /&gt;
 sleep 2&lt;br /&gt;
&lt;br /&gt;
* Now you can append the following options to the qemu command line:&lt;br /&gt;
 -net nic,vlan=0,macaddr=00:16:3e:00:00:01 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup&lt;br /&gt;
You don't need to give a MAC address if you are emulating only one machine, as QEMU will use a default one. However if you have more than one emulated machine (don't forget QEMU can also emulate other architectures than ARM), you will have to specify a unique MAC address for each machine.&lt;br /&gt;
&lt;br /&gt;
* Once booted, on your guest you can configure the network simply as follows:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # udhcpc -i eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Get/generate simulation images (Linux &amp;amp; rootfs)==&lt;br /&gt;
* As QEMU doesn't support (yet) the APF, we will use the Versatile PB emulated hardware. To get a compatible Linux kernel for this board do:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ cd your_armadeus_view/&lt;br /&gt;
 $ wget http://people.debian.org/~aurel32/arm-versatile/vmlinuz-2.6.26-2-versatile&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* get some useful environment variables:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 $ make shell_env&lt;br /&gt;
 $ source armadeus_env.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* in ''$ARMADEUS_ROOTFS_DIR/etc/inittab'', comment following line:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 ttySMX0::respawn:/sbin/getty -L ttySMX0 115200,57600,38400 vt100&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Re-generate your Armadeus 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;
* check the size of your rootfs image&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ ls -al $ARMADEUS_ROOTFS_TAR&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* generate a dummy image larger than your rootfs; here 60 MBytes for a 45 MBytes tared rootfs:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ dd if=/dev/zero of=armadeus-qemu.img bs=1MB count=60&lt;br /&gt;
$ sudo mke2fs -F -m 0 -b 1024 armadeus-qemu.img&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* mount it and copy it your rootfs:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ mkdir qemu_mnt&lt;br /&gt;
$ sudo mount -t ext2 -o loop armadeus-qemu.img qemu_mnt/&lt;br /&gt;
$ sudo tar xf $ARMADEUS_ROOTFS_TAR -C qemu_mnt/&lt;br /&gt;
$ sudo umount qemu_mnt/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* now you have all you need to launch Qemu&lt;br /&gt;
&lt;br /&gt;
==Launch it==&lt;br /&gt;
* Example with 64 MBytes of RAM:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
$ qemu-system-arm -M versatilepb -kernel ./vmlinuz-2.6.26-2-versatile -hda armadeus-qemu.img -m 64 \&lt;br /&gt;
                                -append &amp;quot;root=/dev/sda mem=64M ro&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Image:qemu_apf_ramdisk.png]]&lt;br /&gt;
&lt;br /&gt;
* When system has booted, if you are French, load a usable keymap:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # loadkmap &amp;lt; /etc/i18n/fr.kmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
    =&amp;gt;    loqdk,qp &amp;lt; !etc!i&amp;amp;_n!fr:k,qp    on your PC keyboard&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://fabrice.bellard.free.fr/qemu/ QEMU WebPage]&lt;br /&gt;
* [http://www.aurel32.net/info/debian_arm_qemu.php Debian on an emulated ARM machine tutorial by Aurel32] + [http://qemu-forum.ipi.fi/viewtopic.php?t=3919 comments about it]&lt;br /&gt;
* [http://909ers.apl.washington.edu/~dushaw/ARM/ Debian ARM Linux on Qemu]&lt;br /&gt;
* http://www.gnome.org/~markmc/qemu-networking.html&lt;br /&gt;
* [http://compsoc.dur.ac.uk/~djw/qemu.html QEMU - Debian - Linux - TUN/TAP - network bridge]&lt;br /&gt;
* [http://gumstix.net/wiki/index.php?title=Running_qemu Gumstix's way of using QEmu]&lt;br /&gt;
* [http://gumstix.net/wiki/index.php?title=Making_qemu_images Gumstix's way of generating QEmu's images]&lt;br /&gt;
* [https://wiki.ubuntu.com/ARM/RootfsFromScratch Generating Ubuntu for ARM with QEMU]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation]]&lt;/div&gt;</summary>
		<author><name>PaoloB</name></author>	</entry>

	<entry>
		<id>http://armadeus.org/wiki/index.php?title=QEMU&amp;diff=6577</id>
		<title>QEMU</title>
		<link rel="alternate" type="text/html" href="http://armadeus.org/wiki/index.php?title=QEMU&amp;diff=6577"/>
				<updated>2009-05-29T10:06:01Z</updated>
		
		<summary type="html">&lt;p&gt;PaoloB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==UNDER CONSTRUCTION==&lt;br /&gt;
[[Image:Construction.png]]&lt;br /&gt;
&lt;br /&gt;
Well, you don't have enough money to buy an Armadeus board and just want to be part of the &amp;quot;Software&amp;quot; side of the project ? Then QEMU can be a good choice for you !! &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Just be aware that currently Armadeus hardware is not emulated under QEMU, we are just using an other board hard and linux kernel to launch our Rootfs an test our software which is not custom hardware related (ie User interface, Network, etc...)'''&lt;br /&gt;
&lt;br /&gt;
In order to build a hardware matching machine under Qemu for Armadeus boards, follow this link and add devices you are intrested to see emulated in Qemu: &lt;br /&gt;
[[QemuMachineDevelopment | Qemu machine development]]&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
* on Debian, *Ubuntu just do a:&lt;br /&gt;
 [armadeus]$ sudo apt-get install qemu bridge-utils ?vde?&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
QEMU has several ways of emulating the network:&lt;br /&gt;
* user mode (by default): you can access Internet from your emulated target or an internal Samba/TFTP server but your are not directly accessible&lt;br /&gt;
* bridge mode: you can communicate directly with the Host&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Note|For a first try you can skip following part.}}&lt;br /&gt;
As we want to mimic the devt environment with a real target (that has its own IP adress and is eccesible from the host) we will use &amp;quot;bridged mode&amp;quot;.&lt;br /&gt;
This mode require some configuration on your Host:&lt;br /&gt;
* Install ''bridge_utils'' package&lt;br /&gt;
* Activate IPv4 forwarding, for example on Ubuntu, uncomment the following line in ''/etc/sysctl.conf'':&lt;br /&gt;
&amp;lt;pre class=host&amp;gt;&lt;br /&gt;
 $ sudo vim /etc/sysctl.conf&lt;br /&gt;
 &lt;br /&gt;
   # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
   #net/ipv4/ip_forward=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* In ''/etc/network/interface'' comment the line referring to your current Ethernet card and replace them with:&lt;br /&gt;
&lt;br /&gt;
 auto br0&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
  bridge_ports eth0&lt;br /&gt;
  bridge_fd 9&lt;br /&gt;
  bridge_hello 2&lt;br /&gt;
  bridge_maxage 12&lt;br /&gt;
  bridge_stp off &lt;br /&gt;
 &lt;br /&gt;
 #auto eth0&lt;br /&gt;
 #iface eth0 inet dhcp&lt;br /&gt;
{{Note|If you are using a modern linux distribution like Ubuntu, also be sure NetworkManager is disabled/not configured. Otherwise conflict occur and network does not work at all.}}&lt;br /&gt;
&lt;br /&gt;
* Create a script ''/etc/qemu-ifup'' that will be executed upon the start of QEMU:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 echo &amp;quot;Executing /etc/qemu-ifup&amp;quot;&lt;br /&gt;
 echo &amp;quot;Bringing up $1 for bridged mode...&amp;quot;&lt;br /&gt;
 sudo /sbin/ifconfig $1 0.0.0.0 promisc up&lt;br /&gt;
 echo &amp;quot;Adding $1 to br0...&amp;quot;&lt;br /&gt;
 sudo /usr/sbin/brctl addif br0 $1&lt;br /&gt;
 sleep 2&lt;br /&gt;
&lt;br /&gt;
* Now you can append the following options to the qemu command line:&lt;br /&gt;
 -net nic,vlan=0,macaddr=00:16:3e:00:00:01 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup&lt;br /&gt;
You don't need to give a MAC address if you are emulating only one machine, as QEMU will use a default one. However if you have more than one emulated machine (don't forget QEMU can also emulate other architectures than ARM), you will have to specify a unique MAC address for each machine.&lt;br /&gt;
&lt;br /&gt;
* Once booted, on your guest you can configure the network simply as follows:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # udhcpc -i eth0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Get/generate simulation images==&lt;br /&gt;
* In our tests we used the QEMU Versatile PB emulated hardware. To get a compatible Linux kernel for this board then:&lt;br /&gt;
 [armadeus]$ wget http://people.debian.org/~aurel32/arm-versatile/vmlinuz-2.6.18-6-versatile&lt;br /&gt;
* in ''buildroot/project_build_armv4t/apf9328/root/etc/inittab'', comment following line:&lt;br /&gt;
 ttySMX0::respawn:/sbin/getty -L ttySMX0 115200,57600,38400 vt100&lt;br /&gt;
* Generate your Armadeus Rootfs as an EXT2 image:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
 Target filesystem options  ---&amp;gt; &lt;br /&gt;
     [*] ext2 root filesystem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* be sure that your rootfs image is less than 16Mbytes (Ramdisk limit)&lt;br /&gt;
* and zip it (we will use it as Ramdisk first):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ gzip -9 buildroot/binaries/apf9328/apf9328-rootfs.arm.ext2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a fake QEMU Hard disk image&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ qemu-img create -f qcow rootfs.arm_nofpu2.img 20M&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Launch it==&lt;br /&gt;
* At first boot, you have to launch the system as a Ramdisk:&lt;br /&gt;
 [armadeus]$ qemu-system-arm -m 32 -M versatilepb -kernel vmlinuz-2.6.18-6-versatile \&lt;br /&gt;
     -initrd apf9328-rootfs.arm.ext2.gz -append &amp;quot;root=/dev/ram&amp;quot; -hda ./apf9328-rootfs.arm_nofpu2.img&lt;br /&gt;
&lt;br /&gt;
[[Image:qemu_apf_ramdisk.png]]&lt;br /&gt;
&lt;br /&gt;
* When system has booted, we will create the &amp;quot;hard disk&amp;quot; image. But first, if you are French, do:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # loadkmap &amp;lt; /etc/i18n/fr.kmap&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* then:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mkdir /tmp/dev&lt;br /&gt;
 # mknod /tmp/dev/sda b 8 0&lt;br /&gt;
 # mknod /tmp/dev/sda1 b 8 1&lt;br /&gt;
 # fdisk /tmp/dev/sda&lt;br /&gt;
   n p 1 &amp;lt;enter&amp;gt; &amp;lt;enter&amp;gt; w&lt;br /&gt;
 # mkfs.ext2 /tmp/dev/sda1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Now we can mount our brand new file system:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # mkdir /mnt/root&lt;br /&gt;
 # mount /tmp/dev/sda1 /mnt/root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{{Note|Following steps need you already configured [[Communicate | tftp]] on your host and networking up and running}}&lt;br /&gt;
&lt;br /&gt;
* And now we can populate it:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;apf&amp;quot;&amp;gt;&lt;br /&gt;
 # cd /mnt/root&lt;br /&gt;
 # tftp -g -r apf27-rootfs.arm.tar -l rootfs.arm.tar [HOST IP]&lt;br /&gt;
 # tar -xvf rootfs.arm.tar&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* Finally halt the emulated system and, next boot, we can omit the initrd image:&lt;br /&gt;
 [armadeus]$ qemu-system-arm -m 32 -M versatilepb -kernel vmlinuz-2.6.18-6-versatile \&lt;br /&gt;
     -append &amp;quot;root=/dev/sda1&amp;quot; -hda ./apf9328-rootfs.arm_nofpu2.img&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://fabrice.bellard.free.fr/qemu/ QEMU WebPage]&lt;br /&gt;
* [http://www.aurel32.net/info/debian_arm_qemu.php Debian on an emulated ARM machine tutorial by Aurel32] + [http://qemu-forum.ipi.fi/viewtopic.php?t=3919 comments about it]&lt;br /&gt;
* [http://909ers.apl.washington.edu/~dushaw/ARM/ Debian ARM Linux on Qemu]&lt;br /&gt;
* http://www.gnome.org/~markmc/qemu-networking.html&lt;br /&gt;
* [http://compsoc.dur.ac.uk/~djw/qemu.html QEMU - Debian - Linux - TUN/TAP - network bridge]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation]]&lt;/div&gt;</summary>
		<author><name>PaoloB</name></author>	</entry>

	<entry>
		<id>http://armadeus.org/wiki/index.php?title=Eclipse&amp;diff=6576</id>
		<title>Eclipse</title>
		<link rel="alternate" type="text/html" href="http://armadeus.org/wiki/index.php?title=Eclipse&amp;diff=6576"/>
				<updated>2009-05-29T08:55:45Z</updated>
		
		<summary type="html">&lt;p&gt;PaoloB: /* Eclipse starting and configuration for the target */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;How-To install Eclipse IDE and GDB debugger&lt;br /&gt;
&lt;br /&gt;
==Forewords==&lt;br /&gt;
Eclipse IDE has been choosen as standard IDE for the Armadeus software development process.&amp;lt;br&amp;gt; &lt;br /&gt;
Specific pluggins will be added to ease writing kernel drivers and user applications. &amp;lt;br&amp;gt; &lt;br /&gt;
Despite one or two drawbacks (Java slowliness and memory usage for example), Eclipse provides several advantages like the support of different languages, the good integration of GDB ...&lt;br /&gt;
&lt;br /&gt;
==Eclipse installation==&lt;br /&gt;
* Go to the [http://www.eclipse.org/downloads/ Eclipse download page] and select '''Eclipse IDE for C/C++ Developers''' (Linux version)&lt;br /&gt;
* Install Eclipse to your Home directory:&lt;br /&gt;
 $ cd $HOME&lt;br /&gt;
Assuming that the downloaded package is located on your desktop:&lt;br /&gt;
 $ tar -xvzf Desktop/eclipse-cpp-europa-winter-linux-gtk.tar.gz&lt;br /&gt;
&lt;br /&gt;
==Eclipse starting and configuration for the target==&lt;br /&gt;
 $ eclipse/eclipse &amp;amp;&lt;br /&gt;
&lt;br /&gt;
1. Select your workspace (where your projects will be saved) &amp;lt;br&amp;gt;&lt;br /&gt;
2. Go to the workbench by clicking on &amp;quot;Workbench&amp;quot; &amp;lt;br&amp;gt;&lt;br /&gt;
3. Create a new C Project with the name &amp;quot;helloworld&amp;quot; -&amp;gt;File -&amp;gt;New -&amp;gt; C project &amp;lt;br&amp;gt;&lt;br /&gt;
4. Enter the project name here &amp;quot;helloworld&amp;quot; and click '''finish''' &amp;lt;br&amp;gt;&lt;br /&gt;
5. Now the ARM compiler has to be choosen to build the code for the target. Right click on the project &amp;quot;helloworld&amp;quot; in the project explorer and select '''properties''' &amp;lt;br&amp;gt;&lt;br /&gt;
6. In the '''C/C++ Build''' entry, select '''Settings''' then '''GCC C Compiler''' then insert the path of the ARM compiler in the field '''Command'''; for example:&lt;br /&gt;
 /home/nicolas/armadeus/buildroot/build_armv4t/staging_dir/usr/bin/arm-linux-gcc &lt;br /&gt;
7. GCC options can be modified in the '''All options''' field  &amp;lt;br&amp;gt;&lt;br /&gt;
8. Now the ARM linker has to be chosen as well. '''GCC C Linker''' then insert the path of the ARM linker in the field '''Command'''; for example:&lt;br /&gt;
 /home/nicolas/armadeus/buildroot/build_armv4t/staging_dir/usr/bin/arm-linux-gcc&lt;br /&gt;
9. And finally the ARM assembler. '''GCC Assembler''' then insert the path of the ARM assembler in the field '''Command'''; for example:&lt;br /&gt;
 /home/nicolas/armadeus/buildroot/build_armv4t/staging_dir/usr/bin/arm-linux-as&lt;br /&gt;
10. The path for the include files has to be specified as well. Eclipse has, by default, the include path of the host. In the '''C/C++ General''', select '''Paths and Symbols''' then '''GNU C''' in languages and add (for example):&lt;br /&gt;
 /home/nicolas/armadeus/buildroot/toolchain_build_armv4t/uClibc-0.9.29/include&lt;br /&gt;
This will add the standard include files for the small helloworld example below. Depending on the application additional paths can be specified.&lt;br /&gt;
&lt;br /&gt;
==helloworld build==&lt;br /&gt;
Once the project is correctly configured, we will add a new C File to it.&lt;br /&gt;
# Add a source file to the project by right clicking on the &amp;quot;helloworld&amp;quot; project and selecting New -&amp;gt; Source File&lt;br /&gt;
# Enter the name '''main.c''' and click '''finish'''&lt;br /&gt;
# Write the code. See the [[HelloWorld | hello world example page]]&lt;br /&gt;
# Then build it by selecting &amp;quot;helloworld&amp;quot; in the Project Explorer and then Project-&amp;gt; Build Project&lt;br /&gt;
# Take a look at the '''problems''' tab on the bottom of the Eclipse window to verify that the build was successfully done.&lt;br /&gt;
&lt;br /&gt;
==Debug helloworld on the target==&lt;br /&gt;
Once the project has successfully compiled and linked:&lt;br /&gt;
# In the Eclipse IDE, right click on &amp;quot;helloworld&amp;quot; in the Project Navigator, then Debug As -&amp;gt; Open Debug Dialog&lt;br /&gt;
# Select '''C/C++ Local Application''' and create a '''new launch configuration''' (first icon in the top menu)&lt;br /&gt;
# This new configuration will be automatically named &amp;quot;helloworld Debug&amp;quot;. Select the '''Debugger''' tab&lt;br /&gt;
# Select '''gdbserver Debugger''' in the &amp;quot;debugger&amp;quot; drop down list&lt;br /&gt;
# Now indicates where GDB is located (debugger option and GDB Debugger input); for example: &amp;lt;pre&amp;gt;/home/nicolas/armadeus/buildroot/build_armv4t/staging_dir/bin/arm-linux-gdb&amp;lt;/pre&amp;gt;&lt;br /&gt;
# Once done, the link between the GDB server (on the target) and the GDB client (on the host) has to be configured. In &amp;quot;Debugger Options&amp;quot;, select the &amp;quot;Connection&amp;quot; tab then &amp;quot;TCP&amp;quot; for the type if you want to use the ethernet link&lt;br /&gt;
# Indicates the target IP address for the gdb host server and then the port number: here 2345&amp;lt;br&amp;gt;&lt;br /&gt;
# Close and save the Debug configuration&lt;br /&gt;
# Transfer the &amp;quot;helloworld binary&amp;quot; on the target by means of TFTP, SCP or whatever you want ( ''tftp -g -r [PATH]/helloworld HOST_IP_ADDRESS'' )&lt;br /&gt;
# On your APF, start the program with GDB: &amp;lt;pre&amp;gt;# gdbserver  HOST_IP_ADDRESS:2345 helloworld &amp;lt;/pre&amp;gt;&lt;br /&gt;
# GDB will launch your program and starts listen on port 2345 for a GDB client.&lt;br /&gt;
# in Eclipse start the debug session Run-&amp;gt; Debug&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [[GDB | GDB/GDBserver command line usage]]&lt;br /&gt;
* [[HelloWorld | &amp;quot;Manual&amp;quot; compilation of a C program]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Toolchain]]&lt;/div&gt;</summary>
		<author><name>PaoloB</name></author>	</entry>

	<entry>
		<id>http://armadeus.org/wiki/index.php?title=QEMU&amp;diff=6575</id>
		<title>QEMU</title>
		<link rel="alternate" type="text/html" href="http://armadeus.org/wiki/index.php?title=QEMU&amp;diff=6575"/>
				<updated>2009-05-29T08:36:53Z</updated>
		
		<summary type="html">&lt;p&gt;PaoloB: Added some configuration tips in networking section and added instructions to populate the hd image&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==UNDER CONSTRUCTION==&lt;br /&gt;
[[Image:Construction.png]]&lt;br /&gt;
&lt;br /&gt;
Well, you don't have enough money to buy an Armadeus board and just want to be part of the &amp;quot;Software&amp;quot; side of the project ? Then QEMU can be a good choice for you !! &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Just be aware that currently Armadeus hardware is not emulated under QEMU, we are just using an other board hard and linux kernel to launch our Rootfs an test our software which is not custom hardware related (ie User interface, Network, etc...)'''&lt;br /&gt;
&lt;br /&gt;
In order to build a hardware matching machine under Qemu for Armadeus boards, follow this link and add devices you are intrested to see emulated in Qemu: &lt;br /&gt;
[[QemuMachineDevelopment | Qemu machine development]]&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
* on Debian, *Ubuntu just do a:&lt;br /&gt;
 [armadeus]$ sudo apt-get install qemu bridge-utils ?vde?&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
QEMU has several ways of emulating the network:&lt;br /&gt;
* user mode (by default): you can access Internet from your emulated target or an internal Samba/TFTP server but your are not directly accessible&lt;br /&gt;
* bridge mode: you can communicate directly with the Host&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Note|For a first try you can skip following part.}}&lt;br /&gt;
As we want to mimic the devt environment with a real target (that has its own IP adress and is eccesible from the host) we will use &amp;quot;bridged mode&amp;quot;.&lt;br /&gt;
This mode require some configuration on your Host:&lt;br /&gt;
* Install ''bridge_utils'' package&lt;br /&gt;
* Activate IPv4 forwarding, for example on Ubuntu, uncomment the following line in ''/etc/sysctl.conf'':&lt;br /&gt;
&amp;lt;pre class=host&amp;gt;&lt;br /&gt;
 $ sudo vim /etc/sysctl.conf&lt;br /&gt;
 &lt;br /&gt;
   # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
   #net/ipv4/ip_forward=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* In ''/etc/network/interface'' comment the line referring to your current Ethernet card and replace them with:&lt;br /&gt;
&lt;br /&gt;
 auto br0&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
  bridge_ports eth0&lt;br /&gt;
  bridge_fd 9&lt;br /&gt;
  bridge_hello 2&lt;br /&gt;
  bridge_maxage 12&lt;br /&gt;
  bridge_stp off &lt;br /&gt;
 &lt;br /&gt;
 #auto eth0&lt;br /&gt;
 #iface eth0 inet dhcp&lt;br /&gt;
{{Note|If you are using a modern linux distribution like Ubuntu, also be sure NetworkManager is disabled/not configured. Otherwise conflict occur and network does not work at all.}}&lt;br /&gt;
&lt;br /&gt;
* Create a script ''/etc/qemu-ifup'' that will be executed upon the start of QEMU:&lt;br /&gt;
 #!/bin/sh&lt;br /&gt;
 echo &amp;quot;Executing /etc/qemu-ifup&amp;quot;&lt;br /&gt;
 echo &amp;quot;Bringing up $1 for bridged mode...&amp;quot;&lt;br /&gt;
 sudo /sbin/ifconfig $1 0.0.0.0 promisc up&lt;br /&gt;
 echo &amp;quot;Adding $1 to br0...&amp;quot;&lt;br /&gt;
 sudo /usr/sbin/brctl addif br0 $1&lt;br /&gt;
 sleep 2&lt;br /&gt;
&lt;br /&gt;
* Now you can append the following options to the qemu command line:&lt;br /&gt;
 -net nic,vlan=0,macaddr=00:16:3e:00:00:01 -net tap,vlan=0,ifname=tap0,script=/etc/qemu-ifup&lt;br /&gt;
You don't need to give a MAC address if you are emulating only one machine, as QEMU will use a default one. However if you have more than one emulated machine (don't forget QEMU can also emulate other architectures than ARM), you will have to specify a unique MAC address for each machine.&lt;br /&gt;
&lt;br /&gt;
* Once booted, on your guest you can configure the network simply as follows:&lt;br /&gt;
 # udhcpc -i eth0&lt;br /&gt;
&lt;br /&gt;
==Get/generate simulation images==&lt;br /&gt;
* In our tests we used the QEMU Versatile PB emulated hardware. To get a compatible Linux kernel for this board then:&lt;br /&gt;
 [armadeus]$ wget http://people.debian.org/~aurel32/arm-versatile/vmlinuz-2.6.18-6-versatile&lt;br /&gt;
* in ''buildroot/project_build_armv4t/apf9328/root/etc/inittab'', comment following line:&lt;br /&gt;
 ttySMX0::respawn:/sbin/getty -L ttySMX0 115200,57600,38400 vt100&lt;br /&gt;
* Generate your Armadeus Rootfs as an EXT2 image:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
 Target filesystem options  ---&amp;gt; &lt;br /&gt;
     [*] ext2 root filesystem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* be sure that your rootfs image is less than 16Mbytes (Ramdisk limit)&lt;br /&gt;
* and zip it (we will use it as Ramdisk first):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ gzip -9 buildroot/binaries/apf9328/apf9328-rootfs.arm.ext2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a fake QEMU Hard disk image&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ qemu-img create -f qcow rootfs.arm_nofpu2.img 20M&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Launch it==&lt;br /&gt;
* At first boot, you have to launch the system as a Ramdisk:&lt;br /&gt;
 [armadeus]$ qemu-system-arm -m 32 -M versatilepb -kernel vmlinuz-2.6.18-6-versatile \&lt;br /&gt;
     -initrd apf9328-rootfs.arm.ext2.gz -append &amp;quot;root=/dev/ram&amp;quot; -hda ./apf9328-rootfs.arm_nofpu2.img&lt;br /&gt;
&lt;br /&gt;
[[Image:qemu_apf_ramdisk.png]]&lt;br /&gt;
&lt;br /&gt;
* When system has booted, we will create the &amp;quot;hard disk&amp;quot; image. But first, if you are French, do:&lt;br /&gt;
 # loadkmap &amp;lt; /etc/i18n/fr.kmap&lt;br /&gt;
* then:&lt;br /&gt;
 # mkdir /tmp/dev&lt;br /&gt;
 # mknod /tmp/dev/sda b 8 0&lt;br /&gt;
 # mknod /tmp/dev/sda1 b 8 1&lt;br /&gt;
 # fdisk /tmp/dev/sda&lt;br /&gt;
   n p 1 &amp;lt;enter&amp;gt; &amp;lt;enter&amp;gt; w&lt;br /&gt;
 # mkfs.ext2 /tmp/dev/sda1&lt;br /&gt;
* Now we can mount our brand new file system:&lt;br /&gt;
 # mkdir /mnt/root&lt;br /&gt;
 # mount /tmp/dev/sda1 /mnt/root&lt;br /&gt;
&lt;br /&gt;
{{Note|Following steps need you already configured [[Communicate | tftp]] on your host and networking up and running}}&lt;br /&gt;
&lt;br /&gt;
* And now we can populate it:&lt;br /&gt;
 # cd /mnt/root&lt;br /&gt;
 # tftp -g -r apf27-rootfs.arm.tar -l rootfs.arm.tar [HOST IP]&lt;br /&gt;
 # tar -xvf rootfs.arm.tar&lt;br /&gt;
&lt;br /&gt;
* Finally halt the emulated system and, next boot, we can omit the initrd image:&lt;br /&gt;
 [armadeus]$ qemu-system-arm -m 32 -M versatilepb -kernel vmlinuz-2.6.18-6-versatile \&lt;br /&gt;
     -append &amp;quot;root=/dev/sda1&amp;quot; -hda ./apf9328-rootfs.arm_nofpu2.img&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://fabrice.bellard.free.fr/qemu/ QEMU WebPage]&lt;br /&gt;
* [http://www.aurel32.net/info/debian_arm_qemu.php Debian on an emulated ARM machine tutorial by Aurel32] + [http://qemu-forum.ipi.fi/viewtopic.php?t=3919 comments about it]&lt;br /&gt;
* [http://909ers.apl.washington.edu/~dushaw/ARM/ Debian ARM Linux on Qemu]&lt;br /&gt;
* http://www.gnome.org/~markmc/qemu-networking.html&lt;br /&gt;
* [http://compsoc.dur.ac.uk/~djw/qemu.html QEMU - Debian - Linux - TUN/TAP - network bridge]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation]]&lt;/div&gt;</summary>
		<author><name>PaoloB</name></author>	</entry>

	<entry>
		<id>http://armadeus.org/wiki/index.php?title=QEMU&amp;diff=6573</id>
		<title>QEMU</title>
		<link rel="alternate" type="text/html" href="http://armadeus.org/wiki/index.php?title=QEMU&amp;diff=6573"/>
				<updated>2009-05-28T15:16:26Z</updated>
		
		<summary type="html">&lt;p&gt;PaoloB: /* Configuration */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==UNDER CONSTRUCTION==&lt;br /&gt;
[[Image:Construction.png]]&lt;br /&gt;
&lt;br /&gt;
Well, you don't have enough money to buy an Armadeus board and just want to be part of the &amp;quot;Software&amp;quot; side of the project ? Then QEMU can be a good choice for you !! &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Just be aware that currently Armadeus hardware is not emulated under QEMU, we are just using an other board hard and linux kernel to launch our Rootfs an test our software which is not custom hardware related (ie User interface, Network, etc...)'''&lt;br /&gt;
&lt;br /&gt;
In order to build a hardware matching machine under Qemu for Armadeus boards, follow this link and add devices you are intrested to see emulated in Qemu: &lt;br /&gt;
[[QemuMachineDevelopment | Qemu machine development]]&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
* on Debian, *Ubuntu just do a:&lt;br /&gt;
 [armadeus]$ sudo apt-get install qemu bridge-utils ?vde?&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
QEMU has several ways of emulating the network:&lt;br /&gt;
* user mode (by default): you can access Internet from your emulated target or an internal Samba/TFTP server but your are not directly accessible&lt;br /&gt;
* bridge mode: you can communicate directly with the Host&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Note|For a first try you can skip following part.}}&lt;br /&gt;
As we want to mimic the devt environment with a real target (that has its own IP adress and is eccesible from the host) we will use &amp;quot;bridged mode&amp;quot;.&lt;br /&gt;
This mode require some configuration on your Host:&lt;br /&gt;
* Activate IPv4 forwarding, for example on Ubuntu, uncomment the following line in ''/etc/sysctl.conf'':&lt;br /&gt;
&amp;lt;pre class=host&amp;gt;&lt;br /&gt;
 $ sudo vim /etc/sysctl.conf&lt;br /&gt;
 &lt;br /&gt;
   # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
   #net/ipv4/ip_forward=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* In ''/etc/network/interface'' comment the line referring to your current Ethernet card and replace them with:&lt;br /&gt;
&lt;br /&gt;
 auto br0&lt;br /&gt;
 iface br0 inet dhcp&lt;br /&gt;
  bridge_ports eth0&lt;br /&gt;
  bridge_fd 9&lt;br /&gt;
  bridge_hello 2&lt;br /&gt;
  bridge_maxage 12&lt;br /&gt;
  bridge_stp off &lt;br /&gt;
 &lt;br /&gt;
 #auto eth0&lt;br /&gt;
 #iface eth0 inet dhcp&lt;br /&gt;
* If you are using a modern linux distribution like Ubuntu, also be sure NetworkManager is disabled/not configured anyway. Otherwise conflict occur and network does not work at all.&lt;br /&gt;
&lt;br /&gt;
==Get/generate simulation images==&lt;br /&gt;
* In our tests we used the QEMU Versatile PB emulated hardware. To get a compatible Linux kernel for this board then:&lt;br /&gt;
 [armadeus]$ wget http://people.debian.org/~aurel32/arm-versatile/vmlinuz-2.6.18-6-versatile&lt;br /&gt;
* in ''buildroot/project_build_armv4t/apf9328/root/etc/inittab'', comment following line:&lt;br /&gt;
 ttySMX0::respawn:/sbin/getty -L ttySMX0 115200,57600,38400 vt100&lt;br /&gt;
* Generate your Armadeus Rootfs as an EXT2 image:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
 Target filesystem options  ---&amp;gt; &lt;br /&gt;
     [*] ext2 root filesystem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* be sure that your rootfs image is less than 16Mbytes (Ramdisk limit)&lt;br /&gt;
* and zip it (we will use it as Ramdisk first):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ gzip -9 buildroot/binaries/apf9328/apf9328-rootfs.arm.ext2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a fake QEMU Hard disk image&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ qemu-img create -f qcow rootfs.arm_nofpu2.img 20M&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Launch it==&lt;br /&gt;
* At first boot, you have to launch the system as a Ramdisk:&lt;br /&gt;
 [armadeus]$ qemu-system-arm -m 32 -M versatilepb -kernel vmlinuz-2.6.18-6-versatile \&lt;br /&gt;
     -initrd apf9328-rootfs.arm.ext2.gz -append &amp;quot;root=/dev/ram&amp;quot; -hda ./apf9328-rootfs.arm_nofpu2.img&lt;br /&gt;
&lt;br /&gt;
[[Image:qemu_apf_ramdisk.png]]&lt;br /&gt;
&lt;br /&gt;
* When system has booted, we will create the &amp;quot;hard disk&amp;quot; image. But first, if you are French, do:&lt;br /&gt;
 # loadkmap &amp;lt; /etc/i18n/fr.kmap&lt;br /&gt;
* then:&lt;br /&gt;
 # mkdir /tmp/dev&lt;br /&gt;
 # mknod /tmp/dev/sda b 8 0&lt;br /&gt;
 # mknod /tmp/dev/sda1 b 8 1&lt;br /&gt;
 # fdisk /tmp/dev/sda&lt;br /&gt;
   n p 1 &amp;lt;enter&amp;gt; &amp;lt;enter&amp;gt; w&lt;br /&gt;
 # mkfs.ext2 /tmp/dev/sda1&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://fabrice.bellard.free.fr/qemu/ QEMU WebPage]&lt;br /&gt;
* [http://www.aurel32.net/info/debian_arm_qemu.php Debian on an emulated ARM machine tutorial by Aurel32] + [http://qemu-forum.ipi.fi/viewtopic.php?t=3919 comments about it]&lt;br /&gt;
* [http://909ers.apl.washington.edu/~dushaw/ARM/ Debian ARM Linux on Qemu]&lt;br /&gt;
* http://www.gnome.org/~markmc/qemu-networking.html&lt;br /&gt;
* http://compsoc.dur.ac.uk/~djw/qemu.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation]]&lt;/div&gt;</summary>
		<author><name>PaoloB</name></author>	</entry>

	<entry>
		<id>http://armadeus.org/wiki/index.php?title=QEMU&amp;diff=6569</id>
		<title>QEMU</title>
		<link rel="alternate" type="text/html" href="http://armadeus.org/wiki/index.php?title=QEMU&amp;diff=6569"/>
				<updated>2009-05-27T13:29:18Z</updated>
		
		<summary type="html">&lt;p&gt;PaoloB: /* Launch it */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==UNDER CONSTRUCTION==&lt;br /&gt;
[[Image:Construction.png]]&lt;br /&gt;
&lt;br /&gt;
Well, you don't have enough money to buy an Armadeus board and just want to be part of the &amp;quot;Software&amp;quot; side of the project ? Then QEMU can be a good choice for you !! &amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
'''Just be aware that currently Armadeus hardware is not emulated under QEMU, we are just using an other board hard and linux kernel to launch our Rootfs an test our software which is not custom hardware related (ie User interface, Network, etc...)'''&lt;br /&gt;
&lt;br /&gt;
In order to build a hardware matching machine under Qemu for Armadeus boards, follow this link and add devices you are intrested to see emulated in Qemu: &lt;br /&gt;
[[QemuMachineDevelopment | Qemu machine development]]&lt;br /&gt;
&lt;br /&gt;
==Installation==&lt;br /&gt;
* on Debian, *Ubuntu just do a:&lt;br /&gt;
 [armadeus]$ sudo apt-get install qemu bridge-utils ?vde?&lt;br /&gt;
&lt;br /&gt;
==Configuration==&lt;br /&gt;
&lt;br /&gt;
QEMU has several ways of emulating the network:&lt;br /&gt;
* user mode (by default): you can access Internet from your emulated target or an internal Samba/TFTP server but your are not directly accessible&lt;br /&gt;
* bridge mode: you can communicate directly with the Host&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
{{Note|For a first try you can skip following part.}}&lt;br /&gt;
As we want to mimic the devt environment with a real target (that has its own IP adress and is eccesible from the host) we will use &amp;quot;bridged mode&amp;quot;.&lt;br /&gt;
This mode require some configuration on your Host:&lt;br /&gt;
* Activate IPv4 forwarding, for example on Ubuntu, uncomment the following line in ''/etc/sysctl.conf'':&lt;br /&gt;
&amp;lt;pre class=host&amp;gt;&lt;br /&gt;
 $ sudo vim /etc/sysctl.conf&lt;br /&gt;
 &lt;br /&gt;
   # Uncomment the next line to enable packet forwarding for IPv4&lt;br /&gt;
   #net/ipv4/ip_forward=1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* In ''/etc/network/interface'' comment the line referring to your current Ethernet card and replace them with:&lt;br /&gt;
&lt;br /&gt;
 auto br0&lt;br /&gt;
 iface br0 inet static&lt;br /&gt;
  address 192.168.1.2 ??&lt;br /&gt;
  network 192.168.1.0 ??&lt;br /&gt;
  netmask 255.255.255.0 &lt;br /&gt;
  broadcast 192.168.1.255 ??&lt;br /&gt;
  gateway 192.168.1.1 ??&lt;br /&gt;
  bridge_ports eth0&lt;br /&gt;
  bridge_fd 9&lt;br /&gt;
  bridge_hello 2&lt;br /&gt;
  bridge_maxage 12&lt;br /&gt;
  bridge_stp off &lt;br /&gt;
 &lt;br /&gt;
 #auto eth0&lt;br /&gt;
 #iface eth0 inet dhcp&lt;br /&gt;
&lt;br /&gt;
==Get/generate simulation images==&lt;br /&gt;
* In our tests we used the QEMU Versatile PB emulated hardware. To get a compatible Linux kernel for this board then:&lt;br /&gt;
 [armadeus]$ wget http://people.debian.org/~aurel32/arm-versatile/vmlinuz-2.6.18-6-versatile&lt;br /&gt;
* in ''buildroot/project_build_armv4t/apf9328/root/etc/inittab'', comment following line:&lt;br /&gt;
 ttySMX0::respawn:/sbin/getty -L ttySMX0 115200,57600,38400 vt100&lt;br /&gt;
* Generate your Armadeus Rootfs as an EXT2 image:&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ make menuconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;config&amp;quot;&amp;gt;&lt;br /&gt;
 Target filesystem options  ---&amp;gt; &lt;br /&gt;
     [*] ext2 root filesystem&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ make&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* be sure that your rootfs image is less than 16Mbytes (Ramdisk limit)&lt;br /&gt;
* and zip it (we will use it as Ramdisk first):&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ gzip -9 buildroot/binaries/apf9328/apf9328-rootfs.arm.ext2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create a fake QEMU Hard disk image&lt;br /&gt;
&amp;lt;pre class=&amp;quot;host&amp;quot;&amp;gt;&lt;br /&gt;
 [armadeus]$ qemu-img create -f qcow rootfs.arm_nofpu2.img 20M&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Launch it==&lt;br /&gt;
* At first boot, you have to launch the system as a Ramdisk:&lt;br /&gt;
 [armadeus]$ qemu-system-arm -m 32 -M versatilepb -kernel vmlinuz-2.6.18-6-versatile \&lt;br /&gt;
     -initrd apf9328-rootfs.arm.ext2.gz -append &amp;quot;root=/dev/ram&amp;quot; -hda ./apf9328-rootfs.arm_nofpu2.img&lt;br /&gt;
&lt;br /&gt;
[[Image:qemu_apf_ramdisk.png]]&lt;br /&gt;
&lt;br /&gt;
* When system has booted, we will create the &amp;quot;hard disk&amp;quot; image. But first, if you are French, do:&lt;br /&gt;
 # loadkmap &amp;lt; /etc/i18n/fr.kmap&lt;br /&gt;
* then:&lt;br /&gt;
 # mkdir /tmp/dev&lt;br /&gt;
 # mknod /tmp/dev/sda b 8 0&lt;br /&gt;
 # mknod /tmp/dev/sda1 b 8 1&lt;br /&gt;
 # fdisk /tmp/dev/sda&lt;br /&gt;
   n p 1 &amp;lt;enter&amp;gt; &amp;lt;enter&amp;gt; w&lt;br /&gt;
 # mkfs.ext2 /tmp/dev/sda1&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [http://fabrice.bellard.free.fr/qemu/ QEMU WebPage]&lt;br /&gt;
* [http://www.aurel32.net/info/debian_arm_qemu.php Debian on an emulated ARM machine tutorial by Aurel32] + [http://qemu-forum.ipi.fi/viewtopic.php?t=3919 comments about it]&lt;br /&gt;
* [http://909ers.apl.washington.edu/~dushaw/ARM/ Debian ARM Linux on Qemu]&lt;br /&gt;
* http://www.gnome.org/~markmc/qemu-networking.html&lt;br /&gt;
* http://compsoc.dur.ac.uk/~djw/qemu.html&lt;br /&gt;
&lt;br /&gt;
[[Category:Emulation]]&lt;/div&gt;</summary>
		<author><name>PaoloB</name></author>	</entry>

	<entry>
		<id>http://armadeus.org/wiki/index.php?title=Members&amp;diff=6568</id>
		<title>Members</title>
		<link rel="alternate" type="text/html" href="http://armadeus.org/wiki/index.php?title=Members&amp;diff=6568"/>
				<updated>2009-05-27T13:27:26Z</updated>
		
		<summary type="html">&lt;p&gt;PaoloB: /* Google Map */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Google Map==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;googlemap lat=&amp;quot;47&amp;quot; lon=&amp;quot;6&amp;quot; width=640 height=480 zoom=4&amp;gt;&lt;br /&gt;
47.270377, 6.025314, [[User:JulienB]] Besancon&lt;br /&gt;
47.752598,7.301788, ARMadeus Systems&lt;br /&gt;
47.760791, 7.339897, [[User:Salocin68]] Mulhouse&lt;br /&gt;
47.734392,7.316975, [[User:FabienM]] Mulhouse&lt;br /&gt;
46.946161,7.517052, [[User:Jorasse]] Gümligen&lt;br /&gt;
47.681108, 7.390366, [[User:Carbure]] Helfranzkirch&lt;br /&gt;
47.436448, 8.429947, [[User:SonZerro]] Baden&lt;br /&gt;
44.653992, 6.176672, [[User:JulienN]] Chabottes&lt;br /&gt;
48.573342, 7.911476,  [[User:KroMignon]] Legelshurst&lt;br /&gt;
42.734405, 2.894211, ELIAUS Perpignan&lt;br /&gt;
47.653363, 6.862335, UTBM Belfort&lt;br /&gt;
45.689589, 5.026395, [[User:OlivierT]] St Bonnet de Mure&lt;br /&gt;
48.879619, 2.351074, Paris - 20 members&lt;br /&gt;
43.622159, 1.442642, Toulouse - 2 members&lt;br /&gt;
-21.115141, 55.536384, La Réunion - 1 member&lt;br /&gt;
14.551684, -60.912323, La Martinique - 1 member&lt;br /&gt;
48.682805, 2.169186, [[User:BrunoL]] Les Ulis&lt;br /&gt;
47.399744, 8.53775, Zurich - 1 member&lt;br /&gt;
46.810282, 7.151241, Fribourg&lt;br /&gt;
47.574904, 7.580566, Basel&lt;br /&gt;
&lt;br /&gt;
53.371859, -6.2677, Dublin - 1 member&lt;br /&gt;
50.637704, 5.608521, Liège - 1 member&lt;br /&gt;
50.67, 3.48, Velaines - 1 member&lt;br /&gt;
48.199964, 11.57959, Munich - 1 member&lt;br /&gt;
48.109588,-1.678752, Rennes - 1 member&lt;br /&gt;
47.750109,-3.366339, [[User:MatthieuT]] Lorient&lt;br /&gt;
48.70,2.03, [[User:JulienPeeters]] Chevreuse&lt;br /&gt;
45.190325, 5.700316, [[User:NicolasL]] Fontaine&lt;br /&gt;
49.279296, 2.472973 [[User:DavidC]] Nogent sur Oise&lt;br /&gt;
46.208644, 6.130027, [[User:EugeneR]] Genève&lt;br /&gt;
48.667158, 2.706585, [[User:BernardR]] Soignolles en Brie, France&lt;br /&gt;
45.188963, 5.709822, [[User:OlivierS]] Grenoble, France&lt;br /&gt;
47.214613,-0.737329, [[User:BrunoS]] Chemillé, France&lt;br /&gt;
47.225164,-1.556625, [[User:KevinP]] Nantes, France&lt;br /&gt;
43.609234, 1.442642, [[User:PierreBa]] Toulouse, France&lt;br /&gt;
41.668809,-0.87616, [[User:AntonioMB]] Zaragoza, España&lt;br /&gt;
49.200145, 0.407136, [[User:JeanFrancoisR]] - Asnières&lt;br /&gt;
48.109588,-1.678752, [[User:MichelTe]] - Rennes&lt;br /&gt;
49.163073, 2.550201, [[User:JulienBa]] - Pontarmé&lt;br /&gt;
43.488299, 5.494709, [[User:FrankA]] - Meyreuil&lt;br /&gt;
43.622159, 1.442642, [[User:PierreAlexandreS]] - Toulouse, France&lt;br /&gt;
51.46513, -0.9692, [[User:AlexG]] - Reading, UK&lt;br /&gt;
43.312439, 10.517693, [[User:PaoloB]] - Cecina, Italy&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/googlemap&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
===How to add your position===&lt;br /&gt;
* go to http://maps.google.com/&lt;br /&gt;
* type in the name of your town and launch &amp;quot;Search Google Maps&amp;quot;, for example:&lt;br /&gt;
[[Image:Google_maps_search.png]]&lt;br /&gt;
* right click on &amp;quot;Get URL of this page&amp;quot; and copy the URL&lt;br /&gt;
[[Image:Google_maps_url.png]]&lt;br /&gt;
* you should get something like that:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
http://maps.google.com/maps?f=q&amp;amp;hl=fr&amp;amp;geocode=&amp;amp;q=besan%C3%A7on&amp;amp;ie=UTF8&amp;amp;ll=47.257796,6.025314&amp;amp;spn=0.216236,0.601501&amp;amp;z=11&amp;amp;iwloc=addr&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* the data between ''&amp;amp;ll='' and ''&amp;amp;spn'' are the needed one (latitude/longitude)&lt;br /&gt;
* extract them and copy them in the &amp;quot;Edit&amp;quot; of this wiki page. Add it you wiki name and your town. For example:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;googlemap lat=&amp;quot;47&amp;quot; lon=&amp;quot;6&amp;quot; width=640 height=480 zoom=4&amp;gt;&lt;br /&gt;
...&lt;br /&gt;
Others coordinates&lt;br /&gt;
...&lt;br /&gt;
47.257796, 6.025314, [[User:YourID]] - Your Town&lt;br /&gt;
&amp;lt;/googlemap&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Association]]&lt;/div&gt;</summary>
		<author><name>PaoloB</name></author>	</entry>

	<entry>
		<id>http://armadeus.org/wiki/index.php?title=MemberList&amp;diff=6567</id>
		<title>MemberList</title>
		<link rel="alternate" type="text/html" href="http://armadeus.org/wiki/index.php?title=MemberList&amp;diff=6567"/>
				<updated>2009-05-27T13:21:45Z</updated>
		
		<summary type="html">&lt;p&gt;PaoloB: /* Here is the list of the (active) members and their skills */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Here is the list of the (active) members and their skills==&lt;br /&gt;
&lt;br /&gt;
This list is maintained by the users themself.&lt;br /&gt;
&lt;br /&gt;
*0: Novice&lt;br /&gt;
*1: Notions. At least one successfull experiment&lt;br /&gt;
*2: Confirmed&lt;br /&gt;
&amp;lt;br&amp;gt;&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;Signal connections&amp;quot;&lt;br /&gt;
|- style=&amp;quot;background:#efefef;&amp;quot;&lt;br /&gt;
! '''Name / IRC Nickname''' || '''Linux Apps'''|| '''Linux Drivers'''|| '''FPGA''' || '''Board Design''' || '''Projet/Domain'''&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:Salocin68|Nicolas Colombain / Salocin]] || 1 || 1 || 1 || 2 || domotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JulienB|Julien Boibessot / Artemys]] || 2 || 2 || 0 || 1 || multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JeanBaptisteM|Jean-Baptiste Mayer / JiBee]] || 2 || 1 || 1 || 1 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:NicolasA|Nicolas Aguirre]] || 2 || 0 || 1 || 1 || multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:BenoitC|Benoît Canet]] || 2 || 0 || 0 || 0 || multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:SonZerro|Sonzerro]] || 0 || 0 || 1 || 2 || domotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:HenriG|Henri Geist]] || 1 || 1 || 0 || 1 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:BorredonB|Bernard Borredon]] || 2 || 1 || 0 || 1 || domotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:ThomasB|Thomas Bores]] || 2 || 0 || 0 || 1 || Entertainment&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:FabriceM|Fabrice Mousset / KroMignon]] || 1 || 1 || 2 || 1 || Domotics &amp;amp; multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:AmineH|Amine EL HEDADI]] || 2 || 2 || 0 || 0 || domotics &amp;amp; robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PhilippeM|Philippe Monteil]] || 2 || 0 || 0 || 0 || multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:CedricZ|Cédric Zmyj]] || 0 || 0 || 0 || 0 || domotics &amp;amp; robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JeanMichelN|Jean Michel Naimo / jeanmi12 ]] || 2 || 1 || 1 || 1 || Domotics &amp;amp; entertainment&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:OlivierC|Olivier Coutanceau]] || 1 || 0 || 0 || 0 || multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:ArnaudC|Arnaud COFFINET]] || 0 || 0 || 1 || 2 || multimedia &amp;amp; domotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:SylvainP|Sylvain PARRINO]] || 2 || 1 || 0 || 0 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:AurelienH|Aurélien HIRON]] || 2 || 0 || 0 || 1 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:GuillaumeT|Guillaume TRANNOY]] || 0 || 0 || 0 || 2 || domotics &amp;amp; robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JulienN|Julien NICOLAS / jujun]] || 2 || 1 || 0 || 1 || multimedia &amp;amp; network&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:StephaneF|Stéphane Falck]] || 0 || 0 || 0 || 0 || multimedia &amp;amp; robotics &amp;amp; domotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:GillesD|Gilles DUSSIN/ Sellig]] || 1 || 0 || 1 || 1 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:MaximeL|Maxime Liron]] || 0 || 0 || 0 || 0 || domotics, robotics &amp;amp; multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:NicolasC|Nicolas CHARLERY/ realniko]] || 2 || 0 || 0 || 0 || electronic&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:BenoitJ|Benoit JESTER]] || 0 || 0 || 0 || 0 || robotics &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:FabienM|Fabien MARTEAU/ FabM]] || 1 || 2 || 1 || 1 || robotics,domotics &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:XavierA|Xavier AZNAR]] || 1 || 1 || 0 || 0 || environment, entertainment, domotic &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:AlbericA|Albéric AUBLANC / PoueT]] || 2 || 0 || 1 || 0 || domotics &amp;amp; multimedia, robotics, entertainment, &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:FredericB| Frédéric Blain / creber]] || 2 || 1 || 0 || 0 || system, domotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JeanBaptisteMa| Jean-Baptiste Maillet]] || 2 || 1 || 0 || 0 || system&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JeanFrancoisR| Jean-François Rousval]] || 2 || 1 || 0 || 1 || &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JulienPeeters| Julien Peeters]] || 2 || 1 || 0 || 0 || domotics, real-time, entertainment, network&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:YoannC| Yoann Congal / Alpheb]] || 0 || 0 || 0 || 1 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:MatthieuT| Matthieu Texier / weeber]] || 1 || 0 || 1 || 0 || robotics, real-time&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:MartialG| Martial Guex]] || 2 || 1 || 1 || 2 || transceiver RF, real-time, wireless&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:NicolasL| Nicolas Lantz]] || 2 || 2 || 1 || 1 ||&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:GuillaumeD| Guillaume DELVIT]] || 1 || 1 || 1 || 1 || system, asynchronous CPU&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:BernardR|Bernard REMOND ]] || x || x || x || x || &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:SamirH| Samir HAMNACHE]] || 0 || 0 || 0 || 1 || électronique&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:OlivierT|Olivier TARDIEU]] || 0 || 0 || 0 || 1 || électronique,robotics,domotics &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:ThibautR|Thibault Rétornaz]] || 1 || 1 || 1 || 0 || bio-med, électronique&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:BrunoS|Bruno Suarez]] || 2 || 0 || 0 || 0 || bio-med, électronique&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:guillaumeDe|Guillaume Denis]] || 0 || 0 || 2 || 1 || Electronique numérique, FPGA&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:KevinP|Kévin PETIT]] || 1 || 0 || 1 || 1 || Multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PierreBa|Pierre Baudemont / b4ud3]] || 2 || 0 || 1 || 0 || domotics, robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:BrunoL|Bruno Landré]] || 0 || 0 || 0 || 0 || robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:AntonioMB|Antonio Meléndez]] || 0 || 0 || 1 || 2 || domotics, robotics, eletcronics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:MichelTe|Michel Le Mer]] || 0 || 0 || 2 || 2 || electronics, software&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JulienBa|Julien Baley]] || 0 || 0 || 0 || 0 || &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:FrankA|Frank ANJEAUX]] || 1 || 0 || 0 || 1 || software,robotics, domotics, electronics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JulienViaud|Julien viaud/polric]] || 2 || 0 || 1 || 1 || &lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:NicolasCa|Nicolas CARTIER]] || 1 || 1 || 0 || 2 || domotics &amp;amp; robotics&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PierreAlexandreS|Pierre Alexandre SCHEMBRI]] || 2 || 1 || 2 || 2 || electronics, board design, embedded software, FPGA, robotics, low power&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:AlexG|Alex GONZALEZ]] || 2 || 2 || 0 || 1 || telecommunications, network &amp;amp; multimedia&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:JulienL|Julien Lefrique / apapi]] || 1 || 0 || 1 || 1 ||&lt;br /&gt;
|----------------&lt;br /&gt;
|[[User:PaoloB|Paolo Bernini / nihil84]] || 2 || 1 || 0 || 0 || robotics, real-time&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Links==&lt;br /&gt;
* [[Members | Geographical position of the members]]&lt;br /&gt;
&lt;br /&gt;
[[Category:Association]]&lt;/div&gt;</summary>
		<author><name>PaoloB</name></author>	</entry>

	</feed>