<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://wiki.gumstix.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dan+Nelson</id>
		<title>Gumstix User Wiki - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.gumstix.com/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Dan+Nelson"/>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php/Special:Contributions/Dan_Nelson"/>
		<updated>2026-05-06T17:11:18Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.3</generator>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=GPIO&amp;diff=5887</id>
		<title>GPIO</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=GPIO&amp;diff=5887"/>
				<updated>2012-09-21T09:18:42Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: /* Example: Changing the multiplexing for a pin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overo GPIO ==&lt;br /&gt;
&lt;br /&gt;
The Overo kernels support the sysfs gpio implementation for accessing GPIO from userspace. &lt;br /&gt;
&lt;br /&gt;
This allows you to control GPIO from the command line this way&lt;br /&gt;
&lt;br /&gt;
 root@overo# echo 146 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
 root@overo:/sys/class/gpio# cat gpio146/direction&lt;br /&gt;
 in&lt;br /&gt;
 root@overo# echo out &amp;gt; /sys/class/gpio/gpio146/direction&lt;br /&gt;
 root@overo:/sys/class/gpio# cat gpio146/direction&lt;br /&gt;
 out&lt;br /&gt;
 root@overo# cat /sys/class/gpio/gpio146/value&lt;br /&gt;
 0&lt;br /&gt;
 root@overo# echo 1 &amp;gt; /sys/class/gpio/gpio146/value&lt;br /&gt;
 root@overo# cat /sys/class/gpio/gpio146/value&lt;br /&gt;
 1&lt;br /&gt;
&lt;br /&gt;
If you have an expansion card with a 40 pin header, then this will be controlling pin 27. You can use pin 1 for a ground. (If you don't have a meter, a p/n 276-0330 1.8V Red LED from Radio Shack works for testing.) &lt;br /&gt;
&lt;br /&gt;
Schematics and pin-outs for the Gumstix expansion boards can be found [http://pubs.gumstix.com/boards/ here.]&lt;br /&gt;
&lt;br /&gt;
=== How It Works ===&lt;br /&gt;
&lt;br /&gt;
See the kernel docs [http://www.kernel.org/doc/Documentation/gpio.txt gpio.txt] for an overview of gpio and the userspace sysfs interface. The &amp;quot;Sysfs Interface for Userspace (OPTIONAL)&amp;quot; section near the end discusses the userspace implementation.&lt;br /&gt;
&lt;br /&gt;
See the [http://www-s.ti.com/sc/techlit/spruf98 OMAP35X Technical Reference Manual] Section 7.6.3 PADCONFS Register Description and Table 7.5 Core Control Module PadConf Register Field in Section 7.4.4.3 Pad Multiplexing Register Fields for identifying the possible MUX configuration for each GPIO.&lt;br /&gt;
&lt;br /&gt;
Then see the U-Boot source code, board/overo/overo.h for how the pins on the Overo are actually being muxed. See include/asm-arm/arch-omap3/mux.h in the U-Boot tree for the definitions used in overo.h. The pins in mux mode M4 are already configured for GPIO.&lt;br /&gt;
&lt;br /&gt;
=== Making Modifications ===&lt;br /&gt;
&lt;br /&gt;
Currently all the GPIO multiplexing for the Overo's is being done by the bootloader U-Boot, so the conventional way to modify the pin muxing is to edit overo.h and rebuild U-Boot.&lt;br /&gt;
&lt;br /&gt;
You can also change the mux configuration from within Linux. One simple approach is to do it from userspace accessing /dev/mem. A program devmem2 is part of the omap3-console-image and will work. See the remuxing example below.&lt;br /&gt;
&lt;br /&gt;
If you are writing your own kernel module, you can also read/write the PADCONF registers the way you normally would after an ioremap.&lt;br /&gt;
&lt;br /&gt;
Third, there is a Linux build config option CONFIG_OMAP_MUX, not normally enabled in the Overo configs, that will give you some additional utility functions to simplify mux changes within kernel or module code (see arch/arm/plat-omap/mux.c).&lt;br /&gt;
&lt;br /&gt;
Finally, it looks like the Linux OMAP34xx pin muxing code is getting a complete overhaul. See this [http://www.mail-archive.com/linux-omap@vger.kernel.org/msg18474.html thread] on the Linux OMAP mailing list. Judging from some posts on the Gumstix lists, it sounds like this will be available in 2.6.33.&lt;br /&gt;
&lt;br /&gt;
=== Overo Kernel Usage ===&lt;br /&gt;
&lt;br /&gt;
Just because pins are configured as GPIO in u-boot, doesn't necessarily mean you can use them. If you look at /sys/class/gpio on a default Overo, you'll get something like this.&lt;br /&gt;
&lt;br /&gt;
 root@overo:~# ls /sys/class/gpio&lt;br /&gt;
 export	gpio164  gpio65       gpiochip160  gpiochip64&lt;br /&gt;
 gpio15	gpio168  gpiochip0    gpiochip192  gpiochip96&lt;br /&gt;
 gpio16	gpio176  gpiochip128  gpiochip32   unexport&lt;br /&gt;
&lt;br /&gt;
The reason you see some GPIO already exported is because the linux code in arch/arm/mach-omap2/board-overo.c is explicitly exporting these pins for another use. Whether they are being used depends on the hardware you have attached. The kernel also uses pins configured as GPIO that it doesn't export. These depend on the board configuration and the kernel drivers being used.&lt;br /&gt;
&lt;br /&gt;
To be more explicit, look inside board-overo.c, you'll see these definitions&lt;br /&gt;
&lt;br /&gt;
 #define OVERO_GPIO_BT_XGATE     15&lt;br /&gt;
 #define OVERO_GPIO_W2W_NRESET   16&lt;br /&gt;
 #define OVERO_GPIO_PENDOWN      114&lt;br /&gt;
 #define OVERO_GPIO_BT_NRESET    164&lt;br /&gt;
 #define OVERO_GPIO_USBH_CPEN    168&lt;br /&gt;
 #define OVERO_GPIO_USBH_NRESET  183&lt;br /&gt;
 ...&lt;br /&gt;
 #define OVERO_SMSC911X_GPIO    176&lt;br /&gt;
 #define OVERO_SMSC911X2_GPIO   65&lt;br /&gt;
 ...&lt;br /&gt;
 #define OVERO_GPIO_LCD_EN 144&lt;br /&gt;
 #define OVERO_GPIO_LCD_BL 145&lt;br /&gt;
&lt;br /&gt;
Follow their usage inside the file and you will be able to explain the /sys/class/gpio output you see above.&lt;br /&gt;
&lt;br /&gt;
=== Input or Output ===&lt;br /&gt;
&lt;br /&gt;
Pins configured as GPIO are sometimes also specified as being strictly input or output. &lt;br /&gt;
&lt;br /&gt;
This can happen when they are mux'd or when they are explicitly exported by the kernel. &lt;br /&gt;
&lt;br /&gt;
In either of those cases you won't be able to change the I/O direction from userspace.&lt;br /&gt;
&lt;br /&gt;
=== Electrical Specifications ===&lt;br /&gt;
&lt;br /&gt;
Voltage is 1.8v &lt;br /&gt;
&lt;br /&gt;
Current specifications &amp;lt;TODO ???&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Usable Pins ===&lt;br /&gt;
&lt;br /&gt;
Here's a few GPIO you can use immediately from userspace without any u-boot or kernel changes.&lt;br /&gt;
It will however require that the specific GPIO isn't used by the attached expansion board. &lt;br /&gt;
&lt;br /&gt;
==== 40 Pin Expansion Header ==== &lt;br /&gt;
&lt;br /&gt;
Pin 4 - gpio114&amp;lt;br /&amp;gt;&lt;br /&gt;
It's the pendown signal on the touchscreen controller but it's available if you aren't using a expansion board with touchscreen support.&amp;lt;br /&amp;gt;&lt;br /&gt;
This pin can not be configured as output, it is input only (see [http://www-s.ti.com/sc/techlit/spruf98 OMAP35X Technical Reference Manual] p. 3389).&lt;br /&gt;
Pulled-low, reads 0 with no input, reads 1 with an input applied&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pin 19 - gpio170&amp;lt;br /&amp;gt;&lt;br /&gt;
The HDQ/1-Wire output. Not used unless you explicitly enable the 1-wire module.&amp;lt;br /&amp;gt;&lt;br /&gt;
User exportable&amp;lt;br /&amp;gt;&lt;br /&gt;
Output only - configured this way in the u-boot muxing&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pin 27 - gpio146&amp;lt;br /&amp;gt;&lt;br /&gt;
Pin 29 - gpio147&amp;lt;br /&amp;gt;&lt;br /&gt;
User exportable&amp;lt;br /&amp;gt;&lt;br /&gt;
Direction can be changed&amp;lt;br /&amp;gt;&lt;br /&gt;
Floating state&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pin 28 - gpio145&amp;lt;br /&amp;gt;&lt;br /&gt;
Pin 30 - gpio144&amp;lt;br /&amp;gt;&lt;br /&gt;
Used with LCD, but available if not using an LCD&amp;lt;br /&amp;gt;&lt;br /&gt;
Configured as output only when exported by the kernel in board-overo.h. Can't change direction from userspace without modifying kernel.&amp;lt;br /&amp;gt;&lt;br /&gt;
Set to ON by kernel during init (not all configs, see board-overo.c). This could be a problem for real use, but okay for testing.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Palo43 Board ====&lt;br /&gt;
&lt;br /&gt;
LED D2 - gpio21&amp;lt;br /&amp;gt;&lt;br /&gt;
LED D3 - gpio22&amp;lt;br /&amp;gt;&lt;br /&gt;
Userspace exportable, set the direction as out&amp;lt;br /&amp;gt;&lt;br /&gt;
echo 0 &amp;gt; gpioxx/value to turn on, echo 1 &amp;gt; gpioxx/value to turn off&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Switch - gpio14&amp;lt;br /&amp;gt;&lt;br /&gt;
Switch - gpio23&amp;lt;br /&amp;gt;&lt;br /&gt;
Userspace exportable, leave direction as in&amp;lt;br /&amp;gt;&lt;br /&gt;
With the switch open (not pushed) will register a value of 1&amp;lt;br /&amp;gt;&lt;br /&gt;
Push the switch and the value will be 0&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example: Changing the multiplexing for a pin ===&lt;br /&gt;
&lt;br /&gt;
If you aren't using the first SPI bus, then there are 5 pins on the 40-pin expansion header that you could repurpose for GPIO.&lt;br /&gt;
&lt;br /&gt;
Pin 3 - gpio171(spi1_clk)&amp;lt;br /&amp;gt;&lt;br /&gt;
Pin 5 - gpio172 (spi1_mosi)&amp;lt;br /&amp;gt;&lt;br /&gt;
Pin 6 - gpio174 (spi1_cs0)&amp;lt;br /&amp;gt;&lt;br /&gt;
Pin 7 - gpio173 (spi1_miso)&amp;lt;br /&amp;gt;&lt;br /&gt;
Pin 8 - gpio175 (spi1_cs1)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first step is to find the appropriate PADCONF register address for each gpio from Table 7.5 of the TRM. Pay attention to whether it is the low or high order 16 bits for each gpio. You should come up with these values.&lt;br /&gt;
&lt;br /&gt;
gpio171 : 0x4800 21C8&amp;lt;br /&amp;gt;&lt;br /&gt;
gpio172 : 0x4800 21CA&amp;lt;br /&amp;gt;&lt;br /&gt;
gpio173 : 0x4800 21CC&amp;lt;br /&amp;gt;&lt;br /&gt;
gpio174 : 0x4800 21CE&amp;lt;br /&amp;gt;&lt;br /&gt;
gpio175 : 0x4800 21D0&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using devmem2, here is how you could read the current PADCONF value for what could be gpio171&lt;br /&gt;
&lt;br /&gt;
 root@overo# devmem2 0x480021c8 h&lt;br /&gt;
 ...&lt;br /&gt;
 Value at address 0x480021C8 (0x400201c8): 0x100&lt;br /&gt;
&lt;br /&gt;
Which corresponds to a mux value of (IEN | PTD | DIS | M0) using the U-Boot mux.h definitions. Mux mode 0 for this pin is the spi1_clk configuration found by looking in Table 7.5 of the TRM.&lt;br /&gt;
&lt;br /&gt;
To reconfigure pin 3 to be gpio171, as input or output with inputs pulled low, write 0x010C to the controlling PADCONF register. This would correspond to (IEN | PTD | EN | M4). The bit fields are defined in the TRM Section 7.6.3.&lt;br /&gt;
&lt;br /&gt;
 root@overo# devmem2 0x480021c8 h 0x10c&lt;br /&gt;
&lt;br /&gt;
Now you can export and configure gpio171 from userspace like the example with gpio146 at the beginning.  To make it visible in sysfs:&lt;br /&gt;
&lt;br /&gt;
 echo 172 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
If you want this multiplexing to be permanent, then you would modify the U-Boot file board/overo/overo.h and rebuild U-Boot. If you are using OE, then you'll want to generate a patch file to be used in the u-boot-omap3 recipe.&lt;br /&gt;
&lt;br /&gt;
There are additional pins on the header that can be reconfigured this way.&lt;br /&gt;
&lt;br /&gt;
To reconfigure pins from within a kernel module the following code can be used:&lt;br /&gt;
 &lt;br /&gt;
 void *addr = ioremap(spi1_clk, 4);&lt;br /&gt;
 if (!addr)&lt;br /&gt;
 {&lt;br /&gt;
  printk(&amp;quot;Cannot ioremap 0x%lx\n&amp;quot;, spi1_clk);&lt;br /&gt;
 } else {&lt;br /&gt;
  printk(&amp;quot;ioremap OK:  0x%lx\n&amp;quot;, spi1_clk);&lt;br /&gt;
  iowrite32( 0x010C | (0x010C &amp;lt;&amp;lt; 16), addr);&lt;br /&gt;
  iounmap(addr);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This will make both gpio171 and gpio172 input or output with inputs pulled low.&lt;br /&gt;
&lt;br /&gt;
=== Interrupts on GPIO pins ===&lt;br /&gt;
&lt;br /&gt;
Here is an example on setting up an interrupt on GPIO pin 23 from within a kernel module:&lt;br /&gt;
&lt;br /&gt;
 irqreturn_t gpio_irq_handler(int irq, void *dev_id) {&lt;br /&gt;
  static int cnt=0;&lt;br /&gt;
  printk(&amp;quot;gpio_irq_handler %i\n&amp;quot;, cnt++);&lt;br /&gt;
  return IRQ_HANDLED;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int gpio_irq= gpio_to_irq(23);&lt;br /&gt;
 int ret = request_irq(gpio_irq, gpio_irq_handler, IRQF_TRIGGER_FALLING, &amp;quot;gpio irq handler&amp;quot;, gpio_irq_handler);&lt;br /&gt;
 if (ret)&lt;br /&gt;
  printk(&amp;quot;gpio interrupt request failed\n&amp;quot;);&lt;br /&gt;
 else&lt;br /&gt;
  printk(&amp;quot;gpio interrupt request succeeded\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
=== GPIO Software for the Overo ===&lt;br /&gt;
&lt;br /&gt;
Dave Hylands has written several software packages to facilitate GPIO programming on the Overos.&lt;br /&gt;
&lt;br /&gt;
[[GPIO Event Driver]] allows multiple GPIO lines to be monitored from user-space.&lt;br /&gt;
&lt;br /&gt;
[[User GPIO Driver]] is a reflection of the kernel's gpiolib API into user space.&lt;br /&gt;
&lt;br /&gt;
=== More Links ===&lt;br /&gt;
&lt;br /&gt;
Here is another article [http://elinux.org/BeagleBoardPinMux BeagleBoardPinMux] talking about OMAP3 pin muxing.&lt;br /&gt;
&lt;br /&gt;
== Verdex GPIO ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;width:100px&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:yellow;&amp;quot; | GPIO(&amp;lt;i&amp;gt; n &amp;lt;/i&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Logic level (3.3V) signals &lt;br /&gt;
* 3-4mA max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
all GPIO's information and examples should go here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
todo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
According to the PXA270 datasheet:&lt;br /&gt;
http://pubs.gumstix.com/documents/PXA%20Documentation/PXA270/PXA270%20Electrical,%20Mechanical,%20and%20Thermal%20Specification%20%5b280002-005%5d.pdf&lt;br /&gt;
most of the pins are limited to 3mA, and a few can go upto 4 mA (see page 5-9) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Accessing GPIO's from userland ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If proc-gpio is a module, add it to /etc/modules or do a modprobe proc-gpio.&lt;br /&gt;
&lt;br /&gt;
A number of files exist under /proc/gpio, one for each GPIO on the PXA processor.&lt;br /&gt;
&lt;br /&gt;
If you cat one of these files, you get, eg:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /proc/gpio/GPIO12&lt;br /&gt;
12 GPIO in set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That tells you — GPIO number, function (either GPIO, AF 1, AF 2, or AF 3), in|out, set|clear.&lt;br /&gt;
&lt;br /&gt;
You can change any of those values, by writing to the file, eg:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# echo &amp;quot;AF1 out&amp;quot; &amp;gt; /proc/gpio/GPIO12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sets GPIO12 to AF1, out mode. (In the case of GPIO12, the PXA defines this function as putting out the 32kHz clock signal.) this is currently case-sensitive&lt;br /&gt;
&lt;br /&gt;
If you have the GPIO set to an output, and GPIO mode, you can set or clear the signal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# echo &amp;quot;GPIO out set&amp;quot; &amp;gt; /proc/gpio/GPIO12&lt;br /&gt;
# echo &amp;quot;GPIO out clear&amp;quot; &amp;gt; /proc/gpio/GPIO12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The alternative functions are described in the PXA255 Developer's Manual (link should be found in the Featured links-box) section 4.1.2.&lt;br /&gt;
&lt;br /&gt;
=== Alternative method to access GPIO's from userland ===&lt;br /&gt;
&lt;br /&gt;
The [[User GPIO Driver]] provides a reflection of the kernel's gpiolib library into userspace.&lt;br /&gt;
&lt;br /&gt;
=== gpio-event driver ===&lt;br /&gt;
&lt;br /&gt;
The [[GPIO Event Driver]] allows gpio changes to be captured from user-space.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
Related pages on the old wiki:&lt;br /&gt;
&lt;br /&gt;
http://docwiki.gumstix.org/index.php/Tips_and_tricks#Access_GPIOs_from_user-space&lt;br /&gt;
&lt;br /&gt;
http://docwiki.gumstix.org/index.php/Sample_code/C/gpregs&lt;br /&gt;
&lt;br /&gt;
http://docwiki.gumstix.org/index.php/Kernel_programming&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
[[Category:Literature]]&lt;br /&gt;
[[Category:GPIO]]&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=GPIO&amp;diff=5886</id>
		<title>GPIO</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=GPIO&amp;diff=5886"/>
				<updated>2012-09-21T07:28:59Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: /* Example: Changing the multiplexing for a pin */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Overo GPIO ==&lt;br /&gt;
&lt;br /&gt;
The Overo kernels support the sysfs gpio implementation for accessing GPIO from userspace. &lt;br /&gt;
&lt;br /&gt;
This allows you to control GPIO from the command line this way&lt;br /&gt;
&lt;br /&gt;
 root@overo# echo 146 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
 root@overo:/sys/class/gpio# cat gpio146/direction&lt;br /&gt;
 in&lt;br /&gt;
 root@overo# echo out &amp;gt; /sys/class/gpio/gpio146/direction&lt;br /&gt;
 root@overo:/sys/class/gpio# cat gpio146/direction&lt;br /&gt;
 out&lt;br /&gt;
 root@overo# cat /sys/class/gpio/gpio146/value&lt;br /&gt;
 0&lt;br /&gt;
 root@overo# echo 1 &amp;gt; /sys/class/gpio/gpio146/value&lt;br /&gt;
 root@overo# cat /sys/class/gpio/gpio146/value&lt;br /&gt;
 1&lt;br /&gt;
&lt;br /&gt;
If you have an expansion card with a 40 pin header, then this will be controlling pin 27. You can use pin 1 for a ground. (If you don't have a meter, a p/n 276-0330 1.8V Red LED from Radio Shack works for testing.) &lt;br /&gt;
&lt;br /&gt;
Schematics and pin-outs for the Gumstix expansion boards can be found [http://pubs.gumstix.com/boards/ here.]&lt;br /&gt;
&lt;br /&gt;
=== How It Works ===&lt;br /&gt;
&lt;br /&gt;
See the kernel docs [http://www.kernel.org/doc/Documentation/gpio.txt gpio.txt] for an overview of gpio and the userspace sysfs interface. The &amp;quot;Sysfs Interface for Userspace (OPTIONAL)&amp;quot; section near the end discusses the userspace implementation.&lt;br /&gt;
&lt;br /&gt;
See the [http://www-s.ti.com/sc/techlit/spruf98 OMAP35X Technical Reference Manual] Section 7.6.3 PADCONFS Register Description and Table 7.5 Core Control Module PadConf Register Field in Section 7.4.4.3 Pad Multiplexing Register Fields for identifying the possible MUX configuration for each GPIO.&lt;br /&gt;
&lt;br /&gt;
Then see the U-Boot source code, board/overo/overo.h for how the pins on the Overo are actually being muxed. See include/asm-arm/arch-omap3/mux.h in the U-Boot tree for the definitions used in overo.h. The pins in mux mode M4 are already configured for GPIO.&lt;br /&gt;
&lt;br /&gt;
=== Making Modifications ===&lt;br /&gt;
&lt;br /&gt;
Currently all the GPIO multiplexing for the Overo's is being done by the bootloader U-Boot, so the conventional way to modify the pin muxing is to edit overo.h and rebuild U-Boot.&lt;br /&gt;
&lt;br /&gt;
You can also change the mux configuration from within Linux. One simple approach is to do it from userspace accessing /dev/mem. A program devmem2 is part of the omap3-console-image and will work. See the remuxing example below.&lt;br /&gt;
&lt;br /&gt;
If you are writing your own kernel module, you can also read/write the PADCONF registers the way you normally would after an ioremap.&lt;br /&gt;
&lt;br /&gt;
Third, there is a Linux build config option CONFIG_OMAP_MUX, not normally enabled in the Overo configs, that will give you some additional utility functions to simplify mux changes within kernel or module code (see arch/arm/plat-omap/mux.c).&lt;br /&gt;
&lt;br /&gt;
Finally, it looks like the Linux OMAP34xx pin muxing code is getting a complete overhaul. See this [http://www.mail-archive.com/linux-omap@vger.kernel.org/msg18474.html thread] on the Linux OMAP mailing list. Judging from some posts on the Gumstix lists, it sounds like this will be available in 2.6.33.&lt;br /&gt;
&lt;br /&gt;
=== Overo Kernel Usage ===&lt;br /&gt;
&lt;br /&gt;
Just because pins are configured as GPIO in u-boot, doesn't necessarily mean you can use them. If you look at /sys/class/gpio on a default Overo, you'll get something like this.&lt;br /&gt;
&lt;br /&gt;
 root@overo:~# ls /sys/class/gpio&lt;br /&gt;
 export	gpio164  gpio65       gpiochip160  gpiochip64&lt;br /&gt;
 gpio15	gpio168  gpiochip0    gpiochip192  gpiochip96&lt;br /&gt;
 gpio16	gpio176  gpiochip128  gpiochip32   unexport&lt;br /&gt;
&lt;br /&gt;
The reason you see some GPIO already exported is because the linux code in arch/arm/mach-omap2/board-overo.c is explicitly exporting these pins for another use. Whether they are being used depends on the hardware you have attached. The kernel also uses pins configured as GPIO that it doesn't export. These depend on the board configuration and the kernel drivers being used.&lt;br /&gt;
&lt;br /&gt;
To be more explicit, look inside board-overo.c, you'll see these definitions&lt;br /&gt;
&lt;br /&gt;
 #define OVERO_GPIO_BT_XGATE     15&lt;br /&gt;
 #define OVERO_GPIO_W2W_NRESET   16&lt;br /&gt;
 #define OVERO_GPIO_PENDOWN      114&lt;br /&gt;
 #define OVERO_GPIO_BT_NRESET    164&lt;br /&gt;
 #define OVERO_GPIO_USBH_CPEN    168&lt;br /&gt;
 #define OVERO_GPIO_USBH_NRESET  183&lt;br /&gt;
 ...&lt;br /&gt;
 #define OVERO_SMSC911X_GPIO    176&lt;br /&gt;
 #define OVERO_SMSC911X2_GPIO   65&lt;br /&gt;
 ...&lt;br /&gt;
 #define OVERO_GPIO_LCD_EN 144&lt;br /&gt;
 #define OVERO_GPIO_LCD_BL 145&lt;br /&gt;
&lt;br /&gt;
Follow their usage inside the file and you will be able to explain the /sys/class/gpio output you see above.&lt;br /&gt;
&lt;br /&gt;
=== Input or Output ===&lt;br /&gt;
&lt;br /&gt;
Pins configured as GPIO are sometimes also specified as being strictly input or output. &lt;br /&gt;
&lt;br /&gt;
This can happen when they are mux'd or when they are explicitly exported by the kernel. &lt;br /&gt;
&lt;br /&gt;
In either of those cases you won't be able to change the I/O direction from userspace.&lt;br /&gt;
&lt;br /&gt;
=== Electrical Specifications ===&lt;br /&gt;
&lt;br /&gt;
Voltage is 1.8v &lt;br /&gt;
&lt;br /&gt;
Current specifications &amp;lt;TODO ???&amp;gt; &lt;br /&gt;
&lt;br /&gt;
=== Usable Pins ===&lt;br /&gt;
&lt;br /&gt;
Here's a few GPIO you can use immediately from userspace without any u-boot or kernel changes.&lt;br /&gt;
It will however require that the specific GPIO isn't used by the attached expansion board. &lt;br /&gt;
&lt;br /&gt;
==== 40 Pin Expansion Header ==== &lt;br /&gt;
&lt;br /&gt;
Pin 4 - gpio114&amp;lt;br /&amp;gt;&lt;br /&gt;
It's the pendown signal on the touchscreen controller but it's available if you aren't using a expansion board with touchscreen support.&amp;lt;br /&amp;gt;&lt;br /&gt;
This pin can not be configured as output, it is input only (see [http://www-s.ti.com/sc/techlit/spruf98 OMAP35X Technical Reference Manual] p. 3389).&lt;br /&gt;
Pulled-low, reads 0 with no input, reads 1 with an input applied&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pin 19 - gpio170&amp;lt;br /&amp;gt;&lt;br /&gt;
The HDQ/1-Wire output. Not used unless you explicitly enable the 1-wire module.&amp;lt;br /&amp;gt;&lt;br /&gt;
User exportable&amp;lt;br /&amp;gt;&lt;br /&gt;
Output only - configured this way in the u-boot muxing&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pin 27 - gpio146&amp;lt;br /&amp;gt;&lt;br /&gt;
Pin 29 - gpio147&amp;lt;br /&amp;gt;&lt;br /&gt;
User exportable&amp;lt;br /&amp;gt;&lt;br /&gt;
Direction can be changed&amp;lt;br /&amp;gt;&lt;br /&gt;
Floating state&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Pin 28 - gpio145&amp;lt;br /&amp;gt;&lt;br /&gt;
Pin 30 - gpio144&amp;lt;br /&amp;gt;&lt;br /&gt;
Used with LCD, but available if not using an LCD&amp;lt;br /&amp;gt;&lt;br /&gt;
Configured as output only when exported by the kernel in board-overo.h. Can't change direction from userspace without modifying kernel.&amp;lt;br /&amp;gt;&lt;br /&gt;
Set to ON by kernel during init (not all configs, see board-overo.c). This could be a problem for real use, but okay for testing.&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Palo43 Board ====&lt;br /&gt;
&lt;br /&gt;
LED D2 - gpio21&amp;lt;br /&amp;gt;&lt;br /&gt;
LED D3 - gpio22&amp;lt;br /&amp;gt;&lt;br /&gt;
Userspace exportable, set the direction as out&amp;lt;br /&amp;gt;&lt;br /&gt;
echo 0 &amp;gt; gpioxx/value to turn on, echo 1 &amp;gt; gpioxx/value to turn off&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Switch - gpio14&amp;lt;br /&amp;gt;&lt;br /&gt;
Switch - gpio23&amp;lt;br /&amp;gt;&lt;br /&gt;
Userspace exportable, leave direction as in&amp;lt;br /&amp;gt;&lt;br /&gt;
With the switch open (not pushed) will register a value of 1&amp;lt;br /&amp;gt;&lt;br /&gt;
Push the switch and the value will be 0&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Example: Changing the multiplexing for a pin ===&lt;br /&gt;
&lt;br /&gt;
If you aren't using the first SPI bus, then there are 5 pins on the 40-pin expansion header that you could repurpose for GPIO.&lt;br /&gt;
&lt;br /&gt;
Pin 3 - gpio171(spi1_clk)&amp;lt;br /&amp;gt;&lt;br /&gt;
Pin 5 - gpio172 (spi1_mosi)&amp;lt;br /&amp;gt;&lt;br /&gt;
Pin 6 - gpio174 (spi1_cs0)&amp;lt;br /&amp;gt;&lt;br /&gt;
Pin 7 - gpio173 (spi1_miso)&amp;lt;br /&amp;gt;&lt;br /&gt;
Pin 8 - gpio175 (spi1_cs1)&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The first step is to find the appropriate PADCONF register address for each gpio from Table 7.5 of the TRM. Pay attention to whether it is the low or high order 16 bits for each gpio. You should come up with these values.&lt;br /&gt;
&lt;br /&gt;
gpio171 : 0x4800 21C8&amp;lt;br /&amp;gt;&lt;br /&gt;
gpio172 : 0x4800 21CA&amp;lt;br /&amp;gt;&lt;br /&gt;
gpio173 : 0x4800 21CC&amp;lt;br /&amp;gt;&lt;br /&gt;
gpio174 : 0x4800 21CE&amp;lt;br /&amp;gt;&lt;br /&gt;
gpio175 : 0x4800 21D0&amp;lt;br /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Using devmem2, here is how you could read the current PADCONF value for what could be gpio171&lt;br /&gt;
&lt;br /&gt;
 root@overo# devmem2 0x480021c8 h&lt;br /&gt;
 ...&lt;br /&gt;
 Value at address 0x480021C8 (0x400201c8): 0x100&lt;br /&gt;
&lt;br /&gt;
Which corresponds to a mux value of (IEN | PTD | DIS | M0) using the U-Boot mux.h definitions. Mux mode 0 for this pin is the spi1_clk configuration found by looking in Table 7.5 of the TRM.&lt;br /&gt;
&lt;br /&gt;
To reconfigure pin 3 to be gpio171, as input or output with inputs pulled low, write 0x010C to the controlling PADCONF register. This would correspond to (IEN | PTD | EN | M4). The bit fields are defined in the TRM Section 7.6.3.&lt;br /&gt;
&lt;br /&gt;
 root@overo# devmem2 0x480021c8 h 0x10c&lt;br /&gt;
&lt;br /&gt;
Now you can export and configure gpio171 from userspace like the example with gpio146 at the beginning.  To make it visible in sysfs.&lt;br /&gt;
&lt;br /&gt;
 echo 172 &amp;gt; /sys/class/gpio/export&lt;br /&gt;
&lt;br /&gt;
If you want this multiplexing to be permanent, then you would modify the U-Boot file board/overo/overo.h and rebuild U-Boot. If you are using OE, then you'll want to generate a patch file to be used in the u-boot-omap3 recipe.&lt;br /&gt;
&lt;br /&gt;
There are additional pins on the header that can be reconfigured this way.&lt;br /&gt;
&lt;br /&gt;
To reconfigure pins from within a kernel module the following code can be used:&lt;br /&gt;
 &lt;br /&gt;
 void *addr = ioremap(spi1_clk, 4);&lt;br /&gt;
 if (!addr)&lt;br /&gt;
 {&lt;br /&gt;
  printk(&amp;quot;Cannot ioremap 0x%lx\n&amp;quot;, spi1_clk);&lt;br /&gt;
 } else {&lt;br /&gt;
  printk(&amp;quot;ioremap OK:  0x%lx\n&amp;quot;, spi1_clk);&lt;br /&gt;
  iowrite32( 0x010C | (0x010C &amp;lt;&amp;lt; 16), addr);&lt;br /&gt;
  iounmap(addr);&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
This will make both gpio171 and gpio172 input or output with inputs pulled low.&lt;br /&gt;
&lt;br /&gt;
=== Interrupts on GPIO pins ===&lt;br /&gt;
&lt;br /&gt;
Here is an example on setting up an interrupt on GPIO pin 23 from within a kernel module:&lt;br /&gt;
&lt;br /&gt;
 irqreturn_t gpio_irq_handler(int irq, void *dev_id) {&lt;br /&gt;
  static int cnt=0;&lt;br /&gt;
  printk(&amp;quot;gpio_irq_handler %i\n&amp;quot;, cnt++);&lt;br /&gt;
  return IRQ_HANDLED;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
 int gpio_irq= gpio_to_irq(23);&lt;br /&gt;
 int ret = request_irq(gpio_irq, gpio_irq_handler, IRQF_TRIGGER_FALLING, &amp;quot;gpio irq handler&amp;quot;, gpio_irq_handler);&lt;br /&gt;
 if (ret)&lt;br /&gt;
  printk(&amp;quot;gpio interrupt request failed\n&amp;quot;);&lt;br /&gt;
 else&lt;br /&gt;
  printk(&amp;quot;gpio interrupt request succeeded\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
=== GPIO Software for the Overo ===&lt;br /&gt;
&lt;br /&gt;
Dave Hylands has written several software packages to facilitate GPIO programming on the Overos.&lt;br /&gt;
&lt;br /&gt;
[[GPIO Event Driver]] allows multiple GPIO lines to be monitored from user-space.&lt;br /&gt;
&lt;br /&gt;
[[User GPIO Driver]] is a reflection of the kernel's gpiolib API into user space.&lt;br /&gt;
&lt;br /&gt;
=== More Links ===&lt;br /&gt;
&lt;br /&gt;
Here is another article [http://elinux.org/BeagleBoardPinMux BeagleBoardPinMux] talking about OMAP3 pin muxing.&lt;br /&gt;
&lt;br /&gt;
== Verdex GPIO ==&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot; style=&amp;quot;width:100px&amp;quot;&lt;br /&gt;
| style=&amp;quot;background:yellow;&amp;quot; | GPIO(&amp;lt;i&amp;gt; n &amp;lt;/i&amp;gt;)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Logic level (3.3V) signals &lt;br /&gt;
* 3-4mA max&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
all GPIO's information and examples should go here&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
todo&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
According to the PXA270 datasheet:&lt;br /&gt;
http://pubs.gumstix.com/documents/PXA%20Documentation/PXA270/PXA270%20Electrical,%20Mechanical,%20and%20Thermal%20Specification%20%5b280002-005%5d.pdf&lt;br /&gt;
most of the pins are limited to 3mA, and a few can go upto 4 mA (see page 5-9) &lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Accessing GPIO's from userland ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
If proc-gpio is a module, add it to /etc/modules or do a modprobe proc-gpio.&lt;br /&gt;
&lt;br /&gt;
A number of files exist under /proc/gpio, one for each GPIO on the PXA processor.&lt;br /&gt;
&lt;br /&gt;
If you cat one of these files, you get, eg:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# cat /proc/gpio/GPIO12&lt;br /&gt;
12 GPIO in set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
That tells you — GPIO number, function (either GPIO, AF 1, AF 2, or AF 3), in|out, set|clear.&lt;br /&gt;
&lt;br /&gt;
You can change any of those values, by writing to the file, eg:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# echo &amp;quot;AF1 out&amp;quot; &amp;gt; /proc/gpio/GPIO12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This sets GPIO12 to AF1, out mode. (In the case of GPIO12, the PXA defines this function as putting out the 32kHz clock signal.) this is currently case-sensitive&lt;br /&gt;
&lt;br /&gt;
If you have the GPIO set to an output, and GPIO mode, you can set or clear the signal:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# echo &amp;quot;GPIO out set&amp;quot; &amp;gt; /proc/gpio/GPIO12&lt;br /&gt;
# echo &amp;quot;GPIO out clear&amp;quot; &amp;gt; /proc/gpio/GPIO12&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The alternative functions are described in the PXA255 Developer's Manual (link should be found in the Featured links-box) section 4.1.2.&lt;br /&gt;
&lt;br /&gt;
=== Alternative method to access GPIO's from userland ===&lt;br /&gt;
&lt;br /&gt;
The [[User GPIO Driver]] provides a reflection of the kernel's gpiolib library into userspace.&lt;br /&gt;
&lt;br /&gt;
=== gpio-event driver ===&lt;br /&gt;
&lt;br /&gt;
The [[GPIO Event Driver]] allows gpio changes to be captured from user-space.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;br&amp;gt;&lt;br /&gt;
-----------------------------&lt;br /&gt;
&lt;br /&gt;
Related pages on the old wiki:&lt;br /&gt;
&lt;br /&gt;
http://docwiki.gumstix.org/index.php/Tips_and_tricks#Access_GPIOs_from_user-space&lt;br /&gt;
&lt;br /&gt;
http://docwiki.gumstix.org/index.php/Sample_code/C/gpregs&lt;br /&gt;
&lt;br /&gt;
http://docwiki.gumstix.org/index.php/Kernel_programming&lt;br /&gt;
&lt;br /&gt;
.&lt;br /&gt;
[[Category:Literature]]&lt;br /&gt;
[[Category:GPIO]]&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=5811</id>
		<title>Kernel Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=5811"/>
				<updated>2012-04-11T07:48:28Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;11 April 2012&lt;br /&gt;
&lt;br /&gt;
This wiki entry explains how to build the Gumstix Linux kernel from source.&lt;br /&gt;
&lt;br /&gt;
Start by installing the [http://wiki.gumstix.org/index.php?title=Toolchain toolchain].&lt;br /&gt;
&lt;br /&gt;
You will also need the U-boot 'mkimage' utility.  Debian and Ubuntu users can install it from their respective repositories.  It's also compiled when U-boot is built if you can't get it otherwise.  On top of that you will need 'git' and 'make'.&lt;br /&gt;
 $ sudo apt-get install uboot-mkimage git make&lt;br /&gt;
&lt;br /&gt;
Next we need to get the patched kernel source that's available at www.sakoman.com.&lt;br /&gt;
You can browse Sakoman's git repository [http://www.sakoman.com/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=summary here].&lt;br /&gt;
&lt;br /&gt;
Decide where you want your kernel source to go an move to that directory.  Then use git to download it.&lt;br /&gt;
 $ git clone git://www.sakoman.com/git/linux-omap-2.6 linux -b omap-3.2&lt;br /&gt;
&lt;br /&gt;
The above command pulls down the omap-3.2 branch.  The omap-2.6.38 branch has proved stable for those who want to use Xenomai.  Once the above process is complete move into the new directory.  The first thing to do is to create a .config file.&lt;br /&gt;
 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- omap2plus_defconfig (or maybe omap3_defconfig)&lt;br /&gt;
&lt;br /&gt;
If you need to configure the kernel:&lt;br /&gt;
 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig&lt;br /&gt;
&lt;br /&gt;
And now for the main kernel build.&lt;br /&gt;
 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage -j4&lt;br /&gt;
&lt;br /&gt;
When the above completes, uImage can be found in arch/arm/boot/&lt;br /&gt;
&lt;br /&gt;
Build the kernel modules.&lt;br /&gt;
 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules -j4&lt;br /&gt;
&lt;br /&gt;
To install your kernel modules into your root file system:&lt;br /&gt;
 $ make ARCH=arm modules_install INSTALL_MOD_PATH=/path-to-your-rootfs/&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Toolchain&amp;diff=5810</id>
		<title>Toolchain</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Toolchain&amp;diff=5810"/>
				<updated>2012-04-11T07:39:01Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you use Open Embedded you will find the toolchain in /path-to-overo-oe/tmp/sysroots/i686-linux/usr/armv7a.&lt;br /&gt;
&lt;br /&gt;
If you want the toolchain on its own without the weight of Open Embedded there are several options.&lt;br /&gt;
&lt;br /&gt;
Ubuntu:&lt;br /&gt;
&lt;br /&gt;
The toolchain is already in the Ubuntu 11.04 repository.&lt;br /&gt;
 $ sudo apt-get install gcc-arm-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
Debian:&lt;br /&gt;
&lt;br /&gt;
Emdebian provide the toolchain in their Debian repository.  Add the following line to your sources.list file.&lt;br /&gt;
 deb http://www.emdebian.org/debian/ squeeze main&lt;br /&gt;
&lt;br /&gt;
Don't forget to update before the install.&lt;br /&gt;
 $ apt-get update&lt;br /&gt;
 $ apt-get install gcc-4.4-arm-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
g++ is available as well.&lt;br /&gt;
 $ apt-get install gobjc++-4.4-arm-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
Binaries and source:&lt;br /&gt;
&lt;br /&gt;
[https://launchpad.net/linaro-toolchain-binaries Linaro Toolchain Binaries]&lt;br /&gt;
&lt;br /&gt;
[https://launchpadlibrarian.net/98590974/README.txt Linaro README]&lt;br /&gt;
&lt;br /&gt;
[https://launchpad.net/gcc-arm-embedded GNU Tools for ARM Embedded Processors]&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Toolchain&amp;diff=5809</id>
		<title>Toolchain</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Toolchain&amp;diff=5809"/>
				<updated>2012-04-11T07:38:13Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you use Open Embedded you will find the toolchain in /path-to-overo-oe/tmp/sysroots/i686-linux/usr/armv7a.&lt;br /&gt;
&lt;br /&gt;
If you want the toolchain on its own without the weight of Open Embedded there are several options.&lt;br /&gt;
&lt;br /&gt;
Ubuntu:&lt;br /&gt;
&lt;br /&gt;
The toolchain is already in the Ubuntu 11.04 repository.&lt;br /&gt;
 $ sudo apt-get install gcc-arm-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
Debian:&lt;br /&gt;
&lt;br /&gt;
Emdebian provide the toolchain in their Debian repository.  Add the following line to your sources.list file.&lt;br /&gt;
 deb http://www.emdebian.org/debian/ squeeze main&lt;br /&gt;
&lt;br /&gt;
Don't forget to update before the install.&lt;br /&gt;
 $ sudo apt-get update&lt;br /&gt;
 $ sudo apt-get install gcc-4.4-arm-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
g++ is available as well.&lt;br /&gt;
 $ sudo apt-get install gobjc++-4.4-arm-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
Binaries and source:&lt;br /&gt;
&lt;br /&gt;
[https://launchpad.net/linaro-toolchain-binaries Linaro Toolchain Binaries]&lt;br /&gt;
&lt;br /&gt;
[https://launchpadlibrarian.net/98590974/README.txt Linaro README]&lt;br /&gt;
&lt;br /&gt;
[https://launchpad.net/gcc-arm-embedded GNU Tools for ARM Embedded Processors]&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=5808</id>
		<title>Kernel Build</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Kernel_Build&amp;diff=5808"/>
				<updated>2012-04-11T07:34:23Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: Created page with &amp;quot;11 April 2012  This wiki entry explains how to build the Gumstix Linux kernel from source.  Start by installing the [http://wiki.gumstix.org/index.php?title=Toolchain toolchain]....&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;11 April 2012&lt;br /&gt;
&lt;br /&gt;
This wiki entry explains how to build the Gumstix Linux kernel from source.&lt;br /&gt;
&lt;br /&gt;
Start by installing the [http://wiki.gumstix.org/index.php?title=Toolchain toolchain].&lt;br /&gt;
&lt;br /&gt;
You will also need the U-boot 'mkimage' utility.  Debian and Ubuntu users can install it from their respective repositories.  It's also compiled when U-boot is built if you can't get it otherwise.  On top of that you will need 'git' and 'make'.&lt;br /&gt;
 $ sudo apt-get install uboot-mkimage git make&lt;br /&gt;
&lt;br /&gt;
Next we need to get the patched kernel source that's available at www.sakoman.com.&lt;br /&gt;
You can browse Sakoman's git repository [http://www.sakoman.com/cgi-bin/gitweb.cgi?p=linux-omap-2.6.git;a=summary here].&lt;br /&gt;
&lt;br /&gt;
Decide where you want your kernel source to go an move to that directory.  Then use git to download it.&lt;br /&gt;
 $ git clone git://www.sakoman.com/git/linux-omap-2.6 linux -b omap-3.2&lt;br /&gt;
&lt;br /&gt;
The above command pulls down the omap-3.2 branch.  The omap-2.6.38 branch has proved stable for those who want to use Xenomai.  Once the above process is complete move into the new directory.  The first thing to do is to create a .config file.&lt;br /&gt;
 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- omap3_defconfig (or maybe omap2plus_defconfig)&lt;br /&gt;
&lt;br /&gt;
If you need to configure the kernel:&lt;br /&gt;
 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig&lt;br /&gt;
&lt;br /&gt;
And now for the main kernel build.&lt;br /&gt;
 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage -j4&lt;br /&gt;
&lt;br /&gt;
When the above completes, uImage can be found in arch/arm/boot/&lt;br /&gt;
&lt;br /&gt;
Build the kernel modules.&lt;br /&gt;
 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules -j4&lt;br /&gt;
&lt;br /&gt;
To install your kernel modules into your root file system:&lt;br /&gt;
 $ make ARCH=arm modules_install INSTALL_MOD_PATH=/path-to-your-rootfs/&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Main_Page&amp;diff=5807</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Main_Page&amp;diff=5807"/>
				<updated>2012-04-11T06:38:45Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;''Welcome to the Gumstix User Wiki''&amp;lt;/big&amp;gt;     &lt;br /&gt;
&lt;br /&gt;
This site is provided so that users of the Gumstix OpenEmbedded build system can share their knowledge, showcase their Gumstix-based projects, and pass on links to other sources of information and materials.  This information is entirely user generated and supported.  Please contribute your know-how to help your fellow developers.&lt;br /&gt;
&lt;br /&gt;
  '''Customer additions and edits are encouraged, but please read the help page before you make any major edits.'''&lt;br /&gt;
  ''Note:  you will need to create a new user account if you would like to contribute or edit content on this site.''&lt;br /&gt;
&lt;br /&gt;
Go to the [http://gumstix.org Gumstix Developer's website] for official Gumstix supported documentation on OpenEmbedded and other information of interest to developers:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
{|cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa;border:1px solid #bcc&amp;quot;&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:How-tos |User how to's - Focus]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:How-tos |User how to's]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:How-tos |User how to's]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:How-tos |User how to's]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:How-tos |User how to's]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[:Category:how to - Android|Android]]&lt;br /&gt;
* [[:Category:how to - eclipse|Eclipse]]&lt;br /&gt;
* [[:Category:How_to_-_Migrate_to_Gumstix|Migrate to Gumstix]]&lt;br /&gt;
* [[Linaro]]&lt;br /&gt;
* [[:Category:how to - Ubuntu|Ubuntu]]&lt;br /&gt;
* [[:Category:how to - Debian|Debian]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[1-wire|1-wire]]&lt;br /&gt;
* [[:Category:how to - audio|Audio]]&lt;br /&gt;
* [[:Category:how to - adc|ADC]]&lt;br /&gt;
* [[AutoLogin|Automatic Logins]]&lt;br /&gt;
* [[:Category:how to - batteries|Batteries]]&lt;br /&gt;
* [[:Category:how to - bluetooth|Bluetooth]]&lt;br /&gt;
* [[:Category:how to - Buildroot overo|Buildroot (overo)]]&lt;br /&gt;
* [[:Category:Connect_hardware|Connect Hardware]]&lt;br /&gt;
* [[Caspa_camera_boards|Caspa camera boards]]&lt;br /&gt;
* [[:Category:how to - displays|Displays]]&lt;br /&gt;
* [[:Category:how to - DSP|DSP]]&lt;br /&gt;
* [[:Category:how_to_-_ethernet|Ethernet]]&lt;br /&gt;
* [[:Category:how_to_-_expansion_boards|Expansion Boards]]&lt;br /&gt;
* [[:Category:how to - fedora|Fedora]]&lt;br /&gt;
* [[:Category:how to - Fast Boot|Fast Boot]]&lt;br /&gt;
* [[:Category:how to - Fortran|Fortran]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Gaining Console Connection via Terminal]]&lt;br /&gt;
* [[:Category:how to - git|Git]]&lt;br /&gt;
* [[GPIO|GPIO]]&lt;br /&gt;
* [[GPS|GPS]]&lt;br /&gt;
* [[:Category:how to - gui|GUI]]&lt;br /&gt;
* [[:Category:how to - general|General]]&lt;br /&gt;
* [[:Category:how to - Build helloworld|HelloWorld]]&lt;br /&gt;
* [[HelloWorld|HelloWorld in Python, C, C++]]&lt;br /&gt;
* [[HelloWorld in Java|HelloWorld in Java]]&lt;br /&gt;
* [[:Category:how to - i2c|I2C]]&lt;br /&gt;
* [[:Category:how to - IMU|IMU]]&lt;br /&gt;
* [[:Category:how to - JAVA|JAVA]]&lt;br /&gt;
* [[Kernel Build]]&lt;br /&gt;
* [[Kernel Reconfiguration|Kernel Reconfiguration]]&lt;br /&gt;
* [[:Category:how to - Known Issues|Known Issues]]&lt;br /&gt;
* [[:Category:how to - LCD|LCD]]&lt;br /&gt;
* [[:Category:how to - Low Power|Low Power]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[:Category:how to - linux|Linux]]&lt;br /&gt;
* [[AudioIn | Use a microphone]]&lt;br /&gt;
* [[MicroSd |MicroSD Duplication]]&lt;br /&gt;
* [[:Category:how to - Network_Boot|Network Boot]]&lt;br /&gt;
* [[:Category:how to - OpenEmbedded|OpenEmbedded]]&lt;br /&gt;
* [[:Category:how to - player|Player]]&lt;br /&gt;
* [[:Category:How to - PWM|PWM]]&lt;br /&gt;
* [[:Category:How_to_-_qemu|Qemu]]&lt;br /&gt;
* [[:Category:How_to_-_Qt|Qt]]&lt;br /&gt;
* [[:Category:how to - robotics|Robotics]]&lt;br /&gt;
* [[ROS|ROS]]&lt;br /&gt;
* [[RoboVero|RoboVero]]&lt;br /&gt;
* [[:Category:how to - security|Security]]&lt;br /&gt;
* [[:Category:SPI|SPI]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[:Category:SUSE|SUSE]]&lt;br /&gt;
* [[Remote Debugging with GDB|Remote Debugging with GDB]]&lt;br /&gt;
* [[Toolchain]]&lt;br /&gt;
* [[U-Boot|UBoot]]&lt;br /&gt;
* [[:Category:how to - usb|USB]]&lt;br /&gt;
* [[Verdex Git Repository]]&lt;br /&gt;
* [[Verdex JTAG]]&lt;br /&gt;
* [[VerdexPro U-Boot Flashing Fix]]&lt;br /&gt;
* [[:Category:how to - virtual machine|Virtual Machine]]&lt;br /&gt;
* [[:Category:how to - webcams|Webcams]]&lt;br /&gt;
* [[:Category:how to - wifi|Wifi]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
{|cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa;border:1px solid #bcc&amp;quot;&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:projects|User projects]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:User_pics_videos|User Pics &amp;amp; Videos]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:resources|Resources]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:faqs|Questions and Answers]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[:Category:projects - audio|Audio]]&lt;br /&gt;
* [[:Category:projects - competitions|Competitions]]&lt;br /&gt;
* [[:Category:projects - displays|Displays]]&lt;br /&gt;
* [[:Category:projects - pdas|PDA's]]&lt;br /&gt;
* [[:Category:Projects_-Research_and_Education|Research &amp;amp; Education]]&lt;br /&gt;
* [[:Category:projects - monitoring and control|Monitoring and Control]]&lt;br /&gt;
* [[:Category:projects - robotics|Robotics &amp;amp; UAV's]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [http://www.youtube.com/results?uploaded=m&amp;amp;search_query=gumstix&amp;amp;search_type=videos&amp;amp;suggested_categories=28&amp;amp;uni=3&amp;amp;search_sort=video_date_uploaded Gumstix on Youtube]&lt;br /&gt;
* [http://www.flickr.com/search/?q=gumstix&amp;amp;s=rec Gumstix in Flickr]&lt;br /&gt;
* [http://www.cs.umd.edu/alandaluz/nchen/ebook/dualdisp-chi.mov Dual Display device at UMD]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Windows CE solution|Solutions for Windows CE]]&lt;br /&gt;
* [[Qt solution|Solutions for Qt]]&lt;br /&gt;
* [[Manufacturer's specifications|Specifications for Processors &amp;amp; Components]]&lt;br /&gt;
* [[Software information]]&lt;br /&gt;
* [[Supported hardware]]&lt;br /&gt;
* [[Third Party Boards]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Gumstix Community Mailing List (no cost)&lt;br /&gt;
* [https://lists.sourceforge.net/lists/listinfo/gumstix-users Sign-up]&lt;br /&gt;
* [http://old.nabble.com/Gumstix-f22543.html Archives]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For information and support for the legacy gumstix buildroot build system:&lt;br /&gt;
[http://docwiki.gumstix.com/Main_Page docwiki.gumstix.com]&lt;br /&gt;
.&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Toolchain&amp;diff=5806</id>
		<title>Toolchain</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Toolchain&amp;diff=5806"/>
				<updated>2012-04-11T02:15:35Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: Created page with &amp;quot;If you use Open Embedded you will find the toolchain in /path-to-overo-oe/tmp/sysroots/i686-linux/usr/armv7a.  If you want the toolchain on its own without the weight of Open Emb...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;If you use Open Embedded you will find the toolchain in /path-to-overo-oe/tmp/sysroots/i686-linux/usr/armv7a.&lt;br /&gt;
&lt;br /&gt;
If you want the toolchain on its own without the weight of Open Embedded there are several options.&lt;br /&gt;
&lt;br /&gt;
Ubuntu:&lt;br /&gt;
&lt;br /&gt;
The toolchain is already in the Ubuntu 11.04 repository.&lt;br /&gt;
 $ sudo apt-get install gcc-arm-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
Debian:&lt;br /&gt;
&lt;br /&gt;
Emdebian provide the toolchain in their Debian repository.  Add the following line to your sources.list file.&lt;br /&gt;
 deb http://www.emdebian.org/debian/ squeeze main&lt;br /&gt;
&lt;br /&gt;
Don't forget to update before the install.&lt;br /&gt;
 $ apt-get update&lt;br /&gt;
 $ apt-get install gcc-4.4-arm-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
g++ is available as well.&lt;br /&gt;
 $ apt-get install gobjc++-4.4-arm-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
Binaries and source:&lt;br /&gt;
&lt;br /&gt;
[https://launchpad.net/linaro-toolchain-binaries Linaro Toolchain Binaries]&lt;br /&gt;
&lt;br /&gt;
[https://launchpadlibrarian.net/98590974/README.txt Linaro README]&lt;br /&gt;
&lt;br /&gt;
[https://launchpad.net/gcc-arm-embedded GNU Tools for ARM Embedded Processors]&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Main_Page&amp;diff=5805</id>
		<title>Main Page</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Main_Page&amp;diff=5805"/>
				<updated>2012-04-11T01:36:54Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;big&amp;gt;''Welcome to the Gumstix User Wiki''&amp;lt;/big&amp;gt;     &lt;br /&gt;
&lt;br /&gt;
This site is provided so that users of the Gumstix OpenEmbedded build system can share their knowledge, showcase their Gumstix-based projects, and pass on links to other sources of information and materials.  This information is entirely user generated and supported.  Please contribute your know-how to help your fellow developers.&lt;br /&gt;
&lt;br /&gt;
  '''Customer additions and edits are encouraged, but please read the help page before you make any major edits.'''&lt;br /&gt;
  ''Note:  you will need to create a new user account if you would like to contribute or edit content on this site.''&lt;br /&gt;
&lt;br /&gt;
Go to the [http://gumstix.org Gumstix Developer's website] for official Gumstix supported documentation on OpenEmbedded and other information of interest to developers:&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
{|cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa;border:1px solid #bcc&amp;quot;&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:How-tos |User how to's - Focus]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:How-tos |User how to's]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:How-tos |User how to's]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:How-tos |User how to's]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:How-tos |User how to's]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[:Category:how to - Android|Android]]&lt;br /&gt;
* [[:Category:how to - eclipse|Eclipse]]&lt;br /&gt;
* [[:Category:How_to_-_Migrate_to_Gumstix|Migrate to Gumstix]]&lt;br /&gt;
* [[Linaro]]&lt;br /&gt;
* [[:Category:how to - Ubuntu|Ubuntu]]&lt;br /&gt;
* [[:Category:how to - Debian|Debian]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[1-wire|1-wire]]&lt;br /&gt;
* [[:Category:how to - audio|Audio]]&lt;br /&gt;
* [[:Category:how to - adc|ADC]]&lt;br /&gt;
* [[AutoLogin|Automatic Logins]]&lt;br /&gt;
* [[:Category:how to - batteries|Batteries]]&lt;br /&gt;
* [[:Category:how to - bluetooth|Bluetooth]]&lt;br /&gt;
* [[:Category:how to - Buildroot overo|Buildroot (overo)]]&lt;br /&gt;
* [[:Category:Connect_hardware|Connect Hardware]]&lt;br /&gt;
* [[Caspa_camera_boards|Caspa camera boards]]&lt;br /&gt;
* [[:Category:how to - displays|Displays]]&lt;br /&gt;
* [[:Category:how to - DSP|DSP]]&lt;br /&gt;
* [[:Category:how_to_-_ethernet|Ethernet]]&lt;br /&gt;
* [[:Category:how_to_-_expansion_boards|Expansion Boards]]&lt;br /&gt;
* [[:Category:how to - fedora|Fedora]]&lt;br /&gt;
* [[:Category:how to - Fast Boot|Fast Boot]]&lt;br /&gt;
* [[:Category:how to - Fortran|Fortran]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Gaining Console Connection via Terminal]]&lt;br /&gt;
* [[:Category:how to - git|Git]]&lt;br /&gt;
* [[GPIO|GPIO]]&lt;br /&gt;
* [[GPS|GPS]]&lt;br /&gt;
* [[:Category:how to - gui|GUI]]&lt;br /&gt;
* [[:Category:how to - general|General]]&lt;br /&gt;
* [[:Category:how to - Build helloworld|HelloWorld]]&lt;br /&gt;
* [[HelloWorld|HelloWorld in Python, C, C++]]&lt;br /&gt;
* [[HelloWorld in Java|HelloWorld in Java]]&lt;br /&gt;
* [[:Category:how to - i2c|I2C]]&lt;br /&gt;
* [[:Category:how to - IMU|IMU]]&lt;br /&gt;
* [[:Category:how to - JAVA|JAVA]]&lt;br /&gt;
* [[Kernel Reconfiguration|Kernel Reconfiguration]]&lt;br /&gt;
* [[:Category:how to - Known Issues|Known Issues]]&lt;br /&gt;
* [[:Category:how to - LCD|LCD]]&lt;br /&gt;
* [[:Category:how to - Low Power|Low Power]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[:Category:how to - linux|Linux]]&lt;br /&gt;
* [[AudioIn | Use a microphone]]&lt;br /&gt;
* [[MicroSd |MicroSD Duplication]]&lt;br /&gt;
* [[:Category:how to - Network_Boot|Network Boot]]&lt;br /&gt;
* [[:Category:how to - OpenEmbedded|OpenEmbedded]]&lt;br /&gt;
* [[:Category:how to - player|Player]]&lt;br /&gt;
* [[:Category:How to - PWM|PWM]]&lt;br /&gt;
* [[:Category:How_to_-_qemu|Qemu]]&lt;br /&gt;
* [[:Category:How_to_-_Qt|Qt]]&lt;br /&gt;
* [[:Category:how to - robotics|Robotics]]&lt;br /&gt;
* [[ROS|ROS]]&lt;br /&gt;
* [[RoboVero|RoboVero]]&lt;br /&gt;
* [[:Category:how to - security|Security]]&lt;br /&gt;
* [[:Category:SPI|SPI]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[:Category:SUSE|SUSE]]&lt;br /&gt;
* [[Remote Debugging with GDB|Remote Debugging with GDB]]&lt;br /&gt;
* [[Toolchain]]&lt;br /&gt;
* [[U-Boot|UBoot]]&lt;br /&gt;
* [[:Category:how to - usb|USB]]&lt;br /&gt;
* [[Verdex Git Repository]]&lt;br /&gt;
* [[Verdex JTAG]]&lt;br /&gt;
* [[VerdexPro U-Boot Flashing Fix]]&lt;br /&gt;
* [[:Category:how to - virtual machine|Virtual Machine]]&lt;br /&gt;
* [[:Category:how to - webcams|Webcams]]&lt;br /&gt;
* [[:Category:how to - wifi|Wifi]]&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
{|cellpadding=&amp;quot;2&amp;quot; cellspacing=&amp;quot;5&amp;quot; style=&amp;quot;vertical-align:top;background-color:#f5fffa;border:1px solid #bcc&amp;quot;&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:projects|User projects]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:User_pics_videos|User Pics &amp;amp; Videos]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:resources|Resources]]&lt;br /&gt;
! style=&amp;quot;margin:0;background:#cef2e0;font-size:120%;font-weight:bold;border:1px solid #a3b0bf;text-align:left;color:#000;padding:0.2em 0.4em;&amp;quot; | [[:Category:faqs|Questions and Answers]]&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[:Category:projects - audio|Audio]]&lt;br /&gt;
* [[:Category:projects - competitions|Competitions]]&lt;br /&gt;
* [[:Category:projects - displays|Displays]]&lt;br /&gt;
* [[:Category:projects - pdas|PDA's]]&lt;br /&gt;
* [[:Category:Projects_-Research_and_Education|Research &amp;amp; Education]]&lt;br /&gt;
* [[:Category:projects - monitoring and control|Monitoring and Control]]&lt;br /&gt;
* [[:Category:projects - robotics|Robotics &amp;amp; UAV's]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [http://www.youtube.com/results?uploaded=m&amp;amp;search_query=gumstix&amp;amp;search_type=videos&amp;amp;suggested_categories=28&amp;amp;uni=3&amp;amp;search_sort=video_date_uploaded Gumstix on Youtube]&lt;br /&gt;
* [http://www.flickr.com/search/?q=gumstix&amp;amp;s=rec Gumstix in Flickr]&lt;br /&gt;
* [http://www.cs.umd.edu/alandaluz/nchen/ebook/dualdisp-chi.mov Dual Display device at UMD]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
* [[Windows CE solution|Solutions for Windows CE]]&lt;br /&gt;
* [[Qt solution|Solutions for Qt]]&lt;br /&gt;
* [[Manufacturer's specifications|Specifications for Processors &amp;amp; Components]]&lt;br /&gt;
* [[Software information]]&lt;br /&gt;
* [[Supported hardware]]&lt;br /&gt;
* [[Third Party Boards]]&lt;br /&gt;
| valign=&amp;quot;top&amp;quot; |&lt;br /&gt;
Gumstix Community Mailing List (no cost)&lt;br /&gt;
* [https://lists.sourceforge.net/lists/listinfo/gumstix-users Sign-up]&lt;br /&gt;
* [http://old.nabble.com/Gumstix-f22543.html Archives]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For information and support for the legacy gumstix buildroot build system:&lt;br /&gt;
[http://docwiki.gumstix.com/Main_Page docwiki.gumstix.com]&lt;br /&gt;
.&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5784</id>
		<title>Debian Root File System</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5784"/>
				<updated>2012-03-08T07:33:30Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Embedded Linux has always been constrained by available memory, cut-down distributions such as Angstrom and EmDebian have addressed those constraints.  Debian is a stable, full featured distribution that has a very large repository of packages. With the generous amount of memory available on a micro SD card there's no reason not to use it.&lt;br /&gt;
&lt;br /&gt;
This how-to describes the procedure to build a Debian root file system for a micro SD card.  Gumstix's how-to on creating a bootable micro SD card can be found [http://gumstix.org/create-a-bootable-microsd-card.html here].  We'll follow the same procedure but will substitute our Debian root file system for the Gumstix Angstrom one.&lt;br /&gt;
&lt;br /&gt;
Start by creating some working directories in some place convenient:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir images&lt;br /&gt;
 $ mkdir debian&lt;br /&gt;
&lt;br /&gt;
Now Download some required images from the [http://cumulus.gumstix.org/images/angstrom/developer/ Gumstix repository].  This includes the bootloaders MLO and u-boot.bin.  We also need uImage, the Linux kernel.  Put them in the 'images' directory. &lt;br /&gt;
&lt;br /&gt;
On top of that we need the Angstrom file system.  There are several to chose from, don't use any with 'nand' in the name.  The one you want will be called something like, omap3-console-image-overo.tar.bz2.  We'll pilfer the kernel modules from this tarball along with some important configuration files.  We can, or course, build our own kernel and modules, but this way will prove to be quick and easy.&lt;br /&gt;
&lt;br /&gt;
Create a directory to extract the downloaded file system and then untar it.&lt;br /&gt;
 $ cd /your-path-to/images&lt;br /&gt;
 $ mkdir angstrom&lt;br /&gt;
 $ cd angstrom&lt;br /&gt;
 $ tar xjvf ../omap3-console-image-overo.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Leave this for now, we'll get back to it later.&lt;br /&gt;
&lt;br /&gt;
 $ cd ../../debian&lt;br /&gt;
&lt;br /&gt;
The Debian root file system is built with 'debootstrap'.  Install it onto your host machine with apt-get, along with 'qemu-arm-static' (qemu-user-static on Debian):&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install debootstrap qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
Once these are installed run the following:&lt;br /&gt;
&lt;br /&gt;
 $ sudo debootstrap --foreign --verbose --arch=armel --include=vim-nox,openssh-server,ntpdate,less --exclude=nano squeeze ./squeeze http://ftp.au.debian.org/debian&lt;br /&gt;
&lt;br /&gt;
The --include and --exclude packages are optional.  I prefer vim to the standard vim-tiny, vim-nox is the non-gui version.  I don't use nano so I've excluded it from the build.  The above command will download the packages required to create a basic squeeze root file system in a directory called squeeze.  You can use a closer Debian mirror rather than the one that I've used in the above example.&lt;br /&gt;
&lt;br /&gt;
Now we chroot into our newly created file system to finish off.  But the packages in the new file system are for the arm architecture so we need an emulator.  We installed it earlier, copy the relevant file:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/bin/qemu-arm-static squeeze/usr/bin&lt;br /&gt;
&lt;br /&gt;
Now chroot into our new file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo chroot squeeze&lt;br /&gt;
&lt;br /&gt;
Chroot has trapped us in our new root file system, isolating us from the file system of the host computer.  You will see a directory named debootstrap.  Go to it:&lt;br /&gt;
&lt;br /&gt;
 $ cd debootstrap&lt;br /&gt;
&lt;br /&gt;
Finish off the installation:&lt;br /&gt;
&lt;br /&gt;
 $ ./debootstap --second-stage&lt;br /&gt;
&lt;br /&gt;
The above command will install all the Debian packages into our file system.&lt;br /&gt;
&lt;br /&gt;
We now need to create a password for the root user or we'll have a system that we can't log into:&lt;br /&gt;
&lt;br /&gt;
 $ passwd&lt;br /&gt;
&lt;br /&gt;
Delete the .deb packages now that we've installed them:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get clean&lt;br /&gt;
&lt;br /&gt;
With that done we can exit:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
Our root file system needs kernel modules.  You'll find a directory under /your-path-to/images/angstrom/lib/modules with a name that reflects the kernel version.  In this example it's '3.0.0'.  Copy the whole directory to the new Debian file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp -r ../images/angstrom/lib/modules/3.0.0/   squeeze/lib/modules/&lt;br /&gt;
&lt;br /&gt;
We also need the fstab and inittab configuration files from Angstrom:&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp ../images/angstrom/etc/inittab  squeeze/etc&lt;br /&gt;
 $ sudo cp ../images/angstrom/etc/fstab  squeeze/etc&lt;br /&gt;
&lt;br /&gt;
If fstab is wrong then our new Debian system won't boot properly.&lt;br /&gt;
&lt;br /&gt;
If inittab is wrong then we won't get a console login prompt, we'll get an error along the lines of &amp;quot;init: Id 'x' respawning too fast: disabled for 5 minutes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can also copy the interfaces file:&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp ../images/angstrom/etc/network/interfaces  squeeze/etc/network/&lt;br /&gt;
&lt;br /&gt;
Edit the newly copied file and change eth0 to eth1.&lt;br /&gt;
&lt;br /&gt;
Now go to the root directory of your Debian file system:&lt;br /&gt;
&lt;br /&gt;
 $ cd squeeze&lt;br /&gt;
&lt;br /&gt;
And tar it up:&lt;br /&gt;
&lt;br /&gt;
 $ sudo tar -cjvf ../squeeze.tar.bz2 *&lt;br /&gt;
&lt;br /&gt;
Create a bootable micro SD card following the Gumstix tutorial found [http://gumstix.org/create-a-bootable-microsd-card.html here], but use the above squeeze.tar.bz2 in place of roofs.tar.bz2.&lt;br /&gt;
&lt;br /&gt;
You now have a bootable Debian micro SD card. Put it in your Gumstix COM and boot it up.  If all goes well you should get a logon prompt at the console.&lt;br /&gt;
&lt;br /&gt;
There are still a couple of things left to do.  The kernel module dependencies need to be set up.  On your new Debian install go to the modules directory:&lt;br /&gt;
&lt;br /&gt;
 $ cd /lib/modules/3.0.0&lt;br /&gt;
 $ depmod&lt;br /&gt;
&lt;br /&gt;
The above command will build the modules dependencies files.  When you reboot, the kernel will find its modules and use them.&lt;br /&gt;
&lt;br /&gt;
If you have wifi on your COM you'll have to install some more software.  But first we need to put something in /etc/apt/sources.list.&lt;br /&gt;
&lt;br /&gt;
 $ vi /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Put in something like the following, replace with your closest mirror. Make sure you include the 'non-free' repositories:&lt;br /&gt;
&lt;br /&gt;
 deb http://ftp.iinet.net.au/debian/debian squeeze main non-free&lt;br /&gt;
&lt;br /&gt;
 $ apt-get update&lt;br /&gt;
&lt;br /&gt;
Install wifi packages.&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install wireless-tools libertas-firmware&lt;br /&gt;
&lt;br /&gt;
There's a wifi howto at the Gumstix wiki [http://wiki.gumstix.org/index.php?title=Overo_Wifi here].&lt;br /&gt;
&lt;br /&gt;
I like to edit the vimrc configuration file and un-comment the lines to enable syntax highlighting and mouse.  It's at /etc/vim/vimrc.&lt;br /&gt;
&lt;br /&gt;
You might also want to edit /etc/hostname.&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5783</id>
		<title>Debian Root File System</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5783"/>
				<updated>2012-03-08T07:28:37Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Embedded Linux has always been constrained by available memory, cut-down distributions such as Angstrom and EmDebian have addressed those constraints.  Debian is a stable, full featured distribution that has a very large repository of packages. With the generous amount of memory available on a micro SD card there's no reason not to use it.&lt;br /&gt;
&lt;br /&gt;
This how-to describes the procedure to build a Debian root file system for a micro SD card.  Gumstix's how-to on creating a bootable micro SD card can be found [http://gumstix.org/create-a-bootable-microsd-card.html here].  We'll follow the same procedure but will substitute our Debian root file system for the Gumstix Angstrom one.&lt;br /&gt;
&lt;br /&gt;
Start by creating some working directories in some place convenient:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir images&lt;br /&gt;
 $ mkdir debian&lt;br /&gt;
&lt;br /&gt;
Now Download some required images from the [http://cumulus.gumstix.org/images/angstrom/developer/ Gumstix repository].  This includes the bootloaders MLO and u-boot.bin.  We also need uImage, the Linux kernel.  Put them in the 'images' directory. &lt;br /&gt;
&lt;br /&gt;
On top of that we need the Angstrom file system.  There are several to chose from, don't use any with 'nand' in the name.  The one you want will be called something like, omap3-console-image-overo.tar.bz2.  We'll pilfer the kernel modules from this tarball along with some important configuration files.  We can, or course, build our own kernel and modules, but this way will prove to be quick and easy.&lt;br /&gt;
&lt;br /&gt;
Create a directory to extract the downloaded file system and then untar it.&lt;br /&gt;
 $ cd /your-path-to/images&lt;br /&gt;
 $ mkdir angstrom&lt;br /&gt;
 $ cd angstrom&lt;br /&gt;
 $ tar xjvf ../omap3-console-image-overo.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Leave this for now, we'll get back to it later.&lt;br /&gt;
&lt;br /&gt;
 $ cd ../../debian&lt;br /&gt;
&lt;br /&gt;
The Debian root file system is built with 'debootstrap'.  Install it onto your host machine with apt-get, along with 'qemu-arm-static' (qemu-user-static on Debian):&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install debootstrap qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
Once these are installed run the following:&lt;br /&gt;
&lt;br /&gt;
 $ sudo debootstrap --foreign --verbose --arch=armel --include=vim-nox,openssh-server,ntpdate,less --exclude=nano squeeze ./squeeze http://ftp.au.debian.org/debian&lt;br /&gt;
&lt;br /&gt;
The --include and --exclude packages are optional.  I prefer vim to the standard vim-tiny, vim-nox is the non-gui version.  I don't use nano so I've excluded it from the build.  The above command will download the packages required to create a basic squeeze root file system in a directory called squeeze.  You can use a closer Debian mirror rather than the one that I've used in the above example.&lt;br /&gt;
&lt;br /&gt;
Now we chroot into our newly created file system to finish off.  But the packages in the new file system are for the arm architecture so we need an emulator.  We installed it earlier, copy the relevant file:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/bin/qemu-arm-static squeeze/usr/bin&lt;br /&gt;
&lt;br /&gt;
Now chroot into our new file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo chroot squeeze&lt;br /&gt;
&lt;br /&gt;
Chroot has trapped us in our new root file system, isolating us from the file system of the host computer.  You will see a directory named debootstrap.  Go to it:&lt;br /&gt;
&lt;br /&gt;
 $ cd debootstrap&lt;br /&gt;
&lt;br /&gt;
Finish off the installation:&lt;br /&gt;
&lt;br /&gt;
 $ ./debootstap --second-stage&lt;br /&gt;
&lt;br /&gt;
The above command will install all the Debian packages into our file system.&lt;br /&gt;
&lt;br /&gt;
We now need to create a password for the root user or we'll have a system that we can't log into:&lt;br /&gt;
&lt;br /&gt;
 $ passwd&lt;br /&gt;
&lt;br /&gt;
Delete the .deb packages now that we've installed them:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get clean&lt;br /&gt;
&lt;br /&gt;
With that done we can exit:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
Our root file system needs kernel modules.  You'll find a directory under /your-path-to/images/angstrom/lib/modules with a name that reflects the kernel version.  In this example it's '3.0.0'.  Copy the whole directory to the new Debian file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp -r ../images/angstrom/lib/modules/3.0.0/   squeeze/lib/modules/&lt;br /&gt;
&lt;br /&gt;
We also need the fstab and inittab configuration files from Angstrom:&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp ../images/angstrom/etc/inittab  squeeze/etc&lt;br /&gt;
 $ sudo cp ../images/angstrom/etc/fstab  squeeze/etc&lt;br /&gt;
&lt;br /&gt;
If fstab is wrong then our new Debian system won't boot properly.&lt;br /&gt;
&lt;br /&gt;
If inittab is wrong then we won't get a console login prompt, we'll get an error along the lines of &amp;quot;init: Id 'x' respawning too fast: disabled for 5 minutes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can also copy the interfaces file:&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp ../images/angstrom/etc/network/interfaces  squeeze/etc/network/&lt;br /&gt;
&lt;br /&gt;
Edit the newly copied file and change eth0 to eth1.&lt;br /&gt;
&lt;br /&gt;
Now go to the root directory of your Debian file system:&lt;br /&gt;
&lt;br /&gt;
 $ cd squeeze&lt;br /&gt;
&lt;br /&gt;
And tar it up:&lt;br /&gt;
&lt;br /&gt;
 $ sudo tar -cjvf ../squeeze.tar.bz2 *&lt;br /&gt;
&lt;br /&gt;
Create a bootable micro SD card following the Gumstix tutorial found [http://gumstix.org/create-a-bootable-microsd-card.html here], but use the above squeeze.tar.bz2 in place of roofs.tar.bz2.&lt;br /&gt;
&lt;br /&gt;
Put the SD card in your Gumstix COM and boot it up.  If all goes well you should get a logon prompt at the console.&lt;br /&gt;
&lt;br /&gt;
There are still a couple of things left to do.  The kernel module dependencies need to be set up.  On your new Debian install go to the modules directory:&lt;br /&gt;
&lt;br /&gt;
 $ cd /lib/modules/3.0.0&lt;br /&gt;
 $ depmod&lt;br /&gt;
&lt;br /&gt;
The above command will build the modules dependencies files.  When you reboot, the kernel will find its modules and use them.&lt;br /&gt;
&lt;br /&gt;
If you have wifi on your COM you'll have to install some more software.  But first we need to put something in /etc/apt/sources.list.&lt;br /&gt;
&lt;br /&gt;
 $ vi /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Put in something like the following, replace with your closest mirror. Make sure you include the 'non-free' repositories:&lt;br /&gt;
&lt;br /&gt;
 deb http://ftp.iinet.net.au/debian/debian squeeze main non-free&lt;br /&gt;
&lt;br /&gt;
 $ apt-get update&lt;br /&gt;
&lt;br /&gt;
Install wifi packages.&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install wireless-tools libertas-firmware&lt;br /&gt;
&lt;br /&gt;
There's a wifi howto at the Gumstix wiki [http://wiki.gumstix.org/index.php?title=Overo_Wifi here].&lt;br /&gt;
&lt;br /&gt;
I like to edit the vimrc configuration file and un-comment the lines to enable syntax highlighting and mouse.  It's at /etc/vim/vimrc.&lt;br /&gt;
&lt;br /&gt;
You might also want to edit /etc/hostname.&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5782</id>
		<title>Debian Root File System</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5782"/>
				<updated>2012-03-08T07:25:32Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Embedded Linux has always been constrained by available memory, cut-down distributions such as Angstrom and EmDebian have addressed those constraints.  Debian is a stable, full featured distribution that has a very large repository of packages. With the generous amount of memory available on a micro SD card there's no reason not to use it.&lt;br /&gt;
&lt;br /&gt;
This how-to describes the procedure to build a Debian root file system for a micro SD card.  Gumstix's how-to on creating a bootable micro SD card can be found [http://gumstix.org/create-a-bootable-microsd-card.html here].  We'll follow the same procedure but will substitute our Debian root file system for the Gumstix Angstrom one.&lt;br /&gt;
&lt;br /&gt;
Start by creating some working directories in some place convenient:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir images&lt;br /&gt;
 $ mkdir debian&lt;br /&gt;
&lt;br /&gt;
Now Download some required images from the [http://cumulus.gumstix.org/images/angstrom/developer/ Gumstix repository].  This includes the bootloaders MLO and u-boot.bin.  We also need uImage, the Linux kernel.  Put them in the 'images' directory. &lt;br /&gt;
&lt;br /&gt;
On top of that we need the Angstrom file system.  There are several to chose from, don't use any with 'nand' in the name.  The one you want will be called something like, omap3-console-image-overo.tar.bz2.  We'll pilfer the kernel modules from this tarball along with some important configuration files.  We can, or course, build our own kernel and modules, but this way will prove to be quick and easy.&lt;br /&gt;
&lt;br /&gt;
Create a directory to extract the downloaded file system and then untar it.&lt;br /&gt;
 $ cd /your-path-to/images&lt;br /&gt;
 $ mkdir angstrom&lt;br /&gt;
 $ cd angstrom&lt;br /&gt;
 $ tar xjvf ../omap3-console-image-overo.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Leave this for now, we'll get back to it later.&lt;br /&gt;
&lt;br /&gt;
 $ cd ../../debian&lt;br /&gt;
&lt;br /&gt;
The Debian root file system is built with 'debootstrap'.  Install it onto your host machine with apt-get, along with 'qemu-arm-static' (qemu-user-static on Debian):&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install debootstrap qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
Once these are installed run the following:&lt;br /&gt;
&lt;br /&gt;
 $ sudo debootstrap --foreign --verbose --arch=armel --include=vim-nox,openssh-server,ntpdate,less --exclude=nano squeeze ./squeeze http://ftp.au.debian.org/debian&lt;br /&gt;
&lt;br /&gt;
The --include and --exclude packages are optional.  I prefer vim to the standard vim-tiny, vim-nox is the non-gui version.  I don't use nano so I've excluded it from the build.  The above command will download the required packages and create a squeeze root file system in a directory called squeeze.  You can use a closer Debian mirror rather than the one that I've used in the above example.&lt;br /&gt;
&lt;br /&gt;
Now we chroot into our newly created file system to finish off.  But the packages in the new file system are for the arm architecture so we need an emulator.  We installed it earlier, copy the relevant file:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/bin/qemu-arm-static squeeze/usr/bin&lt;br /&gt;
&lt;br /&gt;
Now chroot into our new file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo chroot squeeze&lt;br /&gt;
&lt;br /&gt;
Chroot has trapped us in our new root file system, isolating us from the file system of the host computer.  You will see a directory named debootstrap.  Go to it:&lt;br /&gt;
&lt;br /&gt;
 $ cd debootstrap&lt;br /&gt;
&lt;br /&gt;
Finish off the installation:&lt;br /&gt;
&lt;br /&gt;
 $ ./debootstap --second-stage&lt;br /&gt;
&lt;br /&gt;
The above command will install all the Debian packages into our file system.&lt;br /&gt;
&lt;br /&gt;
We now need to create a password for the root user or we'll have a system that we can't log into:&lt;br /&gt;
&lt;br /&gt;
 $ passwd&lt;br /&gt;
&lt;br /&gt;
Delete the .deb packages now that we've installed them:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get clean&lt;br /&gt;
&lt;br /&gt;
With that done we can exit:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
Our root file system needs kernel modules.  You'll find a directory under /your-path-to/images/angstrom/lib/modules with a name that reflects the kernel version.  In this example it's '3.0.0'.  Copy the whole directory to the new Debian file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp -r ../images/angstrom/lib/modules/3.0.0/   squeeze/lib/modules/&lt;br /&gt;
&lt;br /&gt;
We also need the fstab and inittab configuration files from Angstrom:&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp ../images/angstrom/etc/inittab  squeeze/etc&lt;br /&gt;
 $ sudo cp ../images/angstrom/etc/fstab  squeeze/etc&lt;br /&gt;
&lt;br /&gt;
If fstab is wrong then our new Debian system won't boot properly.&lt;br /&gt;
&lt;br /&gt;
If inittab is wrong then we won't get a console login prompt, we'll get an error along the lines of &amp;quot;init: Id 'x' respawning too fast: disabled for 5 minutes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can also copy the interfaces file:&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp ../images/angstrom/etc/network/interfaces  squeeze/etc/network/&lt;br /&gt;
&lt;br /&gt;
Edit the newly copied file and change eth0 to eth1.&lt;br /&gt;
&lt;br /&gt;
Now go to the root directory of your Debian file system:&lt;br /&gt;
&lt;br /&gt;
 $ cd squeeze&lt;br /&gt;
&lt;br /&gt;
And tar it up:&lt;br /&gt;
&lt;br /&gt;
 $ sudo tar -cjvf ../squeeze.tar.bz2 *&lt;br /&gt;
&lt;br /&gt;
Create a bootable micro SD card following the Gumstix tutorial found [http://gumstix.org/create-a-bootable-microsd-card.html here], but use the above squeeze.tar.bz2 in place of roofs.tar.bz2.&lt;br /&gt;
&lt;br /&gt;
Put the SD card in your Gumstix COM and boot it up.  If all goes well you should get a logon prompt at the console.&lt;br /&gt;
&lt;br /&gt;
There are still a couple of things left to do.  The kernel module dependencies need to be set up.  On your new Debian install go to the modules directory:&lt;br /&gt;
&lt;br /&gt;
 $ cd /lib/modules/3.0.0&lt;br /&gt;
 $ depmod&lt;br /&gt;
&lt;br /&gt;
The above command will build the modules dependencies files.  When you reboot, the kernel will find its modules and use them.&lt;br /&gt;
&lt;br /&gt;
If you have wifi on your COM you'll have to install some more software.  But first we need to put something in /etc/apt/sources.list.&lt;br /&gt;
&lt;br /&gt;
 $ vi /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Put in something like the following, replace with your closest mirror. Make sure you include the 'non-free' repositories:&lt;br /&gt;
&lt;br /&gt;
 deb http://ftp.iinet.net.au/debian/debian squeeze main non-free&lt;br /&gt;
&lt;br /&gt;
 $ apt-get update&lt;br /&gt;
&lt;br /&gt;
Install wifi packages.&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install wireless-tools libertas-firmware&lt;br /&gt;
&lt;br /&gt;
There's a wifi howto at the Gumstix wiki [http://wiki.gumstix.org/index.php?title=Overo_Wifi here].&lt;br /&gt;
&lt;br /&gt;
I like to edit the vimrc configuration file and un-comment the lines to enable syntax highlighting and mouse.  It's at /etc/vim/vimrc.&lt;br /&gt;
&lt;br /&gt;
You might also want to edit /etc/hostname.&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5781</id>
		<title>Debian Root File System</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5781"/>
				<updated>2012-03-08T07:22:41Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Embedded Linux has always been constrained by available memory, cut-down distributions such as Angstrom and EmDebian have addressed those constraints.  Debian is a stable, full featured distribution that has a very large repository of packages. With the generous amount of memory available on a micro SD card there's no reason not to use it.&lt;br /&gt;
&lt;br /&gt;
This how-to describes the procedure to build a Debian root file system for a micro SD card.  Gumstix's how-to on creating a bootable micro SD card can be found [http://gumstix.org/create-a-bootable-microsd-card.html here].  We'll follow the same procedure but will substitute our Debian root file system for the Gumstix Angstrom one.&lt;br /&gt;
&lt;br /&gt;
Start by creating some working directories in some place convenient:&lt;br /&gt;
&lt;br /&gt;
 $ mkdir images&lt;br /&gt;
 $ mkdir debian&lt;br /&gt;
&lt;br /&gt;
Now Download some required images from the [http://cumulus.gumstix.org/images/angstrom/developer/ Gumstix repository].  This includes the bootloaders MLO and u-boot.bin.  We also need uImage, the Linux kernel.  Put them in the 'images' directory. &lt;br /&gt;
&lt;br /&gt;
On top of that we need the Angstrom file system.  There are several to chose from, don't use any with 'nand' in the name.  The one you want will be called something like, omap3-console-image-overo.tar.bz2.  We'll pilfer the kernel modules from this tarball along with some important configuration files.  We can, or course, build our own kernel and modules, but this way will prove to be quick and easy.&lt;br /&gt;
&lt;br /&gt;
Create a directory to extract the downloaded file system and then untar it.&lt;br /&gt;
 $ cd /your-path-to/images&lt;br /&gt;
 $ mkdir fsystem&lt;br /&gt;
 $ cd fsystem&lt;br /&gt;
 $ tar xjvf ../omap3-console-image-overo.tar.bz2&lt;br /&gt;
&lt;br /&gt;
Leave this for now, we'll get back to it later.&lt;br /&gt;
&lt;br /&gt;
 $ cd ../../debian&lt;br /&gt;
&lt;br /&gt;
The Debian root file system is built with 'debootstrap'.  Install it onto your host machine with apt-get, along with 'qemu-arm-static' (qemu-user-static on Debian):&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install debootstrap qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
Once these are installed run the following:&lt;br /&gt;
&lt;br /&gt;
 $ sudo debootstrap --foreign --verbose --arch=armel --include=vim-nox,openssh-server,ntpdate,less --exclude=nano squeeze ./squeeze http://ftp.au.debian.org/debian&lt;br /&gt;
&lt;br /&gt;
The --include and --exclude packages are optional.  I prefer vim to the standard vim-tiny, vim-nox is the non-gui version.  I don't use nano so I've excluded it from the build.  The above command will download the required packages and create a squeeze root file system in a directory called squeeze.  You can use a closer Debian mirror rather than the one that I've used in the above example.&lt;br /&gt;
&lt;br /&gt;
Now we chroot into our newly created file system to finish off.  But the packages in the new file system are for the arm architecture so we need an emulator.  We installed it earlier, copy the relevant file:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/bin/qemu-arm-static squeeze/usr/bin&lt;br /&gt;
&lt;br /&gt;
Now chroot into our new file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo chroot squeeze&lt;br /&gt;
&lt;br /&gt;
Chroot has trapped us in our new root file system, isolating us from the file system of the host computer.  You will see a directory named debootstrap.  Go to it:&lt;br /&gt;
&lt;br /&gt;
 $ cd debootstrap&lt;br /&gt;
&lt;br /&gt;
Finish off the installation:&lt;br /&gt;
&lt;br /&gt;
 $ ./debootstap --second-stage&lt;br /&gt;
&lt;br /&gt;
The above command will install all the Debian packages into our file system.&lt;br /&gt;
&lt;br /&gt;
We now need to create a password for the root user or we'll have a system that we can't log into:&lt;br /&gt;
&lt;br /&gt;
 $ passwd&lt;br /&gt;
&lt;br /&gt;
Delete the .deb packages now that we've installed them:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get clean&lt;br /&gt;
&lt;br /&gt;
With that done we can exit:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
Our root file system needs kernel modules.  You'll find a directory under /your-path-to/images/fsystem/lib/modules with a name that reflects the kernel version.  In this example it's '3.0.0'.  Copy the whole directory to the new Debian file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp -r ../images/fsystem/lib/modules/3.0.0/   squeeze/lib/modules/&lt;br /&gt;
&lt;br /&gt;
We also need the fstab and inittab configuration files from Angstrom:&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp ../images/fsystem/etc/inittab  squeeze/etc&lt;br /&gt;
 $ sudo cp ../images/fsystem/etc/fstab  squeeze/etc&lt;br /&gt;
&lt;br /&gt;
If fstab is wrong then our new Debian system won't boot properly.&lt;br /&gt;
&lt;br /&gt;
If inittab is wrong then we won't get a console login prompt, we'll get an error along the lines of &amp;quot;init: Id 'x' respawning too fast: disabled for 5 minutes&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
You can also copy the interfaces file:&lt;br /&gt;
&lt;br /&gt;
 $ sudo cp ../images/fsystem/etc/network/interfaces  squeeze/etc/network/&lt;br /&gt;
&lt;br /&gt;
Edit the newly copied file and change eth0 to eth1.&lt;br /&gt;
&lt;br /&gt;
Now go to the root directory of your Debian file system:&lt;br /&gt;
&lt;br /&gt;
 $ cd squeeze&lt;br /&gt;
&lt;br /&gt;
And tar it up:&lt;br /&gt;
&lt;br /&gt;
 $ sudo tar -cjvf ../squeeze.tar.bz2 *&lt;br /&gt;
&lt;br /&gt;
Create a bootable micro SD card following the Gumstix tutorial found [http://gumstix.org/create-a-bootable-microsd-card.html here], but use the above squeeze.tar.bz2 in place of roofs.tar.bz2.&lt;br /&gt;
&lt;br /&gt;
Put the SD card in your Gumstix COM and boot it up.  If all goes well you should get a logon prompt at the console.&lt;br /&gt;
&lt;br /&gt;
There are still a couple of things left to do.  The kernel module dependencies need to be set up.  On your new Debian install go to the modules directory:&lt;br /&gt;
&lt;br /&gt;
 $ cd /lib/modules/3.0.0&lt;br /&gt;
 $ depmod&lt;br /&gt;
&lt;br /&gt;
The above command will build the modules dependencies files.  When you reboot, the kernel will find its modules and use them.&lt;br /&gt;
&lt;br /&gt;
If you have wifi on your COM you'll have to install some more software.  But first we need to put something in /etc/apt/sources.list.&lt;br /&gt;
&lt;br /&gt;
 $ vi /etc/apt/sources.list&lt;br /&gt;
&lt;br /&gt;
Put in something like the following, replace with your closest mirror. Make sure you include the 'non-free' repositories:&lt;br /&gt;
&lt;br /&gt;
 deb http://ftp.iinet.net.au/debian/debian squeeze main non-free&lt;br /&gt;
&lt;br /&gt;
 $ apt-get update&lt;br /&gt;
&lt;br /&gt;
Install wifi packages.&lt;br /&gt;
&lt;br /&gt;
 $ apt-get install wireless-tools libertas-firmware&lt;br /&gt;
&lt;br /&gt;
There's a wifi howto at the Gumstix wiki [http://wiki.gumstix.org/index.php?title=Overo_Wifi here].&lt;br /&gt;
&lt;br /&gt;
I like to edit the vimrc configuration file and un-comment the lines to enable syntax highlighting and mouse.  It's at /etc/vim/vimrc.&lt;br /&gt;
&lt;br /&gt;
You might also want to edit /etc/hostname.&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5780</id>
		<title>Debian Root File System</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5780"/>
				<updated>2012-03-07T12:21:21Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This how-to describes the procedure to build a Debian root file system.  Emdebian is smaller, but I've had dependency problems with some packages.  With the generous amount of memory on a micro SD card there's no reason not to use Debian.  I built the Debian root file system from the command line of Ubuntu.&lt;br /&gt;
&lt;br /&gt;
Start by creating a bootable micro SD card following the instructions on the Gumstix wiki.  This will have the Angstrom distro that Gumstix uses.  We can use the kernel modules from the Angstrom root file system along with some other files.&lt;br /&gt;
&lt;br /&gt;
To get the kernel modules you can either log onto your Gumstix, tar them up from there, and then scp them to your host machine.  Or you can unzip the Angstrom root file system to the working directory of your host machine.  Change directory to /lib/modules of either your Gumstix machine or your untarred Angstrom file system.  You will see a directory named something like 2.6.39.  This contains all the kernel modules.  Tar them up:&lt;br /&gt;
&lt;br /&gt;
 $ tar zcvf modules.tar.gz 2.6.39/&lt;br /&gt;
&lt;br /&gt;
Now copy or scp the tarred file to the working directory of your host machine.&lt;br /&gt;
&lt;br /&gt;
You will also need to edit some of the configuration files of your Debian file system once it's built.  Of particular importance is /etc/fstab.  You can use what's in Angstrom as long as you take it from the image for the SD card rather than from the 'nand' one.  Another important file is /etc/inittab, if this isn't right then you won't be able to log onto the console.  You can use the one from Angstrom as well.  Also /etc/network/interfaces.  &lt;br /&gt;
&lt;br /&gt;
The Debian root file system is built with 'debootstrap'.  Install it onto your host machine with apt-get, along with 'qemu-arm-static' (qemu-user-static on Debian):&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install debootstrap qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
Once these are installed run the following:&lt;br /&gt;
&lt;br /&gt;
 $ sudo debootstrap --foreign --verbose --arch=armel --include=vim-nox,openssh-server --exclude=nano squeeze ./squeeze http://ftp.au.debian.org/debian&lt;br /&gt;
&lt;br /&gt;
The --include options are optional.  I prefer vim to the standard vim-tiny, vim-nox is the non-gui version.  I don't use nano so I've excluded it from the build.  The above command will download the required packages and create a squeeze root file system in a directory called squeeze.  You can use a closer Debian mirror rather than the one that I've used in the above example.&lt;br /&gt;
&lt;br /&gt;
Now we chroot into our newly created file system to finish off.  But the packages in the new file system are for the arm architecture so we need an emulator.  We installed it onto our development machine earlier, copy the relevant file:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/bin/qemu-arm-static squeeze/usr/bin&lt;br /&gt;
&lt;br /&gt;
Now chroot into our new file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo chroot squeeze&lt;br /&gt;
&lt;br /&gt;
Chroot has trapped us in our new root file system.  You will see a directory named debootstrap.  Go to it:&lt;br /&gt;
&lt;br /&gt;
 $ cd debootstrap&lt;br /&gt;
&lt;br /&gt;
Finish off the installation:&lt;br /&gt;
&lt;br /&gt;
 $ ./debootstap --second-stage&lt;br /&gt;
&lt;br /&gt;
The above command will install all the Debian packages into our file system.&lt;br /&gt;
&lt;br /&gt;
We now need to create a password for the root user or we'll have a system that we can't log into:&lt;br /&gt;
&lt;br /&gt;
 $ passwd&lt;br /&gt;
&lt;br /&gt;
Delete the .deb packages now that we've installed them:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get clean&lt;br /&gt;
&lt;br /&gt;
With that done we can exit:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
Our root file system needs kernel modules:&lt;br /&gt;
&lt;br /&gt;
 $ tar zxvf modules.tar.gz squeeze/lib/modules&lt;br /&gt;
&lt;br /&gt;
Copy the fstab, inittab and interfaces files that you took from Anstrom into your Debian file system.  Other files that need our attention are /etc/hostname and /etc/apt/sources.list.  Edit interfaces and change eth2 to eth1.&lt;br /&gt;
&lt;br /&gt;
Now go to the root directory of your Debian file system:&lt;br /&gt;
&lt;br /&gt;
 $ cd squeeze&lt;br /&gt;
&lt;br /&gt;
And tar it up:&lt;br /&gt;
&lt;br /&gt;
 $ sudo tar -czf ../squeeze.tar.gz *&lt;br /&gt;
&lt;br /&gt;
And that's about it.  Follow the same procedure that you did when you originally installed Angstrom on your SD card, this time using the Debian squeeze tarball.&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Installing_Debian_and_Xenomai_on_gumstix_Overo&amp;diff=5772</id>
		<title>Installing Debian and Xenomai on gumstix Overo</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Installing_Debian_and_Xenomai_on_gumstix_Overo&amp;diff=5772"/>
				<updated>2012-02-23T13:29:02Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: /* Compiling the kernel */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This document describes how I (Sagar Behere) installed Debian squeeze and vanilla linux kernel 2.6.38.8 patched with Xenomai 2.6.0 on the gumstix Overo. The contents of this document are probably applicable to other software versions as well. Note that this isn't a newbie tutorial. You still need to know what you are doing.&lt;br /&gt;
&lt;br /&gt;
DISCLAIMER: There may be better ways to do this.&lt;br /&gt;
&lt;br /&gt;
The standard method to compile a kernel and rootfs is to use the Open Embedded build system that is described [http://gumstix.org/software-development/open-embedded/61-using-the-open-embedded-build-system.html here]. However, I did not use that method because I couldn't figure out how to build any of the kernel versions for which xenomai patches could be found (at the time of writing, the virtual/kernel pointed to version 3.0). Also, I prefer to use the debian userland, rather than Ångstrom. Therefore, the method described here does NOT use Open Embedded.&lt;br /&gt;
&lt;br /&gt;
==Preparing the host==&lt;br /&gt;
&lt;br /&gt;
The ''host'' is the computer you will use to build the kernel and rootfs. The ''target'' is the gumstix Overo COM on which the kernel and rootfs will be deployed. My host is an x86 computer running Debian squeeze. The method described here will probably work on a host running Ubuntu, with some modifications&lt;br /&gt;
&lt;br /&gt;
Add emdebian to your apt sources and get needed packages&lt;br /&gt;
 sudo apt-get install emdebian-archive-keyring&lt;br /&gt;
 sudo apt-get install gcc-4.3-arm-linux-gnueabi binutils-arm-linux-gnueabi&lt;br /&gt;
&lt;br /&gt;
This should pull in all the dependencies and you'll now have an arm cross-toolchain installed on your system. For Ubuntu users also, cross tool chains are available. See the http://www.linaro.org/.&lt;br /&gt;
&lt;br /&gt;
==Compiling the kernel==&lt;br /&gt;
&lt;br /&gt;
* Download and extract xenomai. Let's call the resulting xenomai-2.6.0 dir as {xenomaisourcedir}&lt;br /&gt;
 wget -c http://download.gna.org/xenomai/stable/xenomai-2.6.0.tar.bz2; tar jxvf xenomai-2.6.0.tar.bz2; &lt;br /&gt;
* Supported kernels can be found in {xenomaisourcedir}/ksrc/arch/arm/patches/. I saw the file adeos-ipipe-2.6.38.8-arm-1.18-04.patch and so decided to use that kernel&lt;br /&gt;
* Download the kernel and extract it. Let's call the resulting linux-2.6.38.8 directory {kernelsourcedir}&lt;br /&gt;
 wget -c http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.38.8.tar.bz2; tar jxvf linux-2.6.38.8.tar.bz2&lt;br /&gt;
* Patch the kernel sources with Xenomai. Go to {xenomaisourcedir} and &lt;br /&gt;
 scripts/prepare-kernel.sh --arch=arm --linux=/path/where/you/untarred/linux-2.6.38.8.tar.bz2&lt;br /&gt;
It'll suggest the right patch to be applied.&lt;br /&gt;
* Set the default kernel configuration&lt;br /&gt;
 cd {kernelsourcedir}; cp arch/arm/configs/omap2plus_defconfig .config&lt;br /&gt;
* Configure the kernel with&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig&lt;br /&gt;
I removed support for almost all the boards except the Overo and also removed support for everything execpt OMAP3. Configure the xenomai related stuff too.&lt;br /&gt;
* Build the kernel with&lt;br /&gt;
 make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage modules&lt;br /&gt;
* To deploy the kernel, you'll need the uImage which can be found at {kernelsourcedir}/arch/arm/boot/uImage You'll also need to put the resulting modules into the debian rootfs that we'll create later. For now, I merely put all the modules in some directory {modulesdirectory} with&lt;br /&gt;
 make ARCH=arm INSTALL_MOD_PATH=/path/to/{modulesdirectory} modules_install; &lt;br /&gt;
You can optionally also put the firmware in some directory {firmwaredirectory} with&lt;br /&gt;
 make ARCH=arm INSTALL_FW_PATH=/path/to/{firmwaredirectory} firmware_install&lt;br /&gt;
The {modulesdirectory} will contain a directory lib/modules/kernel-version that we'll copy over to our rootfs later.&lt;br /&gt;
&lt;br /&gt;
We still need to compile the xenomai userspace stuff, but we'll do that after setting up the rootfs&lt;br /&gt;
&lt;br /&gt;
==The debian rootfs==&lt;br /&gt;
&lt;br /&gt;
These instructions are based on http://gobysoft.com/wiki/InstallOnGumstixOvero and http://paul-strefling.blogspot.com/2011/06/installing-debian-on-gumstix-overo.html&lt;br /&gt;
&lt;br /&gt;
* Get the qemu-arm-static binary. &lt;br /&gt;
 sudo apt-get install qemu-user-static&lt;br /&gt;
for ubuntu use &lt;br /&gt;
 apt-get install qemu-kvm-extras-static&lt;br /&gt;
* Get multistrap&lt;br /&gt;
 sudo apt-get install multistrap&lt;br /&gt;
* Make a directory to create the debian rootfs with&lt;br /&gt;
 mkdir overorootfs&lt;br /&gt;
* Create a file called emdebian.conf and put in the following (add whatever packages you wish)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[General]&lt;br /&gt;
arch=armel&lt;br /&gt;
noauth=true&lt;br /&gt;
unpack=true&lt;br /&gt;
debootstrap=Grip Networking Debian Misc&lt;br /&gt;
aptsources=Grip Debian&lt;br /&gt;
&lt;br /&gt;
[Grip]&lt;br /&gt;
packages=locales udev adduser sudo nano build-essential less module-init-tools &lt;br /&gt;
source=http://www.emdebian.org/grip&lt;br /&gt;
keyring=emdebian-archive-keyring&lt;br /&gt;
components=main dev&lt;br /&gt;
suite=stable&lt;br /&gt;
&lt;br /&gt;
[Misc]&lt;br /&gt;
packages=wget&lt;br /&gt;
source=http://www.emdebian.org/grip&lt;br /&gt;
keyring=emdebian-archive-keyring&lt;br /&gt;
components=main dev&lt;br /&gt;
suite=stable&lt;br /&gt;
&lt;br /&gt;
[Networking]&lt;br /&gt;
packages=netbase ifupdown iproute net-tools iputils-ping ntp wireless-tools isc-dhcp-client wpasupplicant&lt;br /&gt;
source=http://www.emdebian.org/grip&lt;br /&gt;
keyring=emdebian-archive-keyring&lt;br /&gt;
suite=stable&lt;br /&gt;
&lt;br /&gt;
[Debian]&lt;br /&gt;
packages=zile tsocks&lt;br /&gt;
source=http://ftp.se.debian.org/debian/&lt;br /&gt;
keyring=debian-archive-keyring&lt;br /&gt;
suite=stable&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Create the root filesystem with&lt;br /&gt;
 sudo multistrap -a armel -d overorootfs/ -f emdebian.conf&lt;br /&gt;
* Copy the qemu binary so we can chroot&lt;br /&gt;
 sudo cp /usr/bin/qemu-arm-static overorootfs/usr/bin&lt;br /&gt;
* Chroot into the system&lt;br /&gt;
 sudo chroot overorootfs /bin/bash&lt;br /&gt;
* Finish setting up the packages with&lt;br /&gt;
 dpkg --configure -a&lt;br /&gt;
Answer &amp;quot;no&amp;quot; when asked if you want to use &amp;quot;dash&amp;quot; as &amp;quot;/bin/sh&amp;quot;. If ifupdown fails, just run again&lt;br /&gt;
 dpkg --configure -a&lt;br /&gt;
* Add a user and give him sudo permissions&lt;br /&gt;
 adduser sagar;printf &amp;quot;sagar ALL=(ALL) ALL&amp;quot; &amp;gt;&amp;gt; /etc/sudoers&lt;br /&gt;
* Configure locales. 136 is en_US.UTF-8&lt;br /&gt;
 dpkg-reconfigure locales&lt;br /&gt;
* Set the DNS with&lt;br /&gt;
 printf &amp;quot;nameserver 8.8.8.8&amp;quot; &amp;gt; /etc/resolv.conf&lt;br /&gt;
* create /etc/fstab and add the following&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# /etc/fstab: static file system information.&lt;br /&gt;
#&lt;br /&gt;
# &amp;lt;file system&amp;gt; &amp;lt;mount point&amp;gt;   &amp;lt;type&amp;gt;  &amp;lt;options&amp;gt;       &amp;lt;dump&amp;gt;  &amp;lt;pass&amp;gt;&lt;br /&gt;
proc            /proc           proc    defaults        0       0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
* Configure hostname&lt;br /&gt;
 printf &amp;quot;gumstix&amp;quot; &amp;gt; /etc/hostname&lt;br /&gt;
 printf &amp;quot;127.0.0.1 gumstix\n&amp;quot; &amp;gt;&amp;gt; /etc/hosts&lt;br /&gt;
* Get out of the chroot by pressing Ctrl+D and get in again with&lt;br /&gt;
 sudo chroot overorootfs&lt;br /&gt;
At this point, you should be able to&lt;br /&gt;
 ping www.google.com&lt;br /&gt;
if your host has internet access&lt;br /&gt;
* The final task inside the chroot environment is to enable the serial console. Edit /etc/inittab and add the following line in the end&lt;br /&gt;
 T0:2345:respawn:/sbin/getty -L 115200 ttyO2 vt102&lt;br /&gt;
* Update apt sources&lt;br /&gt;
 apt-get update&lt;br /&gt;
* Exit the chroot and copy the modules over to the overorootfs&lt;br /&gt;
 cp -a {modulesdirectory}/lib/modules/2.6.38.8-ipipe overorootfs/lib/modules&lt;br /&gt;
&lt;br /&gt;
==Xenomai user space==&lt;br /&gt;
&lt;br /&gt;
This section is based on instructions at http://www.xenomai.org/index.php/Building_Debian_packages&lt;br /&gt;
&lt;br /&gt;
The userspace part of Xenomai needs to be compiled now. The traditional way is to cross-compile it, as described in the xenomai documentation. However, we can take advantage of our arm chroot environment to avoid cross-compilation. Also, we will create debian packages i.e. .deb files for the userspace part of the xenomai installation. We proceed as follows&lt;br /&gt;
* copy {xenomaisourcedir} to overorootfs and&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo chroot overorootfs&lt;br /&gt;
apt-get install devscripts debhelper dh-kpatches findutils&lt;br /&gt;
cd {xenomaisourcedir};DEBEMAIL=&amp;quot;your@email&amp;quot; DEBFULLNAME=&amp;quot;Your Name&amp;quot; debchange -v 2.6.0 Release 2.6.0&lt;br /&gt;
debuild -uc -us&lt;br /&gt;
cd ../; dpkg -i libxenomai1_2.6.0_armel.deb libxenomai-dev_2.6.0_armel.deb xenomai-runtime_2.6.0_armel.deb&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Preparing the SD card==&lt;br /&gt;
&lt;br /&gt;
There are a lot of guides describing how to partition and format a SD card for using on the overo. I used the one at http://johnwoconnor.blogspot.com/2009/04/installing-ubuntu-on-gumstix-overo.html. The official guide is at http://gumstix.org/create-a-bootable-microsd-card.html. Read those guides and come to a point where you have created the two partitions and formatted them. Then continue reading here. &lt;br /&gt;
&lt;br /&gt;
[NOTE: I am assuming that the first partition of your card is mounted under /media/FAT and the 2nd partition is under /media/rootfs]&lt;br /&gt;
&lt;br /&gt;
Get pre-built MLO and u-boot.bin from http://gumstix.org/download-prebuilt-images.html . I got mine from http://cumulus.gumstix.org/images/angstrom/factory/2011-08-30-1058/&lt;br /&gt;
 cp MLO /media/FAT; cp u-boot.bin /media/FAT&lt;br /&gt;
 cp {kernelsourcedir}/arch/arm/boot/uImage /media/FAT&lt;br /&gt;
 cd overorootfs; sudo rsync -aP . /media/rootfs/&lt;br /&gt;
 sync&lt;br /&gt;
&lt;br /&gt;
==Testing the install==&lt;br /&gt;
Boot the gumstix from the SD card and log in as the user you created. Then wrap up the installation with&lt;br /&gt;
 sudo dpkg --configure -a&lt;br /&gt;
&lt;br /&gt;
In order to get wireless working, I had to add the files sd8686.bin and sd8686_helper.bin to /lib/firmware/ on the rootfs. Sorry, I don't remember where I got them from.&lt;br /&gt;
&lt;br /&gt;
To test xenomai&lt;br /&gt;
 cd /usr/lib/xenomai;./latency -p0 -t1&lt;br /&gt;
You can also run the other programs in that directory&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5771</id>
		<title>Debian Root File System</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5771"/>
				<updated>2012-02-22T14:17:39Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This how-to describes the procedure to build a Debian root file system.  Emdebian is smaller, but I've had dependency problems with some packages.  With the generous amount of memory on a micro SD card there's no reason not to use Debian.  I built the Debian root file system from the command line of Ubuntu.&lt;br /&gt;
&lt;br /&gt;
Start by creating a bootable micro SD card following the instructions on the Gumstix wiki.  This will have the Angstrom distro that Gumstix uses.  We can use the kernel modules from the Angstrom root file system along with some other files.&lt;br /&gt;
&lt;br /&gt;
To get the kernel modules you can either log onto your Gumstix, tar them up from there, and then scp them to your host machine.  Or you can unzip the Angstrom root file system to the working directory of your host machine.  Change directory to /lib/modules of either your Gumstix machine or your untarred Angstrom file system.  You will see a directory named something like 2.6.39.  This contains all the kernel modules.  Tar them up:&lt;br /&gt;
&lt;br /&gt;
 $ tar zcvf modules.tar.gz 2.6.39/&lt;br /&gt;
&lt;br /&gt;
Now copy or scp the tarred file to the working directory of your host machine.&lt;br /&gt;
&lt;br /&gt;
You will also need to edit some of the configuration files of your Debian file system once it's built.  Of particular importance is /etc/fstab.  You can use what's in Angstrom as long as you take it from the image for the SD card rather than from the 'nand' one.  Another important file is /etc/inittab, if this isn't right then you won't be able to log onto the console.  You can use the one from Angstrom as well.  Also /etc/network/interfaces.  &lt;br /&gt;
&lt;br /&gt;
The Debian root file system is built with 'debootstrap'.  Install it onto your host machine with apt-get, along with 'qemu-arm-static' (qemu-user-static on Debian):&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install debootstrap qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
Once these are installed run the following:&lt;br /&gt;
&lt;br /&gt;
 $ sudo debootstrap --foreign --verbose --arch=armel --include=debootstrap,vim-nox,openssh-server --exclude=nano squeeze ./squeeze http://ftp.au.debian.org/debian&lt;br /&gt;
&lt;br /&gt;
The --include option must include debootstrap, the others are optional.  I prefer vim to the standard vim-tiny, vim-nox is the non-gui version.  I don't use nano so I've excluded it from the build.  The above command will download the required packages and create a squeeze root file system in a directory called squeeze.  You can use a closer Debian mirror rather than the one that I've used in the above example.&lt;br /&gt;
&lt;br /&gt;
Now we chroot into our newly created file system to finish off.  But the packages in the new file system are for the arm architecture so we need an emulator.  We installed it onto our development machine earlier, copy the relevant file:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/bin/qemu-arm-static squeeze/usr/bin&lt;br /&gt;
&lt;br /&gt;
Now chroot into our new file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo chroot squeeze&lt;br /&gt;
&lt;br /&gt;
Chroot has trapped us in our new root file system.  You will see a directory named debootstrap.  Go to it:&lt;br /&gt;
&lt;br /&gt;
 $ cd debootstrap&lt;br /&gt;
&lt;br /&gt;
Finish off the installation:&lt;br /&gt;
&lt;br /&gt;
 $ ./debootstap --second-stage&lt;br /&gt;
&lt;br /&gt;
The above command will install all the Debian packages into our file system.&lt;br /&gt;
&lt;br /&gt;
We now need to create a password for the root user or we'll have a system that we can't log into:&lt;br /&gt;
&lt;br /&gt;
 $ passwd&lt;br /&gt;
&lt;br /&gt;
Delete the .deb packages now that we've installed them:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get clean&lt;br /&gt;
&lt;br /&gt;
With that done we can exit:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
Our root file system needs kernel modules:&lt;br /&gt;
&lt;br /&gt;
 $ tar zxvf modules.tar.gz squeeze/lib/modules&lt;br /&gt;
&lt;br /&gt;
Copy the fstab, inittab and interfaces files that you took from Anstrom into your Debian file system.  Other files that need our attention are /etc/hostname and /etc/apt/sources.list.  Edit interfaces and change eth2 to eth1.&lt;br /&gt;
&lt;br /&gt;
Now go to the root directory of your Debian file system:&lt;br /&gt;
&lt;br /&gt;
 $ cd squeeze&lt;br /&gt;
&lt;br /&gt;
And tar it up:&lt;br /&gt;
&lt;br /&gt;
 $ sudo tar -czf ../squeeze.tar.gz *&lt;br /&gt;
&lt;br /&gt;
And that's about it.  Follow the same procedure that you did when you originally installed Angstrom on your SD card, this time using the Debian squeeze tarball.&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5770</id>
		<title>Debian Root File System</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5770"/>
				<updated>2012-02-20T14:24:43Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This how-to describes the procedure to build a Debian root file system.  I originally installed an Emdebian file system, but had dependency problems with some packages.  But with the generous amount of memory on a micro SD card there's no reason not to build Debian itself.  I worked from the command line of Ubuntu.&lt;br /&gt;
&lt;br /&gt;
Start by creating a bootable micro SD card following the instructions on the Gumstix wiki.  This will have the Angstrom distro that Gumstix uses.  We can take the kernel modules from the Angstrom root file system along with some other files.  Log into Angstrom on Gumstix and go to /lib/modules.  You will see a directory named something similar to 2.6.39.  This contains all the kernel modules.  Tar it up:&lt;br /&gt;
&lt;br /&gt;
 $ tar zcvf modules.tar.gz 2.6.39/&lt;br /&gt;
&lt;br /&gt;
Now copy it to your development machine:&lt;br /&gt;
&lt;br /&gt;
 $ scp modules.tar.gz ip.address.of.dev.machine:/path/to/dev/area&lt;br /&gt;
&lt;br /&gt;
You can scp /etc/inittab, /etc/fstab and  /etc/network/interfaces as well.  Use these as a reference in when you build your Debian root file system.&lt;br /&gt;
&lt;br /&gt;
The Debian root file system is built with 'debootstrap'.  Install it with apt-get, along with 'qemu-arm-static' (qemu-user-static on Debian):&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install debootstrap qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
Once these are installed run the following:&lt;br /&gt;
&lt;br /&gt;
 $ sudo debootstrap --foreign --verbose --arch=armel --include=debootstrap,vim-nox,openssh-server --exclude=nano squeeze ./squeeze http://ftp.au.debian.org/debian&lt;br /&gt;
&lt;br /&gt;
The --include option must include debootstrap, the others are optional.  I prefer vim to the standard vim-tiny, vim-nox is the non-gui version.  I don't use nano so I've excluded it from the build.  The above command will download the required packages and create a squeeze root file system in a directory called squeeze.&lt;br /&gt;
&lt;br /&gt;
Now we chroot into our newly created file system to finish off.  But the packages in the new file system are for the arm architecture so we need an emulator.  We installed it onto our development machine earlier, copy the relevant file:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/bin/qemu-arm-static squeeze/usr/bin&lt;br /&gt;
&lt;br /&gt;
Now chroot into our new file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo chroot squeeze&lt;br /&gt;
&lt;br /&gt;
You will see a directory named debootstrap.  Go to it:&lt;br /&gt;
&lt;br /&gt;
 $ cd debootstrap&lt;br /&gt;
&lt;br /&gt;
Finish off the installation:&lt;br /&gt;
&lt;br /&gt;
 $ ./debootstap --second-stage&lt;br /&gt;
&lt;br /&gt;
The above command will install all the Debian packages into our file system.&lt;br /&gt;
&lt;br /&gt;
We now need to create a password for the root user or we'll have a system that we can't log into:&lt;br /&gt;
&lt;br /&gt;
 $ passwd&lt;br /&gt;
&lt;br /&gt;
Delete the .deb packages now that we've installed them:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get clean&lt;br /&gt;
&lt;br /&gt;
With that done we can exit:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
Our root file system needs kernel modules:&lt;br /&gt;
&lt;br /&gt;
 $ tar zxvf modules.tar.gz squeeze/lib/modules&lt;br /&gt;
&lt;br /&gt;
More to come.....&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5769</id>
		<title>Debian Root File System</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5769"/>
				<updated>2012-02-20T14:23:07Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This how-to describes the procedure to build a Debian root file system.  I originally installed an Emdebian file system, but had dependency problems with some packages.  But with the generous amount of memory on a micro SD card there's no reason not to build Debian itself.  I worked from the command line of Ubuntu.&lt;br /&gt;
&lt;br /&gt;
Start by creating a bootable micro SD card following the instructions on the Gumstix wiki.  This will have the Angstrom distro that Gumstix uses.  We can take the kernel modules from the Angstrom root file system along with some other files.  Log into Angstrom on Gumstix and go to /lib/modules.  You will see a directory named something similar to 2.6.39.  This contains all the kernel modules.  Tar it up:&lt;br /&gt;
&lt;br /&gt;
 $ tar zcvf modules.tar.gz 2.6.39/&lt;br /&gt;
&lt;br /&gt;
Now copy it to your development machine:&lt;br /&gt;
&lt;br /&gt;
 $ scp modules.tar.gz ip.address.of.dev.machine:/path/to/dev/area&lt;br /&gt;
&lt;br /&gt;
You can scp /etc/inittab, /etc/fstab and  /etc/network/interfaces as well.  Use these as a reference in when you build your Debian root file system.&lt;br /&gt;
&lt;br /&gt;
The Debian root file system is built with 'debootstrap'.  Install it with apt-get, along with 'qemu-arm-static' (qemu-user-static on Debian):&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install debootstrap qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
Once these are installed run the following:&lt;br /&gt;
&lt;br /&gt;
 $ sudo debootstrap --foreign --verbose --arch=armel --include=debootstrap,vim-nox,openssh-server --exclude=nano squeeze ./squeeze http://ftp.au.debian.org/debian&lt;br /&gt;
&lt;br /&gt;
The --include option must include debootstrap, the others are optional.  I prefer vim to the standard vim-tiny, vim-nox is the non-gui version.  I don't use nano so I've excluded it from the build.  The above command will download the required packages and create a squeeze root file system in a directory called squeeze.&lt;br /&gt;
&lt;br /&gt;
Now we chroot into our newly created file system to finish off.  But the packages in the new file system are for the arm architecture so we need an emulator.  We installed it onto our development machine earlier, copy the relevant file:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/bin/qemu-arm-static squeeze/usr/bin&lt;br /&gt;
&lt;br /&gt;
Now chroot into our new file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo chroot squeeze&lt;br /&gt;
&lt;br /&gt;
You will see a directory named debootstrap.  Go to it:&lt;br /&gt;
&lt;br /&gt;
 $ cd debootstrap&lt;br /&gt;
&lt;br /&gt;
Finish off the installation:&lt;br /&gt;
&lt;br /&gt;
 $ ./debootstap --second-stage&lt;br /&gt;
&lt;br /&gt;
The above command will install all the Debian packages into our file system.&lt;br /&gt;
&lt;br /&gt;
We now need to create a password for the root user or we'll have a system that we can't log into:&lt;br /&gt;
&lt;br /&gt;
 $ passwd&lt;br /&gt;
&lt;br /&gt;
Delete the .deb packages now that we've installed them:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get clean&lt;br /&gt;
&lt;br /&gt;
With that done we can exit:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
Our root file system needs kernel modules:&lt;br /&gt;
&lt;br /&gt;
 $ tar zxvf modules.tar.gz squeeze/lib/modules&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5768</id>
		<title>Debian Root File System</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5768"/>
				<updated>2012-02-20T14:22:24Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This how-to describes the procedure to build a Debian root file system.  I originally installed an Emdebian file system, but had dependency problems with some packages.  But with the generous amount of memory on a micro SD card there's no reason not to build Debian itself.  I worked from the command line of Ubuntu.&lt;br /&gt;
&lt;br /&gt;
Start by creating a bootable micro SD card following the instructions on the Gumstix wiki.  This will have the Angstrom distro that Gumstix uses.  We can take the kernel modules from the Angstrom root file system along with some other files.  Log into Angstrom on Gumstix and go to /lib/modules.  You will see a directory named something similar to 2.6.39.  This contains all the kernel modules.  Tar it up:&lt;br /&gt;
&lt;br /&gt;
 $ tar zcvf modules.tar.gz 2.6.39/&lt;br /&gt;
&lt;br /&gt;
Now copy it to your development machine:&lt;br /&gt;
&lt;br /&gt;
 $ scp modules.tar.gz ip.address.of.dev.machine:/path/to/dev/area&lt;br /&gt;
&lt;br /&gt;
You can scp /etc/inittab, /etc/fstab and  /etc/network/interfaces as well.  Use these as a reference in when you build your Debian root file system.&lt;br /&gt;
&lt;br /&gt;
The Debian root file system is built with 'debootstrap'.  Install it with apt-get, along with 'qemu-arm-static' (qemu-user-static on Debian):&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install debootstrap qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
Once these are installed run the following:&lt;br /&gt;
&lt;br /&gt;
 $ sudo debootstrap --foreign --verbose --arch=armel --include=debootstrap,vim-nox,openssh-server --exclude=nano squeeze ./squeeze http://ftp.au.debian.org/debian&lt;br /&gt;
&lt;br /&gt;
The --include option must include debootstrap, the others are optional.  I prefer vim to the standard vim-tiny, vim-nox is the non-gui version.  I don't use nano so I've excluded it from the build.  The above command will download the required packages and create a squeeze root file system in a directory called squeeze.&lt;br /&gt;
&lt;br /&gt;
Now we chroot into our newly created file system to finish off.  But the packages in the new file system are for the arm architecture so we need an emulator.  We installed it onto our development machine earlier, copy the relevant file:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/bin/qemu-arm-static squeeze/usr/bin&lt;br /&gt;
&lt;br /&gt;
Now chroot into our new file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo chroot squeeze&lt;br /&gt;
&lt;br /&gt;
You will see a directory named debootstrap.  Go to it:&lt;br /&gt;
&lt;br /&gt;
 $ cd debootstrap&lt;br /&gt;
&lt;br /&gt;
Finish off the installation:&lt;br /&gt;
&lt;br /&gt;
 $ ./debootstap -- second-stage&lt;br /&gt;
&lt;br /&gt;
The above command will install all the Debian packages into our file system.&lt;br /&gt;
&lt;br /&gt;
We now need to create a password for the root user or we'll have a system that we can't log into:&lt;br /&gt;
&lt;br /&gt;
 $ passwd&lt;br /&gt;
&lt;br /&gt;
Delete the .deb packages now that we've installed them:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get clean&lt;br /&gt;
&lt;br /&gt;
With that done we can exit:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
Our root file system needs kernel modules:&lt;br /&gt;
&lt;br /&gt;
 $ tar zxvf modules.tar.gz squeeze/lib/modules&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5767</id>
		<title>Debian Root File System</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5767"/>
				<updated>2012-02-20T14:20:39Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This how-to describes the procedure to build a Debian root file system.  I originally installed an Emdebian file system, but had dependency problems with some packages.  But with the generous amount of memory on a micro SD card there's no reason not to build Debian itself.  I worked from the command line of Ubuntu.&lt;br /&gt;
&lt;br /&gt;
Start by creating a bootable micro SD card following the instructions on the Gumstix wiki.  This will have the Angstrom distro that Gumstix uses.  We can take the kernel modules from the Angstrom root file system along with some other files.  Log into Angstrom on Gumstix and go to /lib/modules.  You will see a directory named something similar to 2.6.39.  This contains all the kernel modules.  Tar it up:&lt;br /&gt;
&lt;br /&gt;
 $ tar zcvf modules.tar.gz 2.6.39/&lt;br /&gt;
&lt;br /&gt;
Now copy it to your development machine:&lt;br /&gt;
&lt;br /&gt;
 $ scp modules.tar.gz ip.address.of.dev.machine:/path/to/dev/area&lt;br /&gt;
&lt;br /&gt;
You can scp /etc/inittab, /etc/fstab and  /etc/network/interfaces as well.  Use these as a reference in when you build your Debian root file system.&lt;br /&gt;
&lt;br /&gt;
The Debian root file system is built with 'debootstrap'.  Install it with apt-get, along with 'qemu-arm-static' (qemu-user-static on Debian):&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install debootstrap qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
Once these are installed run the following:&lt;br /&gt;
&lt;br /&gt;
 $ sudo debootstrap --foreign --verbose --arch=armel --include=debootstrap,vim-nox,openssh-server --exclude=nano squeeze ./squeeze http://ftp.au.debian.org/debian&lt;br /&gt;
&lt;br /&gt;
The --include option must include debootstrap, the others are optional.  I prefer vim to the standard vim-tiny, vim-nox is the non-gui version.  I don't use nano so I've excluded it from the build.  The above command will download the required packages and create a squeeze root file system in a directory called squeeze.&lt;br /&gt;
&lt;br /&gt;
Now we chroot into our newly created file system to finish off.  But the packages in the new file system are for the arm architecture so we need an emulator.  We installed it onto our development machine earlier, copy the relevant file:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/bin/qemu-are-static squeeze/usr/bin&lt;br /&gt;
&lt;br /&gt;
Now chroot into our new file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo chroot squeeze&lt;br /&gt;
&lt;br /&gt;
You will see a directory named debootstrap.  Go to it:&lt;br /&gt;
&lt;br /&gt;
 $ cd debootstrap&lt;br /&gt;
&lt;br /&gt;
Finish off the installation:&lt;br /&gt;
&lt;br /&gt;
 $ ./debootstap -- second-stage&lt;br /&gt;
&lt;br /&gt;
The above command will install all the Debian packages into our file system.&lt;br /&gt;
&lt;br /&gt;
We now need to create a password for the root user or we'll have a system that we can't log into:&lt;br /&gt;
&lt;br /&gt;
 $ passwd&lt;br /&gt;
&lt;br /&gt;
Delete the .deb packages now that we've installed them:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get clean&lt;br /&gt;
&lt;br /&gt;
With that done we can exit:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
Our root file system needs kernel modules:&lt;br /&gt;
&lt;br /&gt;
 $ tar zxvf modules.tar.gz squeeze/lib/modules&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5766</id>
		<title>Debian Root File System</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Debian_Root_File_System&amp;diff=5766"/>
				<updated>2012-02-20T14:19:23Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: Created page with &amp;quot;This how-to describes the procedure to build a Debian root file system.  I originally installed an Emdebian file system, but had dependency problems with some packages.  But with...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This how-to describes the procedure to build a Debian root file system.  I originally installed an Emdebian file system, but had dependency problems with some packages.  But with the generous amount of memory on a micro SD card there's no reason not to build Debian itself.  I worked from the command line of Ubuntu.&lt;br /&gt;
&lt;br /&gt;
Start by creating a bootable micro SD card following the instructions on the Gumstix wiki.  This will have the Angstrom distro that Gumstix uses.  We can take the kernel modules from the Angstrom root file system along with some other files.  Log into Angstrom on Gumstix and go to /lib/modules.  You will see a directory named something similar to 2.6.39.  This contains all the kernel modules.  Tar it up:&lt;br /&gt;
&lt;br /&gt;
 $ tar zcvf modules.tar.gz 2.6.39/&lt;br /&gt;
&lt;br /&gt;
Now copy it to your development machine:&lt;br /&gt;
&lt;br /&gt;
 $ scp module.tar.gz ip.address.of.dev.machine:/path/to/dev/area&lt;br /&gt;
&lt;br /&gt;
You can scp /etc/inittab, /etc/fstab and  /etc/network/interfaces as well.  Use these as a reference in when you build your Debian root file system.&lt;br /&gt;
&lt;br /&gt;
The Debian root file system is built with 'debootstrap'.  Install it with apt-get, along with 'qemu-arm-static' (qemu-user-static on Debian):&lt;br /&gt;
&lt;br /&gt;
 $ sudo apt-get install debootstrap qemu-arm-static&lt;br /&gt;
&lt;br /&gt;
Once these are installed run the following:&lt;br /&gt;
&lt;br /&gt;
 $ sudo debootstrap --foreign --verbose --arch=armel --include=debootstrap,vim-nox,openssh-server --exclude=nano squeeze ./squeeze http://ftp.au.debian.org/debian&lt;br /&gt;
&lt;br /&gt;
The --include option must include debootstrap, the others are optional.  I prefer vim to the standard vim-tiny, vim-nox is the non-gui version.  I don't use nano so I've excluded it from the build.  The above command will download the required packages and create a squeeze root file system in a directory called squeeze.&lt;br /&gt;
&lt;br /&gt;
Now we chroot into our newly created file system to finish off.  But the packages in the new file system are for the arm architecture so we need an emulator.  We installed it onto our development machine earlier, copy the relevant file:&lt;br /&gt;
&lt;br /&gt;
 $ cp /usr/bin/qemu-are-static squeeze/usr/bin&lt;br /&gt;
&lt;br /&gt;
Now chroot into our new file system:&lt;br /&gt;
&lt;br /&gt;
 $ sudo chroot squeeze&lt;br /&gt;
&lt;br /&gt;
You will see a directory named debootstrap.  Go to it:&lt;br /&gt;
&lt;br /&gt;
 $ cd debootstrap&lt;br /&gt;
&lt;br /&gt;
Finish off the installation:&lt;br /&gt;
&lt;br /&gt;
 $ ./debootstap -- second-stage&lt;br /&gt;
&lt;br /&gt;
The above command will install all the Debian packages into our file system.&lt;br /&gt;
&lt;br /&gt;
We now need to create a password for the root user or we'll have a system that we can't log into:&lt;br /&gt;
&lt;br /&gt;
 $ passwd&lt;br /&gt;
&lt;br /&gt;
Delete the .deb packages now that we've installed them:&lt;br /&gt;
&lt;br /&gt;
 $ apt-get clean&lt;br /&gt;
&lt;br /&gt;
With that done we can exit:&lt;br /&gt;
&lt;br /&gt;
 $ exit&lt;br /&gt;
&lt;br /&gt;
Our root file system needs kernel modules:&lt;br /&gt;
&lt;br /&gt;
 $ tar zxvf modules.tar.gz squeeze/lib/modules&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Category:How_to_-_Debian&amp;diff=5765</id>
		<title>Category:How to - Debian</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Category:How_to_-_Debian&amp;diff=5765"/>
				<updated>2012-02-20T13:07:51Z</updated>
		
		<summary type="html">&lt;p&gt;Dan Nelson: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [[Installing Debian and Xenomai on gumstix Overo]]&lt;br /&gt;
* [[Debian Root File System]]&lt;/div&gt;</summary>
		<author><name>Dan Nelson</name></author>	</entry>

	</feed>