<?xml version="1.0"?>
<?xml-stylesheet type="text/css" href="http://elinux.org/skins/common/feed.css?303"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://elinux.org/api.php?action=feedcontributions&amp;user=Collinjc&amp;feedformat=atom</id>
		<title>eLinux.org - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://elinux.org/api.php?action=feedcontributions&amp;user=Collinjc&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://elinux.org/Special:Contributions/Collinjc"/>
		<updated>2013-05-23T14:39:21Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.21alpha</generator>

	<entry>
		<id>http://elinux.org/ECE597_Project_Auto_HUD</id>
		<title>ECE597 Project Auto HUD</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE597_Project_Auto_HUD"/>
				<updated>2010-05-21T00:30:49Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Display Buffer Mapping */  Added information about bootargs&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:ECE597]]&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The goal of this project is to use the beagle board to run image recognition on a camera feed located inside a car, and then signaling to the driver via a pico projector various objects of interest. &lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
[[user:routhcr | Chris Routh]]&lt;br /&gt;
&lt;br /&gt;
[[user:collinjc | J. Cody Collins]]&lt;br /&gt;
&lt;br /&gt;
[[user:jacksogc | Greg Jackson]]&lt;br /&gt;
&lt;br /&gt;
Keqiong Xin&lt;br /&gt;
&lt;br /&gt;
==Steps==&lt;br /&gt;
* Create Minimal Linux Image that can run OpenCV and run the display&lt;br /&gt;
* Determine hardware needed for the project&lt;br /&gt;
* Work on getting a camera functioning on the beagle board&lt;br /&gt;
* OpenCV running nativly on beagle with min config&lt;br /&gt;
* OpenCV working on video stream&lt;br /&gt;
* Projector working on Beagle&lt;br /&gt;
* Car integration (power)&lt;br /&gt;
* Algorithm development&lt;br /&gt;
&lt;br /&gt;
==Installing OpenCV (Development Machine)==&lt;br /&gt;
This is a script that will install OpenCV on a debian-based development machine. The script will add the debian testing repositories and install OpenCV and its dependencies. The repositories are then removed to avoid conflicts with existing packages during regular updates.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb http://mirrors.kernel.org/debian/ testing main&amp;quot; &amp;gt; /tmp/opencv-temp.list &lt;br /&gt;
echo &amp;quot;deb-src http://mirrors.kernel.org/debian/ testing main&amp;quot; &amp;gt;&amp;gt; /tmp/opencv-temp.list&lt;br /&gt;
sudo mv /tmp/opencv-temp.list /etc/apt/sources.list.d/opencv-temp.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install -y --allow-unauthenticated libcv4 libcv-dev libhighgui4 libhighgui-dev libcvaux4 libcvaux-dev&lt;br /&gt;
&lt;br /&gt;
sudo rm -f /etc/apt/sources.list.d/opencv-temp.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing OpenCV on the Beagle==&lt;br /&gt;
&lt;br /&gt;
Probably the easiest place to start is by using [http://www.angstrom-distribution.org/narcissus/ narcissus]. Choose beagleboard as the machine type and unstable for the release. In order for highgui to work (necessary for camera capture unless you are using GStreamer), you must build an image with X11 support. Therefore, choose X11 for the user environment. The choice for the X11 desktop environment is not critical, but it would be wise to choose something fairly lightweight, such as Enlightenment. It took several hours for Gnome to configure upon first boot. Once the filesystem has been extracted to a properly formatted SD card with an appropriate kernel on the boot partition (we tested this using 2.6.29), you should be able to boot. Upon boot, you will need to run opkg update. After this, you will need to run opkg install with the following packages:&lt;br /&gt;
&lt;br /&gt;
* gcc&lt;br /&gt;
* gcc-dev&lt;br /&gt;
* binutils&lt;br /&gt;
* binutils-dev&lt;br /&gt;
* opencv&lt;br /&gt;
* opencv-dev&lt;br /&gt;
* g++&lt;br /&gt;
&lt;br /&gt;
You should now be able to compile using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
g++ signdetect.cpp -o signdetect -I /usr/include/opencv/ -L /usr/lib -lm -lcv -lhighgui -lcvaux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==OpenCV Haar Training==&lt;br /&gt;
&lt;br /&gt;
==Display Buffer Mapping==&lt;br /&gt;
In order to get access to the display buffer on the beagle, you will need to run the following in U-Boot&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait omapfb.mode=1024x768MR-16@60 omapfb.debug=y omapdss.def_disp=dvi omapfb.vram=0:10M,1:10M vram=20M&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Other sources have mentioned setting a value for mmcargs. However, we were not able to get it to work properly until the options were applied '''directly''' to the bootargs variable.&lt;br /&gt;
&lt;br /&gt;
==Pico Projector Integration==&lt;br /&gt;
As of revision C4 of the Beagleboard there is no necessary configuration needed to display native resolution on the projector.&lt;br /&gt;
&lt;br /&gt;
==Future Directions==&lt;br /&gt;
===GStreamer on the DSP===&lt;br /&gt;
There is a package available for the beagle called gst-dsp, which is a native GStreamer plug-in to give it access to the DSP. Along with gst-opamfb and the dsp-bridge driver, this should allow us to access the DSP directly and output video directly to the framebuffer. OpenCV can interact with GStreamer, so this appears to be a very promising direction for the project. See [http://felipec.wordpress.com/2009/10/13/new-project-gst-dsp-with-beagleboard-demo-image/ this article] for more information and a demonstration. That article also has a link to a minimal beagle image that provides a native framebuffer video player without requiring X.&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE597_Project_Auto_HUD</id>
		<title>ECE597 Project Auto HUD</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE597_Project_Auto_HUD"/>
				<updated>2010-05-21T00:24:51Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Installing OpenCV on the Beagle */  Updated instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:ECE597]]&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The goal of this project is to use the beagle board to run image recognition on a camera feed located inside a car, and then signaling to the driver via a pico projector various objects of interest. &lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
[[user:routhcr | Chris Routh]]&lt;br /&gt;
&lt;br /&gt;
[[user:collinjc | J. Cody Collins]]&lt;br /&gt;
&lt;br /&gt;
[[user:jacksogc | Greg Jackson]]&lt;br /&gt;
&lt;br /&gt;
Keqiong Xin&lt;br /&gt;
&lt;br /&gt;
==Steps==&lt;br /&gt;
* Create Minimal Linux Image that can run OpenCV and run the display&lt;br /&gt;
* Determine hardware needed for the project&lt;br /&gt;
* Work on getting a camera functioning on the beagle board&lt;br /&gt;
* OpenCV running nativly on beagle with min config&lt;br /&gt;
* OpenCV working on video stream&lt;br /&gt;
* Projector working on Beagle&lt;br /&gt;
* Car integration (power)&lt;br /&gt;
* Algorithm development&lt;br /&gt;
&lt;br /&gt;
==Installing OpenCV (Development Machine)==&lt;br /&gt;
This is a script that will install OpenCV on a debian-based development machine. The script will add the debian testing repositories and install OpenCV and its dependencies. The repositories are then removed to avoid conflicts with existing packages during regular updates.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb http://mirrors.kernel.org/debian/ testing main&amp;quot; &amp;gt; /tmp/opencv-temp.list &lt;br /&gt;
echo &amp;quot;deb-src http://mirrors.kernel.org/debian/ testing main&amp;quot; &amp;gt;&amp;gt; /tmp/opencv-temp.list&lt;br /&gt;
sudo mv /tmp/opencv-temp.list /etc/apt/sources.list.d/opencv-temp.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install -y --allow-unauthenticated libcv4 libcv-dev libhighgui4 libhighgui-dev libcvaux4 libcvaux-dev&lt;br /&gt;
&lt;br /&gt;
sudo rm -f /etc/apt/sources.list.d/opencv-temp.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing OpenCV on the Beagle==&lt;br /&gt;
&lt;br /&gt;
Probably the easiest place to start is by using [http://www.angstrom-distribution.org/narcissus/ narcissus]. Choose beagleboard as the machine type and unstable for the release. In order for highgui to work (necessary for camera capture unless you are using GStreamer), you must build an image with X11 support. Therefore, choose X11 for the user environment. The choice for the X11 desktop environment is not critical, but it would be wise to choose something fairly lightweight, such as Enlightenment. It took several hours for Gnome to configure upon first boot. Once the filesystem has been extracted to a properly formatted SD card with an appropriate kernel on the boot partition (we tested this using 2.6.29), you should be able to boot. Upon boot, you will need to run opkg update. After this, you will need to run opkg install with the following packages:&lt;br /&gt;
&lt;br /&gt;
* gcc&lt;br /&gt;
* gcc-dev&lt;br /&gt;
* binutils&lt;br /&gt;
* binutils-dev&lt;br /&gt;
* opencv&lt;br /&gt;
* opencv-dev&lt;br /&gt;
* g++&lt;br /&gt;
&lt;br /&gt;
You should now be able to compile using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
g++ signdetect.cpp -o signdetect -I /usr/include/opencv/ -L /usr/lib -lm -lcv -lhighgui -lcvaux&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==OpenCV Haar Training==&lt;br /&gt;
&lt;br /&gt;
==Display Buffer Mapping==&lt;br /&gt;
==Pico Projector Integration==&lt;br /&gt;
As of revision C4 of the Beagleboard there is no necessary configuration needed to display native resolution on the projector.&lt;br /&gt;
&lt;br /&gt;
==Future Directions==&lt;br /&gt;
===GStreamer on the DSP===&lt;br /&gt;
There is a package available for the beagle called gst-dsp, which is a native GStreamer plug-in to give it access to the DSP. Along with gst-opamfb and the dsp-bridge driver, this should allow us to access the DSP directly and output video directly to the framebuffer. OpenCV can interact with GStreamer, so this appears to be a very promising direction for the project. See [http://felipec.wordpress.com/2009/10/13/new-project-gst-dsp-with-beagleboard-demo-image/ this article] for more information and a demonstration. That article also has a link to a minimal beagle image that provides a native framebuffer video player without requiring X.&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Lab12_The_Display_SubSystem_(DSS)</id>
		<title>ECE497 Lab12 The Display SubSystem (DSS)</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Lab12_The_Display_SubSystem_(DSS)"/>
				<updated>2010-05-18T23:18:04Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: I also needed the bootargs to be changed to get this to work&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
&lt;br /&gt;
This page explains, with examples, how the Display Subsystem (DSS) on the OMAP3530 on the BeagleBoard works.  It's based on the materials used in TI's [http://processors.wiki.ti.com/index.php/OMAP%E2%84%A2/DaVinci%E2%84%A2_System_Integration_using_Linux_Workshop DaVinci System Integration using Linux Workshop].  The workshop is based on the DVEVM.  I've converted those materials to the BeagleBoard.&lt;br /&gt;
&lt;br /&gt;
Look at [[ECE597 Installing DSP Development Tools]] for instructions on installing the development tools.&lt;br /&gt;
&lt;br /&gt;
The [http://software-dl.ti.com/trainingTTO/trainingTTO_public_sw/davinci/DaVinci-OMAP_Workshop_v2.0.pdf?page=187 Student Materials] for the workshop are very complete; however the workshop is based on the DVEVM and not the BeagleBoard.  Here I'll walk you through Lab 07 on the Beagle.  The Video Driver Details start on page 187 of the [http://software-dl.ti.com/trainingTTO/trainingTTO_public_sw/davinci/DaVinci-OMAP_Workshop_v2.0.pdf Student Materials].&lt;br /&gt;
&lt;br /&gt;
Here are my files for Lab 07 [[File:Workshop.Lab07.tar.gz]].  Lab 07 has four parts.  I have three working.&lt;br /&gt;
# OSD Setup (Take a bmp file, convert it to r16 format and display it on the GFX frame buffer (/dev/fb0).)&lt;br /&gt;
# Video Record (Read video from a web cam and store it in a file.)&lt;br /&gt;
# Video Playback (Read the file from above and display it on one of the video frame buffers (/dev/fb1).)&lt;br /&gt;
# Video Loopthru (Combine the previous two labs to read the live video and display it.)&lt;br /&gt;
&lt;br /&gt;
I'll update this when I have the Video Loopthru lab working.&lt;br /&gt;
&lt;br /&gt;
[http://e2e.ti.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.10.50.35/Omap35xxDisplaySubsystem_5F00_v2.0.zip Here] is a nice set of slides that explain the OMAP3530 DSS.  I found a reference to it [http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/30123.aspx here].  It's worth going through the slides before doing these labs.&lt;br /&gt;
&lt;br /&gt;
== Lab 7a OSD Setup ==&lt;br /&gt;
&lt;br /&gt;
This lab is a straight forward inspection lab that starts on page 200. Look at &amp;lt;code&amp;gt;video_thread.c&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;video_osd.c&amp;lt;/code&amp;gt; and see how they work. The lab has your create a 720 by 60 bmp file that is converted to RGB565 format.  Instead, create a 640 x 480 file that has a white background.  In lab 7c we will use the OMAP DSS to superimpose the video on this image.  I've already changed some &amp;lt;code&amp;gt;#define&amp;lt;/code&amp;gt;s to work with the 640 by 480 image. &lt;br /&gt;
&lt;br /&gt;
The Beagle code differs from the original workshop code in the the OMAP3530 doesn't have an attribute frame.  All that code has been removed.&lt;br /&gt;
&lt;br /&gt;
== Lab 7b Video Record ==&lt;br /&gt;
&lt;br /&gt;
This is also a straight forward inspection lab. It starts on page 206. I'm using at [http://en.wikipedia.org/wiki/PlayStation_Eye PS3 EYE] eb cam. &amp;lt;code&amp;gt;/dev/video0&amp;lt;/code&amp;gt; will appear when you plug the EYE into the USB of the Beagle. Look at &amp;lt;code&amp;gt;video_thread.c&amp;lt;/code&amp;gt; and &amp;lt;code&amp;gt;video_input.c&amp;lt;/code&amp;gt; and see how they work. I've set them up to capture a 640 by 480 image.&lt;br /&gt;
&lt;br /&gt;
Ditto on the attribute frame.  Capture some video here.  You will use it in the next lab.  The video is stored in &amp;lt;cdoe&amp;gt;/tmp&amp;lt;/code&amp;gt;.  I suggest you move it to your working directory, otherwise it will disappear when you reboot.&lt;br /&gt;
&lt;br /&gt;
== Lab 7c Video Playback ==&lt;br /&gt;
&lt;br /&gt;
Here we really depart from the workshop code. The lab starts on page 209. &amp;lt;code&amp;gt;video_osd.c&amp;lt;/code&amp;gt; writes the the image your created in lab 7a on frame buffer 0 (/dev/fb0). This is called the graphics buffer (FBVID_GFX).   &amp;lt;code&amp;gt;video_output.c&amp;lt;/code&amp;gt; reads the video from lab 7b and writes it to frame buffer 1 (/dev/fb1), which is one of the two video buffers.  '''You need to boot with the following arguments for this to work.'''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
setenv mmcargs 'setenv bootargs console=${console} vram=${vram} omapfb.mode=dvi:${dvimode} omapfb.debug=y omapdss.def_disp=${defaultdisplay} root=${mmcroot} rootfstype=${mmcrootfstype} ${optargs}'&lt;br /&gt;
setenv optargs omapfb.vram=0:10M,1:10M vram=20M &lt;br /&gt;
setenv bootargs console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait omapfb.mode=1024x768MR-16@60 omapfb.debug=y omapdss.def_disp=dvi omapfb.vram=0:10M,1:10M vram=20M&lt;br /&gt;
saveenv&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This reserves 20M for the video ram and allocate 10M for each for framebuffers 0 and 1.&lt;br /&gt;
&lt;br /&gt;
The following (from [[Media:ShowOSD.txt]]) sets up the DSS so graphics buffer is in front of the video buffer.  The graphics are at 50% transparency and while is transparent.  This will let the video show through the graphics.&lt;br /&gt;
&lt;br /&gt;
=== showOSD ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
ovl0=/sys/devices/platform/omapdss/overlay0&lt;br /&gt;
ovl1=/sys/devices/platform/omapdss/overlay1&lt;br /&gt;
ovl2=/sys/devices/platform/omapdss/overlay2&lt;br /&gt;
&lt;br /&gt;
mgr0=/sys/devices/platform/omapdss/manager0&lt;br /&gt;
mgr1=/sys/devices/platform/omapdss/manager1&lt;br /&gt;
&lt;br /&gt;
lcd=/sys/devices/platform/omapdss/display0&lt;br /&gt;
tv=/sys/devices/platform/omapdss/display1&lt;br /&gt;
&lt;br /&gt;
fb0=/sys/class/graphics/fb0&lt;br /&gt;
fb1=/sys/class/graphics/fb1&lt;br /&gt;
fb2=/sys/class/graphics/fb2&lt;br /&gt;
&lt;br /&gt;
# Disable the overlays&lt;br /&gt;
echo &amp;quot;0&amp;quot; &amp;gt; $ovl0/enabled&lt;br /&gt;
echo &amp;quot;0&amp;quot; &amp;gt; $ovl1/enabled&lt;br /&gt;
&lt;br /&gt;
# Connect fb0 to ovl0&lt;br /&gt;
echo &amp;quot;0&amp;quot; &amp;gt; $fb0/overlays&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; $fb1/overlays&lt;br /&gt;
&lt;br /&gt;
# Point both overlays to the lcd manager&lt;br /&gt;
echo &amp;quot;lcd&amp;quot; &amp;gt; $ovl0/manager&lt;br /&gt;
echo &amp;quot;lcd&amp;quot; &amp;gt; $ovl1/manager&lt;br /&gt;
&lt;br /&gt;
# for param in bits_per_pixel modes virtual_size&lt;br /&gt;
# do&lt;br /&gt;
# 	cat $fb0/$param &amp;gt; $fb1/$param&lt;br /&gt;
# done&lt;br /&gt;
&lt;br /&gt;
# echo $ovl0/output_size &amp;gt; $ovl1/output_size&lt;br /&gt;
echo 0,0 &amp;gt; $ovl0/position&lt;br /&gt;
echo 640,480 &amp;gt; $ovl1/output_size&lt;br /&gt;
echo 100,100 &amp;gt; $ovl1/position&lt;br /&gt;
&lt;br /&gt;
echo 128 &amp;gt; $ovl0/global_alpha&lt;br /&gt;
echo   1 &amp;gt; $mgr0/alpha_blending_enabled&lt;br /&gt;
&lt;br /&gt;
# Turn on transparency, make white (65535) transparent&lt;br /&gt;
echo   1 &amp;gt; $mgr0/trans_key_enabled&lt;br /&gt;
echo 65535 &amp;gt; $mgr0/trans_key_value&lt;br /&gt;
# echo video-source &amp;gt; $mgr0/trans_key_type&lt;br /&gt;
echo gfx-destination &amp;gt; $mgr0/trans_key_type&lt;br /&gt;
&lt;br /&gt;
# Set the video mode to YUV&lt;br /&gt;
# http://groups.google.com/group/beagleboard/browse_thread/thread/9bc347f5f0853aa1/907f1ac3554b1a19?lnk=gst&amp;amp;q=fbset#907f1ac3554b1a19&lt;br /&gt;
/usr/sbin/fbset -fb /dev/fb1 -nonstd 8&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; $ovl0/enabled&lt;br /&gt;
echo &amp;quot;1&amp;quot; &amp;gt; $ovl1/enabled&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Turning off gpe ===&lt;br /&gt;
Running above will write on top of what Angstrom is doing.  You can turn off the display manager by using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/etc/init.d/gpe-dm stop&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace &amp;lt;code&amp;gt;stop&amp;lt;/code&amp;gt; with &amp;lt;code&amp;gt;start&amp;lt;/code&amp;gt; if you want to run it again.&lt;br /&gt;
&lt;br /&gt;
== Lab 7d Video Loopthru ==&lt;br /&gt;
I'm still working on this one.&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE597_Project_Auto_HUD</id>
		<title>ECE597 Project Auto HUD</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE597_Project_Auto_HUD"/>
				<updated>2010-05-18T17:30:50Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: Added section to place OpenCV beagle installation instructions&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:ECE597]]&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The goal of this project is to use the beagle board to run image recognition on a camera feed located inside a car, and then signaling to the driver via a pico projector various objects of interest. &lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
[[user:routhcr | Chris Routh]]&lt;br /&gt;
&lt;br /&gt;
[[user:collinjc | J. Cody Collins]]&lt;br /&gt;
&lt;br /&gt;
Greg Jackson&lt;br /&gt;
&lt;br /&gt;
Keqiong Xin&lt;br /&gt;
&lt;br /&gt;
==Steps==&lt;br /&gt;
* Create Minimal Linux Image that can run OpenCV and run the display&lt;br /&gt;
* Determine hardware needed for the project&lt;br /&gt;
* Work on getting a camera functioning on the beagle board&lt;br /&gt;
* OpenCV running nativly on beagle with min config&lt;br /&gt;
* OpenCV working on video stream&lt;br /&gt;
* Projector working on Beagle&lt;br /&gt;
* Car integration (power)&lt;br /&gt;
* Algorithm development&lt;br /&gt;
&lt;br /&gt;
==Installing OpenCV (Development Machine)==&lt;br /&gt;
This is a script that will install OpenCV on a debian-based development machine. The script will add the debian testing repositories and install OpenCV and its dependencies. The repositories are then removed to avoid conflicts with existing packages during regular updates.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb http://mirrors.kernel.org/debian/ testing main&amp;quot; &amp;gt; /tmp/opencv-temp.list &lt;br /&gt;
echo &amp;quot;deb-src http://mirrors.kernel.org/debian/ testing main&amp;quot; &amp;gt;&amp;gt; /tmp/opencv-temp.list&lt;br /&gt;
sudo mv /tmp/opencv-temp.list /etc/apt/sources.list.d/opencv-temp.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install -y --allow-unauthenticated libcv4 libcv-dev libhighgui4 libhighgui-dev libcvaux4 libcvaux-dev&lt;br /&gt;
&lt;br /&gt;
sudo rm -f /etc/apt/sources.list.d/opencv-temp.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Installing OpenCV on the Beagle==&lt;br /&gt;
Add information from notes here.&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE597_Project_Auto_HUD</id>
		<title>ECE597 Project Auto HUD</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE597_Project_Auto_HUD"/>
				<updated>2010-05-10T20:16:30Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Installing OpenCV */  Updated script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:ECE597]]&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The goal of this project is to use the beagle board to run image recognition on a camera feed located inside a car, and then signaling to the driver via a pico projector various objects of interest. &lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
[[user:routhcr | Chris Routh]]&lt;br /&gt;
&lt;br /&gt;
[[user:collinjc | J. Cody Collins]]&lt;br /&gt;
&lt;br /&gt;
Greg Jackson&lt;br /&gt;
&lt;br /&gt;
Keqiong Xin&lt;br /&gt;
&lt;br /&gt;
==Steps==&lt;br /&gt;
* Create Minimal Linux Image that can run OpenCV and run the display&lt;br /&gt;
* Determine hardware needed for the project&lt;br /&gt;
* Work on getting a camera functioning on the beagle board&lt;br /&gt;
* OpenCV running nativly on beagle with min config&lt;br /&gt;
* OpenCV working on video stream&lt;br /&gt;
* Projector working on Beagle&lt;br /&gt;
* Car integration (power)&lt;br /&gt;
* Algorithm development&lt;br /&gt;
&lt;br /&gt;
==Installing OpenCV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;deb http://mirrors.kernel.org/debian/ testing main&amp;quot; &amp;gt; /tmp/opencv-temp.list &lt;br /&gt;
echo &amp;quot;deb-src http://mirrors.kernel.org/debian/ testing main&amp;quot; &amp;gt;&amp;gt; /tmp/opencv-temp.list&lt;br /&gt;
sudo mv /tmp/opencv-temp.list /etc/apt/sources.list.d/opencv-temp.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install -y --allow-unauthenticated libcv4 libcv-dev libhighgui4 libhighgui-dev libcvaux4 libcvaux-dev&lt;br /&gt;
&lt;br /&gt;
sudo rm -f /etc/apt/sources.list.d/opencv-temp.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Lab12_The_Display_SubSystem_(DSS)</id>
		<title>ECE497 Lab12 The Display SubSystem (DSS)</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Lab12_The_Display_SubSystem_(DSS)"/>
				<updated>2010-05-10T19:48:31Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: Fixed typo in category&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
&lt;br /&gt;
This page explains, with examples, how the Display Subsystem (DSS) on the OMAP3530 on the BeagleBoard works.  It's based on the materials used in TI's [http://processors.wiki.ti.com/index.php/OMAP%E2%84%A2/DaVinci%E2%84%A2_System_Integration_using_Linux_Workshop DaVinci System Integration using Linux Workshop].  The workshop is based on the DVEVM.  I've converted those materials to the BeagleBoard.&lt;br /&gt;
&lt;br /&gt;
Look [[ECE597_Installing_DSP_Development_Tools here]] for instructions on installing the development tools.&lt;br /&gt;
&lt;br /&gt;
Here are my files for Lab 07 [[File:Workshop.Lab07.tar.gz]].  Lab 07 has four parts.  I have three working.&lt;br /&gt;
# OSD Setup (Take a bmp file, convert it to r16 format and display it on the GFX frame buffer (/dev/fb0).)&lt;br /&gt;
# Video Record (Read video from a web cam and store it in a file.)&lt;br /&gt;
# Video Playback (Read the file from above and display it on one of the video frame buffers (/dev/fb1).)&lt;br /&gt;
# Video Loopthru (Combine the previous two labs to read the live video and display it.)&lt;br /&gt;
&lt;br /&gt;
I'll update this when I have the Video Loopthru lab working.&lt;br /&gt;
&lt;br /&gt;
[http://e2e.ti.com/cfs-file.ashx/__key/CommunityServer.Components.PostAttachments/00.00.10.50.35/Omap35xxDisplaySubsystem_5F00_v2.0.zip Here] is a nice set of slides that explain the OMAP3530 DSS.  I found a reference to it [http://e2e.ti.com/support/dsp/omap_applications_processors/f/42/t/30123.aspx here].  It's worth going through the slided before doing these labs.&lt;br /&gt;
&lt;br /&gt;
== Lab 7a OSD Setup ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Lab 7b Video Record ==&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE597_Project_Auto_HUD</id>
		<title>ECE597 Project Auto HUD</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE597_Project_Auto_HUD"/>
				<updated>2010-04-20T20:39:00Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: Added installer script for opencv&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[category:ECE597]]&lt;br /&gt;
&lt;br /&gt;
==Project Overview==&lt;br /&gt;
The goal of this project is to use the beagle board to run image recognition on a camera feed located inside a car, and then signaling to the driver via a pico projector various objects of interest. &lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
[[user:routhcr | Chris Routh]]&lt;br /&gt;
&lt;br /&gt;
[[user:collinjc | J. Cody Collins]]&lt;br /&gt;
&lt;br /&gt;
Greg Jackson&lt;br /&gt;
&lt;br /&gt;
Keqiong Xin&lt;br /&gt;
&lt;br /&gt;
==Steps==&lt;br /&gt;
* Create Minimal Linux Image that can run OpenCV and run the display&lt;br /&gt;
* Determine hardware needed for the project&lt;br /&gt;
* Work on getting a camera functioning on the beagle board&lt;br /&gt;
* OpenCV running nativly on beagle with min config&lt;br /&gt;
* OpenCV working on video stream&lt;br /&gt;
* Projector working on Beagle&lt;br /&gt;
* Car integration (power)&lt;br /&gt;
* Algorithm development&lt;br /&gt;
&lt;br /&gt;
==Installing OpenCV==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
sudo echo &amp;quot;deb http://mirrors.kernel.org/debian/ testing main&amp;quot; &amp;gt; /etc/apt/sources.list.d/opencv-temp.list&lt;br /&gt;
sudo echo &amp;quot;deb-src http://mirrors.kernel.org/debian/ testing main&amp;quot; &amp;gt;&amp;gt; /etc/apt/sources.list.d/opencv-temp.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
sudo apt-get install -y --allow-unauthenticated libcv4 libcv-dev libhighgui4 libhighgui-dev libcvaux4 libcvaux-dev&lt;br /&gt;
&lt;br /&gt;
sudo rm -f /etc/apt/sources.list.d/opencv-temp.list&lt;br /&gt;
&lt;br /&gt;
sudo apt-get update&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-04-13T16:30:57Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Chapter 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Listings =&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''2-2'''&lt;br /&gt;
| '''2-7'''&lt;br /&gt;
| '''Loading the Linux Kernel'''&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| '''4-1'''&lt;br /&gt;
| '''4-7'''&lt;br /&gt;
| '''Kernel Build Output'''&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
??&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o&lt;br /&gt;
total 764K&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c&lt;br /&gt;
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c&lt;br /&gt;
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c&lt;br /&gt;
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c&lt;br /&gt;
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c&lt;br /&gt;
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 4-17&lt;br /&gt;
| Snippet from Linux 2.6 .config&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
1872 #&lt;br /&gt;
1873 # USB Input Devices&lt;br /&gt;
1874 #&lt;br /&gt;
1875 CONFIG_USB_HID=y&lt;br /&gt;
1876 # CONFIG_HID_PID is not set&lt;br /&gt;
1877 # CONFIG_USB_HIDDEV is not set&lt;br /&gt;
1878 &lt;br /&gt;
1879 #&lt;br /&gt;
1880 # Special HID drivers&lt;br /&gt;
1881 #&lt;br /&gt;
1882 CONFIG_HID_COMPAT=y&lt;br /&gt;
1883 CONFIG_HID_A4TECH=y&lt;br /&gt;
1884 CONFIG_HID_APPLE=y&lt;br /&gt;
1885 CONFIG_HID_BELKIN=y&lt;br /&gt;
1886 CONFIG_HID_CHERRY=y&lt;br /&gt;
1887 CONFIG_HID_CHICONY=y&lt;br /&gt;
1888 CONFIG_HID_CYPRESS=y&lt;br /&gt;
1889 CONFIG_HID_EZKEY=y&lt;br /&gt;
1890 CONFIG_HID_GYRATION=y&lt;br /&gt;
1891 CONFIG_HID_LOGITECH=y&lt;br /&gt;
1892 # CONFIG_LOGITECH_FF is not set&lt;br /&gt;
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-5&lt;br /&gt;
| 4-21&lt;br /&gt;
| Linux autoconf.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % cat include/linux/autoconf.h| grep CONFIG_USB&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETMOTORCONTROL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_LEGOTOWER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_T613_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_RNDIS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_W9968CF_MODULE 1&lt;br /&gt;
#define CONFIG_USB_RTL8150 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_KAWETH 1&lt;br /&gt;
#define CONFIG_USB_ZERO_HNPTEST 1&lt;br /&gt;
#define CONFIG_USB_CXACRU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_ARK3116_MODULE 1&lt;br /&gt;
#define CONFIG_USB_G_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_PLUSB 1&lt;br /&gt;
#define CONFIG_USB_GPIO_VBUS 1&lt;br /&gt;
#define CONFIG_USB_EHCI_TT_NEWSCHED 1&lt;br /&gt;
#define CONFIG_USB_ACM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_EHCI 1&lt;br /&gt;
#define CONFIG_USB_USBNET 1&lt;br /&gt;
#define CONFIG_USB_LCD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_BELKIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LED_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1&lt;br /&gt;
#define CONFIG_USB_HID 1&lt;br /&gt;
#define CONFIG_USB_GADGET_VBUS_DRAW 2&lt;br /&gt;
#define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OTG_UTILS 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_OHCI 1&lt;br /&gt;
#define CONFIG_USB_CDC_COMPOSITE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GARMIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7720_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_NAVMAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_FINEPIX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7840_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TMC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OTI6858_MODULE 1&lt;br /&gt;
#define CONFIG_USB_WDM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MON 1&lt;br /&gt;
#define CONFIG_USB_OTG 1&lt;br /&gt;
#define CONFIG_USB_PWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETKIT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ET61X251_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_XIRCOM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SPEEDTOUCH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_CON 1&lt;br /&gt;
#define CONFIG_USB_NET_NET1080 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTION_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZR364XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_MCS7830 1&lt;br /&gt;
#define CONFIG_USB_VST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MARS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EHCI_ROOT_HUB_TT 1&lt;br /&gt;
#define CONFIG_USB_PHIDGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CYPRESS_CY7C63_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV534_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPW_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_AX8817X 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV519_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IUU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STV06XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1&lt;br /&gt;
#define CONFIG_USB_STORAGE 1&lt;br /&gt;
#define CONFIG_USB_IDMOUSE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PEGASUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1&lt;br /&gt;
#define CONFIG_USB_M5602_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CATC 1&lt;br /&gt;
#define CONFIG_USB_CYTHERM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GENERIC 1&lt;br /&gt;
#define CONFIG_USB_IRDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_S2255_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUSPEND 1&lt;br /&gt;
#define CONFIG_USB_XUSBATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TRANCEVIBRATOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SE401_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MIDI_GADGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_ZAURUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OMNINET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC207_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTICON_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OV511_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUPPORT 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SAFE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZERO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TEST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CH341_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI26_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI62_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_HP4X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGETFS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_CDC_SUBSET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1&lt;br /&gt;
#define CONFIG_USB_EHCI_HCD 1&lt;br /&gt;
#define CONFIG_USB_DEVICEFS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_TV8532_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPAQ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_CONEX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ZC3XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MCT_U232_MODULE 1&lt;br /&gt;
#define CONFIG_USB_KONICAWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KLSI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ALI_M5632 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_VC032X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_SELECTED 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_STK014_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OXU210HP_HCD 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ETOMS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_QUICKCAM_MESSENGER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_WLAN 1&lt;br /&gt;
#define CONFIG_USB_KC2190 1&lt;br /&gt;
#define CONFIG_USB_AN2720 1&lt;br /&gt;
#define CONFIG_USB_EPSON2888 1&lt;br /&gt;
#define CONFIG_USB_ZC0301_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZD1201 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_HOST 1&lt;br /&gt;
#define CONFIG_USB_G_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DEBUG_FS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC7311_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VICAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARMLINUX 1&lt;br /&gt;
#define CONFIG_USB_ATMEL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CP2101_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_SOC 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_OTG 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_PL2303_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1&lt;br /&gt;
#define CONFIG_USB_DEVICE_CLASS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DEBUG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MPR 1&lt;br /&gt;
#define CONFIG_USB_NET_CDCETHER 1&lt;br /&gt;
#define CONFIG_USB_EZUSB 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA500_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA501_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_BERRY_CHARGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EMPEG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA505_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA506_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA561_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA508_MODULE 1&lt;br /&gt;
#define CONFIG_USB_FILE_STORAGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETSERVO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1&lt;br /&gt;
#define CONFIG_USB_UEAGLEATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_INVENTRA_DMA 1&lt;br /&gt;
#define CONFIG_USB_NET_SMSC95XX 1&lt;br /&gt;
#define CONFIG_USB_STV680_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXB_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STKWEBCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DUALSPEED 1&lt;br /&gt;
#define CONFIG_USB_FTDI_ELAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_DM9601 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXJ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_IBMCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SN9C102_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_VISOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_GL620A 1&lt;br /&gt;
#define CONFIG_USB_BELKIN 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| 4-22&lt;br /&gt;
| Makefile Targets&lt;br /&gt;
| &amp;lt;pre&amp;gt;Cleaning targets:&lt;br /&gt;
  clean		  - Remove most generated files but keep the config and&lt;br /&gt;
                    enough build support to build external modules&lt;br /&gt;
  mrproper	  - Remove all generated files + config + various backup files&lt;br /&gt;
  distclean	  - mrproper + remove editor backup and patch files&lt;br /&gt;
&lt;br /&gt;
Configuration targets:&lt;br /&gt;
  config	  - Update current config utilising a line-oriented program&lt;br /&gt;
  menuconfig	  - Update current config utilising a menu based program&lt;br /&gt;
  xconfig	  - Update current config utilising a QT based front-end&lt;br /&gt;
  gconfig	  - Update current config utilising a GTK based front-end&lt;br /&gt;
  oldconfig	  - Update current config utilising a provided .config as base&lt;br /&gt;
  silentoldconfig - Same as oldconfig, but quietly&lt;br /&gt;
  randconfig	  - New config with random answer to all options&lt;br /&gt;
  defconfig	  - New config with default answer to all options&lt;br /&gt;
  allmodconfig	  - New config selecting modules when possible&lt;br /&gt;
  allyesconfig	  - New config where all options are accepted with yes&lt;br /&gt;
  allnoconfig	  - New config where all options are answered with no&lt;br /&gt;
&lt;br /&gt;
Other generic targets:&lt;br /&gt;
  all		  - Build all targets marked with [*]&lt;br /&gt;
* vmlinux	  - Build the bare kernel&lt;br /&gt;
* modules	  - Build all modules&lt;br /&gt;
  modules_install - Install all modules to INSTALL_MOD_PATH (default: /)&lt;br /&gt;
  firmware_install- Install all firmware to INSTALL_FW_PATH&lt;br /&gt;
                    (default: $(INSTALL_MOD_PATH)/lib/firmware)&lt;br /&gt;
  dir/            - Build all files in dir and below&lt;br /&gt;
  dir/file.[ois]  - Build specified target only&lt;br /&gt;
  dir/file.ko     - Build module including final link&lt;br /&gt;
  prepare         - Set up for building external modules&lt;br /&gt;
  tags/TAGS	  - Generate tags file for editors&lt;br /&gt;
  cscope	  - Generate cscope index&lt;br /&gt;
  kernelrelease	  - Output the release version string&lt;br /&gt;
  kernelversion	  - Output the version stored in Makefile&lt;br /&gt;
  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH&lt;br /&gt;
                    (default: /home/users/collinjc/oe/angstrom-dev-backup2/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r46/git/usr)&lt;br /&gt;
&lt;br /&gt;
Static analysers&lt;br /&gt;
  checkstack      - Generate a list of stack hogs&lt;br /&gt;
  namespacecheck  - Name space analysis on compiled kernel&lt;br /&gt;
  versioncheck    - Sanity check on version.h usage&lt;br /&gt;
  includecheck    - Check for duplicate included header files&lt;br /&gt;
  export_report   - List the usages of all exported symbols&lt;br /&gt;
  headers_check   - Sanity check on exported headers&lt;br /&gt;
  headerdep       - Detect inclusion cycles in headers&lt;br /&gt;
&lt;br /&gt;
Kernel packaging:&lt;br /&gt;
  rpm-pkg         - Build both source and binary RPM kernel packages&lt;br /&gt;
  binrpm-pkg      - Build only the binary kernel package&lt;br /&gt;
  deb-pkg         - Build the kernel as an deb package&lt;br /&gt;
  tar-pkg         - Build the kernel as an uncompressed tarball&lt;br /&gt;
  targz-pkg       - Build the kernel as a gzip compressed tarball&lt;br /&gt;
  tarbz2-pkg      - Build the kernel as a bzip2 compressed tarball&lt;br /&gt;
&lt;br /&gt;
Documentation targets:&lt;br /&gt;
 Linux kernel internal documentation in different formats:&lt;br /&gt;
  htmldocs        - HTML&lt;br /&gt;
  installmandocs  - install man pages generated by mandocs&lt;br /&gt;
  mandocs         - man pages&lt;br /&gt;
  pdfdocs         - PDF&lt;br /&gt;
  psdocs          - Postscript&lt;br /&gt;
  xmldocs         - XML DocBook&lt;br /&gt;
&lt;br /&gt;
Architecture specific targets (arm):&lt;br /&gt;
* zImage        - Compressed kernel image (arch/arm/boot/zImage)&lt;br /&gt;
  Image         - Uncompressed kernel image (arch/arm/boot/Image)&lt;br /&gt;
* xipImage      - XIP kernel image, if configured (arch/arm/boot/xipImage)&lt;br /&gt;
  uImage        - U-Boot wrapped zImage&lt;br /&gt;
  bootpImage    - Combined zImage and initial RAM disk&lt;br /&gt;
                  (supply initrd image via make variable INITRD=&amp;lt;path&amp;gt;)&lt;br /&gt;
  install       - Install uncompressed kernel&lt;br /&gt;
  zinstall      - Install compressed kernel&lt;br /&gt;
                  Install using (your) ~/bin/installkernel or&lt;br /&gt;
                  (distribution) /sbin/installkernel or&lt;br /&gt;
                  install to $(INSTALL_PATH) and run lilo&lt;br /&gt;
&lt;br /&gt;
  afeb9260_defconfig       - Build for afeb9260&lt;br /&gt;
  am200epdkit_defconfig    - Build for am200epdkit&lt;br /&gt;
  ams_delta_defconfig      - Build for ams_delta&lt;br /&gt;
  assabet_defconfig        - Build for assabet&lt;br /&gt;
  at91cap9adk_defconfig    - Build for at91cap9adk&lt;br /&gt;
  at91rm9200dk_defconfig   - Build for at91rm9200dk&lt;br /&gt;
  at91rm9200ek_defconfig   - Build for at91rm9200ek&lt;br /&gt;
  at91sam9260ek_defconfig  - Build for at91sam9260ek&lt;br /&gt;
  at91sam9261ek_defconfig  - Build for at91sam9261ek&lt;br /&gt;
  at91sam9263ek_defconfig  - Build for at91sam9263ek&lt;br /&gt;
  at91sam9g20ek_defconfig  - Build for at91sam9g20ek&lt;br /&gt;
  at91sam9rlek_defconfig   - Build for at91sam9rlek&lt;br /&gt;
  ateb9200_defconfig       - Build for ateb9200&lt;br /&gt;
  badge4_defconfig         - Build for badge4&lt;br /&gt;
  cam60_defconfig          - Build for cam60&lt;br /&gt;
  carmeva_defconfig        - Build for carmeva&lt;br /&gt;
  cerfcube_defconfig       - Build for cerfcube&lt;br /&gt;
  cm_x300_defconfig        - Build for cm_x300&lt;br /&gt;
  colibri_defconfig        - Build for colibri&lt;br /&gt;
  collie_defconfig         - Build for collie&lt;br /&gt;
  corgi_defconfig          - Build for corgi&lt;br /&gt;
  csb337_defconfig         - Build for csb337&lt;br /&gt;
  csb637_defconfig         - Build for csb637&lt;br /&gt;
  dss_omap3_beagle_defconfig - Build for dss_omap3_beagle&lt;br /&gt;
  dss_omap_3430sdp_defconfig - Build for dss_omap_3430sdp&lt;br /&gt;
  dss_overo_defconfig      - Build for dss_overo&lt;br /&gt;
  ebsa110_defconfig        - Build for ebsa110&lt;br /&gt;
  ecbat91_defconfig        - Build for ecbat91&lt;br /&gt;
  edb7211_defconfig        - Build for edb7211&lt;br /&gt;
  ep93xx_defconfig         - Build for ep93xx&lt;br /&gt;
  eseries_pxa_defconfig    - Build for eseries_pxa&lt;br /&gt;
  ezx_defconfig            - Build for ezx&lt;br /&gt;
  footbridge_defconfig     - Build for footbridge&lt;br /&gt;
  fortunet_defconfig       - Build for fortunet&lt;br /&gt;
  h3600_defconfig          - Build for h3600&lt;br /&gt;
  h5000_defconfig          - Build for h5000&lt;br /&gt;
  h7201_defconfig          - Build for h7201&lt;br /&gt;
  h7202_defconfig          - Build for h7202&lt;br /&gt;
  hackkit_defconfig        - Build for hackkit&lt;br /&gt;
  imx27ads_defconfig       - Build for imx27ads&lt;br /&gt;
  integrator_defconfig     - Build for integrator&lt;br /&gt;
  iop13xx_defconfig        - Build for iop13xx&lt;br /&gt;
  iop32x_defconfig         - Build for iop32x&lt;br /&gt;
  iop33x_defconfig         - Build for iop33x&lt;br /&gt;
  ixp2000_defconfig        - Build for ixp2000&lt;br /&gt;
  ixp23xx_defconfig        - Build for ixp23xx&lt;br /&gt;
  ixp4xx_defconfig         - Build for ixp4xx&lt;br /&gt;
  jornada720_defconfig     - Build for jornada720&lt;br /&gt;
  kafa_defconfig           - Build for kafa&lt;br /&gt;
  kb9202_defconfig         - Build for kb9202&lt;br /&gt;
  kirkwood_defconfig       - Build for kirkwood&lt;br /&gt;
  ks8695_defconfig         - Build for ks8695&lt;br /&gt;
  lart_defconfig           - Build for lart&lt;br /&gt;
  littleton_defconfig      - Build for littleton&lt;br /&gt;
  loki_defconfig           - Build for loki&lt;br /&gt;
  lpd270_defconfig         - Build for lpd270&lt;br /&gt;
  lpd7a400_defconfig       - Build for lpd7a400&lt;br /&gt;
  lpd7a404_defconfig       - Build for lpd7a404&lt;br /&gt;
  lubbock_defconfig        - Build for lubbock&lt;br /&gt;
  lusl7200_defconfig       - Build for lusl7200&lt;br /&gt;
  magician_defconfig       - Build for magician&lt;br /&gt;
  mainstone_defconfig      - Build for mainstone&lt;br /&gt;
  msm_defconfig            - Build for msm&lt;br /&gt;
  mv78xx0_defconfig        - Build for mv78xx0&lt;br /&gt;
  mx1ads_defconfig         - Build for mx1ads&lt;br /&gt;
  mx31ads_defconfig        - Build for mx31ads&lt;br /&gt;
  mx31litekit_defconfig    - Build for mx31litekit&lt;br /&gt;
  mx31moboard_defconfig    - Build for mx31moboard&lt;br /&gt;
  mx31pdk_defconfig        - Build for mx31pdk&lt;br /&gt;
  n770_defconfig           - Build for n770&lt;br /&gt;
  n800_defconfig           - Build for n800&lt;br /&gt;
  neocore926_defconfig     - Build for neocore926&lt;br /&gt;
  neponset_defconfig       - Build for neponset&lt;br /&gt;
  netwinder_defconfig      - Build for netwinder&lt;br /&gt;
  netx_defconfig           - Build for netx&lt;br /&gt;
  ns9xxx_defconfig         - Build for ns9xxx&lt;br /&gt;
  omap2_evm_defconfig      - Build for omap2_evm&lt;br /&gt;
  omap3_beagle_defconfig   - Build for omap3_beagle&lt;br /&gt;
  omap3_evm_defconfig      - Build for omap3_evm&lt;br /&gt;
  omap3_pandora_defconfig  - Build for omap3_pandora&lt;br /&gt;
  omap_2430sdp_defconfig   - Build for omap_2430sdp&lt;br /&gt;
  omap_3430sdp_defconfig   - Build for omap_3430sdp&lt;br /&gt;
  omap_apollon_2420_defconfig - Build for omap_apollon_2420&lt;br /&gt;
  omap_generic_1510_defconfig - Build for omap_generic_1510&lt;br /&gt;
  omap_generic_1610_defconfig - Build for omap_generic_1610&lt;br /&gt;
  omap_generic_1710_defconfig - Build for omap_generic_1710&lt;br /&gt;
  omap_generic_2420_defconfig - Build for omap_generic_2420&lt;br /&gt;
  omap_h2_1610_defconfig   - Build for omap_h2_1610&lt;br /&gt;
  omap_h3_1710_defconfig   - Build for omap_h3_1710&lt;br /&gt;
  omap_h4_2420_defconfig   - Build for omap_h4_2420&lt;br /&gt;
  omap_innovator_1510_defconfig - Build for omap_innovator_1510&lt;br /&gt;
  omap_innovator_1610_defconfig - Build for omap_innovator_1610&lt;br /&gt;
  omap_ldp_defconfig       - Build for omap_ldp&lt;br /&gt;
  omap_osk_5912_defconfig  - Build for omap_osk_5912&lt;br /&gt;
  omap_perseus2_730_defconfig - Build for omap_perseus2_730&lt;br /&gt;
  onearm_defconfig         - Build for onearm&lt;br /&gt;
  orion5x_defconfig        - Build for orion5x&lt;br /&gt;
  overo_defconfig          - Build for overo&lt;br /&gt;
  palmte_defconfig         - Build for palmte&lt;br /&gt;
  palmtt_defconfig         - Build for palmtt&lt;br /&gt;
  palmz71_defconfig        - Build for palmz71&lt;br /&gt;
  palmz72_defconfig        - Build for palmz72&lt;br /&gt;
  pcm027_defconfig         - Build for pcm027&lt;br /&gt;
  pcm037_defconfig         - Build for pcm037&lt;br /&gt;
  pcm038_defconfig         - Build for pcm038&lt;br /&gt;
  picotux200_defconfig     - Build for picotux200&lt;br /&gt;
  pleb_defconfig           - Build for pleb&lt;br /&gt;
  pnx4008_defconfig        - Build for pnx4008&lt;br /&gt;
  pxa255-idp_defconfig     - Build for pxa255-idp&lt;br /&gt;
  qil-a9260_defconfig      - Build for qil-a9260&lt;br /&gt;
  realview-smp_defconfig   - Build for realview-smp&lt;br /&gt;
  realview_defconfig       - Build for realview&lt;br /&gt;
  rpc_defconfig            - Build for rpc&lt;br /&gt;
  rx51_defconfig           - Build for rx51&lt;br /&gt;
  s3c2410_defconfig        - Build for s3c2410&lt;br /&gt;
  s3c6400_defconfig        - Build for s3c6400&lt;br /&gt;
  sam9_l9260_defconfig     - Build for sam9_l9260&lt;br /&gt;
  shannon_defconfig        - Build for shannon&lt;br /&gt;
  shark_defconfig          - Build for shark&lt;br /&gt;
  simpad_defconfig         - Build for simpad&lt;br /&gt;
  spitz_defconfig          - Build for spitz&lt;br /&gt;
  sx1_defconfig            - Build for sx1&lt;br /&gt;
  tct_hammer_defconfig     - Build for tct_hammer&lt;br /&gt;
  trizeps4_defconfig       - Build for trizeps4&lt;br /&gt;
  usb-a9260_defconfig      - Build for usb-a9260&lt;br /&gt;
  usb-a9263_defconfig      - Build for usb-a9263&lt;br /&gt;
  versatile_defconfig      - Build for versatile&lt;br /&gt;
  viper_defconfig          - Build for viper&lt;br /&gt;
  w90p910_defconfig        - Build for w90p910&lt;br /&gt;
  xm_x2xx_defconfig        - Build for xm_x2xx&lt;br /&gt;
  yl9200_defconfig         - Build for yl9200&lt;br /&gt;
  zylonite_defconfig       - Build for zylonite&lt;br /&gt;
&lt;br /&gt;
  make V=0|1 [targets] 0 =&amp;gt; quiet build (default), 1 =&amp;gt; verbose build&lt;br /&gt;
  make V=2   [targets] 2 =&amp;gt; give reason for rebuild of target&lt;br /&gt;
  make O=dir [targets] Locate all output files in &amp;quot;dir&amp;quot;, including .config&lt;br /&gt;
  make C=1   [targets] Check all c source with $CHECK (sparse by default)&lt;br /&gt;
  make C=2   [targets] Force check of all c source with $CHECK&lt;br /&gt;
&lt;br /&gt;
Execute &amp;quot;make&amp;quot; or &amp;quot;make all&amp;quot; to build all targets marked with [*] &lt;br /&gt;
For further info see the ./README file&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-7&lt;br /&gt;
| 4-27&lt;br /&gt;
| Partial Listing of Kconfig for ARM Architecture&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-8&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
 183 config VECTORS_BASE&lt;br /&gt;
 184         hex&lt;br /&gt;
 185         default 0xffff0000 if MMU || CPU_HIGH_VECTOR&lt;br /&gt;
 186         default DRAM_BASE if REMAP_VECTORS_TO_RAM&lt;br /&gt;
 187         default 0x00000000&lt;br /&gt;
 188         help&lt;br /&gt;
 189           The base address of exception vectors.&lt;br /&gt;
 190 &lt;br /&gt;
 191 source &amp;quot;init/Kconfig&amp;quot;&lt;br /&gt;
 192 &lt;br /&gt;
 193 source &amp;quot;kernel/Kconfig.freezer&amp;quot;&lt;br /&gt;
 194 &lt;br /&gt;
 195 menu &amp;quot;System Type&amp;quot;&lt;br /&gt;
 196 &lt;br /&gt;
 197 choice&lt;br /&gt;
 198         prompt &amp;quot;ARM system type&amp;quot;&lt;br /&gt;
 199         default ARCH_VERSATILE&lt;br /&gt;
 200 &lt;br /&gt;
 201 config ARCH_AAEC2000&lt;br /&gt;
 202         bool &amp;quot;Agilent AAEC-2000 based&amp;quot;&lt;br /&gt;
 203         select CPU_ARM920T&lt;br /&gt;
 204         select ARM_AMBA&lt;br /&gt;
 205         select HAVE_CLK&lt;br /&gt;
 206         help&lt;br /&gt;
 207           This enables support for systems based on the Agilent AAEC-2000&lt;br /&gt;
 208 &lt;br /&gt;
 209 config ARCH_INTEGRATOR&lt;br /&gt;
 210         bool &amp;quot;ARM Ltd. Integrator family&amp;quot;&lt;br /&gt;
 211         select ARM_AMBA                                                                                 &lt;br /&gt;
 212         select HAVE_CLK                                                                                 &lt;br /&gt;
 213         select COMMON_CLKDEV                                                                            &lt;br /&gt;
 214         select ICST525&lt;br /&gt;
 215         help&lt;br /&gt;
 216           Support for ARM's Integrator platform.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-9&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/plat-omap/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
....&lt;br /&gt;
config OMAP_BOOT_REASON&lt;br /&gt;
        bool &amp;quot;Support for boot reason&amp;quot;&lt;br /&gt;
        depends on OMAP_BOOT_TAG&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have a procfs entry for reading the boot&lt;br /&gt;
          reason in user-space.&lt;br /&gt;
&lt;br /&gt;
config OMAP_COMPONENT_VERSION&lt;br /&gt;
        bool &amp;quot;Support for component version display&amp;quot;&lt;br /&gt;
        depends on OMAP_BOOT_TAG &amp;amp;&amp;amp; PROC_FS&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have a procfs entry for reading component&lt;br /&gt;
          versions (supplied by the bootloader) in user-space.&lt;br /&gt;
&lt;br /&gt;
config OMAP_GPIO_SWITCH&lt;br /&gt;
        bool &amp;quot;GPIO switch support&amp;quot;&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have support for reporting of GPIO&lt;br /&gt;
          switches (e.g. cover switches) via sysfs. Your bootloader has&lt;br /&gt;
          to provide information about the switches to the kernel via the&lt;br /&gt;
          ATAG_BOARD mechanism if they're not defined by the board config.&lt;br /&gt;
&lt;br /&gt;
config OMAP_MUX&lt;br /&gt;
        bool &amp;quot;OMAP multiplexing support&amp;quot;&lt;br /&gt;
        depends on ARCH_OMAP&lt;br /&gt;
        default y&lt;br /&gt;
        help&lt;br /&gt;
          Pin multiplexing support for OMAP boards. If your bootloader&lt;br /&gt;
          sets the multiplexing correctly, say N. Otherwise, or if unsure,&lt;br /&gt;
          say Y.&lt;br /&gt;
&lt;br /&gt;
config OMAP_MUX_DEBUG&lt;br /&gt;
        bool &amp;quot;Multiplexing debug output&amp;quot;&lt;br /&gt;
        depends on OMAP_MUX&lt;br /&gt;
        help&lt;br /&gt;
          Makes the multiplexing functions print out a lot of debug info.&lt;br /&gt;
          This is useful if you want to find out the correct values of the&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| '''4-10'''&lt;br /&gt;
| '''4-32'''&lt;br /&gt;
| '''Customized .config File Snippet'''&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# OMAP Feature Selections&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set&lt;br /&gt;
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set&lt;br /&gt;
# CONFIG_OMAP_SMARTREFLEX is not set&lt;br /&gt;
CONFIG_OMAP_RESET_CLOCKS=y&lt;br /&gt;
CONFIG_OMAP_BOOT_TAG=y&lt;br /&gt;
CONFIG_OMAP_BOOT_REASON=y&lt;br /&gt;
# CONFIG_OMAP_COMPONENT_VERSION is not set&lt;br /&gt;
CONFIG_OMAP_GPIO_SWITCH=y&lt;br /&gt;
# CONFIG_OMAP_GPIO_SWITCH_2 is not set&lt;br /&gt;
# CONFIG_OMAP_MUX is not set&lt;br /&gt;
CONFIG_OMAP_MCBSP=y&lt;br /&gt;
# CONFIG_OMAP_MBOX_FWK is not set&lt;br /&gt;
CONFIG_OMAP_IOMMU=m&lt;br /&gt;
# CONFIG_OMAP_MPU_TIMER is not set&lt;br /&gt;
CONFIG_OMAP_32K_TIMER=y&lt;br /&gt;
CONFIG_OMAP_32K_TIMER_HZ=128&lt;br /&gt;
CONFIG_OMAP_TICK_GPTIMER=12&lt;br /&gt;
CONFIG_OMAP_DM_TIMER=y&lt;br /&gt;
# CONFIG_OMAP_LL_DEBUG_UART1 is not set&lt;br /&gt;
# CONFIG_OMAP_LL_DEBUG_UART2 is not set&lt;br /&gt;
CONFIG_OMAP_LL_DEBUG_UART3=y&lt;br /&gt;
CONFIG_ARCH_OMAP34XX=y&lt;br /&gt;
CONFIG_ARCH_OMAP3430=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-11&lt;br /&gt;
| 4-33&lt;br /&gt;
| Makefile from .../arch/arm/plat-omap/ Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Makefile for the linux kernel.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Common support&lt;br /&gt;
obj-y := common.o sram.o clock.o devices.o dma.o mux.o gpio.o \&lt;br /&gt;
         usb.o fb.o vram.o vrfb.o io.o&lt;br /&gt;
obj-m :=&lt;br /&gt;
obj-n :=&lt;br /&gt;
obj-  :=&lt;br /&gt;
&lt;br /&gt;
# OCPI interconnect support for 1710, 1610 and 5912&lt;br /&gt;
obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o&lt;br /&gt;
&lt;br /&gt;
obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o&lt;br /&gt;
obj-$(CONFIG_OMAP_IOMMU) += iommu.o iovmm.o&lt;br /&gt;
&lt;br /&gt;
obj-$(CONFIG_CPU_FREQ) += cpu-omap.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o&lt;br /&gt;
obj-$(CONFIG_OMAP_BOOT_REASON) += bootreason.o&lt;br /&gt;
obj-$(CONFIG_OMAP_COMPONENT_VERSION) += component-version.o&lt;br /&gt;
obj-$(CONFIG_OMAP_GPIO_SWITCH) += gpio-switch.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o&lt;br /&gt;
i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o&lt;br /&gt;
obj-y += $(i2c-omap-m) $(i2c-omap-y)&lt;br /&gt;
&lt;br /&gt;
# OMAP mailbox framework&lt;br /&gt;
obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 5-1&lt;br /&gt;
| 5-2&lt;br /&gt;
| Final Kernel Build Sequence:  ARM/BeagleBoard&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
$ export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
$ PATH=${OETREE}/angstrom-dev/staging/i686-linux/usr/bin/:${PATH}&lt;br /&gt;
$ PATH=${OETREE}/angstrom-dev/cross/armv7a/bin/:${PATH}&lt;br /&gt;
$ make CROSS_CO  UPD     include/linux/compile.h&lt;br /&gt;
&lt;br /&gt;
....&lt;br /&gt;
&lt;br /&gt;
  CC      init/version.o&lt;br /&gt;
  LD      init/built-in.o&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Fri Apr  2 00:21:21 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2991252 Bytes = 2921.14 kB = 2.85 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is readyMPILE=arm-angstrom-linux-gnueabi- uImage&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-2&lt;br /&gt;
| 5-5&lt;br /&gt;
| Assembly File .../arch/arm/boot/compressed/piggy.S&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
        .section .piggydata,#alloc&lt;br /&gt;
        .globl  input_data&lt;br /&gt;
input_data:&lt;br /&gt;
        .incbin &amp;quot;arch/arm/boot/compressed/piggy.gz&amp;quot;&lt;br /&gt;
        .globl  input_data_end&lt;br /&gt;
input_data_end:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-3&lt;br /&gt;
| 5-7&lt;br /&gt;
| Final Kernel Build Sequence:  ARM/BeagleBoard&lt;br /&gt;
| &amp;lt;pre&amp;gt;Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot: 10 ��� 9 ��� 8 ��� 7 ��� 6 ��� 5 ��� 4 ��� 3 ��� 2 ��� 1 ��� 0 &lt;br /&gt;
mmc1 is available&lt;br /&gt;
reading uImage&lt;br /&gt;
&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
[    0.000000] net_namespace: 1036 bytes&lt;br /&gt;
[    0.000000] regulator: core version 0.5&lt;br /&gt;
[    0.000000] NET: Registered protocol family 16&lt;br /&gt;
[    0.000000] GPIO-156 autorequested&lt;br /&gt;
[    0.000000] GPIO-159 autorequested&lt;br /&gt;
[    0.000000] Found NAND on CS0&lt;br /&gt;
[    0.000000] Registering NAND on CS0&lt;br /&gt;
[ 3130.761016] OMAP DMA hardware revision 4.0&lt;br /&gt;
[ 3130.794372] bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
[ 3130.854797] OMAP DSS rev 2.0&lt;br /&gt;
[ 3130.854888] OMAP DISPC rev 3.0&lt;br /&gt;
[ 3130.854919] OMAP VENC rev 2&lt;br /&gt;
[ 3130.855041] OMAP DSI rev 1.0&lt;br /&gt;
[ 3130.870819] i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz&lt;br /&gt;
[ 3130.874114] twl4030: PIH (irq 7) chaining IRQs 368..375&lt;br /&gt;
[ 3130.874145] twl4030: power (irq 373) chaining IRQs 376..383&lt;br /&gt;
[ 3130.874603] twl4030: gpio (irq 368) chaining IRQs 384..401&lt;br /&gt;
[ 3130.876922] regulator: VMMC1: 1850 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[ 3130.877655] regulator: VDAC: 1800 mV normal standby&lt;br /&gt;
[ 3130.878356] regulator: VUSB1V5: 1500 &amp;lt;--&amp;gt; 0 mV normal standby&lt;br /&gt;
[ 3130.879211] regulator: VUSB1V8: 1800 &amp;lt;--&amp;gt; 0 mV normal standby&lt;br /&gt;
[ 3130.879913] regulator: VUSB3V1: 3100 &amp;lt;--&amp;gt; 0 mV normal standby&lt;br /&gt;
[ 3130.880615] regulator: VPLL2: 1800 mV normal standby&lt;br /&gt;
[ 3130.881347] regulator: VMMC2: 2800 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[ 3130.882049] regulator: VSIM: 1800 &amp;lt;--&amp;gt; 3000 mV normal standby&lt;br /&gt;
[ 3130.882202] i2c_omap i2c_omap.2: bus 2 rev3.12 at 400 kHz&lt;br /&gt;
[ 3130.894989] i2c_omap i2c_omap.3: bus 3 rev3.12 at 100 kHz&lt;br /&gt;
[ 3130.896759] SCSI subsystem initialized&lt;br /&gt;
[ 3130.899688] twl4030_usb twl4030_usb: Initialized TWL4030 USB module&lt;br /&gt;
[ 3130.900909] usbcore: registered new interface driver usbfs&lt;br /&gt;
[ 3130.901367] usbcore: registered new interface driver hub&lt;br /&gt;
[ 3130.901702] usbcore: registered new device driver usb&lt;br /&gt;
[ 3130.904205] Bluetooth: Core ver 2.14&lt;br /&gt;
[ 3130.904632] NET: Registered protocol family 31&lt;br /&gt;
[ 3130.904632] Bluetooth: HCI device and connection manager initialized&lt;br /&gt;
[ 3130.904663] Bluetooth: HCI socket layer initialized&lt;br /&gt;
[ 3130.905242] cfg80211: Using static regulatory domain info&lt;br /&gt;
[ 3130.905242] cfg80211: Regulatory domain: US&lt;br /&gt;
[ 3130.905273] 	(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)&lt;br /&gt;
[ 3130.905273] 	(2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)&lt;br /&gt;
[ 3130.905303] 	(5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905303] 	(5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905334] 	(5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905334] 	(5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905364] 	(5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)&lt;br /&gt;
[ 3130.905364] cfg80211: Calling CRDA for country: US&lt;br /&gt;
[ 3130.908111] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0&lt;br /&gt;
[ 3130.910308] musb_hdrc: USB OTG mode controller at d80ab000 using DMA, IRQ 92&lt;br /&gt;
[ 3130.911560] NET: Registered protocol family 2&lt;br /&gt;
[ 3130.911804] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
[ 3130.912292] TCP established hash table entries: 8192 (order: 4, 65536 bytes)&lt;br /&gt;
[ 3130.912445] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)&lt;br /&gt;
[ 3130.912567] TCP: Hash tables configured (established 8192 bind 8192)&lt;br /&gt;
[ 3130.912567] TCP reno registered&lt;br /&gt;
[ 3130.912780] NET: Registered protocol family 1&lt;br /&gt;
[ 3130.916107] VFS: Disk quotas dquot_6.5.2&lt;br /&gt;
[ 3130.916168] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)&lt;br /&gt;
[ 3130.916656] squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
[ 3130.917236] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.&lt;br /&gt;
[ 3130.917938] msgmni has been set to 466&lt;br /&gt;
[ 3130.921691] alg: No test for stdrng (krng)&lt;br /&gt;
[ 3130.921783] io scheduler noop registered&lt;br /&gt;
[ 3130.921783] io scheduler anticipatory registered&lt;br /&gt;
[ 3130.921813] io scheduler deadline registered&lt;br /&gt;
[ 3130.921966] io scheduler cfq registered (default)&lt;br /&gt;
[ 3130.941101] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled&lt;br /&gt;
[ 3130.963867] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654&lt;br /&gt;
[ 3130.985321] serial8250.0: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654&lt;br /&gt;
[ 3131.007293] serial8250.0: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654&lt;br /&gt;
[ 3131.007324] console [ttyS2] enabled&lt;br /&gt;
[ 3131.527282] brd: module loaded&lt;br /&gt;
[ 3131.535125] loop: module loaded&lt;br /&gt;
[ 3131.538909] enc28j60 spi4.0: enc28j60 Ethernet driver 1.01 loaded&lt;br /&gt;
[ 3131.547546] enc28j60 spi4.0: enc28j60 chip not found&lt;br /&gt;
[ 3131.552612] enc28j60: probe of spi4.0 failed with error -5&lt;br /&gt;
[ 3131.558593] usbcore: registered new interface driver catc&lt;br /&gt;
[ 3131.564178] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver&lt;br /&gt;
[ 3131.570770] usbcore: registered new interface driver kaweth&lt;br /&gt;
[ 3131.576416] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver&lt;br /&gt;
[ 3131.584228] usbcore: registered new interface driver pegasus&lt;br /&gt;
[ 3131.589935] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver&lt;br /&gt;
[ 3131.597106] usbcore: registered new interface driver rtl8150&lt;br /&gt;
[ 3131.603057] usbcore: registered new interface driver asix&lt;br /&gt;
[ 3131.608734] usbcore: registered new interface driver cdc_ether&lt;br /&gt;
[ 3131.614837] usbcore: registered new interface driver dm9601&lt;br /&gt;
[ 3131.620666] usbcore: registered new interface driver smsc95xx&lt;br /&gt;
[ 3131.626708] usbcore: registered new interface driver gl620a&lt;br /&gt;
[ 3131.632598] usbcore: registered new interface driver net1080&lt;br /&gt;
[ 3131.638519] usbcore: registered new interface driver plusb&lt;br /&gt;
[ 3131.644256] usbcore: registered new interface driver rndis_host&lt;br /&gt;
[ 3131.650482] usbcore: registered new interface driver cdc_subset&lt;br /&gt;
[ 3131.656646] usbcore: registered new interface driver zaurus&lt;br /&gt;
[ 3131.662536] usbcore: registered new interface driver MOSCHIP usb-ethernet driver&lt;br /&gt;
[ 3131.670257] Broadcom 43xx driver loaded [ Features: L, Firmware-ID: FW13 ]&lt;br /&gt;
[ 3131.677551] usbcore: registered new interface driver zd1211rw&lt;br /&gt;
[ 3131.683532] usbcore: registered new interface driver rtl8187&lt;br /&gt;
[ 3131.689514] usbcore: registered new interface driver rndis_wlan&lt;br /&gt;
[ 3131.695739] usbcore: registered new interface driver zd1201&lt;br /&gt;
[ 3131.701629] usbcore: registered new interface driver usb8xxx&lt;br /&gt;
[ 3131.707550] usbcore: registered new interface driver rt2500usb&lt;br /&gt;
[ 3131.713714] usbcore: registered new interface driver rt73usb&lt;br /&gt;
[ 3131.719665] usbcore: registered new interface driver p54usb&lt;br /&gt;
[ 3131.725341] i2c /dev entries driver&lt;br /&gt;
[ 3131.730346] Driver 'sd' needs updating - please use bus_type methods&lt;br /&gt;
[ 3131.736968] Driver 'sr' needs updating - please use bus_type methods&lt;br /&gt;
[ 3131.744293] omap2-nand driver initializing&lt;br /&gt;
[ 3131.748718] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xba (Micron NAND 256MiB 1,8V 16-bit)&lt;br /&gt;
[ 3131.757751] cmdlinepart partition parsing not available&lt;br /&gt;
[ 3131.763061] Creating 5 MTD partitions on &amp;quot;omap2-nand&amp;quot;:&lt;br /&gt;
[ 3131.768218] 0x000000000000-0x000000080000 : &amp;quot;X-Loader&amp;quot;&lt;br /&gt;
[ 3131.775146] 0x000000080000-0x000000260000 : &amp;quot;U-Boot&amp;quot;&lt;br /&gt;
[ 3131.782012] 0x000000260000-0x000000280000 : &amp;quot;U-Boot Env&amp;quot;&lt;br /&gt;
[ 3131.788452] 0x000000280000-0x000000680000 : &amp;quot;Kernel&amp;quot;&lt;br /&gt;
[ 3131.796173] 0x000000680000-0x000010000000 : &amp;quot;File System&amp;quot;&lt;br /&gt;
[ 3131.911987] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver&lt;br /&gt;
[ 3131.918853] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller&lt;br /&gt;
[ 3131.925384] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1&lt;br /&gt;
[ 3131.933166] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800&lt;br /&gt;
[ 3131.950286] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00&lt;br /&gt;
[ 3131.956695] usb usb1: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3131.962738] hub 1-0:1.0: USB hub found&lt;br /&gt;
[ 3131.966583] hub 1-0:1.0: 3 ports detected&lt;br /&gt;
[ 3131.972351] Initializing USB Mass Storage driver...&lt;br /&gt;
[ 3131.977630] usbcore: registered new interface driver usb-storage&lt;br /&gt;
[ 3131.983734] USB Mass Storage support registered.&lt;br /&gt;
[ 3131.988922] mice: PS/2 mouse device common for all mice&lt;br /&gt;
[ 3131.994750] input: gpio-keys as /devices/platform/gpio-keys/input/input0&lt;br /&gt;
[ 3132.003601] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-adapter/i2c-1/1-0049/twl4030_pwrbutton/input/input1&lt;br /&gt;
[ 3132.295349] usb 1-2: new high speed USB device using ehci-omap and address 2&lt;br /&gt;
[ 3132.459320] usb 1-2: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3132.465362] hub 1-2:1.0: USB hub found&lt;br /&gt;
[ 3132.469390] hub 1-2:1.0: 4 ports detected&lt;br /&gt;
[ 3132.763183] usb 1-2.1: new high speed USB device using ehci-omap and address 3&lt;br /&gt;
[ 3132.902313] usb 1-2.1: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3133.013031] i2c_omap i2c_omap.2: controller timed out&lt;br /&gt;
[ 3133.018157] rtc-ds1307: probe of 2-0068 failed with error -5&lt;br /&gt;
[ 3133.025421] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec&lt;br /&gt;
[ 3133.031738] Bluetooth: HCI UART driver ver 2.2&lt;br /&gt;
[ 3133.036254] Bluetooth: HCI H4 protocol initialized&lt;br /&gt;
[ 3133.041076] Bluetooth: HCI BCSP protocol initialized&lt;br /&gt;
[ 3133.046112] Bluetooth: HCILL protocol initialized&lt;br /&gt;
[ 3133.050842] Bluetooth: Broadcom Blutonium firmware driver ver 1.2&lt;br /&gt;
[ 3133.057281] usbcore: registered new interface driver bcm203x&lt;br /&gt;
[ 3133.063018] Bluetooth: Digianswer Bluetooth USB driver ver 0.10&lt;br /&gt;
[ 3133.069213] usbcore: registered new interface driver bpa10x&lt;br /&gt;
[ 3133.074829] Bluetooth: BlueFRITZ! USB driver ver 1.2&lt;br /&gt;
[ 3133.080078] usbcore: registered new interface driver bfusb&lt;br /&gt;
[ 3133.085845] Bluetooth: Generic Bluetooth USB driver ver 0.4&lt;br /&gt;
[ 3133.091796] usbcore: registered new interface driver btusb&lt;br /&gt;
[ 3133.097381] Bluetooth: Generic Bluetooth SDIO driver ver 0.1&lt;br /&gt;
[ 3133.104034] mmci-omap-hs mmci-omap-hs.0: Failed to get debounce clock&lt;br /&gt;
[ 3133.216308] mmci-omap-hs mmci-omap-hs.1: Failed to get debounce clock&lt;br /&gt;
[ 3133.222869] regulator: Unable to get requested regulator: vmmc_aux&lt;br /&gt;
[ 3133.231506] Registered led device: beagleboard::usr0&lt;br /&gt;
[ 3133.236785] Registered led device: beagleboard::usr1&lt;br /&gt;
[ 3133.247497] usbcore: registered new interface driver usbhid&lt;br /&gt;
[ 3133.253143] usbhid: v2.6:USB HID core driver&lt;br /&gt;
[ 3133.258453] Advanced Linux Sound Architecture Driver Version 1.0.18a.&lt;br /&gt;
[ 3133.265960] usbcore: registered new interface driver snd-usb-audio&lt;br /&gt;
[ 3133.272521] No device for DAI twl4030&lt;br /&gt;
[ 3133.276214] No device for DAI omap-mcbsp-dai-0&lt;br /&gt;
[ 3133.280883] No device for DAI omap-mcbsp-dai-1&lt;br /&gt;
[ 3133.285339] No device for DAI omap-mcbsp-dai-2&lt;br /&gt;
[ 3133.289947] No device for DAI omap-mcbsp-dai-3&lt;br /&gt;
[ 3133.294433] No device for DAI omap-mcbsp-dai-4&lt;br /&gt;
[ 3133.298919] OMAP3 Beagle SoC init&lt;br /&gt;
[ 3133.302642] TWL4030 Audio Codec init &lt;br /&gt;
[ 3133.307403] asoc: twl4030 &amp;lt;-&amp;gt; omap-mcbsp-dai-0 mapping ok&lt;br /&gt;
[ 3133.321624] ALSA device list:&lt;br /&gt;
[ 3133.324615]   #0: omap3beagle (twl4030)&lt;br /&gt;
[ 3133.329040] oprofile: using arm/armv7&lt;br /&gt;
[ 3133.332916] TCP cubic registered&lt;br /&gt;
[ 3133.336303] NET: Registered protocol family 17&lt;br /&gt;
[ 3133.340850] NET: Registered protocol family 15&lt;br /&gt;
[ 3133.345367] Bluetooth: L2CAP ver 2.11&lt;br /&gt;
[ 3133.349090] Bluetooth: L2CAP socket layer initialized&lt;br /&gt;
[ 3133.354156] Bluetooth: SCO (Voice Link) ver 0.6&lt;br /&gt;
[ 3133.358764] Bluetooth: SCO socket layer initialized&lt;br /&gt;
[ 3133.369445] Bluetooth: RFCOMM socket layer initialized&lt;br /&gt;
[ 3133.374755] Bluetooth: RFCOMM TTY layer initialized&lt;br /&gt;
[ 3133.379669] Bluetooth: RFCOMM ver 1.10&lt;br /&gt;
[ 3133.383453] Bluetooth: BNEP (Ethernet Emulation) ver 1.3&lt;br /&gt;
[ 3133.388824] Bluetooth: BNEP filters: protocol multicast&lt;br /&gt;
[ 3133.394073] Bluetooth: HIDP (Human Interface Emulation) ver 1.2&lt;br /&gt;
[ 3133.403198] RPC: Registered udp transport module.&lt;br /&gt;
[ 3133.407989] RPC: Registered tcp transport module.&lt;br /&gt;
[ 3133.412841] lib80211: common routines for IEEE802.11 drivers&lt;br /&gt;
[ 3133.418609] ThumbEE CPU extension supported.&lt;br /&gt;
[ 3133.423156] Power Management for TI OMAP3.&lt;br /&gt;
[ 3133.433868] Disabling unused clock &amp;quot;sr2_fck&amp;quot;&lt;br /&gt;
[ 3133.438262] Disabling unused clock &amp;quot;sr1_fck&amp;quot;&lt;br /&gt;
[ 3133.442596] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.447052] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.451538] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.456024] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.460510] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.464996] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.469482] Disabling unused clock &amp;quot;gpt2_ick&amp;quot;&lt;br /&gt;
[ 3133.473876] Disabling unused clock &amp;quot;gpt3_ick&amp;quot;&lt;br /&gt;
[ 3133.478271] Disabling unused clock &amp;quot;gpt4_ick&amp;quot;&lt;br /&gt;
[ 3133.482666] Disabling unused clock &amp;quot;gpt5_ick&amp;quot;&lt;br /&gt;
[ 3133.487060] Disabling unused clock &amp;quot;gpt6_ick&amp;quot;&lt;br /&gt;
[ 3133.491455] Disabling unused clock &amp;quot;gpt7_ick&amp;quot;&lt;br /&gt;
[ 3133.495849] Disabling unused clock &amp;quot;gpt8_ick&amp;quot;&lt;br /&gt;
[ 3133.500244] Disabling unused clock &amp;quot;gpt9_ick&amp;quot;&lt;br /&gt;
[ 3133.504608] Disabling unused clock &amp;quot;wdt3_ick&amp;quot;&lt;br /&gt;
[ 3133.509033] Disabling unused clock &amp;quot;wdt3_fck&amp;quot;&lt;br /&gt;
[ 3133.513641] Disabling unused clock &amp;quot;gpio2_dbck&amp;quot;&lt;br /&gt;
[ 3133.518188] Disabling unused clock &amp;quot;gpio3_dbck&amp;quot;&lt;br /&gt;
[ 3133.522766] Disabling unused clock &amp;quot;gpio4_dbck&amp;quot;&lt;br /&gt;
[ 3133.527343] Disabling unused clock &amp;quot;gpio5_dbck&amp;quot;&lt;br /&gt;
[ 3133.531921] Disabling unused clock &amp;quot;gpio6_dbck&amp;quot;&lt;br /&gt;
[ 3133.536499] Disabling unused clock &amp;quot;gpt9_fck&amp;quot;&lt;br /&gt;
[ 3133.540863] Disabling unused clock &amp;quot;gpt8_fck&amp;quot;&lt;br /&gt;
[ 3133.545288] Disabling unused clock &amp;quot;gpt7_fck&amp;quot;&lt;br /&gt;
[ 3133.549652] Disabling unused clock &amp;quot;gpt6_fck&amp;quot;&lt;br /&gt;
[ 3133.554077] Disabling unused clock &amp;quot;gpt5_fck&amp;quot;&lt;br /&gt;
[ 3133.558441] Disabling unused clock &amp;quot;gpt4_fck&amp;quot;&lt;br /&gt;
[ 3133.562866] Disabling unused clock &amp;quot;gpt3_fck&amp;quot;&lt;br /&gt;
[ 3133.567230] Disabling unused clock &amp;quot;gpt2_fck&amp;quot;&lt;br /&gt;
[ 3133.571655] Disabling unused clock &amp;quot;gpt1_ick&amp;quot;&lt;br /&gt;
[ 3133.576049] Disabling unused clock &amp;quot;wdt1_ick&amp;quot;&lt;br /&gt;
[ 3133.580413] Disabling unused clock &amp;quot;wdt2_ick&amp;quot;&lt;br /&gt;
[ 3133.584838] Disabling unused clock &amp;quot;wdt2_fck&amp;quot;&lt;br /&gt;
[ 3133.589202] Disabling unused clock &amp;quot;gpio1_dbck&amp;quot;&lt;br /&gt;
[ 3133.593780] Disabling unused clock &amp;quot;gpt1_fck&amp;quot;&lt;br /&gt;
[ 3133.598175] Disabling unused clock &amp;quot;cam_ick&amp;quot;&lt;br /&gt;
[ 3133.602508] Disabling unused clock &amp;quot;cam_mclk&amp;quot;&lt;br /&gt;
[ 3133.607116] Disabling unused clock &amp;quot;des1_ick&amp;quot;&lt;br /&gt;
[ 3133.611511] Disabling unused clock &amp;quot;sha11_ick&amp;quot;&lt;br /&gt;
[ 3133.615997] Disabling unused clock &amp;quot;rng_ick&amp;quot;&lt;br /&gt;
[ 3133.620300] Disabling unused clock &amp;quot;aes1_ick&amp;quot;&lt;br /&gt;
[ 3133.624694] Disabling unused clock &amp;quot;ssi_ick&amp;quot;&lt;br /&gt;
[ 3133.628997] Disabling unused clock &amp;quot;mailboxes_ick&amp;quot;&lt;br /&gt;
[ 3133.633850] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.638336] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.642791] Disabling unused clock &amp;quot;gpt10_ick&amp;quot;&lt;br /&gt;
[ 3133.647277] Disabling unused clock &amp;quot;gpt11_ick&amp;quot;&lt;br /&gt;
[ 3133.651763] Disabling unused clock &amp;quot;hdq_ick&amp;quot;&lt;br /&gt;
[ 3133.656066] Disabling unused clock &amp;quot;mspro_ick&amp;quot;&lt;br /&gt;
[ 3133.660552] Disabling unused clock &amp;quot;des2_ick&amp;quot;&lt;br /&gt;
[ 3133.664947] Disabling unused clock &amp;quot;sha12_ick&amp;quot;&lt;br /&gt;
[ 3133.669433] Disabling unused clock &amp;quot;aes2_ick&amp;quot;&lt;br /&gt;
[ 3133.673828] Disabling unused clock &amp;quot;icr_ick&amp;quot;&lt;br /&gt;
[ 3133.678131] Disabling unused clock &amp;quot;pka_ick&amp;quot;&lt;br /&gt;
[ 3133.682434] Disabling unused clock &amp;quot;ssi_ssr_fck&amp;quot;&lt;br /&gt;
[ 3133.687103] Disabling unused clock &amp;quot;hdq_fck&amp;quot;&lt;br /&gt;
[ 3133.691406] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.695892] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.700561] Disabling unused clock &amp;quot;mspro_fck&amp;quot;&lt;br /&gt;
[ 3133.705047] Disabling unused clock &amp;quot;gpt11_fck&amp;quot;&lt;br /&gt;
[ 3133.709533] Disabling unused clock &amp;quot;gpt10_fck&amp;quot;&lt;br /&gt;
[ 3133.713989] Disabling unused clock &amp;quot;dpll4_m6x2_ck&amp;quot;&lt;br /&gt;
[ 3133.718841] Disabling unused clock &amp;quot;dpll3_m3x2_ck&amp;quot;&lt;br /&gt;
[ 3133.723693] Disabling unused clock &amp;quot;sys_clkout1&amp;quot;&lt;br /&gt;
[ 3133.728363] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1&lt;br /&gt;
[ 3133.742828] registered taskstats version 1&lt;br /&gt;
[ 3133.764251] Console: switching to colour frame buffer device 80x30&lt;br /&gt;
[ 3133.778198] clock: clksel_round_rate_div: dpll4_m4_ck target_rate 48000000&lt;br /&gt;
[ 3133.785125] clock: new_div = 9, new_rate = 48000000&lt;br /&gt;
[ 3133.795593] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)&lt;br /&gt;
[ 3133.887939] mmc0: new high speed SDHC card at address a9ed&lt;br /&gt;
[ 3133.894042] mmcblk0: mmc0:a9ed SD08G 7.42 GiB &lt;br /&gt;
[ 3133.898986]  mmcblk0: p1 p2&lt;br /&gt;
[ 3134.070312] eth0 (asix): not using net_device_ops yet&lt;br /&gt;
[ 3134.076110] eth0: register 'asix' at usb-ehci-omap.0-2.1, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c3:f3&lt;br /&gt;
[ 3134.134582] kjournald starting.  Commit interval 5 seconds&lt;br /&gt;
[ 3134.169372] usb 1-2.4: new high speed USB device using ehci-omap and address 4&lt;br /&gt;
[ 3134.295684] usb 1-2.4: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3134.301910] hub 1-2.4:1.0: USB hub found&lt;br /&gt;
[ 3134.305999] hub 1-2.4:1.0: 4 ports detected&lt;br /&gt;
[ 3134.390747] EXT3 FS on mmcblk0p2, internal journal&lt;br /&gt;
[ 3134.395599] EXT3-fs: mounted filesystem with ordered data mode.&lt;br /&gt;
[ 3134.401641] VFS: Mounted root (ext3 filesystem) on device 179:2.&lt;br /&gt;
[ 3134.407836] Freeing init memory: 204K&lt;br /&gt;
&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
&lt;br /&gt;
Starting udev[ 3140.940948] twl4030_rtc twl4030_rtc: rtc core: registered twl4030_rtc as rtc0&lt;br /&gt;
[ 3140.948486] twl4030_rtc twl4030_rtc: Power up reset detected.&lt;br /&gt;
[ 3141.017303] twl4030_rtc twl4030_rtc: Enabling TWL4030-RTC.&lt;br /&gt;
[ 3141.952758] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 0&lt;br /&gt;
[ 3141.960601] Buffer I/O error on device mtdblock0, logical block 0&lt;br /&gt;
[ 3142.023376] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 8&lt;br /&gt;
[ 3142.031188] Buffer I/O error on device mtdblock0, logical block 1&lt;br /&gt;
[ 3142.067901] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 16&lt;br /&gt;
[ 3142.075836] Buffer I/O error on device mtdblock0, logical block 2&lt;br /&gt;
[ 3142.100311] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 24&lt;br /&gt;
[ 3142.108215] Buffer I/O error on device mtdblock0, logical block 3&lt;br /&gt;
[ 3142.139556] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 0&lt;br /&gt;
[ 3142.162719] Buffer I/O error on device mtdblock0, logical block 0&lt;br /&gt;
 and populating dev cache&lt;br /&gt;
Remounting root file system...&lt;br /&gt;
[ 3147.624511] NET: Registered protocol family 10&lt;br /&gt;
[ 3147.699707] NET: Registered protocol family 23&lt;br /&gt;
[ 3147.727874] IrCOMM protocol (Dag Brattli)&lt;br /&gt;
Unknown HZ value! (70) Assume 100.&lt;br /&gt;
ALSA: Restoring mixer settings...&lt;br /&gt;
Configuring network interfaces... [ 3149.568145] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
eth0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
udhcpc (v1.13.2) started&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
Sending discover...&lt;br /&gt;
[ 3149.732147] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
Sending discover...&lt;br /&gt;
Sending select for 192.168.1.108...&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
&lt;br /&gt;
INIT: Entering runlevel: 5&lt;br /&gt;
&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-4&lt;br /&gt;
| 5-17&lt;br /&gt;
| Console Setup Code Snippet from .../kernel/printk.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
 * Set up a list of consoles.  Called from init/main.c&lt;br /&gt;
 */&lt;br /&gt;
static int __init console_setup(char *str)&lt;br /&gt;
{&lt;br /&gt;
        char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for index */&lt;br /&gt;
        char *s, *options, *brl_options = NULL;&lt;br /&gt;
        int idx;&lt;br /&gt;
&lt;br /&gt;
#ifdef CONFIG_A11Y_BRAILLE_CONSOLE&lt;br /&gt;
        if (!memcmp(str, &amp;quot;brl,&amp;quot;, 4)) {&lt;br /&gt;
                brl_options = &amp;quot;&amp;quot;;&lt;br /&gt;
                str += 4;&lt;br /&gt;
        } else if (!memcmp(str, &amp;quot;brl=&amp;quot;, 4)) {&lt;br /&gt;
                brl_options = str + 4;&lt;br /&gt;
                str = strchr(brl_options, ',');&lt;br /&gt;
                if (!str) {&lt;br /&gt;
                        printk(KERN_ERR &amp;quot;need port name after brl=\n&amp;quot;);&lt;br /&gt;
                        return 1;&lt;br /&gt;
                }&lt;br /&gt;
                *(str++) = 0;&lt;br /&gt;
        }&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Decode str into name, index, options.&lt;br /&gt;
         */&lt;br /&gt;
        if (str[0] &amp;gt;= '0' &amp;amp;&amp;amp; str[0] &amp;lt;= '9') {&lt;br /&gt;
                strcpy(buf, &amp;quot;ttyS&amp;quot;);&lt;br /&gt;
                strncpy(buf + 4, str, sizeof(buf) - 5);&lt;br /&gt;
        } else {&lt;br /&gt;
                strncpy(buf, str, sizeof(buf) - 1);&lt;br /&gt;
        }&lt;br /&gt;
        buf[sizeof(buf) - 1] = 0;&lt;br /&gt;
        if ((options = strchr(str, ',')) != NULL)&lt;br /&gt;
                *(options++) = 0;&lt;br /&gt;
#ifdef __sparc__&lt;br /&gt;
        if (!strcmp(str, &amp;quot;ttya&amp;quot;))&lt;br /&gt;
                strcpy(buf, &amp;quot;ttyS0&amp;quot;);&lt;br /&gt;
        if (!strcmp(str, &amp;quot;ttyb&amp;quot;))&lt;br /&gt;
                strcpy(buf, &amp;quot;ttyS1&amp;quot;);&lt;br /&gt;
#endif&lt;br /&gt;
        for (s = buf; *s; s++)&lt;br /&gt;
                if ((*s &amp;gt;= '0' &amp;amp;&amp;amp; *s &amp;lt;= '9') || *s == ',')&lt;br /&gt;
                        break;&lt;br /&gt;
        idx = simple_strtoul(s, NULL, 10);&lt;br /&gt;
        *s = 0;&lt;br /&gt;
&lt;br /&gt;
        __add_preferred_console(buf, idx, options, brl_options);&lt;br /&gt;
        console_set_on_cmdline = 1;&lt;br /&gt;
        return 1;&lt;br /&gt;
}&lt;br /&gt;
__setup(&amp;quot;console=&amp;quot;, console_setup);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-5&lt;br /&gt;
| 5-18&lt;br /&gt;
| Family of __setup Macro Definitions from .../include/linux/init.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#define __setup_param(str, unique_id, fn, early)                        \&lt;br /&gt;
        static char __setup_str_##unique_id[] __initdata __aligned(1) = str; \&lt;br /&gt;
        static struct obs_kernel_param __setup_##unique_id      \&lt;br /&gt;
                __used __section(.init.setup)                   \&lt;br /&gt;
                __attribute__((aligned((sizeof(long)))))        \&lt;br /&gt;
                = { __setup_str_##unique_id, fn, early }&lt;br /&gt;
&lt;br /&gt;
#define __setup(str, fn)                                        \&lt;br /&gt;
        __setup_param(str, fn, fn, 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-6&lt;br /&gt;
| 5-19&lt;br /&gt;
| Kernel Command Line Processing&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
extern struct obs_kernel_param __setup_start[], __setup_end[];&lt;br /&gt;
&lt;br /&gt;
static int __init obsolete_checksetup(char *line)&lt;br /&gt;
{&lt;br /&gt;
        struct obs_kernel_param *p;&lt;br /&gt;
        int had_early_param = 0;&lt;br /&gt;
&lt;br /&gt;
        p = __setup_start;&lt;br /&gt;
        do {&lt;br /&gt;
                int n = strlen(p-&amp;gt;str);&lt;br /&gt;
                if (!strncmp(line, p-&amp;gt;str, n)) {&lt;br /&gt;
                        if (p-&amp;gt;early) {&lt;br /&gt;
                                /* Already done in parse_early_param?&lt;br /&gt;
                                 * (Needs exact match on param part).&lt;br /&gt;
                                 * Keep iterating, as we can have early&lt;br /&gt;
                                 * params and __setups of same names 8( */&lt;br /&gt;
                                if (line[n] == '\0' || line[n] == '=')&lt;br /&gt;
                                        had_early_param = 1;&lt;br /&gt;
                        } else if (!p-&amp;gt;setup_func) {&lt;br /&gt;
                                printk(KERN_WARNING &amp;quot;Parameter %s is obsolete,&amp;quot;&lt;br /&gt;
                                       &amp;quot; ignored\n&amp;quot;, p-&amp;gt;str);&lt;br /&gt;
                                return 1;&lt;br /&gt;
                        } else if (p-&amp;gt;setup_func(line + n))&lt;br /&gt;
                                return 1;&lt;br /&gt;
                }&lt;br /&gt;
                p++;&lt;br /&gt;
        } while (p &amp;lt; __setup_end);&lt;br /&gt;
&lt;br /&gt;
        return had_early_param;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-7&lt;br /&gt;
| 5-22&lt;br /&gt;
| Example Initialization Routine - .../arch/arm/kernel/setup.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
static void (*init_machine)(void) __initdata;&lt;br /&gt;
&lt;br /&gt;
static int __init customize_machine(void)&lt;br /&gt;
{&lt;br /&gt;
        /* customizes platform devices, or adds new ones */&lt;br /&gt;
        if (init_machine)&lt;br /&gt;
                init_machine();&lt;br /&gt;
        return 0;&lt;br /&gt;
}&lt;br /&gt;
arch_initcall(customize_machine);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-8&lt;br /&gt;
| 5-22&lt;br /&gt;
| initcall Family of Macros - .../include/linux/init.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#define __define_initcall(level,fn,id) \&lt;br /&gt;
        static initcall_t __initcall_##fn##id __used \&lt;br /&gt;
        __attribute__((__section__(&amp;quot;.initcall&amp;quot; level &amp;quot;.init&amp;quot;))) = fn&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Early initcalls run before initializing SMP.&lt;br /&gt;
 *&lt;br /&gt;
 * Only for built-in code, not modules.&lt;br /&gt;
 */&lt;br /&gt;
#define early_initcall(fn)              __define_initcall(&amp;quot;early&amp;quot;,fn,early)&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * A &amp;quot;pure&amp;quot; initcall has no dependencies on anything else, and purely&lt;br /&gt;
 * initializes variables that couldn't be statically initialized.&lt;br /&gt;
 *&lt;br /&gt;
 * This only exists for built-in code, not for modules.&lt;br /&gt;
 */&lt;br /&gt;
#define pure_initcall(fn)               __define_initcall(&amp;quot;0&amp;quot;,fn,0)&lt;br /&gt;
&lt;br /&gt;
#define core_initcall(fn)               __define_initcall(&amp;quot;1&amp;quot;,fn,1)&lt;br /&gt;
#define core_initcall_sync(fn)          __define_initcall(&amp;quot;1s&amp;quot;,fn,1s)&lt;br /&gt;
#define postcore_initcall(fn)           __define_initcall(&amp;quot;2&amp;quot;,fn,2)&lt;br /&gt;
#define postcore_initcall_sync(fn)      __define_initcall(&amp;quot;2s&amp;quot;,fn,2s)&lt;br /&gt;
#define arch_initcall(fn)               __define_initcall(&amp;quot;3&amp;quot;,fn,3)&lt;br /&gt;
#define arch_initcall_sync(fn)          __define_initcall(&amp;quot;3s&amp;quot;,fn,3s)&lt;br /&gt;
#define subsys_initcall(fn)             __define_initcall(&amp;quot;4&amp;quot;,fn,4)&lt;br /&gt;
#define subsys_initcall_sync(fn)        __define_initcall(&amp;quot;4s&amp;quot;,fn,4s)&lt;br /&gt;
#define fs_initcall(fn)                 __define_initcall(&amp;quot;5&amp;quot;,fn,5)&lt;br /&gt;
#define fs_initcall_sync(fn)            __define_initcall(&amp;quot;5s&amp;quot;,fn,5s)&lt;br /&gt;
#define rootfs_initcall(fn)             __define_initcall(&amp;quot;rootfs&amp;quot;,fn,rootfs)&lt;br /&gt;
#define device_initcall(fn)             __define_initcall(&amp;quot;6&amp;quot;,fn,6)&lt;br /&gt;
#define device_initcall_sync(fn)        __define_initcall(&amp;quot;6s&amp;quot;,fn,6s)&lt;br /&gt;
#define late_initcall(fn)               __define_initcall(&amp;quot;7&amp;quot;,fn,7)&lt;br /&gt;
#define late_initcall_sync(fn)          __define_initcall(&amp;quot;7s&amp;quot;,fn,7s)&lt;br /&gt;
&lt;br /&gt;
#define __initcall(fn) device_initcall(fn)&lt;br /&gt;
&lt;br /&gt;
#define __exitcall(fn) \&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-9&lt;br /&gt;
| 5-24&lt;br /&gt;
| Creation of Kernel init Thread&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
static noinline void __init_refok rest_init(void)&lt;br /&gt;
        __releases(kernel_lock)&lt;br /&gt;
{&lt;br /&gt;
        int pid;&lt;br /&gt;
&lt;br /&gt;
        kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);&lt;br /&gt;
        numa_default_policy();&lt;br /&gt;
        pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);&lt;br /&gt;
        kthreadd_task = find_task_by_pid_ns(pid, &amp;amp;init_pid_ns);&lt;br /&gt;
        unlock_kernel();&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * The boot idle thread must execute schedule()&lt;br /&gt;
         * at least once to get things moving:&lt;br /&gt;
         */&lt;br /&gt;
        init_idle_bootup_task(current);&lt;br /&gt;
        rcu_scheduler_starting();&lt;br /&gt;
        preempt_enable_no_resched();&lt;br /&gt;
        schedule();&lt;br /&gt;
        preempt_disable();&lt;br /&gt;
&lt;br /&gt;
        /* Call into cpu_idle with preempt disabled */&lt;br /&gt;
        cpu_idle();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-10&lt;br /&gt;
| 5-25&lt;br /&gt;
| Initialization via initcalls&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[];&lt;br /&gt;
&lt;br /&gt;
static void __init do_initcalls(void)&lt;br /&gt;
{&lt;br /&gt;
        initcall_t *call;&lt;br /&gt;
&lt;br /&gt;
        for (call = __early_initcall_end; call &amp;lt; __initcall_end; call++)&lt;br /&gt;
                do_one_initcall(*call);&lt;br /&gt;
&lt;br /&gt;
        /* Make sure there is no pending stuff from the initcall sequence */&lt;br /&gt;
        flush_scheduled_work();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-11&lt;br /&gt;
| 5-27&lt;br /&gt;
| Final Boot Steps from main.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
static noinline int init_post(void)&lt;br /&gt;
{&lt;br /&gt;
        /* need to finish all async __init code before freeing the memory */&lt;br /&gt;
        async_synchronize_full();&lt;br /&gt;
        free_initmem();&lt;br /&gt;
        unlock_kernel();&lt;br /&gt;
        mark_rodata_ro();&lt;br /&gt;
        system_state = SYSTEM_RUNNING;&lt;br /&gt;
        numa_default_policy();&lt;br /&gt;
&lt;br /&gt;
        if (sys_open((const char __user *) &amp;quot;/dev/console&amp;quot;, O_RDWR, 0) &amp;lt; 0)&lt;br /&gt;
                printk(KERN_WARNING &amp;quot;Warning: unable to open an initial console.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        (void) sys_dup(0);&lt;br /&gt;
        (void) sys_dup(0);&lt;br /&gt;
&lt;br /&gt;
        current-&amp;gt;signal-&amp;gt;flags |= SIGNAL_UNKILLABLE;&lt;br /&gt;
&lt;br /&gt;
        if (ramdisk_execute_command) {&lt;br /&gt;
                run_init_process(ramdisk_execute_command);&lt;br /&gt;
                printk(KERN_WARNING &amp;quot;Failed to execute %s\n&amp;quot;,&lt;br /&gt;
                                ramdisk_execute_command);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * We try each of these until one succeeds.&lt;br /&gt;
         *&lt;br /&gt;
         * The Bourne shell can be used instead of init if we are&lt;br /&gt;
         * trying to recover a really broken machine.&lt;br /&gt;
         */&lt;br /&gt;
        if (execute_command) {&lt;br /&gt;
                run_init_process(execute_command);&lt;br /&gt;
                printk(KERN_WARNING &amp;quot;Failed to execute %s.  Attempting &amp;quot;&lt;br /&gt;
                                        &amp;quot;defaults...\n&amp;quot;, execute_command);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
        run_init_process(&amp;quot;/sbin/init&amp;quot;);&lt;br /&gt;
        run_init_process(&amp;quot;/etc/init&amp;quot;);&lt;br /&gt;
        run_init_process(&amp;quot;/bin/init&amp;quot;);&lt;br /&gt;
        run_init_process(&amp;quot;/bin/sh&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        panic(&amp;quot;No init found.  Try passing init= option to kernel.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 6 ==&lt;br /&gt;
&lt;br /&gt;
== Chapter 8 ==&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-04-13T16:28:03Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Chapter 2 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Listings =&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| '''2-2'''&lt;br /&gt;
| '''2-7'''&lt;br /&gt;
| '''Loading the Linux Kernel'''&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
??&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o&lt;br /&gt;
total 764K&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c&lt;br /&gt;
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c&lt;br /&gt;
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c&lt;br /&gt;
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c&lt;br /&gt;
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c&lt;br /&gt;
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 4-17&lt;br /&gt;
| Snippet from Linux 2.6 .config&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
1872 #&lt;br /&gt;
1873 # USB Input Devices&lt;br /&gt;
1874 #&lt;br /&gt;
1875 CONFIG_USB_HID=y&lt;br /&gt;
1876 # CONFIG_HID_PID is not set&lt;br /&gt;
1877 # CONFIG_USB_HIDDEV is not set&lt;br /&gt;
1878 &lt;br /&gt;
1879 #&lt;br /&gt;
1880 # Special HID drivers&lt;br /&gt;
1881 #&lt;br /&gt;
1882 CONFIG_HID_COMPAT=y&lt;br /&gt;
1883 CONFIG_HID_A4TECH=y&lt;br /&gt;
1884 CONFIG_HID_APPLE=y&lt;br /&gt;
1885 CONFIG_HID_BELKIN=y&lt;br /&gt;
1886 CONFIG_HID_CHERRY=y&lt;br /&gt;
1887 CONFIG_HID_CHICONY=y&lt;br /&gt;
1888 CONFIG_HID_CYPRESS=y&lt;br /&gt;
1889 CONFIG_HID_EZKEY=y&lt;br /&gt;
1890 CONFIG_HID_GYRATION=y&lt;br /&gt;
1891 CONFIG_HID_LOGITECH=y&lt;br /&gt;
1892 # CONFIG_LOGITECH_FF is not set&lt;br /&gt;
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-5&lt;br /&gt;
| 4-21&lt;br /&gt;
| Linux autoconf.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % cat include/linux/autoconf.h| grep CONFIG_USB&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETMOTORCONTROL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_LEGOTOWER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_T613_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_RNDIS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_W9968CF_MODULE 1&lt;br /&gt;
#define CONFIG_USB_RTL8150 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_KAWETH 1&lt;br /&gt;
#define CONFIG_USB_ZERO_HNPTEST 1&lt;br /&gt;
#define CONFIG_USB_CXACRU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_ARK3116_MODULE 1&lt;br /&gt;
#define CONFIG_USB_G_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_PLUSB 1&lt;br /&gt;
#define CONFIG_USB_GPIO_VBUS 1&lt;br /&gt;
#define CONFIG_USB_EHCI_TT_NEWSCHED 1&lt;br /&gt;
#define CONFIG_USB_ACM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_EHCI 1&lt;br /&gt;
#define CONFIG_USB_USBNET 1&lt;br /&gt;
#define CONFIG_USB_LCD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_BELKIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LED_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1&lt;br /&gt;
#define CONFIG_USB_HID 1&lt;br /&gt;
#define CONFIG_USB_GADGET_VBUS_DRAW 2&lt;br /&gt;
#define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OTG_UTILS 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_OHCI 1&lt;br /&gt;
#define CONFIG_USB_CDC_COMPOSITE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GARMIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7720_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_NAVMAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_FINEPIX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7840_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TMC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OTI6858_MODULE 1&lt;br /&gt;
#define CONFIG_USB_WDM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MON 1&lt;br /&gt;
#define CONFIG_USB_OTG 1&lt;br /&gt;
#define CONFIG_USB_PWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETKIT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ET61X251_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_XIRCOM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SPEEDTOUCH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_CON 1&lt;br /&gt;
#define CONFIG_USB_NET_NET1080 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTION_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZR364XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_MCS7830 1&lt;br /&gt;
#define CONFIG_USB_VST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MARS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EHCI_ROOT_HUB_TT 1&lt;br /&gt;
#define CONFIG_USB_PHIDGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CYPRESS_CY7C63_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV534_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPW_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_AX8817X 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV519_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IUU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STV06XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1&lt;br /&gt;
#define CONFIG_USB_STORAGE 1&lt;br /&gt;
#define CONFIG_USB_IDMOUSE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PEGASUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1&lt;br /&gt;
#define CONFIG_USB_M5602_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CATC 1&lt;br /&gt;
#define CONFIG_USB_CYTHERM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GENERIC 1&lt;br /&gt;
#define CONFIG_USB_IRDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_S2255_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUSPEND 1&lt;br /&gt;
#define CONFIG_USB_XUSBATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TRANCEVIBRATOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SE401_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MIDI_GADGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_ZAURUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OMNINET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC207_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTICON_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OV511_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUPPORT 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SAFE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZERO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TEST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CH341_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI26_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI62_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_HP4X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGETFS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_CDC_SUBSET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1&lt;br /&gt;
#define CONFIG_USB_EHCI_HCD 1&lt;br /&gt;
#define CONFIG_USB_DEVICEFS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_TV8532_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPAQ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_CONEX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ZC3XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MCT_U232_MODULE 1&lt;br /&gt;
#define CONFIG_USB_KONICAWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KLSI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ALI_M5632 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_VC032X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_SELECTED 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_STK014_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OXU210HP_HCD 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ETOMS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_QUICKCAM_MESSENGER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_WLAN 1&lt;br /&gt;
#define CONFIG_USB_KC2190 1&lt;br /&gt;
#define CONFIG_USB_AN2720 1&lt;br /&gt;
#define CONFIG_USB_EPSON2888 1&lt;br /&gt;
#define CONFIG_USB_ZC0301_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZD1201 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_HOST 1&lt;br /&gt;
#define CONFIG_USB_G_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DEBUG_FS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC7311_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VICAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARMLINUX 1&lt;br /&gt;
#define CONFIG_USB_ATMEL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CP2101_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_SOC 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_OTG 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_PL2303_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1&lt;br /&gt;
#define CONFIG_USB_DEVICE_CLASS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DEBUG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MPR 1&lt;br /&gt;
#define CONFIG_USB_NET_CDCETHER 1&lt;br /&gt;
#define CONFIG_USB_EZUSB 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA500_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA501_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_BERRY_CHARGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EMPEG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA505_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA506_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA561_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA508_MODULE 1&lt;br /&gt;
#define CONFIG_USB_FILE_STORAGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETSERVO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1&lt;br /&gt;
#define CONFIG_USB_UEAGLEATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_INVENTRA_DMA 1&lt;br /&gt;
#define CONFIG_USB_NET_SMSC95XX 1&lt;br /&gt;
#define CONFIG_USB_STV680_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXB_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STKWEBCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DUALSPEED 1&lt;br /&gt;
#define CONFIG_USB_FTDI_ELAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_DM9601 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXJ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_IBMCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SN9C102_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_VISOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_GL620A 1&lt;br /&gt;
#define CONFIG_USB_BELKIN 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| 4-22&lt;br /&gt;
| Makefile Targets&lt;br /&gt;
| &amp;lt;pre&amp;gt;Cleaning targets:&lt;br /&gt;
  clean		  - Remove most generated files but keep the config and&lt;br /&gt;
                    enough build support to build external modules&lt;br /&gt;
  mrproper	  - Remove all generated files + config + various backup files&lt;br /&gt;
  distclean	  - mrproper + remove editor backup and patch files&lt;br /&gt;
&lt;br /&gt;
Configuration targets:&lt;br /&gt;
  config	  - Update current config utilising a line-oriented program&lt;br /&gt;
  menuconfig	  - Update current config utilising a menu based program&lt;br /&gt;
  xconfig	  - Update current config utilising a QT based front-end&lt;br /&gt;
  gconfig	  - Update current config utilising a GTK based front-end&lt;br /&gt;
  oldconfig	  - Update current config utilising a provided .config as base&lt;br /&gt;
  silentoldconfig - Same as oldconfig, but quietly&lt;br /&gt;
  randconfig	  - New config with random answer to all options&lt;br /&gt;
  defconfig	  - New config with default answer to all options&lt;br /&gt;
  allmodconfig	  - New config selecting modules when possible&lt;br /&gt;
  allyesconfig	  - New config where all options are accepted with yes&lt;br /&gt;
  allnoconfig	  - New config where all options are answered with no&lt;br /&gt;
&lt;br /&gt;
Other generic targets:&lt;br /&gt;
  all		  - Build all targets marked with [*]&lt;br /&gt;
* vmlinux	  - Build the bare kernel&lt;br /&gt;
* modules	  - Build all modules&lt;br /&gt;
  modules_install - Install all modules to INSTALL_MOD_PATH (default: /)&lt;br /&gt;
  firmware_install- Install all firmware to INSTALL_FW_PATH&lt;br /&gt;
                    (default: $(INSTALL_MOD_PATH)/lib/firmware)&lt;br /&gt;
  dir/            - Build all files in dir and below&lt;br /&gt;
  dir/file.[ois]  - Build specified target only&lt;br /&gt;
  dir/file.ko     - Build module including final link&lt;br /&gt;
  prepare         - Set up for building external modules&lt;br /&gt;
  tags/TAGS	  - Generate tags file for editors&lt;br /&gt;
  cscope	  - Generate cscope index&lt;br /&gt;
  kernelrelease	  - Output the release version string&lt;br /&gt;
  kernelversion	  - Output the version stored in Makefile&lt;br /&gt;
  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH&lt;br /&gt;
                    (default: /home/users/collinjc/oe/angstrom-dev-backup2/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r46/git/usr)&lt;br /&gt;
&lt;br /&gt;
Static analysers&lt;br /&gt;
  checkstack      - Generate a list of stack hogs&lt;br /&gt;
  namespacecheck  - Name space analysis on compiled kernel&lt;br /&gt;
  versioncheck    - Sanity check on version.h usage&lt;br /&gt;
  includecheck    - Check for duplicate included header files&lt;br /&gt;
  export_report   - List the usages of all exported symbols&lt;br /&gt;
  headers_check   - Sanity check on exported headers&lt;br /&gt;
  headerdep       - Detect inclusion cycles in headers&lt;br /&gt;
&lt;br /&gt;
Kernel packaging:&lt;br /&gt;
  rpm-pkg         - Build both source and binary RPM kernel packages&lt;br /&gt;
  binrpm-pkg      - Build only the binary kernel package&lt;br /&gt;
  deb-pkg         - Build the kernel as an deb package&lt;br /&gt;
  tar-pkg         - Build the kernel as an uncompressed tarball&lt;br /&gt;
  targz-pkg       - Build the kernel as a gzip compressed tarball&lt;br /&gt;
  tarbz2-pkg      - Build the kernel as a bzip2 compressed tarball&lt;br /&gt;
&lt;br /&gt;
Documentation targets:&lt;br /&gt;
 Linux kernel internal documentation in different formats:&lt;br /&gt;
  htmldocs        - HTML&lt;br /&gt;
  installmandocs  - install man pages generated by mandocs&lt;br /&gt;
  mandocs         - man pages&lt;br /&gt;
  pdfdocs         - PDF&lt;br /&gt;
  psdocs          - Postscript&lt;br /&gt;
  xmldocs         - XML DocBook&lt;br /&gt;
&lt;br /&gt;
Architecture specific targets (arm):&lt;br /&gt;
* zImage        - Compressed kernel image (arch/arm/boot/zImage)&lt;br /&gt;
  Image         - Uncompressed kernel image (arch/arm/boot/Image)&lt;br /&gt;
* xipImage      - XIP kernel image, if configured (arch/arm/boot/xipImage)&lt;br /&gt;
  uImage        - U-Boot wrapped zImage&lt;br /&gt;
  bootpImage    - Combined zImage and initial RAM disk&lt;br /&gt;
                  (supply initrd image via make variable INITRD=&amp;lt;path&amp;gt;)&lt;br /&gt;
  install       - Install uncompressed kernel&lt;br /&gt;
  zinstall      - Install compressed kernel&lt;br /&gt;
                  Install using (your) ~/bin/installkernel or&lt;br /&gt;
                  (distribution) /sbin/installkernel or&lt;br /&gt;
                  install to $(INSTALL_PATH) and run lilo&lt;br /&gt;
&lt;br /&gt;
  afeb9260_defconfig       - Build for afeb9260&lt;br /&gt;
  am200epdkit_defconfig    - Build for am200epdkit&lt;br /&gt;
  ams_delta_defconfig      - Build for ams_delta&lt;br /&gt;
  assabet_defconfig        - Build for assabet&lt;br /&gt;
  at91cap9adk_defconfig    - Build for at91cap9adk&lt;br /&gt;
  at91rm9200dk_defconfig   - Build for at91rm9200dk&lt;br /&gt;
  at91rm9200ek_defconfig   - Build for at91rm9200ek&lt;br /&gt;
  at91sam9260ek_defconfig  - Build for at91sam9260ek&lt;br /&gt;
  at91sam9261ek_defconfig  - Build for at91sam9261ek&lt;br /&gt;
  at91sam9263ek_defconfig  - Build for at91sam9263ek&lt;br /&gt;
  at91sam9g20ek_defconfig  - Build for at91sam9g20ek&lt;br /&gt;
  at91sam9rlek_defconfig   - Build for at91sam9rlek&lt;br /&gt;
  ateb9200_defconfig       - Build for ateb9200&lt;br /&gt;
  badge4_defconfig         - Build for badge4&lt;br /&gt;
  cam60_defconfig          - Build for cam60&lt;br /&gt;
  carmeva_defconfig        - Build for carmeva&lt;br /&gt;
  cerfcube_defconfig       - Build for cerfcube&lt;br /&gt;
  cm_x300_defconfig        - Build for cm_x300&lt;br /&gt;
  colibri_defconfig        - Build for colibri&lt;br /&gt;
  collie_defconfig         - Build for collie&lt;br /&gt;
  corgi_defconfig          - Build for corgi&lt;br /&gt;
  csb337_defconfig         - Build for csb337&lt;br /&gt;
  csb637_defconfig         - Build for csb637&lt;br /&gt;
  dss_omap3_beagle_defconfig - Build for dss_omap3_beagle&lt;br /&gt;
  dss_omap_3430sdp_defconfig - Build for dss_omap_3430sdp&lt;br /&gt;
  dss_overo_defconfig      - Build for dss_overo&lt;br /&gt;
  ebsa110_defconfig        - Build for ebsa110&lt;br /&gt;
  ecbat91_defconfig        - Build for ecbat91&lt;br /&gt;
  edb7211_defconfig        - Build for edb7211&lt;br /&gt;
  ep93xx_defconfig         - Build for ep93xx&lt;br /&gt;
  eseries_pxa_defconfig    - Build for eseries_pxa&lt;br /&gt;
  ezx_defconfig            - Build for ezx&lt;br /&gt;
  footbridge_defconfig     - Build for footbridge&lt;br /&gt;
  fortunet_defconfig       - Build for fortunet&lt;br /&gt;
  h3600_defconfig          - Build for h3600&lt;br /&gt;
  h5000_defconfig          - Build for h5000&lt;br /&gt;
  h7201_defconfig          - Build for h7201&lt;br /&gt;
  h7202_defconfig          - Build for h7202&lt;br /&gt;
  hackkit_defconfig        - Build for hackkit&lt;br /&gt;
  imx27ads_defconfig       - Build for imx27ads&lt;br /&gt;
  integrator_defconfig     - Build for integrator&lt;br /&gt;
  iop13xx_defconfig        - Build for iop13xx&lt;br /&gt;
  iop32x_defconfig         - Build for iop32x&lt;br /&gt;
  iop33x_defconfig         - Build for iop33x&lt;br /&gt;
  ixp2000_defconfig        - Build for ixp2000&lt;br /&gt;
  ixp23xx_defconfig        - Build for ixp23xx&lt;br /&gt;
  ixp4xx_defconfig         - Build for ixp4xx&lt;br /&gt;
  jornada720_defconfig     - Build for jornada720&lt;br /&gt;
  kafa_defconfig           - Build for kafa&lt;br /&gt;
  kb9202_defconfig         - Build for kb9202&lt;br /&gt;
  kirkwood_defconfig       - Build for kirkwood&lt;br /&gt;
  ks8695_defconfig         - Build for ks8695&lt;br /&gt;
  lart_defconfig           - Build for lart&lt;br /&gt;
  littleton_defconfig      - Build for littleton&lt;br /&gt;
  loki_defconfig           - Build for loki&lt;br /&gt;
  lpd270_defconfig         - Build for lpd270&lt;br /&gt;
  lpd7a400_defconfig       - Build for lpd7a400&lt;br /&gt;
  lpd7a404_defconfig       - Build for lpd7a404&lt;br /&gt;
  lubbock_defconfig        - Build for lubbock&lt;br /&gt;
  lusl7200_defconfig       - Build for lusl7200&lt;br /&gt;
  magician_defconfig       - Build for magician&lt;br /&gt;
  mainstone_defconfig      - Build for mainstone&lt;br /&gt;
  msm_defconfig            - Build for msm&lt;br /&gt;
  mv78xx0_defconfig        - Build for mv78xx0&lt;br /&gt;
  mx1ads_defconfig         - Build for mx1ads&lt;br /&gt;
  mx31ads_defconfig        - Build for mx31ads&lt;br /&gt;
  mx31litekit_defconfig    - Build for mx31litekit&lt;br /&gt;
  mx31moboard_defconfig    - Build for mx31moboard&lt;br /&gt;
  mx31pdk_defconfig        - Build for mx31pdk&lt;br /&gt;
  n770_defconfig           - Build for n770&lt;br /&gt;
  n800_defconfig           - Build for n800&lt;br /&gt;
  neocore926_defconfig     - Build for neocore926&lt;br /&gt;
  neponset_defconfig       - Build for neponset&lt;br /&gt;
  netwinder_defconfig      - Build for netwinder&lt;br /&gt;
  netx_defconfig           - Build for netx&lt;br /&gt;
  ns9xxx_defconfig         - Build for ns9xxx&lt;br /&gt;
  omap2_evm_defconfig      - Build for omap2_evm&lt;br /&gt;
  omap3_beagle_defconfig   - Build for omap3_beagle&lt;br /&gt;
  omap3_evm_defconfig      - Build for omap3_evm&lt;br /&gt;
  omap3_pandora_defconfig  - Build for omap3_pandora&lt;br /&gt;
  omap_2430sdp_defconfig   - Build for omap_2430sdp&lt;br /&gt;
  omap_3430sdp_defconfig   - Build for omap_3430sdp&lt;br /&gt;
  omap_apollon_2420_defconfig - Build for omap_apollon_2420&lt;br /&gt;
  omap_generic_1510_defconfig - Build for omap_generic_1510&lt;br /&gt;
  omap_generic_1610_defconfig - Build for omap_generic_1610&lt;br /&gt;
  omap_generic_1710_defconfig - Build for omap_generic_1710&lt;br /&gt;
  omap_generic_2420_defconfig - Build for omap_generic_2420&lt;br /&gt;
  omap_h2_1610_defconfig   - Build for omap_h2_1610&lt;br /&gt;
  omap_h3_1710_defconfig   - Build for omap_h3_1710&lt;br /&gt;
  omap_h4_2420_defconfig   - Build for omap_h4_2420&lt;br /&gt;
  omap_innovator_1510_defconfig - Build for omap_innovator_1510&lt;br /&gt;
  omap_innovator_1610_defconfig - Build for omap_innovator_1610&lt;br /&gt;
  omap_ldp_defconfig       - Build for omap_ldp&lt;br /&gt;
  omap_osk_5912_defconfig  - Build for omap_osk_5912&lt;br /&gt;
  omap_perseus2_730_defconfig - Build for omap_perseus2_730&lt;br /&gt;
  onearm_defconfig         - Build for onearm&lt;br /&gt;
  orion5x_defconfig        - Build for orion5x&lt;br /&gt;
  overo_defconfig          - Build for overo&lt;br /&gt;
  palmte_defconfig         - Build for palmte&lt;br /&gt;
  palmtt_defconfig         - Build for palmtt&lt;br /&gt;
  palmz71_defconfig        - Build for palmz71&lt;br /&gt;
  palmz72_defconfig        - Build for palmz72&lt;br /&gt;
  pcm027_defconfig         - Build for pcm027&lt;br /&gt;
  pcm037_defconfig         - Build for pcm037&lt;br /&gt;
  pcm038_defconfig         - Build for pcm038&lt;br /&gt;
  picotux200_defconfig     - Build for picotux200&lt;br /&gt;
  pleb_defconfig           - Build for pleb&lt;br /&gt;
  pnx4008_defconfig        - Build for pnx4008&lt;br /&gt;
  pxa255-idp_defconfig     - Build for pxa255-idp&lt;br /&gt;
  qil-a9260_defconfig      - Build for qil-a9260&lt;br /&gt;
  realview-smp_defconfig   - Build for realview-smp&lt;br /&gt;
  realview_defconfig       - Build for realview&lt;br /&gt;
  rpc_defconfig            - Build for rpc&lt;br /&gt;
  rx51_defconfig           - Build for rx51&lt;br /&gt;
  s3c2410_defconfig        - Build for s3c2410&lt;br /&gt;
  s3c6400_defconfig        - Build for s3c6400&lt;br /&gt;
  sam9_l9260_defconfig     - Build for sam9_l9260&lt;br /&gt;
  shannon_defconfig        - Build for shannon&lt;br /&gt;
  shark_defconfig          - Build for shark&lt;br /&gt;
  simpad_defconfig         - Build for simpad&lt;br /&gt;
  spitz_defconfig          - Build for spitz&lt;br /&gt;
  sx1_defconfig            - Build for sx1&lt;br /&gt;
  tct_hammer_defconfig     - Build for tct_hammer&lt;br /&gt;
  trizeps4_defconfig       - Build for trizeps4&lt;br /&gt;
  usb-a9260_defconfig      - Build for usb-a9260&lt;br /&gt;
  usb-a9263_defconfig      - Build for usb-a9263&lt;br /&gt;
  versatile_defconfig      - Build for versatile&lt;br /&gt;
  viper_defconfig          - Build for viper&lt;br /&gt;
  w90p910_defconfig        - Build for w90p910&lt;br /&gt;
  xm_x2xx_defconfig        - Build for xm_x2xx&lt;br /&gt;
  yl9200_defconfig         - Build for yl9200&lt;br /&gt;
  zylonite_defconfig       - Build for zylonite&lt;br /&gt;
&lt;br /&gt;
  make V=0|1 [targets] 0 =&amp;gt; quiet build (default), 1 =&amp;gt; verbose build&lt;br /&gt;
  make V=2   [targets] 2 =&amp;gt; give reason for rebuild of target&lt;br /&gt;
  make O=dir [targets] Locate all output files in &amp;quot;dir&amp;quot;, including .config&lt;br /&gt;
  make C=1   [targets] Check all c source with $CHECK (sparse by default)&lt;br /&gt;
  make C=2   [targets] Force check of all c source with $CHECK&lt;br /&gt;
&lt;br /&gt;
Execute &amp;quot;make&amp;quot; or &amp;quot;make all&amp;quot; to build all targets marked with [*] &lt;br /&gt;
For further info see the ./README file&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-7&lt;br /&gt;
| 4-27&lt;br /&gt;
| Partial Listing of Kconfig for ARM Architecture&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-8&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
 183 config VECTORS_BASE&lt;br /&gt;
 184         hex&lt;br /&gt;
 185         default 0xffff0000 if MMU || CPU_HIGH_VECTOR&lt;br /&gt;
 186         default DRAM_BASE if REMAP_VECTORS_TO_RAM&lt;br /&gt;
 187         default 0x00000000&lt;br /&gt;
 188         help&lt;br /&gt;
 189           The base address of exception vectors.&lt;br /&gt;
 190 &lt;br /&gt;
 191 source &amp;quot;init/Kconfig&amp;quot;&lt;br /&gt;
 192 &lt;br /&gt;
 193 source &amp;quot;kernel/Kconfig.freezer&amp;quot;&lt;br /&gt;
 194 &lt;br /&gt;
 195 menu &amp;quot;System Type&amp;quot;&lt;br /&gt;
 196 &lt;br /&gt;
 197 choice&lt;br /&gt;
 198         prompt &amp;quot;ARM system type&amp;quot;&lt;br /&gt;
 199         default ARCH_VERSATILE&lt;br /&gt;
 200 &lt;br /&gt;
 201 config ARCH_AAEC2000&lt;br /&gt;
 202         bool &amp;quot;Agilent AAEC-2000 based&amp;quot;&lt;br /&gt;
 203         select CPU_ARM920T&lt;br /&gt;
 204         select ARM_AMBA&lt;br /&gt;
 205         select HAVE_CLK&lt;br /&gt;
 206         help&lt;br /&gt;
 207           This enables support for systems based on the Agilent AAEC-2000&lt;br /&gt;
 208 &lt;br /&gt;
 209 config ARCH_INTEGRATOR&lt;br /&gt;
 210         bool &amp;quot;ARM Ltd. Integrator family&amp;quot;&lt;br /&gt;
 211         select ARM_AMBA                                                                                 &lt;br /&gt;
 212         select HAVE_CLK                                                                                 &lt;br /&gt;
 213         select COMMON_CLKDEV                                                                            &lt;br /&gt;
 214         select ICST525&lt;br /&gt;
 215         help&lt;br /&gt;
 216           Support for ARM's Integrator platform.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-9&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/plat-omap/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
....&lt;br /&gt;
config OMAP_BOOT_REASON&lt;br /&gt;
        bool &amp;quot;Support for boot reason&amp;quot;&lt;br /&gt;
        depends on OMAP_BOOT_TAG&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have a procfs entry for reading the boot&lt;br /&gt;
          reason in user-space.&lt;br /&gt;
&lt;br /&gt;
config OMAP_COMPONENT_VERSION&lt;br /&gt;
        bool &amp;quot;Support for component version display&amp;quot;&lt;br /&gt;
        depends on OMAP_BOOT_TAG &amp;amp;&amp;amp; PROC_FS&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have a procfs entry for reading component&lt;br /&gt;
          versions (supplied by the bootloader) in user-space.&lt;br /&gt;
&lt;br /&gt;
config OMAP_GPIO_SWITCH&lt;br /&gt;
        bool &amp;quot;GPIO switch support&amp;quot;&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have support for reporting of GPIO&lt;br /&gt;
          switches (e.g. cover switches) via sysfs. Your bootloader has&lt;br /&gt;
          to provide information about the switches to the kernel via the&lt;br /&gt;
          ATAG_BOARD mechanism if they're not defined by the board config.&lt;br /&gt;
&lt;br /&gt;
config OMAP_MUX&lt;br /&gt;
        bool &amp;quot;OMAP multiplexing support&amp;quot;&lt;br /&gt;
        depends on ARCH_OMAP&lt;br /&gt;
        default y&lt;br /&gt;
        help&lt;br /&gt;
          Pin multiplexing support for OMAP boards. If your bootloader&lt;br /&gt;
          sets the multiplexing correctly, say N. Otherwise, or if unsure,&lt;br /&gt;
          say Y.&lt;br /&gt;
&lt;br /&gt;
config OMAP_MUX_DEBUG&lt;br /&gt;
        bool &amp;quot;Multiplexing debug output&amp;quot;&lt;br /&gt;
        depends on OMAP_MUX&lt;br /&gt;
        help&lt;br /&gt;
          Makes the multiplexing functions print out a lot of debug info.&lt;br /&gt;
          This is useful if you want to find out the correct values of the&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-10&lt;br /&gt;
| 4-32&lt;br /&gt;
| Customized .config File Snippet&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# OMAP Feature Selections&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set&lt;br /&gt;
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set&lt;br /&gt;
# CONFIG_OMAP_SMARTREFLEX is not set&lt;br /&gt;
CONFIG_OMAP_RESET_CLOCKS=y&lt;br /&gt;
CONFIG_OMAP_BOOT_TAG=y&lt;br /&gt;
CONFIG_OMAP_BOOT_REASON=y&lt;br /&gt;
# CONFIG_OMAP_COMPONENT_VERSION is not set&lt;br /&gt;
CONFIG_OMAP_GPIO_SWITCH=y&lt;br /&gt;
# CONFIG_OMAP_GPIO_SWITCH_2 is not set&lt;br /&gt;
# CONFIG_OMAP_MUX is not set&lt;br /&gt;
CONFIG_OMAP_MCBSP=y&lt;br /&gt;
# CONFIG_OMAP_MBOX_FWK is not set&lt;br /&gt;
CONFIG_OMAP_IOMMU=m&lt;br /&gt;
# CONFIG_OMAP_MPU_TIMER is not set&lt;br /&gt;
CONFIG_OMAP_32K_TIMER=y&lt;br /&gt;
CONFIG_OMAP_32K_TIMER_HZ=128&lt;br /&gt;
CONFIG_OMAP_TICK_GPTIMER=12&lt;br /&gt;
CONFIG_OMAP_DM_TIMER=y&lt;br /&gt;
# CONFIG_OMAP_LL_DEBUG_UART1 is not set&lt;br /&gt;
# CONFIG_OMAP_LL_DEBUG_UART2 is not set&lt;br /&gt;
CONFIG_OMAP_LL_DEBUG_UART3=y&lt;br /&gt;
CONFIG_ARCH_OMAP34XX=y&lt;br /&gt;
CONFIG_ARCH_OMAP3430=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-11&lt;br /&gt;
| 4-33&lt;br /&gt;
| Makefile from .../arch/arm/plat-omap/ Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Makefile for the linux kernel.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Common support&lt;br /&gt;
obj-y := common.o sram.o clock.o devices.o dma.o mux.o gpio.o \&lt;br /&gt;
         usb.o fb.o vram.o vrfb.o io.o&lt;br /&gt;
obj-m :=&lt;br /&gt;
obj-n :=&lt;br /&gt;
obj-  :=&lt;br /&gt;
&lt;br /&gt;
# OCPI interconnect support for 1710, 1610 and 5912&lt;br /&gt;
obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o&lt;br /&gt;
&lt;br /&gt;
obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o&lt;br /&gt;
obj-$(CONFIG_OMAP_IOMMU) += iommu.o iovmm.o&lt;br /&gt;
&lt;br /&gt;
obj-$(CONFIG_CPU_FREQ) += cpu-omap.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o&lt;br /&gt;
obj-$(CONFIG_OMAP_BOOT_REASON) += bootreason.o&lt;br /&gt;
obj-$(CONFIG_OMAP_COMPONENT_VERSION) += component-version.o&lt;br /&gt;
obj-$(CONFIG_OMAP_GPIO_SWITCH) += gpio-switch.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o&lt;br /&gt;
i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o&lt;br /&gt;
obj-y += $(i2c-omap-m) $(i2c-omap-y)&lt;br /&gt;
&lt;br /&gt;
# OMAP mailbox framework&lt;br /&gt;
obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 5-1&lt;br /&gt;
| 5-2&lt;br /&gt;
| Final Kernel Build Sequence:  ARM/BeagleBoard&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
$ export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
$ PATH=${OETREE}/angstrom-dev/staging/i686-linux/usr/bin/:${PATH}&lt;br /&gt;
$ PATH=${OETREE}/angstrom-dev/cross/armv7a/bin/:${PATH}&lt;br /&gt;
$ make CROSS_CO  UPD     include/linux/compile.h&lt;br /&gt;
&lt;br /&gt;
....&lt;br /&gt;
&lt;br /&gt;
  CC      init/version.o&lt;br /&gt;
  LD      init/built-in.o&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Fri Apr  2 00:21:21 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2991252 Bytes = 2921.14 kB = 2.85 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is readyMPILE=arm-angstrom-linux-gnueabi- uImage&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-2&lt;br /&gt;
| 5-5&lt;br /&gt;
| Assembly File .../arch/arm/boot/compressed/piggy.S&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
        .section .piggydata,#alloc&lt;br /&gt;
        .globl  input_data&lt;br /&gt;
input_data:&lt;br /&gt;
        .incbin &amp;quot;arch/arm/boot/compressed/piggy.gz&amp;quot;&lt;br /&gt;
        .globl  input_data_end&lt;br /&gt;
input_data_end:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-3&lt;br /&gt;
| 5-7&lt;br /&gt;
| Final Kernel Build Sequence:  ARM/BeagleBoard&lt;br /&gt;
| &amp;lt;pre&amp;gt;Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot: 10 ��� 9 ��� 8 ��� 7 ��� 6 ��� 5 ��� 4 ��� 3 ��� 2 ��� 1 ��� 0 &lt;br /&gt;
mmc1 is available&lt;br /&gt;
reading uImage&lt;br /&gt;
&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
[    0.000000] net_namespace: 1036 bytes&lt;br /&gt;
[    0.000000] regulator: core version 0.5&lt;br /&gt;
[    0.000000] NET: Registered protocol family 16&lt;br /&gt;
[    0.000000] GPIO-156 autorequested&lt;br /&gt;
[    0.000000] GPIO-159 autorequested&lt;br /&gt;
[    0.000000] Found NAND on CS0&lt;br /&gt;
[    0.000000] Registering NAND on CS0&lt;br /&gt;
[ 3130.761016] OMAP DMA hardware revision 4.0&lt;br /&gt;
[ 3130.794372] bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
[ 3130.854797] OMAP DSS rev 2.0&lt;br /&gt;
[ 3130.854888] OMAP DISPC rev 3.0&lt;br /&gt;
[ 3130.854919] OMAP VENC rev 2&lt;br /&gt;
[ 3130.855041] OMAP DSI rev 1.0&lt;br /&gt;
[ 3130.870819] i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz&lt;br /&gt;
[ 3130.874114] twl4030: PIH (irq 7) chaining IRQs 368..375&lt;br /&gt;
[ 3130.874145] twl4030: power (irq 373) chaining IRQs 376..383&lt;br /&gt;
[ 3130.874603] twl4030: gpio (irq 368) chaining IRQs 384..401&lt;br /&gt;
[ 3130.876922] regulator: VMMC1: 1850 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[ 3130.877655] regulator: VDAC: 1800 mV normal standby&lt;br /&gt;
[ 3130.878356] regulator: VUSB1V5: 1500 &amp;lt;--&amp;gt; 0 mV normal standby&lt;br /&gt;
[ 3130.879211] regulator: VUSB1V8: 1800 &amp;lt;--&amp;gt; 0 mV normal standby&lt;br /&gt;
[ 3130.879913] regulator: VUSB3V1: 3100 &amp;lt;--&amp;gt; 0 mV normal standby&lt;br /&gt;
[ 3130.880615] regulator: VPLL2: 1800 mV normal standby&lt;br /&gt;
[ 3130.881347] regulator: VMMC2: 2800 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[ 3130.882049] regulator: VSIM: 1800 &amp;lt;--&amp;gt; 3000 mV normal standby&lt;br /&gt;
[ 3130.882202] i2c_omap i2c_omap.2: bus 2 rev3.12 at 400 kHz&lt;br /&gt;
[ 3130.894989] i2c_omap i2c_omap.3: bus 3 rev3.12 at 100 kHz&lt;br /&gt;
[ 3130.896759] SCSI subsystem initialized&lt;br /&gt;
[ 3130.899688] twl4030_usb twl4030_usb: Initialized TWL4030 USB module&lt;br /&gt;
[ 3130.900909] usbcore: registered new interface driver usbfs&lt;br /&gt;
[ 3130.901367] usbcore: registered new interface driver hub&lt;br /&gt;
[ 3130.901702] usbcore: registered new device driver usb&lt;br /&gt;
[ 3130.904205] Bluetooth: Core ver 2.14&lt;br /&gt;
[ 3130.904632] NET: Registered protocol family 31&lt;br /&gt;
[ 3130.904632] Bluetooth: HCI device and connection manager initialized&lt;br /&gt;
[ 3130.904663] Bluetooth: HCI socket layer initialized&lt;br /&gt;
[ 3130.905242] cfg80211: Using static regulatory domain info&lt;br /&gt;
[ 3130.905242] cfg80211: Regulatory domain: US&lt;br /&gt;
[ 3130.905273] 	(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)&lt;br /&gt;
[ 3130.905273] 	(2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)&lt;br /&gt;
[ 3130.905303] 	(5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905303] 	(5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905334] 	(5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905334] 	(5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905364] 	(5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)&lt;br /&gt;
[ 3130.905364] cfg80211: Calling CRDA for country: US&lt;br /&gt;
[ 3130.908111] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0&lt;br /&gt;
[ 3130.910308] musb_hdrc: USB OTG mode controller at d80ab000 using DMA, IRQ 92&lt;br /&gt;
[ 3130.911560] NET: Registered protocol family 2&lt;br /&gt;
[ 3130.911804] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
[ 3130.912292] TCP established hash table entries: 8192 (order: 4, 65536 bytes)&lt;br /&gt;
[ 3130.912445] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)&lt;br /&gt;
[ 3130.912567] TCP: Hash tables configured (established 8192 bind 8192)&lt;br /&gt;
[ 3130.912567] TCP reno registered&lt;br /&gt;
[ 3130.912780] NET: Registered protocol family 1&lt;br /&gt;
[ 3130.916107] VFS: Disk quotas dquot_6.5.2&lt;br /&gt;
[ 3130.916168] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)&lt;br /&gt;
[ 3130.916656] squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
[ 3130.917236] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.&lt;br /&gt;
[ 3130.917938] msgmni has been set to 466&lt;br /&gt;
[ 3130.921691] alg: No test for stdrng (krng)&lt;br /&gt;
[ 3130.921783] io scheduler noop registered&lt;br /&gt;
[ 3130.921783] io scheduler anticipatory registered&lt;br /&gt;
[ 3130.921813] io scheduler deadline registered&lt;br /&gt;
[ 3130.921966] io scheduler cfq registered (default)&lt;br /&gt;
[ 3130.941101] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled&lt;br /&gt;
[ 3130.963867] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654&lt;br /&gt;
[ 3130.985321] serial8250.0: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654&lt;br /&gt;
[ 3131.007293] serial8250.0: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654&lt;br /&gt;
[ 3131.007324] console [ttyS2] enabled&lt;br /&gt;
[ 3131.527282] brd: module loaded&lt;br /&gt;
[ 3131.535125] loop: module loaded&lt;br /&gt;
[ 3131.538909] enc28j60 spi4.0: enc28j60 Ethernet driver 1.01 loaded&lt;br /&gt;
[ 3131.547546] enc28j60 spi4.0: enc28j60 chip not found&lt;br /&gt;
[ 3131.552612] enc28j60: probe of spi4.0 failed with error -5&lt;br /&gt;
[ 3131.558593] usbcore: registered new interface driver catc&lt;br /&gt;
[ 3131.564178] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver&lt;br /&gt;
[ 3131.570770] usbcore: registered new interface driver kaweth&lt;br /&gt;
[ 3131.576416] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver&lt;br /&gt;
[ 3131.584228] usbcore: registered new interface driver pegasus&lt;br /&gt;
[ 3131.589935] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver&lt;br /&gt;
[ 3131.597106] usbcore: registered new interface driver rtl8150&lt;br /&gt;
[ 3131.603057] usbcore: registered new interface driver asix&lt;br /&gt;
[ 3131.608734] usbcore: registered new interface driver cdc_ether&lt;br /&gt;
[ 3131.614837] usbcore: registered new interface driver dm9601&lt;br /&gt;
[ 3131.620666] usbcore: registered new interface driver smsc95xx&lt;br /&gt;
[ 3131.626708] usbcore: registered new interface driver gl620a&lt;br /&gt;
[ 3131.632598] usbcore: registered new interface driver net1080&lt;br /&gt;
[ 3131.638519] usbcore: registered new interface driver plusb&lt;br /&gt;
[ 3131.644256] usbcore: registered new interface driver rndis_host&lt;br /&gt;
[ 3131.650482] usbcore: registered new interface driver cdc_subset&lt;br /&gt;
[ 3131.656646] usbcore: registered new interface driver zaurus&lt;br /&gt;
[ 3131.662536] usbcore: registered new interface driver MOSCHIP usb-ethernet driver&lt;br /&gt;
[ 3131.670257] Broadcom 43xx driver loaded [ Features: L, Firmware-ID: FW13 ]&lt;br /&gt;
[ 3131.677551] usbcore: registered new interface driver zd1211rw&lt;br /&gt;
[ 3131.683532] usbcore: registered new interface driver rtl8187&lt;br /&gt;
[ 3131.689514] usbcore: registered new interface driver rndis_wlan&lt;br /&gt;
[ 3131.695739] usbcore: registered new interface driver zd1201&lt;br /&gt;
[ 3131.701629] usbcore: registered new interface driver usb8xxx&lt;br /&gt;
[ 3131.707550] usbcore: registered new interface driver rt2500usb&lt;br /&gt;
[ 3131.713714] usbcore: registered new interface driver rt73usb&lt;br /&gt;
[ 3131.719665] usbcore: registered new interface driver p54usb&lt;br /&gt;
[ 3131.725341] i2c /dev entries driver&lt;br /&gt;
[ 3131.730346] Driver 'sd' needs updating - please use bus_type methods&lt;br /&gt;
[ 3131.736968] Driver 'sr' needs updating - please use bus_type methods&lt;br /&gt;
[ 3131.744293] omap2-nand driver initializing&lt;br /&gt;
[ 3131.748718] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xba (Micron NAND 256MiB 1,8V 16-bit)&lt;br /&gt;
[ 3131.757751] cmdlinepart partition parsing not available&lt;br /&gt;
[ 3131.763061] Creating 5 MTD partitions on &amp;quot;omap2-nand&amp;quot;:&lt;br /&gt;
[ 3131.768218] 0x000000000000-0x000000080000 : &amp;quot;X-Loader&amp;quot;&lt;br /&gt;
[ 3131.775146] 0x000000080000-0x000000260000 : &amp;quot;U-Boot&amp;quot;&lt;br /&gt;
[ 3131.782012] 0x000000260000-0x000000280000 : &amp;quot;U-Boot Env&amp;quot;&lt;br /&gt;
[ 3131.788452] 0x000000280000-0x000000680000 : &amp;quot;Kernel&amp;quot;&lt;br /&gt;
[ 3131.796173] 0x000000680000-0x000010000000 : &amp;quot;File System&amp;quot;&lt;br /&gt;
[ 3131.911987] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver&lt;br /&gt;
[ 3131.918853] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller&lt;br /&gt;
[ 3131.925384] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1&lt;br /&gt;
[ 3131.933166] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800&lt;br /&gt;
[ 3131.950286] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00&lt;br /&gt;
[ 3131.956695] usb usb1: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3131.962738] hub 1-0:1.0: USB hub found&lt;br /&gt;
[ 3131.966583] hub 1-0:1.0: 3 ports detected&lt;br /&gt;
[ 3131.972351] Initializing USB Mass Storage driver...&lt;br /&gt;
[ 3131.977630] usbcore: registered new interface driver usb-storage&lt;br /&gt;
[ 3131.983734] USB Mass Storage support registered.&lt;br /&gt;
[ 3131.988922] mice: PS/2 mouse device common for all mice&lt;br /&gt;
[ 3131.994750] input: gpio-keys as /devices/platform/gpio-keys/input/input0&lt;br /&gt;
[ 3132.003601] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-adapter/i2c-1/1-0049/twl4030_pwrbutton/input/input1&lt;br /&gt;
[ 3132.295349] usb 1-2: new high speed USB device using ehci-omap and address 2&lt;br /&gt;
[ 3132.459320] usb 1-2: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3132.465362] hub 1-2:1.0: USB hub found&lt;br /&gt;
[ 3132.469390] hub 1-2:1.0: 4 ports detected&lt;br /&gt;
[ 3132.763183] usb 1-2.1: new high speed USB device using ehci-omap and address 3&lt;br /&gt;
[ 3132.902313] usb 1-2.1: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3133.013031] i2c_omap i2c_omap.2: controller timed out&lt;br /&gt;
[ 3133.018157] rtc-ds1307: probe of 2-0068 failed with error -5&lt;br /&gt;
[ 3133.025421] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec&lt;br /&gt;
[ 3133.031738] Bluetooth: HCI UART driver ver 2.2&lt;br /&gt;
[ 3133.036254] Bluetooth: HCI H4 protocol initialized&lt;br /&gt;
[ 3133.041076] Bluetooth: HCI BCSP protocol initialized&lt;br /&gt;
[ 3133.046112] Bluetooth: HCILL protocol initialized&lt;br /&gt;
[ 3133.050842] Bluetooth: Broadcom Blutonium firmware driver ver 1.2&lt;br /&gt;
[ 3133.057281] usbcore: registered new interface driver bcm203x&lt;br /&gt;
[ 3133.063018] Bluetooth: Digianswer Bluetooth USB driver ver 0.10&lt;br /&gt;
[ 3133.069213] usbcore: registered new interface driver bpa10x&lt;br /&gt;
[ 3133.074829] Bluetooth: BlueFRITZ! USB driver ver 1.2&lt;br /&gt;
[ 3133.080078] usbcore: registered new interface driver bfusb&lt;br /&gt;
[ 3133.085845] Bluetooth: Generic Bluetooth USB driver ver 0.4&lt;br /&gt;
[ 3133.091796] usbcore: registered new interface driver btusb&lt;br /&gt;
[ 3133.097381] Bluetooth: Generic Bluetooth SDIO driver ver 0.1&lt;br /&gt;
[ 3133.104034] mmci-omap-hs mmci-omap-hs.0: Failed to get debounce clock&lt;br /&gt;
[ 3133.216308] mmci-omap-hs mmci-omap-hs.1: Failed to get debounce clock&lt;br /&gt;
[ 3133.222869] regulator: Unable to get requested regulator: vmmc_aux&lt;br /&gt;
[ 3133.231506] Registered led device: beagleboard::usr0&lt;br /&gt;
[ 3133.236785] Registered led device: beagleboard::usr1&lt;br /&gt;
[ 3133.247497] usbcore: registered new interface driver usbhid&lt;br /&gt;
[ 3133.253143] usbhid: v2.6:USB HID core driver&lt;br /&gt;
[ 3133.258453] Advanced Linux Sound Architecture Driver Version 1.0.18a.&lt;br /&gt;
[ 3133.265960] usbcore: registered new interface driver snd-usb-audio&lt;br /&gt;
[ 3133.272521] No device for DAI twl4030&lt;br /&gt;
[ 3133.276214] No device for DAI omap-mcbsp-dai-0&lt;br /&gt;
[ 3133.280883] No device for DAI omap-mcbsp-dai-1&lt;br /&gt;
[ 3133.285339] No device for DAI omap-mcbsp-dai-2&lt;br /&gt;
[ 3133.289947] No device for DAI omap-mcbsp-dai-3&lt;br /&gt;
[ 3133.294433] No device for DAI omap-mcbsp-dai-4&lt;br /&gt;
[ 3133.298919] OMAP3 Beagle SoC init&lt;br /&gt;
[ 3133.302642] TWL4030 Audio Codec init &lt;br /&gt;
[ 3133.307403] asoc: twl4030 &amp;lt;-&amp;gt; omap-mcbsp-dai-0 mapping ok&lt;br /&gt;
[ 3133.321624] ALSA device list:&lt;br /&gt;
[ 3133.324615]   #0: omap3beagle (twl4030)&lt;br /&gt;
[ 3133.329040] oprofile: using arm/armv7&lt;br /&gt;
[ 3133.332916] TCP cubic registered&lt;br /&gt;
[ 3133.336303] NET: Registered protocol family 17&lt;br /&gt;
[ 3133.340850] NET: Registered protocol family 15&lt;br /&gt;
[ 3133.345367] Bluetooth: L2CAP ver 2.11&lt;br /&gt;
[ 3133.349090] Bluetooth: L2CAP socket layer initialized&lt;br /&gt;
[ 3133.354156] Bluetooth: SCO (Voice Link) ver 0.6&lt;br /&gt;
[ 3133.358764] Bluetooth: SCO socket layer initialized&lt;br /&gt;
[ 3133.369445] Bluetooth: RFCOMM socket layer initialized&lt;br /&gt;
[ 3133.374755] Bluetooth: RFCOMM TTY layer initialized&lt;br /&gt;
[ 3133.379669] Bluetooth: RFCOMM ver 1.10&lt;br /&gt;
[ 3133.383453] Bluetooth: BNEP (Ethernet Emulation) ver 1.3&lt;br /&gt;
[ 3133.388824] Bluetooth: BNEP filters: protocol multicast&lt;br /&gt;
[ 3133.394073] Bluetooth: HIDP (Human Interface Emulation) ver 1.2&lt;br /&gt;
[ 3133.403198] RPC: Registered udp transport module.&lt;br /&gt;
[ 3133.407989] RPC: Registered tcp transport module.&lt;br /&gt;
[ 3133.412841] lib80211: common routines for IEEE802.11 drivers&lt;br /&gt;
[ 3133.418609] ThumbEE CPU extension supported.&lt;br /&gt;
[ 3133.423156] Power Management for TI OMAP3.&lt;br /&gt;
[ 3133.433868] Disabling unused clock &amp;quot;sr2_fck&amp;quot;&lt;br /&gt;
[ 3133.438262] Disabling unused clock &amp;quot;sr1_fck&amp;quot;&lt;br /&gt;
[ 3133.442596] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.447052] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.451538] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.456024] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.460510] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.464996] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.469482] Disabling unused clock &amp;quot;gpt2_ick&amp;quot;&lt;br /&gt;
[ 3133.473876] Disabling unused clock &amp;quot;gpt3_ick&amp;quot;&lt;br /&gt;
[ 3133.478271] Disabling unused clock &amp;quot;gpt4_ick&amp;quot;&lt;br /&gt;
[ 3133.482666] Disabling unused clock &amp;quot;gpt5_ick&amp;quot;&lt;br /&gt;
[ 3133.487060] Disabling unused clock &amp;quot;gpt6_ick&amp;quot;&lt;br /&gt;
[ 3133.491455] Disabling unused clock &amp;quot;gpt7_ick&amp;quot;&lt;br /&gt;
[ 3133.495849] Disabling unused clock &amp;quot;gpt8_ick&amp;quot;&lt;br /&gt;
[ 3133.500244] Disabling unused clock &amp;quot;gpt9_ick&amp;quot;&lt;br /&gt;
[ 3133.504608] Disabling unused clock &amp;quot;wdt3_ick&amp;quot;&lt;br /&gt;
[ 3133.509033] Disabling unused clock &amp;quot;wdt3_fck&amp;quot;&lt;br /&gt;
[ 3133.513641] Disabling unused clock &amp;quot;gpio2_dbck&amp;quot;&lt;br /&gt;
[ 3133.518188] Disabling unused clock &amp;quot;gpio3_dbck&amp;quot;&lt;br /&gt;
[ 3133.522766] Disabling unused clock &amp;quot;gpio4_dbck&amp;quot;&lt;br /&gt;
[ 3133.527343] Disabling unused clock &amp;quot;gpio5_dbck&amp;quot;&lt;br /&gt;
[ 3133.531921] Disabling unused clock &amp;quot;gpio6_dbck&amp;quot;&lt;br /&gt;
[ 3133.536499] Disabling unused clock &amp;quot;gpt9_fck&amp;quot;&lt;br /&gt;
[ 3133.540863] Disabling unused clock &amp;quot;gpt8_fck&amp;quot;&lt;br /&gt;
[ 3133.545288] Disabling unused clock &amp;quot;gpt7_fck&amp;quot;&lt;br /&gt;
[ 3133.549652] Disabling unused clock &amp;quot;gpt6_fck&amp;quot;&lt;br /&gt;
[ 3133.554077] Disabling unused clock &amp;quot;gpt5_fck&amp;quot;&lt;br /&gt;
[ 3133.558441] Disabling unused clock &amp;quot;gpt4_fck&amp;quot;&lt;br /&gt;
[ 3133.562866] Disabling unused clock &amp;quot;gpt3_fck&amp;quot;&lt;br /&gt;
[ 3133.567230] Disabling unused clock &amp;quot;gpt2_fck&amp;quot;&lt;br /&gt;
[ 3133.571655] Disabling unused clock &amp;quot;gpt1_ick&amp;quot;&lt;br /&gt;
[ 3133.576049] Disabling unused clock &amp;quot;wdt1_ick&amp;quot;&lt;br /&gt;
[ 3133.580413] Disabling unused clock &amp;quot;wdt2_ick&amp;quot;&lt;br /&gt;
[ 3133.584838] Disabling unused clock &amp;quot;wdt2_fck&amp;quot;&lt;br /&gt;
[ 3133.589202] Disabling unused clock &amp;quot;gpio1_dbck&amp;quot;&lt;br /&gt;
[ 3133.593780] Disabling unused clock &amp;quot;gpt1_fck&amp;quot;&lt;br /&gt;
[ 3133.598175] Disabling unused clock &amp;quot;cam_ick&amp;quot;&lt;br /&gt;
[ 3133.602508] Disabling unused clock &amp;quot;cam_mclk&amp;quot;&lt;br /&gt;
[ 3133.607116] Disabling unused clock &amp;quot;des1_ick&amp;quot;&lt;br /&gt;
[ 3133.611511] Disabling unused clock &amp;quot;sha11_ick&amp;quot;&lt;br /&gt;
[ 3133.615997] Disabling unused clock &amp;quot;rng_ick&amp;quot;&lt;br /&gt;
[ 3133.620300] Disabling unused clock &amp;quot;aes1_ick&amp;quot;&lt;br /&gt;
[ 3133.624694] Disabling unused clock &amp;quot;ssi_ick&amp;quot;&lt;br /&gt;
[ 3133.628997] Disabling unused clock &amp;quot;mailboxes_ick&amp;quot;&lt;br /&gt;
[ 3133.633850] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.638336] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.642791] Disabling unused clock &amp;quot;gpt10_ick&amp;quot;&lt;br /&gt;
[ 3133.647277] Disabling unused clock &amp;quot;gpt11_ick&amp;quot;&lt;br /&gt;
[ 3133.651763] Disabling unused clock &amp;quot;hdq_ick&amp;quot;&lt;br /&gt;
[ 3133.656066] Disabling unused clock &amp;quot;mspro_ick&amp;quot;&lt;br /&gt;
[ 3133.660552] Disabling unused clock &amp;quot;des2_ick&amp;quot;&lt;br /&gt;
[ 3133.664947] Disabling unused clock &amp;quot;sha12_ick&amp;quot;&lt;br /&gt;
[ 3133.669433] Disabling unused clock &amp;quot;aes2_ick&amp;quot;&lt;br /&gt;
[ 3133.673828] Disabling unused clock &amp;quot;icr_ick&amp;quot;&lt;br /&gt;
[ 3133.678131] Disabling unused clock &amp;quot;pka_ick&amp;quot;&lt;br /&gt;
[ 3133.682434] Disabling unused clock &amp;quot;ssi_ssr_fck&amp;quot;&lt;br /&gt;
[ 3133.687103] Disabling unused clock &amp;quot;hdq_fck&amp;quot;&lt;br /&gt;
[ 3133.691406] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.695892] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.700561] Disabling unused clock &amp;quot;mspro_fck&amp;quot;&lt;br /&gt;
[ 3133.705047] Disabling unused clock &amp;quot;gpt11_fck&amp;quot;&lt;br /&gt;
[ 3133.709533] Disabling unused clock &amp;quot;gpt10_fck&amp;quot;&lt;br /&gt;
[ 3133.713989] Disabling unused clock &amp;quot;dpll4_m6x2_ck&amp;quot;&lt;br /&gt;
[ 3133.718841] Disabling unused clock &amp;quot;dpll3_m3x2_ck&amp;quot;&lt;br /&gt;
[ 3133.723693] Disabling unused clock &amp;quot;sys_clkout1&amp;quot;&lt;br /&gt;
[ 3133.728363] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1&lt;br /&gt;
[ 3133.742828] registered taskstats version 1&lt;br /&gt;
[ 3133.764251] Console: switching to colour frame buffer device 80x30&lt;br /&gt;
[ 3133.778198] clock: clksel_round_rate_div: dpll4_m4_ck target_rate 48000000&lt;br /&gt;
[ 3133.785125] clock: new_div = 9, new_rate = 48000000&lt;br /&gt;
[ 3133.795593] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)&lt;br /&gt;
[ 3133.887939] mmc0: new high speed SDHC card at address a9ed&lt;br /&gt;
[ 3133.894042] mmcblk0: mmc0:a9ed SD08G 7.42 GiB &lt;br /&gt;
[ 3133.898986]  mmcblk0: p1 p2&lt;br /&gt;
[ 3134.070312] eth0 (asix): not using net_device_ops yet&lt;br /&gt;
[ 3134.076110] eth0: register 'asix' at usb-ehci-omap.0-2.1, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c3:f3&lt;br /&gt;
[ 3134.134582] kjournald starting.  Commit interval 5 seconds&lt;br /&gt;
[ 3134.169372] usb 1-2.4: new high speed USB device using ehci-omap and address 4&lt;br /&gt;
[ 3134.295684] usb 1-2.4: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3134.301910] hub 1-2.4:1.0: USB hub found&lt;br /&gt;
[ 3134.305999] hub 1-2.4:1.0: 4 ports detected&lt;br /&gt;
[ 3134.390747] EXT3 FS on mmcblk0p2, internal journal&lt;br /&gt;
[ 3134.395599] EXT3-fs: mounted filesystem with ordered data mode.&lt;br /&gt;
[ 3134.401641] VFS: Mounted root (ext3 filesystem) on device 179:2.&lt;br /&gt;
[ 3134.407836] Freeing init memory: 204K&lt;br /&gt;
&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
&lt;br /&gt;
Starting udev[ 3140.940948] twl4030_rtc twl4030_rtc: rtc core: registered twl4030_rtc as rtc0&lt;br /&gt;
[ 3140.948486] twl4030_rtc twl4030_rtc: Power up reset detected.&lt;br /&gt;
[ 3141.017303] twl4030_rtc twl4030_rtc: Enabling TWL4030-RTC.&lt;br /&gt;
[ 3141.952758] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 0&lt;br /&gt;
[ 3141.960601] Buffer I/O error on device mtdblock0, logical block 0&lt;br /&gt;
[ 3142.023376] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 8&lt;br /&gt;
[ 3142.031188] Buffer I/O error on device mtdblock0, logical block 1&lt;br /&gt;
[ 3142.067901] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 16&lt;br /&gt;
[ 3142.075836] Buffer I/O error on device mtdblock0, logical block 2&lt;br /&gt;
[ 3142.100311] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 24&lt;br /&gt;
[ 3142.108215] Buffer I/O error on device mtdblock0, logical block 3&lt;br /&gt;
[ 3142.139556] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 0&lt;br /&gt;
[ 3142.162719] Buffer I/O error on device mtdblock0, logical block 0&lt;br /&gt;
 and populating dev cache&lt;br /&gt;
Remounting root file system...&lt;br /&gt;
[ 3147.624511] NET: Registered protocol family 10&lt;br /&gt;
[ 3147.699707] NET: Registered protocol family 23&lt;br /&gt;
[ 3147.727874] IrCOMM protocol (Dag Brattli)&lt;br /&gt;
Unknown HZ value! (70) Assume 100.&lt;br /&gt;
ALSA: Restoring mixer settings...&lt;br /&gt;
Configuring network interfaces... [ 3149.568145] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
eth0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
udhcpc (v1.13.2) started&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
Sending discover...&lt;br /&gt;
[ 3149.732147] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
Sending discover...&lt;br /&gt;
Sending select for 192.168.1.108...&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
&lt;br /&gt;
INIT: Entering runlevel: 5&lt;br /&gt;
&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-4&lt;br /&gt;
| 5-17&lt;br /&gt;
| Console Setup Code Snippet from .../kernel/printk.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
 * Set up a list of consoles.  Called from init/main.c&lt;br /&gt;
 */&lt;br /&gt;
static int __init console_setup(char *str)&lt;br /&gt;
{&lt;br /&gt;
        char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for index */&lt;br /&gt;
        char *s, *options, *brl_options = NULL;&lt;br /&gt;
        int idx;&lt;br /&gt;
&lt;br /&gt;
#ifdef CONFIG_A11Y_BRAILLE_CONSOLE&lt;br /&gt;
        if (!memcmp(str, &amp;quot;brl,&amp;quot;, 4)) {&lt;br /&gt;
                brl_options = &amp;quot;&amp;quot;;&lt;br /&gt;
                str += 4;&lt;br /&gt;
        } else if (!memcmp(str, &amp;quot;brl=&amp;quot;, 4)) {&lt;br /&gt;
                brl_options = str + 4;&lt;br /&gt;
                str = strchr(brl_options, ',');&lt;br /&gt;
                if (!str) {&lt;br /&gt;
                        printk(KERN_ERR &amp;quot;need port name after brl=\n&amp;quot;);&lt;br /&gt;
                        return 1;&lt;br /&gt;
                }&lt;br /&gt;
                *(str++) = 0;&lt;br /&gt;
        }&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Decode str into name, index, options.&lt;br /&gt;
         */&lt;br /&gt;
        if (str[0] &amp;gt;= '0' &amp;amp;&amp;amp; str[0] &amp;lt;= '9') {&lt;br /&gt;
                strcpy(buf, &amp;quot;ttyS&amp;quot;);&lt;br /&gt;
                strncpy(buf + 4, str, sizeof(buf) - 5);&lt;br /&gt;
        } else {&lt;br /&gt;
                strncpy(buf, str, sizeof(buf) - 1);&lt;br /&gt;
        }&lt;br /&gt;
        buf[sizeof(buf) - 1] = 0;&lt;br /&gt;
        if ((options = strchr(str, ',')) != NULL)&lt;br /&gt;
                *(options++) = 0;&lt;br /&gt;
#ifdef __sparc__&lt;br /&gt;
        if (!strcmp(str, &amp;quot;ttya&amp;quot;))&lt;br /&gt;
                strcpy(buf, &amp;quot;ttyS0&amp;quot;);&lt;br /&gt;
        if (!strcmp(str, &amp;quot;ttyb&amp;quot;))&lt;br /&gt;
                strcpy(buf, &amp;quot;ttyS1&amp;quot;);&lt;br /&gt;
#endif&lt;br /&gt;
        for (s = buf; *s; s++)&lt;br /&gt;
                if ((*s &amp;gt;= '0' &amp;amp;&amp;amp; *s &amp;lt;= '9') || *s == ',')&lt;br /&gt;
                        break;&lt;br /&gt;
        idx = simple_strtoul(s, NULL, 10);&lt;br /&gt;
        *s = 0;&lt;br /&gt;
&lt;br /&gt;
        __add_preferred_console(buf, idx, options, brl_options);&lt;br /&gt;
        console_set_on_cmdline = 1;&lt;br /&gt;
        return 1;&lt;br /&gt;
}&lt;br /&gt;
__setup(&amp;quot;console=&amp;quot;, console_setup);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-5&lt;br /&gt;
| 5-18&lt;br /&gt;
| Family of __setup Macro Definitions from .../include/linux/init.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#define __setup_param(str, unique_id, fn, early)                        \&lt;br /&gt;
        static char __setup_str_##unique_id[] __initdata __aligned(1) = str; \&lt;br /&gt;
        static struct obs_kernel_param __setup_##unique_id      \&lt;br /&gt;
                __used __section(.init.setup)                   \&lt;br /&gt;
                __attribute__((aligned((sizeof(long)))))        \&lt;br /&gt;
                = { __setup_str_##unique_id, fn, early }&lt;br /&gt;
&lt;br /&gt;
#define __setup(str, fn)                                        \&lt;br /&gt;
        __setup_param(str, fn, fn, 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-6&lt;br /&gt;
| 5-19&lt;br /&gt;
| Kernel Command Line Processing&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
extern struct obs_kernel_param __setup_start[], __setup_end[];&lt;br /&gt;
&lt;br /&gt;
static int __init obsolete_checksetup(char *line)&lt;br /&gt;
{&lt;br /&gt;
        struct obs_kernel_param *p;&lt;br /&gt;
        int had_early_param = 0;&lt;br /&gt;
&lt;br /&gt;
        p = __setup_start;&lt;br /&gt;
        do {&lt;br /&gt;
                int n = strlen(p-&amp;gt;str);&lt;br /&gt;
                if (!strncmp(line, p-&amp;gt;str, n)) {&lt;br /&gt;
                        if (p-&amp;gt;early) {&lt;br /&gt;
                                /* Already done in parse_early_param?&lt;br /&gt;
                                 * (Needs exact match on param part).&lt;br /&gt;
                                 * Keep iterating, as we can have early&lt;br /&gt;
                                 * params and __setups of same names 8( */&lt;br /&gt;
                                if (line[n] == '\0' || line[n] == '=')&lt;br /&gt;
                                        had_early_param = 1;&lt;br /&gt;
                        } else if (!p-&amp;gt;setup_func) {&lt;br /&gt;
                                printk(KERN_WARNING &amp;quot;Parameter %s is obsolete,&amp;quot;&lt;br /&gt;
                                       &amp;quot; ignored\n&amp;quot;, p-&amp;gt;str);&lt;br /&gt;
                                return 1;&lt;br /&gt;
                        } else if (p-&amp;gt;setup_func(line + n))&lt;br /&gt;
                                return 1;&lt;br /&gt;
                }&lt;br /&gt;
                p++;&lt;br /&gt;
        } while (p &amp;lt; __setup_end);&lt;br /&gt;
&lt;br /&gt;
        return had_early_param;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-7&lt;br /&gt;
| 5-22&lt;br /&gt;
| Example Initialization Routine - .../arch/arm/kernel/setup.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
static void (*init_machine)(void) __initdata;&lt;br /&gt;
&lt;br /&gt;
static int __init customize_machine(void)&lt;br /&gt;
{&lt;br /&gt;
        /* customizes platform devices, or adds new ones */&lt;br /&gt;
        if (init_machine)&lt;br /&gt;
                init_machine();&lt;br /&gt;
        return 0;&lt;br /&gt;
}&lt;br /&gt;
arch_initcall(customize_machine);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-8&lt;br /&gt;
| 5-22&lt;br /&gt;
| initcall Family of Macros - .../include/linux/init.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#define __define_initcall(level,fn,id) \&lt;br /&gt;
        static initcall_t __initcall_##fn##id __used \&lt;br /&gt;
        __attribute__((__section__(&amp;quot;.initcall&amp;quot; level &amp;quot;.init&amp;quot;))) = fn&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Early initcalls run before initializing SMP.&lt;br /&gt;
 *&lt;br /&gt;
 * Only for built-in code, not modules.&lt;br /&gt;
 */&lt;br /&gt;
#define early_initcall(fn)              __define_initcall(&amp;quot;early&amp;quot;,fn,early)&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * A &amp;quot;pure&amp;quot; initcall has no dependencies on anything else, and purely&lt;br /&gt;
 * initializes variables that couldn't be statically initialized.&lt;br /&gt;
 *&lt;br /&gt;
 * This only exists for built-in code, not for modules.&lt;br /&gt;
 */&lt;br /&gt;
#define pure_initcall(fn)               __define_initcall(&amp;quot;0&amp;quot;,fn,0)&lt;br /&gt;
&lt;br /&gt;
#define core_initcall(fn)               __define_initcall(&amp;quot;1&amp;quot;,fn,1)&lt;br /&gt;
#define core_initcall_sync(fn)          __define_initcall(&amp;quot;1s&amp;quot;,fn,1s)&lt;br /&gt;
#define postcore_initcall(fn)           __define_initcall(&amp;quot;2&amp;quot;,fn,2)&lt;br /&gt;
#define postcore_initcall_sync(fn)      __define_initcall(&amp;quot;2s&amp;quot;,fn,2s)&lt;br /&gt;
#define arch_initcall(fn)               __define_initcall(&amp;quot;3&amp;quot;,fn,3)&lt;br /&gt;
#define arch_initcall_sync(fn)          __define_initcall(&amp;quot;3s&amp;quot;,fn,3s)&lt;br /&gt;
#define subsys_initcall(fn)             __define_initcall(&amp;quot;4&amp;quot;,fn,4)&lt;br /&gt;
#define subsys_initcall_sync(fn)        __define_initcall(&amp;quot;4s&amp;quot;,fn,4s)&lt;br /&gt;
#define fs_initcall(fn)                 __define_initcall(&amp;quot;5&amp;quot;,fn,5)&lt;br /&gt;
#define fs_initcall_sync(fn)            __define_initcall(&amp;quot;5s&amp;quot;,fn,5s)&lt;br /&gt;
#define rootfs_initcall(fn)             __define_initcall(&amp;quot;rootfs&amp;quot;,fn,rootfs)&lt;br /&gt;
#define device_initcall(fn)             __define_initcall(&amp;quot;6&amp;quot;,fn,6)&lt;br /&gt;
#define device_initcall_sync(fn)        __define_initcall(&amp;quot;6s&amp;quot;,fn,6s)&lt;br /&gt;
#define late_initcall(fn)               __define_initcall(&amp;quot;7&amp;quot;,fn,7)&lt;br /&gt;
#define late_initcall_sync(fn)          __define_initcall(&amp;quot;7s&amp;quot;,fn,7s)&lt;br /&gt;
&lt;br /&gt;
#define __initcall(fn) device_initcall(fn)&lt;br /&gt;
&lt;br /&gt;
#define __exitcall(fn) \&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-9&lt;br /&gt;
| 5-24&lt;br /&gt;
| Creation of Kernel init Thread&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
static noinline void __init_refok rest_init(void)&lt;br /&gt;
        __releases(kernel_lock)&lt;br /&gt;
{&lt;br /&gt;
        int pid;&lt;br /&gt;
&lt;br /&gt;
        kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);&lt;br /&gt;
        numa_default_policy();&lt;br /&gt;
        pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);&lt;br /&gt;
        kthreadd_task = find_task_by_pid_ns(pid, &amp;amp;init_pid_ns);&lt;br /&gt;
        unlock_kernel();&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * The boot idle thread must execute schedule()&lt;br /&gt;
         * at least once to get things moving:&lt;br /&gt;
         */&lt;br /&gt;
        init_idle_bootup_task(current);&lt;br /&gt;
        rcu_scheduler_starting();&lt;br /&gt;
        preempt_enable_no_resched();&lt;br /&gt;
        schedule();&lt;br /&gt;
        preempt_disable();&lt;br /&gt;
&lt;br /&gt;
        /* Call into cpu_idle with preempt disabled */&lt;br /&gt;
        cpu_idle();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-10&lt;br /&gt;
| 5-25&lt;br /&gt;
| Initialization via initcalls&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[];&lt;br /&gt;
&lt;br /&gt;
static void __init do_initcalls(void)&lt;br /&gt;
{&lt;br /&gt;
        initcall_t *call;&lt;br /&gt;
&lt;br /&gt;
        for (call = __early_initcall_end; call &amp;lt; __initcall_end; call++)&lt;br /&gt;
                do_one_initcall(*call);&lt;br /&gt;
&lt;br /&gt;
        /* Make sure there is no pending stuff from the initcall sequence */&lt;br /&gt;
        flush_scheduled_work();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-11&lt;br /&gt;
| 5-27&lt;br /&gt;
| Final Boot Steps from main.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
static noinline int init_post(void)&lt;br /&gt;
{&lt;br /&gt;
        /* need to finish all async __init code before freeing the memory */&lt;br /&gt;
        async_synchronize_full();&lt;br /&gt;
        free_initmem();&lt;br /&gt;
        unlock_kernel();&lt;br /&gt;
        mark_rodata_ro();&lt;br /&gt;
        system_state = SYSTEM_RUNNING;&lt;br /&gt;
        numa_default_policy();&lt;br /&gt;
&lt;br /&gt;
        if (sys_open((const char __user *) &amp;quot;/dev/console&amp;quot;, O_RDWR, 0) &amp;lt; 0)&lt;br /&gt;
                printk(KERN_WARNING &amp;quot;Warning: unable to open an initial console.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        (void) sys_dup(0);&lt;br /&gt;
        (void) sys_dup(0);&lt;br /&gt;
&lt;br /&gt;
        current-&amp;gt;signal-&amp;gt;flags |= SIGNAL_UNKILLABLE;&lt;br /&gt;
&lt;br /&gt;
        if (ramdisk_execute_command) {&lt;br /&gt;
                run_init_process(ramdisk_execute_command);&lt;br /&gt;
                printk(KERN_WARNING &amp;quot;Failed to execute %s\n&amp;quot;,&lt;br /&gt;
                                ramdisk_execute_command);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * We try each of these until one succeeds.&lt;br /&gt;
         *&lt;br /&gt;
         * The Bourne shell can be used instead of init if we are&lt;br /&gt;
         * trying to recover a really broken machine.&lt;br /&gt;
         */&lt;br /&gt;
        if (execute_command) {&lt;br /&gt;
                run_init_process(execute_command);&lt;br /&gt;
                printk(KERN_WARNING &amp;quot;Failed to execute %s.  Attempting &amp;quot;&lt;br /&gt;
                                        &amp;quot;defaults...\n&amp;quot;, execute_command);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
        run_init_process(&amp;quot;/sbin/init&amp;quot;);&lt;br /&gt;
        run_init_process(&amp;quot;/etc/init&amp;quot;);&lt;br /&gt;
        run_init_process(&amp;quot;/bin/init&amp;quot;);&lt;br /&gt;
        run_init_process(&amp;quot;/bin/sh&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        panic(&amp;quot;No init found.  Try passing init= option to kernel.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 6 ==&lt;br /&gt;
&lt;br /&gt;
== Chapter 8 ==&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-04-02T00:57:09Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Chapter 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Listings =&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
??&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o&lt;br /&gt;
total 764K&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c&lt;br /&gt;
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c&lt;br /&gt;
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c&lt;br /&gt;
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c&lt;br /&gt;
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c&lt;br /&gt;
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 4-17&lt;br /&gt;
| Snippet from Linux 2.6 .config&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
1872 #&lt;br /&gt;
1873 # USB Input Devices&lt;br /&gt;
1874 #&lt;br /&gt;
1875 CONFIG_USB_HID=y&lt;br /&gt;
1876 # CONFIG_HID_PID is not set&lt;br /&gt;
1877 # CONFIG_USB_HIDDEV is not set&lt;br /&gt;
1878 &lt;br /&gt;
1879 #&lt;br /&gt;
1880 # Special HID drivers&lt;br /&gt;
1881 #&lt;br /&gt;
1882 CONFIG_HID_COMPAT=y&lt;br /&gt;
1883 CONFIG_HID_A4TECH=y&lt;br /&gt;
1884 CONFIG_HID_APPLE=y&lt;br /&gt;
1885 CONFIG_HID_BELKIN=y&lt;br /&gt;
1886 CONFIG_HID_CHERRY=y&lt;br /&gt;
1887 CONFIG_HID_CHICONY=y&lt;br /&gt;
1888 CONFIG_HID_CYPRESS=y&lt;br /&gt;
1889 CONFIG_HID_EZKEY=y&lt;br /&gt;
1890 CONFIG_HID_GYRATION=y&lt;br /&gt;
1891 CONFIG_HID_LOGITECH=y&lt;br /&gt;
1892 # CONFIG_LOGITECH_FF is not set&lt;br /&gt;
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-5&lt;br /&gt;
| 4-21&lt;br /&gt;
| Linux autoconf.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % cat include/linux/autoconf.h| grep CONFIG_USB&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETMOTORCONTROL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_LEGOTOWER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_T613_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_RNDIS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_W9968CF_MODULE 1&lt;br /&gt;
#define CONFIG_USB_RTL8150 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_KAWETH 1&lt;br /&gt;
#define CONFIG_USB_ZERO_HNPTEST 1&lt;br /&gt;
#define CONFIG_USB_CXACRU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_ARK3116_MODULE 1&lt;br /&gt;
#define CONFIG_USB_G_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_PLUSB 1&lt;br /&gt;
#define CONFIG_USB_GPIO_VBUS 1&lt;br /&gt;
#define CONFIG_USB_EHCI_TT_NEWSCHED 1&lt;br /&gt;
#define CONFIG_USB_ACM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_EHCI 1&lt;br /&gt;
#define CONFIG_USB_USBNET 1&lt;br /&gt;
#define CONFIG_USB_LCD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_BELKIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LED_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1&lt;br /&gt;
#define CONFIG_USB_HID 1&lt;br /&gt;
#define CONFIG_USB_GADGET_VBUS_DRAW 2&lt;br /&gt;
#define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OTG_UTILS 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_OHCI 1&lt;br /&gt;
#define CONFIG_USB_CDC_COMPOSITE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GARMIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7720_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_NAVMAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_FINEPIX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7840_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TMC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OTI6858_MODULE 1&lt;br /&gt;
#define CONFIG_USB_WDM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MON 1&lt;br /&gt;
#define CONFIG_USB_OTG 1&lt;br /&gt;
#define CONFIG_USB_PWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETKIT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ET61X251_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_XIRCOM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SPEEDTOUCH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_CON 1&lt;br /&gt;
#define CONFIG_USB_NET_NET1080 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTION_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZR364XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_MCS7830 1&lt;br /&gt;
#define CONFIG_USB_VST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MARS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EHCI_ROOT_HUB_TT 1&lt;br /&gt;
#define CONFIG_USB_PHIDGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CYPRESS_CY7C63_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV534_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPW_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_AX8817X 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV519_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IUU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STV06XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1&lt;br /&gt;
#define CONFIG_USB_STORAGE 1&lt;br /&gt;
#define CONFIG_USB_IDMOUSE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PEGASUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1&lt;br /&gt;
#define CONFIG_USB_M5602_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CATC 1&lt;br /&gt;
#define CONFIG_USB_CYTHERM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GENERIC 1&lt;br /&gt;
#define CONFIG_USB_IRDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_S2255_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUSPEND 1&lt;br /&gt;
#define CONFIG_USB_XUSBATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TRANCEVIBRATOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SE401_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MIDI_GADGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_ZAURUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OMNINET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC207_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTICON_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OV511_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUPPORT 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SAFE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZERO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TEST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CH341_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI26_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI62_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_HP4X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGETFS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_CDC_SUBSET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1&lt;br /&gt;
#define CONFIG_USB_EHCI_HCD 1&lt;br /&gt;
#define CONFIG_USB_DEVICEFS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_TV8532_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPAQ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_CONEX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ZC3XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MCT_U232_MODULE 1&lt;br /&gt;
#define CONFIG_USB_KONICAWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KLSI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ALI_M5632 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_VC032X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_SELECTED 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_STK014_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OXU210HP_HCD 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ETOMS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_QUICKCAM_MESSENGER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_WLAN 1&lt;br /&gt;
#define CONFIG_USB_KC2190 1&lt;br /&gt;
#define CONFIG_USB_AN2720 1&lt;br /&gt;
#define CONFIG_USB_EPSON2888 1&lt;br /&gt;
#define CONFIG_USB_ZC0301_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZD1201 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_HOST 1&lt;br /&gt;
#define CONFIG_USB_G_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DEBUG_FS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC7311_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VICAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARMLINUX 1&lt;br /&gt;
#define CONFIG_USB_ATMEL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CP2101_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_SOC 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_OTG 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_PL2303_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1&lt;br /&gt;
#define CONFIG_USB_DEVICE_CLASS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DEBUG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MPR 1&lt;br /&gt;
#define CONFIG_USB_NET_CDCETHER 1&lt;br /&gt;
#define CONFIG_USB_EZUSB 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA500_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA501_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_BERRY_CHARGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EMPEG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA505_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA506_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA561_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA508_MODULE 1&lt;br /&gt;
#define CONFIG_USB_FILE_STORAGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETSERVO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1&lt;br /&gt;
#define CONFIG_USB_UEAGLEATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_INVENTRA_DMA 1&lt;br /&gt;
#define CONFIG_USB_NET_SMSC95XX 1&lt;br /&gt;
#define CONFIG_USB_STV680_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXB_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STKWEBCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DUALSPEED 1&lt;br /&gt;
#define CONFIG_USB_FTDI_ELAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_DM9601 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXJ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_IBMCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SN9C102_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_VISOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_GL620A 1&lt;br /&gt;
#define CONFIG_USB_BELKIN 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| 4-22&lt;br /&gt;
| Makefile Targets&lt;br /&gt;
| &amp;lt;pre&amp;gt;Cleaning targets:&lt;br /&gt;
  clean		  - Remove most generated files but keep the config and&lt;br /&gt;
                    enough build support to build external modules&lt;br /&gt;
  mrproper	  - Remove all generated files + config + various backup files&lt;br /&gt;
  distclean	  - mrproper + remove editor backup and patch files&lt;br /&gt;
&lt;br /&gt;
Configuration targets:&lt;br /&gt;
  config	  - Update current config utilising a line-oriented program&lt;br /&gt;
  menuconfig	  - Update current config utilising a menu based program&lt;br /&gt;
  xconfig	  - Update current config utilising a QT based front-end&lt;br /&gt;
  gconfig	  - Update current config utilising a GTK based front-end&lt;br /&gt;
  oldconfig	  - Update current config utilising a provided .config as base&lt;br /&gt;
  silentoldconfig - Same as oldconfig, but quietly&lt;br /&gt;
  randconfig	  - New config with random answer to all options&lt;br /&gt;
  defconfig	  - New config with default answer to all options&lt;br /&gt;
  allmodconfig	  - New config selecting modules when possible&lt;br /&gt;
  allyesconfig	  - New config where all options are accepted with yes&lt;br /&gt;
  allnoconfig	  - New config where all options are answered with no&lt;br /&gt;
&lt;br /&gt;
Other generic targets:&lt;br /&gt;
  all		  - Build all targets marked with [*]&lt;br /&gt;
* vmlinux	  - Build the bare kernel&lt;br /&gt;
* modules	  - Build all modules&lt;br /&gt;
  modules_install - Install all modules to INSTALL_MOD_PATH (default: /)&lt;br /&gt;
  firmware_install- Install all firmware to INSTALL_FW_PATH&lt;br /&gt;
                    (default: $(INSTALL_MOD_PATH)/lib/firmware)&lt;br /&gt;
  dir/            - Build all files in dir and below&lt;br /&gt;
  dir/file.[ois]  - Build specified target only&lt;br /&gt;
  dir/file.ko     - Build module including final link&lt;br /&gt;
  prepare         - Set up for building external modules&lt;br /&gt;
  tags/TAGS	  - Generate tags file for editors&lt;br /&gt;
  cscope	  - Generate cscope index&lt;br /&gt;
  kernelrelease	  - Output the release version string&lt;br /&gt;
  kernelversion	  - Output the version stored in Makefile&lt;br /&gt;
  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH&lt;br /&gt;
                    (default: /home/users/collinjc/oe/angstrom-dev-backup2/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r46/git/usr)&lt;br /&gt;
&lt;br /&gt;
Static analysers&lt;br /&gt;
  checkstack      - Generate a list of stack hogs&lt;br /&gt;
  namespacecheck  - Name space analysis on compiled kernel&lt;br /&gt;
  versioncheck    - Sanity check on version.h usage&lt;br /&gt;
  includecheck    - Check for duplicate included header files&lt;br /&gt;
  export_report   - List the usages of all exported symbols&lt;br /&gt;
  headers_check   - Sanity check on exported headers&lt;br /&gt;
  headerdep       - Detect inclusion cycles in headers&lt;br /&gt;
&lt;br /&gt;
Kernel packaging:&lt;br /&gt;
  rpm-pkg         - Build both source and binary RPM kernel packages&lt;br /&gt;
  binrpm-pkg      - Build only the binary kernel package&lt;br /&gt;
  deb-pkg         - Build the kernel as an deb package&lt;br /&gt;
  tar-pkg         - Build the kernel as an uncompressed tarball&lt;br /&gt;
  targz-pkg       - Build the kernel as a gzip compressed tarball&lt;br /&gt;
  tarbz2-pkg      - Build the kernel as a bzip2 compressed tarball&lt;br /&gt;
&lt;br /&gt;
Documentation targets:&lt;br /&gt;
 Linux kernel internal documentation in different formats:&lt;br /&gt;
  htmldocs        - HTML&lt;br /&gt;
  installmandocs  - install man pages generated by mandocs&lt;br /&gt;
  mandocs         - man pages&lt;br /&gt;
  pdfdocs         - PDF&lt;br /&gt;
  psdocs          - Postscript&lt;br /&gt;
  xmldocs         - XML DocBook&lt;br /&gt;
&lt;br /&gt;
Architecture specific targets (arm):&lt;br /&gt;
* zImage        - Compressed kernel image (arch/arm/boot/zImage)&lt;br /&gt;
  Image         - Uncompressed kernel image (arch/arm/boot/Image)&lt;br /&gt;
* xipImage      - XIP kernel image, if configured (arch/arm/boot/xipImage)&lt;br /&gt;
  uImage        - U-Boot wrapped zImage&lt;br /&gt;
  bootpImage    - Combined zImage and initial RAM disk&lt;br /&gt;
                  (supply initrd image via make variable INITRD=&amp;lt;path&amp;gt;)&lt;br /&gt;
  install       - Install uncompressed kernel&lt;br /&gt;
  zinstall      - Install compressed kernel&lt;br /&gt;
                  Install using (your) ~/bin/installkernel or&lt;br /&gt;
                  (distribution) /sbin/installkernel or&lt;br /&gt;
                  install to $(INSTALL_PATH) and run lilo&lt;br /&gt;
&lt;br /&gt;
  afeb9260_defconfig       - Build for afeb9260&lt;br /&gt;
  am200epdkit_defconfig    - Build for am200epdkit&lt;br /&gt;
  ams_delta_defconfig      - Build for ams_delta&lt;br /&gt;
  assabet_defconfig        - Build for assabet&lt;br /&gt;
  at91cap9adk_defconfig    - Build for at91cap9adk&lt;br /&gt;
  at91rm9200dk_defconfig   - Build for at91rm9200dk&lt;br /&gt;
  at91rm9200ek_defconfig   - Build for at91rm9200ek&lt;br /&gt;
  at91sam9260ek_defconfig  - Build for at91sam9260ek&lt;br /&gt;
  at91sam9261ek_defconfig  - Build for at91sam9261ek&lt;br /&gt;
  at91sam9263ek_defconfig  - Build for at91sam9263ek&lt;br /&gt;
  at91sam9g20ek_defconfig  - Build for at91sam9g20ek&lt;br /&gt;
  at91sam9rlek_defconfig   - Build for at91sam9rlek&lt;br /&gt;
  ateb9200_defconfig       - Build for ateb9200&lt;br /&gt;
  badge4_defconfig         - Build for badge4&lt;br /&gt;
  cam60_defconfig          - Build for cam60&lt;br /&gt;
  carmeva_defconfig        - Build for carmeva&lt;br /&gt;
  cerfcube_defconfig       - Build for cerfcube&lt;br /&gt;
  cm_x300_defconfig        - Build for cm_x300&lt;br /&gt;
  colibri_defconfig        - Build for colibri&lt;br /&gt;
  collie_defconfig         - Build for collie&lt;br /&gt;
  corgi_defconfig          - Build for corgi&lt;br /&gt;
  csb337_defconfig         - Build for csb337&lt;br /&gt;
  csb637_defconfig         - Build for csb637&lt;br /&gt;
  dss_omap3_beagle_defconfig - Build for dss_omap3_beagle&lt;br /&gt;
  dss_omap_3430sdp_defconfig - Build for dss_omap_3430sdp&lt;br /&gt;
  dss_overo_defconfig      - Build for dss_overo&lt;br /&gt;
  ebsa110_defconfig        - Build for ebsa110&lt;br /&gt;
  ecbat91_defconfig        - Build for ecbat91&lt;br /&gt;
  edb7211_defconfig        - Build for edb7211&lt;br /&gt;
  ep93xx_defconfig         - Build for ep93xx&lt;br /&gt;
  eseries_pxa_defconfig    - Build for eseries_pxa&lt;br /&gt;
  ezx_defconfig            - Build for ezx&lt;br /&gt;
  footbridge_defconfig     - Build for footbridge&lt;br /&gt;
  fortunet_defconfig       - Build for fortunet&lt;br /&gt;
  h3600_defconfig          - Build for h3600&lt;br /&gt;
  h5000_defconfig          - Build for h5000&lt;br /&gt;
  h7201_defconfig          - Build for h7201&lt;br /&gt;
  h7202_defconfig          - Build for h7202&lt;br /&gt;
  hackkit_defconfig        - Build for hackkit&lt;br /&gt;
  imx27ads_defconfig       - Build for imx27ads&lt;br /&gt;
  integrator_defconfig     - Build for integrator&lt;br /&gt;
  iop13xx_defconfig        - Build for iop13xx&lt;br /&gt;
  iop32x_defconfig         - Build for iop32x&lt;br /&gt;
  iop33x_defconfig         - Build for iop33x&lt;br /&gt;
  ixp2000_defconfig        - Build for ixp2000&lt;br /&gt;
  ixp23xx_defconfig        - Build for ixp23xx&lt;br /&gt;
  ixp4xx_defconfig         - Build for ixp4xx&lt;br /&gt;
  jornada720_defconfig     - Build for jornada720&lt;br /&gt;
  kafa_defconfig           - Build for kafa&lt;br /&gt;
  kb9202_defconfig         - Build for kb9202&lt;br /&gt;
  kirkwood_defconfig       - Build for kirkwood&lt;br /&gt;
  ks8695_defconfig         - Build for ks8695&lt;br /&gt;
  lart_defconfig           - Build for lart&lt;br /&gt;
  littleton_defconfig      - Build for littleton&lt;br /&gt;
  loki_defconfig           - Build for loki&lt;br /&gt;
  lpd270_defconfig         - Build for lpd270&lt;br /&gt;
  lpd7a400_defconfig       - Build for lpd7a400&lt;br /&gt;
  lpd7a404_defconfig       - Build for lpd7a404&lt;br /&gt;
  lubbock_defconfig        - Build for lubbock&lt;br /&gt;
  lusl7200_defconfig       - Build for lusl7200&lt;br /&gt;
  magician_defconfig       - Build for magician&lt;br /&gt;
  mainstone_defconfig      - Build for mainstone&lt;br /&gt;
  msm_defconfig            - Build for msm&lt;br /&gt;
  mv78xx0_defconfig        - Build for mv78xx0&lt;br /&gt;
  mx1ads_defconfig         - Build for mx1ads&lt;br /&gt;
  mx31ads_defconfig        - Build for mx31ads&lt;br /&gt;
  mx31litekit_defconfig    - Build for mx31litekit&lt;br /&gt;
  mx31moboard_defconfig    - Build for mx31moboard&lt;br /&gt;
  mx31pdk_defconfig        - Build for mx31pdk&lt;br /&gt;
  n770_defconfig           - Build for n770&lt;br /&gt;
  n800_defconfig           - Build for n800&lt;br /&gt;
  neocore926_defconfig     - Build for neocore926&lt;br /&gt;
  neponset_defconfig       - Build for neponset&lt;br /&gt;
  netwinder_defconfig      - Build for netwinder&lt;br /&gt;
  netx_defconfig           - Build for netx&lt;br /&gt;
  ns9xxx_defconfig         - Build for ns9xxx&lt;br /&gt;
  omap2_evm_defconfig      - Build for omap2_evm&lt;br /&gt;
  omap3_beagle_defconfig   - Build for omap3_beagle&lt;br /&gt;
  omap3_evm_defconfig      - Build for omap3_evm&lt;br /&gt;
  omap3_pandora_defconfig  - Build for omap3_pandora&lt;br /&gt;
  omap_2430sdp_defconfig   - Build for omap_2430sdp&lt;br /&gt;
  omap_3430sdp_defconfig   - Build for omap_3430sdp&lt;br /&gt;
  omap_apollon_2420_defconfig - Build for omap_apollon_2420&lt;br /&gt;
  omap_generic_1510_defconfig - Build for omap_generic_1510&lt;br /&gt;
  omap_generic_1610_defconfig - Build for omap_generic_1610&lt;br /&gt;
  omap_generic_1710_defconfig - Build for omap_generic_1710&lt;br /&gt;
  omap_generic_2420_defconfig - Build for omap_generic_2420&lt;br /&gt;
  omap_h2_1610_defconfig   - Build for omap_h2_1610&lt;br /&gt;
  omap_h3_1710_defconfig   - Build for omap_h3_1710&lt;br /&gt;
  omap_h4_2420_defconfig   - Build for omap_h4_2420&lt;br /&gt;
  omap_innovator_1510_defconfig - Build for omap_innovator_1510&lt;br /&gt;
  omap_innovator_1610_defconfig - Build for omap_innovator_1610&lt;br /&gt;
  omap_ldp_defconfig       - Build for omap_ldp&lt;br /&gt;
  omap_osk_5912_defconfig  - Build for omap_osk_5912&lt;br /&gt;
  omap_perseus2_730_defconfig - Build for omap_perseus2_730&lt;br /&gt;
  onearm_defconfig         - Build for onearm&lt;br /&gt;
  orion5x_defconfig        - Build for orion5x&lt;br /&gt;
  overo_defconfig          - Build for overo&lt;br /&gt;
  palmte_defconfig         - Build for palmte&lt;br /&gt;
  palmtt_defconfig         - Build for palmtt&lt;br /&gt;
  palmz71_defconfig        - Build for palmz71&lt;br /&gt;
  palmz72_defconfig        - Build for palmz72&lt;br /&gt;
  pcm027_defconfig         - Build for pcm027&lt;br /&gt;
  pcm037_defconfig         - Build for pcm037&lt;br /&gt;
  pcm038_defconfig         - Build for pcm038&lt;br /&gt;
  picotux200_defconfig     - Build for picotux200&lt;br /&gt;
  pleb_defconfig           - Build for pleb&lt;br /&gt;
  pnx4008_defconfig        - Build for pnx4008&lt;br /&gt;
  pxa255-idp_defconfig     - Build for pxa255-idp&lt;br /&gt;
  qil-a9260_defconfig      - Build for qil-a9260&lt;br /&gt;
  realview-smp_defconfig   - Build for realview-smp&lt;br /&gt;
  realview_defconfig       - Build for realview&lt;br /&gt;
  rpc_defconfig            - Build for rpc&lt;br /&gt;
  rx51_defconfig           - Build for rx51&lt;br /&gt;
  s3c2410_defconfig        - Build for s3c2410&lt;br /&gt;
  s3c6400_defconfig        - Build for s3c6400&lt;br /&gt;
  sam9_l9260_defconfig     - Build for sam9_l9260&lt;br /&gt;
  shannon_defconfig        - Build for shannon&lt;br /&gt;
  shark_defconfig          - Build for shark&lt;br /&gt;
  simpad_defconfig         - Build for simpad&lt;br /&gt;
  spitz_defconfig          - Build for spitz&lt;br /&gt;
  sx1_defconfig            - Build for sx1&lt;br /&gt;
  tct_hammer_defconfig     - Build for tct_hammer&lt;br /&gt;
  trizeps4_defconfig       - Build for trizeps4&lt;br /&gt;
  usb-a9260_defconfig      - Build for usb-a9260&lt;br /&gt;
  usb-a9263_defconfig      - Build for usb-a9263&lt;br /&gt;
  versatile_defconfig      - Build for versatile&lt;br /&gt;
  viper_defconfig          - Build for viper&lt;br /&gt;
  w90p910_defconfig        - Build for w90p910&lt;br /&gt;
  xm_x2xx_defconfig        - Build for xm_x2xx&lt;br /&gt;
  yl9200_defconfig         - Build for yl9200&lt;br /&gt;
  zylonite_defconfig       - Build for zylonite&lt;br /&gt;
&lt;br /&gt;
  make V=0|1 [targets] 0 =&amp;gt; quiet build (default), 1 =&amp;gt; verbose build&lt;br /&gt;
  make V=2   [targets] 2 =&amp;gt; give reason for rebuild of target&lt;br /&gt;
  make O=dir [targets] Locate all output files in &amp;quot;dir&amp;quot;, including .config&lt;br /&gt;
  make C=1   [targets] Check all c source with $CHECK (sparse by default)&lt;br /&gt;
  make C=2   [targets] Force check of all c source with $CHECK&lt;br /&gt;
&lt;br /&gt;
Execute &amp;quot;make&amp;quot; or &amp;quot;make all&amp;quot; to build all targets marked with [*] &lt;br /&gt;
For further info see the ./README file&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-7&lt;br /&gt;
| 4-27&lt;br /&gt;
| Partial Listing of Kconfig for ARM Architecture&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-8&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
 183 config VECTORS_BASE&lt;br /&gt;
 184         hex&lt;br /&gt;
 185         default 0xffff0000 if MMU || CPU_HIGH_VECTOR&lt;br /&gt;
 186         default DRAM_BASE if REMAP_VECTORS_TO_RAM&lt;br /&gt;
 187         default 0x00000000&lt;br /&gt;
 188         help&lt;br /&gt;
 189           The base address of exception vectors.&lt;br /&gt;
 190 &lt;br /&gt;
 191 source &amp;quot;init/Kconfig&amp;quot;&lt;br /&gt;
 192 &lt;br /&gt;
 193 source &amp;quot;kernel/Kconfig.freezer&amp;quot;&lt;br /&gt;
 194 &lt;br /&gt;
 195 menu &amp;quot;System Type&amp;quot;&lt;br /&gt;
 196 &lt;br /&gt;
 197 choice&lt;br /&gt;
 198         prompt &amp;quot;ARM system type&amp;quot;&lt;br /&gt;
 199         default ARCH_VERSATILE&lt;br /&gt;
 200 &lt;br /&gt;
 201 config ARCH_AAEC2000&lt;br /&gt;
 202         bool &amp;quot;Agilent AAEC-2000 based&amp;quot;&lt;br /&gt;
 203         select CPU_ARM920T&lt;br /&gt;
 204         select ARM_AMBA&lt;br /&gt;
 205         select HAVE_CLK&lt;br /&gt;
 206         help&lt;br /&gt;
 207           This enables support for systems based on the Agilent AAEC-2000&lt;br /&gt;
 208 &lt;br /&gt;
 209 config ARCH_INTEGRATOR&lt;br /&gt;
 210         bool &amp;quot;ARM Ltd. Integrator family&amp;quot;&lt;br /&gt;
 211         select ARM_AMBA                                                                                 &lt;br /&gt;
 212         select HAVE_CLK                                                                                 &lt;br /&gt;
 213         select COMMON_CLKDEV                                                                            &lt;br /&gt;
 214         select ICST525&lt;br /&gt;
 215         help&lt;br /&gt;
 216           Support for ARM's Integrator platform.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-9&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/plat-omap/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
....&lt;br /&gt;
config OMAP_BOOT_REASON&lt;br /&gt;
        bool &amp;quot;Support for boot reason&amp;quot;&lt;br /&gt;
        depends on OMAP_BOOT_TAG&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have a procfs entry for reading the boot&lt;br /&gt;
          reason in user-space.&lt;br /&gt;
&lt;br /&gt;
config OMAP_COMPONENT_VERSION&lt;br /&gt;
        bool &amp;quot;Support for component version display&amp;quot;&lt;br /&gt;
        depends on OMAP_BOOT_TAG &amp;amp;&amp;amp; PROC_FS&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have a procfs entry for reading component&lt;br /&gt;
          versions (supplied by the bootloader) in user-space.&lt;br /&gt;
&lt;br /&gt;
config OMAP_GPIO_SWITCH&lt;br /&gt;
        bool &amp;quot;GPIO switch support&amp;quot;&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have support for reporting of GPIO&lt;br /&gt;
          switches (e.g. cover switches) via sysfs. Your bootloader has&lt;br /&gt;
          to provide information about the switches to the kernel via the&lt;br /&gt;
          ATAG_BOARD mechanism if they're not defined by the board config.&lt;br /&gt;
&lt;br /&gt;
config OMAP_MUX&lt;br /&gt;
        bool &amp;quot;OMAP multiplexing support&amp;quot;&lt;br /&gt;
        depends on ARCH_OMAP&lt;br /&gt;
        default y&lt;br /&gt;
        help&lt;br /&gt;
          Pin multiplexing support for OMAP boards. If your bootloader&lt;br /&gt;
          sets the multiplexing correctly, say N. Otherwise, or if unsure,&lt;br /&gt;
          say Y.&lt;br /&gt;
&lt;br /&gt;
config OMAP_MUX_DEBUG&lt;br /&gt;
        bool &amp;quot;Multiplexing debug output&amp;quot;&lt;br /&gt;
        depends on OMAP_MUX&lt;br /&gt;
        help&lt;br /&gt;
          Makes the multiplexing functions print out a lot of debug info.&lt;br /&gt;
          This is useful if you want to find out the correct values of the&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-10&lt;br /&gt;
| 4-32&lt;br /&gt;
| Customized .config File Snippet&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# OMAP Feature Selections&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set&lt;br /&gt;
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set&lt;br /&gt;
# CONFIG_OMAP_SMARTREFLEX is not set&lt;br /&gt;
CONFIG_OMAP_RESET_CLOCKS=y&lt;br /&gt;
CONFIG_OMAP_BOOT_TAG=y&lt;br /&gt;
CONFIG_OMAP_BOOT_REASON=y&lt;br /&gt;
# CONFIG_OMAP_COMPONENT_VERSION is not set&lt;br /&gt;
CONFIG_OMAP_GPIO_SWITCH=y&lt;br /&gt;
# CONFIG_OMAP_GPIO_SWITCH_2 is not set&lt;br /&gt;
# CONFIG_OMAP_MUX is not set&lt;br /&gt;
CONFIG_OMAP_MCBSP=y&lt;br /&gt;
# CONFIG_OMAP_MBOX_FWK is not set&lt;br /&gt;
CONFIG_OMAP_IOMMU=m&lt;br /&gt;
# CONFIG_OMAP_MPU_TIMER is not set&lt;br /&gt;
CONFIG_OMAP_32K_TIMER=y&lt;br /&gt;
CONFIG_OMAP_32K_TIMER_HZ=128&lt;br /&gt;
CONFIG_OMAP_TICK_GPTIMER=12&lt;br /&gt;
CONFIG_OMAP_DM_TIMER=y&lt;br /&gt;
# CONFIG_OMAP_LL_DEBUG_UART1 is not set&lt;br /&gt;
# CONFIG_OMAP_LL_DEBUG_UART2 is not set&lt;br /&gt;
CONFIG_OMAP_LL_DEBUG_UART3=y&lt;br /&gt;
CONFIG_ARCH_OMAP34XX=y&lt;br /&gt;
CONFIG_ARCH_OMAP3430=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-11&lt;br /&gt;
| 4-33&lt;br /&gt;
| Makefile from .../arch/arm/plat-omap/ Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Makefile for the linux kernel.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Common support&lt;br /&gt;
obj-y := common.o sram.o clock.o devices.o dma.o mux.o gpio.o \&lt;br /&gt;
         usb.o fb.o vram.o vrfb.o io.o&lt;br /&gt;
obj-m :=&lt;br /&gt;
obj-n :=&lt;br /&gt;
obj-  :=&lt;br /&gt;
&lt;br /&gt;
# OCPI interconnect support for 1710, 1610 and 5912&lt;br /&gt;
obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o&lt;br /&gt;
&lt;br /&gt;
obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o&lt;br /&gt;
obj-$(CONFIG_OMAP_IOMMU) += iommu.o iovmm.o&lt;br /&gt;
&lt;br /&gt;
obj-$(CONFIG_CPU_FREQ) += cpu-omap.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o&lt;br /&gt;
obj-$(CONFIG_OMAP_BOOT_REASON) += bootreason.o&lt;br /&gt;
obj-$(CONFIG_OMAP_COMPONENT_VERSION) += component-version.o&lt;br /&gt;
obj-$(CONFIG_OMAP_GPIO_SWITCH) += gpio-switch.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o&lt;br /&gt;
i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o&lt;br /&gt;
obj-y += $(i2c-omap-m) $(i2c-omap-y)&lt;br /&gt;
&lt;br /&gt;
# OMAP mailbox framework&lt;br /&gt;
obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 5-1&lt;br /&gt;
| 5-2&lt;br /&gt;
| Final Kernel Build Sequence:  ARM/BeagleBoard&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
$ export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
$ PATH=${OETREE}/angstrom-dev/staging/i686-linux/usr/bin/:${PATH}&lt;br /&gt;
$ PATH=${OETREE}/angstrom-dev/cross/armv7a/bin/:${PATH}&lt;br /&gt;
$ make CROSS_CO  UPD     include/linux/compile.h&lt;br /&gt;
&lt;br /&gt;
....&lt;br /&gt;
&lt;br /&gt;
  CC      init/version.o&lt;br /&gt;
  LD      init/built-in.o&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Fri Apr  2 00:21:21 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2991252 Bytes = 2921.14 kB = 2.85 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is readyMPILE=arm-angstrom-linux-gnueabi- uImage&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-2&lt;br /&gt;
| 5-5&lt;br /&gt;
| Assembly File .../arch/arm/boot/compressed/piggy.S&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
        .section .piggydata,#alloc&lt;br /&gt;
        .globl  input_data&lt;br /&gt;
input_data:&lt;br /&gt;
        .incbin &amp;quot;arch/arm/boot/compressed/piggy.gz&amp;quot;&lt;br /&gt;
        .globl  input_data_end&lt;br /&gt;
input_data_end:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-3&lt;br /&gt;
| 5-7&lt;br /&gt;
| Final Kernel Build Sequence:  ARM/BeagleBoard&lt;br /&gt;
| &amp;lt;pre&amp;gt;Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot: 10 ��� 9 ��� 8 ��� 7 ��� 6 ��� 5 ��� 4 ��� 3 ��� 2 ��� 1 ��� 0 &lt;br /&gt;
mmc1 is available&lt;br /&gt;
reading uImage&lt;br /&gt;
&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
[    0.000000] net_namespace: 1036 bytes&lt;br /&gt;
[    0.000000] regulator: core version 0.5&lt;br /&gt;
[    0.000000] NET: Registered protocol family 16&lt;br /&gt;
[    0.000000] GPIO-156 autorequested&lt;br /&gt;
[    0.000000] GPIO-159 autorequested&lt;br /&gt;
[    0.000000] Found NAND on CS0&lt;br /&gt;
[    0.000000] Registering NAND on CS0&lt;br /&gt;
[ 3130.761016] OMAP DMA hardware revision 4.0&lt;br /&gt;
[ 3130.794372] bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
[ 3130.854797] OMAP DSS rev 2.0&lt;br /&gt;
[ 3130.854888] OMAP DISPC rev 3.0&lt;br /&gt;
[ 3130.854919] OMAP VENC rev 2&lt;br /&gt;
[ 3130.855041] OMAP DSI rev 1.0&lt;br /&gt;
[ 3130.870819] i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz&lt;br /&gt;
[ 3130.874114] twl4030: PIH (irq 7) chaining IRQs 368..375&lt;br /&gt;
[ 3130.874145] twl4030: power (irq 373) chaining IRQs 376..383&lt;br /&gt;
[ 3130.874603] twl4030: gpio (irq 368) chaining IRQs 384..401&lt;br /&gt;
[ 3130.876922] regulator: VMMC1: 1850 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[ 3130.877655] regulator: VDAC: 1800 mV normal standby&lt;br /&gt;
[ 3130.878356] regulator: VUSB1V5: 1500 &amp;lt;--&amp;gt; 0 mV normal standby&lt;br /&gt;
[ 3130.879211] regulator: VUSB1V8: 1800 &amp;lt;--&amp;gt; 0 mV normal standby&lt;br /&gt;
[ 3130.879913] regulator: VUSB3V1: 3100 &amp;lt;--&amp;gt; 0 mV normal standby&lt;br /&gt;
[ 3130.880615] regulator: VPLL2: 1800 mV normal standby&lt;br /&gt;
[ 3130.881347] regulator: VMMC2: 2800 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[ 3130.882049] regulator: VSIM: 1800 &amp;lt;--&amp;gt; 3000 mV normal standby&lt;br /&gt;
[ 3130.882202] i2c_omap i2c_omap.2: bus 2 rev3.12 at 400 kHz&lt;br /&gt;
[ 3130.894989] i2c_omap i2c_omap.3: bus 3 rev3.12 at 100 kHz&lt;br /&gt;
[ 3130.896759] SCSI subsystem initialized&lt;br /&gt;
[ 3130.899688] twl4030_usb twl4030_usb: Initialized TWL4030 USB module&lt;br /&gt;
[ 3130.900909] usbcore: registered new interface driver usbfs&lt;br /&gt;
[ 3130.901367] usbcore: registered new interface driver hub&lt;br /&gt;
[ 3130.901702] usbcore: registered new device driver usb&lt;br /&gt;
[ 3130.904205] Bluetooth: Core ver 2.14&lt;br /&gt;
[ 3130.904632] NET: Registered protocol family 31&lt;br /&gt;
[ 3130.904632] Bluetooth: HCI device and connection manager initialized&lt;br /&gt;
[ 3130.904663] Bluetooth: HCI socket layer initialized&lt;br /&gt;
[ 3130.905242] cfg80211: Using static regulatory domain info&lt;br /&gt;
[ 3130.905242] cfg80211: Regulatory domain: US&lt;br /&gt;
[ 3130.905273] 	(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)&lt;br /&gt;
[ 3130.905273] 	(2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)&lt;br /&gt;
[ 3130.905303] 	(5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905303] 	(5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905334] 	(5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905334] 	(5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905364] 	(5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)&lt;br /&gt;
[ 3130.905364] cfg80211: Calling CRDA for country: US&lt;br /&gt;
[ 3130.908111] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0&lt;br /&gt;
[ 3130.910308] musb_hdrc: USB OTG mode controller at d80ab000 using DMA, IRQ 92&lt;br /&gt;
[ 3130.911560] NET: Registered protocol family 2&lt;br /&gt;
[ 3130.911804] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
[ 3130.912292] TCP established hash table entries: 8192 (order: 4, 65536 bytes)&lt;br /&gt;
[ 3130.912445] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)&lt;br /&gt;
[ 3130.912567] TCP: Hash tables configured (established 8192 bind 8192)&lt;br /&gt;
[ 3130.912567] TCP reno registered&lt;br /&gt;
[ 3130.912780] NET: Registered protocol family 1&lt;br /&gt;
[ 3130.916107] VFS: Disk quotas dquot_6.5.2&lt;br /&gt;
[ 3130.916168] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)&lt;br /&gt;
[ 3130.916656] squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
[ 3130.917236] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.&lt;br /&gt;
[ 3130.917938] msgmni has been set to 466&lt;br /&gt;
[ 3130.921691] alg: No test for stdrng (krng)&lt;br /&gt;
[ 3130.921783] io scheduler noop registered&lt;br /&gt;
[ 3130.921783] io scheduler anticipatory registered&lt;br /&gt;
[ 3130.921813] io scheduler deadline registered&lt;br /&gt;
[ 3130.921966] io scheduler cfq registered (default)&lt;br /&gt;
[ 3130.941101] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled&lt;br /&gt;
[ 3130.963867] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654&lt;br /&gt;
[ 3130.985321] serial8250.0: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654&lt;br /&gt;
[ 3131.007293] serial8250.0: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654&lt;br /&gt;
[ 3131.007324] console [ttyS2] enabled&lt;br /&gt;
[ 3131.527282] brd: module loaded&lt;br /&gt;
[ 3131.535125] loop: module loaded&lt;br /&gt;
[ 3131.538909] enc28j60 spi4.0: enc28j60 Ethernet driver 1.01 loaded&lt;br /&gt;
[ 3131.547546] enc28j60 spi4.0: enc28j60 chip not found&lt;br /&gt;
[ 3131.552612] enc28j60: probe of spi4.0 failed with error -5&lt;br /&gt;
[ 3131.558593] usbcore: registered new interface driver catc&lt;br /&gt;
[ 3131.564178] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver&lt;br /&gt;
[ 3131.570770] usbcore: registered new interface driver kaweth&lt;br /&gt;
[ 3131.576416] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver&lt;br /&gt;
[ 3131.584228] usbcore: registered new interface driver pegasus&lt;br /&gt;
[ 3131.589935] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver&lt;br /&gt;
[ 3131.597106] usbcore: registered new interface driver rtl8150&lt;br /&gt;
[ 3131.603057] usbcore: registered new interface driver asix&lt;br /&gt;
[ 3131.608734] usbcore: registered new interface driver cdc_ether&lt;br /&gt;
[ 3131.614837] usbcore: registered new interface driver dm9601&lt;br /&gt;
[ 3131.620666] usbcore: registered new interface driver smsc95xx&lt;br /&gt;
[ 3131.626708] usbcore: registered new interface driver gl620a&lt;br /&gt;
[ 3131.632598] usbcore: registered new interface driver net1080&lt;br /&gt;
[ 3131.638519] usbcore: registered new interface driver plusb&lt;br /&gt;
[ 3131.644256] usbcore: registered new interface driver rndis_host&lt;br /&gt;
[ 3131.650482] usbcore: registered new interface driver cdc_subset&lt;br /&gt;
[ 3131.656646] usbcore: registered new interface driver zaurus&lt;br /&gt;
[ 3131.662536] usbcore: registered new interface driver MOSCHIP usb-ethernet driver&lt;br /&gt;
[ 3131.670257] Broadcom 43xx driver loaded [ Features: L, Firmware-ID: FW13 ]&lt;br /&gt;
[ 3131.677551] usbcore: registered new interface driver zd1211rw&lt;br /&gt;
[ 3131.683532] usbcore: registered new interface driver rtl8187&lt;br /&gt;
[ 3131.689514] usbcore: registered new interface driver rndis_wlan&lt;br /&gt;
[ 3131.695739] usbcore: registered new interface driver zd1201&lt;br /&gt;
[ 3131.701629] usbcore: registered new interface driver usb8xxx&lt;br /&gt;
[ 3131.707550] usbcore: registered new interface driver rt2500usb&lt;br /&gt;
[ 3131.713714] usbcore: registered new interface driver rt73usb&lt;br /&gt;
[ 3131.719665] usbcore: registered new interface driver p54usb&lt;br /&gt;
[ 3131.725341] i2c /dev entries driver&lt;br /&gt;
[ 3131.730346] Driver 'sd' needs updating - please use bus_type methods&lt;br /&gt;
[ 3131.736968] Driver 'sr' needs updating - please use bus_type methods&lt;br /&gt;
[ 3131.744293] omap2-nand driver initializing&lt;br /&gt;
[ 3131.748718] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xba (Micron NAND 256MiB 1,8V 16-bit)&lt;br /&gt;
[ 3131.757751] cmdlinepart partition parsing not available&lt;br /&gt;
[ 3131.763061] Creating 5 MTD partitions on &amp;quot;omap2-nand&amp;quot;:&lt;br /&gt;
[ 3131.768218] 0x000000000000-0x000000080000 : &amp;quot;X-Loader&amp;quot;&lt;br /&gt;
[ 3131.775146] 0x000000080000-0x000000260000 : &amp;quot;U-Boot&amp;quot;&lt;br /&gt;
[ 3131.782012] 0x000000260000-0x000000280000 : &amp;quot;U-Boot Env&amp;quot;&lt;br /&gt;
[ 3131.788452] 0x000000280000-0x000000680000 : &amp;quot;Kernel&amp;quot;&lt;br /&gt;
[ 3131.796173] 0x000000680000-0x000010000000 : &amp;quot;File System&amp;quot;&lt;br /&gt;
[ 3131.911987] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver&lt;br /&gt;
[ 3131.918853] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller&lt;br /&gt;
[ 3131.925384] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1&lt;br /&gt;
[ 3131.933166] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800&lt;br /&gt;
[ 3131.950286] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00&lt;br /&gt;
[ 3131.956695] usb usb1: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3131.962738] hub 1-0:1.0: USB hub found&lt;br /&gt;
[ 3131.966583] hub 1-0:1.0: 3 ports detected&lt;br /&gt;
[ 3131.972351] Initializing USB Mass Storage driver...&lt;br /&gt;
[ 3131.977630] usbcore: registered new interface driver usb-storage&lt;br /&gt;
[ 3131.983734] USB Mass Storage support registered.&lt;br /&gt;
[ 3131.988922] mice: PS/2 mouse device common for all mice&lt;br /&gt;
[ 3131.994750] input: gpio-keys as /devices/platform/gpio-keys/input/input0&lt;br /&gt;
[ 3132.003601] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-adapter/i2c-1/1-0049/twl4030_pwrbutton/input/input1&lt;br /&gt;
[ 3132.295349] usb 1-2: new high speed USB device using ehci-omap and address 2&lt;br /&gt;
[ 3132.459320] usb 1-2: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3132.465362] hub 1-2:1.0: USB hub found&lt;br /&gt;
[ 3132.469390] hub 1-2:1.0: 4 ports detected&lt;br /&gt;
[ 3132.763183] usb 1-2.1: new high speed USB device using ehci-omap and address 3&lt;br /&gt;
[ 3132.902313] usb 1-2.1: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3133.013031] i2c_omap i2c_omap.2: controller timed out&lt;br /&gt;
[ 3133.018157] rtc-ds1307: probe of 2-0068 failed with error -5&lt;br /&gt;
[ 3133.025421] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec&lt;br /&gt;
[ 3133.031738] Bluetooth: HCI UART driver ver 2.2&lt;br /&gt;
[ 3133.036254] Bluetooth: HCI H4 protocol initialized&lt;br /&gt;
[ 3133.041076] Bluetooth: HCI BCSP protocol initialized&lt;br /&gt;
[ 3133.046112] Bluetooth: HCILL protocol initialized&lt;br /&gt;
[ 3133.050842] Bluetooth: Broadcom Blutonium firmware driver ver 1.2&lt;br /&gt;
[ 3133.057281] usbcore: registered new interface driver bcm203x&lt;br /&gt;
[ 3133.063018] Bluetooth: Digianswer Bluetooth USB driver ver 0.10&lt;br /&gt;
[ 3133.069213] usbcore: registered new interface driver bpa10x&lt;br /&gt;
[ 3133.074829] Bluetooth: BlueFRITZ! USB driver ver 1.2&lt;br /&gt;
[ 3133.080078] usbcore: registered new interface driver bfusb&lt;br /&gt;
[ 3133.085845] Bluetooth: Generic Bluetooth USB driver ver 0.4&lt;br /&gt;
[ 3133.091796] usbcore: registered new interface driver btusb&lt;br /&gt;
[ 3133.097381] Bluetooth: Generic Bluetooth SDIO driver ver 0.1&lt;br /&gt;
[ 3133.104034] mmci-omap-hs mmci-omap-hs.0: Failed to get debounce clock&lt;br /&gt;
[ 3133.216308] mmci-omap-hs mmci-omap-hs.1: Failed to get debounce clock&lt;br /&gt;
[ 3133.222869] regulator: Unable to get requested regulator: vmmc_aux&lt;br /&gt;
[ 3133.231506] Registered led device: beagleboard::usr0&lt;br /&gt;
[ 3133.236785] Registered led device: beagleboard::usr1&lt;br /&gt;
[ 3133.247497] usbcore: registered new interface driver usbhid&lt;br /&gt;
[ 3133.253143] usbhid: v2.6:USB HID core driver&lt;br /&gt;
[ 3133.258453] Advanced Linux Sound Architecture Driver Version 1.0.18a.&lt;br /&gt;
[ 3133.265960] usbcore: registered new interface driver snd-usb-audio&lt;br /&gt;
[ 3133.272521] No device for DAI twl4030&lt;br /&gt;
[ 3133.276214] No device for DAI omap-mcbsp-dai-0&lt;br /&gt;
[ 3133.280883] No device for DAI omap-mcbsp-dai-1&lt;br /&gt;
[ 3133.285339] No device for DAI omap-mcbsp-dai-2&lt;br /&gt;
[ 3133.289947] No device for DAI omap-mcbsp-dai-3&lt;br /&gt;
[ 3133.294433] No device for DAI omap-mcbsp-dai-4&lt;br /&gt;
[ 3133.298919] OMAP3 Beagle SoC init&lt;br /&gt;
[ 3133.302642] TWL4030 Audio Codec init &lt;br /&gt;
[ 3133.307403] asoc: twl4030 &amp;lt;-&amp;gt; omap-mcbsp-dai-0 mapping ok&lt;br /&gt;
[ 3133.321624] ALSA device list:&lt;br /&gt;
[ 3133.324615]   #0: omap3beagle (twl4030)&lt;br /&gt;
[ 3133.329040] oprofile: using arm/armv7&lt;br /&gt;
[ 3133.332916] TCP cubic registered&lt;br /&gt;
[ 3133.336303] NET: Registered protocol family 17&lt;br /&gt;
[ 3133.340850] NET: Registered protocol family 15&lt;br /&gt;
[ 3133.345367] Bluetooth: L2CAP ver 2.11&lt;br /&gt;
[ 3133.349090] Bluetooth: L2CAP socket layer initialized&lt;br /&gt;
[ 3133.354156] Bluetooth: SCO (Voice Link) ver 0.6&lt;br /&gt;
[ 3133.358764] Bluetooth: SCO socket layer initialized&lt;br /&gt;
[ 3133.369445] Bluetooth: RFCOMM socket layer initialized&lt;br /&gt;
[ 3133.374755] Bluetooth: RFCOMM TTY layer initialized&lt;br /&gt;
[ 3133.379669] Bluetooth: RFCOMM ver 1.10&lt;br /&gt;
[ 3133.383453] Bluetooth: BNEP (Ethernet Emulation) ver 1.3&lt;br /&gt;
[ 3133.388824] Bluetooth: BNEP filters: protocol multicast&lt;br /&gt;
[ 3133.394073] Bluetooth: HIDP (Human Interface Emulation) ver 1.2&lt;br /&gt;
[ 3133.403198] RPC: Registered udp transport module.&lt;br /&gt;
[ 3133.407989] RPC: Registered tcp transport module.&lt;br /&gt;
[ 3133.412841] lib80211: common routines for IEEE802.11 drivers&lt;br /&gt;
[ 3133.418609] ThumbEE CPU extension supported.&lt;br /&gt;
[ 3133.423156] Power Management for TI OMAP3.&lt;br /&gt;
[ 3133.433868] Disabling unused clock &amp;quot;sr2_fck&amp;quot;&lt;br /&gt;
[ 3133.438262] Disabling unused clock &amp;quot;sr1_fck&amp;quot;&lt;br /&gt;
[ 3133.442596] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.447052] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.451538] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.456024] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.460510] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.464996] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.469482] Disabling unused clock &amp;quot;gpt2_ick&amp;quot;&lt;br /&gt;
[ 3133.473876] Disabling unused clock &amp;quot;gpt3_ick&amp;quot;&lt;br /&gt;
[ 3133.478271] Disabling unused clock &amp;quot;gpt4_ick&amp;quot;&lt;br /&gt;
[ 3133.482666] Disabling unused clock &amp;quot;gpt5_ick&amp;quot;&lt;br /&gt;
[ 3133.487060] Disabling unused clock &amp;quot;gpt6_ick&amp;quot;&lt;br /&gt;
[ 3133.491455] Disabling unused clock &amp;quot;gpt7_ick&amp;quot;&lt;br /&gt;
[ 3133.495849] Disabling unused clock &amp;quot;gpt8_ick&amp;quot;&lt;br /&gt;
[ 3133.500244] Disabling unused clock &amp;quot;gpt9_ick&amp;quot;&lt;br /&gt;
[ 3133.504608] Disabling unused clock &amp;quot;wdt3_ick&amp;quot;&lt;br /&gt;
[ 3133.509033] Disabling unused clock &amp;quot;wdt3_fck&amp;quot;&lt;br /&gt;
[ 3133.513641] Disabling unused clock &amp;quot;gpio2_dbck&amp;quot;&lt;br /&gt;
[ 3133.518188] Disabling unused clock &amp;quot;gpio3_dbck&amp;quot;&lt;br /&gt;
[ 3133.522766] Disabling unused clock &amp;quot;gpio4_dbck&amp;quot;&lt;br /&gt;
[ 3133.527343] Disabling unused clock &amp;quot;gpio5_dbck&amp;quot;&lt;br /&gt;
[ 3133.531921] Disabling unused clock &amp;quot;gpio6_dbck&amp;quot;&lt;br /&gt;
[ 3133.536499] Disabling unused clock &amp;quot;gpt9_fck&amp;quot;&lt;br /&gt;
[ 3133.540863] Disabling unused clock &amp;quot;gpt8_fck&amp;quot;&lt;br /&gt;
[ 3133.545288] Disabling unused clock &amp;quot;gpt7_fck&amp;quot;&lt;br /&gt;
[ 3133.549652] Disabling unused clock &amp;quot;gpt6_fck&amp;quot;&lt;br /&gt;
[ 3133.554077] Disabling unused clock &amp;quot;gpt5_fck&amp;quot;&lt;br /&gt;
[ 3133.558441] Disabling unused clock &amp;quot;gpt4_fck&amp;quot;&lt;br /&gt;
[ 3133.562866] Disabling unused clock &amp;quot;gpt3_fck&amp;quot;&lt;br /&gt;
[ 3133.567230] Disabling unused clock &amp;quot;gpt2_fck&amp;quot;&lt;br /&gt;
[ 3133.571655] Disabling unused clock &amp;quot;gpt1_ick&amp;quot;&lt;br /&gt;
[ 3133.576049] Disabling unused clock &amp;quot;wdt1_ick&amp;quot;&lt;br /&gt;
[ 3133.580413] Disabling unused clock &amp;quot;wdt2_ick&amp;quot;&lt;br /&gt;
[ 3133.584838] Disabling unused clock &amp;quot;wdt2_fck&amp;quot;&lt;br /&gt;
[ 3133.589202] Disabling unused clock &amp;quot;gpio1_dbck&amp;quot;&lt;br /&gt;
[ 3133.593780] Disabling unused clock &amp;quot;gpt1_fck&amp;quot;&lt;br /&gt;
[ 3133.598175] Disabling unused clock &amp;quot;cam_ick&amp;quot;&lt;br /&gt;
[ 3133.602508] Disabling unused clock &amp;quot;cam_mclk&amp;quot;&lt;br /&gt;
[ 3133.607116] Disabling unused clock &amp;quot;des1_ick&amp;quot;&lt;br /&gt;
[ 3133.611511] Disabling unused clock &amp;quot;sha11_ick&amp;quot;&lt;br /&gt;
[ 3133.615997] Disabling unused clock &amp;quot;rng_ick&amp;quot;&lt;br /&gt;
[ 3133.620300] Disabling unused clock &amp;quot;aes1_ick&amp;quot;&lt;br /&gt;
[ 3133.624694] Disabling unused clock &amp;quot;ssi_ick&amp;quot;&lt;br /&gt;
[ 3133.628997] Disabling unused clock &amp;quot;mailboxes_ick&amp;quot;&lt;br /&gt;
[ 3133.633850] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.638336] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.642791] Disabling unused clock &amp;quot;gpt10_ick&amp;quot;&lt;br /&gt;
[ 3133.647277] Disabling unused clock &amp;quot;gpt11_ick&amp;quot;&lt;br /&gt;
[ 3133.651763] Disabling unused clock &amp;quot;hdq_ick&amp;quot;&lt;br /&gt;
[ 3133.656066] Disabling unused clock &amp;quot;mspro_ick&amp;quot;&lt;br /&gt;
[ 3133.660552] Disabling unused clock &amp;quot;des2_ick&amp;quot;&lt;br /&gt;
[ 3133.664947] Disabling unused clock &amp;quot;sha12_ick&amp;quot;&lt;br /&gt;
[ 3133.669433] Disabling unused clock &amp;quot;aes2_ick&amp;quot;&lt;br /&gt;
[ 3133.673828] Disabling unused clock &amp;quot;icr_ick&amp;quot;&lt;br /&gt;
[ 3133.678131] Disabling unused clock &amp;quot;pka_ick&amp;quot;&lt;br /&gt;
[ 3133.682434] Disabling unused clock &amp;quot;ssi_ssr_fck&amp;quot;&lt;br /&gt;
[ 3133.687103] Disabling unused clock &amp;quot;hdq_fck&amp;quot;&lt;br /&gt;
[ 3133.691406] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.695892] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.700561] Disabling unused clock &amp;quot;mspro_fck&amp;quot;&lt;br /&gt;
[ 3133.705047] Disabling unused clock &amp;quot;gpt11_fck&amp;quot;&lt;br /&gt;
[ 3133.709533] Disabling unused clock &amp;quot;gpt10_fck&amp;quot;&lt;br /&gt;
[ 3133.713989] Disabling unused clock &amp;quot;dpll4_m6x2_ck&amp;quot;&lt;br /&gt;
[ 3133.718841] Disabling unused clock &amp;quot;dpll3_m3x2_ck&amp;quot;&lt;br /&gt;
[ 3133.723693] Disabling unused clock &amp;quot;sys_clkout1&amp;quot;&lt;br /&gt;
[ 3133.728363] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1&lt;br /&gt;
[ 3133.742828] registered taskstats version 1&lt;br /&gt;
[ 3133.764251] Console: switching to colour frame buffer device 80x30&lt;br /&gt;
[ 3133.778198] clock: clksel_round_rate_div: dpll4_m4_ck target_rate 48000000&lt;br /&gt;
[ 3133.785125] clock: new_div = 9, new_rate = 48000000&lt;br /&gt;
[ 3133.795593] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)&lt;br /&gt;
[ 3133.887939] mmc0: new high speed SDHC card at address a9ed&lt;br /&gt;
[ 3133.894042] mmcblk0: mmc0:a9ed SD08G 7.42 GiB &lt;br /&gt;
[ 3133.898986]  mmcblk0: p1 p2&lt;br /&gt;
[ 3134.070312] eth0 (asix): not using net_device_ops yet&lt;br /&gt;
[ 3134.076110] eth0: register 'asix' at usb-ehci-omap.0-2.1, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c3:f3&lt;br /&gt;
[ 3134.134582] kjournald starting.  Commit interval 5 seconds&lt;br /&gt;
[ 3134.169372] usb 1-2.4: new high speed USB device using ehci-omap and address 4&lt;br /&gt;
[ 3134.295684] usb 1-2.4: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3134.301910] hub 1-2.4:1.0: USB hub found&lt;br /&gt;
[ 3134.305999] hub 1-2.4:1.0: 4 ports detected&lt;br /&gt;
[ 3134.390747] EXT3 FS on mmcblk0p2, internal journal&lt;br /&gt;
[ 3134.395599] EXT3-fs: mounted filesystem with ordered data mode.&lt;br /&gt;
[ 3134.401641] VFS: Mounted root (ext3 filesystem) on device 179:2.&lt;br /&gt;
[ 3134.407836] Freeing init memory: 204K&lt;br /&gt;
&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
&lt;br /&gt;
Starting udev[ 3140.940948] twl4030_rtc twl4030_rtc: rtc core: registered twl4030_rtc as rtc0&lt;br /&gt;
[ 3140.948486] twl4030_rtc twl4030_rtc: Power up reset detected.&lt;br /&gt;
[ 3141.017303] twl4030_rtc twl4030_rtc: Enabling TWL4030-RTC.&lt;br /&gt;
[ 3141.952758] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 0&lt;br /&gt;
[ 3141.960601] Buffer I/O error on device mtdblock0, logical block 0&lt;br /&gt;
[ 3142.023376] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 8&lt;br /&gt;
[ 3142.031188] Buffer I/O error on device mtdblock0, logical block 1&lt;br /&gt;
[ 3142.067901] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 16&lt;br /&gt;
[ 3142.075836] Buffer I/O error on device mtdblock0, logical block 2&lt;br /&gt;
[ 3142.100311] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 24&lt;br /&gt;
[ 3142.108215] Buffer I/O error on device mtdblock0, logical block 3&lt;br /&gt;
[ 3142.139556] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 0&lt;br /&gt;
[ 3142.162719] Buffer I/O error on device mtdblock0, logical block 0&lt;br /&gt;
 and populating dev cache&lt;br /&gt;
Remounting root file system...&lt;br /&gt;
[ 3147.624511] NET: Registered protocol family 10&lt;br /&gt;
[ 3147.699707] NET: Registered protocol family 23&lt;br /&gt;
[ 3147.727874] IrCOMM protocol (Dag Brattli)&lt;br /&gt;
Unknown HZ value! (70) Assume 100.&lt;br /&gt;
ALSA: Restoring mixer settings...&lt;br /&gt;
Configuring network interfaces... [ 3149.568145] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
eth0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
udhcpc (v1.13.2) started&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
Sending discover...&lt;br /&gt;
[ 3149.732147] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
Sending discover...&lt;br /&gt;
Sending select for 192.168.1.108...&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
&lt;br /&gt;
INIT: Entering runlevel: 5&lt;br /&gt;
&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-4&lt;br /&gt;
| 5-17&lt;br /&gt;
| Console Setup Code Snippet from .../kernel/printk.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
 * Set up a list of consoles.  Called from init/main.c&lt;br /&gt;
 */&lt;br /&gt;
static int __init console_setup(char *str)&lt;br /&gt;
{&lt;br /&gt;
        char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for index */&lt;br /&gt;
        char *s, *options, *brl_options = NULL;&lt;br /&gt;
        int idx;&lt;br /&gt;
&lt;br /&gt;
#ifdef CONFIG_A11Y_BRAILLE_CONSOLE&lt;br /&gt;
        if (!memcmp(str, &amp;quot;brl,&amp;quot;, 4)) {&lt;br /&gt;
                brl_options = &amp;quot;&amp;quot;;&lt;br /&gt;
                str += 4;&lt;br /&gt;
        } else if (!memcmp(str, &amp;quot;brl=&amp;quot;, 4)) {&lt;br /&gt;
                brl_options = str + 4;&lt;br /&gt;
                str = strchr(brl_options, ',');&lt;br /&gt;
                if (!str) {&lt;br /&gt;
                        printk(KERN_ERR &amp;quot;need port name after brl=\n&amp;quot;);&lt;br /&gt;
                        return 1;&lt;br /&gt;
                }&lt;br /&gt;
                *(str++) = 0;&lt;br /&gt;
        }&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Decode str into name, index, options.&lt;br /&gt;
         */&lt;br /&gt;
        if (str[0] &amp;gt;= '0' &amp;amp;&amp;amp; str[0] &amp;lt;= '9') {&lt;br /&gt;
                strcpy(buf, &amp;quot;ttyS&amp;quot;);&lt;br /&gt;
                strncpy(buf + 4, str, sizeof(buf) - 5);&lt;br /&gt;
        } else {&lt;br /&gt;
                strncpy(buf, str, sizeof(buf) - 1);&lt;br /&gt;
        }&lt;br /&gt;
        buf[sizeof(buf) - 1] = 0;&lt;br /&gt;
        if ((options = strchr(str, ',')) != NULL)&lt;br /&gt;
                *(options++) = 0;&lt;br /&gt;
#ifdef __sparc__&lt;br /&gt;
        if (!strcmp(str, &amp;quot;ttya&amp;quot;))&lt;br /&gt;
                strcpy(buf, &amp;quot;ttyS0&amp;quot;);&lt;br /&gt;
        if (!strcmp(str, &amp;quot;ttyb&amp;quot;))&lt;br /&gt;
                strcpy(buf, &amp;quot;ttyS1&amp;quot;);&lt;br /&gt;
#endif&lt;br /&gt;
        for (s = buf; *s; s++)&lt;br /&gt;
                if ((*s &amp;gt;= '0' &amp;amp;&amp;amp; *s &amp;lt;= '9') || *s == ',')&lt;br /&gt;
                        break;&lt;br /&gt;
        idx = simple_strtoul(s, NULL, 10);&lt;br /&gt;
        *s = 0;&lt;br /&gt;
&lt;br /&gt;
        __add_preferred_console(buf, idx, options, brl_options);&lt;br /&gt;
        console_set_on_cmdline = 1;&lt;br /&gt;
        return 1;&lt;br /&gt;
}&lt;br /&gt;
__setup(&amp;quot;console=&amp;quot;, console_setup);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-5&lt;br /&gt;
| 5-18&lt;br /&gt;
| Family of __setup Macro Definitions from .../include/linux/init.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#define __setup_param(str, unique_id, fn, early)                        \&lt;br /&gt;
        static char __setup_str_##unique_id[] __initdata __aligned(1) = str; \&lt;br /&gt;
        static struct obs_kernel_param __setup_##unique_id      \&lt;br /&gt;
                __used __section(.init.setup)                   \&lt;br /&gt;
                __attribute__((aligned((sizeof(long)))))        \&lt;br /&gt;
                = { __setup_str_##unique_id, fn, early }&lt;br /&gt;
&lt;br /&gt;
#define __setup(str, fn)                                        \&lt;br /&gt;
        __setup_param(str, fn, fn, 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-6&lt;br /&gt;
| 5-19&lt;br /&gt;
| Kernel Command Line Processing&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
extern struct obs_kernel_param __setup_start[], __setup_end[];&lt;br /&gt;
&lt;br /&gt;
static int __init obsolete_checksetup(char *line)&lt;br /&gt;
{&lt;br /&gt;
        struct obs_kernel_param *p;&lt;br /&gt;
        int had_early_param = 0;&lt;br /&gt;
&lt;br /&gt;
        p = __setup_start;&lt;br /&gt;
        do {&lt;br /&gt;
                int n = strlen(p-&amp;gt;str);&lt;br /&gt;
                if (!strncmp(line, p-&amp;gt;str, n)) {&lt;br /&gt;
                        if (p-&amp;gt;early) {&lt;br /&gt;
                                /* Already done in parse_early_param?&lt;br /&gt;
                                 * (Needs exact match on param part).&lt;br /&gt;
                                 * Keep iterating, as we can have early&lt;br /&gt;
                                 * params and __setups of same names 8( */&lt;br /&gt;
                                if (line[n] == '\0' || line[n] == '=')&lt;br /&gt;
                                        had_early_param = 1;&lt;br /&gt;
                        } else if (!p-&amp;gt;setup_func) {&lt;br /&gt;
                                printk(KERN_WARNING &amp;quot;Parameter %s is obsolete,&amp;quot;&lt;br /&gt;
                                       &amp;quot; ignored\n&amp;quot;, p-&amp;gt;str);&lt;br /&gt;
                                return 1;&lt;br /&gt;
                        } else if (p-&amp;gt;setup_func(line + n))&lt;br /&gt;
                                return 1;&lt;br /&gt;
                }&lt;br /&gt;
                p++;&lt;br /&gt;
        } while (p &amp;lt; __setup_end);&lt;br /&gt;
&lt;br /&gt;
        return had_early_param;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-7&lt;br /&gt;
| 5-22&lt;br /&gt;
| Example Initialization Routine - .../arch/arm/kernel/setup.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
static void (*init_machine)(void) __initdata;&lt;br /&gt;
&lt;br /&gt;
static int __init customize_machine(void)&lt;br /&gt;
{&lt;br /&gt;
        /* customizes platform devices, or adds new ones */&lt;br /&gt;
        if (init_machine)&lt;br /&gt;
                init_machine();&lt;br /&gt;
        return 0;&lt;br /&gt;
}&lt;br /&gt;
arch_initcall(customize_machine);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-8&lt;br /&gt;
| 5-22&lt;br /&gt;
| initcall Family of Macros - .../include/linux/init.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#define __define_initcall(level,fn,id) \&lt;br /&gt;
        static initcall_t __initcall_##fn##id __used \&lt;br /&gt;
        __attribute__((__section__(&amp;quot;.initcall&amp;quot; level &amp;quot;.init&amp;quot;))) = fn&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Early initcalls run before initializing SMP.&lt;br /&gt;
 *&lt;br /&gt;
 * Only for built-in code, not modules.&lt;br /&gt;
 */&lt;br /&gt;
#define early_initcall(fn)              __define_initcall(&amp;quot;early&amp;quot;,fn,early)&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * A &amp;quot;pure&amp;quot; initcall has no dependencies on anything else, and purely&lt;br /&gt;
 * initializes variables that couldn't be statically initialized.&lt;br /&gt;
 *&lt;br /&gt;
 * This only exists for built-in code, not for modules.&lt;br /&gt;
 */&lt;br /&gt;
#define pure_initcall(fn)               __define_initcall(&amp;quot;0&amp;quot;,fn,0)&lt;br /&gt;
&lt;br /&gt;
#define core_initcall(fn)               __define_initcall(&amp;quot;1&amp;quot;,fn,1)&lt;br /&gt;
#define core_initcall_sync(fn)          __define_initcall(&amp;quot;1s&amp;quot;,fn,1s)&lt;br /&gt;
#define postcore_initcall(fn)           __define_initcall(&amp;quot;2&amp;quot;,fn,2)&lt;br /&gt;
#define postcore_initcall_sync(fn)      __define_initcall(&amp;quot;2s&amp;quot;,fn,2s)&lt;br /&gt;
#define arch_initcall(fn)               __define_initcall(&amp;quot;3&amp;quot;,fn,3)&lt;br /&gt;
#define arch_initcall_sync(fn)          __define_initcall(&amp;quot;3s&amp;quot;,fn,3s)&lt;br /&gt;
#define subsys_initcall(fn)             __define_initcall(&amp;quot;4&amp;quot;,fn,4)&lt;br /&gt;
#define subsys_initcall_sync(fn)        __define_initcall(&amp;quot;4s&amp;quot;,fn,4s)&lt;br /&gt;
#define fs_initcall(fn)                 __define_initcall(&amp;quot;5&amp;quot;,fn,5)&lt;br /&gt;
#define fs_initcall_sync(fn)            __define_initcall(&amp;quot;5s&amp;quot;,fn,5s)&lt;br /&gt;
#define rootfs_initcall(fn)             __define_initcall(&amp;quot;rootfs&amp;quot;,fn,rootfs)&lt;br /&gt;
#define device_initcall(fn)             __define_initcall(&amp;quot;6&amp;quot;,fn,6)&lt;br /&gt;
#define device_initcall_sync(fn)        __define_initcall(&amp;quot;6s&amp;quot;,fn,6s)&lt;br /&gt;
#define late_initcall(fn)               __define_initcall(&amp;quot;7&amp;quot;,fn,7)&lt;br /&gt;
#define late_initcall_sync(fn)          __define_initcall(&amp;quot;7s&amp;quot;,fn,7s)&lt;br /&gt;
&lt;br /&gt;
#define __initcall(fn) device_initcall(fn)&lt;br /&gt;
&lt;br /&gt;
#define __exitcall(fn) \&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-9&lt;br /&gt;
| 5-24&lt;br /&gt;
| Creation of Kernel init Thread&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
static noinline void __init_refok rest_init(void)&lt;br /&gt;
        __releases(kernel_lock)&lt;br /&gt;
{&lt;br /&gt;
        int pid;&lt;br /&gt;
&lt;br /&gt;
        kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);&lt;br /&gt;
        numa_default_policy();&lt;br /&gt;
        pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);&lt;br /&gt;
        kthreadd_task = find_task_by_pid_ns(pid, &amp;amp;init_pid_ns);&lt;br /&gt;
        unlock_kernel();&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * The boot idle thread must execute schedule()&lt;br /&gt;
         * at least once to get things moving:&lt;br /&gt;
         */&lt;br /&gt;
        init_idle_bootup_task(current);&lt;br /&gt;
        rcu_scheduler_starting();&lt;br /&gt;
        preempt_enable_no_resched();&lt;br /&gt;
        schedule();&lt;br /&gt;
        preempt_disable();&lt;br /&gt;
&lt;br /&gt;
        /* Call into cpu_idle with preempt disabled */&lt;br /&gt;
        cpu_idle();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-10&lt;br /&gt;
| 5-25&lt;br /&gt;
| Initialization via initcalls&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[];&lt;br /&gt;
&lt;br /&gt;
static void __init do_initcalls(void)&lt;br /&gt;
{&lt;br /&gt;
        initcall_t *call;&lt;br /&gt;
&lt;br /&gt;
        for (call = __early_initcall_end; call &amp;lt; __initcall_end; call++)&lt;br /&gt;
                do_one_initcall(*call);&lt;br /&gt;
&lt;br /&gt;
        /* Make sure there is no pending stuff from the initcall sequence */&lt;br /&gt;
        flush_scheduled_work();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-11&lt;br /&gt;
| 5-27&lt;br /&gt;
| Final Boot Steps from main.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
static noinline int init_post(void)&lt;br /&gt;
{&lt;br /&gt;
        /* need to finish all async __init code before freeing the memory */&lt;br /&gt;
        async_synchronize_full();&lt;br /&gt;
        free_initmem();&lt;br /&gt;
        unlock_kernel();&lt;br /&gt;
        mark_rodata_ro();&lt;br /&gt;
        system_state = SYSTEM_RUNNING;&lt;br /&gt;
        numa_default_policy();&lt;br /&gt;
&lt;br /&gt;
        if (sys_open((const char __user *) &amp;quot;/dev/console&amp;quot;, O_RDWR, 0) &amp;lt; 0)&lt;br /&gt;
                printk(KERN_WARNING &amp;quot;Warning: unable to open an initial console.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        (void) sys_dup(0);&lt;br /&gt;
        (void) sys_dup(0);&lt;br /&gt;
&lt;br /&gt;
        current-&amp;gt;signal-&amp;gt;flags |= SIGNAL_UNKILLABLE;&lt;br /&gt;
&lt;br /&gt;
        if (ramdisk_execute_command) {&lt;br /&gt;
                run_init_process(ramdisk_execute_command);&lt;br /&gt;
                printk(KERN_WARNING &amp;quot;Failed to execute %s\n&amp;quot;,&lt;br /&gt;
                                ramdisk_execute_command);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * We try each of these until one succeeds.&lt;br /&gt;
         *&lt;br /&gt;
         * The Bourne shell can be used instead of init if we are&lt;br /&gt;
         * trying to recover a really broken machine.&lt;br /&gt;
         */&lt;br /&gt;
        if (execute_command) {&lt;br /&gt;
                run_init_process(execute_command);&lt;br /&gt;
                printk(KERN_WARNING &amp;quot;Failed to execute %s.  Attempting &amp;quot;&lt;br /&gt;
                                        &amp;quot;defaults...\n&amp;quot;, execute_command);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
        run_init_process(&amp;quot;/sbin/init&amp;quot;);&lt;br /&gt;
        run_init_process(&amp;quot;/etc/init&amp;quot;);&lt;br /&gt;
        run_init_process(&amp;quot;/bin/init&amp;quot;);&lt;br /&gt;
        run_init_process(&amp;quot;/bin/sh&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        panic(&amp;quot;No init found.  Try passing init= option to kernel.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 6 ==&lt;br /&gt;
&lt;br /&gt;
== Chapter 8 ==&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-04-02T00:54:39Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Chapter 5 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Listings =&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
??&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o&lt;br /&gt;
total 764K&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c&lt;br /&gt;
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c&lt;br /&gt;
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c&lt;br /&gt;
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c&lt;br /&gt;
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c&lt;br /&gt;
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 4-17&lt;br /&gt;
| Snippet from Linux 2.6 .config&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
1872 #&lt;br /&gt;
1873 # USB Input Devices&lt;br /&gt;
1874 #&lt;br /&gt;
1875 CONFIG_USB_HID=y&lt;br /&gt;
1876 # CONFIG_HID_PID is not set&lt;br /&gt;
1877 # CONFIG_USB_HIDDEV is not set&lt;br /&gt;
1878 &lt;br /&gt;
1879 #&lt;br /&gt;
1880 # Special HID drivers&lt;br /&gt;
1881 #&lt;br /&gt;
1882 CONFIG_HID_COMPAT=y&lt;br /&gt;
1883 CONFIG_HID_A4TECH=y&lt;br /&gt;
1884 CONFIG_HID_APPLE=y&lt;br /&gt;
1885 CONFIG_HID_BELKIN=y&lt;br /&gt;
1886 CONFIG_HID_CHERRY=y&lt;br /&gt;
1887 CONFIG_HID_CHICONY=y&lt;br /&gt;
1888 CONFIG_HID_CYPRESS=y&lt;br /&gt;
1889 CONFIG_HID_EZKEY=y&lt;br /&gt;
1890 CONFIG_HID_GYRATION=y&lt;br /&gt;
1891 CONFIG_HID_LOGITECH=y&lt;br /&gt;
1892 # CONFIG_LOGITECH_FF is not set&lt;br /&gt;
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-5&lt;br /&gt;
| 4-21&lt;br /&gt;
| Linux autoconf.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % cat include/linux/autoconf.h| grep CONFIG_USB&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETMOTORCONTROL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_LEGOTOWER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_T613_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_RNDIS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_W9968CF_MODULE 1&lt;br /&gt;
#define CONFIG_USB_RTL8150 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_KAWETH 1&lt;br /&gt;
#define CONFIG_USB_ZERO_HNPTEST 1&lt;br /&gt;
#define CONFIG_USB_CXACRU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_ARK3116_MODULE 1&lt;br /&gt;
#define CONFIG_USB_G_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_PLUSB 1&lt;br /&gt;
#define CONFIG_USB_GPIO_VBUS 1&lt;br /&gt;
#define CONFIG_USB_EHCI_TT_NEWSCHED 1&lt;br /&gt;
#define CONFIG_USB_ACM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_EHCI 1&lt;br /&gt;
#define CONFIG_USB_USBNET 1&lt;br /&gt;
#define CONFIG_USB_LCD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_BELKIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LED_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1&lt;br /&gt;
#define CONFIG_USB_HID 1&lt;br /&gt;
#define CONFIG_USB_GADGET_VBUS_DRAW 2&lt;br /&gt;
#define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OTG_UTILS 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_OHCI 1&lt;br /&gt;
#define CONFIG_USB_CDC_COMPOSITE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GARMIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7720_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_NAVMAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_FINEPIX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7840_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TMC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OTI6858_MODULE 1&lt;br /&gt;
#define CONFIG_USB_WDM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MON 1&lt;br /&gt;
#define CONFIG_USB_OTG 1&lt;br /&gt;
#define CONFIG_USB_PWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETKIT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ET61X251_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_XIRCOM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SPEEDTOUCH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_CON 1&lt;br /&gt;
#define CONFIG_USB_NET_NET1080 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTION_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZR364XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_MCS7830 1&lt;br /&gt;
#define CONFIG_USB_VST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MARS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EHCI_ROOT_HUB_TT 1&lt;br /&gt;
#define CONFIG_USB_PHIDGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CYPRESS_CY7C63_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV534_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPW_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_AX8817X 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV519_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IUU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STV06XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1&lt;br /&gt;
#define CONFIG_USB_STORAGE 1&lt;br /&gt;
#define CONFIG_USB_IDMOUSE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PEGASUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1&lt;br /&gt;
#define CONFIG_USB_M5602_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CATC 1&lt;br /&gt;
#define CONFIG_USB_CYTHERM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GENERIC 1&lt;br /&gt;
#define CONFIG_USB_IRDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_S2255_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUSPEND 1&lt;br /&gt;
#define CONFIG_USB_XUSBATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TRANCEVIBRATOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SE401_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MIDI_GADGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_ZAURUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OMNINET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC207_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTICON_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OV511_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUPPORT 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SAFE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZERO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TEST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CH341_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI26_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI62_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_HP4X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGETFS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_CDC_SUBSET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1&lt;br /&gt;
#define CONFIG_USB_EHCI_HCD 1&lt;br /&gt;
#define CONFIG_USB_DEVICEFS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_TV8532_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPAQ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_CONEX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ZC3XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MCT_U232_MODULE 1&lt;br /&gt;
#define CONFIG_USB_KONICAWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KLSI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ALI_M5632 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_VC032X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_SELECTED 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_STK014_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OXU210HP_HCD 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ETOMS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_QUICKCAM_MESSENGER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_WLAN 1&lt;br /&gt;
#define CONFIG_USB_KC2190 1&lt;br /&gt;
#define CONFIG_USB_AN2720 1&lt;br /&gt;
#define CONFIG_USB_EPSON2888 1&lt;br /&gt;
#define CONFIG_USB_ZC0301_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZD1201 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_HOST 1&lt;br /&gt;
#define CONFIG_USB_G_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DEBUG_FS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC7311_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VICAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARMLINUX 1&lt;br /&gt;
#define CONFIG_USB_ATMEL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CP2101_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_SOC 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_OTG 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_PL2303_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1&lt;br /&gt;
#define CONFIG_USB_DEVICE_CLASS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DEBUG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MPR 1&lt;br /&gt;
#define CONFIG_USB_NET_CDCETHER 1&lt;br /&gt;
#define CONFIG_USB_EZUSB 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA500_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA501_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_BERRY_CHARGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EMPEG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA505_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA506_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA561_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA508_MODULE 1&lt;br /&gt;
#define CONFIG_USB_FILE_STORAGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETSERVO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1&lt;br /&gt;
#define CONFIG_USB_UEAGLEATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_INVENTRA_DMA 1&lt;br /&gt;
#define CONFIG_USB_NET_SMSC95XX 1&lt;br /&gt;
#define CONFIG_USB_STV680_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXB_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STKWEBCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DUALSPEED 1&lt;br /&gt;
#define CONFIG_USB_FTDI_ELAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_DM9601 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXJ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_IBMCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SN9C102_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_VISOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_GL620A 1&lt;br /&gt;
#define CONFIG_USB_BELKIN 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| 4-22&lt;br /&gt;
| Makefile Targets&lt;br /&gt;
| &amp;lt;pre&amp;gt;Cleaning targets:&lt;br /&gt;
  clean		  - Remove most generated files but keep the config and&lt;br /&gt;
                    enough build support to build external modules&lt;br /&gt;
  mrproper	  - Remove all generated files + config + various backup files&lt;br /&gt;
  distclean	  - mrproper + remove editor backup and patch files&lt;br /&gt;
&lt;br /&gt;
Configuration targets:&lt;br /&gt;
  config	  - Update current config utilising a line-oriented program&lt;br /&gt;
  menuconfig	  - Update current config utilising a menu based program&lt;br /&gt;
  xconfig	  - Update current config utilising a QT based front-end&lt;br /&gt;
  gconfig	  - Update current config utilising a GTK based front-end&lt;br /&gt;
  oldconfig	  - Update current config utilising a provided .config as base&lt;br /&gt;
  silentoldconfig - Same as oldconfig, but quietly&lt;br /&gt;
  randconfig	  - New config with random answer to all options&lt;br /&gt;
  defconfig	  - New config with default answer to all options&lt;br /&gt;
  allmodconfig	  - New config selecting modules when possible&lt;br /&gt;
  allyesconfig	  - New config where all options are accepted with yes&lt;br /&gt;
  allnoconfig	  - New config where all options are answered with no&lt;br /&gt;
&lt;br /&gt;
Other generic targets:&lt;br /&gt;
  all		  - Build all targets marked with [*]&lt;br /&gt;
* vmlinux	  - Build the bare kernel&lt;br /&gt;
* modules	  - Build all modules&lt;br /&gt;
  modules_install - Install all modules to INSTALL_MOD_PATH (default: /)&lt;br /&gt;
  firmware_install- Install all firmware to INSTALL_FW_PATH&lt;br /&gt;
                    (default: $(INSTALL_MOD_PATH)/lib/firmware)&lt;br /&gt;
  dir/            - Build all files in dir and below&lt;br /&gt;
  dir/file.[ois]  - Build specified target only&lt;br /&gt;
  dir/file.ko     - Build module including final link&lt;br /&gt;
  prepare         - Set up for building external modules&lt;br /&gt;
  tags/TAGS	  - Generate tags file for editors&lt;br /&gt;
  cscope	  - Generate cscope index&lt;br /&gt;
  kernelrelease	  - Output the release version string&lt;br /&gt;
  kernelversion	  - Output the version stored in Makefile&lt;br /&gt;
  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH&lt;br /&gt;
                    (default: /home/users/collinjc/oe/angstrom-dev-backup2/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r46/git/usr)&lt;br /&gt;
&lt;br /&gt;
Static analysers&lt;br /&gt;
  checkstack      - Generate a list of stack hogs&lt;br /&gt;
  namespacecheck  - Name space analysis on compiled kernel&lt;br /&gt;
  versioncheck    - Sanity check on version.h usage&lt;br /&gt;
  includecheck    - Check for duplicate included header files&lt;br /&gt;
  export_report   - List the usages of all exported symbols&lt;br /&gt;
  headers_check   - Sanity check on exported headers&lt;br /&gt;
  headerdep       - Detect inclusion cycles in headers&lt;br /&gt;
&lt;br /&gt;
Kernel packaging:&lt;br /&gt;
  rpm-pkg         - Build both source and binary RPM kernel packages&lt;br /&gt;
  binrpm-pkg      - Build only the binary kernel package&lt;br /&gt;
  deb-pkg         - Build the kernel as an deb package&lt;br /&gt;
  tar-pkg         - Build the kernel as an uncompressed tarball&lt;br /&gt;
  targz-pkg       - Build the kernel as a gzip compressed tarball&lt;br /&gt;
  tarbz2-pkg      - Build the kernel as a bzip2 compressed tarball&lt;br /&gt;
&lt;br /&gt;
Documentation targets:&lt;br /&gt;
 Linux kernel internal documentation in different formats:&lt;br /&gt;
  htmldocs        - HTML&lt;br /&gt;
  installmandocs  - install man pages generated by mandocs&lt;br /&gt;
  mandocs         - man pages&lt;br /&gt;
  pdfdocs         - PDF&lt;br /&gt;
  psdocs          - Postscript&lt;br /&gt;
  xmldocs         - XML DocBook&lt;br /&gt;
&lt;br /&gt;
Architecture specific targets (arm):&lt;br /&gt;
* zImage        - Compressed kernel image (arch/arm/boot/zImage)&lt;br /&gt;
  Image         - Uncompressed kernel image (arch/arm/boot/Image)&lt;br /&gt;
* xipImage      - XIP kernel image, if configured (arch/arm/boot/xipImage)&lt;br /&gt;
  uImage        - U-Boot wrapped zImage&lt;br /&gt;
  bootpImage    - Combined zImage and initial RAM disk&lt;br /&gt;
                  (supply initrd image via make variable INITRD=&amp;lt;path&amp;gt;)&lt;br /&gt;
  install       - Install uncompressed kernel&lt;br /&gt;
  zinstall      - Install compressed kernel&lt;br /&gt;
                  Install using (your) ~/bin/installkernel or&lt;br /&gt;
                  (distribution) /sbin/installkernel or&lt;br /&gt;
                  install to $(INSTALL_PATH) and run lilo&lt;br /&gt;
&lt;br /&gt;
  afeb9260_defconfig       - Build for afeb9260&lt;br /&gt;
  am200epdkit_defconfig    - Build for am200epdkit&lt;br /&gt;
  ams_delta_defconfig      - Build for ams_delta&lt;br /&gt;
  assabet_defconfig        - Build for assabet&lt;br /&gt;
  at91cap9adk_defconfig    - Build for at91cap9adk&lt;br /&gt;
  at91rm9200dk_defconfig   - Build for at91rm9200dk&lt;br /&gt;
  at91rm9200ek_defconfig   - Build for at91rm9200ek&lt;br /&gt;
  at91sam9260ek_defconfig  - Build for at91sam9260ek&lt;br /&gt;
  at91sam9261ek_defconfig  - Build for at91sam9261ek&lt;br /&gt;
  at91sam9263ek_defconfig  - Build for at91sam9263ek&lt;br /&gt;
  at91sam9g20ek_defconfig  - Build for at91sam9g20ek&lt;br /&gt;
  at91sam9rlek_defconfig   - Build for at91sam9rlek&lt;br /&gt;
  ateb9200_defconfig       - Build for ateb9200&lt;br /&gt;
  badge4_defconfig         - Build for badge4&lt;br /&gt;
  cam60_defconfig          - Build for cam60&lt;br /&gt;
  carmeva_defconfig        - Build for carmeva&lt;br /&gt;
  cerfcube_defconfig       - Build for cerfcube&lt;br /&gt;
  cm_x300_defconfig        - Build for cm_x300&lt;br /&gt;
  colibri_defconfig        - Build for colibri&lt;br /&gt;
  collie_defconfig         - Build for collie&lt;br /&gt;
  corgi_defconfig          - Build for corgi&lt;br /&gt;
  csb337_defconfig         - Build for csb337&lt;br /&gt;
  csb637_defconfig         - Build for csb637&lt;br /&gt;
  dss_omap3_beagle_defconfig - Build for dss_omap3_beagle&lt;br /&gt;
  dss_omap_3430sdp_defconfig - Build for dss_omap_3430sdp&lt;br /&gt;
  dss_overo_defconfig      - Build for dss_overo&lt;br /&gt;
  ebsa110_defconfig        - Build for ebsa110&lt;br /&gt;
  ecbat91_defconfig        - Build for ecbat91&lt;br /&gt;
  edb7211_defconfig        - Build for edb7211&lt;br /&gt;
  ep93xx_defconfig         - Build for ep93xx&lt;br /&gt;
  eseries_pxa_defconfig    - Build for eseries_pxa&lt;br /&gt;
  ezx_defconfig            - Build for ezx&lt;br /&gt;
  footbridge_defconfig     - Build for footbridge&lt;br /&gt;
  fortunet_defconfig       - Build for fortunet&lt;br /&gt;
  h3600_defconfig          - Build for h3600&lt;br /&gt;
  h5000_defconfig          - Build for h5000&lt;br /&gt;
  h7201_defconfig          - Build for h7201&lt;br /&gt;
  h7202_defconfig          - Build for h7202&lt;br /&gt;
  hackkit_defconfig        - Build for hackkit&lt;br /&gt;
  imx27ads_defconfig       - Build for imx27ads&lt;br /&gt;
  integrator_defconfig     - Build for integrator&lt;br /&gt;
  iop13xx_defconfig        - Build for iop13xx&lt;br /&gt;
  iop32x_defconfig         - Build for iop32x&lt;br /&gt;
  iop33x_defconfig         - Build for iop33x&lt;br /&gt;
  ixp2000_defconfig        - Build for ixp2000&lt;br /&gt;
  ixp23xx_defconfig        - Build for ixp23xx&lt;br /&gt;
  ixp4xx_defconfig         - Build for ixp4xx&lt;br /&gt;
  jornada720_defconfig     - Build for jornada720&lt;br /&gt;
  kafa_defconfig           - Build for kafa&lt;br /&gt;
  kb9202_defconfig         - Build for kb9202&lt;br /&gt;
  kirkwood_defconfig       - Build for kirkwood&lt;br /&gt;
  ks8695_defconfig         - Build for ks8695&lt;br /&gt;
  lart_defconfig           - Build for lart&lt;br /&gt;
  littleton_defconfig      - Build for littleton&lt;br /&gt;
  loki_defconfig           - Build for loki&lt;br /&gt;
  lpd270_defconfig         - Build for lpd270&lt;br /&gt;
  lpd7a400_defconfig       - Build for lpd7a400&lt;br /&gt;
  lpd7a404_defconfig       - Build for lpd7a404&lt;br /&gt;
  lubbock_defconfig        - Build for lubbock&lt;br /&gt;
  lusl7200_defconfig       - Build for lusl7200&lt;br /&gt;
  magician_defconfig       - Build for magician&lt;br /&gt;
  mainstone_defconfig      - Build for mainstone&lt;br /&gt;
  msm_defconfig            - Build for msm&lt;br /&gt;
  mv78xx0_defconfig        - Build for mv78xx0&lt;br /&gt;
  mx1ads_defconfig         - Build for mx1ads&lt;br /&gt;
  mx31ads_defconfig        - Build for mx31ads&lt;br /&gt;
  mx31litekit_defconfig    - Build for mx31litekit&lt;br /&gt;
  mx31moboard_defconfig    - Build for mx31moboard&lt;br /&gt;
  mx31pdk_defconfig        - Build for mx31pdk&lt;br /&gt;
  n770_defconfig           - Build for n770&lt;br /&gt;
  n800_defconfig           - Build for n800&lt;br /&gt;
  neocore926_defconfig     - Build for neocore926&lt;br /&gt;
  neponset_defconfig       - Build for neponset&lt;br /&gt;
  netwinder_defconfig      - Build for netwinder&lt;br /&gt;
  netx_defconfig           - Build for netx&lt;br /&gt;
  ns9xxx_defconfig         - Build for ns9xxx&lt;br /&gt;
  omap2_evm_defconfig      - Build for omap2_evm&lt;br /&gt;
  omap3_beagle_defconfig   - Build for omap3_beagle&lt;br /&gt;
  omap3_evm_defconfig      - Build for omap3_evm&lt;br /&gt;
  omap3_pandora_defconfig  - Build for omap3_pandora&lt;br /&gt;
  omap_2430sdp_defconfig   - Build for omap_2430sdp&lt;br /&gt;
  omap_3430sdp_defconfig   - Build for omap_3430sdp&lt;br /&gt;
  omap_apollon_2420_defconfig - Build for omap_apollon_2420&lt;br /&gt;
  omap_generic_1510_defconfig - Build for omap_generic_1510&lt;br /&gt;
  omap_generic_1610_defconfig - Build for omap_generic_1610&lt;br /&gt;
  omap_generic_1710_defconfig - Build for omap_generic_1710&lt;br /&gt;
  omap_generic_2420_defconfig - Build for omap_generic_2420&lt;br /&gt;
  omap_h2_1610_defconfig   - Build for omap_h2_1610&lt;br /&gt;
  omap_h3_1710_defconfig   - Build for omap_h3_1710&lt;br /&gt;
  omap_h4_2420_defconfig   - Build for omap_h4_2420&lt;br /&gt;
  omap_innovator_1510_defconfig - Build for omap_innovator_1510&lt;br /&gt;
  omap_innovator_1610_defconfig - Build for omap_innovator_1610&lt;br /&gt;
  omap_ldp_defconfig       - Build for omap_ldp&lt;br /&gt;
  omap_osk_5912_defconfig  - Build for omap_osk_5912&lt;br /&gt;
  omap_perseus2_730_defconfig - Build for omap_perseus2_730&lt;br /&gt;
  onearm_defconfig         - Build for onearm&lt;br /&gt;
  orion5x_defconfig        - Build for orion5x&lt;br /&gt;
  overo_defconfig          - Build for overo&lt;br /&gt;
  palmte_defconfig         - Build for palmte&lt;br /&gt;
  palmtt_defconfig         - Build for palmtt&lt;br /&gt;
  palmz71_defconfig        - Build for palmz71&lt;br /&gt;
  palmz72_defconfig        - Build for palmz72&lt;br /&gt;
  pcm027_defconfig         - Build for pcm027&lt;br /&gt;
  pcm037_defconfig         - Build for pcm037&lt;br /&gt;
  pcm038_defconfig         - Build for pcm038&lt;br /&gt;
  picotux200_defconfig     - Build for picotux200&lt;br /&gt;
  pleb_defconfig           - Build for pleb&lt;br /&gt;
  pnx4008_defconfig        - Build for pnx4008&lt;br /&gt;
  pxa255-idp_defconfig     - Build for pxa255-idp&lt;br /&gt;
  qil-a9260_defconfig      - Build for qil-a9260&lt;br /&gt;
  realview-smp_defconfig   - Build for realview-smp&lt;br /&gt;
  realview_defconfig       - Build for realview&lt;br /&gt;
  rpc_defconfig            - Build for rpc&lt;br /&gt;
  rx51_defconfig           - Build for rx51&lt;br /&gt;
  s3c2410_defconfig        - Build for s3c2410&lt;br /&gt;
  s3c6400_defconfig        - Build for s3c6400&lt;br /&gt;
  sam9_l9260_defconfig     - Build for sam9_l9260&lt;br /&gt;
  shannon_defconfig        - Build for shannon&lt;br /&gt;
  shark_defconfig          - Build for shark&lt;br /&gt;
  simpad_defconfig         - Build for simpad&lt;br /&gt;
  spitz_defconfig          - Build for spitz&lt;br /&gt;
  sx1_defconfig            - Build for sx1&lt;br /&gt;
  tct_hammer_defconfig     - Build for tct_hammer&lt;br /&gt;
  trizeps4_defconfig       - Build for trizeps4&lt;br /&gt;
  usb-a9260_defconfig      - Build for usb-a9260&lt;br /&gt;
  usb-a9263_defconfig      - Build for usb-a9263&lt;br /&gt;
  versatile_defconfig      - Build for versatile&lt;br /&gt;
  viper_defconfig          - Build for viper&lt;br /&gt;
  w90p910_defconfig        - Build for w90p910&lt;br /&gt;
  xm_x2xx_defconfig        - Build for xm_x2xx&lt;br /&gt;
  yl9200_defconfig         - Build for yl9200&lt;br /&gt;
  zylonite_defconfig       - Build for zylonite&lt;br /&gt;
&lt;br /&gt;
  make V=0|1 [targets] 0 =&amp;gt; quiet build (default), 1 =&amp;gt; verbose build&lt;br /&gt;
  make V=2   [targets] 2 =&amp;gt; give reason for rebuild of target&lt;br /&gt;
  make O=dir [targets] Locate all output files in &amp;quot;dir&amp;quot;, including .config&lt;br /&gt;
  make C=1   [targets] Check all c source with $CHECK (sparse by default)&lt;br /&gt;
  make C=2   [targets] Force check of all c source with $CHECK&lt;br /&gt;
&lt;br /&gt;
Execute &amp;quot;make&amp;quot; or &amp;quot;make all&amp;quot; to build all targets marked with [*] &lt;br /&gt;
For further info see the ./README file&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-7&lt;br /&gt;
| 4-27&lt;br /&gt;
| Partial Listing of Kconfig for ARM Architecture&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-8&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
 183 config VECTORS_BASE&lt;br /&gt;
 184         hex&lt;br /&gt;
 185         default 0xffff0000 if MMU || CPU_HIGH_VECTOR&lt;br /&gt;
 186         default DRAM_BASE if REMAP_VECTORS_TO_RAM&lt;br /&gt;
 187         default 0x00000000&lt;br /&gt;
 188         help&lt;br /&gt;
 189           The base address of exception vectors.&lt;br /&gt;
 190 &lt;br /&gt;
 191 source &amp;quot;init/Kconfig&amp;quot;&lt;br /&gt;
 192 &lt;br /&gt;
 193 source &amp;quot;kernel/Kconfig.freezer&amp;quot;&lt;br /&gt;
 194 &lt;br /&gt;
 195 menu &amp;quot;System Type&amp;quot;&lt;br /&gt;
 196 &lt;br /&gt;
 197 choice&lt;br /&gt;
 198         prompt &amp;quot;ARM system type&amp;quot;&lt;br /&gt;
 199         default ARCH_VERSATILE&lt;br /&gt;
 200 &lt;br /&gt;
 201 config ARCH_AAEC2000&lt;br /&gt;
 202         bool &amp;quot;Agilent AAEC-2000 based&amp;quot;&lt;br /&gt;
 203         select CPU_ARM920T&lt;br /&gt;
 204         select ARM_AMBA&lt;br /&gt;
 205         select HAVE_CLK&lt;br /&gt;
 206         help&lt;br /&gt;
 207           This enables support for systems based on the Agilent AAEC-2000&lt;br /&gt;
 208 &lt;br /&gt;
 209 config ARCH_INTEGRATOR&lt;br /&gt;
 210         bool &amp;quot;ARM Ltd. Integrator family&amp;quot;&lt;br /&gt;
 211         select ARM_AMBA                                                                                 &lt;br /&gt;
 212         select HAVE_CLK                                                                                 &lt;br /&gt;
 213         select COMMON_CLKDEV                                                                            &lt;br /&gt;
 214         select ICST525&lt;br /&gt;
 215         help&lt;br /&gt;
 216           Support for ARM's Integrator platform.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-9&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/plat-omap/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
....&lt;br /&gt;
config OMAP_BOOT_REASON&lt;br /&gt;
        bool &amp;quot;Support for boot reason&amp;quot;&lt;br /&gt;
        depends on OMAP_BOOT_TAG&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have a procfs entry for reading the boot&lt;br /&gt;
          reason in user-space.&lt;br /&gt;
&lt;br /&gt;
config OMAP_COMPONENT_VERSION&lt;br /&gt;
        bool &amp;quot;Support for component version display&amp;quot;&lt;br /&gt;
        depends on OMAP_BOOT_TAG &amp;amp;&amp;amp; PROC_FS&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have a procfs entry for reading component&lt;br /&gt;
          versions (supplied by the bootloader) in user-space.&lt;br /&gt;
&lt;br /&gt;
config OMAP_GPIO_SWITCH&lt;br /&gt;
        bool &amp;quot;GPIO switch support&amp;quot;&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have support for reporting of GPIO&lt;br /&gt;
          switches (e.g. cover switches) via sysfs. Your bootloader has&lt;br /&gt;
          to provide information about the switches to the kernel via the&lt;br /&gt;
          ATAG_BOARD mechanism if they're not defined by the board config.&lt;br /&gt;
&lt;br /&gt;
config OMAP_MUX&lt;br /&gt;
        bool &amp;quot;OMAP multiplexing support&amp;quot;&lt;br /&gt;
        depends on ARCH_OMAP&lt;br /&gt;
        default y&lt;br /&gt;
        help&lt;br /&gt;
          Pin multiplexing support for OMAP boards. If your bootloader&lt;br /&gt;
          sets the multiplexing correctly, say N. Otherwise, or if unsure,&lt;br /&gt;
          say Y.&lt;br /&gt;
&lt;br /&gt;
config OMAP_MUX_DEBUG&lt;br /&gt;
        bool &amp;quot;Multiplexing debug output&amp;quot;&lt;br /&gt;
        depends on OMAP_MUX&lt;br /&gt;
        help&lt;br /&gt;
          Makes the multiplexing functions print out a lot of debug info.&lt;br /&gt;
          This is useful if you want to find out the correct values of the&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-10&lt;br /&gt;
| 4-32&lt;br /&gt;
| Customized .config File Snippet&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# OMAP Feature Selections&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set&lt;br /&gt;
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set&lt;br /&gt;
# CONFIG_OMAP_SMARTREFLEX is not set&lt;br /&gt;
CONFIG_OMAP_RESET_CLOCKS=y&lt;br /&gt;
CONFIG_OMAP_BOOT_TAG=y&lt;br /&gt;
CONFIG_OMAP_BOOT_REASON=y&lt;br /&gt;
# CONFIG_OMAP_COMPONENT_VERSION is not set&lt;br /&gt;
CONFIG_OMAP_GPIO_SWITCH=y&lt;br /&gt;
# CONFIG_OMAP_GPIO_SWITCH_2 is not set&lt;br /&gt;
# CONFIG_OMAP_MUX is not set&lt;br /&gt;
CONFIG_OMAP_MCBSP=y&lt;br /&gt;
# CONFIG_OMAP_MBOX_FWK is not set&lt;br /&gt;
CONFIG_OMAP_IOMMU=m&lt;br /&gt;
# CONFIG_OMAP_MPU_TIMER is not set&lt;br /&gt;
CONFIG_OMAP_32K_TIMER=y&lt;br /&gt;
CONFIG_OMAP_32K_TIMER_HZ=128&lt;br /&gt;
CONFIG_OMAP_TICK_GPTIMER=12&lt;br /&gt;
CONFIG_OMAP_DM_TIMER=y&lt;br /&gt;
# CONFIG_OMAP_LL_DEBUG_UART1 is not set&lt;br /&gt;
# CONFIG_OMAP_LL_DEBUG_UART2 is not set&lt;br /&gt;
CONFIG_OMAP_LL_DEBUG_UART3=y&lt;br /&gt;
CONFIG_ARCH_OMAP34XX=y&lt;br /&gt;
CONFIG_ARCH_OMAP3430=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-11&lt;br /&gt;
| 4-33&lt;br /&gt;
| Makefile from .../arch/arm/plat-omap/ Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Makefile for the linux kernel.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Common support&lt;br /&gt;
obj-y := common.o sram.o clock.o devices.o dma.o mux.o gpio.o \&lt;br /&gt;
         usb.o fb.o vram.o vrfb.o io.o&lt;br /&gt;
obj-m :=&lt;br /&gt;
obj-n :=&lt;br /&gt;
obj-  :=&lt;br /&gt;
&lt;br /&gt;
# OCPI interconnect support for 1710, 1610 and 5912&lt;br /&gt;
obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o&lt;br /&gt;
&lt;br /&gt;
obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o&lt;br /&gt;
obj-$(CONFIG_OMAP_IOMMU) += iommu.o iovmm.o&lt;br /&gt;
&lt;br /&gt;
obj-$(CONFIG_CPU_FREQ) += cpu-omap.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o&lt;br /&gt;
obj-$(CONFIG_OMAP_BOOT_REASON) += bootreason.o&lt;br /&gt;
obj-$(CONFIG_OMAP_COMPONENT_VERSION) += component-version.o&lt;br /&gt;
obj-$(CONFIG_OMAP_GPIO_SWITCH) += gpio-switch.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o&lt;br /&gt;
i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o&lt;br /&gt;
obj-y += $(i2c-omap-m) $(i2c-omap-y)&lt;br /&gt;
&lt;br /&gt;
# OMAP mailbox framework&lt;br /&gt;
obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 5-1&lt;br /&gt;
| 5-2&lt;br /&gt;
| Final Kernel Build Sequence:  ARM/BeagleBoard&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-2&lt;br /&gt;
| 5-5&lt;br /&gt;
| Assembly File .../arch/arm/boot/compressed/piggy.S&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
        .section .piggydata,#alloc&lt;br /&gt;
        .globl  input_data&lt;br /&gt;
input_data:&lt;br /&gt;
        .incbin &amp;quot;arch/arm/boot/compressed/piggy.gz&amp;quot;&lt;br /&gt;
        .globl  input_data_end&lt;br /&gt;
input_data_end:&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-3&lt;br /&gt;
| 5-7&lt;br /&gt;
| Final Kernel Build Sequence:  ARM/BeagleBoard&lt;br /&gt;
| &amp;lt;pre&amp;gt;Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot: 10 ��� 9 ��� 8 ��� 7 ��� 6 ��� 5 ��� 4 ��� 3 ��� 2 ��� 1 ��� 0 &lt;br /&gt;
mmc1 is available&lt;br /&gt;
reading uImage&lt;br /&gt;
&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
[    0.000000] net_namespace: 1036 bytes&lt;br /&gt;
[    0.000000] regulator: core version 0.5&lt;br /&gt;
[    0.000000] NET: Registered protocol family 16&lt;br /&gt;
[    0.000000] GPIO-156 autorequested&lt;br /&gt;
[    0.000000] GPIO-159 autorequested&lt;br /&gt;
[    0.000000] Found NAND on CS0&lt;br /&gt;
[    0.000000] Registering NAND on CS0&lt;br /&gt;
[ 3130.761016] OMAP DMA hardware revision 4.0&lt;br /&gt;
[ 3130.794372] bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
[ 3130.854797] OMAP DSS rev 2.0&lt;br /&gt;
[ 3130.854888] OMAP DISPC rev 3.0&lt;br /&gt;
[ 3130.854919] OMAP VENC rev 2&lt;br /&gt;
[ 3130.855041] OMAP DSI rev 1.0&lt;br /&gt;
[ 3130.870819] i2c_omap i2c_omap.1: bus 1 rev3.12 at 2600 kHz&lt;br /&gt;
[ 3130.874114] twl4030: PIH (irq 7) chaining IRQs 368..375&lt;br /&gt;
[ 3130.874145] twl4030: power (irq 373) chaining IRQs 376..383&lt;br /&gt;
[ 3130.874603] twl4030: gpio (irq 368) chaining IRQs 384..401&lt;br /&gt;
[ 3130.876922] regulator: VMMC1: 1850 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[ 3130.877655] regulator: VDAC: 1800 mV normal standby&lt;br /&gt;
[ 3130.878356] regulator: VUSB1V5: 1500 &amp;lt;--&amp;gt; 0 mV normal standby&lt;br /&gt;
[ 3130.879211] regulator: VUSB1V8: 1800 &amp;lt;--&amp;gt; 0 mV normal standby&lt;br /&gt;
[ 3130.879913] regulator: VUSB3V1: 3100 &amp;lt;--&amp;gt; 0 mV normal standby&lt;br /&gt;
[ 3130.880615] regulator: VPLL2: 1800 mV normal standby&lt;br /&gt;
[ 3130.881347] regulator: VMMC2: 2800 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[ 3130.882049] regulator: VSIM: 1800 &amp;lt;--&amp;gt; 3000 mV normal standby&lt;br /&gt;
[ 3130.882202] i2c_omap i2c_omap.2: bus 2 rev3.12 at 400 kHz&lt;br /&gt;
[ 3130.894989] i2c_omap i2c_omap.3: bus 3 rev3.12 at 100 kHz&lt;br /&gt;
[ 3130.896759] SCSI subsystem initialized&lt;br /&gt;
[ 3130.899688] twl4030_usb twl4030_usb: Initialized TWL4030 USB module&lt;br /&gt;
[ 3130.900909] usbcore: registered new interface driver usbfs&lt;br /&gt;
[ 3130.901367] usbcore: registered new interface driver hub&lt;br /&gt;
[ 3130.901702] usbcore: registered new device driver usb&lt;br /&gt;
[ 3130.904205] Bluetooth: Core ver 2.14&lt;br /&gt;
[ 3130.904632] NET: Registered protocol family 31&lt;br /&gt;
[ 3130.904632] Bluetooth: HCI device and connection manager initialized&lt;br /&gt;
[ 3130.904663] Bluetooth: HCI socket layer initialized&lt;br /&gt;
[ 3130.905242] cfg80211: Using static regulatory domain info&lt;br /&gt;
[ 3130.905242] cfg80211: Regulatory domain: US&lt;br /&gt;
[ 3130.905273] 	(start_freq - end_freq @ bandwidth), (max_antenna_gain, max_eirp)&lt;br /&gt;
[ 3130.905273] 	(2402000 KHz - 2472000 KHz @ 40000 KHz), (600 mBi, 2700 mBm)&lt;br /&gt;
[ 3130.905303] 	(5170000 KHz - 5190000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905303] 	(5190000 KHz - 5210000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905334] 	(5210000 KHz - 5230000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905334] 	(5230000 KHz - 5330000 KHz @ 40000 KHz), (600 mBi, 2300 mBm)&lt;br /&gt;
[ 3130.905364] 	(5735000 KHz - 5835000 KHz @ 40000 KHz), (600 mBi, 3000 mBm)&lt;br /&gt;
[ 3130.905364] cfg80211: Calling CRDA for country: US&lt;br /&gt;
[ 3130.908111] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0&lt;br /&gt;
[ 3130.910308] musb_hdrc: USB OTG mode controller at d80ab000 using DMA, IRQ 92&lt;br /&gt;
[ 3130.911560] NET: Registered protocol family 2&lt;br /&gt;
[ 3130.911804] IP route cache hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
[ 3130.912292] TCP established hash table entries: 8192 (order: 4, 65536 bytes)&lt;br /&gt;
[ 3130.912445] TCP bind hash table entries: 8192 (order: 3, 32768 bytes)&lt;br /&gt;
[ 3130.912567] TCP: Hash tables configured (established 8192 bind 8192)&lt;br /&gt;
[ 3130.912567] TCP reno registered&lt;br /&gt;
[ 3130.912780] NET: Registered protocol family 1&lt;br /&gt;
[ 3130.916107] VFS: Disk quotas dquot_6.5.2&lt;br /&gt;
[ 3130.916168] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)&lt;br /&gt;
[ 3130.916656] squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
[ 3130.917236] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.&lt;br /&gt;
[ 3130.917938] msgmni has been set to 466&lt;br /&gt;
[ 3130.921691] alg: No test for stdrng (krng)&lt;br /&gt;
[ 3130.921783] io scheduler noop registered&lt;br /&gt;
[ 3130.921783] io scheduler anticipatory registered&lt;br /&gt;
[ 3130.921813] io scheduler deadline registered&lt;br /&gt;
[ 3130.921966] io scheduler cfq registered (default)&lt;br /&gt;
[ 3130.941101] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled&lt;br /&gt;
[ 3130.963867] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654&lt;br /&gt;
[ 3130.985321] serial8250.0: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654&lt;br /&gt;
[ 3131.007293] serial8250.0: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654&lt;br /&gt;
[ 3131.007324] console [ttyS2] enabled&lt;br /&gt;
[ 3131.527282] brd: module loaded&lt;br /&gt;
[ 3131.535125] loop: module loaded&lt;br /&gt;
[ 3131.538909] enc28j60 spi4.0: enc28j60 Ethernet driver 1.01 loaded&lt;br /&gt;
[ 3131.547546] enc28j60 spi4.0: enc28j60 chip not found&lt;br /&gt;
[ 3131.552612] enc28j60: probe of spi4.0 failed with error -5&lt;br /&gt;
[ 3131.558593] usbcore: registered new interface driver catc&lt;br /&gt;
[ 3131.564178] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver&lt;br /&gt;
[ 3131.570770] usbcore: registered new interface driver kaweth&lt;br /&gt;
[ 3131.576416] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver&lt;br /&gt;
[ 3131.584228] usbcore: registered new interface driver pegasus&lt;br /&gt;
[ 3131.589935] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver&lt;br /&gt;
[ 3131.597106] usbcore: registered new interface driver rtl8150&lt;br /&gt;
[ 3131.603057] usbcore: registered new interface driver asix&lt;br /&gt;
[ 3131.608734] usbcore: registered new interface driver cdc_ether&lt;br /&gt;
[ 3131.614837] usbcore: registered new interface driver dm9601&lt;br /&gt;
[ 3131.620666] usbcore: registered new interface driver smsc95xx&lt;br /&gt;
[ 3131.626708] usbcore: registered new interface driver gl620a&lt;br /&gt;
[ 3131.632598] usbcore: registered new interface driver net1080&lt;br /&gt;
[ 3131.638519] usbcore: registered new interface driver plusb&lt;br /&gt;
[ 3131.644256] usbcore: registered new interface driver rndis_host&lt;br /&gt;
[ 3131.650482] usbcore: registered new interface driver cdc_subset&lt;br /&gt;
[ 3131.656646] usbcore: registered new interface driver zaurus&lt;br /&gt;
[ 3131.662536] usbcore: registered new interface driver MOSCHIP usb-ethernet driver&lt;br /&gt;
[ 3131.670257] Broadcom 43xx driver loaded [ Features: L, Firmware-ID: FW13 ]&lt;br /&gt;
[ 3131.677551] usbcore: registered new interface driver zd1211rw&lt;br /&gt;
[ 3131.683532] usbcore: registered new interface driver rtl8187&lt;br /&gt;
[ 3131.689514] usbcore: registered new interface driver rndis_wlan&lt;br /&gt;
[ 3131.695739] usbcore: registered new interface driver zd1201&lt;br /&gt;
[ 3131.701629] usbcore: registered new interface driver usb8xxx&lt;br /&gt;
[ 3131.707550] usbcore: registered new interface driver rt2500usb&lt;br /&gt;
[ 3131.713714] usbcore: registered new interface driver rt73usb&lt;br /&gt;
[ 3131.719665] usbcore: registered new interface driver p54usb&lt;br /&gt;
[ 3131.725341] i2c /dev entries driver&lt;br /&gt;
[ 3131.730346] Driver 'sd' needs updating - please use bus_type methods&lt;br /&gt;
[ 3131.736968] Driver 'sr' needs updating - please use bus_type methods&lt;br /&gt;
[ 3131.744293] omap2-nand driver initializing&lt;br /&gt;
[ 3131.748718] NAND device: Manufacturer ID: 0x2c, Chip ID: 0xba (Micron NAND 256MiB 1,8V 16-bit)&lt;br /&gt;
[ 3131.757751] cmdlinepart partition parsing not available&lt;br /&gt;
[ 3131.763061] Creating 5 MTD partitions on &amp;quot;omap2-nand&amp;quot;:&lt;br /&gt;
[ 3131.768218] 0x000000000000-0x000000080000 : &amp;quot;X-Loader&amp;quot;&lt;br /&gt;
[ 3131.775146] 0x000000080000-0x000000260000 : &amp;quot;U-Boot&amp;quot;&lt;br /&gt;
[ 3131.782012] 0x000000260000-0x000000280000 : &amp;quot;U-Boot Env&amp;quot;&lt;br /&gt;
[ 3131.788452] 0x000000280000-0x000000680000 : &amp;quot;Kernel&amp;quot;&lt;br /&gt;
[ 3131.796173] 0x000000680000-0x000010000000 : &amp;quot;File System&amp;quot;&lt;br /&gt;
[ 3131.911987] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver&lt;br /&gt;
[ 3131.918853] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller&lt;br /&gt;
[ 3131.925384] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 1&lt;br /&gt;
[ 3131.933166] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800&lt;br /&gt;
[ 3131.950286] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00&lt;br /&gt;
[ 3131.956695] usb usb1: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3131.962738] hub 1-0:1.0: USB hub found&lt;br /&gt;
[ 3131.966583] hub 1-0:1.0: 3 ports detected&lt;br /&gt;
[ 3131.972351] Initializing USB Mass Storage driver...&lt;br /&gt;
[ 3131.977630] usbcore: registered new interface driver usb-storage&lt;br /&gt;
[ 3131.983734] USB Mass Storage support registered.&lt;br /&gt;
[ 3131.988922] mice: PS/2 mouse device common for all mice&lt;br /&gt;
[ 3131.994750] input: gpio-keys as /devices/platform/gpio-keys/input/input0&lt;br /&gt;
[ 3132.003601] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-adapter/i2c-1/1-0049/twl4030_pwrbutton/input/input1&lt;br /&gt;
[ 3132.295349] usb 1-2: new high speed USB device using ehci-omap and address 2&lt;br /&gt;
[ 3132.459320] usb 1-2: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3132.465362] hub 1-2:1.0: USB hub found&lt;br /&gt;
[ 3132.469390] hub 1-2:1.0: 4 ports detected&lt;br /&gt;
[ 3132.763183] usb 1-2.1: new high speed USB device using ehci-omap and address 3&lt;br /&gt;
[ 3132.902313] usb 1-2.1: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3133.013031] i2c_omap i2c_omap.2: controller timed out&lt;br /&gt;
[ 3133.018157] rtc-ds1307: probe of 2-0068 failed with error -5&lt;br /&gt;
[ 3133.025421] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec&lt;br /&gt;
[ 3133.031738] Bluetooth: HCI UART driver ver 2.2&lt;br /&gt;
[ 3133.036254] Bluetooth: HCI H4 protocol initialized&lt;br /&gt;
[ 3133.041076] Bluetooth: HCI BCSP protocol initialized&lt;br /&gt;
[ 3133.046112] Bluetooth: HCILL protocol initialized&lt;br /&gt;
[ 3133.050842] Bluetooth: Broadcom Blutonium firmware driver ver 1.2&lt;br /&gt;
[ 3133.057281] usbcore: registered new interface driver bcm203x&lt;br /&gt;
[ 3133.063018] Bluetooth: Digianswer Bluetooth USB driver ver 0.10&lt;br /&gt;
[ 3133.069213] usbcore: registered new interface driver bpa10x&lt;br /&gt;
[ 3133.074829] Bluetooth: BlueFRITZ! USB driver ver 1.2&lt;br /&gt;
[ 3133.080078] usbcore: registered new interface driver bfusb&lt;br /&gt;
[ 3133.085845] Bluetooth: Generic Bluetooth USB driver ver 0.4&lt;br /&gt;
[ 3133.091796] usbcore: registered new interface driver btusb&lt;br /&gt;
[ 3133.097381] Bluetooth: Generic Bluetooth SDIO driver ver 0.1&lt;br /&gt;
[ 3133.104034] mmci-omap-hs mmci-omap-hs.0: Failed to get debounce clock&lt;br /&gt;
[ 3133.216308] mmci-omap-hs mmci-omap-hs.1: Failed to get debounce clock&lt;br /&gt;
[ 3133.222869] regulator: Unable to get requested regulator: vmmc_aux&lt;br /&gt;
[ 3133.231506] Registered led device: beagleboard::usr0&lt;br /&gt;
[ 3133.236785] Registered led device: beagleboard::usr1&lt;br /&gt;
[ 3133.247497] usbcore: registered new interface driver usbhid&lt;br /&gt;
[ 3133.253143] usbhid: v2.6:USB HID core driver&lt;br /&gt;
[ 3133.258453] Advanced Linux Sound Architecture Driver Version 1.0.18a.&lt;br /&gt;
[ 3133.265960] usbcore: registered new interface driver snd-usb-audio&lt;br /&gt;
[ 3133.272521] No device for DAI twl4030&lt;br /&gt;
[ 3133.276214] No device for DAI omap-mcbsp-dai-0&lt;br /&gt;
[ 3133.280883] No device for DAI omap-mcbsp-dai-1&lt;br /&gt;
[ 3133.285339] No device for DAI omap-mcbsp-dai-2&lt;br /&gt;
[ 3133.289947] No device for DAI omap-mcbsp-dai-3&lt;br /&gt;
[ 3133.294433] No device for DAI omap-mcbsp-dai-4&lt;br /&gt;
[ 3133.298919] OMAP3 Beagle SoC init&lt;br /&gt;
[ 3133.302642] TWL4030 Audio Codec init &lt;br /&gt;
[ 3133.307403] asoc: twl4030 &amp;lt;-&amp;gt; omap-mcbsp-dai-0 mapping ok&lt;br /&gt;
[ 3133.321624] ALSA device list:&lt;br /&gt;
[ 3133.324615]   #0: omap3beagle (twl4030)&lt;br /&gt;
[ 3133.329040] oprofile: using arm/armv7&lt;br /&gt;
[ 3133.332916] TCP cubic registered&lt;br /&gt;
[ 3133.336303] NET: Registered protocol family 17&lt;br /&gt;
[ 3133.340850] NET: Registered protocol family 15&lt;br /&gt;
[ 3133.345367] Bluetooth: L2CAP ver 2.11&lt;br /&gt;
[ 3133.349090] Bluetooth: L2CAP socket layer initialized&lt;br /&gt;
[ 3133.354156] Bluetooth: SCO (Voice Link) ver 0.6&lt;br /&gt;
[ 3133.358764] Bluetooth: SCO socket layer initialized&lt;br /&gt;
[ 3133.369445] Bluetooth: RFCOMM socket layer initialized&lt;br /&gt;
[ 3133.374755] Bluetooth: RFCOMM TTY layer initialized&lt;br /&gt;
[ 3133.379669] Bluetooth: RFCOMM ver 1.10&lt;br /&gt;
[ 3133.383453] Bluetooth: BNEP (Ethernet Emulation) ver 1.3&lt;br /&gt;
[ 3133.388824] Bluetooth: BNEP filters: protocol multicast&lt;br /&gt;
[ 3133.394073] Bluetooth: HIDP (Human Interface Emulation) ver 1.2&lt;br /&gt;
[ 3133.403198] RPC: Registered udp transport module.&lt;br /&gt;
[ 3133.407989] RPC: Registered tcp transport module.&lt;br /&gt;
[ 3133.412841] lib80211: common routines for IEEE802.11 drivers&lt;br /&gt;
[ 3133.418609] ThumbEE CPU extension supported.&lt;br /&gt;
[ 3133.423156] Power Management for TI OMAP3.&lt;br /&gt;
[ 3133.433868] Disabling unused clock &amp;quot;sr2_fck&amp;quot;&lt;br /&gt;
[ 3133.438262] Disabling unused clock &amp;quot;sr1_fck&amp;quot;&lt;br /&gt;
[ 3133.442596] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.447052] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.451538] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.456024] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.460510] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.464996] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.469482] Disabling unused clock &amp;quot;gpt2_ick&amp;quot;&lt;br /&gt;
[ 3133.473876] Disabling unused clock &amp;quot;gpt3_ick&amp;quot;&lt;br /&gt;
[ 3133.478271] Disabling unused clock &amp;quot;gpt4_ick&amp;quot;&lt;br /&gt;
[ 3133.482666] Disabling unused clock &amp;quot;gpt5_ick&amp;quot;&lt;br /&gt;
[ 3133.487060] Disabling unused clock &amp;quot;gpt6_ick&amp;quot;&lt;br /&gt;
[ 3133.491455] Disabling unused clock &amp;quot;gpt7_ick&amp;quot;&lt;br /&gt;
[ 3133.495849] Disabling unused clock &amp;quot;gpt8_ick&amp;quot;&lt;br /&gt;
[ 3133.500244] Disabling unused clock &amp;quot;gpt9_ick&amp;quot;&lt;br /&gt;
[ 3133.504608] Disabling unused clock &amp;quot;wdt3_ick&amp;quot;&lt;br /&gt;
[ 3133.509033] Disabling unused clock &amp;quot;wdt3_fck&amp;quot;&lt;br /&gt;
[ 3133.513641] Disabling unused clock &amp;quot;gpio2_dbck&amp;quot;&lt;br /&gt;
[ 3133.518188] Disabling unused clock &amp;quot;gpio3_dbck&amp;quot;&lt;br /&gt;
[ 3133.522766] Disabling unused clock &amp;quot;gpio4_dbck&amp;quot;&lt;br /&gt;
[ 3133.527343] Disabling unused clock &amp;quot;gpio5_dbck&amp;quot;&lt;br /&gt;
[ 3133.531921] Disabling unused clock &amp;quot;gpio6_dbck&amp;quot;&lt;br /&gt;
[ 3133.536499] Disabling unused clock &amp;quot;gpt9_fck&amp;quot;&lt;br /&gt;
[ 3133.540863] Disabling unused clock &amp;quot;gpt8_fck&amp;quot;&lt;br /&gt;
[ 3133.545288] Disabling unused clock &amp;quot;gpt7_fck&amp;quot;&lt;br /&gt;
[ 3133.549652] Disabling unused clock &amp;quot;gpt6_fck&amp;quot;&lt;br /&gt;
[ 3133.554077] Disabling unused clock &amp;quot;gpt5_fck&amp;quot;&lt;br /&gt;
[ 3133.558441] Disabling unused clock &amp;quot;gpt4_fck&amp;quot;&lt;br /&gt;
[ 3133.562866] Disabling unused clock &amp;quot;gpt3_fck&amp;quot;&lt;br /&gt;
[ 3133.567230] Disabling unused clock &amp;quot;gpt2_fck&amp;quot;&lt;br /&gt;
[ 3133.571655] Disabling unused clock &amp;quot;gpt1_ick&amp;quot;&lt;br /&gt;
[ 3133.576049] Disabling unused clock &amp;quot;wdt1_ick&amp;quot;&lt;br /&gt;
[ 3133.580413] Disabling unused clock &amp;quot;wdt2_ick&amp;quot;&lt;br /&gt;
[ 3133.584838] Disabling unused clock &amp;quot;wdt2_fck&amp;quot;&lt;br /&gt;
[ 3133.589202] Disabling unused clock &amp;quot;gpio1_dbck&amp;quot;&lt;br /&gt;
[ 3133.593780] Disabling unused clock &amp;quot;gpt1_fck&amp;quot;&lt;br /&gt;
[ 3133.598175] Disabling unused clock &amp;quot;cam_ick&amp;quot;&lt;br /&gt;
[ 3133.602508] Disabling unused clock &amp;quot;cam_mclk&amp;quot;&lt;br /&gt;
[ 3133.607116] Disabling unused clock &amp;quot;des1_ick&amp;quot;&lt;br /&gt;
[ 3133.611511] Disabling unused clock &amp;quot;sha11_ick&amp;quot;&lt;br /&gt;
[ 3133.615997] Disabling unused clock &amp;quot;rng_ick&amp;quot;&lt;br /&gt;
[ 3133.620300] Disabling unused clock &amp;quot;aes1_ick&amp;quot;&lt;br /&gt;
[ 3133.624694] Disabling unused clock &amp;quot;ssi_ick&amp;quot;&lt;br /&gt;
[ 3133.628997] Disabling unused clock &amp;quot;mailboxes_ick&amp;quot;&lt;br /&gt;
[ 3133.633850] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.638336] Disabling unused clock &amp;quot;mcbsp_ick&amp;quot;&lt;br /&gt;
[ 3133.642791] Disabling unused clock &amp;quot;gpt10_ick&amp;quot;&lt;br /&gt;
[ 3133.647277] Disabling unused clock &amp;quot;gpt11_ick&amp;quot;&lt;br /&gt;
[ 3133.651763] Disabling unused clock &amp;quot;hdq_ick&amp;quot;&lt;br /&gt;
[ 3133.656066] Disabling unused clock &amp;quot;mspro_ick&amp;quot;&lt;br /&gt;
[ 3133.660552] Disabling unused clock &amp;quot;des2_ick&amp;quot;&lt;br /&gt;
[ 3133.664947] Disabling unused clock &amp;quot;sha12_ick&amp;quot;&lt;br /&gt;
[ 3133.669433] Disabling unused clock &amp;quot;aes2_ick&amp;quot;&lt;br /&gt;
[ 3133.673828] Disabling unused clock &amp;quot;icr_ick&amp;quot;&lt;br /&gt;
[ 3133.678131] Disabling unused clock &amp;quot;pka_ick&amp;quot;&lt;br /&gt;
[ 3133.682434] Disabling unused clock &amp;quot;ssi_ssr_fck&amp;quot;&lt;br /&gt;
[ 3133.687103] Disabling unused clock &amp;quot;hdq_fck&amp;quot;&lt;br /&gt;
[ 3133.691406] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.695892] Disabling unused clock &amp;quot;mcbsp_fck&amp;quot;&lt;br /&gt;
[ 3133.700561] Disabling unused clock &amp;quot;mspro_fck&amp;quot;&lt;br /&gt;
[ 3133.705047] Disabling unused clock &amp;quot;gpt11_fck&amp;quot;&lt;br /&gt;
[ 3133.709533] Disabling unused clock &amp;quot;gpt10_fck&amp;quot;&lt;br /&gt;
[ 3133.713989] Disabling unused clock &amp;quot;dpll4_m6x2_ck&amp;quot;&lt;br /&gt;
[ 3133.718841] Disabling unused clock &amp;quot;dpll3_m3x2_ck&amp;quot;&lt;br /&gt;
[ 3133.723693] Disabling unused clock &amp;quot;sys_clkout1&amp;quot;&lt;br /&gt;
[ 3133.728363] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 1&lt;br /&gt;
[ 3133.742828] registered taskstats version 1&lt;br /&gt;
[ 3133.764251] Console: switching to colour frame buffer device 80x30&lt;br /&gt;
[ 3133.778198] clock: clksel_round_rate_div: dpll4_m4_ck target_rate 48000000&lt;br /&gt;
[ 3133.785125] clock: new_div = 9, new_rate = 48000000&lt;br /&gt;
[ 3133.795593] drivers/rtc/hctosys.c: unable to open rtc device (rtc0)&lt;br /&gt;
[ 3133.887939] mmc0: new high speed SDHC card at address a9ed&lt;br /&gt;
[ 3133.894042] mmcblk0: mmc0:a9ed SD08G 7.42 GiB &lt;br /&gt;
[ 3133.898986]  mmcblk0: p1 p2&lt;br /&gt;
[ 3134.070312] eth0 (asix): not using net_device_ops yet&lt;br /&gt;
[ 3134.076110] eth0: register 'asix' at usb-ehci-omap.0-2.1, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c3:f3&lt;br /&gt;
[ 3134.134582] kjournald starting.  Commit interval 5 seconds&lt;br /&gt;
[ 3134.169372] usb 1-2.4: new high speed USB device using ehci-omap and address 4&lt;br /&gt;
[ 3134.295684] usb 1-2.4: configuration #1 chosen from 1 choice&lt;br /&gt;
[ 3134.301910] hub 1-2.4:1.0: USB hub found&lt;br /&gt;
[ 3134.305999] hub 1-2.4:1.0: 4 ports detected&lt;br /&gt;
[ 3134.390747] EXT3 FS on mmcblk0p2, internal journal&lt;br /&gt;
[ 3134.395599] EXT3-fs: mounted filesystem with ordered data mode.&lt;br /&gt;
[ 3134.401641] VFS: Mounted root (ext3 filesystem) on device 179:2.&lt;br /&gt;
[ 3134.407836] Freeing init memory: 204K&lt;br /&gt;
&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
&lt;br /&gt;
Starting udev[ 3140.940948] twl4030_rtc twl4030_rtc: rtc core: registered twl4030_rtc as rtc0&lt;br /&gt;
[ 3140.948486] twl4030_rtc twl4030_rtc: Power up reset detected.&lt;br /&gt;
[ 3141.017303] twl4030_rtc twl4030_rtc: Enabling TWL4030-RTC.&lt;br /&gt;
[ 3141.952758] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 0&lt;br /&gt;
[ 3141.960601] Buffer I/O error on device mtdblock0, logical block 0&lt;br /&gt;
[ 3142.023376] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 8&lt;br /&gt;
[ 3142.031188] Buffer I/O error on device mtdblock0, logical block 1&lt;br /&gt;
[ 3142.067901] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 16&lt;br /&gt;
[ 3142.075836] Buffer I/O error on device mtdblock0, logical block 2&lt;br /&gt;
[ 3142.100311] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 24&lt;br /&gt;
[ 3142.108215] Buffer I/O error on device mtdblock0, logical block 3&lt;br /&gt;
[ 3142.139556] uncorrectable error : &amp;lt;3&amp;gt;end_request: I/O error, dev mtdblock0, sector 0&lt;br /&gt;
[ 3142.162719] Buffer I/O error on device mtdblock0, logical block 0&lt;br /&gt;
 and populating dev cache&lt;br /&gt;
Remounting root file system...&lt;br /&gt;
[ 3147.624511] NET: Registered protocol family 10&lt;br /&gt;
[ 3147.699707] NET: Registered protocol family 23&lt;br /&gt;
[ 3147.727874] IrCOMM protocol (Dag Brattli)&lt;br /&gt;
Unknown HZ value! (70) Assume 100.&lt;br /&gt;
ALSA: Restoring mixer settings...&lt;br /&gt;
Configuring network interfaces... [ 3149.568145] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
eth0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
udhcpc (v1.13.2) started&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
Sending discover...&lt;br /&gt;
[ 3149.732147] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
Sending discover...&lt;br /&gt;
Sending select for 192.168.1.108...&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
&lt;br /&gt;
INIT: Entering runlevel: 5&lt;br /&gt;
&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-4&lt;br /&gt;
| 5-17&lt;br /&gt;
| Console Setup Code Snippet from .../kernel/printk.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
 * Set up a list of consoles.  Called from init/main.c&lt;br /&gt;
 */&lt;br /&gt;
static int __init console_setup(char *str)&lt;br /&gt;
{&lt;br /&gt;
        char buf[sizeof(console_cmdline[0].name) + 4]; /* 4 for index */&lt;br /&gt;
        char *s, *options, *brl_options = NULL;&lt;br /&gt;
        int idx;&lt;br /&gt;
&lt;br /&gt;
#ifdef CONFIG_A11Y_BRAILLE_CONSOLE&lt;br /&gt;
        if (!memcmp(str, &amp;quot;brl,&amp;quot;, 4)) {&lt;br /&gt;
                brl_options = &amp;quot;&amp;quot;;&lt;br /&gt;
                str += 4;&lt;br /&gt;
        } else if (!memcmp(str, &amp;quot;brl=&amp;quot;, 4)) {&lt;br /&gt;
                brl_options = str + 4;&lt;br /&gt;
                str = strchr(brl_options, ',');&lt;br /&gt;
                if (!str) {&lt;br /&gt;
                        printk(KERN_ERR &amp;quot;need port name after brl=\n&amp;quot;);&lt;br /&gt;
                        return 1;&lt;br /&gt;
                }&lt;br /&gt;
                *(str++) = 0;&lt;br /&gt;
        }&lt;br /&gt;
#endif&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * Decode str into name, index, options.&lt;br /&gt;
         */&lt;br /&gt;
        if (str[0] &amp;gt;= '0' &amp;amp;&amp;amp; str[0] &amp;lt;= '9') {&lt;br /&gt;
                strcpy(buf, &amp;quot;ttyS&amp;quot;);&lt;br /&gt;
                strncpy(buf + 4, str, sizeof(buf) - 5);&lt;br /&gt;
        } else {&lt;br /&gt;
                strncpy(buf, str, sizeof(buf) - 1);&lt;br /&gt;
        }&lt;br /&gt;
        buf[sizeof(buf) - 1] = 0;&lt;br /&gt;
        if ((options = strchr(str, ',')) != NULL)&lt;br /&gt;
                *(options++) = 0;&lt;br /&gt;
#ifdef __sparc__&lt;br /&gt;
        if (!strcmp(str, &amp;quot;ttya&amp;quot;))&lt;br /&gt;
                strcpy(buf, &amp;quot;ttyS0&amp;quot;);&lt;br /&gt;
        if (!strcmp(str, &amp;quot;ttyb&amp;quot;))&lt;br /&gt;
                strcpy(buf, &amp;quot;ttyS1&amp;quot;);&lt;br /&gt;
#endif&lt;br /&gt;
        for (s = buf; *s; s++)&lt;br /&gt;
                if ((*s &amp;gt;= '0' &amp;amp;&amp;amp; *s &amp;lt;= '9') || *s == ',')&lt;br /&gt;
                        break;&lt;br /&gt;
        idx = simple_strtoul(s, NULL, 10);&lt;br /&gt;
        *s = 0;&lt;br /&gt;
&lt;br /&gt;
        __add_preferred_console(buf, idx, options, brl_options);&lt;br /&gt;
        console_set_on_cmdline = 1;&lt;br /&gt;
        return 1;&lt;br /&gt;
}&lt;br /&gt;
__setup(&amp;quot;console=&amp;quot;, console_setup);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-5&lt;br /&gt;
| 5-18&lt;br /&gt;
| Family of __setup Macro Definitions from .../include/linux/init.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#define __setup_param(str, unique_id, fn, early)                        \&lt;br /&gt;
        static char __setup_str_##unique_id[] __initdata __aligned(1) = str; \&lt;br /&gt;
        static struct obs_kernel_param __setup_##unique_id      \&lt;br /&gt;
                __used __section(.init.setup)                   \&lt;br /&gt;
                __attribute__((aligned((sizeof(long)))))        \&lt;br /&gt;
                = { __setup_str_##unique_id, fn, early }&lt;br /&gt;
&lt;br /&gt;
#define __setup(str, fn)                                        \&lt;br /&gt;
        __setup_param(str, fn, fn, 0)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-6&lt;br /&gt;
| 5-19&lt;br /&gt;
| Kernel Command Line Processing&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
extern struct obs_kernel_param __setup_start[], __setup_end[];&lt;br /&gt;
&lt;br /&gt;
static int __init obsolete_checksetup(char *line)&lt;br /&gt;
{&lt;br /&gt;
        struct obs_kernel_param *p;&lt;br /&gt;
        int had_early_param = 0;&lt;br /&gt;
&lt;br /&gt;
        p = __setup_start;&lt;br /&gt;
        do {&lt;br /&gt;
                int n = strlen(p-&amp;gt;str);&lt;br /&gt;
                if (!strncmp(line, p-&amp;gt;str, n)) {&lt;br /&gt;
                        if (p-&amp;gt;early) {&lt;br /&gt;
                                /* Already done in parse_early_param?&lt;br /&gt;
                                 * (Needs exact match on param part).&lt;br /&gt;
                                 * Keep iterating, as we can have early&lt;br /&gt;
                                 * params and __setups of same names 8( */&lt;br /&gt;
                                if (line[n] == '\0' || line[n] == '=')&lt;br /&gt;
                                        had_early_param = 1;&lt;br /&gt;
                        } else if (!p-&amp;gt;setup_func) {&lt;br /&gt;
                                printk(KERN_WARNING &amp;quot;Parameter %s is obsolete,&amp;quot;&lt;br /&gt;
                                       &amp;quot; ignored\n&amp;quot;, p-&amp;gt;str);&lt;br /&gt;
                                return 1;&lt;br /&gt;
                        } else if (p-&amp;gt;setup_func(line + n))&lt;br /&gt;
                                return 1;&lt;br /&gt;
                }&lt;br /&gt;
                p++;&lt;br /&gt;
        } while (p &amp;lt; __setup_end);&lt;br /&gt;
&lt;br /&gt;
        return had_early_param;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-7&lt;br /&gt;
| 5-22&lt;br /&gt;
| Example Initialization Routine - .../arch/arm/kernel/setup.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
static void (*init_machine)(void) __initdata;&lt;br /&gt;
&lt;br /&gt;
static int __init customize_machine(void)&lt;br /&gt;
{&lt;br /&gt;
        /* customizes platform devices, or adds new ones */&lt;br /&gt;
        if (init_machine)&lt;br /&gt;
                init_machine();&lt;br /&gt;
        return 0;&lt;br /&gt;
}&lt;br /&gt;
arch_initcall(customize_machine);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-8&lt;br /&gt;
| 5-22&lt;br /&gt;
| initcall Family of Macros - .../include/linux/init.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#define __define_initcall(level,fn,id) \&lt;br /&gt;
        static initcall_t __initcall_##fn##id __used \&lt;br /&gt;
        __attribute__((__section__(&amp;quot;.initcall&amp;quot; level &amp;quot;.init&amp;quot;))) = fn&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * Early initcalls run before initializing SMP.&lt;br /&gt;
 *&lt;br /&gt;
 * Only for built-in code, not modules.&lt;br /&gt;
 */&lt;br /&gt;
#define early_initcall(fn)              __define_initcall(&amp;quot;early&amp;quot;,fn,early)&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
 * A &amp;quot;pure&amp;quot; initcall has no dependencies on anything else, and purely&lt;br /&gt;
 * initializes variables that couldn't be statically initialized.&lt;br /&gt;
 *&lt;br /&gt;
 * This only exists for built-in code, not for modules.&lt;br /&gt;
 */&lt;br /&gt;
#define pure_initcall(fn)               __define_initcall(&amp;quot;0&amp;quot;,fn,0)&lt;br /&gt;
&lt;br /&gt;
#define core_initcall(fn)               __define_initcall(&amp;quot;1&amp;quot;,fn,1)&lt;br /&gt;
#define core_initcall_sync(fn)          __define_initcall(&amp;quot;1s&amp;quot;,fn,1s)&lt;br /&gt;
#define postcore_initcall(fn)           __define_initcall(&amp;quot;2&amp;quot;,fn,2)&lt;br /&gt;
#define postcore_initcall_sync(fn)      __define_initcall(&amp;quot;2s&amp;quot;,fn,2s)&lt;br /&gt;
#define arch_initcall(fn)               __define_initcall(&amp;quot;3&amp;quot;,fn,3)&lt;br /&gt;
#define arch_initcall_sync(fn)          __define_initcall(&amp;quot;3s&amp;quot;,fn,3s)&lt;br /&gt;
#define subsys_initcall(fn)             __define_initcall(&amp;quot;4&amp;quot;,fn,4)&lt;br /&gt;
#define subsys_initcall_sync(fn)        __define_initcall(&amp;quot;4s&amp;quot;,fn,4s)&lt;br /&gt;
#define fs_initcall(fn)                 __define_initcall(&amp;quot;5&amp;quot;,fn,5)&lt;br /&gt;
#define fs_initcall_sync(fn)            __define_initcall(&amp;quot;5s&amp;quot;,fn,5s)&lt;br /&gt;
#define rootfs_initcall(fn)             __define_initcall(&amp;quot;rootfs&amp;quot;,fn,rootfs)&lt;br /&gt;
#define device_initcall(fn)             __define_initcall(&amp;quot;6&amp;quot;,fn,6)&lt;br /&gt;
#define device_initcall_sync(fn)        __define_initcall(&amp;quot;6s&amp;quot;,fn,6s)&lt;br /&gt;
#define late_initcall(fn)               __define_initcall(&amp;quot;7&amp;quot;,fn,7)&lt;br /&gt;
#define late_initcall_sync(fn)          __define_initcall(&amp;quot;7s&amp;quot;,fn,7s)&lt;br /&gt;
&lt;br /&gt;
#define __initcall(fn) device_initcall(fn)&lt;br /&gt;
&lt;br /&gt;
#define __exitcall(fn) \&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-9&lt;br /&gt;
| 5-24&lt;br /&gt;
| Creation of Kernel init Thread&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
static noinline void __init_refok rest_init(void)&lt;br /&gt;
        __releases(kernel_lock)&lt;br /&gt;
{&lt;br /&gt;
        int pid;&lt;br /&gt;
&lt;br /&gt;
        kernel_thread(kernel_init, NULL, CLONE_FS | CLONE_SIGHAND);&lt;br /&gt;
        numa_default_policy();&lt;br /&gt;
        pid = kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);&lt;br /&gt;
        kthreadd_task = find_task_by_pid_ns(pid, &amp;amp;init_pid_ns);&lt;br /&gt;
        unlock_kernel();&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * The boot idle thread must execute schedule()&lt;br /&gt;
         * at least once to get things moving:&lt;br /&gt;
         */&lt;br /&gt;
        init_idle_bootup_task(current);&lt;br /&gt;
        rcu_scheduler_starting();&lt;br /&gt;
        preempt_enable_no_resched();&lt;br /&gt;
        schedule();&lt;br /&gt;
        preempt_disable();&lt;br /&gt;
&lt;br /&gt;
        /* Call into cpu_idle with preempt disabled */&lt;br /&gt;
        cpu_idle();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-10&lt;br /&gt;
| 5-25&lt;br /&gt;
| Initialization via initcalls&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
extern initcall_t __initcall_start[], __initcall_end[], __early_initcall_end[];&lt;br /&gt;
&lt;br /&gt;
static void __init do_initcalls(void)&lt;br /&gt;
{&lt;br /&gt;
        initcall_t *call;&lt;br /&gt;
&lt;br /&gt;
        for (call = __early_initcall_end; call &amp;lt; __initcall_end; call++)&lt;br /&gt;
                do_one_initcall(*call);&lt;br /&gt;
&lt;br /&gt;
        /* Make sure there is no pending stuff from the initcall sequence */&lt;br /&gt;
        flush_scheduled_work();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-11&lt;br /&gt;
| 5-27&lt;br /&gt;
| Final Boot Steps from main.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
static noinline int init_post(void)&lt;br /&gt;
{&lt;br /&gt;
        /* need to finish all async __init code before freeing the memory */&lt;br /&gt;
        async_synchronize_full();&lt;br /&gt;
        free_initmem();&lt;br /&gt;
        unlock_kernel();&lt;br /&gt;
        mark_rodata_ro();&lt;br /&gt;
        system_state = SYSTEM_RUNNING;&lt;br /&gt;
        numa_default_policy();&lt;br /&gt;
&lt;br /&gt;
        if (sys_open((const char __user *) &amp;quot;/dev/console&amp;quot;, O_RDWR, 0) &amp;lt; 0)&lt;br /&gt;
                printk(KERN_WARNING &amp;quot;Warning: unable to open an initial console.\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        (void) sys_dup(0);&lt;br /&gt;
        (void) sys_dup(0);&lt;br /&gt;
&lt;br /&gt;
        current-&amp;gt;signal-&amp;gt;flags |= SIGNAL_UNKILLABLE;&lt;br /&gt;
&lt;br /&gt;
        if (ramdisk_execute_command) {&lt;br /&gt;
                run_init_process(ramdisk_execute_command);&lt;br /&gt;
                printk(KERN_WARNING &amp;quot;Failed to execute %s\n&amp;quot;,&lt;br /&gt;
                                ramdisk_execute_command);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
         * We try each of these until one succeeds.&lt;br /&gt;
         *&lt;br /&gt;
         * The Bourne shell can be used instead of init if we are&lt;br /&gt;
         * trying to recover a really broken machine.&lt;br /&gt;
         */&lt;br /&gt;
        if (execute_command) {&lt;br /&gt;
                run_init_process(execute_command);&lt;br /&gt;
                printk(KERN_WARNING &amp;quot;Failed to execute %s.  Attempting &amp;quot;&lt;br /&gt;
                                        &amp;quot;defaults...\n&amp;quot;, execute_command);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
...&lt;br /&gt;
        run_init_process(&amp;quot;/sbin/init&amp;quot;);&lt;br /&gt;
        run_init_process(&amp;quot;/etc/init&amp;quot;);&lt;br /&gt;
        run_init_process(&amp;quot;/bin/init&amp;quot;);&lt;br /&gt;
        run_init_process(&amp;quot;/bin/sh&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        panic(&amp;quot;No init found.  Try passing init= option to kernel.&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 6 ==&lt;br /&gt;
&lt;br /&gt;
== Chapter 8 ==&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-30T00:40:48Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: Added some more listings and shell for chapter 5 listings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Listings =&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
??&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o&lt;br /&gt;
total 764K&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c&lt;br /&gt;
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c&lt;br /&gt;
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c&lt;br /&gt;
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c&lt;br /&gt;
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c&lt;br /&gt;
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 4-17&lt;br /&gt;
| Snippet from Linux 2.6 .config&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
1872 #&lt;br /&gt;
1873 # USB Input Devices&lt;br /&gt;
1874 #&lt;br /&gt;
1875 CONFIG_USB_HID=y&lt;br /&gt;
1876 # CONFIG_HID_PID is not set&lt;br /&gt;
1877 # CONFIG_USB_HIDDEV is not set&lt;br /&gt;
1878 &lt;br /&gt;
1879 #&lt;br /&gt;
1880 # Special HID drivers&lt;br /&gt;
1881 #&lt;br /&gt;
1882 CONFIG_HID_COMPAT=y&lt;br /&gt;
1883 CONFIG_HID_A4TECH=y&lt;br /&gt;
1884 CONFIG_HID_APPLE=y&lt;br /&gt;
1885 CONFIG_HID_BELKIN=y&lt;br /&gt;
1886 CONFIG_HID_CHERRY=y&lt;br /&gt;
1887 CONFIG_HID_CHICONY=y&lt;br /&gt;
1888 CONFIG_HID_CYPRESS=y&lt;br /&gt;
1889 CONFIG_HID_EZKEY=y&lt;br /&gt;
1890 CONFIG_HID_GYRATION=y&lt;br /&gt;
1891 CONFIG_HID_LOGITECH=y&lt;br /&gt;
1892 # CONFIG_LOGITECH_FF is not set&lt;br /&gt;
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-5&lt;br /&gt;
| 4-21&lt;br /&gt;
| Linux autoconf.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % cat include/linux/autoconf.h| grep CONFIG_USB&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETMOTORCONTROL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_LEGOTOWER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_T613_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_RNDIS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_W9968CF_MODULE 1&lt;br /&gt;
#define CONFIG_USB_RTL8150 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_KAWETH 1&lt;br /&gt;
#define CONFIG_USB_ZERO_HNPTEST 1&lt;br /&gt;
#define CONFIG_USB_CXACRU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_ARK3116_MODULE 1&lt;br /&gt;
#define CONFIG_USB_G_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_PLUSB 1&lt;br /&gt;
#define CONFIG_USB_GPIO_VBUS 1&lt;br /&gt;
#define CONFIG_USB_EHCI_TT_NEWSCHED 1&lt;br /&gt;
#define CONFIG_USB_ACM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_EHCI 1&lt;br /&gt;
#define CONFIG_USB_USBNET 1&lt;br /&gt;
#define CONFIG_USB_LCD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_BELKIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LED_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1&lt;br /&gt;
#define CONFIG_USB_HID 1&lt;br /&gt;
#define CONFIG_USB_GADGET_VBUS_DRAW 2&lt;br /&gt;
#define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OTG_UTILS 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_OHCI 1&lt;br /&gt;
#define CONFIG_USB_CDC_COMPOSITE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GARMIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7720_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_NAVMAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_FINEPIX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7840_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TMC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OTI6858_MODULE 1&lt;br /&gt;
#define CONFIG_USB_WDM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MON 1&lt;br /&gt;
#define CONFIG_USB_OTG 1&lt;br /&gt;
#define CONFIG_USB_PWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETKIT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ET61X251_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_XIRCOM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SPEEDTOUCH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_CON 1&lt;br /&gt;
#define CONFIG_USB_NET_NET1080 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTION_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZR364XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_MCS7830 1&lt;br /&gt;
#define CONFIG_USB_VST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MARS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EHCI_ROOT_HUB_TT 1&lt;br /&gt;
#define CONFIG_USB_PHIDGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CYPRESS_CY7C63_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV534_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPW_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_AX8817X 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV519_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IUU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STV06XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1&lt;br /&gt;
#define CONFIG_USB_STORAGE 1&lt;br /&gt;
#define CONFIG_USB_IDMOUSE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PEGASUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1&lt;br /&gt;
#define CONFIG_USB_M5602_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CATC 1&lt;br /&gt;
#define CONFIG_USB_CYTHERM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GENERIC 1&lt;br /&gt;
#define CONFIG_USB_IRDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_S2255_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUSPEND 1&lt;br /&gt;
#define CONFIG_USB_XUSBATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TRANCEVIBRATOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SE401_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MIDI_GADGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_ZAURUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OMNINET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC207_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTICON_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OV511_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUPPORT 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SAFE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZERO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TEST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CH341_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI26_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI62_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_HP4X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGETFS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_CDC_SUBSET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1&lt;br /&gt;
#define CONFIG_USB_EHCI_HCD 1&lt;br /&gt;
#define CONFIG_USB_DEVICEFS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_TV8532_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPAQ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_CONEX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ZC3XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MCT_U232_MODULE 1&lt;br /&gt;
#define CONFIG_USB_KONICAWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KLSI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ALI_M5632 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_VC032X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_SELECTED 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_STK014_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OXU210HP_HCD 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ETOMS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_QUICKCAM_MESSENGER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_WLAN 1&lt;br /&gt;
#define CONFIG_USB_KC2190 1&lt;br /&gt;
#define CONFIG_USB_AN2720 1&lt;br /&gt;
#define CONFIG_USB_EPSON2888 1&lt;br /&gt;
#define CONFIG_USB_ZC0301_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZD1201 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_HOST 1&lt;br /&gt;
#define CONFIG_USB_G_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DEBUG_FS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC7311_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VICAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARMLINUX 1&lt;br /&gt;
#define CONFIG_USB_ATMEL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CP2101_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_SOC 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_OTG 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_PL2303_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1&lt;br /&gt;
#define CONFIG_USB_DEVICE_CLASS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DEBUG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MPR 1&lt;br /&gt;
#define CONFIG_USB_NET_CDCETHER 1&lt;br /&gt;
#define CONFIG_USB_EZUSB 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA500_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA501_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_BERRY_CHARGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EMPEG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA505_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA506_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA561_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA508_MODULE 1&lt;br /&gt;
#define CONFIG_USB_FILE_STORAGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETSERVO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1&lt;br /&gt;
#define CONFIG_USB_UEAGLEATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_INVENTRA_DMA 1&lt;br /&gt;
#define CONFIG_USB_NET_SMSC95XX 1&lt;br /&gt;
#define CONFIG_USB_STV680_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXB_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STKWEBCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DUALSPEED 1&lt;br /&gt;
#define CONFIG_USB_FTDI_ELAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_DM9601 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXJ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_IBMCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SN9C102_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_VISOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_GL620A 1&lt;br /&gt;
#define CONFIG_USB_BELKIN 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| 4-22&lt;br /&gt;
| Makefile Targets&lt;br /&gt;
| &amp;lt;pre&amp;gt;Cleaning targets:&lt;br /&gt;
  clean		  - Remove most generated files but keep the config and&lt;br /&gt;
                    enough build support to build external modules&lt;br /&gt;
  mrproper	  - Remove all generated files + config + various backup files&lt;br /&gt;
  distclean	  - mrproper + remove editor backup and patch files&lt;br /&gt;
&lt;br /&gt;
Configuration targets:&lt;br /&gt;
  config	  - Update current config utilising a line-oriented program&lt;br /&gt;
  menuconfig	  - Update current config utilising a menu based program&lt;br /&gt;
  xconfig	  - Update current config utilising a QT based front-end&lt;br /&gt;
  gconfig	  - Update current config utilising a GTK based front-end&lt;br /&gt;
  oldconfig	  - Update current config utilising a provided .config as base&lt;br /&gt;
  silentoldconfig - Same as oldconfig, but quietly&lt;br /&gt;
  randconfig	  - New config with random answer to all options&lt;br /&gt;
  defconfig	  - New config with default answer to all options&lt;br /&gt;
  allmodconfig	  - New config selecting modules when possible&lt;br /&gt;
  allyesconfig	  - New config where all options are accepted with yes&lt;br /&gt;
  allnoconfig	  - New config where all options are answered with no&lt;br /&gt;
&lt;br /&gt;
Other generic targets:&lt;br /&gt;
  all		  - Build all targets marked with [*]&lt;br /&gt;
* vmlinux	  - Build the bare kernel&lt;br /&gt;
* modules	  - Build all modules&lt;br /&gt;
  modules_install - Install all modules to INSTALL_MOD_PATH (default: /)&lt;br /&gt;
  firmware_install- Install all firmware to INSTALL_FW_PATH&lt;br /&gt;
                    (default: $(INSTALL_MOD_PATH)/lib/firmware)&lt;br /&gt;
  dir/            - Build all files in dir and below&lt;br /&gt;
  dir/file.[ois]  - Build specified target only&lt;br /&gt;
  dir/file.ko     - Build module including final link&lt;br /&gt;
  prepare         - Set up for building external modules&lt;br /&gt;
  tags/TAGS	  - Generate tags file for editors&lt;br /&gt;
  cscope	  - Generate cscope index&lt;br /&gt;
  kernelrelease	  - Output the release version string&lt;br /&gt;
  kernelversion	  - Output the version stored in Makefile&lt;br /&gt;
  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH&lt;br /&gt;
                    (default: /home/users/collinjc/oe/angstrom-dev-backup2/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r46/git/usr)&lt;br /&gt;
&lt;br /&gt;
Static analysers&lt;br /&gt;
  checkstack      - Generate a list of stack hogs&lt;br /&gt;
  namespacecheck  - Name space analysis on compiled kernel&lt;br /&gt;
  versioncheck    - Sanity check on version.h usage&lt;br /&gt;
  includecheck    - Check for duplicate included header files&lt;br /&gt;
  export_report   - List the usages of all exported symbols&lt;br /&gt;
  headers_check   - Sanity check on exported headers&lt;br /&gt;
  headerdep       - Detect inclusion cycles in headers&lt;br /&gt;
&lt;br /&gt;
Kernel packaging:&lt;br /&gt;
  rpm-pkg         - Build both source and binary RPM kernel packages&lt;br /&gt;
  binrpm-pkg      - Build only the binary kernel package&lt;br /&gt;
  deb-pkg         - Build the kernel as an deb package&lt;br /&gt;
  tar-pkg         - Build the kernel as an uncompressed tarball&lt;br /&gt;
  targz-pkg       - Build the kernel as a gzip compressed tarball&lt;br /&gt;
  tarbz2-pkg      - Build the kernel as a bzip2 compressed tarball&lt;br /&gt;
&lt;br /&gt;
Documentation targets:&lt;br /&gt;
 Linux kernel internal documentation in different formats:&lt;br /&gt;
  htmldocs        - HTML&lt;br /&gt;
  installmandocs  - install man pages generated by mandocs&lt;br /&gt;
  mandocs         - man pages&lt;br /&gt;
  pdfdocs         - PDF&lt;br /&gt;
  psdocs          - Postscript&lt;br /&gt;
  xmldocs         - XML DocBook&lt;br /&gt;
&lt;br /&gt;
Architecture specific targets (arm):&lt;br /&gt;
* zImage        - Compressed kernel image (arch/arm/boot/zImage)&lt;br /&gt;
  Image         - Uncompressed kernel image (arch/arm/boot/Image)&lt;br /&gt;
* xipImage      - XIP kernel image, if configured (arch/arm/boot/xipImage)&lt;br /&gt;
  uImage        - U-Boot wrapped zImage&lt;br /&gt;
  bootpImage    - Combined zImage and initial RAM disk&lt;br /&gt;
                  (supply initrd image via make variable INITRD=&amp;lt;path&amp;gt;)&lt;br /&gt;
  install       - Install uncompressed kernel&lt;br /&gt;
  zinstall      - Install compressed kernel&lt;br /&gt;
                  Install using (your) ~/bin/installkernel or&lt;br /&gt;
                  (distribution) /sbin/installkernel or&lt;br /&gt;
                  install to $(INSTALL_PATH) and run lilo&lt;br /&gt;
&lt;br /&gt;
  afeb9260_defconfig       - Build for afeb9260&lt;br /&gt;
  am200epdkit_defconfig    - Build for am200epdkit&lt;br /&gt;
  ams_delta_defconfig      - Build for ams_delta&lt;br /&gt;
  assabet_defconfig        - Build for assabet&lt;br /&gt;
  at91cap9adk_defconfig    - Build for at91cap9adk&lt;br /&gt;
  at91rm9200dk_defconfig   - Build for at91rm9200dk&lt;br /&gt;
  at91rm9200ek_defconfig   - Build for at91rm9200ek&lt;br /&gt;
  at91sam9260ek_defconfig  - Build for at91sam9260ek&lt;br /&gt;
  at91sam9261ek_defconfig  - Build for at91sam9261ek&lt;br /&gt;
  at91sam9263ek_defconfig  - Build for at91sam9263ek&lt;br /&gt;
  at91sam9g20ek_defconfig  - Build for at91sam9g20ek&lt;br /&gt;
  at91sam9rlek_defconfig   - Build for at91sam9rlek&lt;br /&gt;
  ateb9200_defconfig       - Build for ateb9200&lt;br /&gt;
  badge4_defconfig         - Build for badge4&lt;br /&gt;
  cam60_defconfig          - Build for cam60&lt;br /&gt;
  carmeva_defconfig        - Build for carmeva&lt;br /&gt;
  cerfcube_defconfig       - Build for cerfcube&lt;br /&gt;
  cm_x300_defconfig        - Build for cm_x300&lt;br /&gt;
  colibri_defconfig        - Build for colibri&lt;br /&gt;
  collie_defconfig         - Build for collie&lt;br /&gt;
  corgi_defconfig          - Build for corgi&lt;br /&gt;
  csb337_defconfig         - Build for csb337&lt;br /&gt;
  csb637_defconfig         - Build for csb637&lt;br /&gt;
  dss_omap3_beagle_defconfig - Build for dss_omap3_beagle&lt;br /&gt;
  dss_omap_3430sdp_defconfig - Build for dss_omap_3430sdp&lt;br /&gt;
  dss_overo_defconfig      - Build for dss_overo&lt;br /&gt;
  ebsa110_defconfig        - Build for ebsa110&lt;br /&gt;
  ecbat91_defconfig        - Build for ecbat91&lt;br /&gt;
  edb7211_defconfig        - Build for edb7211&lt;br /&gt;
  ep93xx_defconfig         - Build for ep93xx&lt;br /&gt;
  eseries_pxa_defconfig    - Build for eseries_pxa&lt;br /&gt;
  ezx_defconfig            - Build for ezx&lt;br /&gt;
  footbridge_defconfig     - Build for footbridge&lt;br /&gt;
  fortunet_defconfig       - Build for fortunet&lt;br /&gt;
  h3600_defconfig          - Build for h3600&lt;br /&gt;
  h5000_defconfig          - Build for h5000&lt;br /&gt;
  h7201_defconfig          - Build for h7201&lt;br /&gt;
  h7202_defconfig          - Build for h7202&lt;br /&gt;
  hackkit_defconfig        - Build for hackkit&lt;br /&gt;
  imx27ads_defconfig       - Build for imx27ads&lt;br /&gt;
  integrator_defconfig     - Build for integrator&lt;br /&gt;
  iop13xx_defconfig        - Build for iop13xx&lt;br /&gt;
  iop32x_defconfig         - Build for iop32x&lt;br /&gt;
  iop33x_defconfig         - Build for iop33x&lt;br /&gt;
  ixp2000_defconfig        - Build for ixp2000&lt;br /&gt;
  ixp23xx_defconfig        - Build for ixp23xx&lt;br /&gt;
  ixp4xx_defconfig         - Build for ixp4xx&lt;br /&gt;
  jornada720_defconfig     - Build for jornada720&lt;br /&gt;
  kafa_defconfig           - Build for kafa&lt;br /&gt;
  kb9202_defconfig         - Build for kb9202&lt;br /&gt;
  kirkwood_defconfig       - Build for kirkwood&lt;br /&gt;
  ks8695_defconfig         - Build for ks8695&lt;br /&gt;
  lart_defconfig           - Build for lart&lt;br /&gt;
  littleton_defconfig      - Build for littleton&lt;br /&gt;
  loki_defconfig           - Build for loki&lt;br /&gt;
  lpd270_defconfig         - Build for lpd270&lt;br /&gt;
  lpd7a400_defconfig       - Build for lpd7a400&lt;br /&gt;
  lpd7a404_defconfig       - Build for lpd7a404&lt;br /&gt;
  lubbock_defconfig        - Build for lubbock&lt;br /&gt;
  lusl7200_defconfig       - Build for lusl7200&lt;br /&gt;
  magician_defconfig       - Build for magician&lt;br /&gt;
  mainstone_defconfig      - Build for mainstone&lt;br /&gt;
  msm_defconfig            - Build for msm&lt;br /&gt;
  mv78xx0_defconfig        - Build for mv78xx0&lt;br /&gt;
  mx1ads_defconfig         - Build for mx1ads&lt;br /&gt;
  mx31ads_defconfig        - Build for mx31ads&lt;br /&gt;
  mx31litekit_defconfig    - Build for mx31litekit&lt;br /&gt;
  mx31moboard_defconfig    - Build for mx31moboard&lt;br /&gt;
  mx31pdk_defconfig        - Build for mx31pdk&lt;br /&gt;
  n770_defconfig           - Build for n770&lt;br /&gt;
  n800_defconfig           - Build for n800&lt;br /&gt;
  neocore926_defconfig     - Build for neocore926&lt;br /&gt;
  neponset_defconfig       - Build for neponset&lt;br /&gt;
  netwinder_defconfig      - Build for netwinder&lt;br /&gt;
  netx_defconfig           - Build for netx&lt;br /&gt;
  ns9xxx_defconfig         - Build for ns9xxx&lt;br /&gt;
  omap2_evm_defconfig      - Build for omap2_evm&lt;br /&gt;
  omap3_beagle_defconfig   - Build for omap3_beagle&lt;br /&gt;
  omap3_evm_defconfig      - Build for omap3_evm&lt;br /&gt;
  omap3_pandora_defconfig  - Build for omap3_pandora&lt;br /&gt;
  omap_2430sdp_defconfig   - Build for omap_2430sdp&lt;br /&gt;
  omap_3430sdp_defconfig   - Build for omap_3430sdp&lt;br /&gt;
  omap_apollon_2420_defconfig - Build for omap_apollon_2420&lt;br /&gt;
  omap_generic_1510_defconfig - Build for omap_generic_1510&lt;br /&gt;
  omap_generic_1610_defconfig - Build for omap_generic_1610&lt;br /&gt;
  omap_generic_1710_defconfig - Build for omap_generic_1710&lt;br /&gt;
  omap_generic_2420_defconfig - Build for omap_generic_2420&lt;br /&gt;
  omap_h2_1610_defconfig   - Build for omap_h2_1610&lt;br /&gt;
  omap_h3_1710_defconfig   - Build for omap_h3_1710&lt;br /&gt;
  omap_h4_2420_defconfig   - Build for omap_h4_2420&lt;br /&gt;
  omap_innovator_1510_defconfig - Build for omap_innovator_1510&lt;br /&gt;
  omap_innovator_1610_defconfig - Build for omap_innovator_1610&lt;br /&gt;
  omap_ldp_defconfig       - Build for omap_ldp&lt;br /&gt;
  omap_osk_5912_defconfig  - Build for omap_osk_5912&lt;br /&gt;
  omap_perseus2_730_defconfig - Build for omap_perseus2_730&lt;br /&gt;
  onearm_defconfig         - Build for onearm&lt;br /&gt;
  orion5x_defconfig        - Build for orion5x&lt;br /&gt;
  overo_defconfig          - Build for overo&lt;br /&gt;
  palmte_defconfig         - Build for palmte&lt;br /&gt;
  palmtt_defconfig         - Build for palmtt&lt;br /&gt;
  palmz71_defconfig        - Build for palmz71&lt;br /&gt;
  palmz72_defconfig        - Build for palmz72&lt;br /&gt;
  pcm027_defconfig         - Build for pcm027&lt;br /&gt;
  pcm037_defconfig         - Build for pcm037&lt;br /&gt;
  pcm038_defconfig         - Build for pcm038&lt;br /&gt;
  picotux200_defconfig     - Build for picotux200&lt;br /&gt;
  pleb_defconfig           - Build for pleb&lt;br /&gt;
  pnx4008_defconfig        - Build for pnx4008&lt;br /&gt;
  pxa255-idp_defconfig     - Build for pxa255-idp&lt;br /&gt;
  qil-a9260_defconfig      - Build for qil-a9260&lt;br /&gt;
  realview-smp_defconfig   - Build for realview-smp&lt;br /&gt;
  realview_defconfig       - Build for realview&lt;br /&gt;
  rpc_defconfig            - Build for rpc&lt;br /&gt;
  rx51_defconfig           - Build for rx51&lt;br /&gt;
  s3c2410_defconfig        - Build for s3c2410&lt;br /&gt;
  s3c6400_defconfig        - Build for s3c6400&lt;br /&gt;
  sam9_l9260_defconfig     - Build for sam9_l9260&lt;br /&gt;
  shannon_defconfig        - Build for shannon&lt;br /&gt;
  shark_defconfig          - Build for shark&lt;br /&gt;
  simpad_defconfig         - Build for simpad&lt;br /&gt;
  spitz_defconfig          - Build for spitz&lt;br /&gt;
  sx1_defconfig            - Build for sx1&lt;br /&gt;
  tct_hammer_defconfig     - Build for tct_hammer&lt;br /&gt;
  trizeps4_defconfig       - Build for trizeps4&lt;br /&gt;
  usb-a9260_defconfig      - Build for usb-a9260&lt;br /&gt;
  usb-a9263_defconfig      - Build for usb-a9263&lt;br /&gt;
  versatile_defconfig      - Build for versatile&lt;br /&gt;
  viper_defconfig          - Build for viper&lt;br /&gt;
  w90p910_defconfig        - Build for w90p910&lt;br /&gt;
  xm_x2xx_defconfig        - Build for xm_x2xx&lt;br /&gt;
  yl9200_defconfig         - Build for yl9200&lt;br /&gt;
  zylonite_defconfig       - Build for zylonite&lt;br /&gt;
&lt;br /&gt;
  make V=0|1 [targets] 0 =&amp;gt; quiet build (default), 1 =&amp;gt; verbose build&lt;br /&gt;
  make V=2   [targets] 2 =&amp;gt; give reason for rebuild of target&lt;br /&gt;
  make O=dir [targets] Locate all output files in &amp;quot;dir&amp;quot;, including .config&lt;br /&gt;
  make C=1   [targets] Check all c source with $CHECK (sparse by default)&lt;br /&gt;
  make C=2   [targets] Force check of all c source with $CHECK&lt;br /&gt;
&lt;br /&gt;
Execute &amp;quot;make&amp;quot; or &amp;quot;make all&amp;quot; to build all targets marked with [*] &lt;br /&gt;
For further info see the ./README file&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-7&lt;br /&gt;
| 4-27&lt;br /&gt;
| Partial Listing of Kconfig for ARM Architecture&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-8&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
 183 config VECTORS_BASE&lt;br /&gt;
 184         hex&lt;br /&gt;
 185         default 0xffff0000 if MMU || CPU_HIGH_VECTOR&lt;br /&gt;
 186         default DRAM_BASE if REMAP_VECTORS_TO_RAM&lt;br /&gt;
 187         default 0x00000000&lt;br /&gt;
 188         help&lt;br /&gt;
 189           The base address of exception vectors.&lt;br /&gt;
 190 &lt;br /&gt;
 191 source &amp;quot;init/Kconfig&amp;quot;&lt;br /&gt;
 192 &lt;br /&gt;
 193 source &amp;quot;kernel/Kconfig.freezer&amp;quot;&lt;br /&gt;
 194 &lt;br /&gt;
 195 menu &amp;quot;System Type&amp;quot;&lt;br /&gt;
 196 &lt;br /&gt;
 197 choice&lt;br /&gt;
 198         prompt &amp;quot;ARM system type&amp;quot;&lt;br /&gt;
 199         default ARCH_VERSATILE&lt;br /&gt;
 200 &lt;br /&gt;
 201 config ARCH_AAEC2000&lt;br /&gt;
 202         bool &amp;quot;Agilent AAEC-2000 based&amp;quot;&lt;br /&gt;
 203         select CPU_ARM920T&lt;br /&gt;
 204         select ARM_AMBA&lt;br /&gt;
 205         select HAVE_CLK&lt;br /&gt;
 206         help&lt;br /&gt;
 207           This enables support for systems based on the Agilent AAEC-2000&lt;br /&gt;
 208 &lt;br /&gt;
 209 config ARCH_INTEGRATOR&lt;br /&gt;
 210         bool &amp;quot;ARM Ltd. Integrator family&amp;quot;&lt;br /&gt;
 211         select ARM_AMBA                                                                                 &lt;br /&gt;
 212         select HAVE_CLK                                                                                 &lt;br /&gt;
 213         select COMMON_CLKDEV                                                                            &lt;br /&gt;
 214         select ICST525&lt;br /&gt;
 215         help&lt;br /&gt;
 216           Support for ARM's Integrator platform.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-9&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/plat-omap/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
....&lt;br /&gt;
config OMAP_BOOT_REASON&lt;br /&gt;
        bool &amp;quot;Support for boot reason&amp;quot;&lt;br /&gt;
        depends on OMAP_BOOT_TAG&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have a procfs entry for reading the boot&lt;br /&gt;
          reason in user-space.&lt;br /&gt;
&lt;br /&gt;
config OMAP_COMPONENT_VERSION&lt;br /&gt;
        bool &amp;quot;Support for component version display&amp;quot;&lt;br /&gt;
        depends on OMAP_BOOT_TAG &amp;amp;&amp;amp; PROC_FS&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have a procfs entry for reading component&lt;br /&gt;
          versions (supplied by the bootloader) in user-space.&lt;br /&gt;
&lt;br /&gt;
config OMAP_GPIO_SWITCH&lt;br /&gt;
        bool &amp;quot;GPIO switch support&amp;quot;&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have support for reporting of GPIO&lt;br /&gt;
          switches (e.g. cover switches) via sysfs. Your bootloader has&lt;br /&gt;
          to provide information about the switches to the kernel via the&lt;br /&gt;
          ATAG_BOARD mechanism if they're not defined by the board config.&lt;br /&gt;
&lt;br /&gt;
config OMAP_MUX&lt;br /&gt;
        bool &amp;quot;OMAP multiplexing support&amp;quot;&lt;br /&gt;
        depends on ARCH_OMAP&lt;br /&gt;
        default y&lt;br /&gt;
        help&lt;br /&gt;
          Pin multiplexing support for OMAP boards. If your bootloader&lt;br /&gt;
          sets the multiplexing correctly, say N. Otherwise, or if unsure,&lt;br /&gt;
          say Y.&lt;br /&gt;
&lt;br /&gt;
config OMAP_MUX_DEBUG&lt;br /&gt;
        bool &amp;quot;Multiplexing debug output&amp;quot;&lt;br /&gt;
        depends on OMAP_MUX&lt;br /&gt;
        help&lt;br /&gt;
          Makes the multiplexing functions print out a lot of debug info.&lt;br /&gt;
          This is useful if you want to find out the correct values of the&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-10&lt;br /&gt;
| 4-32&lt;br /&gt;
| Customized .config File Snippet&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# OMAP Feature Selections&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set&lt;br /&gt;
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set&lt;br /&gt;
# CONFIG_OMAP_SMARTREFLEX is not set&lt;br /&gt;
CONFIG_OMAP_RESET_CLOCKS=y&lt;br /&gt;
CONFIG_OMAP_BOOT_TAG=y&lt;br /&gt;
CONFIG_OMAP_BOOT_REASON=y&lt;br /&gt;
# CONFIG_OMAP_COMPONENT_VERSION is not set&lt;br /&gt;
CONFIG_OMAP_GPIO_SWITCH=y&lt;br /&gt;
# CONFIG_OMAP_GPIO_SWITCH_2 is not set&lt;br /&gt;
# CONFIG_OMAP_MUX is not set&lt;br /&gt;
CONFIG_OMAP_MCBSP=y&lt;br /&gt;
# CONFIG_OMAP_MBOX_FWK is not set&lt;br /&gt;
CONFIG_OMAP_IOMMU=m&lt;br /&gt;
# CONFIG_OMAP_MPU_TIMER is not set&lt;br /&gt;
CONFIG_OMAP_32K_TIMER=y&lt;br /&gt;
CONFIG_OMAP_32K_TIMER_HZ=128&lt;br /&gt;
CONFIG_OMAP_TICK_GPTIMER=12&lt;br /&gt;
CONFIG_OMAP_DM_TIMER=y&lt;br /&gt;
# CONFIG_OMAP_LL_DEBUG_UART1 is not set&lt;br /&gt;
# CONFIG_OMAP_LL_DEBUG_UART2 is not set&lt;br /&gt;
CONFIG_OMAP_LL_DEBUG_UART3=y&lt;br /&gt;
CONFIG_ARCH_OMAP34XX=y&lt;br /&gt;
CONFIG_ARCH_OMAP3430=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-11&lt;br /&gt;
| 4-33&lt;br /&gt;
| Makefile from .../arch/arm/plat-omap/ Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Makefile for the linux kernel.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Common support&lt;br /&gt;
obj-y := common.o sram.o clock.o devices.o dma.o mux.o gpio.o \&lt;br /&gt;
         usb.o fb.o vram.o vrfb.o io.o&lt;br /&gt;
obj-m :=&lt;br /&gt;
obj-n :=&lt;br /&gt;
obj-  :=&lt;br /&gt;
&lt;br /&gt;
# OCPI interconnect support for 1710, 1610 and 5912&lt;br /&gt;
obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o&lt;br /&gt;
&lt;br /&gt;
obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o&lt;br /&gt;
obj-$(CONFIG_OMAP_IOMMU) += iommu.o iovmm.o&lt;br /&gt;
&lt;br /&gt;
obj-$(CONFIG_CPU_FREQ) += cpu-omap.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o&lt;br /&gt;
obj-$(CONFIG_OMAP_BOOT_REASON) += bootreason.o&lt;br /&gt;
obj-$(CONFIG_OMAP_COMPONENT_VERSION) += component-version.o&lt;br /&gt;
obj-$(CONFIG_OMAP_GPIO_SWITCH) += gpio-switch.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o&lt;br /&gt;
i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o&lt;br /&gt;
obj-y += $(i2c-omap-m) $(i2c-omap-y)&lt;br /&gt;
&lt;br /&gt;
# OMAP mailbox framework&lt;br /&gt;
obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 5-1&lt;br /&gt;
| 5-2&lt;br /&gt;
| Final Kernel Build Sequence:  ARM/BeagleBoard&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-2&lt;br /&gt;
| 5-5&lt;br /&gt;
| Assembly File .../arch/arm/boot/compressed/piggy.S&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-3&lt;br /&gt;
| 5-7&lt;br /&gt;
| Final Kernel Build Sequence:  ARM/BeagleBoard&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-4&lt;br /&gt;
| 5-17&lt;br /&gt;
| Console Setup Code Snippet from .../kernel/printk.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-5&lt;br /&gt;
| 5-18&lt;br /&gt;
| Family of __setup Macro Definitions from .../include/linux/init.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-6&lt;br /&gt;
| 5-19&lt;br /&gt;
| Kernel Command Line Processing&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-7&lt;br /&gt;
| 5-22&lt;br /&gt;
| Example Initialization Routine - .../arch/arm/kernel/setup.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-8&lt;br /&gt;
| 5-22&lt;br /&gt;
| initcall Family of Macros - .../include/linux/init.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-9&lt;br /&gt;
| 5-24&lt;br /&gt;
| Creation of Kernel init Thread&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-10&lt;br /&gt;
| 5-25&lt;br /&gt;
| Initialization via initcalls&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 5-11&lt;br /&gt;
| 5-27&lt;br /&gt;
| Final Boot Steps from main.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 6 ==&lt;br /&gt;
&lt;br /&gt;
== Chapter 8 ==&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-30T00:11:56Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Chapter 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Listings =&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
??&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o&lt;br /&gt;
total 764K&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c&lt;br /&gt;
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c&lt;br /&gt;
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c&lt;br /&gt;
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c&lt;br /&gt;
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c&lt;br /&gt;
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 4-17&lt;br /&gt;
| Snippet from Linux 2.6 .config&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
1872 #&lt;br /&gt;
1873 # USB Input Devices&lt;br /&gt;
1874 #&lt;br /&gt;
1875 CONFIG_USB_HID=y&lt;br /&gt;
1876 # CONFIG_HID_PID is not set&lt;br /&gt;
1877 # CONFIG_USB_HIDDEV is not set&lt;br /&gt;
1878 &lt;br /&gt;
1879 #&lt;br /&gt;
1880 # Special HID drivers&lt;br /&gt;
1881 #&lt;br /&gt;
1882 CONFIG_HID_COMPAT=y&lt;br /&gt;
1883 CONFIG_HID_A4TECH=y&lt;br /&gt;
1884 CONFIG_HID_APPLE=y&lt;br /&gt;
1885 CONFIG_HID_BELKIN=y&lt;br /&gt;
1886 CONFIG_HID_CHERRY=y&lt;br /&gt;
1887 CONFIG_HID_CHICONY=y&lt;br /&gt;
1888 CONFIG_HID_CYPRESS=y&lt;br /&gt;
1889 CONFIG_HID_EZKEY=y&lt;br /&gt;
1890 CONFIG_HID_GYRATION=y&lt;br /&gt;
1891 CONFIG_HID_LOGITECH=y&lt;br /&gt;
1892 # CONFIG_LOGITECH_FF is not set&lt;br /&gt;
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-5&lt;br /&gt;
| 4-21&lt;br /&gt;
| Linux autoconf.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % cat include/linux/autoconf.h| grep CONFIG_USB&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETMOTORCONTROL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_LEGOTOWER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_T613_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_RNDIS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_W9968CF_MODULE 1&lt;br /&gt;
#define CONFIG_USB_RTL8150 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_KAWETH 1&lt;br /&gt;
#define CONFIG_USB_ZERO_HNPTEST 1&lt;br /&gt;
#define CONFIG_USB_CXACRU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_ARK3116_MODULE 1&lt;br /&gt;
#define CONFIG_USB_G_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_PLUSB 1&lt;br /&gt;
#define CONFIG_USB_GPIO_VBUS 1&lt;br /&gt;
#define CONFIG_USB_EHCI_TT_NEWSCHED 1&lt;br /&gt;
#define CONFIG_USB_ACM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_EHCI 1&lt;br /&gt;
#define CONFIG_USB_USBNET 1&lt;br /&gt;
#define CONFIG_USB_LCD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_BELKIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LED_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1&lt;br /&gt;
#define CONFIG_USB_HID 1&lt;br /&gt;
#define CONFIG_USB_GADGET_VBUS_DRAW 2&lt;br /&gt;
#define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OTG_UTILS 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_OHCI 1&lt;br /&gt;
#define CONFIG_USB_CDC_COMPOSITE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GARMIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7720_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_NAVMAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_FINEPIX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7840_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TMC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OTI6858_MODULE 1&lt;br /&gt;
#define CONFIG_USB_WDM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MON 1&lt;br /&gt;
#define CONFIG_USB_OTG 1&lt;br /&gt;
#define CONFIG_USB_PWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETKIT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ET61X251_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_XIRCOM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SPEEDTOUCH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_CON 1&lt;br /&gt;
#define CONFIG_USB_NET_NET1080 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTION_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZR364XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_MCS7830 1&lt;br /&gt;
#define CONFIG_USB_VST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MARS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EHCI_ROOT_HUB_TT 1&lt;br /&gt;
#define CONFIG_USB_PHIDGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CYPRESS_CY7C63_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV534_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPW_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_AX8817X 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV519_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IUU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STV06XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1&lt;br /&gt;
#define CONFIG_USB_STORAGE 1&lt;br /&gt;
#define CONFIG_USB_IDMOUSE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PEGASUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1&lt;br /&gt;
#define CONFIG_USB_M5602_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CATC 1&lt;br /&gt;
#define CONFIG_USB_CYTHERM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GENERIC 1&lt;br /&gt;
#define CONFIG_USB_IRDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_S2255_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUSPEND 1&lt;br /&gt;
#define CONFIG_USB_XUSBATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TRANCEVIBRATOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SE401_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MIDI_GADGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_ZAURUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OMNINET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC207_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTICON_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OV511_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUPPORT 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SAFE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZERO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TEST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CH341_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI26_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI62_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_HP4X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGETFS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_CDC_SUBSET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1&lt;br /&gt;
#define CONFIG_USB_EHCI_HCD 1&lt;br /&gt;
#define CONFIG_USB_DEVICEFS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_TV8532_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPAQ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_CONEX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ZC3XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MCT_U232_MODULE 1&lt;br /&gt;
#define CONFIG_USB_KONICAWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KLSI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ALI_M5632 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_VC032X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_SELECTED 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_STK014_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OXU210HP_HCD 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ETOMS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_QUICKCAM_MESSENGER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_WLAN 1&lt;br /&gt;
#define CONFIG_USB_KC2190 1&lt;br /&gt;
#define CONFIG_USB_AN2720 1&lt;br /&gt;
#define CONFIG_USB_EPSON2888 1&lt;br /&gt;
#define CONFIG_USB_ZC0301_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZD1201 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_HOST 1&lt;br /&gt;
#define CONFIG_USB_G_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DEBUG_FS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC7311_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VICAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARMLINUX 1&lt;br /&gt;
#define CONFIG_USB_ATMEL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CP2101_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_SOC 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_OTG 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_PL2303_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1&lt;br /&gt;
#define CONFIG_USB_DEVICE_CLASS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DEBUG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MPR 1&lt;br /&gt;
#define CONFIG_USB_NET_CDCETHER 1&lt;br /&gt;
#define CONFIG_USB_EZUSB 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA500_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA501_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_BERRY_CHARGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EMPEG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA505_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA506_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA561_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA508_MODULE 1&lt;br /&gt;
#define CONFIG_USB_FILE_STORAGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETSERVO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1&lt;br /&gt;
#define CONFIG_USB_UEAGLEATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_INVENTRA_DMA 1&lt;br /&gt;
#define CONFIG_USB_NET_SMSC95XX 1&lt;br /&gt;
#define CONFIG_USB_STV680_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXB_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STKWEBCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DUALSPEED 1&lt;br /&gt;
#define CONFIG_USB_FTDI_ELAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_DM9601 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXJ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_IBMCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SN9C102_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_VISOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_GL620A 1&lt;br /&gt;
#define CONFIG_USB_BELKIN 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| 4-22&lt;br /&gt;
| Makefile Targets&lt;br /&gt;
| &amp;lt;pre&amp;gt;Cleaning targets:&lt;br /&gt;
  clean		  - Remove most generated files but keep the config and&lt;br /&gt;
                    enough build support to build external modules&lt;br /&gt;
  mrproper	  - Remove all generated files + config + various backup files&lt;br /&gt;
  distclean	  - mrproper + remove editor backup and patch files&lt;br /&gt;
&lt;br /&gt;
Configuration targets:&lt;br /&gt;
  config	  - Update current config utilising a line-oriented program&lt;br /&gt;
  menuconfig	  - Update current config utilising a menu based program&lt;br /&gt;
  xconfig	  - Update current config utilising a QT based front-end&lt;br /&gt;
  gconfig	  - Update current config utilising a GTK based front-end&lt;br /&gt;
  oldconfig	  - Update current config utilising a provided .config as base&lt;br /&gt;
  silentoldconfig - Same as oldconfig, but quietly&lt;br /&gt;
  randconfig	  - New config with random answer to all options&lt;br /&gt;
  defconfig	  - New config with default answer to all options&lt;br /&gt;
  allmodconfig	  - New config selecting modules when possible&lt;br /&gt;
  allyesconfig	  - New config where all options are accepted with yes&lt;br /&gt;
  allnoconfig	  - New config where all options are answered with no&lt;br /&gt;
&lt;br /&gt;
Other generic targets:&lt;br /&gt;
  all		  - Build all targets marked with [*]&lt;br /&gt;
* vmlinux	  - Build the bare kernel&lt;br /&gt;
* modules	  - Build all modules&lt;br /&gt;
  modules_install - Install all modules to INSTALL_MOD_PATH (default: /)&lt;br /&gt;
  firmware_install- Install all firmware to INSTALL_FW_PATH&lt;br /&gt;
                    (default: $(INSTALL_MOD_PATH)/lib/firmware)&lt;br /&gt;
  dir/            - Build all files in dir and below&lt;br /&gt;
  dir/file.[ois]  - Build specified target only&lt;br /&gt;
  dir/file.ko     - Build module including final link&lt;br /&gt;
  prepare         - Set up for building external modules&lt;br /&gt;
  tags/TAGS	  - Generate tags file for editors&lt;br /&gt;
  cscope	  - Generate cscope index&lt;br /&gt;
  kernelrelease	  - Output the release version string&lt;br /&gt;
  kernelversion	  - Output the version stored in Makefile&lt;br /&gt;
  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH&lt;br /&gt;
                    (default: /home/users/collinjc/oe/angstrom-dev-backup2/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r46/git/usr)&lt;br /&gt;
&lt;br /&gt;
Static analysers&lt;br /&gt;
  checkstack      - Generate a list of stack hogs&lt;br /&gt;
  namespacecheck  - Name space analysis on compiled kernel&lt;br /&gt;
  versioncheck    - Sanity check on version.h usage&lt;br /&gt;
  includecheck    - Check for duplicate included header files&lt;br /&gt;
  export_report   - List the usages of all exported symbols&lt;br /&gt;
  headers_check   - Sanity check on exported headers&lt;br /&gt;
  headerdep       - Detect inclusion cycles in headers&lt;br /&gt;
&lt;br /&gt;
Kernel packaging:&lt;br /&gt;
  rpm-pkg         - Build both source and binary RPM kernel packages&lt;br /&gt;
  binrpm-pkg      - Build only the binary kernel package&lt;br /&gt;
  deb-pkg         - Build the kernel as an deb package&lt;br /&gt;
  tar-pkg         - Build the kernel as an uncompressed tarball&lt;br /&gt;
  targz-pkg       - Build the kernel as a gzip compressed tarball&lt;br /&gt;
  tarbz2-pkg      - Build the kernel as a bzip2 compressed tarball&lt;br /&gt;
&lt;br /&gt;
Documentation targets:&lt;br /&gt;
 Linux kernel internal documentation in different formats:&lt;br /&gt;
  htmldocs        - HTML&lt;br /&gt;
  installmandocs  - install man pages generated by mandocs&lt;br /&gt;
  mandocs         - man pages&lt;br /&gt;
  pdfdocs         - PDF&lt;br /&gt;
  psdocs          - Postscript&lt;br /&gt;
  xmldocs         - XML DocBook&lt;br /&gt;
&lt;br /&gt;
Architecture specific targets (arm):&lt;br /&gt;
* zImage        - Compressed kernel image (arch/arm/boot/zImage)&lt;br /&gt;
  Image         - Uncompressed kernel image (arch/arm/boot/Image)&lt;br /&gt;
* xipImage      - XIP kernel image, if configured (arch/arm/boot/xipImage)&lt;br /&gt;
  uImage        - U-Boot wrapped zImage&lt;br /&gt;
  bootpImage    - Combined zImage and initial RAM disk&lt;br /&gt;
                  (supply initrd image via make variable INITRD=&amp;lt;path&amp;gt;)&lt;br /&gt;
  install       - Install uncompressed kernel&lt;br /&gt;
  zinstall      - Install compressed kernel&lt;br /&gt;
                  Install using (your) ~/bin/installkernel or&lt;br /&gt;
                  (distribution) /sbin/installkernel or&lt;br /&gt;
                  install to $(INSTALL_PATH) and run lilo&lt;br /&gt;
&lt;br /&gt;
  afeb9260_defconfig       - Build for afeb9260&lt;br /&gt;
  am200epdkit_defconfig    - Build for am200epdkit&lt;br /&gt;
  ams_delta_defconfig      - Build for ams_delta&lt;br /&gt;
  assabet_defconfig        - Build for assabet&lt;br /&gt;
  at91cap9adk_defconfig    - Build for at91cap9adk&lt;br /&gt;
  at91rm9200dk_defconfig   - Build for at91rm9200dk&lt;br /&gt;
  at91rm9200ek_defconfig   - Build for at91rm9200ek&lt;br /&gt;
  at91sam9260ek_defconfig  - Build for at91sam9260ek&lt;br /&gt;
  at91sam9261ek_defconfig  - Build for at91sam9261ek&lt;br /&gt;
  at91sam9263ek_defconfig  - Build for at91sam9263ek&lt;br /&gt;
  at91sam9g20ek_defconfig  - Build for at91sam9g20ek&lt;br /&gt;
  at91sam9rlek_defconfig   - Build for at91sam9rlek&lt;br /&gt;
  ateb9200_defconfig       - Build for ateb9200&lt;br /&gt;
  badge4_defconfig         - Build for badge4&lt;br /&gt;
  cam60_defconfig          - Build for cam60&lt;br /&gt;
  carmeva_defconfig        - Build for carmeva&lt;br /&gt;
  cerfcube_defconfig       - Build for cerfcube&lt;br /&gt;
  cm_x300_defconfig        - Build for cm_x300&lt;br /&gt;
  colibri_defconfig        - Build for colibri&lt;br /&gt;
  collie_defconfig         - Build for collie&lt;br /&gt;
  corgi_defconfig          - Build for corgi&lt;br /&gt;
  csb337_defconfig         - Build for csb337&lt;br /&gt;
  csb637_defconfig         - Build for csb637&lt;br /&gt;
  dss_omap3_beagle_defconfig - Build for dss_omap3_beagle&lt;br /&gt;
  dss_omap_3430sdp_defconfig - Build for dss_omap_3430sdp&lt;br /&gt;
  dss_overo_defconfig      - Build for dss_overo&lt;br /&gt;
  ebsa110_defconfig        - Build for ebsa110&lt;br /&gt;
  ecbat91_defconfig        - Build for ecbat91&lt;br /&gt;
  edb7211_defconfig        - Build for edb7211&lt;br /&gt;
  ep93xx_defconfig         - Build for ep93xx&lt;br /&gt;
  eseries_pxa_defconfig    - Build for eseries_pxa&lt;br /&gt;
  ezx_defconfig            - Build for ezx&lt;br /&gt;
  footbridge_defconfig     - Build for footbridge&lt;br /&gt;
  fortunet_defconfig       - Build for fortunet&lt;br /&gt;
  h3600_defconfig          - Build for h3600&lt;br /&gt;
  h5000_defconfig          - Build for h5000&lt;br /&gt;
  h7201_defconfig          - Build for h7201&lt;br /&gt;
  h7202_defconfig          - Build for h7202&lt;br /&gt;
  hackkit_defconfig        - Build for hackkit&lt;br /&gt;
  imx27ads_defconfig       - Build for imx27ads&lt;br /&gt;
  integrator_defconfig     - Build for integrator&lt;br /&gt;
  iop13xx_defconfig        - Build for iop13xx&lt;br /&gt;
  iop32x_defconfig         - Build for iop32x&lt;br /&gt;
  iop33x_defconfig         - Build for iop33x&lt;br /&gt;
  ixp2000_defconfig        - Build for ixp2000&lt;br /&gt;
  ixp23xx_defconfig        - Build for ixp23xx&lt;br /&gt;
  ixp4xx_defconfig         - Build for ixp4xx&lt;br /&gt;
  jornada720_defconfig     - Build for jornada720&lt;br /&gt;
  kafa_defconfig           - Build for kafa&lt;br /&gt;
  kb9202_defconfig         - Build for kb9202&lt;br /&gt;
  kirkwood_defconfig       - Build for kirkwood&lt;br /&gt;
  ks8695_defconfig         - Build for ks8695&lt;br /&gt;
  lart_defconfig           - Build for lart&lt;br /&gt;
  littleton_defconfig      - Build for littleton&lt;br /&gt;
  loki_defconfig           - Build for loki&lt;br /&gt;
  lpd270_defconfig         - Build for lpd270&lt;br /&gt;
  lpd7a400_defconfig       - Build for lpd7a400&lt;br /&gt;
  lpd7a404_defconfig       - Build for lpd7a404&lt;br /&gt;
  lubbock_defconfig        - Build for lubbock&lt;br /&gt;
  lusl7200_defconfig       - Build for lusl7200&lt;br /&gt;
  magician_defconfig       - Build for magician&lt;br /&gt;
  mainstone_defconfig      - Build for mainstone&lt;br /&gt;
  msm_defconfig            - Build for msm&lt;br /&gt;
  mv78xx0_defconfig        - Build for mv78xx0&lt;br /&gt;
  mx1ads_defconfig         - Build for mx1ads&lt;br /&gt;
  mx31ads_defconfig        - Build for mx31ads&lt;br /&gt;
  mx31litekit_defconfig    - Build for mx31litekit&lt;br /&gt;
  mx31moboard_defconfig    - Build for mx31moboard&lt;br /&gt;
  mx31pdk_defconfig        - Build for mx31pdk&lt;br /&gt;
  n770_defconfig           - Build for n770&lt;br /&gt;
  n800_defconfig           - Build for n800&lt;br /&gt;
  neocore926_defconfig     - Build for neocore926&lt;br /&gt;
  neponset_defconfig       - Build for neponset&lt;br /&gt;
  netwinder_defconfig      - Build for netwinder&lt;br /&gt;
  netx_defconfig           - Build for netx&lt;br /&gt;
  ns9xxx_defconfig         - Build for ns9xxx&lt;br /&gt;
  omap2_evm_defconfig      - Build for omap2_evm&lt;br /&gt;
  omap3_beagle_defconfig   - Build for omap3_beagle&lt;br /&gt;
  omap3_evm_defconfig      - Build for omap3_evm&lt;br /&gt;
  omap3_pandora_defconfig  - Build for omap3_pandora&lt;br /&gt;
  omap_2430sdp_defconfig   - Build for omap_2430sdp&lt;br /&gt;
  omap_3430sdp_defconfig   - Build for omap_3430sdp&lt;br /&gt;
  omap_apollon_2420_defconfig - Build for omap_apollon_2420&lt;br /&gt;
  omap_generic_1510_defconfig - Build for omap_generic_1510&lt;br /&gt;
  omap_generic_1610_defconfig - Build for omap_generic_1610&lt;br /&gt;
  omap_generic_1710_defconfig - Build for omap_generic_1710&lt;br /&gt;
  omap_generic_2420_defconfig - Build for omap_generic_2420&lt;br /&gt;
  omap_h2_1610_defconfig   - Build for omap_h2_1610&lt;br /&gt;
  omap_h3_1710_defconfig   - Build for omap_h3_1710&lt;br /&gt;
  omap_h4_2420_defconfig   - Build for omap_h4_2420&lt;br /&gt;
  omap_innovator_1510_defconfig - Build for omap_innovator_1510&lt;br /&gt;
  omap_innovator_1610_defconfig - Build for omap_innovator_1610&lt;br /&gt;
  omap_ldp_defconfig       - Build for omap_ldp&lt;br /&gt;
  omap_osk_5912_defconfig  - Build for omap_osk_5912&lt;br /&gt;
  omap_perseus2_730_defconfig - Build for omap_perseus2_730&lt;br /&gt;
  onearm_defconfig         - Build for onearm&lt;br /&gt;
  orion5x_defconfig        - Build for orion5x&lt;br /&gt;
  overo_defconfig          - Build for overo&lt;br /&gt;
  palmte_defconfig         - Build for palmte&lt;br /&gt;
  palmtt_defconfig         - Build for palmtt&lt;br /&gt;
  palmz71_defconfig        - Build for palmz71&lt;br /&gt;
  palmz72_defconfig        - Build for palmz72&lt;br /&gt;
  pcm027_defconfig         - Build for pcm027&lt;br /&gt;
  pcm037_defconfig         - Build for pcm037&lt;br /&gt;
  pcm038_defconfig         - Build for pcm038&lt;br /&gt;
  picotux200_defconfig     - Build for picotux200&lt;br /&gt;
  pleb_defconfig           - Build for pleb&lt;br /&gt;
  pnx4008_defconfig        - Build for pnx4008&lt;br /&gt;
  pxa255-idp_defconfig     - Build for pxa255-idp&lt;br /&gt;
  qil-a9260_defconfig      - Build for qil-a9260&lt;br /&gt;
  realview-smp_defconfig   - Build for realview-smp&lt;br /&gt;
  realview_defconfig       - Build for realview&lt;br /&gt;
  rpc_defconfig            - Build for rpc&lt;br /&gt;
  rx51_defconfig           - Build for rx51&lt;br /&gt;
  s3c2410_defconfig        - Build for s3c2410&lt;br /&gt;
  s3c6400_defconfig        - Build for s3c6400&lt;br /&gt;
  sam9_l9260_defconfig     - Build for sam9_l9260&lt;br /&gt;
  shannon_defconfig        - Build for shannon&lt;br /&gt;
  shark_defconfig          - Build for shark&lt;br /&gt;
  simpad_defconfig         - Build for simpad&lt;br /&gt;
  spitz_defconfig          - Build for spitz&lt;br /&gt;
  sx1_defconfig            - Build for sx1&lt;br /&gt;
  tct_hammer_defconfig     - Build for tct_hammer&lt;br /&gt;
  trizeps4_defconfig       - Build for trizeps4&lt;br /&gt;
  usb-a9260_defconfig      - Build for usb-a9260&lt;br /&gt;
  usb-a9263_defconfig      - Build for usb-a9263&lt;br /&gt;
  versatile_defconfig      - Build for versatile&lt;br /&gt;
  viper_defconfig          - Build for viper&lt;br /&gt;
  w90p910_defconfig        - Build for w90p910&lt;br /&gt;
  xm_x2xx_defconfig        - Build for xm_x2xx&lt;br /&gt;
  yl9200_defconfig         - Build for yl9200&lt;br /&gt;
  zylonite_defconfig       - Build for zylonite&lt;br /&gt;
&lt;br /&gt;
  make V=0|1 [targets] 0 =&amp;gt; quiet build (default), 1 =&amp;gt; verbose build&lt;br /&gt;
  make V=2   [targets] 2 =&amp;gt; give reason for rebuild of target&lt;br /&gt;
  make O=dir [targets] Locate all output files in &amp;quot;dir&amp;quot;, including .config&lt;br /&gt;
  make C=1   [targets] Check all c source with $CHECK (sparse by default)&lt;br /&gt;
  make C=2   [targets] Force check of all c source with $CHECK&lt;br /&gt;
&lt;br /&gt;
Execute &amp;quot;make&amp;quot; or &amp;quot;make all&amp;quot; to build all targets marked with [*] &lt;br /&gt;
For further info see the ./README file&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-7&lt;br /&gt;
| 4-27&lt;br /&gt;
| Partial Listing of Kconfig for ARM Architecture&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-8&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
 183 config VECTORS_BASE&lt;br /&gt;
 184         hex&lt;br /&gt;
 185         default 0xffff0000 if MMU || CPU_HIGH_VECTOR&lt;br /&gt;
 186         default DRAM_BASE if REMAP_VECTORS_TO_RAM&lt;br /&gt;
 187         default 0x00000000&lt;br /&gt;
 188         help&lt;br /&gt;
 189           The base address of exception vectors.&lt;br /&gt;
 190 &lt;br /&gt;
 191 source &amp;quot;init/Kconfig&amp;quot;&lt;br /&gt;
 192 &lt;br /&gt;
 193 source &amp;quot;kernel/Kconfig.freezer&amp;quot;&lt;br /&gt;
 194 &lt;br /&gt;
 195 menu &amp;quot;System Type&amp;quot;&lt;br /&gt;
 196 &lt;br /&gt;
 197 choice&lt;br /&gt;
 198         prompt &amp;quot;ARM system type&amp;quot;&lt;br /&gt;
 199         default ARCH_VERSATILE&lt;br /&gt;
 200 &lt;br /&gt;
 201 config ARCH_AAEC2000&lt;br /&gt;
 202         bool &amp;quot;Agilent AAEC-2000 based&amp;quot;&lt;br /&gt;
 203         select CPU_ARM920T&lt;br /&gt;
 204         select ARM_AMBA&lt;br /&gt;
 205         select HAVE_CLK&lt;br /&gt;
 206         help&lt;br /&gt;
 207           This enables support for systems based on the Agilent AAEC-2000&lt;br /&gt;
 208 &lt;br /&gt;
 209 config ARCH_INTEGRATOR&lt;br /&gt;
 210         bool &amp;quot;ARM Ltd. Integrator family&amp;quot;&lt;br /&gt;
 211         select ARM_AMBA                                                                                 &lt;br /&gt;
 212         select HAVE_CLK                                                                                 &lt;br /&gt;
 213         select COMMON_CLKDEV                                                                            &lt;br /&gt;
 214         select ICST525&lt;br /&gt;
 215         help&lt;br /&gt;
 216           Support for ARM's Integrator platform.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-9&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/plat-omap/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
....&lt;br /&gt;
config OMAP_BOOT_REASON&lt;br /&gt;
        bool &amp;quot;Support for boot reason&amp;quot;&lt;br /&gt;
        depends on OMAP_BOOT_TAG&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have a procfs entry for reading the boot&lt;br /&gt;
          reason in user-space.&lt;br /&gt;
&lt;br /&gt;
config OMAP_COMPONENT_VERSION&lt;br /&gt;
        bool &amp;quot;Support for component version display&amp;quot;&lt;br /&gt;
        depends on OMAP_BOOT_TAG &amp;amp;&amp;amp; PROC_FS&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have a procfs entry for reading component&lt;br /&gt;
          versions (supplied by the bootloader) in user-space.&lt;br /&gt;
&lt;br /&gt;
config OMAP_GPIO_SWITCH&lt;br /&gt;
        bool &amp;quot;GPIO switch support&amp;quot;&lt;br /&gt;
        default n&lt;br /&gt;
        help&lt;br /&gt;
          Say Y, if you want to have support for reporting of GPIO&lt;br /&gt;
          switches (e.g. cover switches) via sysfs. Your bootloader has&lt;br /&gt;
          to provide information about the switches to the kernel via the&lt;br /&gt;
          ATAG_BOARD mechanism if they're not defined by the board config.&lt;br /&gt;
&lt;br /&gt;
config OMAP_MUX&lt;br /&gt;
        bool &amp;quot;OMAP multiplexing support&amp;quot;&lt;br /&gt;
        depends on ARCH_OMAP&lt;br /&gt;
        default y&lt;br /&gt;
        help&lt;br /&gt;
          Pin multiplexing support for OMAP boards. If your bootloader&lt;br /&gt;
          sets the multiplexing correctly, say N. Otherwise, or if unsure,&lt;br /&gt;
          say Y.&lt;br /&gt;
&lt;br /&gt;
config OMAP_MUX_DEBUG&lt;br /&gt;
        bool &amp;quot;Multiplexing debug output&amp;quot;&lt;br /&gt;
        depends on OMAP_MUX&lt;br /&gt;
        help&lt;br /&gt;
          Makes the multiplexing functions print out a lot of debug info.&lt;br /&gt;
          This is useful if you want to find out the correct values of the&lt;br /&gt;
....&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-10&lt;br /&gt;
| 4-32&lt;br /&gt;
| Customized .config File Snippet&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# OMAP Feature Selections&lt;br /&gt;
#&lt;br /&gt;
# CONFIG_OMAP_DEBUG_POWERDOMAIN is not set&lt;br /&gt;
# CONFIG_OMAP_DEBUG_CLOCKDOMAIN is not set&lt;br /&gt;
# CONFIG_OMAP_SMARTREFLEX is not set&lt;br /&gt;
CONFIG_OMAP_RESET_CLOCKS=y&lt;br /&gt;
CONFIG_OMAP_BOOT_TAG=y&lt;br /&gt;
CONFIG_OMAP_BOOT_REASON=y&lt;br /&gt;
# CONFIG_OMAP_COMPONENT_VERSION is not set&lt;br /&gt;
CONFIG_OMAP_GPIO_SWITCH=y&lt;br /&gt;
# CONFIG_OMAP_GPIO_SWITCH_2 is not set&lt;br /&gt;
# CONFIG_OMAP_MUX is not set&lt;br /&gt;
CONFIG_OMAP_MCBSP=y&lt;br /&gt;
# CONFIG_OMAP_MBOX_FWK is not set&lt;br /&gt;
CONFIG_OMAP_IOMMU=m&lt;br /&gt;
# CONFIG_OMAP_MPU_TIMER is not set&lt;br /&gt;
CONFIG_OMAP_32K_TIMER=y&lt;br /&gt;
CONFIG_OMAP_32K_TIMER_HZ=128&lt;br /&gt;
CONFIG_OMAP_TICK_GPTIMER=12&lt;br /&gt;
CONFIG_OMAP_DM_TIMER=y&lt;br /&gt;
# CONFIG_OMAP_LL_DEBUG_UART1 is not set&lt;br /&gt;
# CONFIG_OMAP_LL_DEBUG_UART2 is not set&lt;br /&gt;
CONFIG_OMAP_LL_DEBUG_UART3=y&lt;br /&gt;
CONFIG_ARCH_OMAP34XX=y&lt;br /&gt;
CONFIG_ARCH_OMAP3430=y&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-11&lt;br /&gt;
| 4-33&lt;br /&gt;
| Makefile from .../arch/arm/plat-omap/ Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# Makefile for the linux kernel.&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
# Common support&lt;br /&gt;
obj-y := common.o sram.o clock.o devices.o dma.o mux.o gpio.o \&lt;br /&gt;
         usb.o fb.o vram.o vrfb.o io.o&lt;br /&gt;
obj-m :=&lt;br /&gt;
obj-n :=&lt;br /&gt;
obj-  :=&lt;br /&gt;
&lt;br /&gt;
# OCPI interconnect support for 1710, 1610 and 5912&lt;br /&gt;
obj-$(CONFIG_ARCH_OMAP16XX) += ocpi.o&lt;br /&gt;
&lt;br /&gt;
obj-$(CONFIG_OMAP_MCBSP) += mcbsp.o&lt;br /&gt;
obj-$(CONFIG_OMAP_IOMMU) += iommu.o iovmm.o&lt;br /&gt;
&lt;br /&gt;
obj-$(CONFIG_CPU_FREQ) += cpu-omap.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DM_TIMER) += dmtimer.o&lt;br /&gt;
obj-$(CONFIG_OMAP_BOOT_REASON) += bootreason.o&lt;br /&gt;
obj-$(CONFIG_OMAP_COMPONENT_VERSION) += component-version.o&lt;br /&gt;
obj-$(CONFIG_OMAP_GPIO_SWITCH) += gpio-switch.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DEBUG_DEVICES) += debug-devices.o&lt;br /&gt;
obj-$(CONFIG_OMAP_DEBUG_LEDS) += debug-leds.o&lt;br /&gt;
i2c-omap-$(CONFIG_I2C_OMAP) := i2c.o&lt;br /&gt;
obj-y += $(i2c-omap-m) $(i2c-omap-y)&lt;br /&gt;
&lt;br /&gt;
# OMAP mailbox framework&lt;br /&gt;
obj-$(CONFIG_OMAP_MBOX_FWK) += mailbox.o&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-25T18:58:54Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Chapter 4 */  More listings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Listings =&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
??&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o&lt;br /&gt;
total 764K&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c&lt;br /&gt;
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c&lt;br /&gt;
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c&lt;br /&gt;
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c&lt;br /&gt;
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c&lt;br /&gt;
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 4-17&lt;br /&gt;
| Snippet from Linux 2.6 .config&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
1872 #&lt;br /&gt;
1873 # USB Input Devices&lt;br /&gt;
1874 #&lt;br /&gt;
1875 CONFIG_USB_HID=y&lt;br /&gt;
1876 # CONFIG_HID_PID is not set&lt;br /&gt;
1877 # CONFIG_USB_HIDDEV is not set&lt;br /&gt;
1878 &lt;br /&gt;
1879 #&lt;br /&gt;
1880 # Special HID drivers&lt;br /&gt;
1881 #&lt;br /&gt;
1882 CONFIG_HID_COMPAT=y&lt;br /&gt;
1883 CONFIG_HID_A4TECH=y&lt;br /&gt;
1884 CONFIG_HID_APPLE=y&lt;br /&gt;
1885 CONFIG_HID_BELKIN=y&lt;br /&gt;
1886 CONFIG_HID_CHERRY=y&lt;br /&gt;
1887 CONFIG_HID_CHICONY=y&lt;br /&gt;
1888 CONFIG_HID_CYPRESS=y&lt;br /&gt;
1889 CONFIG_HID_EZKEY=y&lt;br /&gt;
1890 CONFIG_HID_GYRATION=y&lt;br /&gt;
1891 CONFIG_HID_LOGITECH=y&lt;br /&gt;
1892 # CONFIG_LOGITECH_FF is not set&lt;br /&gt;
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-5&lt;br /&gt;
| 4-21&lt;br /&gt;
| Linux autoconf.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % cat include/linux/autoconf.h| grep CONFIG_USB&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETMOTORCONTROL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_LEGOTOWER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_T613_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_RNDIS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_W9968CF_MODULE 1&lt;br /&gt;
#define CONFIG_USB_RTL8150 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_KAWETH 1&lt;br /&gt;
#define CONFIG_USB_ZERO_HNPTEST 1&lt;br /&gt;
#define CONFIG_USB_CXACRU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_ARK3116_MODULE 1&lt;br /&gt;
#define CONFIG_USB_G_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_PLUSB 1&lt;br /&gt;
#define CONFIG_USB_GPIO_VBUS 1&lt;br /&gt;
#define CONFIG_USB_EHCI_TT_NEWSCHED 1&lt;br /&gt;
#define CONFIG_USB_ACM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_EHCI 1&lt;br /&gt;
#define CONFIG_USB_USBNET 1&lt;br /&gt;
#define CONFIG_USB_LCD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_BELKIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LED_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1&lt;br /&gt;
#define CONFIG_USB_HID 1&lt;br /&gt;
#define CONFIG_USB_GADGET_VBUS_DRAW 2&lt;br /&gt;
#define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OTG_UTILS 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_OHCI 1&lt;br /&gt;
#define CONFIG_USB_CDC_COMPOSITE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GARMIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7720_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_NAVMAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_FINEPIX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7840_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TMC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OTI6858_MODULE 1&lt;br /&gt;
#define CONFIG_USB_WDM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MON 1&lt;br /&gt;
#define CONFIG_USB_OTG 1&lt;br /&gt;
#define CONFIG_USB_PWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETKIT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ET61X251_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_XIRCOM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SPEEDTOUCH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_CON 1&lt;br /&gt;
#define CONFIG_USB_NET_NET1080 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTION_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZR364XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_MCS7830 1&lt;br /&gt;
#define CONFIG_USB_VST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MARS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EHCI_ROOT_HUB_TT 1&lt;br /&gt;
#define CONFIG_USB_PHIDGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CYPRESS_CY7C63_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV534_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPW_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_AX8817X 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV519_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IUU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STV06XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1&lt;br /&gt;
#define CONFIG_USB_STORAGE 1&lt;br /&gt;
#define CONFIG_USB_IDMOUSE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PEGASUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1&lt;br /&gt;
#define CONFIG_USB_M5602_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CATC 1&lt;br /&gt;
#define CONFIG_USB_CYTHERM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GENERIC 1&lt;br /&gt;
#define CONFIG_USB_IRDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_S2255_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUSPEND 1&lt;br /&gt;
#define CONFIG_USB_XUSBATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TRANCEVIBRATOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SE401_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MIDI_GADGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_ZAURUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OMNINET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC207_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTICON_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OV511_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUPPORT 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SAFE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZERO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TEST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CH341_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI26_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI62_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_HP4X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGETFS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_CDC_SUBSET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1&lt;br /&gt;
#define CONFIG_USB_EHCI_HCD 1&lt;br /&gt;
#define CONFIG_USB_DEVICEFS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_TV8532_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPAQ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_CONEX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ZC3XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MCT_U232_MODULE 1&lt;br /&gt;
#define CONFIG_USB_KONICAWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KLSI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ALI_M5632 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_VC032X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_SELECTED 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_STK014_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OXU210HP_HCD 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ETOMS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_QUICKCAM_MESSENGER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_WLAN 1&lt;br /&gt;
#define CONFIG_USB_KC2190 1&lt;br /&gt;
#define CONFIG_USB_AN2720 1&lt;br /&gt;
#define CONFIG_USB_EPSON2888 1&lt;br /&gt;
#define CONFIG_USB_ZC0301_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZD1201 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_HOST 1&lt;br /&gt;
#define CONFIG_USB_G_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DEBUG_FS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC7311_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VICAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARMLINUX 1&lt;br /&gt;
#define CONFIG_USB_ATMEL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CP2101_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_SOC 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_OTG 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_PL2303_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1&lt;br /&gt;
#define CONFIG_USB_DEVICE_CLASS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DEBUG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MPR 1&lt;br /&gt;
#define CONFIG_USB_NET_CDCETHER 1&lt;br /&gt;
#define CONFIG_USB_EZUSB 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA500_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA501_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_BERRY_CHARGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EMPEG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA505_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA506_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA561_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA508_MODULE 1&lt;br /&gt;
#define CONFIG_USB_FILE_STORAGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETSERVO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1&lt;br /&gt;
#define CONFIG_USB_UEAGLEATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_INVENTRA_DMA 1&lt;br /&gt;
#define CONFIG_USB_NET_SMSC95XX 1&lt;br /&gt;
#define CONFIG_USB_STV680_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXB_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STKWEBCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DUALSPEED 1&lt;br /&gt;
#define CONFIG_USB_FTDI_ELAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_DM9601 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXJ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_IBMCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SN9C102_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_VISOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_GL620A 1&lt;br /&gt;
#define CONFIG_USB_BELKIN 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-6&lt;br /&gt;
| 4-22&lt;br /&gt;
| Makefile Targets&lt;br /&gt;
| &amp;lt;pre&amp;gt;Cleaning targets:&lt;br /&gt;
  clean		  - Remove most generated files but keep the config and&lt;br /&gt;
                    enough build support to build external modules&lt;br /&gt;
  mrproper	  - Remove all generated files + config + various backup files&lt;br /&gt;
  distclean	  - mrproper + remove editor backup and patch files&lt;br /&gt;
&lt;br /&gt;
Configuration targets:&lt;br /&gt;
  config	  - Update current config utilising a line-oriented program&lt;br /&gt;
  menuconfig	  - Update current config utilising a menu based program&lt;br /&gt;
  xconfig	  - Update current config utilising a QT based front-end&lt;br /&gt;
  gconfig	  - Update current config utilising a GTK based front-end&lt;br /&gt;
  oldconfig	  - Update current config utilising a provided .config as base&lt;br /&gt;
  silentoldconfig - Same as oldconfig, but quietly&lt;br /&gt;
  randconfig	  - New config with random answer to all options&lt;br /&gt;
  defconfig	  - New config with default answer to all options&lt;br /&gt;
  allmodconfig	  - New config selecting modules when possible&lt;br /&gt;
  allyesconfig	  - New config where all options are accepted with yes&lt;br /&gt;
  allnoconfig	  - New config where all options are answered with no&lt;br /&gt;
&lt;br /&gt;
Other generic targets:&lt;br /&gt;
  all		  - Build all targets marked with [*]&lt;br /&gt;
* vmlinux	  - Build the bare kernel&lt;br /&gt;
* modules	  - Build all modules&lt;br /&gt;
  modules_install - Install all modules to INSTALL_MOD_PATH (default: /)&lt;br /&gt;
  firmware_install- Install all firmware to INSTALL_FW_PATH&lt;br /&gt;
                    (default: $(INSTALL_MOD_PATH)/lib/firmware)&lt;br /&gt;
  dir/            - Build all files in dir and below&lt;br /&gt;
  dir/file.[ois]  - Build specified target only&lt;br /&gt;
  dir/file.ko     - Build module including final link&lt;br /&gt;
  prepare         - Set up for building external modules&lt;br /&gt;
  tags/TAGS	  - Generate tags file for editors&lt;br /&gt;
  cscope	  - Generate cscope index&lt;br /&gt;
  kernelrelease	  - Output the release version string&lt;br /&gt;
  kernelversion	  - Output the version stored in Makefile&lt;br /&gt;
  headers_install - Install sanitised kernel headers to INSTALL_HDR_PATH&lt;br /&gt;
                    (default: /home/users/collinjc/oe/angstrom-dev-backup2/work/beagleboard-angstrom-linux-gnueabi/linux-omap-2.6.29-r46/git/usr)&lt;br /&gt;
&lt;br /&gt;
Static analysers&lt;br /&gt;
  checkstack      - Generate a list of stack hogs&lt;br /&gt;
  namespacecheck  - Name space analysis on compiled kernel&lt;br /&gt;
  versioncheck    - Sanity check on version.h usage&lt;br /&gt;
  includecheck    - Check for duplicate included header files&lt;br /&gt;
  export_report   - List the usages of all exported symbols&lt;br /&gt;
  headers_check   - Sanity check on exported headers&lt;br /&gt;
  headerdep       - Detect inclusion cycles in headers&lt;br /&gt;
&lt;br /&gt;
Kernel packaging:&lt;br /&gt;
  rpm-pkg         - Build both source and binary RPM kernel packages&lt;br /&gt;
  binrpm-pkg      - Build only the binary kernel package&lt;br /&gt;
  deb-pkg         - Build the kernel as an deb package&lt;br /&gt;
  tar-pkg         - Build the kernel as an uncompressed tarball&lt;br /&gt;
  targz-pkg       - Build the kernel as a gzip compressed tarball&lt;br /&gt;
  tarbz2-pkg      - Build the kernel as a bzip2 compressed tarball&lt;br /&gt;
&lt;br /&gt;
Documentation targets:&lt;br /&gt;
 Linux kernel internal documentation in different formats:&lt;br /&gt;
  htmldocs        - HTML&lt;br /&gt;
  installmandocs  - install man pages generated by mandocs&lt;br /&gt;
  mandocs         - man pages&lt;br /&gt;
  pdfdocs         - PDF&lt;br /&gt;
  psdocs          - Postscript&lt;br /&gt;
  xmldocs         - XML DocBook&lt;br /&gt;
&lt;br /&gt;
Architecture specific targets (arm):&lt;br /&gt;
* zImage        - Compressed kernel image (arch/arm/boot/zImage)&lt;br /&gt;
  Image         - Uncompressed kernel image (arch/arm/boot/Image)&lt;br /&gt;
* xipImage      - XIP kernel image, if configured (arch/arm/boot/xipImage)&lt;br /&gt;
  uImage        - U-Boot wrapped zImage&lt;br /&gt;
  bootpImage    - Combined zImage and initial RAM disk&lt;br /&gt;
                  (supply initrd image via make variable INITRD=&amp;lt;path&amp;gt;)&lt;br /&gt;
  install       - Install uncompressed kernel&lt;br /&gt;
  zinstall      - Install compressed kernel&lt;br /&gt;
                  Install using (your) ~/bin/installkernel or&lt;br /&gt;
                  (distribution) /sbin/installkernel or&lt;br /&gt;
                  install to $(INSTALL_PATH) and run lilo&lt;br /&gt;
&lt;br /&gt;
  afeb9260_defconfig       - Build for afeb9260&lt;br /&gt;
  am200epdkit_defconfig    - Build for am200epdkit&lt;br /&gt;
  ams_delta_defconfig      - Build for ams_delta&lt;br /&gt;
  assabet_defconfig        - Build for assabet&lt;br /&gt;
  at91cap9adk_defconfig    - Build for at91cap9adk&lt;br /&gt;
  at91rm9200dk_defconfig   - Build for at91rm9200dk&lt;br /&gt;
  at91rm9200ek_defconfig   - Build for at91rm9200ek&lt;br /&gt;
  at91sam9260ek_defconfig  - Build for at91sam9260ek&lt;br /&gt;
  at91sam9261ek_defconfig  - Build for at91sam9261ek&lt;br /&gt;
  at91sam9263ek_defconfig  - Build for at91sam9263ek&lt;br /&gt;
  at91sam9g20ek_defconfig  - Build for at91sam9g20ek&lt;br /&gt;
  at91sam9rlek_defconfig   - Build for at91sam9rlek&lt;br /&gt;
  ateb9200_defconfig       - Build for ateb9200&lt;br /&gt;
  badge4_defconfig         - Build for badge4&lt;br /&gt;
  cam60_defconfig          - Build for cam60&lt;br /&gt;
  carmeva_defconfig        - Build for carmeva&lt;br /&gt;
  cerfcube_defconfig       - Build for cerfcube&lt;br /&gt;
  cm_x300_defconfig        - Build for cm_x300&lt;br /&gt;
  colibri_defconfig        - Build for colibri&lt;br /&gt;
  collie_defconfig         - Build for collie&lt;br /&gt;
  corgi_defconfig          - Build for corgi&lt;br /&gt;
  csb337_defconfig         - Build for csb337&lt;br /&gt;
  csb637_defconfig         - Build for csb637&lt;br /&gt;
  dss_omap3_beagle_defconfig - Build for dss_omap3_beagle&lt;br /&gt;
  dss_omap_3430sdp_defconfig - Build for dss_omap_3430sdp&lt;br /&gt;
  dss_overo_defconfig      - Build for dss_overo&lt;br /&gt;
  ebsa110_defconfig        - Build for ebsa110&lt;br /&gt;
  ecbat91_defconfig        - Build for ecbat91&lt;br /&gt;
  edb7211_defconfig        - Build for edb7211&lt;br /&gt;
  ep93xx_defconfig         - Build for ep93xx&lt;br /&gt;
  eseries_pxa_defconfig    - Build for eseries_pxa&lt;br /&gt;
  ezx_defconfig            - Build for ezx&lt;br /&gt;
  footbridge_defconfig     - Build for footbridge&lt;br /&gt;
  fortunet_defconfig       - Build for fortunet&lt;br /&gt;
  h3600_defconfig          - Build for h3600&lt;br /&gt;
  h5000_defconfig          - Build for h5000&lt;br /&gt;
  h7201_defconfig          - Build for h7201&lt;br /&gt;
  h7202_defconfig          - Build for h7202&lt;br /&gt;
  hackkit_defconfig        - Build for hackkit&lt;br /&gt;
  imx27ads_defconfig       - Build for imx27ads&lt;br /&gt;
  integrator_defconfig     - Build for integrator&lt;br /&gt;
  iop13xx_defconfig        - Build for iop13xx&lt;br /&gt;
  iop32x_defconfig         - Build for iop32x&lt;br /&gt;
  iop33x_defconfig         - Build for iop33x&lt;br /&gt;
  ixp2000_defconfig        - Build for ixp2000&lt;br /&gt;
  ixp23xx_defconfig        - Build for ixp23xx&lt;br /&gt;
  ixp4xx_defconfig         - Build for ixp4xx&lt;br /&gt;
  jornada720_defconfig     - Build for jornada720&lt;br /&gt;
  kafa_defconfig           - Build for kafa&lt;br /&gt;
  kb9202_defconfig         - Build for kb9202&lt;br /&gt;
  kirkwood_defconfig       - Build for kirkwood&lt;br /&gt;
  ks8695_defconfig         - Build for ks8695&lt;br /&gt;
  lart_defconfig           - Build for lart&lt;br /&gt;
  littleton_defconfig      - Build for littleton&lt;br /&gt;
  loki_defconfig           - Build for loki&lt;br /&gt;
  lpd270_defconfig         - Build for lpd270&lt;br /&gt;
  lpd7a400_defconfig       - Build for lpd7a400&lt;br /&gt;
  lpd7a404_defconfig       - Build for lpd7a404&lt;br /&gt;
  lubbock_defconfig        - Build for lubbock&lt;br /&gt;
  lusl7200_defconfig       - Build for lusl7200&lt;br /&gt;
  magician_defconfig       - Build for magician&lt;br /&gt;
  mainstone_defconfig      - Build for mainstone&lt;br /&gt;
  msm_defconfig            - Build for msm&lt;br /&gt;
  mv78xx0_defconfig        - Build for mv78xx0&lt;br /&gt;
  mx1ads_defconfig         - Build for mx1ads&lt;br /&gt;
  mx31ads_defconfig        - Build for mx31ads&lt;br /&gt;
  mx31litekit_defconfig    - Build for mx31litekit&lt;br /&gt;
  mx31moboard_defconfig    - Build for mx31moboard&lt;br /&gt;
  mx31pdk_defconfig        - Build for mx31pdk&lt;br /&gt;
  n770_defconfig           - Build for n770&lt;br /&gt;
  n800_defconfig           - Build for n800&lt;br /&gt;
  neocore926_defconfig     - Build for neocore926&lt;br /&gt;
  neponset_defconfig       - Build for neponset&lt;br /&gt;
  netwinder_defconfig      - Build for netwinder&lt;br /&gt;
  netx_defconfig           - Build for netx&lt;br /&gt;
  ns9xxx_defconfig         - Build for ns9xxx&lt;br /&gt;
  omap2_evm_defconfig      - Build for omap2_evm&lt;br /&gt;
  omap3_beagle_defconfig   - Build for omap3_beagle&lt;br /&gt;
  omap3_evm_defconfig      - Build for omap3_evm&lt;br /&gt;
  omap3_pandora_defconfig  - Build for omap3_pandora&lt;br /&gt;
  omap_2430sdp_defconfig   - Build for omap_2430sdp&lt;br /&gt;
  omap_3430sdp_defconfig   - Build for omap_3430sdp&lt;br /&gt;
  omap_apollon_2420_defconfig - Build for omap_apollon_2420&lt;br /&gt;
  omap_generic_1510_defconfig - Build for omap_generic_1510&lt;br /&gt;
  omap_generic_1610_defconfig - Build for omap_generic_1610&lt;br /&gt;
  omap_generic_1710_defconfig - Build for omap_generic_1710&lt;br /&gt;
  omap_generic_2420_defconfig - Build for omap_generic_2420&lt;br /&gt;
  omap_h2_1610_defconfig   - Build for omap_h2_1610&lt;br /&gt;
  omap_h3_1710_defconfig   - Build for omap_h3_1710&lt;br /&gt;
  omap_h4_2420_defconfig   - Build for omap_h4_2420&lt;br /&gt;
  omap_innovator_1510_defconfig - Build for omap_innovator_1510&lt;br /&gt;
  omap_innovator_1610_defconfig - Build for omap_innovator_1610&lt;br /&gt;
  omap_ldp_defconfig       - Build for omap_ldp&lt;br /&gt;
  omap_osk_5912_defconfig  - Build for omap_osk_5912&lt;br /&gt;
  omap_perseus2_730_defconfig - Build for omap_perseus2_730&lt;br /&gt;
  onearm_defconfig         - Build for onearm&lt;br /&gt;
  orion5x_defconfig        - Build for orion5x&lt;br /&gt;
  overo_defconfig          - Build for overo&lt;br /&gt;
  palmte_defconfig         - Build for palmte&lt;br /&gt;
  palmtt_defconfig         - Build for palmtt&lt;br /&gt;
  palmz71_defconfig        - Build for palmz71&lt;br /&gt;
  palmz72_defconfig        - Build for palmz72&lt;br /&gt;
  pcm027_defconfig         - Build for pcm027&lt;br /&gt;
  pcm037_defconfig         - Build for pcm037&lt;br /&gt;
  pcm038_defconfig         - Build for pcm038&lt;br /&gt;
  picotux200_defconfig     - Build for picotux200&lt;br /&gt;
  pleb_defconfig           - Build for pleb&lt;br /&gt;
  pnx4008_defconfig        - Build for pnx4008&lt;br /&gt;
  pxa255-idp_defconfig     - Build for pxa255-idp&lt;br /&gt;
  qil-a9260_defconfig      - Build for qil-a9260&lt;br /&gt;
  realview-smp_defconfig   - Build for realview-smp&lt;br /&gt;
  realview_defconfig       - Build for realview&lt;br /&gt;
  rpc_defconfig            - Build for rpc&lt;br /&gt;
  rx51_defconfig           - Build for rx51&lt;br /&gt;
  s3c2410_defconfig        - Build for s3c2410&lt;br /&gt;
  s3c6400_defconfig        - Build for s3c6400&lt;br /&gt;
  sam9_l9260_defconfig     - Build for sam9_l9260&lt;br /&gt;
  shannon_defconfig        - Build for shannon&lt;br /&gt;
  shark_defconfig          - Build for shark&lt;br /&gt;
  simpad_defconfig         - Build for simpad&lt;br /&gt;
  spitz_defconfig          - Build for spitz&lt;br /&gt;
  sx1_defconfig            - Build for sx1&lt;br /&gt;
  tct_hammer_defconfig     - Build for tct_hammer&lt;br /&gt;
  trizeps4_defconfig       - Build for trizeps4&lt;br /&gt;
  usb-a9260_defconfig      - Build for usb-a9260&lt;br /&gt;
  usb-a9263_defconfig      - Build for usb-a9263&lt;br /&gt;
  versatile_defconfig      - Build for versatile&lt;br /&gt;
  viper_defconfig          - Build for viper&lt;br /&gt;
  w90p910_defconfig        - Build for w90p910&lt;br /&gt;
  xm_x2xx_defconfig        - Build for xm_x2xx&lt;br /&gt;
  yl9200_defconfig         - Build for yl9200&lt;br /&gt;
  zylonite_defconfig       - Build for zylonite&lt;br /&gt;
&lt;br /&gt;
  make V=0|1 [targets] 0 =&amp;gt; quiet build (default), 1 =&amp;gt; verbose build&lt;br /&gt;
  make V=2   [targets] 2 =&amp;gt; give reason for rebuild of target&lt;br /&gt;
  make O=dir [targets] Locate all output files in &amp;quot;dir&amp;quot;, including .config&lt;br /&gt;
  make C=1   [targets] Check all c source with $CHECK (sparse by default)&lt;br /&gt;
  make C=2   [targets] Force check of all c source with $CHECK&lt;br /&gt;
&lt;br /&gt;
Execute &amp;quot;make&amp;quot; or &amp;quot;make all&amp;quot; to build all targets marked with [*] &lt;br /&gt;
For further info see the ./README file&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-7&lt;br /&gt;
| 4-27&lt;br /&gt;
| Partial Listing of Kconfig for ARM Architecture&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-8&lt;br /&gt;
| 4-30&lt;br /&gt;
| Snippet from .../arch/arm/Kconfig&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
 183 config VECTORS_BASE&lt;br /&gt;
 184         hex&lt;br /&gt;
 185         default 0xffff0000 if MMU || CPU_HIGH_VECTOR&lt;br /&gt;
 186         default DRAM_BASE if REMAP_VECTORS_TO_RAM&lt;br /&gt;
 187         default 0x00000000&lt;br /&gt;
 188         help&lt;br /&gt;
 189           The base address of exception vectors.&lt;br /&gt;
 190 &lt;br /&gt;
 191 source &amp;quot;init/Kconfig&amp;quot;&lt;br /&gt;
 192 &lt;br /&gt;
 193 source &amp;quot;kernel/Kconfig.freezer&amp;quot;&lt;br /&gt;
 194 &lt;br /&gt;
 195 menu &amp;quot;System Type&amp;quot;&lt;br /&gt;
 196 &lt;br /&gt;
 197 choice&lt;br /&gt;
 198         prompt &amp;quot;ARM system type&amp;quot;&lt;br /&gt;
 199         default ARCH_VERSATILE&lt;br /&gt;
 200 &lt;br /&gt;
 201 config ARCH_AAEC2000&lt;br /&gt;
 202         bool &amp;quot;Agilent AAEC-2000 based&amp;quot;&lt;br /&gt;
 203         select CPU_ARM920T&lt;br /&gt;
 204         select ARM_AMBA&lt;br /&gt;
 205         select HAVE_CLK&lt;br /&gt;
 206         help&lt;br /&gt;
 207           This enables support for systems based on the Agilent AAEC-2000&lt;br /&gt;
 208 &lt;br /&gt;
 209 config ARCH_INTEGRATOR&lt;br /&gt;
 210         bool &amp;quot;ARM Ltd. Integrator family&amp;quot;&lt;br /&gt;
 211         select ARM_AMBA                                                                                 &lt;br /&gt;
 212         select HAVE_CLK                                                                                 &lt;br /&gt;
 213         select COMMON_CLKDEV                                                                            &lt;br /&gt;
 214         select ICST525&lt;br /&gt;
 215         help&lt;br /&gt;
 216           Support for ARM's Integrator platform.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-25T17:23:27Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Chapter 4 */  typo&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Listings =&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
??&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o&lt;br /&gt;
total 764K&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c&lt;br /&gt;
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c&lt;br /&gt;
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c&lt;br /&gt;
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c&lt;br /&gt;
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c&lt;br /&gt;
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 4-17&lt;br /&gt;
| Snippet from Linux 2.6 .config&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
1872 #&lt;br /&gt;
1873 # USB Input Devices&lt;br /&gt;
1874 #&lt;br /&gt;
1875 CONFIG_USB_HID=y&lt;br /&gt;
1876 # CONFIG_HID_PID is not set&lt;br /&gt;
1877 # CONFIG_USB_HIDDEV is not set&lt;br /&gt;
1878 &lt;br /&gt;
1879 #&lt;br /&gt;
1880 # Special HID drivers&lt;br /&gt;
1881 #&lt;br /&gt;
1882 CONFIG_HID_COMPAT=y&lt;br /&gt;
1883 CONFIG_HID_A4TECH=y&lt;br /&gt;
1884 CONFIG_HID_APPLE=y&lt;br /&gt;
1885 CONFIG_HID_BELKIN=y&lt;br /&gt;
1886 CONFIG_HID_CHERRY=y&lt;br /&gt;
1887 CONFIG_HID_CHICONY=y&lt;br /&gt;
1888 CONFIG_HID_CYPRESS=y&lt;br /&gt;
1889 CONFIG_HID_EZKEY=y&lt;br /&gt;
1890 CONFIG_HID_GYRATION=y&lt;br /&gt;
1891 CONFIG_HID_LOGITECH=y&lt;br /&gt;
1892 # CONFIG_LOGITECH_FF is not set&lt;br /&gt;
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-5&lt;br /&gt;
| 4-21&lt;br /&gt;
| Linux autoconf.h&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % cat include/linux/autoconf.h| grep CONFIG_USB&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETMOTORCONTROL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_LEGOTOWER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_T613_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_RNDIS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_W9968CF_MODULE 1&lt;br /&gt;
#define CONFIG_USB_RTL8150 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_KAWETH 1&lt;br /&gt;
#define CONFIG_USB_ZERO_HNPTEST 1&lt;br /&gt;
#define CONFIG_USB_CXACRU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_ARK3116_MODULE 1&lt;br /&gt;
#define CONFIG_USB_G_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_PLUSB 1&lt;br /&gt;
#define CONFIG_USB_GPIO_VBUS 1&lt;br /&gt;
#define CONFIG_USB_EHCI_TT_NEWSCHED 1&lt;br /&gt;
#define CONFIG_USB_ACM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_EHCI 1&lt;br /&gt;
#define CONFIG_USB_USBNET 1&lt;br /&gt;
#define CONFIG_USB_LCD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_BELKIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LED_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1&lt;br /&gt;
#define CONFIG_USB_HID 1&lt;br /&gt;
#define CONFIG_USB_GADGET_VBUS_DRAW 2&lt;br /&gt;
#define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OTG_UTILS 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_OHCI 1&lt;br /&gt;
#define CONFIG_USB_CDC_COMPOSITE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GARMIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7720_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_NAVMAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_FINEPIX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7840_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TMC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OTI6858_MODULE 1&lt;br /&gt;
#define CONFIG_USB_WDM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MON 1&lt;br /&gt;
#define CONFIG_USB_OTG 1&lt;br /&gt;
#define CONFIG_USB_PWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETKIT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ET61X251_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_XIRCOM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SPEEDTOUCH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_CON 1&lt;br /&gt;
#define CONFIG_USB_NET_NET1080 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTION_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZR364XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_MCS7830 1&lt;br /&gt;
#define CONFIG_USB_VST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MARS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EHCI_ROOT_HUB_TT 1&lt;br /&gt;
#define CONFIG_USB_PHIDGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CYPRESS_CY7C63_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV534_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPW_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_AX8817X 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV519_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IUU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STV06XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1&lt;br /&gt;
#define CONFIG_USB_STORAGE 1&lt;br /&gt;
#define CONFIG_USB_IDMOUSE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PEGASUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1&lt;br /&gt;
#define CONFIG_USB_M5602_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CATC 1&lt;br /&gt;
#define CONFIG_USB_CYTHERM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GENERIC 1&lt;br /&gt;
#define CONFIG_USB_IRDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_S2255_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUSPEND 1&lt;br /&gt;
#define CONFIG_USB_XUSBATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TRANCEVIBRATOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SE401_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MIDI_GADGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_ZAURUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OMNINET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC207_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTICON_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OV511_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUPPORT 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SAFE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZERO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TEST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CH341_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI26_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI62_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_HP4X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGETFS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_CDC_SUBSET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1&lt;br /&gt;
#define CONFIG_USB_EHCI_HCD 1&lt;br /&gt;
#define CONFIG_USB_DEVICEFS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_TV8532_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPAQ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_CONEX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ZC3XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MCT_U232_MODULE 1&lt;br /&gt;
#define CONFIG_USB_KONICAWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KLSI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ALI_M5632 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_VC032X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_SELECTED 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_STK014_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OXU210HP_HCD 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ETOMS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_QUICKCAM_MESSENGER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_WLAN 1&lt;br /&gt;
#define CONFIG_USB_KC2190 1&lt;br /&gt;
#define CONFIG_USB_AN2720 1&lt;br /&gt;
#define CONFIG_USB_EPSON2888 1&lt;br /&gt;
#define CONFIG_USB_ZC0301_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZD1201 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_HOST 1&lt;br /&gt;
#define CONFIG_USB_G_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DEBUG_FS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC7311_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VICAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARMLINUX 1&lt;br /&gt;
#define CONFIG_USB_ATMEL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CP2101_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_SOC 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_OTG 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_PL2303_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1&lt;br /&gt;
#define CONFIG_USB_DEVICE_CLASS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DEBUG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MPR 1&lt;br /&gt;
#define CONFIG_USB_NET_CDCETHER 1&lt;br /&gt;
#define CONFIG_USB_EZUSB 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA500_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA501_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_BERRY_CHARGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EMPEG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA505_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA506_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA561_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA508_MODULE 1&lt;br /&gt;
#define CONFIG_USB_FILE_STORAGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETSERVO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1&lt;br /&gt;
#define CONFIG_USB_UEAGLEATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_INVENTRA_DMA 1&lt;br /&gt;
#define CONFIG_USB_NET_SMSC95XX 1&lt;br /&gt;
#define CONFIG_USB_STV680_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXB_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STKWEBCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DUALSPEED 1&lt;br /&gt;
#define CONFIG_USB_FTDI_ELAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_DM9601 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXJ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_IBMCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SN9C102_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_VISOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_GL620A 1&lt;br /&gt;
#define CONFIG_USB_BELKIN 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-25T17:20:06Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Chapter 4 */  Added another listing...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Listings =&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
??&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o&lt;br /&gt;
total 764K&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c&lt;br /&gt;
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c&lt;br /&gt;
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c&lt;br /&gt;
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c&lt;br /&gt;
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c&lt;br /&gt;
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 4-17&lt;br /&gt;
| Snippet from Linux 2.6 .config&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
1872 #&lt;br /&gt;
1873 # USB Input Devices&lt;br /&gt;
1874 #&lt;br /&gt;
1875 CONFIG_USB_HID=y&lt;br /&gt;
1876 # CONFIG_HID_PID is not set&lt;br /&gt;
1877 # CONFIG_USB_HIDDEV is not set&lt;br /&gt;
1878 &lt;br /&gt;
1879 #&lt;br /&gt;
1880 # Special HID drivers&lt;br /&gt;
1881 #&lt;br /&gt;
1882 CONFIG_HID_COMPAT=y&lt;br /&gt;
1883 CONFIG_HID_A4TECH=y&lt;br /&gt;
1884 CONFIG_HID_APPLE=y&lt;br /&gt;
1885 CONFIG_HID_BELKIN=y&lt;br /&gt;
1886 CONFIG_HID_CHERRY=y&lt;br /&gt;
1887 CONFIG_HID_CHICONY=y&lt;br /&gt;
1888 CONFIG_HID_CYPRESS=y&lt;br /&gt;
1889 CONFIG_HID_EZKEY=y&lt;br /&gt;
1890 CONFIG_HID_GYRATION=y&lt;br /&gt;
1891 CONFIG_HID_LOGITECH=y&lt;br /&gt;
1892 # CONFIG_LOGITECH_FF is not set&lt;br /&gt;
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 4-17&lt;br /&gt;
| Snippet from Linux 2.6 .config&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % cat include/linux/autoconf.h| grep CONFIG_USB&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETMOTORCONTROL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_LEGOTOWER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_T613_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_RNDIS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_W9968CF_MODULE 1&lt;br /&gt;
#define CONFIG_USB_RTL8150 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_WHITEHEAT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_MUSB_HDRC 1&lt;br /&gt;
#define CONFIG_USB_KAWETH 1&lt;br /&gt;
#define CONFIG_USB_ZERO_HNPTEST 1&lt;br /&gt;
#define CONFIG_USB_CXACRU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_ARK3116_MODULE 1&lt;br /&gt;
#define CONFIG_USB_G_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_PLUSB 1&lt;br /&gt;
#define CONFIG_USB_GPIO_VBUS 1&lt;br /&gt;
#define CONFIG_USB_EHCI_TT_NEWSCHED 1&lt;br /&gt;
#define CONFIG_USB_ACM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_EHCI 1&lt;br /&gt;
#define CONFIG_USB_USBNET 1&lt;br /&gt;
#define CONFIG_USB_LCD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_BELKIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LED_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49WLC 1&lt;br /&gt;
#define CONFIG_USB_HID 1&lt;br /&gt;
#define CONFIG_USB_GADGET_VBUS_DRAW 2&lt;br /&gt;
#define CONFIG_USB_SERIAL_KOBIL_SCT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OTG_UTILS 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_OHCI 1&lt;br /&gt;
#define CONFIG_USB_CDC_COMPOSITE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GARMIN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7720_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_NAVMAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_FINEPIX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ETH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOS7840_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TMC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_HDRC_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OTI6858_MODULE 1&lt;br /&gt;
#define CONFIG_USB_WDM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MON 1&lt;br /&gt;
#define CONFIG_USB_OTG 1&lt;br /&gt;
#define CONFIG_USB_PWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETKIT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ET61X251_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_XIRCOM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SPEEDTOUCH_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SISUSBVGA_CON 1&lt;br /&gt;
#define CONFIG_USB_NET_NET1080 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTION_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZR364XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_MCS7830 1&lt;br /&gt;
#define CONFIG_USB_VST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MARS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EHCI_ROOT_HUB_TT 1&lt;br /&gt;
#define CONFIG_USB_PHIDGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CYPRESS_CY7C63_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SUNPLUS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV534_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPW_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_AX8817X 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_OV519_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IUU_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STV06XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_INPUT_EVDEV 1&lt;br /&gt;
#define CONFIG_USB_STORAGE 1&lt;br /&gt;
#define CONFIG_USB_IDMOUSE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PEGASUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SPCP8X5_MODULE 1&lt;br /&gt;
#define CONFIG_USB_M5602_MODULE 1&lt;br /&gt;
#define CONFIG_USB_CATC 1&lt;br /&gt;
#define CONFIG_USB_CYTHERM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_GENERIC 1&lt;br /&gt;
#define CONFIG_USB_IRDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_S2255_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUSPEND 1&lt;br /&gt;
#define CONFIG_USB_XUSBATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PRINTER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TRANCEVIBRATOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYPRESS_M8_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SE401_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MIDI_GADGET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_ZAURUS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OMNINET_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC207_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_OPTICON_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OV511_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SUPPORT 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SAFE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZERO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_TEST_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CH341_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI26_MODULE 1&lt;br /&gt;
#define CONFIG_USB_EMI62_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_HP4X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19W 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA18X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28X 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FUNSOFT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGETFS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_CDC_SUBSET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA49W 1&lt;br /&gt;
#define CONFIG_USB_EHCI_HCD 1&lt;br /&gt;
#define CONFIG_USB_DEVICEFS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_TV8532_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_IPAQ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_CONEX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VIDEO_CLASS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ZC3XX_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MCT_U232_MODULE 1&lt;br /&gt;
#define CONFIG_USB_KONICAWC_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KLSI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_AIRCABLE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ALI_M5632 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIERRAWIRELESS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_VC032X_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_SELECTED 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_STK014_MODULE 1&lt;br /&gt;
#define CONFIG_USB_OXU210HP_HCD 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_ETOMS_MODULE 1&lt;br /&gt;
#define CONFIG_USB_QUICKCAM_MESSENGER_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_WLAN 1&lt;br /&gt;
#define CONFIG_USB_KC2190 1&lt;br /&gt;
#define CONFIG_USB_AN2720 1&lt;br /&gt;
#define CONFIG_USB_EPSON2888 1&lt;br /&gt;
#define CONFIG_USB_ZC0301_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ZD1201 1&lt;br /&gt;
#define CONFIG_USB_NET_RNDIS_HOST 1&lt;br /&gt;
#define CONFIG_USB_G_SERIAL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DEBUG_FS 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_PAC7311_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_PDA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_VICAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_ARMLINUX 1&lt;br /&gt;
#define CONFIG_USB_ATMEL_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_TI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CP2101_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_SIEMENS_MPI_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EDGEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_SOC 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DIGI_ACCELEPORT_MODULE 1&lt;br /&gt;
#define CONFIG_USB_MUSB_OTG 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_PL2303_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XA 1&lt;br /&gt;
#define CONFIG_USB_DEVICE_CLASS 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_DEBUG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QI 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA28XB 1&lt;br /&gt;
#define CONFIG_USB_ARCH_HAS_HCD 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_MPR 1&lt;br /&gt;
#define CONFIG_USB_NET_CDCETHER 1&lt;br /&gt;
#define CONFIG_USB_EZUSB 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA500_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA501_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_MOTOROLA_MODULE 1&lt;br /&gt;
#define CONFIG_USB_BERRY_CHARGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_EMPEG_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA505_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA506_MODULE 1&lt;br /&gt;
#define CONFIG_USB_LD_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_FTDI_SIO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA561_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SPCA508_MODULE 1&lt;br /&gt;
#define CONFIG_USB_FILE_STORAGE_MODULE 1&lt;br /&gt;
#define CONFIG_USB_PHIDGETSERVO_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_KEYSPAN_USA19QW 1&lt;br /&gt;
#define CONFIG_USB_UEAGLEATM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_INVENTRA_DMA 1&lt;br /&gt;
#define CONFIG_USB_NET_SMSC95XX 1&lt;br /&gt;
#define CONFIG_USB_STV680_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXB_MODULE 1&lt;br /&gt;
#define CONFIG_USB_STKWEBCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB 1&lt;br /&gt;
#define CONFIG_USB_GADGET_DUALSPEED 1&lt;br /&gt;
#define CONFIG_USB_FTDI_ELAN_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_DM9601 1&lt;br /&gt;
#define CONFIG_USB_GSPCA_SONIXJ_MODULE 1&lt;br /&gt;
#define CONFIG_USB_IBMCAM_MODULE 1&lt;br /&gt;
#define CONFIG_USB_GADGET 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_CYBERJACK_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SN9C102_MODULE 1&lt;br /&gt;
#define CONFIG_USB_SERIAL_VISOR_MODULE 1&lt;br /&gt;
#define CONFIG_USB_NET_GL620A 1&lt;br /&gt;
#define CONFIG_USB_BELKIN 1&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-25T17:16:56Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: Formatting change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Listings =&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
??&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o&lt;br /&gt;
total 764K&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c&lt;br /&gt;
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c&lt;br /&gt;
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c&lt;br /&gt;
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c&lt;br /&gt;
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c&lt;br /&gt;
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 4-17&lt;br /&gt;
| Snippet from Linux 2.6 .config&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
1872 #&lt;br /&gt;
1873 # USB Input Devices&lt;br /&gt;
1874 #&lt;br /&gt;
1875 CONFIG_USB_HID=y&lt;br /&gt;
1876 # CONFIG_HID_PID is not set&lt;br /&gt;
1877 # CONFIG_USB_HIDDEV is not set&lt;br /&gt;
1878 &lt;br /&gt;
1879 #&lt;br /&gt;
1880 # Special HID drivers&lt;br /&gt;
1881 #&lt;br /&gt;
1882 CONFIG_HID_COMPAT=y&lt;br /&gt;
1883 CONFIG_HID_A4TECH=y&lt;br /&gt;
1884 CONFIG_HID_APPLE=y&lt;br /&gt;
1885 CONFIG_HID_BELKIN=y&lt;br /&gt;
1886 CONFIG_HID_CHERRY=y&lt;br /&gt;
1887 CONFIG_HID_CHICONY=y&lt;br /&gt;
1888 CONFIG_HID_CYPRESS=y&lt;br /&gt;
1889 CONFIG_HID_EZKEY=y&lt;br /&gt;
1890 CONFIG_HID_GYRATION=y&lt;br /&gt;
1891 CONFIG_HID_LOGITECH=y&lt;br /&gt;
1892 # CONFIG_LOGITECH_FF is not set&lt;br /&gt;
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-25T17:14:34Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: More stuff...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listings==&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
??&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o&lt;br /&gt;
total 764K&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c&lt;br /&gt;
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c&lt;br /&gt;
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c&lt;br /&gt;
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c&lt;br /&gt;
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c&lt;br /&gt;
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
| 4-4&lt;br /&gt;
| 4-17&lt;br /&gt;
| Snippet from Linux 2.6 .config&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
1872 #&lt;br /&gt;
1873 # USB Input Devices&lt;br /&gt;
1874 #&lt;br /&gt;
1875 CONFIG_USB_HID=y&lt;br /&gt;
1876 # CONFIG_HID_PID is not set&lt;br /&gt;
1877 # CONFIG_USB_HIDDEV is not set&lt;br /&gt;
1878 &lt;br /&gt;
1879 #&lt;br /&gt;
1880 # Special HID drivers&lt;br /&gt;
1881 #&lt;br /&gt;
1882 CONFIG_HID_COMPAT=y&lt;br /&gt;
1883 CONFIG_HID_A4TECH=y&lt;br /&gt;
1884 CONFIG_HID_APPLE=y&lt;br /&gt;
1885 CONFIG_HID_BELKIN=y&lt;br /&gt;
1886 CONFIG_HID_CHERRY=y&lt;br /&gt;
1887 CONFIG_HID_CHICONY=y&lt;br /&gt;
1888 CONFIG_HID_CYPRESS=y&lt;br /&gt;
1889 CONFIG_HID_EZKEY=y&lt;br /&gt;
1890 CONFIG_HID_GYRATION=y&lt;br /&gt;
1891 CONFIG_HID_LOGITECH=y&lt;br /&gt;
1892 # CONFIG_LOGITECH_FF is not set&lt;br /&gt;
1893 # CONFIG_LOGIRUMBLEPAD2_FF is not set&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Chapter 5==&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-25T17:03:58Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Chapter 4 */  Listing update&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listings==&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
??&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@lug linux-omap-2.6.29-r46/git % ls -ls arch/arm/plat-omap/ | grep -v \\.o&lt;br /&gt;
total 764K&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 8.0K Mar 19 19:48 Kconfig&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students  824 Mar 15 02:52 Makefile&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.4K Mar 11 07:46 bootreason.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 11 07:46 clock.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 8.1K Mar 11 07:46 common.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.6K Mar 11 07:46 component-version.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 4.0K Mar 11 07:46 cpu-omap.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.0K Mar 11 07:46 debug-devices.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 7.0K Mar 11 07:46 debug-leds.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.8K Mar 11 07:46 devices.c&lt;br /&gt;
 60K -rwxr-xr-x 1 collinjc students  59K Mar 15 02:51 dma.c&lt;br /&gt;
 24K -rw-r--r-- 1 collinjc students  21K Mar 11 07:46 dmtimer.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students 9.5K Mar 15 02:51 fb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  13K Mar 11 07:46 gpio-switch.c&lt;br /&gt;
 48K -rw-r--r-- 1 collinjc students  47K Mar 11 07:46 gpio.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 5.8K Mar 11 07:46 i2c.c&lt;br /&gt;
   0 drwxr-xr-x 3 collinjc students   72 Mar 11 07:46 include&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 3.7K Mar 11 07:46 io.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  20K Mar 15 02:52 iommu.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  17K Mar 15 03:17 iommu.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.9K Mar 15 03:16 iommu.mod.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.2K Mar 15 02:52 iopgtable.h&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  19K Mar 15 02:52 iovmm.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  15K Mar 15 03:17 iovmm.ko&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 1.8K Mar 15 03:16 iovmm.mod.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  12K Mar 11 07:46 mailbox.c&lt;br /&gt;
 28K -rw-r--r-- 1 collinjc students  26K Mar 11 07:46 mcbsp.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.1K Mar 11 07:46 mux.c&lt;br /&gt;
4.0K -rw-r--r-- 1 collinjc students 2.7K Mar 11 07:46 ocpi.c&lt;br /&gt;
 12K -rw-r--r-- 1 collinjc students  11K Mar 11 07:46 sram.c&lt;br /&gt;
 20K -rw-r--r-- 1 collinjc students  18K Mar 11 07:46 usb.c&lt;br /&gt;
 16K -rw-r--r-- 1 collinjc students  14K Mar 15 02:51 vram.c&lt;br /&gt;
8.0K -rw-r--r-- 1 collinjc students 6.3K Mar 15 02:51 vrfb.c&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE597_Project_Auto_HUD</id>
		<title>ECE597 Project Auto HUD</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE597_Project_Auto_HUD"/>
				<updated>2010-03-25T00:51:22Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Steps */  Added step to decide on hardware&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
The goal of this project is to use the beagle board to run image recognition on a camera feed located inside a car, and then signaling to the driver via a pico projector various objects of interest. &lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
[[user:routhcr | Chris Routh]]&lt;br /&gt;
&lt;br /&gt;
[[user:collinjc | J. Cody Collins]]&lt;br /&gt;
&lt;br /&gt;
Greg Jackson&lt;br /&gt;
&lt;br /&gt;
Keqiong Xin&lt;br /&gt;
&lt;br /&gt;
==Steps==&lt;br /&gt;
* Create Minimal Linux Image that can run OpenCV and run the display&lt;br /&gt;
* Determine hardware needed for the project&lt;br /&gt;
* Work on getting a camera functioning on the beagle board&lt;br /&gt;
* OpenCV running nativly on beagle with min config&lt;br /&gt;
* OpenCV working on video stream&lt;br /&gt;
* Projector working on Beagle&lt;br /&gt;
* Car integration (power)&lt;br /&gt;
* Algorithm development&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/Talk:ECE597_Project_Auto_HUD</id>
		<title>Talk:ECE597 Project Auto HUD</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/Talk:ECE597_Project_Auto_HUD"/>
				<updated>2010-03-23T20:07:58Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: Created page with 'Assign dates and people to project tasks to create timeline'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Assign dates and people to project tasks to create timeline&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-22T18:54:24Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Chapter 4 */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listings==&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;  LD      init/built-in.o&lt;br /&gt;
scripts/kconfig/conf -s arch/arm/Kconfig&lt;br /&gt;
  CHK     include/linux/version.h&lt;br /&gt;
make[1]: `include/asm-arm/mach-types.h' is up to date.&lt;br /&gt;
  CHK     include/linux/utsrelease.h&lt;br /&gt;
  SYMLINK include/asm -&amp;gt; include/asm-arm&lt;br /&gt;
  CC      kernel/bounds.s&lt;br /&gt;
  GEN     include/linux/bounds.h&lt;br /&gt;
  CC      arch/arm/kernel/asm-offsets.s&lt;br /&gt;
  GEN     include/asm/asm-offsets.h&lt;br /&gt;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
  CC      scripts/mod/empty.o&lt;br /&gt;
  MKELF   scripts/mod/elfconfig.h&lt;br /&gt;
  HOSTCC  scripts/mod/file2alias.o&lt;br /&gt;
  HOSTCC  scripts/mod/modpost.o&lt;br /&gt;
.....output removed.....&lt;br /&gt;
  LD      .tmp_vmlinux1&lt;br /&gt;
  KSYM    .tmp_kallsyms1.S&lt;br /&gt;
  AS      .tmp_kallsyms1.o&lt;br /&gt;
  LD      .tmp_vmlinux2&lt;br /&gt;
  KSYM    .tmp_kallsyms2.S&lt;br /&gt;
  AS      .tmp_kallsyms2.o&lt;br /&gt;
  LD      vmlinux&lt;br /&gt;
  SYSMAP  System.map&lt;br /&gt;
  SYSMAP  .tmp_System.map&lt;br /&gt;
  OBJCOPY arch/arm/boot/Image&lt;br /&gt;
  Kernel: arch/arm/boot/Image is ready&lt;br /&gt;
  AS      arch/arm/boot/compressed/head.o&lt;br /&gt;
  GZIP    arch/arm/boot/compressed/piggy.gz&lt;br /&gt;
  AS      arch/arm/boot/compressed/piggy.o&lt;br /&gt;
  CC      arch/arm/boot/compressed/misc.o&lt;br /&gt;
  LD      arch/arm/boot/compressed/vmlinux&lt;br /&gt;
  OBJCOPY arch/arm/boot/zImage&lt;br /&gt;
  Kernel: arch/arm/boot/zImage is ready&lt;br /&gt;
  UIMAGE  arch/arm/boot/uImage&lt;br /&gt;
Image Name:   Linux-2.6.29-omap1&lt;br /&gt;
Created:      Mon Mar 22 18:48:45 2010&lt;br /&gt;
Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
Data Size:    2994248 Bytes = 2924.07 kB = 2.86 MB&lt;br /&gt;
Load Address: 80008000&lt;br /&gt;
Entry Point:  80008000&lt;br /&gt;
  Image arch/arm/boot/uImage is ready&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-22T18:37:04Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Chapter 2 */  Listings added&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listings==&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
2996196 bytes read&lt;br /&gt;
## Booting kernel from Legacy Image at 80300000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.29/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    2996132 Bytes =  2.9 MB&lt;br /&gt;
   Load Address: 80008000&lt;br /&gt;
   Entry Point:  80008000&lt;br /&gt;
   Verifying Checksum ... OK&lt;br /&gt;
   Loading Kernel Image ... OK&lt;br /&gt;
OK&lt;br /&gt;
&lt;br /&gt;
Starting kernel ...&lt;br /&gt;
&lt;br /&gt;
Uncompressing Linux.................................................................................................................................................................................................. done, booting the kernel.&lt;br /&gt;
[    0.000000] Linux version 2.6.29-omap1 (koen@dominion) (gcc version 4.3.3 (GCC) ) #1 PREEMPT Wed Oct 21 13:11:52 CEST 2009&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [411fc083] revision 3 (ARMv7), cr=10c5387f&lt;br /&gt;
[    0.000000] CPU: VIPT nonaliasing data cache, VIPT nonaliasing instruction cache&lt;br /&gt;
[    0.000000] Machine: OMAP3 Beagle Board&lt;br /&gt;
[    0.000000] Memory policy: ECC disabled, Data cache writeback&lt;br /&gt;
[    0.000000] OMAP3430 ES3.1&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xd7000000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 14680064 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 65024&lt;br /&gt;
[    0.000000] Kernel command line: console=ttyS2,115200n8 root=/dev/mmcblk0p2 rw rootwait&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/DPLL/ARM core): 26.0/332/720 MHz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xd8200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP34xx GPIO hardware version 2.5&lt;br /&gt;
[    0.000000] PID hash table entries: 1024 (order: 10, 4096 bytes)&lt;br /&gt;
[    0.000000] OMAP clockevent source: GPTIMER12 at 32768 Hz&lt;br /&gt;
[    0.000000] Console: colour dummy device 80x30&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[    0.000000] Memory: 128MB 128MB = 256MB total&lt;br /&gt;
[    0.000000] Memory: 238848KB available (5632K code, 576K data, 204K init)&lt;br /&gt;
[    0.000000] Calibrating delay loop... 740.48 BogoMIPS (lpj=2891776)&lt;br /&gt;
[    0.000000] Mount-cache hash table entries: 512&lt;br /&gt;
[    0.000000] CPU: Testing write buffer coherency: ok&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
Lease of 192.168.1.108 obtained, lease time 86400&lt;br /&gt;
run-parts: /etc/udhcpc.d/00avahi-autoipd exited with code 1&lt;br /&gt;
adding dns 192.168.1.1&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
Unknown HZ value! (75) Assume 100.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
Wed Mar 10 03:00:00 GMT 2010&lt;br /&gt;
^MINIT: Entering runlevel: 5^M&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::usr0: heartbeat&lt;br /&gt;
  beagleboard::usr1: mmc0&lt;br /&gt;
Starting Dropbear SSH server: dropbear.&lt;br /&gt;
Starting advanced power management daemon: No APM support in kernel&lt;br /&gt;
(failed.)&lt;br /&gt;
Starting Vixie-cron.&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Starting syslogd/klogd: done&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Connection Manager&lt;br /&gt;
Running ntpdate to synchronize clock.&lt;br /&gt;
Starting GPE display manager: gpe-dm&lt;br /&gt;
&lt;br /&gt;
.-------.                                           &lt;br /&gt;
|       |                  .-.                      &lt;br /&gt;
|   |   |-----.-----.-----.| |   .----..-----.-----.&lt;br /&gt;
|       |     | __  |  ---'| '--.|  .-'|     |     |&lt;br /&gt;
|   |   |  |  |     |---  ||  --'|  |  |  '  | | | |&lt;br /&gt;
'---'---'--'--'--.  |-----''----''--'  '-----'-'-'-'&lt;br /&gt;
                -'  |&lt;br /&gt;
                '---'&lt;br /&gt;
&lt;br /&gt;
The Angstrom Distribution beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
Angstrom 2009.X-stable beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/File:Make_xconfig_switch_2.png</id>
		<title>File:Make xconfig switch 2.png</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/File:Make_xconfig_switch_2.png"/>
				<updated>2010-03-19T18:41:37Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: uploaded a new version of &amp;quot;File:Make xconfig switch 2.png&amp;quot;:&amp;amp;#32;Cropped by just a few pixels to remove background text near the bottom of the image.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-18T19:01:46Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Chapter 2 */  listings updated&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listings==&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;Texas Instruments X-Loader 1.4.2 (Feb 19 2009 - 12:01:24)&lt;br /&gt;
Reading boot sector&lt;br /&gt;
Loading u-boot.bin from mmc&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
U-Boot 2009.11-rc1 (Jan 08 2010 - 21:19:52)&lt;br /&gt;
&lt;br /&gt;
OMAP3530-GP ES3.1, CPU-OPP2 L3-165MHz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  256 MB&lt;br /&gt;
NAND:  256 MiB&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Board revision C4&lt;br /&gt;
Die ID #1e30000400000000040365fa1400400a&lt;br /&gt;
Hit any key to stop autoboot:  0&lt;br /&gt;
OMAP3 beagleboard.org #&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
collinjc@collinjc-eee ~ % ./a.out                                                                                     [1021]&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
This address (0xbfe6b58c) is in our stack frame&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
This address (0x804a014) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;root@beagleboard:~# ./a.out &lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbea11cd4) is in our stack frame&lt;br /&gt;
This address (0x10670) is in our bss section&lt;br /&gt;
This address (0x10668) is in our data section&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-18T18:58:21Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: Created blanks for listings&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Listings==&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 2-1&lt;br /&gt;
| 2-6&lt;br /&gt;
| Initial Bootloader Serial Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-2&lt;br /&gt;
| 2-7&lt;br /&gt;
| Loading the Linux Kernel&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| 2-3&lt;br /&gt;
| 2-9&lt;br /&gt;
| Linux Final Boot Messages&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-4&lt;br /&gt;
| 2-21&lt;br /&gt;
| Hello World, Embedded Style&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int bss_var;        /* Uninitialized global variable */&lt;br /&gt;
&lt;br /&gt;
int data_var = 1;   /* Initialized global variable */&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
  void *stack_var;            /* Local variable on the stack */&lt;br /&gt;
  &lt;br /&gt;
  stack_var = (void *)main;   /* Don't let the compiler */&lt;br /&gt;
                              /* optimize it out */&lt;br /&gt;
&lt;br /&gt;
  printf(&amp;quot;Hello, World! Main is executing at %p\n&amp;quot;, stack_var);&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our stack frame\n&amp;quot;, &amp;amp;stack_var);&lt;br /&gt;
&lt;br /&gt;
  /* bss section contains uninitialized data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our bss section\n&amp;quot;, &amp;amp;bss_var);&lt;br /&gt;
&lt;br /&gt;
  /* data section contains initializated data */&lt;br /&gt;
  printf(&amp;quot;This address (%p) is in our data section\n&amp;quot;, &amp;amp;data_var);&lt;br /&gt;
&lt;br /&gt;
  return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Host Computer&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 2-5&lt;br /&gt;
| 2-22&lt;br /&gt;
| Hello Output for Beagle&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 4-1&lt;br /&gt;
| 4-7&lt;br /&gt;
| Kernel Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-2&lt;br /&gt;
| 4-9&lt;br /&gt;
| Link Stage: vmlinux&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 4-3&lt;br /&gt;
| 4-14&lt;br /&gt;
| Kernel Subdirectory&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project_Ideas</id>
		<title>ECE497 Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project_Ideas"/>
				<updated>2010-03-15T23:22:34Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Projects you would like to do */  Members seems a little more fitting than names&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
== Sources for Project Ideas ==&lt;br /&gt;
&lt;br /&gt;
Here are some links where you'll find ideas for your project.&lt;br /&gt;
* [http://wiki.omap.com/index.php/ETechDays_Community_Lightning_Talks ETechDays Community Lightning Talks], this is a one-day web-based conference where many project ideas are presented.  One of our 2009-2010 senior design projects was found here.&lt;br /&gt;
* [http://beagleboard.org/project Official list of Beagle Projects], there are many Beagle specific projects listed here.  Many are inactive.  ''List your project here once it running.''&lt;br /&gt;
* [http://www.youtube.com/watch?v=Mk1xjbA-ISE Augmented Reality Project], here's an idea that I think we can do on the Beagle.  Rather than using augmented reality glasses, I'd suggest we use a [http://focus.ti.com/dlpdmd/docs/dlpdiscovery.tsp?sectionId=60&amp;amp;tabId=2235 TI DLP pico projector]. [http://www.hitlabnz.org/wiki/EmbeddedAR Here's] AR running on the Beagle. &lt;br /&gt;
* [http://code.google.com/p/0xdroid/ Android], this is one of a couple of efforts to port [http://source.android.com/ Google's Android OS] to the Beagle.&lt;br /&gt;
* [[BeagleBoard/Ideas-2009]] Google summer code ideas 2009.&lt;br /&gt;
&lt;br /&gt;
== Projects you would like to do ==&lt;br /&gt;
Edit this page to add projects you would like to do.  If you aren't in the class, add ideas you would like to see done by class members.&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
! Team Members&lt;br /&gt;
! Project Title&lt;br /&gt;
! Description &lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| [[ECE597 Google PowerMeter]]&lt;br /&gt;
| Google has a [http://www.google.com/powermeter project] to view and manage home electricity usage. This project would involve designing the hardware to measure the power usage and the Beagle software in interface with it.  The Beagle would talk to the local home network via a wireless link and the home owner would configure the Beagle via a web page served on the Beagle.&lt;br /&gt;
|-&lt;br /&gt;
| Yannick Polius &amp;lt;br&amp;gt; Steven Stark &amp;lt;br&amp;gt; Paul Morrison&lt;br /&gt;
| Audio MBox&lt;br /&gt;
| This project is mostly software, with the hardware element being the use of the dsp. The idea is to tie together three technologies: speech recognition, speech synthesis, and internet access in order to create an interface capable of orating information to the user based on a vocal command. The implementation I have in mind is to use the Pocket Sphinx speech recognition engine to first understand what the user wants through speech, such as &amp;quot;Rose-Hulman&amp;quot;. Once the speech is translated, the software can execute a Wikipedia search to pull said item's page. Most of the important info is contained within the introductory paragraph, so the software will take only that chunk and feed it into the Flite speech synthesis engine. The end result is a simple machine with &amp;quot;mother box&amp;quot; like usability, that is, no interaction besides what is natural to the user (speaking) should be necessary to retrieve the information.&lt;br /&gt;
|-&lt;br /&gt;
| David Baty &amp;lt;br&amp;gt; Tom Most&lt;br /&gt;
| IRLP Node&lt;br /&gt;
| [http://www.irlp.net/ IRLP (Internet Radio Linking Project)] is an amateur radio project to allow the linking of repeaters across the world over the internet.  It requires very little hardware, but due to an antiquated interface board and is typically run on old desktop hardware that uses significantly more power than a beagle board.  All of the software already runs on Linux, but would require some porting.  Interface hardware would also have to be designed, but if DTMF (dial tone) decoding is done in software, this external board would be very simple.&lt;br /&gt;
|-&lt;br /&gt;
|Brian Embry &amp;lt;br&amp;gt; Jessica Lipscomb &amp;lt;br&amp;gt; Paul Banister&lt;br /&gt;
| [[ECE597: MythTV/DSP Pico Projector]]&lt;br /&gt;
| Have the Beagleboard act as a MythTV/portable video playback node.  This may require work with the DSP acceleration of FFMPEG/Gstreamer.  Additionally, interfacing with a Pico Projector to allow for portable media enjoyment.  If MythTV support is not practical, simple localized video playback with DSP acceleration will be used.&lt;br /&gt;
|-&lt;br /&gt;
|Chris Routh &amp;lt;br&amp;gt; [[user:collinjc | J. Cody Collins]] &amp;lt;br&amp;gt; Greg Jackson &amp;lt;br&amp;gt; Keqiong Xin&lt;br /&gt;
| [[ECE597: Auto HUD]]&lt;br /&gt;
| Use the beagle board to run image recognition on a camera feed located inside a car, and then signaling to the driver via a pico projector various objects of interest.&lt;br /&gt;
|-&lt;br /&gt;
| Adam Jesionowski&amp;lt;br&amp;gt;Qiang Jiang&lt;br /&gt;
| Adding Sense to Beagle (See [[BeagleBoard/GSoC/Ideas]])&lt;br /&gt;
| Sensory aware applications are becoming more mainstream with the release of the Apple iPhone. This project would combine both HW and SW to add sensory awareness to beagle. First, additional modules such as GPS, 3-axis accelerometers, Gyroscopes, Temperature Sensors, Humidity Sensors, Pressure Sensors, etc, would be added to beagle to compliment the microphone input in order to allow sensing of the real world environment. Then SW APIs would need to be layered on top to allow easy access to the sensory data for use by applications. &lt;br /&gt;
|-&lt;br /&gt;
| Mitch Garvin &amp;lt;br&amp;gt; Matt Luke &amp;lt;br&amp;gt; Elliot Simon &amp;lt;br&amp;gt; Jian Li&lt;br /&gt;
| [[ECE597 Interactive Pong]]&lt;br /&gt;
| Run classic pong, projecting the screen and using a camera to track user's hands for input.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/EBC_Exercise_22_Cross-Compiling</id>
		<title>EBC Exercise 22 Cross-Compiling</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/EBC_Exercise_22_Cross-Compiling"/>
				<updated>2010-03-15T23:15:58Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Step 7.5 Building a complete unstable Beagle demo image */  Minor typo corrections&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category: BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
This class is about developing software for embedded Linux.  The [http://elinux.org/Main_Page eLinux site] is a good source for embedded Linux in general.  There are many ongoing embedded efforts going on many platforms.  Poke around the site a while to get a feel for what's happening.&lt;br /&gt;
&lt;br /&gt;
We are going to use the [http://www.angstrom-distribution.org Ångström Distribution].  It's available many platforms.  Look around the site, you may recognize some of them.&lt;br /&gt;
&lt;br /&gt;
Instructions for building Ångström are given [http://www.angstrom-distribution.org/building-angstrom here]; however I'm going to present a Beagle-tuned version of those instructions on this page.&lt;br /&gt;
&lt;br /&gt;
== Step 1 - get Open Embedded metadata ==&lt;br /&gt;
&lt;br /&gt;
First install &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; by running the following on your host computer.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git-core&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following to load the meta data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
mkdir -p ${OETREE} &amp;amp;&amp;amp; cd ${OETREE}&lt;br /&gt;
git clone git://git.openembedded.org/openembedded.git openembedded&lt;br /&gt;
cd openembedded&lt;br /&gt;
git checkout origin/stable/2009 -b stable/2009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If &amp;lt;code&amp;gt;git://git.openembedded.org/openembedded.git&amp;lt;/code&amp;gt; does not work, you can also try &amp;lt;code&amp;gt;http://repo.or.cz/r/openembedded.git&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
The first git transfers some 336,000 object and takes about 18 minutes with the network running at 600 some KiB/s.  Keep an eye on it, mine stopped about 23% in and I had to restart it.  The second git takes almost no time.&lt;br /&gt;
&lt;br /&gt;
Now run the following to update the metadata:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You've created a directory called &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt;.  Go explore around it to see what is there.  Be sure to look in &amp;lt;code&amp;gt;oe/openembedded/recipes&amp;lt;/code&amp;gt;.  These folders contain instructions on where to get and how to build various things.  Look in &amp;lt;code&amp;gt;recipes/linux&amp;lt;/code&amp;gt;.  Here are instructions for building various Linux kernels.  We'll be using &amp;lt;code&amp;gt;linux-omap-2.6.*&amp;lt;/code&amp;gt;.  What's the highest version you can find?&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Installing bitbake and friends ==&lt;br /&gt;
&lt;br /&gt;
bitbake is the workhorse that knows where to get everything and how to compile it.  The following will install bitbake and additional programs that bitbake needs.  This may take 5 minutes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install bitbake&lt;br /&gt;
sudo apt-get install g++&lt;br /&gt;
sudo apt-get install help2man diffstat texi2html cvs texinfo subversion gawk&lt;br /&gt;
sudo apt-get autoremove&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are running Ubuntu you will have to also do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /bin&lt;br /&gt;
sudo mv sh sh.old&lt;br /&gt;
sudo ln -s bash sh&lt;br /&gt;
sudo sh -c &amp;quot;echo 0 &amp;gt; /proc/sys/vm/mmap_min_addr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally edit the file &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo gedit /etc/sysctl.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the following at the end and save.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is for bitbake&lt;br /&gt;
vm.mmap_min_addr = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you should be ready to run bitbake.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Psyco JIT compiler&lt;br /&gt;
|tip=bitbake suggest loading a compiler.  Load and test the compiler.  If it's worth using, write instructions.&lt;br /&gt;
}}&lt;br /&gt;
The Psyco Python JIT compiler should help speed up compilation times at the expense of memory use .  It only works on 32-bit systems. To install, use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python-psyco&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Setting up for the BeagleBoard ==&lt;br /&gt;
&lt;br /&gt;
Now let's setup &amp;lt;code&amp;gt;local.conf&amp;lt;/code&amp;gt; for our needs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ${OETREE}/build/conf&lt;br /&gt;
cp ${OETREE}/openembedded/contrib/angstrom/local.conf ${OETREE}/build/conf/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Open &amp;lt;code&amp;gt;${OETREE}/build/conf/local.conf&amp;lt;/code&amp;gt; in your favourite editor and add the following to the end of the file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE ?= &amp;quot;beagleboard&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also, look at this block of lines:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Make use of SMP and fast disks&lt;br /&gt;
PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&lt;br /&gt;
BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here you can tell it how many parallel threads to run.  If you have several cores on your machine, make this number big.  If you have only one core, you might be better performance setting it to 1.  More details are [http://wiki.openembedded.org/index.php/Advanced_configuration here].&lt;br /&gt;
* PARALLEL_MAKE sets the number &amp;quot;gcc&amp;quot; threads (same as make -j4 at compile time&lt;br /&gt;
* BB_NUMBER_THREADS sets the number of bitbake threads, (one thread can be downloading, while another compiles)&lt;br /&gt;
&lt;br /&gt;
To save you a lot of time, it is useful to disable locale generation for all but the one you need.  Add this to local.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GLIBC_GENERATE_LOCALES = &amp;quot;en_US.UTF-8 en_GB.UTF-8 de_DE.UTF-8&amp;quot; #the non us ones are needed for full builds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Note: This may break the full unstable branch compile of angstrom, (I got to the end when it complained about a local being missing), if you don't understand this disable the locals, as it will cut your compile time in half.&lt;br /&gt;
&lt;br /&gt;
== Step 4 - Start building ==&lt;br /&gt;
&lt;br /&gt;
We need to create a small script to setup the environment&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}&lt;br /&gt;
wget -c http://www.angstrom-distribution.org/files/source-me.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Take a second to read the script, and notice that it configures a download directory, a build directory, and a staging directory.  Can you explain why ${PATH} is modified in this script?&lt;br /&gt;
&lt;br /&gt;
Now we are almost ready for compiling&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Go to the OpenEmbedded folder&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
#Make sure it's up to date&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
#Set environment variables&lt;br /&gt;
cd ${OETREE}&lt;br /&gt;
source source-me.txt &lt;br /&gt;
&lt;br /&gt;
#Start building&lt;br /&gt;
bitbake nano&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a while.  bitbake is installing everything that is needed to compile the system.  This includes cross compilers, assemblers, source, everything.  I started at 10am and ended around 5:30pm.  It was running on just one of the two cores on my laptop.  How long did it take on your machine?  I notice that an additional 600M of disk space is being used.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Keep track of you running times and configurations.&lt;br /&gt;
|tip=We'll use this data to see what the best settings are.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|+ Initial &amp;lt;tt&amp;gt;bitbake nano&amp;lt;/tt&amp;gt; runtime&lt;br /&gt;
! Processor&lt;br /&gt;
! Settings&lt;br /&gt;
! Run Time&lt;br /&gt;
|-&lt;br /&gt;
| Intel Pentium-M@2.0Ghz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j1&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;1&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&lt;br /&gt;
| 4.9 hours&lt;br /&gt;
|-&lt;br /&gt;
| Intel Atom N330@1.6Ghz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 3.15 hours&lt;br /&gt;
|-&lt;br /&gt;
| Intel Core2Quad Q9300@2.5Ghz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j5&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 44 minutes&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;2&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&amp;lt;br&amp;gt;All Locals&lt;br /&gt;
| 2.5 hours&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&amp;lt;br&amp;gt;US Only&lt;br /&gt;
| 73 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E8400@3.00 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| All Locals 1.4 hours &amp;lt;br&amp;gt; US only 43 Minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 56.08 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j8&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;8&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 57.83 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;8&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 53.86 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j7&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;7&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 61.75 minutes&lt;br /&gt;
|-&lt;br /&gt;
| Core 2 Duo&amp;lt;br&amp;gt;T7600@2.33GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j1&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;1&amp;quot;&amp;lt;br&amp;gt;Psyco? No (64-bit).&lt;br /&gt;
| 2:10:04&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Building a complete image ==&lt;br /&gt;
&lt;br /&gt;
Up to this point all we have done is load all the infrastructure needed and compiled the simple '''nano''' text editor.  We don't even have the kernel yet. Do the following to build a basic console image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bitbake console-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''This bitbake took 7 hours and 15 minutes.'''  There are now some 7,700 directories with 67,000 files in the &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt; directory.  An additional 1.5G of disk space is in use.&lt;br /&gt;
&lt;br /&gt;
How did I know to use '''console-image'''?  I ran the following to find what images were out there:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
locate image | grep /oe/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This found every file with '''image''' in the name it that also had '''/oe/''' in the path.  From this I see that '''oe/openembedded/recipes/images''' has a bunch of files ending in '''-image'''.  Take a look at '''console-image.bb''' and see what you can figure out.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Loading your SD card ==&lt;br /&gt;
&lt;br /&gt;
The output of the bitbake command will ultimately be found under the &amp;lt;code&amp;gt;$OE_HOME/angstrom-dev/deploy/glibc/images/beagleboard&amp;lt;/code&amp;gt;. In there you can find at least two interesting files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
console-image-beagleboard.tar.bz2&lt;br /&gt;
uImage-beagleboard.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The console image represents a full and self-contained file system, *including* a kernel. The uImage-beagleboard.bin is a Linux kernel image suitable for loading by the U-boot bootloader.&lt;br /&gt;
&lt;br /&gt;
* Rename '''uImage-beagleboard.bin''' as '''uImage''' and load on your SD as before ([[ECE597 Getting your Beagle running (precompiled)]]).  &lt;br /&gt;
* Also load '''console-image-beagleboard.tar.bz2''' on the 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; partition like you did before.  Did you notice it untar's very quickly?  Why?&lt;br /&gt;
* Boot and explore.  What's there?  What's missing?&lt;br /&gt;
&lt;br /&gt;
Congratulations you've just build Linux from source.  Try this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
root@beagleboard:~# cd /sys/class&lt;br /&gt;
root@beagleboard:/sys/class# ls -F&lt;br /&gt;
bdi/          hwmon/        misc/         scsi_generic/ usb_device/&lt;br /&gt;
block/        i2c-adapter/  mmc_host/     scsi_host/    usb_endpoint/&lt;br /&gt;
bluetooth/    i2c-dev/      mtd/          sound/        usb_host/&lt;br /&gt;
bmi/          ieee80211/    net/          spi_master/   usbmon/&lt;br /&gt;
display/      input/        regulator/    spidev/       vc/&lt;br /&gt;
firmware/     leds/         rtc/          thermal/      vtconsole/&lt;br /&gt;
gpio/         mdio_bus/     scsi_device/  tty/&lt;br /&gt;
graphics/     mem/          scsi_disk/    ubi/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of low-level devices on the Beagle that you can access as files.  Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/class# cd leds/&lt;br /&gt;
root@beagleboard:/sys/class/leds# ls -F&lt;br /&gt;
beagleboard::usr0@ beagleboard::usr1@&lt;br /&gt;
root@beagleboard:/sys/class/leds# cd beagleboard\:\:usr0&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# cat trigger&lt;br /&gt;
none nand-disk mmc0 mmc1 [heartbeat]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of values you can assign to trigger.  Notice LED0 is blinking on and off right now. Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo none &amp;gt; trigger&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo 1 &amp;gt; brightness&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What happens?  Play around.  [http://groups.google.com/group/beagleboard/msg/c623a16637625685?hl=en Here] are instructions on reading the '''USER''' switch.  Try it.  Can you make the LEDs blink in response to the button being pressed?&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Building a complete Beagle demo image ==&lt;br /&gt;
&lt;br /&gt;
Now let's build the how demo we were running before.  We'll do this via bitbake, but argument do we give it?  Try looking in &amp;lt;code&amp;gt;oe/openembedded/recipes/images&amp;lt;/code&amp;gt;, do you see a recipe that might work?  Hint:  It has beagle in the name.  Here's what I tried.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
time bitbake beagle????-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace ???? with the recipe name you found.  I added the '''time''' command so I could see how long it takes to run.  My run took some 7.5 hours.&lt;br /&gt;
&lt;br /&gt;
== Step 7.5 Building a complete unstable Beagle demo image ==&lt;br /&gt;
I did not have as much luck getting Ångström working in the stable OE branch, but I was able to make dev work.  You should see that there are two branches available to to choose from.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git branch&lt;br /&gt;
  org.openembedded.dev&lt;br /&gt;
* stable/2009&lt;br /&gt;
$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So switch to the .dev branch by saying&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git checkout org.openembedded.dev&lt;br /&gt;
$ git pull # may not be needed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The OE dev branch '''does not''' ship with its own version of bitbake, so you will need to obtain bitbake from another source. Compiling from the OE dev branch seems to require an up-to-date version of bitbake. Install this by running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ${OETREE}&lt;br /&gt;
$ wget http://download.berlios.de/bitbake/bitbake-1.8.18.tar.gz&lt;br /&gt;
$ tar -xvf bitbake-1.8.18.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will download and unpack version 1.8.18 of bitbake. Currently, this version seems to work well with the OE dev branch. You must now edit the path that points to bitbake in the source-me.txt file so that it will point to the directory containing this version of bitbake. You should change the line containing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PATH=${OETREE}/openembedded/bitbake/bin:${ORG_PATH}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PATH=${OETREE}/bitbake-1.8.18/bin:${ORG_PATH}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''''NOTE''''': If you have modified the &amp;lt;code&amp;gt;GLIBC_GENERATE_LOCALES&amp;lt;/code&amp;gt; setting in &amp;lt;code&amp;gt;${OETREE}/build/conf/local.conf&amp;lt;/code&amp;gt; to contain only &amp;lt;code&amp;gt;en_US.UTF-8&amp;lt;/code&amp;gt;, your build may fail due to missing required locales. You should have this set to &amp;lt;code&amp;gt;GLIBC_GENERATE_LOCALES = &amp;quot;en_US.UTF en_GB.UTF-8 de_DE.UTF-8&amp;quot;&amp;lt;/code&amp;gt; for the build to be successful. If you local.conf file does not have a line containing &amp;lt;code&amp;gt;GLIBC_GENERATE_LOCALES&amp;lt;/code&amp;gt;, your build still should be successful as it will, by default, include all available locales, including those mentioned above.&lt;br /&gt;
&lt;br /&gt;
We must now wipe out our stable build directory, as the two branches are not compatible.  (Feel free to make a backup if you feel inclined).&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm -rf ${OETREE}/angstrom-dev/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you may follow the directions above by running&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ time bitbake beagle????-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a VERY long time, as it must recompile everything that was done previously.  On my E8400 it took 10.4 hours to run and used 17gb of space.&lt;br /&gt;
&lt;br /&gt;
Once it has finished take a look in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ls ${OETREE}/angstrom-dev/deploy/glibc/images/beagleboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should recognize the files from when you previously installed Angstrom, if not re-read [[ECE597_Getting_your_Beagle_running_(precompiled)]]&lt;br /&gt;
&lt;br /&gt;
The first boot of my beagle took a very long time...a few minutes (subsequent boots are faster), the beagle will hang on the below screen for a while, just let it go and it will continue.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
Error. Cannot create canvas. Abort.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I also saw a lot of these errors, again you can probably ignore them. (if you can figure out how to fix, post fix here)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cannot find fifo at /mnt/.splash/exquisite.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/EBC_Exercise_22_Cross-Compiling</id>
		<title>EBC Exercise 22 Cross-Compiling</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/EBC_Exercise_22_Cross-Compiling"/>
				<updated>2010-03-15T21:31:42Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Step 7.5 Building a complete unstable Beagle demo image */  Clarification of locale inclusion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category: BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
This class is about developing software for embedded Linux.  The [http://elinux.org/Main_Page eLinux site] is a good source for embedded Linux in general.  There are many ongoing embedded efforts going on many platforms.  Poke around the site a while to get a feel for what's happening.&lt;br /&gt;
&lt;br /&gt;
We are going to use the [http://www.angstrom-distribution.org Ångström Distribution].  It's available many platforms.  Look around the site, you may recognize some of them.&lt;br /&gt;
&lt;br /&gt;
Instructions for building Ångström are given [http://www.angstrom-distribution.org/building-angstrom here]; however I'm going to present a Beagle-tuned version of those instructions on this page.&lt;br /&gt;
&lt;br /&gt;
== Step 1 - get Open Embedded metadata ==&lt;br /&gt;
&lt;br /&gt;
First install &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; by running the following on your host computer.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git-core&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following to load the meta data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
mkdir -p ${OETREE} &amp;amp;&amp;amp; cd ${OETREE}&lt;br /&gt;
git clone git://git.openembedded.org/openembedded.git openembedded&lt;br /&gt;
cd openembedded&lt;br /&gt;
git checkout origin/stable/2009 -b stable/2009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If &amp;lt;code&amp;gt;git://git.openembedded.org/openembedded.git&amp;lt;/code&amp;gt; does not work, you can also try &amp;lt;code&amp;gt;http://repo.or.cz/r/openembedded.git&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
The first git transfers some 336,000 object and takes about 18 minutes with the network running at 600 some KiB/s.  Keep an eye on it, mine stopped about 23% in and I had to restart it.  The second git takes almost no time.&lt;br /&gt;
&lt;br /&gt;
Now run the following to update the metadata:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You've created a directory called &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt;.  Go explore around it to see what is there.  Be sure to look in &amp;lt;code&amp;gt;oe/openembedded/recipes&amp;lt;/code&amp;gt;.  These folders contain instructions on where to get and how to build various things.  Look in &amp;lt;code&amp;gt;recipes/linux&amp;lt;/code&amp;gt;.  Here are instructions for building various Linux kernels.  We'll be using &amp;lt;code&amp;gt;linux-omap-2.6.*&amp;lt;/code&amp;gt;.  What's the highest version you can find?&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Installing bitbake and friends ==&lt;br /&gt;
&lt;br /&gt;
bitbake is the workhorse that knows where to get everything and how to compile it.  The following will install bitbake and additional programs that bitbake needs.  This may take 5 minutes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install bitbake&lt;br /&gt;
sudo apt-get install g++&lt;br /&gt;
sudo apt-get install help2man diffstat texi2html cvs texinfo subversion gawk&lt;br /&gt;
sudo apt-get autoremove&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are running Ubuntu you will have to also do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /bin&lt;br /&gt;
sudo mv sh sh.old&lt;br /&gt;
sudo ln -s bash sh&lt;br /&gt;
sudo sh -c &amp;quot;echo 0 &amp;gt; /proc/sys/vm/mmap_min_addr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally edit the file &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo gedit /etc/sysctl.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the following at the end and save.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is for bitbake&lt;br /&gt;
vm.mmap_min_addr = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you should be ready to run bitbake.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Psyco JIT compiler&lt;br /&gt;
|tip=bitbake suggest loading a compiler.  Load and test the compiler.  If it's worth using, write instructions.&lt;br /&gt;
}}&lt;br /&gt;
The Psyco Python JIT compiler should help speed up compilation times at the expense of memory use .  It only works on 32-bit systems. To install, use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python-psyco&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Setting up for the BeagleBoard ==&lt;br /&gt;
&lt;br /&gt;
Now let's setup &amp;lt;code&amp;gt;local.conf&amp;lt;/code&amp;gt; for our needs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ${OETREE}/build/conf&lt;br /&gt;
cp ${OETREE}/openembedded/contrib/angstrom/local.conf ${OETREE}/build/conf/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Open &amp;lt;code&amp;gt;${OETREE}/build/conf/local.conf&amp;lt;/code&amp;gt; in your favourite editor and add the following to the end of the file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE ?= &amp;quot;beagleboard&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also, look at this block of lines:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Make use of SMP and fast disks&lt;br /&gt;
PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&lt;br /&gt;
BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here you can tell it how many parallel threads to run.  If you have several cores on your machine, make this number big.  If you have only one core, you might be better performance setting it to 1.  More details are [http://wiki.openembedded.org/index.php/Advanced_configuration here].&lt;br /&gt;
* PARALLEL_MAKE sets the number &amp;quot;gcc&amp;quot; threads (same as make -j4 at compile time&lt;br /&gt;
* BB_NUMBER_THREADS sets the number of bitbake threads, (one thread can be downloading, while another compiles)&lt;br /&gt;
&lt;br /&gt;
To save you a lot of time, it is useful to disable locale generation for all but the one you need.  Add this to local.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GLIBC_GENERATE_LOCALES = &amp;quot;en_US.UTF-8 en_GB.UTF-8 de_DE.UTF-8&amp;quot; #the non us ones are needed for full builds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Note: This may break the full unstable branch compile of angstrom, (I got to the end when it complained about a local being missing), if you don't understand this disable the locals, as it will cut your compile time in half.&lt;br /&gt;
&lt;br /&gt;
== Step 4 - Start building ==&lt;br /&gt;
&lt;br /&gt;
We need to create a small script to setup the environment&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}&lt;br /&gt;
wget -c http://www.angstrom-distribution.org/files/source-me.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Take a second to read the script, and notice that it configures a download directory, a build directory, and a staging directory.  Can you explain why ${PATH} is modified in this script?&lt;br /&gt;
&lt;br /&gt;
Now we are almost ready for compiling&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Go to the OpenEmbedded folder&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
#Make sure it's up to date&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
#Set environment variables&lt;br /&gt;
cd ${OETREE}&lt;br /&gt;
source source-me.txt &lt;br /&gt;
&lt;br /&gt;
#Start building&lt;br /&gt;
bitbake nano&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a while.  bitbake is installing everything that is needed to compile the system.  This includes cross compilers, assemblers, source, everything.  I started at 10am and ended around 5:30pm.  It was running on just one of the two cores on my laptop.  How long did it take on your machine?  I notice that an additional 600M of disk space is being used.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Keep track of you running times and configurations.&lt;br /&gt;
|tip=We'll use this data to see what the best settings are.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|+ Initial &amp;lt;tt&amp;gt;bitbake nano&amp;lt;/tt&amp;gt; runtime&lt;br /&gt;
! Processor&lt;br /&gt;
! Settings&lt;br /&gt;
! Run Time&lt;br /&gt;
|-&lt;br /&gt;
| Intel Pentium-M@2.0Ghz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j1&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;1&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&lt;br /&gt;
| 4.9 hours&lt;br /&gt;
|-&lt;br /&gt;
| Intel Atom N330@1.6Ghz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 3.15 hours&lt;br /&gt;
|-&lt;br /&gt;
| Intel Core2Quad Q9300@2.5Ghz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j5&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 44 minutes&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;2&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&amp;lt;br&amp;gt;All Locals&lt;br /&gt;
| 2.5 hours&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&amp;lt;br&amp;gt;US Only&lt;br /&gt;
| 73 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E8400@3.00 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| All Locals 1.4 hours &amp;lt;br&amp;gt; US only 43 Minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 56.08 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j8&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;8&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 57.83 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;8&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 53.86 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j7&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;7&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 61.75 minutes&lt;br /&gt;
|-&lt;br /&gt;
| Core 2 Duo&amp;lt;br&amp;gt;T7600@2.33GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j1&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;1&amp;quot;&amp;lt;br&amp;gt;Psyco? No (64-bit).&lt;br /&gt;
| 2:10:04&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Building a complete image ==&lt;br /&gt;
&lt;br /&gt;
Up to this point all we have done is load all the infrastructure needed and compiled the simple '''nano''' text editor.  We don't even have the kernel yet. Do the following to build a basic console image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bitbake console-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''This bitbake took 7 hours and 15 minutes.'''  There are now some 7,700 directories with 67,000 files in the &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt; directory.  An additional 1.5G of disk space is in use.&lt;br /&gt;
&lt;br /&gt;
How did I know to use '''console-image'''?  I ran the following to find what images were out there:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
locate image | grep /oe/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This found every file with '''image''' in the name it that also had '''/oe/''' in the path.  From this I see that '''oe/openembedded/recipes/images''' has a bunch of files ending in '''-image'''.  Take a look at '''console-image.bb''' and see what you can figure out.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Loading your SD card ==&lt;br /&gt;
&lt;br /&gt;
The output of the bitbake command will ultimately be found under the &amp;lt;code&amp;gt;$OE_HOME/angstrom-dev/deploy/glibc/images/beagleboard&amp;lt;/code&amp;gt;. In there you can find at least two interesting files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
console-image-beagleboard.tar.bz2&lt;br /&gt;
uImage-beagleboard.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The console image represents a full and self-contained file system, *including* a kernel. The uImage-beagleboard.bin is a Linux kernel image suitable for loading by the U-boot bootloader.&lt;br /&gt;
&lt;br /&gt;
* Rename '''uImage-beagleboard.bin''' as '''uImage''' and load on your SD as before ([[ECE597 Getting your Beagle running (precompiled)]]).  &lt;br /&gt;
* Also load '''console-image-beagleboard.tar.bz2''' on the 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; partition like you did before.  Did you notice it untar's very quickly?  Why?&lt;br /&gt;
* Boot and explore.  What's there?  What's missing?&lt;br /&gt;
&lt;br /&gt;
Congratulations you've just build Linux from source.  Try this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
root@beagleboard:~# cd /sys/class&lt;br /&gt;
root@beagleboard:/sys/class# ls -F&lt;br /&gt;
bdi/          hwmon/        misc/         scsi_generic/ usb_device/&lt;br /&gt;
block/        i2c-adapter/  mmc_host/     scsi_host/    usb_endpoint/&lt;br /&gt;
bluetooth/    i2c-dev/      mtd/          sound/        usb_host/&lt;br /&gt;
bmi/          ieee80211/    net/          spi_master/   usbmon/&lt;br /&gt;
display/      input/        regulator/    spidev/       vc/&lt;br /&gt;
firmware/     leds/         rtc/          thermal/      vtconsole/&lt;br /&gt;
gpio/         mdio_bus/     scsi_device/  tty/&lt;br /&gt;
graphics/     mem/          scsi_disk/    ubi/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of low-level devices on the Beagle that you can access as files.  Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/class# cd leds/&lt;br /&gt;
root@beagleboard:/sys/class/leds# ls -F&lt;br /&gt;
beagleboard::usr0@ beagleboard::usr1@&lt;br /&gt;
root@beagleboard:/sys/class/leds# cd beagleboard\:\:usr0&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# cat trigger&lt;br /&gt;
none nand-disk mmc0 mmc1 [heartbeat]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of values you can assign to trigger.  Notice LED0 is blinking on and off right now. Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo none &amp;gt; trigger&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo 1 &amp;gt; brightness&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What happens?  Play around.  [http://groups.google.com/group/beagleboard/msg/c623a16637625685?hl=en Here] are instructions on reading the '''USER''' switch.  Try it.  Can you make the LEDs blink in response to the button being pressed?&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Building a complete Beagle demo image ==&lt;br /&gt;
&lt;br /&gt;
Now let's build the how demo we were running before.  We'll do this via bitbake, but argument do we give it?  Try looking in &amp;lt;code&amp;gt;oe/openembedded/recipes/images&amp;lt;/code&amp;gt;, do you see a recipe that might work?  Hint:  It has beagle in the name.  Here's what I tried.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
time bitbake beagle????-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace ???? with the recipe name you found.  I added the '''time''' command so I could see how long it takes to run.  My run took some 7.5 hours.&lt;br /&gt;
&lt;br /&gt;
== Step 7.5 Building a complete unstable Beagle demo image ==&lt;br /&gt;
I did not have as much luck getting Angstrom working in the stable OE branch, but I was able to make dev work.  You should see that there are two branches available to to choose from&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git branch&lt;br /&gt;
  org.openembedded.dev&lt;br /&gt;
* stable/2009&lt;br /&gt;
$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So switch to the .dev branch by saying&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git checkout org.openembedded.dev&lt;br /&gt;
$ git pull # may not be needed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The OE dev branch '''does not''' ship with its own version of bitbake, so you will need to obtain bitbake from another source. Compiling from the OE dev branch seems to require an up-to-date version of bitbake. Install this by running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ${OETREE}&lt;br /&gt;
$ wget http://download.berlios.de/bitbake/bitbake-1.8.18.tar.gz&lt;br /&gt;
$ tar -xvf bitbake-1.8.18.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will download and unpack version 1.8.18 of bitbake. Currently, this version seems to work well with the OE dev branch. You must now edit the path that points to bitbake in the source-me.txt file so that it will point to the directory containing this version of bitbake. You should change the line containing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PATH=${OETREE}/openembedded/bitbake/bin:${ORG_PATH}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PATH=${OETREE}/bitbake-1.8.18/bin:${ORG_PATH}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''''NOTE''''': If you have modified the &amp;lt;code&amp;gt;GLIBC_GENERATE_LOCALES&amp;lt;/code&amp;gt; setting in &amp;lt;code&amp;gt;${OETREE}/build/conf/local.conf&amp;lt;/code&amp;gt; to contain only &amp;lt;code&amp;gt;en_US.UTF-8&amp;lt;/code&amp;gt;, your build may fail due to missing required locales. You should have this set to &amp;lt;code&amp;gt;GLIBC_GENERATE_LOCALES = &amp;quot;en_US.UTF en_GB.UTF-8 de_DE.UTF-8&amp;quot;&amp;lt;/code&amp;gt; for the build to be successful. If you local.conf file does not have a line containing &amp;lt;code&amp;gt;GLIBC_GENERATE_LOCALES&amp;lt;/code&amp;gt;, your build still should be successful as it will, by default, include all available locales, including those mentioned above.&lt;br /&gt;
&lt;br /&gt;
We must now wipe out our stable build directory, as the two branches are not compatible.  (Feel free to make a backup if you feel inclined)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm -rf ${OETREE}/angstrom-dev/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you may follow the directions above by running&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ time bitbake beagle????-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a VERY long time, as it must recompile everything that was done previously.  On my E8400 it took 10.4 hours to run and used 17gb of space.&lt;br /&gt;
&lt;br /&gt;
Once it has finished take a look in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ls ${OETREE}/angstrom-dev/deploy/glibc/images/beagleboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should recognize the files from when you previously installed Angstrom, if not re-read [[ECE597_Getting_your_Beagle_running_(precompiled)]]&lt;br /&gt;
&lt;br /&gt;
The first boot of my beagle took a very long time...a few minutes (subsequent boots are faster), the beagle will hang on the below screen for a while, just let it go and it will continue.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
Error. Cannot create canvas. Abort.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I also saw a lot of these errors, again you can probably ignore them. (if you can figure out how to fix, post fix here)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cannot find fifo at /mnt/.splash/exquisite.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/EBC_Exercise_22_Cross-Compiling</id>
		<title>EBC Exercise 22 Cross-Compiling</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/EBC_Exercise_22_Cross-Compiling"/>
				<updated>2010-03-15T21:09:00Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Step 7.5 Building a complete unstable Beagle demo image */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category: BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
This class is about developing software for embedded Linux.  The [http://elinux.org/Main_Page eLinux site] is a good source for embedded Linux in general.  There are many ongoing embedded efforts going on many platforms.  Poke around the site a while to get a feel for what's happening.&lt;br /&gt;
&lt;br /&gt;
We are going to use the [http://www.angstrom-distribution.org Ångström Distribution].  It's available many platforms.  Look around the site, you may recognize some of them.&lt;br /&gt;
&lt;br /&gt;
Instructions for building Ångström are given [http://www.angstrom-distribution.org/building-angstrom here]; however I'm going to present a Beagle-tuned version of those instructions on this page.&lt;br /&gt;
&lt;br /&gt;
== Step 1 - get Open Embedded metadata ==&lt;br /&gt;
&lt;br /&gt;
First install &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; by running the following on your host computer.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git-core&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following to load the meta data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
mkdir -p ${OETREE} &amp;amp;&amp;amp; cd ${OETREE}&lt;br /&gt;
git clone git://git.openembedded.org/openembedded.git openembedded&lt;br /&gt;
cd openembedded&lt;br /&gt;
git checkout origin/stable/2009 -b stable/2009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If &amp;lt;code&amp;gt;git://git.openembedded.org/openembedded.git&amp;lt;/code&amp;gt; does not work, you can also try &amp;lt;code&amp;gt;http://repo.or.cz/r/openembedded.git&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
The first git transfers some 336,000 object and takes about 18 minutes with the network running at 600 some KiB/s.  Keep an eye on it, mine stopped about 23% in and I had to restart it.  The second git takes almost no time.&lt;br /&gt;
&lt;br /&gt;
Now run the following to update the metadata:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You've created a directory called &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt;.  Go explore around it to see what is there.  Be sure to look in &amp;lt;code&amp;gt;oe/openembedded/recipes&amp;lt;/code&amp;gt;.  These folders contain instructions on where to get and how to build various things.  Look in &amp;lt;code&amp;gt;recipes/linux&amp;lt;/code&amp;gt;.  Here are instructions for building various Linux kernels.  We'll be using &amp;lt;code&amp;gt;linux-omap-2.6.*&amp;lt;/code&amp;gt;.  What's the highest version you can find?&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Installing bitbake and friends ==&lt;br /&gt;
&lt;br /&gt;
bitbake is the workhorse that knows where to get everything and how to compile it.  The following will install bitbake and additional programs that bitbake needs.  This may take 5 minutes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install bitbake&lt;br /&gt;
sudo apt-get install g++&lt;br /&gt;
sudo apt-get install help2man diffstat texi2html cvs texinfo subversion gawk&lt;br /&gt;
sudo apt-get autoremove&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are running Ubuntu you will have to also do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /bin&lt;br /&gt;
sudo mv sh sh.old&lt;br /&gt;
sudo ln -s bash sh&lt;br /&gt;
sudo sh -c &amp;quot;echo 0 &amp;gt; /proc/sys/vm/mmap_min_addr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally edit the file &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo gedit /etc/sysctl.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the following at the end and save.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is for bitbake&lt;br /&gt;
vm.mmap_min_addr = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you should be ready to run bitbake.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Psyco JIT compiler&lt;br /&gt;
|tip=bitbake suggest loading a compiler.  Load and test the compiler.  If it's worth using, write instructions.&lt;br /&gt;
}}&lt;br /&gt;
The Psyco Python JIT compiler should help speed up compilation times at the expense of memory use .  It only works on 32-bit systems. To install, use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python-psyco&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Setting up for the BeagleBoard ==&lt;br /&gt;
&lt;br /&gt;
Now let's setup &amp;lt;code&amp;gt;local.conf&amp;lt;/code&amp;gt; for our needs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ${OETREE}/build/conf&lt;br /&gt;
cp ${OETREE}/openembedded/contrib/angstrom/local.conf ${OETREE}/build/conf/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Open &amp;lt;code&amp;gt;${OETREE}/build/conf/local.conf&amp;lt;/code&amp;gt; in your favourite editor and add the following to the end of the file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE ?= &amp;quot;beagleboard&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also, look at this block of lines:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Make use of SMP and fast disks&lt;br /&gt;
PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&lt;br /&gt;
BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here you can tell it how many parallel threads to run.  If you have several cores on your machine, make this number big.  If you have only one core, you might be better performance setting it to 1.  More details are [http://wiki.openembedded.org/index.php/Advanced_configuration here].&lt;br /&gt;
* PARALLEL_MAKE sets the number &amp;quot;gcc&amp;quot; threads (same as make -j4 at compile time&lt;br /&gt;
* BB_NUMBER_THREADS sets the number of bitbake threads, (one thread can be downloading, while another compiles)&lt;br /&gt;
&lt;br /&gt;
To save you a lot of time, it is useful to disable locale generation for all but the one you need.  Add this to local.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GLIBC_GENERATE_LOCALES = &amp;quot;en_US.UTF-8 en_GB.UTF-8 de_DE.UTF-8&amp;quot; #the non us ones are needed for full builds&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*Note: This may break the full unstable branch compile of angstrom, (I got to the end when it complained about a local being missing), if you don't understand this disable the locals, as it will cut your compile time in half.&lt;br /&gt;
&lt;br /&gt;
== Step 4 - Start building ==&lt;br /&gt;
&lt;br /&gt;
We need to create a small script to setup the environment&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}&lt;br /&gt;
wget -c http://www.angstrom-distribution.org/files/source-me.txt&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Take a second to read the script, and notice that it configures a download directory, a build directory, and a staging directory.  Can you explain why ${PATH} is modified in this script?&lt;br /&gt;
&lt;br /&gt;
Now we are almost ready for compiling&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Go to the OpenEmbedded folder&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
#Make sure it's up to date&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
#Set environment variables&lt;br /&gt;
cd ${OETREE}&lt;br /&gt;
source source-me.txt &lt;br /&gt;
&lt;br /&gt;
#Start building&lt;br /&gt;
bitbake nano&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a while.  bitbake is installing everything that is needed to compile the system.  This includes cross compilers, assemblers, source, everything.  I started at 10am and ended around 5:30pm.  It was running on just one of the two cores on my laptop.  How long did it take on your machine?  I notice that an additional 600M of disk space is being used.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Keep track of you running times and configurations.&lt;br /&gt;
|tip=We'll use this data to see what the best settings are.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|+ Initial &amp;lt;tt&amp;gt;bitbake nano&amp;lt;/tt&amp;gt; runtime&lt;br /&gt;
! Processor&lt;br /&gt;
! Settings&lt;br /&gt;
! Run Time&lt;br /&gt;
|-&lt;br /&gt;
| Intel Pentium-M@2.0Ghz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j1&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;1&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&lt;br /&gt;
| 4.9 hours&lt;br /&gt;
|-&lt;br /&gt;
| Intel Atom N330@1.6Ghz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 3.15 hours&lt;br /&gt;
|-&lt;br /&gt;
| Intel Core2Quad Q9300@2.5Ghz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j5&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 44 minutes&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;2&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&amp;lt;br&amp;gt;All Locals&lt;br /&gt;
| 2.5 hours&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&amp;lt;br&amp;gt;US Only&lt;br /&gt;
| 73 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E8400@3.00 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| All Locals 1.4 hours &amp;lt;br&amp;gt; US only 43 Minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 56.08 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j8&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;8&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 57.83 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;8&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 53.86 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j7&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;7&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 61.75 minutes&lt;br /&gt;
|-&lt;br /&gt;
| Core 2 Duo&amp;lt;br&amp;gt;T7600@2.33GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j1&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;1&amp;quot;&amp;lt;br&amp;gt;Psyco? No (64-bit).&lt;br /&gt;
| 2:10:04&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Building a complete image ==&lt;br /&gt;
&lt;br /&gt;
Up to this point all we have done is load all the infrastructure needed and compiled the simple '''nano''' text editor.  We don't even have the kernel yet. Do the following to build a basic console image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bitbake console-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''This bitbake took 7 hours and 15 minutes.'''  There are now some 7,700 directories with 67,000 files in the &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt; directory.  An additional 1.5G of disk space is in use.&lt;br /&gt;
&lt;br /&gt;
How did I know to use '''console-image'''?  I ran the following to find what images were out there:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
locate image | grep /oe/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This found every file with '''image''' in the name it that also had '''/oe/''' in the path.  From this I see that '''oe/openembedded/recipes/images''' has a bunch of files ending in '''-image'''.  Take a look at '''console-image.bb''' and see what you can figure out.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Loading your SD card ==&lt;br /&gt;
&lt;br /&gt;
The output of the bitbake command will ultimately be found under the &amp;lt;code&amp;gt;$OE_HOME/angstrom-dev/deploy/glibc/images/beagleboard&amp;lt;/code&amp;gt;. In there you can find at least two interesting files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
console-image-beagleboard.tar.bz2&lt;br /&gt;
uImage-beagleboard.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The console image represents a full and self-contained file system, *including* a kernel. The uImage-beagleboard.bin is a Linux kernel image suitable for loading by the U-boot bootloader.&lt;br /&gt;
&lt;br /&gt;
* Rename '''uImage-beagleboard.bin''' as '''uImage''' and load on your SD as before ([[ECE597 Getting your Beagle running (precompiled)]]).  &lt;br /&gt;
* Also load '''console-image-beagleboard.tar.bz2''' on the 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; partition like you did before.  Did you notice it untar's very quickly?  Why?&lt;br /&gt;
* Boot and explore.  What's there?  What's missing?&lt;br /&gt;
&lt;br /&gt;
Congratulations you've just build Linux from source.  Try this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
root@beagleboard:~# cd /sys/class&lt;br /&gt;
root@beagleboard:/sys/class# ls -F&lt;br /&gt;
bdi/          hwmon/        misc/         scsi_generic/ usb_device/&lt;br /&gt;
block/        i2c-adapter/  mmc_host/     scsi_host/    usb_endpoint/&lt;br /&gt;
bluetooth/    i2c-dev/      mtd/          sound/        usb_host/&lt;br /&gt;
bmi/          ieee80211/    net/          spi_master/   usbmon/&lt;br /&gt;
display/      input/        regulator/    spidev/       vc/&lt;br /&gt;
firmware/     leds/         rtc/          thermal/      vtconsole/&lt;br /&gt;
gpio/         mdio_bus/     scsi_device/  tty/&lt;br /&gt;
graphics/     mem/          scsi_disk/    ubi/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of low-level devices on the Beagle that you can access as files.  Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/class# cd leds/&lt;br /&gt;
root@beagleboard:/sys/class/leds# ls -F&lt;br /&gt;
beagleboard::usr0@ beagleboard::usr1@&lt;br /&gt;
root@beagleboard:/sys/class/leds# cd beagleboard\:\:usr0&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# cat trigger&lt;br /&gt;
none nand-disk mmc0 mmc1 [heartbeat]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of values you can assign to trigger.  Notice LED0 is blinking on and off right now. Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo none &amp;gt; trigger&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo 1 &amp;gt; brightness&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What happens?  Play around.  [http://groups.google.com/group/beagleboard/msg/c623a16637625685?hl=en Here] are instructions on reading the '''USER''' switch.  Try it.  Can you make the LEDs blink in response to the button being pressed?&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Building a complete Beagle demo image ==&lt;br /&gt;
&lt;br /&gt;
Now let's build the how demo we were running before.  We'll do this via bitbake, but argument do we give it?  Try looking in &amp;lt;code&amp;gt;oe/openembedded/recipes/images&amp;lt;/code&amp;gt;, do you see a recipe that might work?  Hint:  It has beagle in the name.  Here's what I tried.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
time bitbake beagle????-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace ???? with the recipe name you found.  I added the '''time''' command so I could see how long it takes to run.  My run took some 7.5 hours.&lt;br /&gt;
&lt;br /&gt;
== Step 7.5 Building a complete unstable Beagle demo image ==&lt;br /&gt;
I did not have as much luck getting Angstrom working in the stable OE branch, but I was able to make dev work.  You should see that there are two branches available to to choose from&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git branch&lt;br /&gt;
  org.openembedded.dev&lt;br /&gt;
* stable/2009&lt;br /&gt;
$ &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
So switch to the .dev branch by saying&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ git checkout org.openembedded.dev&lt;br /&gt;
$ git pull # may not be needed&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The OE dev branch '''does not''' ship with its own version of bitbake, so you will need to obtain bitbake from another source. Compiling from the OE dev branch seems to require an up-to-date version of bitbake. Install this by running&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ${OETREE}&lt;br /&gt;
$ wget http://download.berlios.de/bitbake/bitbake-1.8.18.tar.gz&lt;br /&gt;
$ tar -xvf bitbake-1.8.18.tar.gz&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This will download and unpack version 1.8.18 of bitbake. Currently, this version seems to work well with the OE dev branch. You must now edit the path that points to bitbake in the source-me.txt file so that it will point to the directory containing this version of bitbake. You should change the line containing&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PATH=${OETREE}/openembedded/bitbake/bin:${ORG_PATH}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
to the following:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
PATH=${OETREE}/bitbake-1.8.18/bin:${ORG_PATH}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
*The full image failed for me due to not having necessary locale information in the final stages, so if you followed the directions above, comment that line out in your local.conf (EDIT: the locale generation line above has been modified to include the necessary locales for the full image, please ensure your local.conf has been updated as shown above before proceeding)&lt;br /&gt;
&lt;br /&gt;
We must now wipe out our stable build directory, as the two branches are not compatible.  (Feel free to make a backup if you feel inclined)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ rm -rf ${OETREE}/angstrom-dev/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now you may follow the directions above by running&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ time bitbake beagle????-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a VERY long time, as it must recompile everything that was done previously.  On my E8400 it took 10.4 hours to run and used 17gb of space.&lt;br /&gt;
&lt;br /&gt;
Once it has finished take a look in&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ ls ${OETREE}/angstrom-dev/deploy/glibc/images/beagleboard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should recognize the files from when you previously installed Angstrom, if not re-read [[ECE597_Getting_your_Beagle_running_(precompiled)]]&lt;br /&gt;
&lt;br /&gt;
The first boot of my beagle took a very long time...a few minutes (subsequent boots are faster), the beagle will hang on the below screen for a while, just let it go and it will continue.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
Error. Cannot create canvas. Abort.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
I also saw a lot of these errors, again you can probably ignore them. (if you can figure out how to fix, post fix here)&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Cannot find fifo at /mnt/.splash/exquisite.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE597_Project_Auto_HUD</id>
		<title>ECE597 Project Auto HUD</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE597_Project_Auto_HUD"/>
				<updated>2010-03-12T21:14:56Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: Created page with '==Project Overview== The goal of this project is to use the beagle board to run image recognition on a camera feed located inside a car, and then signaling to the driver via a pi…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Project Overview==&lt;br /&gt;
The goal of this project is to use the beagle board to run image recognition on a camera feed located inside a car, and then signaling to the driver via a pico projector various objects of interest. &lt;br /&gt;
&lt;br /&gt;
==Team Members==&lt;br /&gt;
Chris Routh&lt;br /&gt;
&lt;br /&gt;
[[user:collinjc | J. Cody Collins]]&lt;br /&gt;
&lt;br /&gt;
Greg Jackson&lt;br /&gt;
&lt;br /&gt;
Keqiong Xin&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project_Ideas</id>
		<title>ECE497 Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project_Ideas"/>
				<updated>2010-03-12T21:03:50Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Projects you would like to do */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
== Sources for Project Ideas ==&lt;br /&gt;
&lt;br /&gt;
Here are some links where you'll find ideas for your project.&lt;br /&gt;
* [http://wiki.omap.com/index.php/ETechDays_Community_Lightning_Talks ETechDays Community Lightning Talks], this is a one-day web-based conference where many project ideas are presented.  One of our 2009-2010 senior design projects was found here.&lt;br /&gt;
* [http://beagleboard.org/project Official list of Beagle Projects], there are many Beagle specific projects listed here.  Many are inactive.  ''List your project here once it running.''&lt;br /&gt;
* [http://www.youtube.com/watch?v=Mk1xjbA-ISE Augmented Reality Project], here's an idea that I think we can do on the Beagle.  Rather than using augmented reality glasses, I'd suggest we use a [http://focus.ti.com/dlpdmd/docs/dlpdiscovery.tsp?sectionId=60&amp;amp;tabId=2235 TI DLP pico projector]. [http://www.hitlabnz.org/wiki/EmbeddedAR Here's] AR running on the Beagle. &lt;br /&gt;
* [http://code.google.com/p/0xdroid/ Android], this is one of a couple of efforts to port [http://source.android.com/ Google's Android OS] to the Beagle.&lt;br /&gt;
* [[BeagleBoard/Ideas-2009]] Google summer code ideas 2009.&lt;br /&gt;
&lt;br /&gt;
== Projects you would like to do ==&lt;br /&gt;
Edit this page to add projects you would like to do.  If you aren't in the class, add ideas you would like to see done by class members.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Team Names&lt;br /&gt;
! Project Title&lt;br /&gt;
! Description &lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| [[ECE597 Google PowerMeter]]&lt;br /&gt;
| Google has a [http://www.google.com/powermeter project] to view and manage home electricity usage. This project would involve designing the hardware to measure the power usage and the Beagle software in interface with it.  The Beagle would talk to the local home network via a wireless link and the home owner would configure the Beagle via a web page served on the Beagle.&lt;br /&gt;
|-&lt;br /&gt;
| Yannick Polius &amp;lt;br&amp;gt; Steven Stark &amp;lt;br&amp;gt; Paul Morrison&lt;br /&gt;
| Audio MBox&lt;br /&gt;
| This project is mostly software, with the hardware element being the use of the dsp. The idea is to tie together three technologies: speech recognition, speech synthesis, and internet access in order to create an interface capable of orating information to the user based on a vocal command. The implementation I have in mind is to use the Pocket Sphinx speech recognition engine to first understand what the user wants through speech, such as &amp;quot;Rose-Hulman&amp;quot;. Once the speech is translated, the software can execute a Wikipedia search to pull said item's page. Most of the important info is contained within the introductory paragraph, so the software will take only that chunk and feed it into the Flite speech synthesis engine. The end result is a simple machine with &amp;quot;mother box&amp;quot; like usability, that is, no interaction besides what is natural to the user (speaking) should be necessary to retrieve the information.&lt;br /&gt;
|-&lt;br /&gt;
| David Baty&lt;br /&gt;
| IRLP Node&lt;br /&gt;
| [http://www.irlp.net/ IRLP (Internet Radio Linking Project)] is an amateur radio project to allow the linking of repeaters across the world over the internet.  It requires very little hardware, but due to an antiquated interface board and is typically run on old desktop hardware that uses significantly more power than a beagle board.  All of the software already runs on Linux, but would require some porting.  Interface hardware would also have to be designed, but if DTMF (dial tone) decoding is done in software, this external board would be very simple.&lt;br /&gt;
|-&lt;br /&gt;
| Tom Most&lt;br /&gt;
| Open Source Slingbox&lt;br /&gt;
| The [http://slingbox.com/ Slingbox] is a device that allows &amp;quot;place-shifting&amp;quot; of television through streaming.  The idea is to create a similar device using the Beagle and a USB DTV tuner.  It could implement a [[UPnP]] server and perform on-the-fly transcoding using [http://gstreamer.org/ GStreamer] (with [http://www.freedesktop.org/wiki/GstOpenMAX DSP] [[BeagleBoard/gst-openmax|acceleration]]).  Hopefully [[UPnP#NAT_Traversal|UPnP NAT traversal]] could be used to automatically open a port for external access as well, enabling &amp;quot;place-shifting&amp;quot;.  [[DLNA Open Source Projects]] are relevant, particularly [http://live.gnome.org/Rygel Rygel].&lt;br /&gt;
|-&lt;br /&gt;
|Brian Embry &amp;lt;br&amp;gt; Jessica Lipscomb &amp;lt;br&amp;gt; Paul Banister&lt;br /&gt;
| [[ECE597: MythTV/DSP Pico Projector]]&lt;br /&gt;
| Have the Beagleboard act as a MythTV/portable video playback node.  This may require work with the DSP acceleration of FFMPEG/Gstreamer.  Additionally, interfacing with a Pico Projector to allow for portable media enjoyment.  If MythTV support is not practical, simple localized video playback with DSP acceleration will be used.&lt;br /&gt;
|-&lt;br /&gt;
| Adam Jesionowski&lt;br /&gt;
| Fast Boot&lt;br /&gt;
| See [[BeagleBoard/GSoC/Ideas#Fast_Linux_boot]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project_Ideas</id>
		<title>ECE497 Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project_Ideas"/>
				<updated>2010-03-12T20:50:15Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Projects you would like to do */  Changed name to names since there ar more than one.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
== Sources for Project Ideas ==&lt;br /&gt;
&lt;br /&gt;
Here are some links where you'll find ideas for your project.&lt;br /&gt;
* [http://wiki.omap.com/index.php/ETechDays_Community_Lightning_Talks ETechDays Community Lightning Talks], this is a one-day web-based conference where many project ideas are presented.  One of our 2009-2010 senior design projects was found here.&lt;br /&gt;
* [http://beagleboard.org/project Official list of Beagle Projects], there are many Beagle specific projects listed here.  Many are inactive.  ''List your project here once it running.''&lt;br /&gt;
* [http://www.youtube.com/watch?v=Mk1xjbA-ISE Augmented Reality Project], here's an idea that I think we can do on the Beagle.  Rather than using augmented reality glasses, I'd suggest we use a [http://focus.ti.com/dlpdmd/docs/dlpdiscovery.tsp?sectionId=60&amp;amp;tabId=2235 TI DLP pico projector]. [http://www.hitlabnz.org/wiki/EmbeddedAR Here's] AR running on the Beagle. &lt;br /&gt;
* [http://code.google.com/p/0xdroid/ Android], this is one of a couple of efforts to port [http://source.android.com/ Google's Android OS] to the Beagle.&lt;br /&gt;
* [[BeagleBoard/Ideas-2009]] Google summer code ideas 2009.&lt;br /&gt;
&lt;br /&gt;
== Projects you would like to do ==&lt;br /&gt;
Edit this page to add projects you would like to do.  If you aren't in the class, add ideas you would like to see done by class members.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Team Names&lt;br /&gt;
! Project Title&lt;br /&gt;
! Description &lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| [[ECE597 Google PowerMeter]]&lt;br /&gt;
| Google has a [http://www.google.com/powermeter project] to view and manage home electricity usage. This project would involve designing the hardware to measure the power usage and the Beagle software in interface with it.  The Beagle would talk to the local home network via a wireless link and the home owner would configure the Beagle via a web page served on the Beagle.&lt;br /&gt;
|-&lt;br /&gt;
| Yannick Polius&lt;br /&gt;
| Audio MBox&lt;br /&gt;
| This project is mostly software, with the hardware element being the use of the dsp. The idea is to tie together three technologies: speech recognition, speech synthesis, and internet access in order to create an interface capable of orating information to the user based on a vocal command. The implementation I have in mind is to use the Pocket Sphinx speech recognition engine to first understand what the user wants through speech, such as &amp;quot;Rose-Hulman&amp;quot;. Once the speech is translated, the software can execute a Wikipedia search to pull said item's page. Most of the important info is contained within the introductory paragraph, so the software will take only that chunk and feed it into the Flite speech synthesis engine. The end result is a simple machine with &amp;quot;mother box&amp;quot; like usability, that is, no interaction besides what is natural to the user (speaking) should be necessary to retrieve the information.&lt;br /&gt;
|-&lt;br /&gt;
| David Baty&lt;br /&gt;
| IRLP Node&lt;br /&gt;
| [http://www.irlp.net/ IRLP (Internet Radio Linking Project)] is an amateur radio project to allow the linking of repeaters across the world over the internet.  It requires very little hardware, but due to an antiquated interface board and is typically run on old desktop hardware that uses significantly more power than a beagle board.  All of the software already runs on Linux, but would require some porting.  Interface hardware would also have to be designed, but if DTMF (dial tone) decoding is done in software, this external board would be very simple.&lt;br /&gt;
|-&lt;br /&gt;
| Tom Most&lt;br /&gt;
| Open Source Slingbox&lt;br /&gt;
| The [http://slingbox.com/ Slingbox] is a device that allows &amp;quot;place-shifting&amp;quot; of television through streaming.  The idea is to create a similar device using the Beagle and a USB DTV tuner.  It could implement a [[UPnP]] server and perform on-the-fly transcoding using [http://gstreamer.org/ GStreamer] (with [http://www.freedesktop.org/wiki/GstOpenMAX DSP] [[BeagleBoard/gst-openmax|acceleration]]).  Hopefully [[UPnP#NAT_Traversal|UPnP NAT traversal]] could be used to automatically open a port for external access as well, enabling &amp;quot;place-shifting&amp;quot;.  [[DLNA Open Source Projects]] are relevant, particularly [http://live.gnome.org/Rygel Rygel].&lt;br /&gt;
|-&lt;br /&gt;
| [[user:collinjc | J. Cody Collins]]&lt;br /&gt;
| BeagleBoard-Based Router&lt;br /&gt;
| This idea would involve writing software to perform the capabilities found in commercially available routers. The software could be written from scratch, or an existing project, such as [http://openwrt.org/ OpenWrt] could be ported to the BeagleBoard. Currently, some efforts are being made in porting OpenWrt to the BeagleBoard, but the number of contributers has been relatively small. These efforts could potentially result in a low-cost, open-source, OMAP3-based router.&lt;br /&gt;
|-&lt;br /&gt;
|Brian Embry &amp;lt;br&amp;gt; Jessica Lipscomb &amp;lt;br&amp;gt; Paul Banister&lt;br /&gt;
| MythTV/DSP Pico Projector&lt;br /&gt;
| Have the Beagleboard act as a MythTV/portable video playback node.  This may require work with the DSP acceleration of FFMPEG/Gstreamer.  Additionally, interfacing with a Pico Projector to allow for portable media enjoyment.  If MythTV support is not practical, simple localized video playback with DSP acceleration will be used.&lt;br /&gt;
|-&lt;br /&gt;
| Adam Jesionowski&lt;br /&gt;
| Fast Boot&lt;br /&gt;
| See [[BeagleBoard/GSoC/Ideas#Fast_Linux_boot]]&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/EBC_Exercise_23_Configuring_the_Kernel</id>
		<title>EBC Exercise 23 Configuring the Kernel</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/EBC_Exercise_23_Configuring_the_Kernel"/>
				<updated>2010-03-12T19:38:08Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* bitbake */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
There are several ways to get and configure the kernel. You could go to the [www.kernel.org The Linux Kernel Archives] find the ---arm--- branch, download a kernel and patch it for the omap.  You could use [http://git-scm.com/ git] to get a kernel.  Or you could just use [http://bitbake.berlios.de/manual/ bitbake] like we did before.  &lt;br /&gt;
&lt;br /&gt;
Let's first learn how to do it the bitbake way.  I'll also include some instructions for using git.&lt;br /&gt;
&lt;br /&gt;
== bitbake ==&lt;br /&gt;
&lt;br /&gt;
When you did [[ECE597 Installing The Ångström Distribution]] you used bitbake to build '''console-image'''.  During that build the kernel was downloaded and compiled.  If you used the default configure, the source code was removed once it was done.  Check and see:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}/angstrom-dev/work/beagleboard-angstrom-linux-gnueabi&lt;br /&gt;
ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should see a directory starting with &amp;lt;code&amp;gt;linux-omap-&amp;lt;/code&amp;gt;.  The rest of the name tells what version you have.  Change to that directory and see what's there:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd linux-omap-2.29-r46&lt;br /&gt;
ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you see a '''git''' directory, you are in luck. If you see just a '''temp''' directory you need to do the following to reload the sources:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}/build/conf&lt;br /&gt;
gedit local.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Find the line near the top that says &amp;lt;code&amp;gt;INHERIT += &amp;quot; rm_work &amp;quot;&amp;lt;/code&amp;gt; and comment it out.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# INHERIT += &amp;quot; rm_work &amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Save the file and then:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 cd ${OETREE}/openembedded&lt;br /&gt;
$ bitbake -c clean linux-omap-2.29-r46&lt;br /&gt;
$ bitbake -f -c compile linux-omap-2.29-r46&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
''Note:  These instructions are based on&lt;br /&gt;
[http://wh1t3s.com/2009/05/11/oe-bitake-kernel-mods/ this] which is a good reference on finding and modifying the kernel in the oe distribution. In fact, [http://wh1t3s.com/ wh1t3s] seems to have several nice tips.''&lt;br /&gt;
&lt;br /&gt;
This took some three hours on my machine.  Your mileage may vary.  Once done go back to&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}/angstrom-dev/work/beagleboard/angstrom-linux-gnueabi/linux-omap-2.29-r46&lt;br /&gt;
ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You should now see the '''git''' directory.  cd to it and look around.&lt;br /&gt;
&lt;br /&gt;
You can now configure the kernel.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install libqt3-mt-dev&lt;br /&gt;
make xconfig&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
After saving the configuration changes to update the .config file, it is a simple matter of rerunning the forced compile step from above to rebuild the kernel:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ bitbake -f -c compile linux-omap-2.6.28&lt;br /&gt;
$ bitbake -f -c deploy linux-omap-2.6.28&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If your kernel configuration modifications happen to result in the generation of any loadable modules, then you will wind up with another file in the deployment images folder:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
$ cd ${OETREE}/angstrom-dev/deploy/glibc/images/beagleboard&lt;br /&gt;
$ ls&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/EBC_Exercise_22_Cross-Compiling</id>
		<title>EBC Exercise 22 Cross-Compiling</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/EBC_Exercise_22_Cross-Compiling"/>
				<updated>2010-03-11T19:40:36Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Step 4 - Start building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category: BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
This class is about developing software for embedded Linux.  The [http://elinux.org/Main_Page eLinux site] is a good source for embedded Linux in general.  There are many ongoing embedded efforts going on many platforms.  Poke around the site a while to get a feel for what's happening.&lt;br /&gt;
&lt;br /&gt;
We are going to use the [http://www.angstrom-distribution.org Ångström Distribution].  It's available many platforms.  Look around the site, you may recognize some of them.&lt;br /&gt;
&lt;br /&gt;
Instructions for building Ångström are given [http://www.angstrom-distribution.org/building-angstrom here]; however I'm going to present a Beagle-tuned version of those instructions on this page.&lt;br /&gt;
&lt;br /&gt;
== Step 1 - get Open Embedded metadata ==&lt;br /&gt;
&lt;br /&gt;
First install &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; by running the following on your host computer.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git-core&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following to load the meta data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
mkdir -p ${OETREE} &amp;amp;&amp;amp; cd ${OETREE}&lt;br /&gt;
git clone git://git.openembedded.org/openembedded.git openembedded&lt;br /&gt;
cd openembedded&lt;br /&gt;
git checkout origin/stable/2009 -b stable/2009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If &amp;lt;code&amp;gt;git://git.openembedded.org/openembedded.git&amp;lt;/code&amp;gt; does not work, you can also try &amp;lt;code&amp;gt;http://repo.or.cz/r/openembedded.git&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
The first git transfers some 336,000 object and takes about 18 minutes with the network running at 600 some KiB/s.  Keep an eye on it, mine stopped about 23% in and I had to restart it.  The second git takes almost no time.&lt;br /&gt;
&lt;br /&gt;
Now run the following to update the metadata:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You've created a directory called &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt;.  Go explore around it to see what is there.  Be sure to look in &amp;lt;code&amp;gt;oe/openembedded/recipes&amp;lt;/code&amp;gt;.  These folders contain instructions on where to get and how to build various things.  Look in &amp;lt;code&amp;gt;recipes/Linux&amp;lt;/code&amp;gt;.  Here are instructions for building various Linux kernels.  We'll be using &amp;lt;code&amp;gt;linux-omap-2.6.*&amp;lt;/code&amp;gt;.  What's the highest version you can find?&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Installing bitbake and friends ==&lt;br /&gt;
&lt;br /&gt;
bitbake is the workhorse that knows where to get everything and how to compile it.  The following will install bitbake and additional programs that bitbake needs.  This may take 5 minutes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install bitbake&lt;br /&gt;
sudo apt-get install g++&lt;br /&gt;
sudo apt-get install help2man diffstat texi2html cvs texinfo subversion gawk&lt;br /&gt;
sudo apt-get autoremove&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are running Ubuntu you will have to also do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /bin&lt;br /&gt;
sudo mv sh sh.old&lt;br /&gt;
sudo ln -s bash sh&lt;br /&gt;
sudo sh -c &amp;quot;echo 0 &amp;gt; /proc/sys/vm/mmap_min_addr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally edit the file &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo gedit /etc/sysctl.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the following at the end and save.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is for bitbake&lt;br /&gt;
vm.mmap_min_addr = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you should be ready to run bitbake.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Psyco JIT compiler&lt;br /&gt;
|tip=bitbake suggest loading a compiler.  Load and test the compiler.  If it's worth using, write instructions.&lt;br /&gt;
}}&lt;br /&gt;
The Psyco Python JIT compiler should help speed up compilation times at the expense of memory use .  It only works on 32-bit systems. To install, use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python-psyco&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Setting up for the BeagleBoard ==&lt;br /&gt;
&lt;br /&gt;
Now let's setup &amp;lt;code&amp;gt;local.conf&amp;lt;/code&amp;gt; for our needs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ${OETREE}/build/conf&lt;br /&gt;
cp ${OETREE}/openembedded/contrib/angstrom/local.conf ${OETREE}/build/conf/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Open &amp;lt;code&amp;gt;${OETREE}/build/conf/local.conf&amp;lt;/code&amp;gt; in your favourite editor and add the following to the end of the file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE ?= &amp;quot;beagleboard&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also, look at this block of lines:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Make use of SMP and fast disks&lt;br /&gt;
PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&lt;br /&gt;
BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here you can tell it how many parallel threads to run.  If you have several cores on your machine, make this number big.  If you have only one core, you might be better performance setting it to 1.  More details are [http://wiki.openembedded.org/index.php/Advanced_configuration here].&lt;br /&gt;
&lt;br /&gt;
To save you a lot of time, it is useful to disable locale generation for all but the one you need.  Add this to local.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GLIBC_GENERATE_LOCALES = &amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 4 - Start building ==&lt;br /&gt;
&lt;br /&gt;
We need a small script to setup the environment, so download [http://www.rose-hulman.edu/~yoder/eLinux/files/source-me.txt source-me.txt] to ${OETREE}.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#Go to the OpenEmbedded folder&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
#Make sure it's up to date&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
#Set environment variables&lt;br /&gt;
cd ${OETREE}&lt;br /&gt;
source source-me.txt &lt;br /&gt;
&lt;br /&gt;
#Start building&lt;br /&gt;
bitbake nano&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a while.  bitbake is installing everything that is needed to compile the system.  This includes cross compilers, assemblers, source, everything.  I started at 10am and ended around 5:30pm.  It was running on just one of the two cores on my laptop.  How long did it take on your machine?  I notice that an additional 600M of disk space is being used.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Keep track of you running times and configurations.&lt;br /&gt;
|tip=We'll use this data to see what the best settings are.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|+ Initial &amp;lt;tt&amp;gt;bitbake nano&amp;lt;/tt&amp;gt; runtime&lt;br /&gt;
! Processor&lt;br /&gt;
! Settings&lt;br /&gt;
! Run Time&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;2&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&lt;br /&gt;
| 2.5 hours&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&lt;br /&gt;
| ''pending''&lt;br /&gt;
|-&lt;br /&gt;
| E8400@3.00 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| All Locals 1.4 hours &amp;lt;br&amp;gt; US only 43 Minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 56.08 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j8&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;8&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 57.83 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;8&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 53.86 minutes&lt;br /&gt;
|-&lt;br /&gt;
| T7600@2.33GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j1&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;1&amp;quot;&amp;lt;br&amp;gt;Psyco? No (64-bit).&lt;br /&gt;
| 5412.14user 1446.15system 2:10:04elapsed 87%CPU (0avgtext+0avgdata 0maxresident)k&amp;lt;br&amp;gt;559896inputs+16591944outputs (2435major+323453596minor)pagefaults 0swaps&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Building a complete image ==&lt;br /&gt;
&lt;br /&gt;
Up to this point all we have done is load all the infrastructure needed and compiled the simple '''nano''' text editor.  We don't even have the kernel yet. Do the following to build a basic console image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bitbake console-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''This bitbake took 7 hours and 15 minutes.'''  There are now some 7,700 directories with 67,000 files in the &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt; directory.  An additional 1.5G of disk space is in use.&lt;br /&gt;
&lt;br /&gt;
How did I know to use '''console-image'''?  I ran the following to find what images were out there:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
locate image | grep /oe/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This found every file with '''image''' in the name it that also had '''/oe/''' in the path.  From this I see that '''oe/openembedded/recipes/images''' has a bunch of files ending in '''-image'''.  Take a look at '''console-image.bb''' and see what you can figure out.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Loading your SD card ==&lt;br /&gt;
&lt;br /&gt;
The output of the bitbake command will ultimately be found under the &amp;lt;code&amp;gt;$OE_HOME/angstrom-dev/deploy/glibc/images/beagleboard&amp;lt;/code&amp;gt;. In there you can find at least two interesting files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
console-image-beagleboard.tar.bz2&lt;br /&gt;
uImage-beagleboard.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The console image represents a full and self-contained file system, *including* a kernel. The uImage-beagleboard.bin is a Linux kernel image suitable for loading by the U-boot bootloader.&lt;br /&gt;
&lt;br /&gt;
* Rename '''uImage-beagleboard.bin''' as '''uImage''' and load on your SD as before ([[Getting your Beagle running]]).  &lt;br /&gt;
* Also load '''console-image-beagleboard.tar.bz2''' on the 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; partition like you did before.  Did you notice it untar's very quickly?  Why?&lt;br /&gt;
* Boot and explore.  What's there?  What's missing?&lt;br /&gt;
&lt;br /&gt;
Congratulations you've just build Linux from source.  Try this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
root@beagleboard:~# cd /sys/class&lt;br /&gt;
root@beagleboard:/sys/class# ls -F&lt;br /&gt;
bdi/          hwmon/        misc/         scsi_generic/ usb_device/&lt;br /&gt;
block/        i2c-adapter/  mmc_host/     scsi_host/    usb_endpoint/&lt;br /&gt;
bluetooth/    i2c-dev/      mtd/          sound/        usb_host/&lt;br /&gt;
bmi/          ieee80211/    net/          spi_master/   usbmon/&lt;br /&gt;
display/      input/        regulator/    spidev/       vc/&lt;br /&gt;
firmware/     leds/         rtc/          thermal/      vtconsole/&lt;br /&gt;
gpio/         mdio_bus/     scsi_device/  tty/&lt;br /&gt;
graphics/     mem/          scsi_disk/    ubi/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of low-level devices on the Beagle that you can access as files.  Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/class# cd leds/&lt;br /&gt;
root@beagleboard:/sys/class/leds# ls -F&lt;br /&gt;
beagleboard::usr0@ beagleboard::usr1@&lt;br /&gt;
root@beagleboard:/sys/class/leds# cd beagleboard\:\:usr0&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# cat trigger&lt;br /&gt;
none nand-disk mmc0 mmc1 [heartbeat]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of values you can assign to trigger.  Notice LED0 is blinking on and off right now. Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo none &amp;gt; trigger&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo 1 &amp;gt; brightness&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What happens?  Play around.  [http://groups.google.com/group/beagleboard/msg/c623a16637625685?hl=en Here] are instructions on reading the '''USER''' switch.  Try it.  Can you make the LEDs blink in response to the button being pressed?&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Building a complete Beagle demo image ==&lt;br /&gt;
&lt;br /&gt;
Now let's build the how demo we were running before.  We'll do this via bitbake, but argument do we give it?  Try looking in &amp;lt;code&amp;gt;oe/openembedded/recipes/images&amp;lt;/code&amp;gt;, do you see a recipe that might work?  Hint:  It has beagle in the name.  Here's what I tried.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
time bitbake beagle????-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace ???? with the recipe name you found.  I added the '''time''' command so I could see how long it takes to run.  My run took some 7.5 hours.&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-11T17:49:38Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/EBC_Exercise_22_Cross-Compiling</id>
		<title>EBC Exercise 22 Cross-Compiling</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/EBC_Exercise_22_Cross-Compiling"/>
				<updated>2010-03-11T17:46:56Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Step 4 - Start building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category: BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
This class is about developing software for embedded Linux.  The [http://elinux.org/Main_Page eLinux site] is a good source for embedded Linux in general.  There are many ongoing embedded efforts going on many platforms.  Poke around the site a while to get a feel for what's happening.&lt;br /&gt;
&lt;br /&gt;
We are going to use the [http://www.angstrom-distribution.org Ångström Distribution].  It's available many platforms.  Look around the site, you may recognize some of them.&lt;br /&gt;
&lt;br /&gt;
Instructions for building Ångström are given [http://www.angstrom-distribution.org/building-angstrom here]; however I'm going to present a Beagle-tuned version of those instructions on this page.&lt;br /&gt;
&lt;br /&gt;
== Step 1 - get Open Embedded metadata ==&lt;br /&gt;
&lt;br /&gt;
First install &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; by running the following on your host computer.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git-core&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following to load the meta data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
mkdir -p ${OETREE} &amp;amp;&amp;amp; cd ${OETREE}&lt;br /&gt;
git clone git://git.openembedded.org/openembedded.git openembedded&lt;br /&gt;
cd openembedded&lt;br /&gt;
git checkout origin/stable/2009 -b stable/2009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If &amp;lt;code&amp;gt;git://git.openembedded.org/openembedded.git&amp;lt;/code&amp;gt; does not work, you can also try &amp;lt;code&amp;gt;http://repo.or.cz/r/openembedded.git&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
The first git transfers some 336,000 object and takes about 18 minutes with the network running at 600 some KiB/s.  Keep an eye on it, mine stopped about 23% in and I had to restart it.  The second git takes almost no time.&lt;br /&gt;
&lt;br /&gt;
Now run the following to update the metadata:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You've created a directory called &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt;.  Go explore around it to see what is there.  Be sure to look in &amp;lt;code&amp;gt;oe/openembedded/recipes&amp;lt;/code&amp;gt;.  These folders contain instructions on where to get and how to build various things.  Look in &amp;lt;code&amp;gt;recipes/Linux&amp;lt;/code&amp;gt;.  Here are instructions for building various Linux kernels.  We'll be using &amp;lt;code&amp;gt;linux-omap-2.6.*&amp;lt;/code&amp;gt;.  What's the highest version you can find?&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Installing bitbake and friends ==&lt;br /&gt;
&lt;br /&gt;
bitbake is the workhorse that knows where to get everything and how to compile it.  The following will install bitbake and additional programs that bitbake needs.  This may take 5 minutes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install bitbake&lt;br /&gt;
sudo apt-get install g++&lt;br /&gt;
sudo apt-get install help2man diffstat texi2html cvs texinfo subversion gawk&lt;br /&gt;
sudo apt-get autoremove&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are running Ubuntu you will have to also do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /bin&lt;br /&gt;
sudo mv sh sh.old&lt;br /&gt;
sudo ln -s bash sh&lt;br /&gt;
sudo sh -c &amp;quot;echo 0 &amp;gt; /proc/sys/vm/mmap_min_addr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally edit the file &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo gedit /etc/sysctl.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the following at the end and save.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is for bitbake&lt;br /&gt;
vm.mmap_min_addr = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you should be ready to run bitbake.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Psyco JIT compiler&lt;br /&gt;
|tip=bitbake suggest loading a compiler.  Load and test the compiler.  If it's worth using, write instructions.&lt;br /&gt;
}}&lt;br /&gt;
The Psyco Python JIT compiler should help speed up compilation times at the expense of memory use .  It only works on 32-bit systems. To install, use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python-psyco&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Setting up for the BeagleBoard ==&lt;br /&gt;
&lt;br /&gt;
We need a small script to setup the environment, so download [http://www.rose-hulman.edu/~yoder/eLinux/files/source-me.txt source-me.txt] to ${OETREE}.&lt;br /&gt;
&lt;br /&gt;
Now let's setup &amp;lt;code&amp;gt;local.conf&amp;lt;/code&amp;gt; for our needs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ${OETREE}/build/conf&lt;br /&gt;
cp ${OETREE}/openembedded/contrib/angstrom/local.conf ${OETREE}/build/conf/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Open &amp;lt;code&amp;gt;${OETREE}/build/conf/local.conf&amp;lt;/code&amp;gt; in your favourite editor and add the following to the end of the file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE ?= &amp;quot;beagleboard&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also, look at this block of lines:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Make use of SMP and fast disks&lt;br /&gt;
PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&lt;br /&gt;
BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here you can tell it how many parallel threads to run.  If you have several cores on your machine, make this number big.  If you have only one core, you might be better performance setting it to 1.  More details are [http://wiki.openembedded.org/index.php/Advanced_configuration here].&lt;br /&gt;
&lt;br /&gt;
To save you a lot of time, it is useful to disable locale generation for all but the one you need.  Add this to local.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GLIBC_GENERATE_LOCALES = &amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 4 - Start building ==&lt;br /&gt;
Do the following...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# set environment variables&lt;br /&gt;
cd ${OETREE}&lt;br /&gt;
source source-me.txt &lt;br /&gt;
&lt;br /&gt;
#Go to the OE tree&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
#Make sure it's up to date&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
#Start building&lt;br /&gt;
bitbake nano&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a while.  bitbake is installing everything that is needed to compile the system.  This includes cross compilers, assemblers, source, everything.  I started at 10am and ended around 5:30pm.  It was running on just one of the two cores on my laptop.  How long did it take on your machine?  I notice that an additional 600M of disk space is being used.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Keep track of you running times and configurations.&lt;br /&gt;
|tip=We'll use this data to see what the best settings are.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|+ Initial &amp;lt;tt&amp;gt;bitbake nano&amp;lt;/tt&amp;gt; runtime&lt;br /&gt;
! Processor&lt;br /&gt;
! Settings&lt;br /&gt;
! Run Time&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;2&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&lt;br /&gt;
| 2.5 hours&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&lt;br /&gt;
| ''pending''&lt;br /&gt;
|-&lt;br /&gt;
| E8400@3.00 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| All Locals 1.4 hours &amp;lt;br&amp;gt; US only 43 Minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 56.08 minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j8&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;8&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 57.83 minutes&lt;br /&gt;
|-&lt;br /&gt;
| T7600@2.33GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j1&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;1&amp;quot;&amp;lt;br&amp;gt;Psyco? No (64-bit).&lt;br /&gt;
| 5412.14user 1446.15system 2:10:04elapsed 87%CPU (0avgtext+0avgdata 0maxresident)k&amp;lt;br&amp;gt;559896inputs+16591944outputs (2435major+323453596minor)pagefaults 0swaps&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Building a complete image ==&lt;br /&gt;
&lt;br /&gt;
Up to this point all we have done is load all the infrastructure needed and compiled the simple '''nano''' text editor.  We don't even have the kernel yet. Do the following to build a basic console image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bitbake console-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''This bitbake took 7 hours and 15 minutes.'''  There are now some 7,700 directories with 67,000 files in the &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt; directory.  An additional 1.5G of disk space is in use.&lt;br /&gt;
&lt;br /&gt;
How did I know to use '''console-image'''?  I ran the following to find what images were out there:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
locate image | grep /oe/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This found every file with '''image''' in the name it that also had '''/oe/''' in the path.  From this I see that '''oe/openembedded/recipes/images''' has a bunch of files ending in '''-image'''.  Take a look at '''console-image.bb''' and see what you can figure out.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Loading your SD card ==&lt;br /&gt;
&lt;br /&gt;
The output of the bitbake command will ultimately be found under the &amp;lt;code&amp;gt;$OE_HOME/angstrom-dev/deploy/glibc/images/beagleboard&amp;lt;/code&amp;gt;. In there you can find at least two interesting files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
console-image-beagleboard.tar.bz2&lt;br /&gt;
uImage-beagleboard.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The console image represents a full and self-contained file system, *including* a kernel. The uImage-beagleboard.bin is a Linux kernel image suitable for loading by the U-boot bootloader.&lt;br /&gt;
&lt;br /&gt;
* Rename '''uImage-beagleboard.bin''' as '''uImage''' and load on your SD as before ([[Getting your Beagle running]]).  &lt;br /&gt;
* Also load '''console-image-beagleboard.tar.bz2''' on the 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; partition like you did before.  Did you notice it untar's very quickly?  Why?&lt;br /&gt;
* Boot and explore.  What's there?  What's missing?&lt;br /&gt;
&lt;br /&gt;
Congratulations you've just build Linux from source.  Try this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
root@beagleboard:~# cd /sys/class&lt;br /&gt;
root@beagleboard:/sys/class# ls -F&lt;br /&gt;
bdi/          hwmon/        misc/         scsi_generic/ usb_device/&lt;br /&gt;
block/        i2c-adapter/  mmc_host/     scsi_host/    usb_endpoint/&lt;br /&gt;
bluetooth/    i2c-dev/      mtd/          sound/        usb_host/&lt;br /&gt;
bmi/          ieee80211/    net/          spi_master/   usbmon/&lt;br /&gt;
display/      input/        regulator/    spidev/       vc/&lt;br /&gt;
firmware/     leds/         rtc/          thermal/      vtconsole/&lt;br /&gt;
gpio/         mdio_bus/     scsi_device/  tty/&lt;br /&gt;
graphics/     mem/          scsi_disk/    ubi/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of low-level devices on the Beagle that you can access as files.  Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/class# cd leds/&lt;br /&gt;
root@beagleboard:/sys/class/leds# ls -F&lt;br /&gt;
beagleboard::usr0@ beagleboard::usr1@&lt;br /&gt;
root@beagleboard:/sys/class/leds# cd beagleboard\:\:usr0&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# cat trigger&lt;br /&gt;
none nand-disk mmc0 mmc1 [heartbeat]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of values you can assign to trigger.  Notice LED0 is blinking on and off right now. Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo none &amp;gt; trigger&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo 1 &amp;gt; brightness&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What happens?  Play around.  [http://groups.google.com/group/beagleboard/msg/c623a16637625685?hl=en Here] are instructions on reading the '''USER''' switch.  Try it.  Can you make the LEDs blink in response to the button being pressed?&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Building a complete Beagle demo image ==&lt;br /&gt;
&lt;br /&gt;
Now let's build the how demo we were running before.  We'll do this via bitbake, but argument do we give it?  Try looking in &amp;lt;code&amp;gt;oe/openembedded/recipes/images&amp;lt;/code&amp;gt;, do you see a recipe that might work?  Hint:  It has beagle in the name.  Here's what I tried.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
time bitbake beagle????-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace ???? with the recipe name you found.  I added the '''time''' command so I could see how long it takes to run.  My run took some 7.5 hours.&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/EBC_Exercise_22_Cross-Compiling</id>
		<title>EBC Exercise 22 Cross-Compiling</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/EBC_Exercise_22_Cross-Compiling"/>
				<updated>2010-03-11T15:59:12Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Step 4 - Start building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category: BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
This class is about developing software for embedded Linux.  The [http://elinux.org/Main_Page eLinux site] is a good source for embedded Linux in general.  There are many ongoing embedded efforts going on many platforms.  Poke around the site a while to get a feel for what's happening.&lt;br /&gt;
&lt;br /&gt;
We are going to use the [http://www.angstrom-distribution.org Ångström Distribution].  It's available many platforms.  Look around the site, you may recognize some of them.&lt;br /&gt;
&lt;br /&gt;
Instructions for building Ångström are given [http://www.angstrom-distribution.org/building-angstrom here]; however I'm going to present a Beagle-tuned version of those instructions on this page.&lt;br /&gt;
&lt;br /&gt;
== Step 1 - get Open Embedded metadata ==&lt;br /&gt;
&lt;br /&gt;
First install &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; by running the following on your host computer.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git-core&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following to load the meta data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
mkdir -p ${OETREE} &amp;amp;&amp;amp; cd ${OETREE}&lt;br /&gt;
git clone git://git.openembedded.org/openembedded.git openembedded&lt;br /&gt;
cd openembedded&lt;br /&gt;
git checkout origin/stable/2009 -b stable/2009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If &amp;lt;code&amp;gt;git://git.openembedded.org/openembedded.git&amp;lt;/code&amp;gt; does not work, you can also try &amp;lt;code&amp;gt;http://repo.or.cz/r/openembedded.git&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
The first git transfers some 336,000 object and takes about 18 minutes with the network running at 600 some KiB/s.  Keep an eye on it, mine stopped about 23% in and I had to restart it.  The second git takes almost no time.&lt;br /&gt;
&lt;br /&gt;
Now run the following to update the metadata:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You've created a directory called &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt;.  Go explore around it to see what is there.  Be sure to look in &amp;lt;code&amp;gt;oe/openembedded/recipes&amp;lt;/code&amp;gt;.  These folders contain instructions on where to get and how to build various things.  Look in &amp;lt;code&amp;gt;recipes/Linux&amp;lt;/code&amp;gt;.  Here are instructions for building various Linux kernels.  We'll be using &amp;lt;code&amp;gt;linux-omap-2.6.*&amp;lt;/code&amp;gt;.  What's the highest version you can find?&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Installing bitbake and friends ==&lt;br /&gt;
&lt;br /&gt;
bitbake is the workhorse that knows where to get everything and how to compile it.  The following will install bitbake and additional programs that bitbake needs.  This may take 5 minutes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install bitbake&lt;br /&gt;
sudo apt-get install g++&lt;br /&gt;
sudo apt-get install help2man diffstat texi2html cvs texinfo subversion gawk&lt;br /&gt;
sudo apt-get autoremove&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are running Ubuntu you will have to also do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /bin&lt;br /&gt;
sudo mv sh sh.old&lt;br /&gt;
sudo ln -s bash sh&lt;br /&gt;
sudo sh -c &amp;quot;echo 0 &amp;gt; /proc/sys/vm/mmap_min_addr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally edit the file &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo gedit /etc/sysctl.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the following at the end and save.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is for bitbake&lt;br /&gt;
vm.mmap_min_addr = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you should be ready to run bitbake.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Psyco JIT compiler&lt;br /&gt;
|tip=bitbake suggest loading a compiler.  Load and test the compiler.  If it's worth using, write instructions.&lt;br /&gt;
}}&lt;br /&gt;
The Psyco Python JIT compiler should help speed up compilation times at the expense of memory use .  It only works on 32-bit systems. To install, use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python-psyco&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Setting up for the BeagleBoard ==&lt;br /&gt;
&lt;br /&gt;
We need a small script to setup the environment, so download [http://www.rose-hulman.edu/~yoder/eLinux/files/source-me.txt source-me.txt] to ${OETREE}.&lt;br /&gt;
&lt;br /&gt;
Now let's setup &amp;lt;code&amp;gt;local.conf&amp;lt;/code&amp;gt; for our needs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ${OETREE}/build/conf&lt;br /&gt;
cp ${OETREE}/openembedded/contrib/angstrom/local.conf ${OETREE}/build/conf/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Open &amp;lt;code&amp;gt;${OETREE}/build/conf/local.conf&amp;lt;/code&amp;gt; in your favourite editor and add the following to the end of the file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE ?= &amp;quot;beagleboard&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also, look at this block of lines:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Make use of SMP and fast disks&lt;br /&gt;
PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&lt;br /&gt;
BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here you can tell it how many parallel threads to run.  If you have several cores on your machine, make this number big.  If you have only one core, you might be better performance setting it to 1.  More details are [http://wiki.openembedded.org/index.php/Advanced_configuration here].&lt;br /&gt;
&lt;br /&gt;
To save you a lot of time, it is useful to disable locale generation for all but the one you need.  Add this to local.conf&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
GLIBC_GENERATE_LOCALES = &amp;quot;en_US.UTF-8&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 4 - Start building ==&lt;br /&gt;
Do the following...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# set environment variables&lt;br /&gt;
cd ${OETREE}&lt;br /&gt;
source source-me.txt &lt;br /&gt;
&lt;br /&gt;
#Go to the OE tree&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
#Make sure it's up to date&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
#Start building&lt;br /&gt;
bitbake nano&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a while.  bitbake is installing everything that is needed to compile the system.  This includes cross compilers, assemblers, source, everything.  I started at 10am and ended around 5:30pm.  It was running on just one of the two cores on my laptop.  How long did it take on your machine?  I notice that an additional 600M of disk space is being used.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Keep track of you running times and configurations.&lt;br /&gt;
|tip=We'll use this data to see what the best settings are.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|+ Initial &amp;lt;tt&amp;gt;bitbake nano&amp;lt;/tt&amp;gt; runtime&lt;br /&gt;
! Processor&lt;br /&gt;
! Settings&lt;br /&gt;
! Run Time&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;2&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&lt;br /&gt;
| 2.5 hours&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&lt;br /&gt;
| ''pending''&lt;br /&gt;
|-&lt;br /&gt;
| E8400@3.00 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| All Locals 1.4 hours &amp;lt;br&amp;gt; US only 43 Minutes&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (&amp;amp;times;2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| 56.08 minutes&lt;br /&gt;
|-&lt;br /&gt;
| T7600@2.33GHz (&amp;amp;times2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j1&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;1&amp;quot;&amp;lt;br&amp;gt;Psyco? No (64-bit).&lt;br /&gt;
| 5412.14user 1446.15system 2:10:04elapsed 87%CPU (0avgtext+0avgdata 0maxresident)k&amp;lt;br&amp;gt;559896inputs+16591944outputs (2435major+323453596minor)pagefaults 0swaps&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Building a complete image ==&lt;br /&gt;
&lt;br /&gt;
Up to this point all we have done is load all the infrastructure needed and compiled the simple '''nano''' text editor.  We don't even have the kernel yet. Do the following to build a basic console image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bitbake console-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''This bitbake took 7 hours and 15 minutes.'''  There are now some 7,700 directories with 67,000 files in the &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt; directory.  An additional 1.5G of disk space is in use.&lt;br /&gt;
&lt;br /&gt;
How did I know to use '''console-image'''?  I ran the following to find what images were out there:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
locate image | grep /oe/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This found every file with '''image''' in the name it that also had '''/oe/''' in the path.  From this I see that '''oe/openembedded/recipes/images''' has a bunch of files ending in '''-image'''.  Take a look at '''console-image.bb''' and see what you can figure out.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Loading your SD card ==&lt;br /&gt;
&lt;br /&gt;
The output of the bitbake command will ultimately be found under the &amp;lt;code&amp;gt;$OE_HOME/angstrom-dev/deploy/glibc/images/beagleboard&amp;lt;/code&amp;gt;. In there you can find at least two interesting files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
console-image-beagleboard.tar.bz2&lt;br /&gt;
uImage-beagleboard.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The console image represents a full and self-contained file system, *including* a kernel. The uImage-beagleboard.bin is a Linux kernel image suitable for loading by the U-boot bootloader.&lt;br /&gt;
&lt;br /&gt;
* Rename '''uImage-beagleboard.bin''' as '''uImage''' and load on your SD as before ([[Getting your Beagle running]]).  &lt;br /&gt;
* Also load '''console-image-beagleboard.tar.bz2''' on the 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; partition like you did before.  Did you notice it untar's very quickly?  Why?&lt;br /&gt;
* Boot and explore.  What's there?  What's missing?&lt;br /&gt;
&lt;br /&gt;
Congratulations you've just build Linux from source.  Try this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
root@beagleboard:~# cd /sys/class&lt;br /&gt;
root@beagleboard:/sys/class# ls -F&lt;br /&gt;
bdi/          hwmon/        misc/         scsi_generic/ usb_device/&lt;br /&gt;
block/        i2c-adapter/  mmc_host/     scsi_host/    usb_endpoint/&lt;br /&gt;
bluetooth/    i2c-dev/      mtd/          sound/        usb_host/&lt;br /&gt;
bmi/          ieee80211/    net/          spi_master/   usbmon/&lt;br /&gt;
display/      input/        regulator/    spidev/       vc/&lt;br /&gt;
firmware/     leds/         rtc/          thermal/      vtconsole/&lt;br /&gt;
gpio/         mdio_bus/     scsi_device/  tty/&lt;br /&gt;
graphics/     mem/          scsi_disk/    ubi/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of low-level devices on the Beagle that you can access as files.  Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/class# cd leds/&lt;br /&gt;
root@beagleboard:/sys/class/leds# ls -F&lt;br /&gt;
beagleboard::usr0@ beagleboard::usr1@&lt;br /&gt;
root@beagleboard:/sys/class/leds# cd beagleboard\:\:usr0&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# cat trigger&lt;br /&gt;
none nand-disk mmc0 mmc1 [heartbeat]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of values you can assign to trigger.  Notice LED0 is blinking on and off right now. Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo none &amp;gt; trigger&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo 1 &amp;gt; brightness&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What happens?  Play around.  [http://groups.google.com/group/beagleboard/msg/c623a16637625685?hl=en Here] are instructions on reading the '''USER''' switch.  Try it.  Can you make the LEDs blink in response to the button being pressed?&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Building a complete Beagle demo image ==&lt;br /&gt;
&lt;br /&gt;
Now let's build the how demo we were running before.  We'll do this via bitbake, but argument do we give it?  Try looking in &amp;lt;code&amp;gt;oe/openembedded/recipes/images&amp;lt;/code&amp;gt;, do you see a recipe that might work?  Hint:  It has beagle in the name.  Here's what I tried.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
time bitbake beagle????-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace ???? with the recipe name you found.  I added the '''time''' command so I could see how long it takes to run.  My run took some 7.5 hours.&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-11T13:51:32Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
I am currently working on a script to automate the bitbake process with multiple cores. This is a copy of the script in its current form. Please note that it is a work in progress.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#!/bin/sh&lt;br /&gt;
# bitbake automation&lt;br /&gt;
# J. Cody Collins&lt;br /&gt;
&lt;br /&gt;
START=$(date +%s)&lt;br /&gt;
&lt;br /&gt;
MAXTRIES=15&lt;br /&gt;
COUNT=1&lt;br /&gt;
&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;set environment variables&amp;quot;&lt;br /&gt;
cd ${OETREE}&lt;br /&gt;
. ${OETREE}/sourceme.txt &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Go to the OE tree&amp;quot;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Make sure it's up to date&amp;quot;&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;Start building&amp;quot;&lt;br /&gt;
bitbake $1&lt;br /&gt;
&lt;br /&gt;
while [ $? -ne 0 ]; do&lt;br /&gt;
	if [ $COUNT -lt $MAXTRIES ]; then&lt;br /&gt;
		((COUNT++))&lt;br /&gt;
		echo &amp;quot;re-running bitbake -- trial $COUNT&amp;quot;&lt;br /&gt;
		# Give the user a chance to kill the task&lt;br /&gt;
		sleep 5&lt;br /&gt;
		bitbake $1&lt;br /&gt;
	else&lt;br /&gt;
		echo &amp;quot;Maximum tries exceeded. Exiting...&amp;quot;&lt;br /&gt;
		break&lt;br /&gt;
	fi&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
END=$(date +%s)&lt;br /&gt;
DIFF=$(( $END - $START ))&lt;br /&gt;
echo &amp;quot;Build took $DIFF seconds.&amp;quot;&lt;br /&gt;
echo &amp;quot;Completed after $COUNT attempts.&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project_Ideas</id>
		<title>ECE497 Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project_Ideas"/>
				<updated>2010-03-11T06:16:43Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Projects you would like to do */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
== Sources for Project Ideas ==&lt;br /&gt;
&lt;br /&gt;
Here are some links where you'll find ideas for your project.&lt;br /&gt;
* [http://wiki.omap.com/index.php/ETechDays_Community_Lightning_Talks ETechDays Community Lightning Talks], this is a one-day web-based conference where many project ideas are presented.  One of our 2009-2010 senior design projects was found here.&lt;br /&gt;
* [http://beagleboard.org/project Official list of Beagle Projects], there are many Beagle specific projects listed here.  Many are inactive.  ''List your project here once it running.''&lt;br /&gt;
* [http://www.youtube.com/watch?v=Mk1xjbA-ISE Augmented Reality Project], here's an idea that I think we can do on the Beagle.  Rather than using augmented reality glasses, I'd suggest we use a [http://focus.ti.com/dlpdmd/docs/dlpdiscovery.tsp?sectionId=60&amp;amp;tabId=2235 TI DLP pico projector]. [http://www.hitlabnz.org/wiki/EmbeddedAR Here's] AR running on the Beagle. &lt;br /&gt;
* [http://code.google.com/p/0xdroid/ Android], this is one of a couple of efforts to port [http://source.android.com/ Google's Android OS] to the Beagle.&lt;br /&gt;
* [[BeagleBoard/Ideas-2009]] Google summer code ideas 2009.&lt;br /&gt;
&lt;br /&gt;
== Projects you would like to do ==&lt;br /&gt;
Edit this page to add projects you would like to do.  If you aren't in the class, add ideas you would like to see done by class members.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Proposer's Name&lt;br /&gt;
!Project Title&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Sample Project&lt;br /&gt;
| Describe what your project idea is.  What software does it build on (if any).  Is there hardware design involved.  What software background is needed.  &lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Google PowerMeter&lt;br /&gt;
| Google has a [http://www.google.com/powermeter project] to view and manage home electricity usage. This project would involve designing the hardware to measure the power usage and the Beagle software in interface with it.  The Beagle would talk to the local home network via a wireless link and the home owner would configure the Beagle via a web page served on the Beagle.&lt;br /&gt;
|-&lt;br /&gt;
| Yannick Polius&lt;br /&gt;
| Audio MBox&lt;br /&gt;
| This project is mostly software, with the hardware element being the use of the dsp. The idea is to tie together three technologies: speech recognition, speech synthesis, and internet access in order to create an interface capable of orating information to the user based on a vocal command. The implementation I have in mind is to use the Pocket Sphinx speech recognition engine to first understand what the user wants through speech, such as &amp;quot;Rose-Hulman&amp;quot;. Once the speech is translated, the software can execute a Wikipedia search to pull said item's page. Most of the important info is contained within the introductory paragraph, so the software will take only that chunk and feed it into the Flite speech synthesis engine. The end result is a simple machine with &amp;quot;mother box&amp;quot; like usability, that is, no interaction besides what is natural to the user (speaking) should be necessary to retrieve the information.&lt;br /&gt;
|-&lt;br /&gt;
| David Baty&lt;br /&gt;
| IRLP Node&lt;br /&gt;
| [http://www.irlp.net/ IRLP (Internet Radio Linking Project)] is an amateur radio project to allow the linking of repeaters across the world over the internet.  It requires very little hardware, but due to an antiquated interface board and is typically run on old desktop hardware that uses significantly more power than a beagle board.  All of the software already runs on Linux, but would require some porting.  Interface hardware would also have to be designed, but if DTMF (dial tone) decoding is done in software, this external board would be very simple.&lt;br /&gt;
|-&lt;br /&gt;
| Tom Most&lt;br /&gt;
| Open Source Slingbox&lt;br /&gt;
| The [http://slingbox.com/ Slingbox] is a device that allows &amp;quot;place-shifting&amp;quot; of television through streaming.  The idea is to create a similar device using the Beagle and a USB DTV tuner.  It could implement a [[UPnP]] server and perform on-the-fly transcoding using [http://gstreamer.org/ GStreamer] (with [http://www.freedesktop.org/wiki/GstOpenMAX DSP] [[BeagleBoard/gst-openmax|acceleration]]).  Hopefully [[UPnP#NAT_Traversal|UPnP NAT traversal]] could be used to automatically open a port for external access as well, enabling &amp;quot;place-shifting&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| [[user:collinjc | J. Cody Collins]]&lt;br /&gt;
| BeagleBoard-Based Router&lt;br /&gt;
| This idea would involve writing software to perform the capabilities found in commercially available routers. The software could be written from scratch, or an existing project, such as [http://openwrt.org/ OpenWrt] could be ported to the BeagleBoard. Currently, some efforts are being made in porting OpenWrt to the BeagleBoard, but the number of contributers has been relatively small. These efforts could potentially result in a low-cost, open-source, OMAP3-based router.&lt;br /&gt;
|-&lt;br /&gt;
|Brian Embry &amp;lt;br&amp;gt; Jessica Lipscomb &amp;lt;br&amp;gt; Paul Banister&lt;br /&gt;
| MythTV/DSP Pico Projector&lt;br /&gt;
| Have the Beagleboard act as a MythTV/portable video playback node.  This may require work with the DSP acceleration of FFMPEG/Gstreamer.  Additionally, interfacing with a Pico Projector to allow for portable media enjoyment.  If MythTV support is not practical, simple localized video playback with DSP acceleration will be used.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Editing_a_Wiki</id>
		<title>ECE497 Editing a Wiki</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Editing_a_Wiki"/>
				<updated>2010-03-11T06:15:04Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a wiki you can practice editing.  Before you can edit it you will have to create an login.  Pick something that will make it easy for me to identify you as part of my class.  Then just add your name and date on the end of the table.&lt;br /&gt;
&lt;br /&gt;
You can get help here: [[Help:Contents]].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Name&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| 2-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Elliot Simon&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Mitch Garvin&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| [[user:collinjc | J. Cody Collins]]&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Steven Stark&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Brian Embry&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Qiang Jiang&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Jessica Lipscomb&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Chris Routh&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Paul Morrison&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| David Baty&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Adam Jesionowski&lt;br /&gt;
| 9-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Greg Jackson&lt;br /&gt;
| 9-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Mark Jacobson&lt;br /&gt;
| 9-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Tom Most&lt;br /&gt;
| 10-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Yannick Polius&lt;br /&gt;
| 10-Mar-2010&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Collinjc</id>
		<title>User:Collinjc</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Collinjc"/>
				<updated>2010-03-11T06:14:16Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: Created page with 'I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in  ECE597, h…'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;I am majoring in computer engineering and pursuing a certificate in optical communications. I am currently enrolled in [[ECE597 - 32-bit Embedded Linux, Rose-Hulman | ECE597]], hoping to explore the applications of Linux in an embedded environment as well as the necessary considerations that must be made in developing for such an environment. I have a keen interest and a great deal of experience with Linux and am a member of the [http://lug.rose-hulman.edu/wiki/Main_Page Rose-Hulman Linux Users' Group].&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project_Ideas</id>
		<title>ECE497 Project Ideas</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project_Ideas"/>
				<updated>2010-03-11T04:22:41Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Projects you would like to do */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
== Sources for Project Ideas ==&lt;br /&gt;
&lt;br /&gt;
Here are some links where you'll find ideas for your project.&lt;br /&gt;
* [http://wiki.omap.com/index.php/ETechDays_Community_Lightning_Talks ETechDays Community Lightning Talks], this is a one-day web-based conference where many project ideas are presented.  One of our 2009-2010 senior design projects was found here.&lt;br /&gt;
* [http://beagleboard.org/project Official list of Beagle Projects], there are many Beagle specific projects listed here.  Many are inactive.  ''List your project here once it running.''&lt;br /&gt;
* [http://www.youtube.com/watch?v=Mk1xjbA-ISE Augmented Reality Project], here's an idea that I think we can do on the Beagle.  Rather than using augmented reality glasses, I'd suggest we use a [http://focus.ti.com/dlpdmd/docs/dlpdiscovery.tsp?sectionId=60&amp;amp;tabId=2235 TI DLP pico projector]. [http://www.hitlabnz.org/wiki/EmbeddedAR Here's] AR running on the Beagle. &lt;br /&gt;
* [http://code.google.com/p/0xdroid/ Android], this is one of a couple of efforts to port [http://source.android.com/ Google's Android OS] to the Beagle.&lt;br /&gt;
* [[BeagleBoard/Ideas-2009]] Google summer code ideas 2009.&lt;br /&gt;
&lt;br /&gt;
== Projects you would like to do ==&lt;br /&gt;
Edit this page to add projects you would like to do.  If you aren't in the class, add ideas you would like to see done by class members.&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
!Proposer's Name&lt;br /&gt;
!Project Title&lt;br /&gt;
!Description&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Sample Project&lt;br /&gt;
| Describe what your project idea is.  What software does it build on (if any).  Is there hardware design involved.  What software background is needed.  &lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Google PowerMeter&lt;br /&gt;
| Google has a [http://www.google.com/powermeter project] to view and manage home electricity usage. This project would involve designing the hardware to measure the power usage and the Beagle software in interface with it.  The Beagle would talk to the local home network via a wireless link and the home owner would configure the Beagle via a web page served on the Beagle.&lt;br /&gt;
|-&lt;br /&gt;
| Yannick Polius&lt;br /&gt;
| Audio MBox&lt;br /&gt;
| This project is mostly software, with the hardware element being the use of the dsp. The idea is to tie together three technologies: speech recognition, speech synthesis, and internet access in order to create an interface capable of orating information to the user based on a vocal command. The implementation I have in mind is to use the Pocket Sphinx speech recognition engine to first understand what the user wants through speech, such as &amp;quot;Rose-Hulman&amp;quot;. Once the speech is translated, the software can execute a Wikipedia search to pull said item's page. Most of the important info is contained within the introductory paragraph, so the software will take only that chunk and feed it into the Flite speech synthesis engine. The end result is a simple machine with &amp;quot;mother box&amp;quot; like usability, that is, no interaction besides what is natural to the user (speaking) should be necessary to retrieve the information.&lt;br /&gt;
|-&lt;br /&gt;
| David Baty&lt;br /&gt;
| IRLP Node&lt;br /&gt;
| [http://www.irlp.net/ IRLP (Internet Radio Linking Project)] is an amateur radio project to allow the linking of repeaters across the world over the internet.  It requires very little hardware, but due to an antiquated interface board and is typically run on old desktop hardware that uses significantly more power than a beagle board.  All of the software already runs on Linux, but would require some porting.  Interface hardware would also have to be designed, but if DTMF (dial tone) decoding is done in software, this external board would be very simple.&lt;br /&gt;
|-&lt;br /&gt;
| Tom Most&lt;br /&gt;
| Open Source Slingbox&lt;br /&gt;
| The [http://slingbox.com/ Slingbox] is a device that allows &amp;quot;place-shifting&amp;quot; of television through streaming.  The idea is to create a similar device using the Beagle and a USB DTV tuner.  It could implement a [[UPnP]] server and perform on-the-fly transcoding using [http://gstreamer.org/ GStreamer] (with [http://www.freedesktop.org/wiki/GstOpenMAX DSP] [[BeagleBoard/gst-openmax|acceleration]]).  Hopefully [[UPnP#NAT_Traversal|UPnP NAT traversal]] could be used to automatically open a port for external access as well, enabling &amp;quot;place-shifting&amp;quot;.&lt;br /&gt;
|-&lt;br /&gt;
| Cody Collins&lt;br /&gt;
| BeagleBoard-Based Router&lt;br /&gt;
| This idea would involve writing software to perform the capabilities found in commercially available routers. The software could be written from scratch, or an existing project, such as [http://openwrt.org/ OpenWrt] could be ported to the BeagleBoard. Currently, some efforts are being made in porting OpenWrt to the BeagleBoard, but the number of contributers has been relatively small. These efforts could potentially result in a low-cost, open-source, OMAP3-based router.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/EBC_Exercise_22_Cross-Compiling</id>
		<title>EBC Exercise 22 Cross-Compiling</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/EBC_Exercise_22_Cross-Compiling"/>
				<updated>2010-03-11T01:38:13Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: /* Step 4 - Start building */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE597]]&lt;br /&gt;
[[Category: BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
This class is about developing software for embedded Linux.  The [http://elinux.org/Main_Page eLinux site] is a good source for embedded Linux in general.  There are many ongoing embedded efforts going on many platforms.  Poke around the site a while to get a feel for what's happening.&lt;br /&gt;
&lt;br /&gt;
We are going to use the [http://www.angstrom-distribution.org Ångström Distribution].  It's available many platforms.  Look around the site, you may recognize some of them.&lt;br /&gt;
&lt;br /&gt;
Instructions for building Ångström are given [http://www.angstrom-distribution.org/building-angstrom here]; however I'm going to present a Beagle-tuned version of those instructions on this page.&lt;br /&gt;
&lt;br /&gt;
== Step 1 - get Open Embedded metadata ==&lt;br /&gt;
&lt;br /&gt;
First install &amp;lt;code&amp;gt;git&amp;lt;/code&amp;gt; by running the following on your host computer.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install git-core&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Then run the following to load the meta data.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
export OETREE=&amp;quot;${HOME}/oe&amp;quot;&lt;br /&gt;
mkdir -p ${OETREE} &amp;amp;&amp;amp; cd ${OETREE}&lt;br /&gt;
git clone git://git.openembedded.org/openembedded.git openembedded&lt;br /&gt;
cd openembedded&lt;br /&gt;
git checkout origin/stable/2009 -b stable/2009&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If &amp;lt;code&amp;gt;git://git.openembedded.org/openembedded.git&amp;lt;/code&amp;gt; does not work, you can also try &amp;lt;code&amp;gt;http://repo.or.cz/r/openembedded.git&amp;lt;/code&amp;gt;.&amp;lt;br&amp;gt;&lt;br /&gt;
The first git transfers some 336,000 object and takes about 18 minutes with the network running at 600 some KiB/s.  Keep an eye on it, mine stopped about 23% in and I had to restart it.  The second git takes almost no time.&lt;br /&gt;
&lt;br /&gt;
Now run the following to update the metadata:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
git pull&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
You've created a directory called &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt;.  Go explore around it to see what is there.  Be sure to look in &amp;lt;code&amp;gt;oe/openembedded/recipes&amp;lt;/code&amp;gt;.  These folders contain instructions on where to get and how to build various things.  Look in &amp;lt;code&amp;gt;recipes/Linux&amp;lt;/code&amp;gt;.  Here are instructions for building various Linux kernels.  We'll be using &amp;lt;code&amp;gt;linux-omap-2.6.*&amp;lt;/code&amp;gt;.  What's the highest version you can find?&lt;br /&gt;
&lt;br /&gt;
== Step 2 - Installing bitbake and friends ==&lt;br /&gt;
&lt;br /&gt;
bitbake is the workhorse that knows where to get everything and how to compile it.  The following will install bitbake and additional programs that bitbake needs.  This may take 5 minutes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install bitbake&lt;br /&gt;
sudo apt-get install g++&lt;br /&gt;
sudo apt-get install help2man diffstat texi2html cvs texinfo subversion gawk&lt;br /&gt;
sudo apt-get autoremove&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
If you are running Ubuntu you will have to also do the following:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd /bin&lt;br /&gt;
sudo mv sh sh.old&lt;br /&gt;
sudo ln -s bash sh&lt;br /&gt;
sudo sh -c &amp;quot;echo 0 &amp;gt; /proc/sys/vm/mmap_min_addr&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Finally edit the file &amp;lt;code&amp;gt;/etc/sysctl.conf&amp;lt;/code&amp;gt; using:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo gedit /etc/sysctl.conf&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Add the following at the end and save.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# This is for bitbake&lt;br /&gt;
vm.mmap_min_addr = 0&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Now you should be ready to run bitbake.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Psyco JIT compiler&lt;br /&gt;
|tip=bitbake suggest loading a compiler.  Load and test the compiler.  If it's worth using, write instructions.&lt;br /&gt;
}}&lt;br /&gt;
The Psyco JIT compiler should help speed up compilation times. To install, use&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install python-psyco&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Step 3 - Setting up for the BeagleBoard ==&lt;br /&gt;
&lt;br /&gt;
We need a small script to setup the environment, so download [http://www.rose-hulman.edu/~yoder/eLinux/files/source-me.txt source-me.txt] to ${OETREE}.&lt;br /&gt;
&lt;br /&gt;
Now let's setup &amp;lt;code&amp;gt;local.conf&amp;lt;/code&amp;gt; for our needs:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
mkdir -p ${OETREE}/build/conf&lt;br /&gt;
cp ${OETREE}/openembedded/contrib/angstrom/local.conf ${OETREE}/build/conf/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Open &amp;lt;code&amp;gt;${OETREE}/build/conf/local.conf&amp;lt;/code&amp;gt; in your favourite editor and add the following to the end of the file.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
MACHINE ?= &amp;quot;beagleboard&amp;quot; &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Also, look at this block of lines:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# Make use of SMP and fast disks&lt;br /&gt;
PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&lt;br /&gt;
BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Here you can tell it how many parallel threads to run.  If you have several cores on your machine, make this number big.  If you have only one core, you might be better performance setting it to 1.  More details are [http://wiki.openembedded.org/index.php/Advanced_configuration here].&lt;br /&gt;
&lt;br /&gt;
== Step 4 - Start building ==&lt;br /&gt;
Do the following...&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# set environment variables&lt;br /&gt;
cd ${OETREE}&lt;br /&gt;
source source-me.txt &lt;br /&gt;
&lt;br /&gt;
#Go to the OE tree&lt;br /&gt;
cd ${OETREE}/openembedded &lt;br /&gt;
&lt;br /&gt;
#Make sure it's up to date&lt;br /&gt;
git pull --rebase&lt;br /&gt;
&lt;br /&gt;
#Start building&lt;br /&gt;
bitbake nano&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will take a while.  bitbake is installing everything that is needed to compile the system.  This includes cross compilers, assemblers, source, everything.  I started at 10am and ended around 5:30pm.  It was running on just one of the two cores on my laptop.  How long did it take on your machine?  I notice that an additional 600M of disk space is being used.&lt;br /&gt;
&lt;br /&gt;
{{Give&lt;br /&gt;
|title=Keep track of you running times and configurations.&lt;br /&gt;
|tip=We'll use this data to see what the best settings are.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
{| border=&amp;quot;1&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;5&amp;quot;&lt;br /&gt;
|+ Initial &amp;lt;tt&amp;gt;bitbake nano&amp;lt;/tt&amp;gt; runtime&lt;br /&gt;
! Processor&lt;br /&gt;
! Settings&lt;br /&gt;
! Run Time&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;2&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&lt;br /&gt;
| 2.5 hours&lt;br /&gt;
|-&lt;br /&gt;
| T2600@2.16 GHz&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j4&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;4&amp;quot;&amp;lt;br&amp;gt;Psyco? Yes.&lt;br /&gt;
| ''pending''&lt;br /&gt;
|-&lt;br /&gt;
| E5410@2.33 GHz (x2)&lt;br /&gt;
| PARALLEL_MAKE = &amp;quot;-j8&amp;quot;&amp;lt;br&amp;gt;BB_NUMBER_THREADS = &amp;quot;8&amp;quot;&amp;lt;br&amp;gt;Psyco? No.&lt;br /&gt;
| ''pending''&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Step 5 - Building a complete image ==&lt;br /&gt;
&lt;br /&gt;
Up to this point all we have done is load all the infrastructure needed and compiled the simple '''nano''' text editor.  We don't even have the kernel yet. Do the following to build a basic console image.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
bitbake console-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
'''This bitbake took 7 hours and 15 minutes.'''  There are now some 7,700 directories with 67,000 files in the &amp;lt;code&amp;gt;oe&amp;lt;/code&amp;gt; directory.  An additional 1.5G of disk space is in use.&lt;br /&gt;
&lt;br /&gt;
How did I know to use '''console-image'''?  I ran the following to find what images were out there:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
locate image | grep /oe/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This found every file with '''image''' in the name it that also had '''/oe/''' in the path.  From this I see that '''oe/openembedded/recipes/images''' has a bunch of files ending in '''-image'''.  Take a look at '''console-image.bb''' and see what you can figure out.&lt;br /&gt;
&lt;br /&gt;
== Step 6 - Loading your SD card ==&lt;br /&gt;
&lt;br /&gt;
The output of the bitbake command will ultimately be found under the &amp;lt;code&amp;gt;$OE_HOME/angstrom-dev/deploy/glibc/images/beagleboard&amp;lt;/code&amp;gt;. In there you can find at least two interesting files:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
console-image-beagleboard.tar.bz2&lt;br /&gt;
uImage-beagleboard.bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The console image represents a full and self-contained file system, *including* a kernel. The uImage-beagleboard.bin is a Linux kernel image suitable for loading by the U-boot bootloader.&lt;br /&gt;
&lt;br /&gt;
* Rename '''uImage-beagleboard.bin''' as '''uImage''' and load on your SD as before ([[Getting your Beagle running]]).  &lt;br /&gt;
* Also load '''console-image-beagleboard.tar.bz2''' on the 2&amp;lt;sup&amp;gt;nd&amp;lt;/sup&amp;gt; partition like you did before.  Did you notice it untar's very quickly?  Why?&lt;br /&gt;
* Boot and explore.  What's there?  What's missing?&lt;br /&gt;
&lt;br /&gt;
Congratulations you've just build Linux from source.  Try this:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
root@beagleboard:~# cd /sys/class&lt;br /&gt;
root@beagleboard:/sys/class# ls -F&lt;br /&gt;
bdi/          hwmon/        misc/         scsi_generic/ usb_device/&lt;br /&gt;
block/        i2c-adapter/  mmc_host/     scsi_host/    usb_endpoint/&lt;br /&gt;
bluetooth/    i2c-dev/      mtd/          sound/        usb_host/&lt;br /&gt;
bmi/          ieee80211/    net/          spi_master/   usbmon/&lt;br /&gt;
display/      input/        regulator/    spidev/       vc/&lt;br /&gt;
firmware/     leds/         rtc/          thermal/      vtconsole/&lt;br /&gt;
gpio/         mdio_bus/     scsi_device/  tty/&lt;br /&gt;
graphics/     mem/          scsi_disk/    ubi/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of low-level devices on the Beagle that you can access as files.  Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/class# cd leds/&lt;br /&gt;
root@beagleboard:/sys/class/leds# ls -F&lt;br /&gt;
beagleboard::usr0@ beagleboard::usr1@&lt;br /&gt;
root@beagleboard:/sys/class/leds# cd beagleboard\:\:usr0&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# cat trigger&lt;br /&gt;
none nand-disk mmc0 mmc1 [heartbeat]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
This is a list of values you can assign to trigger.  Notice LED0 is blinking on and off right now. Try:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo none &amp;gt; trigger&lt;br /&gt;
root@beagleboard:/sys/devices/platform/leds-gpio/leds/beagleboard::usr0# echo 1 &amp;gt; brightness&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
What happens?  Play around.  [http://groups.google.com/group/beagleboard/msg/c623a16637625685?hl=en Here] are instructions on reading the '''USER''' switch.  Try it.  Can you make the LEDs blink in response to the button being pressed?&lt;br /&gt;
&lt;br /&gt;
== Step 7 - Building a complete Beagle demo image ==&lt;br /&gt;
&lt;br /&gt;
Now let's build the how demo we were running before.  We'll do this via bitbake, but argument do we give it?  Try looking in &amp;lt;code&amp;gt;oe/openembedded/recipes/images&amp;lt;/code&amp;gt;, do you see a recipe that might work?  Hint:  It has beagle in the name.  Here's what I tried.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
time bitbake beagle????-image&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Replace ???? with the recipe name you found.  I added the '''time''' command so I could see how long it takes to run.  My run took some 7.5 hours.&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Editing_a_Wiki</id>
		<title>ECE497 Editing a Wiki</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Editing_a_Wiki"/>
				<updated>2010-03-09T00:05:59Z</updated>
		
		<summary type="html">&lt;p&gt;Collinjc: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Here is a wiki you can practice editing.  Before you can edit it you will have to create an login.  Pick something that will make it easy for me to identify you as part of my class.  Then just add your name and date on the end of the table.&lt;br /&gt;
&lt;br /&gt;
You can get help here: [[Help:Contents]].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Name&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| 2-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Elliot Simon&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Mitch Garvin&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| J. Cody Collins&lt;br /&gt;
| 8-Mar-2010&lt;br /&gt;
|-&lt;br /&gt;
| Next name&lt;br /&gt;
| and date&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE597]]&lt;/div&gt;</summary>
		<author><name>Collinjc</name></author>	</entry>

	</feed>