<?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=Danny+Chan</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=Danny+Chan"/>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php/Special:Contributions/Danny_Chan"/>
		<updated>2026-05-06T22:12:51Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.25.3</generator>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Category:How_to_-_Ubuntu&amp;diff=5802</id>
		<title>Category:How to - Ubuntu</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Category:How_to_-_Ubuntu&amp;diff=5802"/>
				<updated>2012-03-30T23:44:16Z</updated>
		
		<summary type="html">&lt;p&gt;Danny Chan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;To run Ubuntu, Gumstix recommends using an Overo COM with at least 512MB RAM.&lt;br /&gt;
&lt;br /&gt;
[[Linaro]] is a great way to get started with running Ubuntu on your Overo COM.&lt;/div&gt;</summary>
		<author><name>Danny Chan</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Linaro_Webcam_Drivers&amp;diff=5801</id>
		<title>Linaro Webcam Drivers</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Linaro_Webcam_Drivers&amp;diff=5801"/>
				<updated>2012-03-30T21:43:04Z</updated>
		
		<summary type="html">&lt;p&gt;Danny Chan: Created page with &amp;quot;Linaro's kernel does not come with Video4Linux (V4L) and USB Video Class (UVC) enabled by default. Because of this, USB webcams will not work straight out of the box. To fix this...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Linaro's kernel does not come with Video4Linux (V4L) and USB Video Class (UVC) enabled by default. Because of this, USB webcams will not work straight out of the box. To fix this, you will need to compile the kernel yourself. Relax! It is not that difficult. The instructions to compile your own Linaro kernel can be found [[Linaro#Compiling_your_own_Kernel_.28Advanced.29|here]].&lt;br /&gt;
&lt;br /&gt;
All you have to do is enable the following modules in menuconfig. &lt;br /&gt;
&lt;br /&gt;
 Device Drivers  ---&amp;gt;  &lt;br /&gt;
   &amp;lt;*&amp;gt; Multimedia support  ---&amp;gt; &lt;br /&gt;
     &amp;lt;*&amp;gt;   Video For Linux &lt;br /&gt;
     [*]   Video capture adapters (NEW)  ---&amp;gt; &lt;br /&gt;
       &amp;lt;*&amp;gt;   OMAP2/OMAP3 V4L2-Display driver &lt;br /&gt;
       [*]   V4L USB devices (NEW)  ---&amp;gt; &lt;br /&gt;
         &amp;lt;*&amp;gt;   USB Video Class (UVC)&lt;br /&gt;
&lt;br /&gt;
That's it! Now compile the uImage and boot. You should be able to see /dev/video0 when you plug in your webcam.&lt;br /&gt;
&lt;br /&gt;
[[Category:How to - webcams]]&lt;/div&gt;</summary>
		<author><name>Danny Chan</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Category:How_to_-_webcams&amp;diff=5800</id>
		<title>Category:How to - webcams</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Category:How_to_-_webcams&amp;diff=5800"/>
				<updated>2012-03-30T21:12:10Z</updated>
		
		<summary type="html">&lt;p&gt;Danny Chan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Please contribute your knowledge to the Gumstix community&lt;/div&gt;</summary>
		<author><name>Danny Chan</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Webcam_drivers_-_Mini_Howto_Part_2_-_Linux_uvc_cameras&amp;diff=5799</id>
		<title>Webcam drivers - Mini Howto Part 2 - Linux uvc cameras</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Webcam_drivers_-_Mini_Howto_Part_2_-_Linux_uvc_cameras&amp;diff=5799"/>
				<updated>2012-03-30T21:11:00Z</updated>
		
		<summary type="html">&lt;p&gt;Danny Chan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;this is my second How-to on webcams, this time covering uvc webcams. You may need to do some of the steps under the first Howto which deals with cameras using the pwc driver,  so it's worth having that to hand also.&lt;br /&gt;
&lt;br /&gt;
As with the first How-to, this is not guaranteed to work on your system but I hope there is enough info here for you to figure out the problem if it doesn't. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Why use a Linux uvc webcam? ===&lt;br /&gt;
&lt;br /&gt;
Apart from the obvious reason that this is the kind of webcam you already have, one other reason, so I’m told, is the camera does all the file compression, so really big compressed images (up to 960x720) can be streamed without a big CPU load. I think 640x480 ''may'' be the limit though over the gumstix's USB 1.1 connection - but it’s still quite good. I haven’t tested the fps throughput yet but it should be respectable.&lt;br /&gt;
 &lt;br /&gt;
Another reason is that Logitech make a &amp;quot;driveable&amp;quot; motorised pan / tilt camera, the Orbit / Sphere, which uses this driver. I though the idea of controlling a remote (possibly solar powered) camera over a (wireless) IP connection was quite cool…… &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Building the Linux uvc driver ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
If you have previously installed the pwc camera (or another camera which uses the Video4Linux drivers) you will already have these installed, so there is no need to mess around with the kernel. Otherwise (I think) you will have to rebuild the kernel as previously described, and install the various modules or at least the V4l drivers. &lt;br /&gt;
&lt;br /&gt;
The Linux uvc driver is only one module but you will have to build it. There is no bitbake recipe. I thought of trying to write one but building kernel modules is clearly a bit more complex so I ground to a halt on this. &lt;br /&gt;
&lt;br /&gt;
I realised though that Open Embedded and bitbake use the exact same compiling tools - gcc, make, etc - as you would use if compiling &amp;quot;by hand&amp;quot;. Therefore it is possible to quite easily tweak simple make files to build for the gumstix environment, as you have all the tools set up and working already. You need to make a few changes to the Makefile though – mostly just to tell the make system where to look for the tools. &lt;br /&gt;
&lt;br /&gt;
The idea then is to download the source code for the driver, edit the Makefile and build the driver for the arm architecture on the gumstix  using the cross compile tools you already have installed. &lt;br /&gt;
&lt;br /&gt;
First, set up a new directory to receive the source code - download this using subversion: &lt;br /&gt;
&lt;br /&gt;
 svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk &lt;br /&gt;
&lt;br /&gt;
Have a look at the Makefile that comes with the download. I found this a bit tricky to understand. There is a good explanation here of how this works: http://lwn.net/Kernel/LDD3/ - chapter 2 page 24. &lt;br /&gt;
&lt;br /&gt;
Because it's a module, the build process also uses the kernel build processes and Makefile. Therefore in addition to telling the build system which set of compiler tools to use, you also have to specify the location of the kernel build directory, as the make process moves into the kernel build directory for part of the build. &lt;br /&gt;
&lt;br /&gt;
You are going to substitute the locations of your kernel build directory and your cross compiler copy of gcc plus the other build tools by editing the Makefile - so you need to know where these are: &lt;br /&gt;
&lt;br /&gt;
The kernel build directory should be here: &lt;br /&gt;
&lt;br /&gt;
 ~/gumstix/gumstix-oe/tmp/work/gumstix-custom-verdex-angstrom-linux-gnueabi/gumstix-kernel-2.6.21-r1/linux-2.6.21 &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Your cross compiling copy of gcc etc should be in: &lt;br /&gt;
&lt;br /&gt;
 ~/ gumstix/gumstix-oe/tmp/cross/bin/  &lt;br /&gt;
&lt;br /&gt;
The file name will have the prefix arm-angstrom-linux-gnueabi- so gcc will be gumstix/gumstix-oe/tmp/cross/bin/arm-angstrom-linux-gnueabi-gcc and so on. &lt;br /&gt;
&lt;br /&gt;
I made three changes:&lt;br /&gt;
 &lt;br /&gt;
'''1.''' I specified the kernel build directory using the absolute path. Comment out the KERNEL_VERSION variable as you don’t need it. &lt;br /&gt;
&lt;br /&gt;
'''2.''' I set the CROSS_COMPILE variable so make can find the various tools needed. CROSS_COMPILE  is the path/ filename to the tool up to and including the last “dash” – for example ~/gumstix/gumstix-oe/tmp/cross/bin/arm-angstrom-linux-gnueabi-. If the compiler needs to use additional tools to gcc it finds them by adding the name of the tool to CROSS_COMPILE. Define it by adding this line near the top of the file:&lt;br /&gt;
 &lt;br /&gt;
 CROSS_COMPILE := /your home directory/gumstix/gumstix-oe/tmp/cross/bin/arm-angstrom-linux-gnueabi-&lt;br /&gt;
 &lt;br /&gt;
'''3.''' finally I specified &amp;quot;ARCH=arm&amp;quot; for good measure in the “make” line for uvc video:&lt;br /&gt;
 &lt;br /&gt;
 @(make -C $(KERNEL_DIR) M=$(PWD) ARCH=arm CROSS_COMPILE=$(CROSS_COMPILE) modules)&lt;br /&gt;
 &lt;br /&gt;
Some of this may be overkill but it works! There is no doubt a more elegant bitbake way of doing this (for example, by using variables as path names).&lt;br /&gt;
 &lt;br /&gt;
CD into the directory where your edited Makefile is located, run “make” and you should get the uvcvideo.ko module built.&lt;br /&gt;
 &lt;br /&gt;
I didn’t bother trying to modify the Makefile so “make install” would work as it’s just one file. Install it in /lib/modules/2.6.21/kernel/drivers/media/video, do depmod -a and your camera should be recognised when you plug it in. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Seeing the picture ===&lt;br /&gt;
&lt;br /&gt;
 &lt;br /&gt;
Why not use motion again? &lt;br /&gt;
&lt;br /&gt;
It didn’t work for me with the uvcvideo driver. I think there may be a problem with motion  working with the v4l2 drivers that uvcvideo uses. So if you want to use motion and it’s facilities, one way to do it is to get a stream produced which motion can then use – in the same way as if it would get a feed from an IP camera.&lt;br /&gt;
 &lt;br /&gt;
This is what mjpg-streamer does, and it also has the ability to drive the pan / tilt mechanism.&lt;br /&gt;
 &lt;br /&gt;
Again, the build uses a Makefile, and the same approach works. &lt;br /&gt;
&lt;br /&gt;
Download from here: &lt;br /&gt;
&lt;br /&gt;
 svn co https://mjpg-streamer.svn.sourceforge.net/svnroot/mjpg-streamer mjpg-streamer &lt;br /&gt;
&lt;br /&gt;
Again you edit the Makefile. The structure of the program is a binary and six plugin shared libraries. A number of the libraries also have Makefiles themselves so remember you have to edit each one to avoid the libraries building using the i386 architecture on your build machine. This caused me some headscratching as the libraries built okay but then were unrecogniseable when installed. &lt;br /&gt;
To build for the gumstix all I did was change the head of the file by  making CC = (absolute path to your cross compile gcc), defining the CROSS_COMPILE variable as before, and defining ARCH = arm. I suspect the latter two changes aren’t needed but it did no harm to have them in. No changes are needed to the body of the Makefile. &lt;br /&gt;
&lt;br /&gt;
CD into the main directory and enter &amp;quot;make&amp;quot;. &lt;br /&gt;
&lt;br /&gt;
If you have edited the Makefiles correctly, the binary and the six plugins will all be built. &lt;br /&gt;
&lt;br /&gt;
To be honest, these are really simple Makefiles so it should be  easy to write a bitbake recipe along the lines of the “hello world” tutorial. However the above approach took me very little time and was effective. &lt;br /&gt;
&lt;br /&gt;
The source download also includes material for a sample webpage which the built in webserver can use. Included is a control page which allows you to drive a pan / tilt camera also.&lt;br /&gt;
&lt;br /&gt;
You can install the libraries in the usual expected places or keep all the files in one directory and run it from there. There is a short script which allows this by exporting the current directory as the library path. &lt;br /&gt;
&lt;br /&gt;
That’s it! &lt;br /&gt;
&lt;br /&gt;
[[User:Briany|Briany]] 06:38, 15 July 2008 (CDT)&lt;br /&gt;
&lt;br /&gt;
=== libwebcam ===&lt;br /&gt;
&lt;br /&gt;
Logitech has created a library for accessing webcams called [http://www.quickcamteam.net/software/libwebcam libwebcam].  Of particular interest to me is the tool uvcdynctrl, which can control all aspects of the camera including the pan and tilt.&lt;br /&gt;
&lt;br /&gt;
Compilation works with two caveats.  For cmake, you'll need a toolchain file in order to cross compile for the gumstix.  Mine looks like this:&lt;br /&gt;
&lt;br /&gt;
 SET(CMAKE_SYSTEM_NAME Linux)&lt;br /&gt;
 #this one not so much&lt;br /&gt;
 SET(CMAKE_SYSTEM_VERSION 1)&lt;br /&gt;
 # specify the cross compiler&lt;br /&gt;
 SET(CMAKE_C_COMPILER  /home/randall/gumstix/gumstix-oe/tmp/cross/bin/arm-angstrom-linux-gnueabi-gcc)&lt;br /&gt;
 SET(CMAKE_CXX_COMPILER /home/randall/gumstix/gumstix-oe/tmp/cross/bin/arm-angstrom-linux-gnueabi-g++)&lt;br /&gt;
 # where is the target environment &lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH  /home/randall/gumstix/gumstix-oe/tmp/cross/arm-angstrom-linux-gnueabi)&lt;br /&gt;
 # search for programs in the build host directories&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)&lt;br /&gt;
 # for libraries and headers in the target directories&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)&lt;br /&gt;
 SET(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Make sure you've got cmake 2.6 or later. This won't work with earlier versions.  I used libwebcam-0.1.1, but I think this works with the current trunk.  Create links to uvcvideo.h and uvc_compat.h as instructed in the README. Then:&lt;br /&gt;
&lt;br /&gt;
1. Create a file with text above and call it toolchain.cmake or whatever you like.&lt;br /&gt;
&lt;br /&gt;
2. cd libwebcam-0.1.1&lt;br /&gt;
&lt;br /&gt;
3. in Libs/libwebcam/libwebcam.c, change NAME_MAX  to 255  This is a workaround because it seems to pick up limits.h in CMAKE_FIND_ROOT_PATH/include  intead of CMAKE_FIND_ROOT_PATH/include/linux/&lt;br /&gt;
&lt;br /&gt;
4. mkdir build &amp;amp;&amp;amp; cd build&lt;br /&gt;
&lt;br /&gt;
5. cmake -DCMAKE_TOOLCHAIN_FILE=../../toolchain.cmake ..&lt;br /&gt;
&lt;br /&gt;
6. make&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
This builds build/Libs/libwebcam.so.0.1.1 (and hyperlink) and build/Apps/uvcdynctrl/uvcdynctrl (and hyperlink).  Copy them over to your gumstix in /usr/local/lib and /usr/local/bin respectively and run ldconfig to pick up the library.  To get access to all the camera controls, you'll need to copy Apps/uvcdynctrl/data/046d/logitech.xml also and load it with uvcdynctrl -i logitech.xml.  There's a way to set this up to happen automagically with udev, but I don't know how yet.&lt;br /&gt;
&lt;br /&gt;
If you've got a pan/tilt camera, run /usr/local/bin/uvcdynctrl -s &amp;quot;Pan (relative)&amp;quot; 1280 and smile!  Steps are 1/64 degree (at least on the orbit) and the motor's smallest step is 1 degree.  Note that negatives are done like &amp;quot;Pan (relative)&amp;quot; -- -1280&lt;br /&gt;
&lt;br /&gt;
I used the stable version of libwebcam 0.1.1 and the recommended revision 178 of the Linux uvc driver.&lt;br /&gt;
--[[User:Randall|Randall]] 23:57, 21 September 2008 (CDT)&lt;br /&gt;
&lt;br /&gt;
[[Category:How to - webcams]]&lt;/div&gt;</summary>
		<author><name>Danny Chan</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Webcam_drivers_on_Open_Embedded_Part_1_-_pwc_driver_webcams&amp;diff=5798</id>
		<title>Webcam drivers on Open Embedded Part 1 - pwc driver webcams</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Webcam_drivers_on_Open_Embedded_Part_1_-_pwc_driver_webcams&amp;diff=5798"/>
				<updated>2012-03-30T21:09:58Z</updated>
		
		<summary type="html">&lt;p&gt;Danny Chan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Webcam drivers on Open Embedded Part 1 - pwc driver webcams=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I've spent a bit of time getting a couple of webcams successfully working on the gumstix and as something of a newbie found it not that straightforward. There seems to be quite a lot of interest in this area so I thought I would pull together a couple of Howtos - one for  cameras using the pwc driver (Philips, etc) (this one) and one for cameras using the Linux uvc  driver, which includes the Logitech Sphere / Orbit which has  a motorised pan / tilt. It may well be possible to get other cameras working using a similar approach – I just haven’t tried it. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I am not a software developer and quite new to Linux. The approach set out here may not be the best but did work for me and therefore I hope should be understandable to anyone in the same position – ie not an expert. Undoubtedly there will be better ways of achieving the end result - I just don't know what they are! Likewise I can't guarantee they will work for you and for all possible build configurations but I hope there is enough info here for you to figure out what went wrong if it doesn't work. &lt;br /&gt;
&lt;br /&gt;
I will have a go at explaining why the various steps work and so hopefully this will enable the same principles to be used for cameras using other drivers. However I am pretty much a newbie so I may get this wrong…. &lt;br /&gt;
&lt;br /&gt;
==Pre-requisites==&lt;br /&gt;
&lt;br /&gt;
I will assume you have set up Open Embedded on your build machine and have built one of the image recipes through to completion so you know all the bitbake elements actually work and it builds without errors. That's all that's essential I think - however if you haven't done this already, I highly recommend setting the gumstix up to boot and run from an SD or CF card. The advantages are you can keep the whole of the kernel and filesystem on the card and have no space limitation problems - and it's very quick and easy to change things just by loading the card into your desktop machine. &lt;br /&gt;
&lt;br /&gt;
==Pwc driver webcams== &lt;br /&gt;
&lt;br /&gt;
===Outline===&lt;br /&gt;
&lt;br /&gt;
What you are going to do is rebuild the kernel, having custom edited the kernel config file, to produce a custom kernel with the appropriate drivers activated as modules. The sources for the pwc driver, the Video 4 Linux drivers and other drivers needed are already built into the build system so when you rebuild the kernel with bitbake, you get a new kernel and ipk packages for the modules which you can then install. &lt;br /&gt;
&lt;br /&gt;
You want to make any custom changes in the user.collection folder. Why? Anything in user.collection takes priority over the same recipe elsewhere, but if you mess anything up (or just want to go back to the original configuration) you can delete the contents of user.collection and start over. &lt;br /&gt;
&lt;br /&gt;
====Step 1: Copy To user.collection====&lt;br /&gt;
So the first step is to copy over the recipes for the kernel build and associated files into user.collection. Copy the whole &amp;quot;linux&amp;quot; package folder across from com.gumstix.collection/packages into user.collection/packages. &lt;br /&gt;
&lt;br /&gt;
====Step 2: Edit the .config====&lt;br /&gt;
Next, find the .config file which was produced when you built your first (or subsequent) image. It should be in '''/tmp/work/gumstix-custom-verdex-angstrom-linux-gnueabi/gumstix-kernel-2.6.21-r1/linux-2.6.21/''' (or connex etc. if you  have a connex and not a verdex). The kernel version actually used by the build will change over time – this is the one mine currently uses. &lt;br /&gt;
&lt;br /&gt;
CD into this directory and type:&lt;br /&gt;
&lt;br /&gt;
  make ARCH=arm menuconfig&lt;br /&gt;
&lt;br /&gt;
After a bit of crunching a menu based kernel configuration tool opens up. You can step through this and enable whatever you want - generally (but not always) you have the choice of building the driver into the kernel or building as a module. &lt;br /&gt;
You want to build pwc and the associated drivers as modules so you will need to enter &amp;quot;M&amp;quot; where appropriate. &lt;br /&gt;
&lt;br /&gt;
Here are the entries you want to change to build pwc and the supporting v4l support. You might want to wander through the menus though and change other stuff - for example I have modified my boot from SD card to run an ext3 filesystem. &lt;br /&gt;
&lt;br /&gt;
--&amp;gt; Device drivers --&amp;gt; USB Support --&amp;gt; Support for host-side USB&lt;br /&gt;
 &lt;br /&gt;
--&amp;gt; Device drivers --&amp;gt; USB Support --&amp;gt; turn off USB Gadget support &lt;br /&gt;
&lt;br /&gt;
--&amp;gt; Multimedia devices --&amp;gt; Video For Linux &lt;br /&gt;
&lt;br /&gt;
--&amp;gt; Multimedia devices --&amp;gt; Video Capture Adapters --&amp;gt; V4L USB Devices --&amp;gt; usb philips camera &lt;br /&gt;
&lt;br /&gt;
When you are satisfied with the result, save it. This writes a new .config file back to the same place. &lt;br /&gt;
Now you want to copy this file over the default kernel config file (defconfig) in user.collection, replacing it. &lt;br /&gt;
&lt;br /&gt;
This will be in '''linux/gumstix-kernel-2.6.21/gumstix-custom-verdex/''' (or connex etc). Make sure you target the file for the same version of the kernel your build uses.&lt;br /&gt;
 &lt;br /&gt;
Now type '''“bitbake -c rebuild gumstix-kernel”.''' You should end up, when the build process finishes, with a new kernel and a series of ipks in tmp/deploy. &lt;br /&gt;
You may, however, get a message saying the kernel file is too big. &lt;br /&gt;
&lt;br /&gt;
You can override the size checker by adding the following line to your gumstix-custom-verdex.conf file ( in /conf/machine/) &lt;br /&gt;
&lt;br /&gt;
'''KERNEL_IMAGE_MAXSIZE += &amp;quot;1070000&amp;quot;''' (or whatever, a bit bigger than the expected size of the kernel). &lt;br /&gt;
&lt;br /&gt;
Again, I would copy over the conf files into user.collection and edit them there. &lt;br /&gt;
Making the kernel bigger is  fine if like me you are booting from a card with 2GB of space and therefore don't care about the size of the kernel. If you really need to get the kernel under 1MB however you might have to go back to do some pruning of your changes to get the kernel to fit - so back to &amp;quot;menuconfig&amp;quot; etc. &lt;br /&gt;
&lt;br /&gt;
You then replace your kernel with the newly built one, and install the ipks. There are 5 in total, for the following *.ko modules: compat_ioctl.ko, v4l1-compat.ko, v4l2-common.ko, videodev.ko, and pwc.ko. &lt;br /&gt;
&lt;br /&gt;
The package manager should take care of the installation but you can install the modules manually - the four modules other than pwc.ko go in /lib/modules/2.6.21/kernel/drivers/media/video, and pwc goes in it’s own subdirectory in .... …/kernel/drivers/media/video/pwc. Then do depmod -a so your system recognises the modules. &lt;br /&gt;
&lt;br /&gt;
The modules are now installed but not active. When you plug in your camera, however, the hotplugger should recognise the camera and load up the modules. If you can, try this with a connection over a serial port as then you will see the kernel messages over the port - otherwise run &amp;quot;dmesg&amp;quot;. This should show your camera being recognised and if you go into /dev, you should see the new device (/dev/video0 if this is your only video device).&lt;br /&gt;
&lt;br /&gt;
===Seeing the output===&lt;br /&gt;
&lt;br /&gt;
So far so good, you might say, but how do I get a picture? I’m sure there are many ways of accessing the driver. I used a package called motion.  More information about motion can be found [http://www.lavrsen.dk/foswiki/bin/view/Motion/WebHome here]. It’s pretty straightforward to build and install motion and turn on the built in webserver. There is a bitbake recipe for motion which built for me with no problems. The documentation for motion is good - you do more or less everything by editing the conf file. One of the options is to set up a mini webserver. If you then view the webpage created from another machine, you should see your webcam picture, provided you don't use I E which can't handle the streaming format – but Firefox works fine if your viewing machine is running Windows. &lt;br /&gt;
&lt;br /&gt;
===Other camera drivers=== &lt;br /&gt;
GSPCA worked fine for me with cameras which it supports.  I had to use the newer version, of which a bitbake recipe is not available, however.  If your camera is supported by the older versions, you should just be able to bitbake gspcav1 and move over/install the ipkg files.  To make the newer recipe, just take the older gspcav1 recipe, rename it gspcav1-20071224.bb and change the download location to http://mxhaard.free.fr/spca50x/Download/gspcav1-20071224.tar.gz.  Make sure to comment out the line about MS.patch because it will not apply to this version.  Then bitbake gspcav1-20071224 and move over/install the ipkgs.&lt;br /&gt;
&lt;br /&gt;
--[[User:Briany|Briany]] 07:01, 14 July 2008 (CDT)&lt;br /&gt;
[[Category:How to - webcams]]&lt;/div&gt;</summary>
		<author><name>Danny Chan</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Linaro&amp;diff=5797</id>
		<title>Linaro</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Linaro&amp;diff=5797"/>
				<updated>2012-03-30T21:06:15Z</updated>
		
		<summary type="html">&lt;p&gt;Danny Chan: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Gumstix Overo COM is supported by the [http://www.linaro.org Linaro Project].  Linaro is not a distribution but really an effort to make a common framework for unleashing open-source software on embedded systems.  The Linaro project is backed by Canonical (the people behind Ubuntu) among others which means this is a great place to start if you want to run Ubuntu on your Overo COM.&lt;br /&gt;
&lt;br /&gt;
== Getting the Images ==&lt;br /&gt;
Gumstix is scheduled for inclusion in the next Linaro release due in May 2011.  As of Mar 2011, an Alpha 3 release is available although you will want to use the [http://snapshots.linaro.org/11.05-daily/ daily snapshots] for the most up-to-date fixes.  You'll need two components:&lt;br /&gt;
* an Overo-specific [http://releases.linaro.org/latest/ubuntu/oneiric-hwpacks/ hardware pack] (look for hwpack_linaro-overo_20XXXXXX-1_armel_supported.tar.gz)&lt;br /&gt;
* an image. There are [http://releases.linaro.org/latest/ubuntu/oneiric-images/developer/ developer] (console-only), [http://releases.linaro.org/latest/ubuntu/oneiric-images/alip/ ALIP] (internet platform), or [http://releases.linaro.org/latest/ubuntu/oneiric-images/ubuntu-desktop/ Ubuntu-desktop] versions. For beginners, the ALIP package is recommended. Look for the linaro-o-alip-tar-20XXXXXX-0.tar.gz tarball.&lt;br /&gt;
&lt;br /&gt;
Download these two components and while you are waiting, grab a few important tools...&lt;br /&gt;
&lt;br /&gt;
== Getting the Tools ==&lt;br /&gt;
'''linaro-media-create''' is a tool to automatically create a bootable microSD for your Overo.  For those running Ubuntu Natty, apparently this will do the trick:&lt;br /&gt;
 sudo apt-get install linaro-image-tools&lt;br /&gt;
For those sporting Maverick (10.10), Lucid (10.04) and maybe older versions :&lt;br /&gt;
 sudo add-apt-repository ppa:linaro-maintainers/tools&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
 sudo apt-get install linaro-image-tools&lt;br /&gt;
 sudo apt-get install qemu-user-static&lt;br /&gt;
&lt;br /&gt;
More details are available [https://wiki.linaro.org/Releases/MilestoneBuilds here]&lt;br /&gt;
&lt;br /&gt;
== Making a Card ==&lt;br /&gt;
The final step is actually creating the microSD card.  Navigate to the directory where you downloaded the image and the hardware pack, slip a microSD card into your machine. The general format of the command you have to enter is the following:&lt;br /&gt;
 sudo linaro-media-create --rootfs ext3 --mmc [microSD_path] --binary [image_file] --hwpack [hwpack_file] --dev overo&lt;br /&gt;
An example of a command would be (your microSD_path, image_file and hwpack_file may be different):&lt;br /&gt;
 sudo linaro-media-create --rootfs ext3 --mmc /dev/mmcblk0 --binary linaro-n-ubuntu-desktop-tar-20110314-0.tar.gz --hwpack hwpack_linaro-overo_20110314-0_armel_supported.tar.gz --dev overo&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* use ''dmesg'' to check that your SD card is actually ''/dev/mmcblk0'' before doing this&lt;br /&gt;
&lt;br /&gt;
This command will take a little while to download any extra bits it needs and format your card.  For me, this was about 20 minutes total and I waited a long time on the 'Populating rootfs partition' step.  Once it is done, unmount the card and slide it into your Overo COM and power on as normal.&lt;br /&gt;
&lt;br /&gt;
== Compiling your own Kernel (Advanced) ==&lt;br /&gt;
&lt;br /&gt;
This is for advanced users who want more customizability with their kernel. You will need bootable MicroSD card created using linaro-media-create.&lt;br /&gt;
&lt;br /&gt;
Install the cross toolchain to cross compile your kernel. Details to install on Ubuntu 10.04 and 10.10 can be found [https://wiki.linaro.org/Resources/ToolchainInstall-10 here] and for Ubuntu 11.04 and later can be found [https://wiki.linaro.org/Resources/ToolchainInstall-11 here]&lt;br /&gt;
&lt;br /&gt;
Clone the source code for the kernel using git. A list of kernels can be found at http://git.linaro.org.&lt;br /&gt;
&lt;br /&gt;
 $ git clone git://git.linaro.org/kernel/linux-linaro-3.1.git&lt;br /&gt;
&lt;br /&gt;
Next, select a defconfig file to use as the .config file. The .config file contains what modules we want built into our kernel. For the Overo, the omap2plus_defconfig works as a good base.&lt;br /&gt;
&lt;br /&gt;
 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- omap2plus_defconfig&lt;br /&gt;
&lt;br /&gt;
There's no point in building our own kernel if we are going to use default configs. To tweak the modules installed, run the following command. You will be greeted nice GUI to select your modules. Press 'Y' on the module if you want it to be built inside the kernel, 'M' build it as a module, and 'N' to exclude it.&lt;br /&gt;
&lt;br /&gt;
 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- menuconfig&lt;br /&gt;
&lt;br /&gt;
Now build the kernel and modules.&lt;br /&gt;
&lt;br /&gt;
 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- uImage&lt;br /&gt;
 $ make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- modules&lt;br /&gt;
&lt;br /&gt;
To deploy your custom kernel, mount your MicroSD card created using linaro-media-create. Find out where it mounts and run the following commands. &lt;br /&gt;
&lt;br /&gt;
 $ cp arch/arm/boot/uImage /media/boot/&lt;br /&gt;
&lt;br /&gt;
For the modules, run the following:&lt;br /&gt;
&lt;br /&gt;
 $ make ARCH=arm INSTALL_MOD_PATH=/media/rootfs/ modules_install&lt;br /&gt;
 $ make ARCH=arm INSTALL_FW_PATH=/media/rootfs/lib/firmware/ firmware_install&lt;br /&gt;
&lt;br /&gt;
On the target, pause the boot process and type in the following commands&lt;br /&gt;
&lt;br /&gt;
 setenv loadbootscript ''   // This disables the UUID validation of the kernel/rootfs&lt;br /&gt;
 setenv console 'ttyO2,115200n8' // Depends on the console for your platform&lt;br /&gt;
 run bootcmd&lt;br /&gt;
&lt;br /&gt;
To save these commands, use 'saveenv' before 'run bootcmd'&lt;br /&gt;
&lt;br /&gt;
== Related Links ==&lt;br /&gt;
* improve Linaro by giving [https://wiki.linaro.org/Releases/1011/WeeklyTesting testing feedback]&lt;br /&gt;
* check out Michael Hope's [https://wiki.linaro.org/MichaelHope/Sandbox/StagecoachBringup Stagecoach build server] setup (which, I understand is used for the Linaro toolchain builds). &lt;br /&gt;
* another way of getting [http://snowbots.wordpress.com/2010/09/15/ubuntu-10-04-on-gumstix-overo/ Ubuntu on an Overo].&lt;/div&gt;</summary>
		<author><name>Danny Chan</name></author>	</entry>

	<entry>
		<id>https://wiki.gumstix.com/index.php?title=Linaro&amp;diff=5796</id>
		<title>Linaro</title>
		<link rel="alternate" type="text/html" href="https://wiki.gumstix.com/index.php?title=Linaro&amp;diff=5796"/>
				<updated>2012-03-29T23:03:59Z</updated>
		
		<summary type="html">&lt;p&gt;Danny Chan: /* Getting the Images */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;The Gumstix Overo COM is supported by the [http://www.linaro.org Linaro Project].  Linaro is not a distribution but really an effort to make a common framework for unleashing open-source software on embedded systems.  The Linaro project is backed by Canonical (the people behind Ubuntu) among others which means this is a great place to start if you want to run Ubuntu on your Overo COM.&lt;br /&gt;
&lt;br /&gt;
== Getting the Images ==&lt;br /&gt;
Gumstix is scheduled for inclusion in the next Linaro release due in May 2011.  As of Mar 2011, an Alpha 3 release is available although you will want to use the [http://snapshots.linaro.org/11.05-daily/ daily snapshots] for the most up-to-date fixes.  You'll need two components:&lt;br /&gt;
* an Overo-specific [http://releases.linaro.org/latest/ubuntu/oneiric-hwpacks/ hardware pack] (look for hwpack_linaro-overo_20XXXXXX-1_armel_supported.tar.gz)&lt;br /&gt;
* an image. There are [http://releases.linaro.org/latest/ubuntu/oneiric-images/developer/ developer] (console-only), [http://releases.linaro.org/latest/ubuntu/oneiric-images/alip/ ALIP] (internet platform), or [http://releases.linaro.org/latest/ubuntu/oneiric-images/ubuntu-desktop/ Ubuntu-desktop] versions. For beginners, the ALIP package is recommended. Look for the linaro-o-alip-tar-20XXXXXX-0.tar.gz tarball.&lt;br /&gt;
&lt;br /&gt;
Download these two components and while you are waiting, grab a few important tools...&lt;br /&gt;
&lt;br /&gt;
== Getting the Tools ==&lt;br /&gt;
'''linaro-media-create''' is a tool to automatically create a bootable microSD for your Overo.  For those running Ubuntu Natty, apparently this will do the trick:&lt;br /&gt;
 sudo apt-get install linaro-image-tools&lt;br /&gt;
For those sporting Maverick (10.10), Lucid (10.04) and maybe older versions :&lt;br /&gt;
 sudo add-apt-repository ppa:linaro-maintainers/tools&lt;br /&gt;
 sudo apt-get update &lt;br /&gt;
 sudo apt-get install linaro-image-tools&lt;br /&gt;
 sudo apt-get install qemu-user-static&lt;br /&gt;
&lt;br /&gt;
More details are available [https://wiki.linaro.org/Releases/MilestoneBuilds here]&lt;br /&gt;
&lt;br /&gt;
== Making a Card ==&lt;br /&gt;
The final step is actually creating the microSD card.  Navigate to the directory where you downloaded the image and the hardware pack, slip a microSD card into your machine. The general format of the command you have to enter is the following:&lt;br /&gt;
 sudo linaro-media-create --rootfs ext3 --mmc [microSD_path] --binary [image_file] --hwpack [hwpack_file] --dev overo&lt;br /&gt;
An example of a command would be (your microSD_path, image_file and hwpack_file may be different):&lt;br /&gt;
 sudo linaro-media-create --rootfs ext3 --mmc /dev/mmcblk0 --binary linaro-n-ubuntu-desktop-tar-20110314-0.tar.gz --hwpack hwpack_linaro-overo_20110314-0_armel_supported.tar.gz --dev overo&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
* use ''dmesg'' to check that your SD card is actually ''/dev/mmcblk0'' before doing this&lt;br /&gt;
&lt;br /&gt;
This command will take a little while to download any extra bits it needs and format your card.  For me, this was about 20 minutes total and I waited a long time on the 'Populating rootfs partition' step.  Once it is done, unmount the card and slide it into your Overo COM and power on as normal.&lt;br /&gt;
&lt;br /&gt;
== Related Links ==&lt;br /&gt;
* improve Linaro by giving [https://wiki.linaro.org/Releases/1011/WeeklyTesting testing feedback]&lt;br /&gt;
* check out Michael Hope's [https://wiki.linaro.org/MichaelHope/Sandbox/StagecoachBringup Stagecoach build server] setup (which, I understand is used for the Linaro toolchain builds). &lt;br /&gt;
* another way of getting [http://snowbots.wordpress.com/2010/09/15/ubuntu-10-04-on-gumstix-overo/ Ubuntu on an Overo].&lt;/div&gt;</summary>
		<author><name>Danny Chan</name></author>	</entry>

	</feed>