<?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=Yifei&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=Yifei&amp;feedformat=atom"/>
		<link rel="alternate" type="text/html" href="http://elinux.org/Special:Contributions/Yifei"/>
		<updated>2013-05-19T22:09:28Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.21alpha</generator>

	<entry>
		<id>http://elinux.org/ECE497_Project:_Kinect_Project</id>
		<title>ECE497 Project: Kinect Project</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project:_Kinect_Project"/>
				<updated>2012-02-21T04:31:16Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: user instructions, conclusions and others&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
&lt;br /&gt;
Team members: [[user:Yifei|Yifei Li]], [[user:Gemini91|Guanqun Wang]]&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
Our goal is to implant a specific game application into Beagleboard and using Microsoft's Kinect to play with it. We would firstly make the Kinect recognizable to the Beagleboard. And then try to adapt the application to the Beagleboard. We haven't decided which game to play with, because the performance may be greatly influenced by what kind of operating system we want to use, or the size of this game. So the second part would be to test what is the best option for us. Finally, we would try everything to make it work.&lt;br /&gt;
&lt;br /&gt;
Update: We previously want to build our own driver for Kinect, and develop a specific game on Android. For there are many open-source code that can be referenced. We got a sample game code that could run on Android and successfully tested it on BeagleBoard with Kinect. But it seemed that it was quite difficult to develop our own kinect driver. So with the suggestion of Prof.Yoder, we decided to use Omek Beckon 2.4 SDK on BeagleBoard supported with Kinect driver to develop our application and we chose Qt creator as cross-compiler tool to program and debug. As the limitation of the image(we could only use the image Omek provided with us, see [http://support.omekinteractive.com/forums/viewtopic.php?f=21&amp;amp;t=58&amp;amp;sid=2ac0c7615fd5accfaf0458ed662ec5bb Omek Forum] for details, you may need to register first), we not only can't transfer all the drivers and data to the image we used to use but also can't develop programs with GUI using Qt, because the Omek image only support command-line mode, so we chose to develop the GUI itself within the source code. We searched on line and found the open source code for a game called Q-ball(Thanks to the original author of this code!). Now we are going to re-build it and use kinect to play with it.&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
1. '''Burn the Image Package and Boot the System'''&lt;br /&gt;
&lt;br /&gt;
The detailed instruction is shown in page7 of developer's guide from omek.&lt;br /&gt;
&lt;br /&gt;
When I tried to run mkcard.sh to create new partitions, I got some errors.&lt;br /&gt;
&lt;br /&gt;
One of the error is the shell script is asumming that first partition of device &amp;quot;mmc&amp;quot; is &amp;quot;mmc1&amp;quot; but it's &amp;quot;mmcp1&amp;quot; in my Ubuntu. I changed the shell script to fix this but still got some errors about the partition specs.&lt;br /&gt;
&lt;br /&gt;
Finally I found a tricky way to use the shell script directly. If I use a external USB card reader to read and write the microsd card, everything just works perfectly. I think maybe the author of shell script had a different verison of Linux or only tested the script on descktop with external card reader.&lt;br /&gt;
&lt;br /&gt;
2. '''Run the Sample Demos'''&lt;br /&gt;
&lt;br /&gt;
After burning the microsd card sucessfully, we can boot from this card and see a simplified Angstrom without GUI. All demos ran almost as expected but, &lt;br /&gt;
&lt;br /&gt;
(1).the program froze sometimes. It even happened sometimes when we were just typing some command. We think maybe it's because of the speed of microsd card. We will get a faster card and have a try.&lt;br /&gt;
&lt;br /&gt;
(2).the tracking for legs doesn't work very well, we think maybe it's because we didn't have enough space for the kinect.(When you played kinect game in xbox, it will tell you a large space is required for tracking).&lt;br /&gt;
&lt;br /&gt;
3. '''Compile the Sample Code on Host'''&lt;br /&gt;
&lt;br /&gt;
Detailed instruction is provided in page26 of the developer's guide from omek.&lt;br /&gt;
By following the instruction, we downloaded and installed the Linux ARM cross toolchain. We also installed zlib library and cross compiled it for qt. But we had some problem when compiling qt. The error information says the make cannot find the cross-compiler. I used export command to set the path of cross complier we used in class before(some time later I noticed this may cause some problem) and new error occured saying &amp;quot;undefined reference to clock_gettime&amp;quot;. I googled it and find it's involved in one library so I modifed the make file and include the library when compiling but it still gave the same error.&lt;br /&gt;
&lt;br /&gt;
Then I went through the instruction carefully and found actually the instruction asked us to install two different toolchains for the same purpose. The difference of two toolchains is the version of qt, one is 4.6.3 and the other is 4.6.2, since our souce code is for 4.6.2 version, so I want to try toolchain for 4.6.2 to see if it makes any difference.&lt;br /&gt;
&lt;br /&gt;
The instruction also asked us to install two different versions of QtCreater in the pdf file and in blog, we prefered the version in pdf file since the instruction should be written based on this version.&lt;br /&gt;
&lt;br /&gt;
After struggling for a very long time, I decided to clean everything up and start over. I followed the instruction one step by step but '''skipped one step''' and it turned out everything works perfectly now. &lt;br /&gt;
Link [http://support.omekinteractive.com/forums/viewtopic.php?f=21&amp;amp;t=68&amp;amp;sid=6c151b2898f1e8f53039adc335781c9e Omek Forum] may help you with the version problem. &lt;br /&gt;
&lt;br /&gt;
'''Some conclusion for compiling Qt:'''&lt;br /&gt;
&lt;br /&gt;
(1). I reinstalled the Ubuntu when started over. It turned out you need to install g++ compiler before before getting started.(Type &amp;quot;sudo apt-    &lt;br /&gt;
get install g++&amp;quot;). Other than that, you don't need to do anything not mentioned in the developer's guide and the blog it quotes.&lt;br /&gt;
&lt;br /&gt;
(2). The instruction from Omek is a little redundant with the blog it quotes and not taltally right.(At least they don't all work on my laptop)&lt;br /&gt;
&lt;br /&gt;
(3). The &amp;quot;developer's guide&amp;quot; pdf file and the blog it quotes both tell developer to install a toolchain( but different version, it's 4.6.3 in   &lt;br /&gt;
the pdf file and 4.6.2 in the blog) for cross-compiling. The 4.6.3 toolchain works perfectly for compiling Qt 4.6.2.&lt;br /&gt;
&lt;br /&gt;
(4). You don't have to install QtCreater before compiling Qt. The blog says you'd better download one Qtcreater from the nokia website so that   &lt;br /&gt;
you can get the latest version, but it's not really necessary according to my experience. You can get a pretty good and working version by  &lt;br /&gt;
simply running &amp;quot;sudo apt-get install qtcreator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
(5). In the instruction for building QtTracking Sample, step 3.b tells you to remove the existing qmake step and make you own custom step, but  &lt;br /&gt;
I always got error when the building process reached the costum step, so I tried to just leave the existing qmake there, and everything  &lt;br /&gt;
worked amazingly!!! So, if you get trouble about the costum step you made in building, you can just try to use the default qmake(&amp;quot;existing &lt;br /&gt;
qmake&amp;quot; in the instruction from Omek).&lt;br /&gt;
&lt;br /&gt;
4. '''Build Q-ball without adding Kinect support using Qtcreator'''&lt;br /&gt;
After setting up ready all the development environment, we are going to firstly build the game without Kinect to see if it can work. The source code is already Qt coded, so we didn't meat any problems here. The code could successfully run on our beagleboard and it is pretty fast!&lt;br /&gt;
&lt;br /&gt;
5. '''Build Q-ball with Kinect support using Qtcreator'''&lt;br /&gt;
Lastly and most importantly, we would add Kinect support to Q-ball. Details could be found on &amp;quot;Theory of Operation&amp;quot; on this wiki page. The source code is written in C++, but both of us do not have any experience in it. The process of programming and debugging is quite struggling. However we could finally make it work, the BeagleBoard could recognize our left and right scroll gestures. We have already set the fastest scan period of the gestures but the speed is still very slow. We may proceed with this to make it faster if more time is allowable.&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
* Github links: [http://github.com/wangg/ECE497 Github], including Omek image, developer guide, Omek sample code, and Kinect supported Q-ball source code(The file &amp;quot;new&amp;quot; is the final version we use.) &lt;br /&gt;
* Omek Beckon SDK Development tools&lt;br /&gt;
* Qtcreator&lt;br /&gt;
&lt;br /&gt;
1. If you haven't installed git, see instrucstions here [http://elinux.org/EBC_Exercise_07c_git EBC Exercise 07], if you did, git clone our reposotiry to your host.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host$ git clone git@github.com:wangg/ECE497.git&lt;br /&gt;
host$ cd ECE497/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Insert your SD card, we recommend you to use an external USB card-reader, which would avoid strange mistakes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bash mkcard.sh /media/sdX beagle-omek&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
WARNING: If you mistakenly use the main OS device name this script can erase your entire OS.&lt;br /&gt;
&lt;br /&gt;
3. Connect your BeagleBoard, insert your newly made SD-card, plug in the power supply, Kinect, mouse and keyboard. The log in user is root without a password.&lt;br /&gt;
&lt;br /&gt;
4. Now we want to run the demo program Omek gave us to see if everything works.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ECE497/Beckon-SDK-2.4.16236/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTICE: The code you found in sample has been modified for Q-ball, you need to get the very original sample code from the tar file we provided for you. &lt;br /&gt;
Untar Beckon-SDK-2.4.16236.tar.gz file first in order to run the sample.&lt;br /&gt;
&lt;br /&gt;
To run Qt Tracking Sample in live tracking using camera input:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./tracking.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if you can record a camera sequence using the tools provided with the PC version of OpenNI. To run prerecorded camera sequence (OpenNI sequence file (.oni)): &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./tracking.sh -seq path/to/directory/containing/the/sequence/file/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: the path points to a directory containing the sequence, not to the sequence file itself.&lt;br /&gt;
&lt;br /&gt;
To run TrackingViewer3D Sample in live tracking using camera input: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./tracking3d.sh -gest &amp;lt;gesture name&amp;gt; -gest ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To run GestureDemo Sample, you need to run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./gestures.sh -gest &amp;lt;gesture name&amp;gt; -gest ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The supported list of gestures are:&lt;br /&gt;
• _rightClick _leftClick&lt;br /&gt;
• _rightScrollRight _rightScrollLeft&lt;br /&gt;
• _rightScrollUp _rightScrollDown&lt;br /&gt;
• _leftScrollRight _leftScrollLeft&lt;br /&gt;
• _leftScrollUp _leftScrollDown&lt;br /&gt;
&lt;br /&gt;
Note: The path points to a directory containing the sequence, not to the sequence file itself.&lt;br /&gt;
&lt;br /&gt;
5. Now we are moving to the host side, and install the toolchain and Qtcreator we need.&lt;br /&gt;
There is a very good blog that shows the every step you need to do. The link is here [http://treyweaver.blogspot.com/2010/10/setting-up-qt-development-environment.html blog]&lt;br /&gt;
We are using 4.6.3 version, you can download the file at [http://www.angstrom-distribution.org/toolchains/archive/ here]. The developer guide is also a good reference.&lt;br /&gt;
&lt;br /&gt;
If your host is newly installed, install g++ first.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo apt-get install g++&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Install the Linux (Angstrom distro) ARM cross-toolchain:&lt;br /&gt;
extract the downloaded archive into your system root directory:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo tar -xvjf angstrom-2011.03-i686-linux-armv7a-linux-gnueabi-toolchain-qte-4.6.3.tar.bz2 -C /&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Qt embedded SDK for Angstrom/BeagleBoard.&lt;br /&gt;
To install the Qt embedded SDK for Angstrom/BeagleBoard:&lt;br /&gt;
install zlib library&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo sudo apt-get install zlib1g-dev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You need to create a new make.conf.  Run the following line to make a new mkspecs directory for the BeagleBoard Processor.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cp -R [DownloadDirectory]/mkspecs/qws/linux-arm-g++/ [DownloadDirectory]/mkspecs/qws/linux-DM3730-g++/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Edit the qmake.conf file found in [DownloadDirectory]/mkspecs/qws/linux-DM3730-g++/ to look like the following.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
#&lt;br /&gt;
# qmake configuration for building with arm-linux-g++&lt;br /&gt;
#&lt;br /&gt;
&lt;br /&gt;
include(../../common/g++.conf)&lt;br /&gt;
include(../../common/linux.conf)&lt;br /&gt;
include(../../common/qws.conf)&lt;br /&gt;
&lt;br /&gt;
# modifications to g++.conf&lt;br /&gt;
#Toolchain&lt;br /&gt;
&lt;br /&gt;
#Compiler Flags to take advantage of the ARM architecture&lt;br /&gt;
QMAKE_CFLAGS_RELEASE =   -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp&lt;br /&gt;
QMAKE_CXXFLAGS_RELEASE = -O3 -march=armv7-a -mtune=cortex-a8 -mfpu=neon -mfloat-abi=softfp&lt;br /&gt;
&lt;br /&gt;
QMAKE_CC = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/gcc&lt;br /&gt;
QMAKE_CXX = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++&lt;br /&gt;
QMAKE_LINK = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++&lt;br /&gt;
QMAKE_LINK_SHLIB = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/g++&lt;br /&gt;
&lt;br /&gt;
# modifications to linux.conf&lt;br /&gt;
QMAKE_AR = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/ar cqs&lt;br /&gt;
QMAKE_OBJCOPY = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/objcopy&lt;br /&gt;
QMAKE_STRIP = /usr/local/angstrom/arm/arm-angstrom-linux-gnueabi/bin/strip&lt;br /&gt;
&lt;br /&gt;
load(qt_config)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now run the configure command [this can take many minutes]:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./configure -opensource -confirm-license -prefix /opt/qt-arm -no-qt3support -embedded arm -little-endian -xplatform qws/linux-DM3730-g++ -qtlibinfix E&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo make install&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
this would take a very long time!&lt;br /&gt;
&lt;br /&gt;
When successful, you are ready to build the project. Unlike the develop guide, we use the default build configuration.&lt;br /&gt;
Simply open our project, build it and you would the binary executable file in Bin directory. Copy the whole directory to beagle, and run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
./QtTracking-SDK -qws&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
Our game currently support only two gestures, right hand scroll left and right hand scroll right. Multiple gestures could be enabled, but the complexity of the code would be increased, and the speed may be limited. Because we can't make the bar respond faster enough, we stop the movement of the ball so that we could see the response of our gestures. If you want to enable the movement of the ball, you could un-comment the code &amp;quot; //itemBall-&amp;gt;moveBy(ball_sp_x, ball_sp_y);&amp;quot; under //move ball.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
1. Our project enables the BeagleBoard to recognize Kinect and could play a game with it using its gesture recognition function.&lt;br /&gt;
&lt;br /&gt;
2. We used Qt creator, the embedded version of qt to create, build and debug the program.&lt;br /&gt;
&lt;br /&gt;
3. We cross-compiled the program on our host, which made it much easier to debug and program.&lt;br /&gt;
&lt;br /&gt;
4. There may be various of compilation errors when building the project, regardless of the code problem, we thought it may because of the setup of building configurations. We finally chose to use the project configuration of TrackingDemo(use this project settings and import the sources and header files in it) for it is much more similar to what we want to develop. And this one just works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
The whole point is to use Kinect interface provided by Omek to control the movement of the bar. The original control is achieved by calling Qt key event &amp;quot;Qt::Key_Left&amp;quot;, which would get back a value that is used in PlayGameState::updateScene as shown followings:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 // move&lt;br /&gt;
    if( mainWindow-&amp;gt;isKeyDownLeft() ) {&lt;br /&gt;
        bat_has_target = false;&lt;br /&gt;
        itemBat-&amp;gt;moveBy(-bat_sp_x_c, 0);&lt;br /&gt;
        if( itemBat-&amp;gt;pos().x() &amp;lt; 0 ) {&lt;br /&gt;
            itemBat-&amp;gt;setPos(0, itemBat-&amp;gt;pos().y());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    else if( mainWindow-&amp;gt;isKeyDownRight() ) {&lt;br /&gt;
        bat_has_target = false;&lt;br /&gt;
        itemBat-&amp;gt;moveBy(bat_sp_x_c, 0);&lt;br /&gt;
        if( itemBat-&amp;gt;pos().x() &amp;gt; scene-&amp;gt;width() - bat_w_c ) {&lt;br /&gt;
            itemBat-&amp;gt;setPos(scene-&amp;gt;width() - bat_w_c, itemBat-&amp;gt;pos().y());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    else if( bat_has_target ) {&lt;br /&gt;
        int bat_centre_x = itemBat-&amp;gt;pos().x() + bat_w_c/2;&lt;br /&gt;
        int dist = abs(bat_centre_x - bat_target_x);&lt;br /&gt;
        if( dist &amp;lt;= bat_sp_x_c ) {&lt;br /&gt;
            itemBat-&amp;gt;setPos(bat_target_x - bat_w_c/2, itemBat-&amp;gt;pos().y());&lt;br /&gt;
            bat_has_target = false;&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            int dir = bat_target_x &amp;gt; bat_centre_x ? 1 : -1;&lt;br /&gt;
            itemBat-&amp;gt;moveBy(dir * bat_sp_x_c, 0);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
In order to replace the condition judgement in if() shown above, we need to first initialize Omek Kinect sensors ready. The Omek give us a good example on how to register and enable Gestures, we would use that directly. The problem is whether we should initialize them in main(), or in class. We need the init to get the value of pGesture in order to get gestureName that used to determine which gesture is detected, so we can't seperate them! If we put them in main(), then we won't be able to process them repeatly. The best way is to put them in class, and use the following code to call the class from period to period.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 QTimer timer;&lt;br /&gt;
    QObject::connect(&amp;amp;timer, SIGNAL(timeout()), &amp;amp;w, SLOT(updateScene()));&lt;br /&gt;
    timer.start(time_per_frame_c);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: We found a good explanation of this code. See here:[http://developer.qt.nokia.com/doc/qt-4.8/graphicsview-collidingmice.html]&lt;br /&gt;
&lt;br /&gt;
At this point, we have two different ways of coding. Guanqun defined the init function of kinect in a headerfile called GestureDemo.h, and call it within PlayGameState::updateScene. So every period of time_per_frame_c, it would go into the init function, and detect which gestures we make. While, Yifei put the init function into a new class, called PlayGameState::updateKinect, and add another signal called timer1_per_frame_c so that updateKinect and updateScene would be both processed repeatly. The first one worked!&lt;br /&gt;
&lt;br /&gt;
We still want to use the keyboard while playing with it. So we didn't change anything in MainWindow::KeyPressEvent and MainWindow::KeyReleaseEvent. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MainWindow::keyPressEvent(QKeyEvent *event) {&lt;br /&gt;
    //qDebug(&amp;quot;keyPressEvent&amp;quot;);&lt;br /&gt;
    if( event-&amp;gt;key() == Qt::Key_Left ) {&lt;br /&gt;
        this-&amp;gt;keydown_left = true;&lt;br /&gt;
        //qDebug(&amp;quot;left&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_Right ) {&lt;br /&gt;
        this-&amp;gt;keydown_right = true;&lt;br /&gt;
        //qDebug(&amp;quot;right&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_Escape ) {&lt;br /&gt;
        gamestate-&amp;gt;userQuit();&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_P ) {&lt;br /&gt;
        gamestate-&amp;gt;userPause();&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_Return ) {&lt;br /&gt;
        QPushButton *button = qobject_cast&amp;lt; QPushButton* &amp;gt;(qApp-&amp;gt;focusWidget());&lt;br /&gt;
        if (button) {&lt;br /&gt;
            button-&amp;gt;click();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        QMainWindow::keyPressEvent(event);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::keyReleaseEvent(QKeyEvent *event) {&lt;br /&gt;
    //qDebug(&amp;quot;keyReleaseEvent&amp;quot;);&lt;br /&gt;
    if( event-&amp;gt;key() == Qt::Key_Left ) {&lt;br /&gt;
        this-&amp;gt;keydown_left = false;&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_Right ) {&lt;br /&gt;
        this-&amp;gt;keydown_right = false;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        QMainWindow::keyReleaseEvent(event);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, let's take a look at how initilizing Kinect sensor is made:&lt;br /&gt;
&lt;br /&gt;
This would create the sensor&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    if (a==0){&lt;br /&gt;
        // create the sensor&lt;br /&gt;
        if (sequencePath)&lt;br /&gt;
        {&lt;br /&gt;
                // from a sequence&lt;br /&gt;
                pSensor = IMotionSensor::createSequenceSensor(sequencePath);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
                // from a cameras&lt;br /&gt;
                pSensor = IMotionSensor::createCameraSensor(true);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if(pSensor == NULL)&lt;br /&gt;
        {&lt;br /&gt;
                cerr &amp;lt;&amp;lt; &amp;quot;Error, failed creating sensor.&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
                ret = 1;&lt;br /&gt;
                goto end;&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This initialize the tracking algorithm, OMK_SUCCESS and setTrackingOptons are defined in header files Omek provided with us.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // initialize the tracking algorithm&lt;br /&gt;
        if(pSensor-&amp;gt;setTrackingOptions(TRACK_ALL) != OMK_SUCCESS)&lt;br /&gt;
        {&lt;br /&gt;
                cerr &amp;lt;&amp;lt; &amp;quot;Error, failed to set tracking options.&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
                ret = 1;&lt;br /&gt;
                goto end;&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables the gestures that we want to use, only enabled gestures can be called;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  // enable the selected gestures&lt;br /&gt;
        numberOfGestures=1;&lt;br /&gt;
        for(int i = 0 ; i &amp;lt; numberOfGestures; i++)&lt;br /&gt;
        {&lt;br /&gt;
                if(pSensor-&amp;gt;enableGesture(&amp;quot;_rightScrollRight&amp;quot;) != OMK_SUCCESS)&lt;br /&gt;
                {&lt;br /&gt;
                        cerr &amp;lt;&amp;lt; &amp;quot;Error, unrecognized gesture: &amp;quot; &amp;lt;&amp;lt; &amp;quot;_rightScrollRight&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
                        ret = 1;&lt;br /&gt;
                        goto end;&lt;br /&gt;
                }&lt;br /&gt;
                if(pSensor-&amp;gt;enableGesture(&amp;quot;_leftScrollLeft&amp;quot;) != OMK_SUCCESS)&lt;br /&gt;
                {&lt;br /&gt;
                        cerr &amp;lt;&amp;lt; &amp;quot;Error, unrecognized gesture: &amp;quot; &amp;lt;&amp;lt; &amp;quot;_leftScrollLeft&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
                        ret = 1;&lt;br /&gt;
                        goto end;&lt;br /&gt;
                }&lt;br /&gt;
                /*if(pSensor-&amp;gt;enableGesture(&amp;quot;_rightClick&amp;quot;) != OMK_SUCCESS)&lt;br /&gt;
{&lt;br /&gt;
cerr &amp;lt;&amp;lt; &amp;quot;Error, unrecognized gesture: &amp;quot; &amp;lt;&amp;lt; &amp;quot;_rightScrollClick&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
ret = 1;&lt;br /&gt;
goto end;&lt;br /&gt;
}*/&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We want to rescan the gesture again and again for control the bar. So this code should be used:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  // run the main loop as long as there are frames to process&lt;br /&gt;
                while (sensor-&amp;gt;isAlive() &amp;amp;&amp;amp; g_run_gestures)&lt;br /&gt;
                {&lt;br /&gt;
                        // Handle the current frame only if we have successfully processed a new image&lt;br /&gt;
                        bool bHasNewImage = false;&lt;br /&gt;
                        if ((pSensor-&amp;gt;processNextImage(true, bHasNewImage) == OMK_SUCCESS) &amp;amp;&amp;amp; bHasNewImage)&lt;br /&gt;
                        {&lt;br /&gt;
                                processedFrames++;&lt;br /&gt;
                                while (pSensor-&amp;gt;hasMoreGestures())&lt;br /&gt;
                                {&lt;br /&gt;
                                        const IFiredEvent* pFiredEvent = pFiredEvent = pSensor-&amp;gt;popNextGesture();&lt;br /&gt;
                                        std::stringstream text;&lt;br /&gt;
                                        text &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &amp;quot;Gesture (&amp;quot; &amp;lt;&amp;lt; (pFiredEvent-&amp;gt;getName()!=NULL?pFiredEvent-&amp;gt;getName():&amp;quot;&amp;quot;) &amp;lt;&amp;lt; &amp;quot;) fired in frame &amp;quot; &amp;lt;&amp;lt; processedFrames;&lt;br /&gt;
                                        cout &amp;lt;&amp;lt; text.str().c_str() &amp;lt;&amp;lt; endl;&lt;br /&gt;
                                        std::string gestureName = pFiredEvent-&amp;gt;getName();&lt;br /&gt;
                                        if (gestureName == &amp;quot;_rightScrollRight&amp;quot;) {haha=1;}&lt;br /&gt;
                                        else if (gestureName == &amp;quot;_leftScrollLeft&amp;quot;) {haha1=1;}&lt;br /&gt;
                                        //else if (gestureName == &amp;quot;_rightClick&amp;quot;) {haha1=0;haha=0;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                        pSensor-&amp;gt;releaseGesture(pFiredEvent);&lt;br /&gt;
                                        g_run_gestures = 0;&lt;br /&gt;
                                }&lt;br /&gt;
                        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice two while()s are used. The first while() check to see if there are still sensors being used, the second while() used to detect whether more gestures are made.&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
1. Installed the Beckon SDK Development tools on both Linux PC host and BeagleBoard; Successfully tested the sample code and discussed the interface functions. &lt;br /&gt;
&lt;br /&gt;
--completed on February 5th by Guanqun Wang and Yifei Li                  -10 hours&lt;br /&gt;
&lt;br /&gt;
2. Successfully build the sample code using Qt creator&lt;br /&gt;
&lt;br /&gt;
--completed on February 13th by Guanqun Wang and Yifei Li                  -26 hours&lt;br /&gt;
&lt;br /&gt;
3. Successfully add kinect support to Q-ball&lt;br /&gt;
&lt;br /&gt;
--completed on February 19th by Guanqun Wang and Yifei Li                  -40 hours&lt;br /&gt;
&lt;br /&gt;
Total: 66 hours&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;br /&gt;
This project adds kinect support to an open source C++ game using Omek Beckon SDK tool. Our gestures could be recognized by Kinect at last, but the speed is very slow, the game could not run fluently as expected. We may delve into this if more time is allowable. From this project, we understood the whole process of cross-developing from a system view. We also learned how to use Qt creator and set up cross-compile environment. With the help of Omek, we also learned how to use Kinect interface support. Because both of us do not have any experience in C++, after this project we also gained some experience and practiced a little bit. All in all, this project is very interesting, it gave us an idea of how an embedded system could be developed.&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project:_Kinect_Project</id>
		<title>ECE497 Project: Kinect Project</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project:_Kinect_Project"/>
				<updated>2012-02-20T17:59:13Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: other changes&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
&lt;br /&gt;
Team members: [[user:Yifei|Yifei Li]], [[user:Gemini91|Guanqun Wang]]&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
Our goal is to implant a specific game application into Beagleboard and using Microsoft's Kinect to play with it. We would firstly make the Kinect recognizable to the Beagleboard. And then try to adapt the application to the Beagleboard. We haven't decided which game to play with, because the performance may be greatly influenced by what kind of operating system we want to use, or the size of this game. So the second part would be to test what is the best option for us. Finally, we would try everything to make it work.&lt;br /&gt;
&lt;br /&gt;
Update: We previously want to build our own driver for Kinect, and develop our game on Android. For there are many open-source code that we can reference. We got a sample game that run on Android and successfully tested it on BeagleBoard with Kinect. But it seemed that it was quite difficult to develop our own kinect driver. So with the suggestion of Prof.Yoder, we finally decided to use Omek Beckon 2.4 SDK on BeagleBoard as interface of Kinect to develop our application and we chose Qt creator as cross-compiler tool to program and debug. As the limitation of the image(we could only use the image Omek provided with us, see [http://support.omekinteractive.com/forums/viewtopic.php?f=21&amp;amp;t=58&amp;amp;sid=2ac0c7615fd5accfaf0458ed662ec5bb Omek Forum] for details, you may need to register first), we can't transfer all the drivers and data to the image we used to use and also we can't develop programs with GUI using Qt, because the Omek image only support command-line mode, so we chose to develop the GUI itself within the source code. We searched on line and found the open source code for a game called Q-ball. We are going to use kinect to play with it.&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
1. '''Burn the Image Package and Boot the System'''&lt;br /&gt;
&lt;br /&gt;
The detailed instruction is shown in page7 of developer's guide from omek.&lt;br /&gt;
&lt;br /&gt;
When I tried to run mkcard.sh to create new partitions, I got some errors.&lt;br /&gt;
&lt;br /&gt;
One of the error is the shell script is asumming that first partition of device &amp;quot;mmc&amp;quot; is &amp;quot;mmc1&amp;quot; but it's &amp;quot;mmcp1&amp;quot; in my Ubuntu. I changed the shell script to fix this but still got some errors about the partition specs.&lt;br /&gt;
&lt;br /&gt;
Finally I found a tricky way to use the shell script directly. If I use a external USB card reader to read and write the microsd card, everything just works perfectly. I think maybe the author of shell script had a different verison of Linux or only tested the script on descktop with external card reader.&lt;br /&gt;
&lt;br /&gt;
2. '''Run the Sample Demos'''&lt;br /&gt;
&lt;br /&gt;
After burning the microsd card sucessfully, we can boot from this card and see a simplified Angstrom without GUI. All demos ran almost as expected but, &lt;br /&gt;
&lt;br /&gt;
(1).the program froze sometimes. It even happened sometimes when we were just typing some command. We think maybe it's because of the speed of microsd card. We will get a faster card and have a try.&lt;br /&gt;
&lt;br /&gt;
(2).the tracking for legs doesn't work very well, we think maybe it's because we didn't have enough space for the kinect.(When you played kinect game in xbox, it will tell you a large space is required for tracking).&lt;br /&gt;
&lt;br /&gt;
3. '''Compile the Sample Code on Host'''&lt;br /&gt;
&lt;br /&gt;
Detailed instruction is provided in page26 of the developer's guide from omek.&lt;br /&gt;
By following the instruction, we downloaded and installed the Linux ARM cross toolchain. We also installed zlib library and cross compiler for qt. But we had some problem when compiling qt. The error information says the make cannot find the cross-compiler. I used export command to set the path of cross complier we used in class before(some time later I noticed this may cause some problem) and new error occured saying &amp;quot;undefined reference to clock_gettime&amp;quot;. I googled it and find it's involved in one library so I modifed the make file and include the library when compiling but it still gave the same error.&lt;br /&gt;
&lt;br /&gt;
Then I went through the instruction carefully and found actually the instruction asked us to install two different toolchains for the same purpose. The difference of two toolchains is the version of qt, one is 4.6.3 and the other is 4.6.2, since our souce code is for 4.6.2 version, so I want to try toolchain for 4.6.2 to see if it makes any difference.&lt;br /&gt;
&lt;br /&gt;
The instruction also asked us to install two different versions of QtCreater in the pdf file and in blog, we prefered the version in pdf file since the instruction should be written based on this version.&lt;br /&gt;
&lt;br /&gt;
After struggling for a very long time, I decided to clean everything up and start over. I followed the instruction one step by step but '''skipped one step''' and it turned out everything works perfectly now. &lt;br /&gt;
Link [http://support.omekinteractive.com/forums/viewtopic.php?f=21&amp;amp;t=68&amp;amp;sid=6c151b2898f1e8f53039adc335781c9e Omek Forum] may help you with the version problem. &lt;br /&gt;
&lt;br /&gt;
'''Some conclusion for compiling Qt:'''&lt;br /&gt;
&lt;br /&gt;
(1). I reinstalled the Ubuntu when started over. It turned out you need to install g++ compiler before before getting started.(Type &amp;quot;sudo apt-    &lt;br /&gt;
get install g++&amp;quot;). Other than that, you don't need to do anything not mentioned in the developer's guide and the blog it quotes.&lt;br /&gt;
&lt;br /&gt;
(2). The instruction from Omek is a little redundant with the blog it quotes and not taltally right.(At least they don't all work on my laptop)&lt;br /&gt;
&lt;br /&gt;
(3). The &amp;quot;developer's guide&amp;quot; pdf file and the blog it quotes both tell developer to install a toolchain( but different version, it's 4.6.3 in   &lt;br /&gt;
the pdf file and 4.6.2 in the blog) for cross-compiling. The 4.6.3 toolchain works perfectly for compiling Qt 4.6.2.&lt;br /&gt;
&lt;br /&gt;
(4). You don't have to install QtCreater before compiling Qt. The blog says you'd better download one Qtcreater from the nokia website so that   &lt;br /&gt;
you can get the latest version, but it's not really necessary according to my experience. You can get a pretty good and working version by  &lt;br /&gt;
simply running &amp;quot;sudo apt-get install qtcreator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
(5). In the instruction for building QtTracking Sample, step 3.b tells you to remove the existing qmake step and make you own custom step, but  &lt;br /&gt;
I always got error when the building process reached the costum step, so I tried to just leave the existing qmake there, and everything  &lt;br /&gt;
worked amazingly!!! So, if you get trouble about the costum step you made in building, you can just try to use the default qmake(&amp;quot;existing &lt;br /&gt;
qmake&amp;quot; in the instruction from Omek).&lt;br /&gt;
&lt;br /&gt;
4. '''Build Q-ball without adding Kinect support using Qtcreator'''&lt;br /&gt;
After setting up ready all the development environment, we are going to firstly build the game without Kinect to see if it can work. The source code is already Qt coded, so we didn't meat any problems here. The code could successfully run on our beagleboard.&lt;br /&gt;
&lt;br /&gt;
5. '''Build Q-ball with Kinect support using Qtcreator'''&lt;br /&gt;
Lastly and most importantly, we would add Kinect support to Q-ball. The source code is written in C++, but both of us do not have any experience in it. The process of programming and debugging is quite struggling. We could finally make it work, the BeagleBoard could recognize our left and right scroll gestures, but the speed is very slow. We may proceed with this, and make it faster if more time is allowable.&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
* Github links: [http://github.com/wangg/ECE497 Github], including Omek image, developer guide, Omek sample code, and Kinect supported Q-ball source code &lt;br /&gt;
* Omek Beckon SDK Development tools&lt;br /&gt;
* Qtcreator&lt;br /&gt;
&lt;br /&gt;
1. If you haven't installed git, see instrucstions here [http://elinux.org/EBC_Exercise_07c_git EBC Exercise 07], if you did, git pull our reposotiry to your host.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host$ git clone git@github.com:wangg/ECE497.git&lt;br /&gt;
host$ cd ECE497/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Insert your SD card, we recommend you to use an external USB card-reader, which would avoid strange mistakes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bash mkcard.sh /media/sdX beagle-omek&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
WARNING: If you mistakenly use the main OS device name this script can erase your entire OS.&lt;br /&gt;
&lt;br /&gt;
3. Connect your BeagleBoard, insert your newly made SD-card, plug in the power supply, Kinect, mouse and keyboard. The log in user is root without a password.&lt;br /&gt;
&lt;br /&gt;
4. Now we want to run the demo program Omek gave us to see if everything works.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ECE497/Beckon-SDK-2.4.16236/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTICE: The code has been modified for Q-ball, you need to untar Beckon-SDK-2.4.16236.tar.gz file first in order to run the sample.&lt;br /&gt;
&lt;br /&gt;
To run Qt Tracking Sample in live tracking using camera input:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./tracking.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if you can record a camera sequence using the tools provided with the PC version of OpenNI. To run prerecorded camera sequence (OpenNI sequence file (.oni)): &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./tracking.sh -seq path/to/directory/containing/the/sequence/file/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: the path points to a directory containing the sequence, not to the sequence file itself.&lt;br /&gt;
&lt;br /&gt;
To run TrackingViewer3D Sample in live tracking using camera input: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./tracking3d.sh -gest &amp;lt;gesture name&amp;gt; -gest ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To run GestureDemo Sample, you need to run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./gestures.sh -gest &amp;lt;gesture name&amp;gt; -gest ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The supported list of gestures are:&lt;br /&gt;
• _rightClick _leftClick&lt;br /&gt;
• _rightScrollRight _rightScrollLeft&lt;br /&gt;
• _rightScrollUp _rightScrollDown&lt;br /&gt;
• _leftScrollRight _leftScrollLeft&lt;br /&gt;
• _leftScrollUp _leftScrollDown&lt;br /&gt;
&lt;br /&gt;
Note: The path points to a directory containing the sequence, not to the sequence file itself.&lt;br /&gt;
&lt;br /&gt;
5. Now we are moving to the host side, and install the toolchain and Qtcreator we need.&lt;br /&gt;
There is a very good blog that shows the every step you need to do. The link is here [http://treyweaver.blogspot.com/2010/10/setting-up-qt-development-environment.html blog]&lt;br /&gt;
We are using 4.6.2 version, you can download the file at [http://www.angstrom-distribution.org/toolchains/archive/ here], &lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
1. Our project enables the BeagleBoard to recognize Kinect and could play a game with it using its gesture recognition function.&lt;br /&gt;
&lt;br /&gt;
2. We used Qt creator, the embedded version of qt to create, build and debug the program.&lt;br /&gt;
&lt;br /&gt;
3. We cross-compiled the program on our host, which made it much easier to debug and program.&lt;br /&gt;
&lt;br /&gt;
4. There may be various of compilation errors when building the project, regardless of the code problem, we thought it may because of the setup of building configurations. We finally chose to use the project configuration of TrackingDemo(use this project settings and import the sources and header files in it) for it is much more similar to what we want to develop. And this one just works.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
The whole point is to use Kinect interface provided by Omek to control the movement of the bar. The original control is achieved by calling Qt key event &amp;quot;Qt::Key_Left&amp;quot;, which would get back a value that is used in PlayGameState::updateScene as shown followings:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 // move&lt;br /&gt;
    if( mainWindow-&amp;gt;isKeyDownLeft() ) {&lt;br /&gt;
        bat_has_target = false;&lt;br /&gt;
        itemBat-&amp;gt;moveBy(-bat_sp_x_c, 0);&lt;br /&gt;
        if( itemBat-&amp;gt;pos().x() &amp;lt; 0 ) {&lt;br /&gt;
            itemBat-&amp;gt;setPos(0, itemBat-&amp;gt;pos().y());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    else if( mainWindow-&amp;gt;isKeyDownRight() ) {&lt;br /&gt;
        bat_has_target = false;&lt;br /&gt;
        itemBat-&amp;gt;moveBy(bat_sp_x_c, 0);&lt;br /&gt;
        if( itemBat-&amp;gt;pos().x() &amp;gt; scene-&amp;gt;width() - bat_w_c ) {&lt;br /&gt;
            itemBat-&amp;gt;setPos(scene-&amp;gt;width() - bat_w_c, itemBat-&amp;gt;pos().y());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    else if( bat_has_target ) {&lt;br /&gt;
        int bat_centre_x = itemBat-&amp;gt;pos().x() + bat_w_c/2;&lt;br /&gt;
        int dist = abs(bat_centre_x - bat_target_x);&lt;br /&gt;
        if( dist &amp;lt;= bat_sp_x_c ) {&lt;br /&gt;
            itemBat-&amp;gt;setPos(bat_target_x - bat_w_c/2, itemBat-&amp;gt;pos().y());&lt;br /&gt;
            bat_has_target = false;&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            int dir = bat_target_x &amp;gt; bat_centre_x ? 1 : -1;&lt;br /&gt;
            itemBat-&amp;gt;moveBy(dir * bat_sp_x_c, 0);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
In order to replace the condition judgement in if() shown above, we need to first initialize Omek Kinect sensors ready. The Omek give us a good example on how to register and enable Gestures, we would use that directly. The problem is whether we should initialize them in main(), or in class. We need the init to get the value of pGesture in order to get gestureName that used to determine which gesture is detected, so we can't seperate them! If we put them in main(), then we won't be able to process them repeatly. The best way is to put them in class, and use the following code to call the class from period to period.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 QTimer timer;&lt;br /&gt;
    QObject::connect(&amp;amp;timer, SIGNAL(timeout()), &amp;amp;w, SLOT(updateScene()));&lt;br /&gt;
    timer.start(time_per_frame_c);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: We found a good explanation of this code. See here:[http://developer.qt.nokia.com/doc/qt-4.8/graphicsview-collidingmice.html]&lt;br /&gt;
&lt;br /&gt;
At this point, we have two different ways of coding. Guanqun defined the init function of kinect in a headerfile called GestureDemo.h, and call it within PlayGameState::updateScene. So every period of time_per_frame_c, it would go into the init function, and detect which gestures we make. While, Yifei put the init function into a new class, called PlayGameState::updateKinect, and add another signal called timer1_per_frame_c so that updateKinect and updateScene would be both processed repeatly. The first one worked!&lt;br /&gt;
&lt;br /&gt;
We still want to use the keyboard while playing with it. So we didn't change anything in MainWindow::KeyPressEvent and MainWindow::KeyReleaseEvent. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MainWindow::keyPressEvent(QKeyEvent *event) {&lt;br /&gt;
    //qDebug(&amp;quot;keyPressEvent&amp;quot;);&lt;br /&gt;
    if( event-&amp;gt;key() == Qt::Key_Left ) {&lt;br /&gt;
        this-&amp;gt;keydown_left = true;&lt;br /&gt;
        //qDebug(&amp;quot;left&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_Right ) {&lt;br /&gt;
        this-&amp;gt;keydown_right = true;&lt;br /&gt;
        //qDebug(&amp;quot;right&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_Escape ) {&lt;br /&gt;
        gamestate-&amp;gt;userQuit();&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_P ) {&lt;br /&gt;
        gamestate-&amp;gt;userPause();&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_Return ) {&lt;br /&gt;
        QPushButton *button = qobject_cast&amp;lt; QPushButton* &amp;gt;(qApp-&amp;gt;focusWidget());&lt;br /&gt;
        if (button) {&lt;br /&gt;
            button-&amp;gt;click();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        QMainWindow::keyPressEvent(event);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::keyReleaseEvent(QKeyEvent *event) {&lt;br /&gt;
    //qDebug(&amp;quot;keyReleaseEvent&amp;quot;);&lt;br /&gt;
    if( event-&amp;gt;key() == Qt::Key_Left ) {&lt;br /&gt;
        this-&amp;gt;keydown_left = false;&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_Right ) {&lt;br /&gt;
        this-&amp;gt;keydown_right = false;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        QMainWindow::keyReleaseEvent(event);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Now, let's take a look at how initilizing Kinect sensor is made:&lt;br /&gt;
&lt;br /&gt;
This would create the sensor&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    if (a==0){&lt;br /&gt;
        // create the sensor&lt;br /&gt;
        if (sequencePath)&lt;br /&gt;
        {&lt;br /&gt;
                // from a sequence&lt;br /&gt;
                pSensor = IMotionSensor::createSequenceSensor(sequencePath);&lt;br /&gt;
        }&lt;br /&gt;
        else&lt;br /&gt;
        {&lt;br /&gt;
                // from a cameras&lt;br /&gt;
                pSensor = IMotionSensor::createCameraSensor(true);&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if(pSensor == NULL)&lt;br /&gt;
        {&lt;br /&gt;
                cerr &amp;lt;&amp;lt; &amp;quot;Error, failed creating sensor.&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
                ret = 1;&lt;br /&gt;
                goto end;&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This initialize the tracking algorithm, OMK_SUCCESS and setTrackingOptons are defined in header files Omek provided with us.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
    // initialize the tracking algorithm&lt;br /&gt;
        if(pSensor-&amp;gt;setTrackingOptions(TRACK_ALL) != OMK_SUCCESS)&lt;br /&gt;
        {&lt;br /&gt;
                cerr &amp;lt;&amp;lt; &amp;quot;Error, failed to set tracking options.&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
                ret = 1;&lt;br /&gt;
                goto end;&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This enables the gestures that we want to use, only enabled gestures can be called;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  // enable the selected gestures&lt;br /&gt;
        numberOfGestures=1;&lt;br /&gt;
        for(int i = 0 ; i &amp;lt; numberOfGestures; i++)&lt;br /&gt;
        {&lt;br /&gt;
                if(pSensor-&amp;gt;enableGesture(&amp;quot;_rightScrollRight&amp;quot;) != OMK_SUCCESS)&lt;br /&gt;
                {&lt;br /&gt;
                        cerr &amp;lt;&amp;lt; &amp;quot;Error, unrecognized gesture: &amp;quot; &amp;lt;&amp;lt; &amp;quot;_rightScrollRight&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
                        ret = 1;&lt;br /&gt;
                        goto end;&lt;br /&gt;
                }&lt;br /&gt;
                if(pSensor-&amp;gt;enableGesture(&amp;quot;_leftScrollLeft&amp;quot;) != OMK_SUCCESS)&lt;br /&gt;
                {&lt;br /&gt;
                        cerr &amp;lt;&amp;lt; &amp;quot;Error, unrecognized gesture: &amp;quot; &amp;lt;&amp;lt; &amp;quot;_leftScrollLeft&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
                        ret = 1;&lt;br /&gt;
                        goto end;&lt;br /&gt;
                }&lt;br /&gt;
                /*if(pSensor-&amp;gt;enableGesture(&amp;quot;_rightClick&amp;quot;) != OMK_SUCCESS)&lt;br /&gt;
{&lt;br /&gt;
cerr &amp;lt;&amp;lt; &amp;quot;Error, unrecognized gesture: &amp;quot; &amp;lt;&amp;lt; &amp;quot;_rightScrollClick&amp;quot; &amp;lt;&amp;lt; endl;&lt;br /&gt;
ret = 1;&lt;br /&gt;
goto end;&lt;br /&gt;
}*/&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
We want to rescan the gesture again and again for control the bar. So this code should be used:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
  // run the main loop as long as there are frames to process&lt;br /&gt;
                while (sensor-&amp;gt;isAlive() &amp;amp;&amp;amp; g_run_gestures)&lt;br /&gt;
                {&lt;br /&gt;
                        // Handle the current frame only if we have successfully processed a new image&lt;br /&gt;
                        bool bHasNewImage = false;&lt;br /&gt;
                        if ((pSensor-&amp;gt;processNextImage(true, bHasNewImage) == OMK_SUCCESS) &amp;amp;&amp;amp; bHasNewImage)&lt;br /&gt;
                        {&lt;br /&gt;
                                processedFrames++;&lt;br /&gt;
                                while (pSensor-&amp;gt;hasMoreGestures())&lt;br /&gt;
                                {&lt;br /&gt;
                                        const IFiredEvent* pFiredEvent = pFiredEvent = pSensor-&amp;gt;popNextGesture();&lt;br /&gt;
                                        std::stringstream text;&lt;br /&gt;
                                        text &amp;lt;&amp;lt; endl &amp;lt;&amp;lt; &amp;quot;Gesture (&amp;quot; &amp;lt;&amp;lt; (pFiredEvent-&amp;gt;getName()!=NULL?pFiredEvent-&amp;gt;getName():&amp;quot;&amp;quot;) &amp;lt;&amp;lt; &amp;quot;) fired in frame &amp;quot; &amp;lt;&amp;lt; processedFrames;&lt;br /&gt;
                                        cout &amp;lt;&amp;lt; text.str().c_str() &amp;lt;&amp;lt; endl;&lt;br /&gt;
                                        std::string gestureName = pFiredEvent-&amp;gt;getName();&lt;br /&gt;
                                        if (gestureName == &amp;quot;_rightScrollRight&amp;quot;) {haha=1;}&lt;br /&gt;
                                        else if (gestureName == &amp;quot;_leftScrollLeft&amp;quot;) {haha1=1;}&lt;br /&gt;
                                        //else if (gestureName == &amp;quot;_rightClick&amp;quot;) {haha1=0;haha=0;}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
                                        pSensor-&amp;gt;releaseGesture(pFiredEvent);&lt;br /&gt;
                                        g_run_gestures = 0;&lt;br /&gt;
                                }&lt;br /&gt;
                        }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Notice two while()s are used. The first while() check to see if there are still sensors being used, the second while() used to detect whether more gestures are made.&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
1. Installed the Beckon SDK Development tools on both Linux PC host and BeagleBoard; Successfully tested the sample code and discussed the interface functions. ---completed on February 5th by Yifei Li and Guanqun Wang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project:_Kinect_Project</id>
		<title>ECE497 Project: Kinect Project</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project:_Kinect_Project"/>
				<updated>2012-02-20T16:30:52Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: Theory of Operation&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
&lt;br /&gt;
Team members: [[user:Yifei|Yifei Li]], [[user:Gemini91|Guanqun Wang]]&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
Our goal is to implant a specific game application into Beagleboard and using Microsoft's Kinect to play with it. We would firstly make the Kinect recognizable to the Beagleboard. And then try to adapt the application to the Beagleboard. We haven't decided which game to play with, because the performance may be greatly influenced by what kind of operating system we want to use, or the size of this game. So the second part would be to test what is the best option for us. Finally, we would try everything to make it work.&lt;br /&gt;
&lt;br /&gt;
Update: We finally decided to use Omek Beckon 2.4 SDK on BeagleBoard as interface of Kinect to develop our application and we chose Qt creator as cross-compiler tool to program and debug. As the limitation of the image(we could only use the image Omek provided with us, see [http://support.omekinteractive.com/forums/viewtopic.php?f=21&amp;amp;t=58&amp;amp;sid=2ac0c7615fd5accfaf0458ed662ec5bb Omek Forum] for details, you may need to register first), we can't transfer all the drivers and data to the image we used to use and also we can't develop programs with GUI using Qt, because the Omek image only support command-line mode, so we chose to develop the GUI itself within the source code. We searched on line and found the open source code for a game called Q-ball. We are going to use kinect to play with it.&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
1. '''Burn the Image Package and Boot the System'''&lt;br /&gt;
&lt;br /&gt;
The detailed instruction is shown in page7 of developer's guide from omek.&lt;br /&gt;
&lt;br /&gt;
When I tried to run mkcard.sh to create new partitions, I got some errors.&lt;br /&gt;
&lt;br /&gt;
One of the error is the shell script is asumming that first partition of device &amp;quot;mmc&amp;quot; is &amp;quot;mmc1&amp;quot; but it's &amp;quot;mmcp1&amp;quot; in my Ubuntu. I changed the shell script to fix this but still got some errors about the partition specs.&lt;br /&gt;
&lt;br /&gt;
Finally I found a tricky way to use the shell script directly. If I use a external USB card reader to read and write the microsd card, everything just works perfectly. I think maybe the author of shell script had a different verison of Linux or only tested the script on descktop with external card reader.&lt;br /&gt;
&lt;br /&gt;
2. '''Run the Sample Demos'''&lt;br /&gt;
&lt;br /&gt;
After burning the microsd card sucessfully, we can boot from this card and see a simplified Angstrom without GUI. All demos ran almost as expected but, &lt;br /&gt;
&lt;br /&gt;
(1).the program froze sometimes. It even happened sometimes when we were just typing some command. We think maybe it's because of the speed of microsd card. We will get a faster card and have a try.&lt;br /&gt;
&lt;br /&gt;
(2).the tracking for legs doesn't work very well, we think maybe it's because we didn't have enough space for the kinect.(When you played kinect game in xbox, it will tell you a large space is required for tracking).&lt;br /&gt;
&lt;br /&gt;
3. '''Compile the Sample Code on Host'''&lt;br /&gt;
&lt;br /&gt;
Detailed instruction is provided in page26 of the developer's guide from omek.&lt;br /&gt;
By following the instruction, we downloaded and installed the Linux ARM cross toolchain. We also installed zlib library and cross compiler for qt. But we had some problem when compiling qt. The error information says the make cannot find the cross-compiler. I used export command to set the path of cross complier we used in class before(some time later I noticed this may cause some problem) and new error occured saying &amp;quot;undefined reference to clock_gettime&amp;quot;. I googled it and find it's involved in one library so I modifed the make file and include the library when compiling but it still gave the same error.&lt;br /&gt;
&lt;br /&gt;
Then I went through the instruction carefully and found actually the instruction asked us to install two different toolchains for the same purpose. The difference of two toolchains is the version of qt, one is 4.6.3 and the other is 4.6.2, since our souce code is for 4.6.2 version, so I want to try toolchain for 4.6.2 to see if it makes any difference.&lt;br /&gt;
&lt;br /&gt;
The instruction also asked us to install two different versions of QtCreater in the pdf file and in blog, we prefered the version in pdf file since the instruction should be written based on this version.&lt;br /&gt;
&lt;br /&gt;
After struggling for a very long time, I decided to clean everything up and start over. I followed the instruction one step by step but '''skipped one step''' and it turned out everything works perfectly now. &lt;br /&gt;
Link [http://support.omekinteractive.com/forums/viewtopic.php?f=21&amp;amp;t=68&amp;amp;sid=6c151b2898f1e8f53039adc335781c9e Omek Forum] may help you with the version problem. &lt;br /&gt;
&lt;br /&gt;
'''Some conclusion for compiling Qt:'''&lt;br /&gt;
&lt;br /&gt;
(1). I reinstalled the Ubuntu when started over. It turned out you need to install g++ compiler before before getting started.(Type &amp;quot;sudo apt-    &lt;br /&gt;
get install g++&amp;quot;). Other than that, you don't need to do anything not mentioned in the developer's guide and the blog it quotes.&lt;br /&gt;
&lt;br /&gt;
(2). The instruction from Omek is a little redundant with the blog it quotes and not taltally right.(At least they don't all work on my laptop)&lt;br /&gt;
&lt;br /&gt;
(3). The &amp;quot;developer's guide&amp;quot; pdf file and the blog it quotes both tell developer to install a toolchain( but different version, it's 4.6.3 in   &lt;br /&gt;
the pdf file and 4.6.2 in the blog) for cross-compiling. The 4.6.3 toolchain works perfectly for compiling Qt 4.6.2.&lt;br /&gt;
&lt;br /&gt;
(4). You don't have to install QtCreater before compiling Qt. The blog says you'd better download one Qtcreater from the nokia website so that   &lt;br /&gt;
you can get the latest version, but it's not really necessary according to my experience. You can get a pretty good and working version by  &lt;br /&gt;
simply running &amp;quot;sudo apt-get install qtcreator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
(5). In the instruction for building QtTracking Sample, step 3.b tells you to remove the existing qmake step and make you own custom step, but  &lt;br /&gt;
I always got error when the building process reached the costum step, so I tried to just leave the existing qmake there, and everything  &lt;br /&gt;
worked amazingly!!! So, if you get trouble about the costum step you made in building, you can just try to use the default qmake(&amp;quot;existing &lt;br /&gt;
qmake&amp;quot; in the instruction from Omek).&lt;br /&gt;
&lt;br /&gt;
4. '''Build Q-ball without adding Kinect support using Qtcreator'''&lt;br /&gt;
After setting up ready all the development environment, we are going to firstly build the game without Kinect to see if it can work. The source code is already Qt coded, so we didn't meat any problems here. The code could successfully run on our beagleboard.&lt;br /&gt;
&lt;br /&gt;
5. '''Build Q-ball with Kinect support using Qtcreator'''&lt;br /&gt;
Lastly and most importantly, we would add Kinect support to Q-ball. The source code is written in C++, but both of us do not have any experience in it. The process of programming and debugging is quite struggling. We could finally make it work, the BeagleBoard could recognize our left and right scroll gestures, but the speed is very slow. We may proceed with this, and make it faster if more time is allowable.&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
* Github links: [http://github.com/wangg/ECE497 Github], including Omek image, developer guide, Omek sample code, and Kinect supported Q-ball source code &lt;br /&gt;
* Omek Beckon SDK Development tools&lt;br /&gt;
* Qtcreator&lt;br /&gt;
&lt;br /&gt;
1. If you haven't installed git, see instrucstions here [http://elinux.org/EBC_Exercise_07c_git EBC Exercise 07], if you did, git pull our reposotiry to your host.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host$ git clone git@github.com:wangg/ECE497.git&lt;br /&gt;
host$ cd ECE497/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Insert your SD card, we recommend you to use an external USB card-reader, which would avoid strange mistakes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bash mkcard.sh /media/sdX beagle-omek&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
WARNING: If you mistakenly use the main OS device name this script can erase your entire OS.&lt;br /&gt;
&lt;br /&gt;
3. Connect your BeagleBoard, insert your newly made SD-card, plug in the power supply, Kinect, mouse and keyboard. The log in user is root without a password.&lt;br /&gt;
&lt;br /&gt;
4. Now we want to run the demo program Omek gave us to see if everything works.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ECE497/Beckon-SDK-2.4.16236/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTICE: The code has been modified for Q-ball, you need to untar Beckon-SDK-2.4.16236.tar.gz file first in order to run the sample.&lt;br /&gt;
&lt;br /&gt;
To run Qt Tracking Sample in live tracking using camera input:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./tracking.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if you can record a camera sequence using the tools provided with the PC version of OpenNI. To run prerecorded camera sequence (OpenNI sequence file (.oni)): &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./tracking.sh -seq path/to/directory/containing/the/sequence/file/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: the path points to a directory containing the sequence, not to the sequence file itself.&lt;br /&gt;
&lt;br /&gt;
To run TrackingViewer3D Sample in live tracking using camera input: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./tracking3d.sh -gest &amp;lt;gesture name&amp;gt; -gest ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To run GestureDemo Sample, you need to run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./gestures.sh -gest &amp;lt;gesture name&amp;gt; -gest ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The supported list of gestures are:&lt;br /&gt;
• _rightClick _leftClick&lt;br /&gt;
• _rightScrollRight _rightScrollLeft&lt;br /&gt;
• _rightScrollUp _rightScrollDown&lt;br /&gt;
• _leftScrollRight _leftScrollLeft&lt;br /&gt;
• _leftScrollUp _leftScrollDown&lt;br /&gt;
&lt;br /&gt;
Note: The path points to a directory containing the sequence, not to the sequence file itself.&lt;br /&gt;
&lt;br /&gt;
5. Now we are moving to the host side, and install the toolchain and Qtcreator we need.&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
The whole point is to use Kinect interface provided by Omek to control the movement of the bar. The original control is achieved by calling Qt key event &amp;quot;Qt::Key_Left&amp;quot;, which would get back a value that is used in PlayGameState::updateScene as shown followings:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 // move&lt;br /&gt;
    if( mainWindow-&amp;gt;isKeyDownLeft() ) {&lt;br /&gt;
        bat_has_target = false;&lt;br /&gt;
        itemBat-&amp;gt;moveBy(-bat_sp_x_c, 0);&lt;br /&gt;
        if( itemBat-&amp;gt;pos().x() &amp;lt; 0 ) {&lt;br /&gt;
            itemBat-&amp;gt;setPos(0, itemBat-&amp;gt;pos().y());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    else if( mainWindow-&amp;gt;isKeyDownRight() ) {&lt;br /&gt;
        bat_has_target = false;&lt;br /&gt;
        itemBat-&amp;gt;moveBy(bat_sp_x_c, 0);&lt;br /&gt;
        if( itemBat-&amp;gt;pos().x() &amp;gt; scene-&amp;gt;width() - bat_w_c ) {&lt;br /&gt;
            itemBat-&amp;gt;setPos(scene-&amp;gt;width() - bat_w_c, itemBat-&amp;gt;pos().y());&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    else if( bat_has_target ) {&lt;br /&gt;
        int bat_centre_x = itemBat-&amp;gt;pos().x() + bat_w_c/2;&lt;br /&gt;
        int dist = abs(bat_centre_x - bat_target_x);&lt;br /&gt;
        if( dist &amp;lt;= bat_sp_x_c ) {&lt;br /&gt;
            itemBat-&amp;gt;setPos(bat_target_x - bat_w_c/2, itemBat-&amp;gt;pos().y());&lt;br /&gt;
            bat_has_target = false;&lt;br /&gt;
        }&lt;br /&gt;
        else {&lt;br /&gt;
            int dir = bat_target_x &amp;gt; bat_centre_x ? 1 : -1;&lt;br /&gt;
            itemBat-&amp;gt;moveBy(dir * bat_sp_x_c, 0);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
In order to replace the condition judgement in if() shown above, we need to first initialize Omek Kinect sensors ready. The Omek give us a good example on how to register and enable Gestures, we would use that directly. The problem is whether we should initialize them in main(), or in class. We need the init to get the value of pGesture in order to get gestureName that used to determine which gesture is detected, so we can't seperate them! If we put them in main(), then we won't be able to process them repeatly. The best way is to put them in class, and use the following code to call the class from period to period.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 QTimer timer;&lt;br /&gt;
    QObject::connect(&amp;amp;timer, SIGNAL(timeout()), &amp;amp;w, SLOT(updateScene()));&lt;br /&gt;
    timer.start(time_per_frame_c);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: We found a good explanation of this code. See here:[http://developer.qt.nokia.com/doc/qt-4.8/graphicsview-collidingmice.html]&lt;br /&gt;
&lt;br /&gt;
At this point, we have two different ways of coding. Guanqun defined the init function of kinect in a headerfile called GestureDemo.h, and call it within PlayGameState::updateScene. So every period of time_per_frame_c, it would go into the init function, and detect which gestures we make. While, Yifei put the init function into a new class, called PlayGameState::updateKinect, and add another signal called timer1_per_frame_c so that updateKinect and updateScene would be both processed repeatly. The first one worked!&lt;br /&gt;
&lt;br /&gt;
We still want to use the keyboard while playing with it. So we didn't change anything in MainWindow::KeyPressEvent and MainWindow::KeyReleaseEvent. &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
void MainWindow::keyPressEvent(QKeyEvent *event) {&lt;br /&gt;
    //qDebug(&amp;quot;keyPressEvent&amp;quot;);&lt;br /&gt;
    if( event-&amp;gt;key() == Qt::Key_Left ) {&lt;br /&gt;
        this-&amp;gt;keydown_left = true;&lt;br /&gt;
        //qDebug(&amp;quot;left&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_Right ) {&lt;br /&gt;
        this-&amp;gt;keydown_right = true;&lt;br /&gt;
        //qDebug(&amp;quot;right&amp;quot;);&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_Escape ) {&lt;br /&gt;
        gamestate-&amp;gt;userQuit();&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_P ) {&lt;br /&gt;
        gamestate-&amp;gt;userPause();&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_Return ) {&lt;br /&gt;
        QPushButton *button = qobject_cast&amp;lt; QPushButton* &amp;gt;(qApp-&amp;gt;focusWidget());&lt;br /&gt;
        if (button) {&lt;br /&gt;
            button-&amp;gt;click();&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        QMainWindow::keyPressEvent(event);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
void MainWindow::keyReleaseEvent(QKeyEvent *event) {&lt;br /&gt;
    //qDebug(&amp;quot;keyReleaseEvent&amp;quot;);&lt;br /&gt;
    if( event-&amp;gt;key() == Qt::Key_Left ) {&lt;br /&gt;
        this-&amp;gt;keydown_left = false;&lt;br /&gt;
    }&lt;br /&gt;
    else if( event-&amp;gt;key() == Qt::Key_Right ) {&lt;br /&gt;
        this-&amp;gt;keydown_right = false;&lt;br /&gt;
    }&lt;br /&gt;
    else {&lt;br /&gt;
        QMainWindow::keyReleaseEvent(event);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
1. Installed the Beckon SDK Development tools on both Linux PC host and BeagleBoard; Successfully tested the sample code and discussed the interface functions. ---completed on February 5th by Yifei Li and Guanqun Wang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project:_Kinect_Project</id>
		<title>ECE497 Project: Kinect Project</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project:_Kinect_Project"/>
				<updated>2012-02-20T15:33:15Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
&lt;br /&gt;
Team members: [[user:Yifei|Yifei Li]], [[user:Gemini91|Guanqun Wang]]&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
Our goal is to implant a specific game application into Beagleboard and using Microsoft's Kinect to play with it. We would firstly make the Kinect recognizable to the Beagleboard. And then try to adapt the application to the Beagleboard. We haven't decided which game to play with, because the performance may be greatly influenced by what kind of operating system we want to use, or the size of this game. So the second part would be to test what is the best option for us. Finally, we would try everything to make it work.&lt;br /&gt;
&lt;br /&gt;
Update: We finally decided to use Omek Beckon 2.4 SDK on BeagleBoard as interface of Kinect to develop our application and we chose Qt creator as cross-compiler tool to program and debug. As the limitation of the image(we could only use the image Omek provided with us, see [http://support.omekinteractive.com/forums/viewtopic.php?f=21&amp;amp;t=58&amp;amp;sid=2ac0c7615fd5accfaf0458ed662ec5bb Omek Forum] for details, you may need to register first), we can't transfer all the drivers and data to the image we used to use and also we can't develop programs with GUI using Qt, because the Omek image only support command-line mode, so we chose to develop the GUI itself within the source code. We searched on line and found the open source code for a game called Q-ball. We are going to use kinect to play with it.&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
1. '''Burn the Image Package and Boot the System'''&lt;br /&gt;
&lt;br /&gt;
The detailed instruction is shown in page7 of developer's guide from omek.&lt;br /&gt;
&lt;br /&gt;
When I tried to run mkcard.sh to create new partitions, I got some errors.&lt;br /&gt;
&lt;br /&gt;
One of the error is the shell script is asumming that first partition of device &amp;quot;mmc&amp;quot; is &amp;quot;mmc1&amp;quot; but it's &amp;quot;mmcp1&amp;quot; in my Ubuntu. I changed the shell script to fix this but still got some errors about the partition specs.&lt;br /&gt;
&lt;br /&gt;
Finally I found a tricky way to use the shell script directly. If I use a external USB card reader to read and write the microsd card, everything just works perfectly. I think maybe the author of shell script had a different verison of Linux or only tested the script on descktop with external card reader.&lt;br /&gt;
&lt;br /&gt;
2. '''Run the Sample Demos'''&lt;br /&gt;
&lt;br /&gt;
After burning the microsd card sucessfully, we can boot from this card and see a simplified Angstrom without GUI. All demos ran almost as expected but, &lt;br /&gt;
&lt;br /&gt;
(1).the program froze sometimes. It even happened sometimes when we were just typing some command. We think maybe it's because of the speed of microsd card. We will get a faster card and have a try.&lt;br /&gt;
&lt;br /&gt;
(2).the tracking for legs doesn't work very well, we think maybe it's because we didn't have enough space for the kinect.(When you played kinect game in xbox, it will tell you a large space is required for tracking).&lt;br /&gt;
&lt;br /&gt;
3. '''Compile the Sample Code on Host'''&lt;br /&gt;
&lt;br /&gt;
Detailed instruction is provided in page26 of the developer's guide from omek.&lt;br /&gt;
By following the instruction, we downloaded and installed the Linux ARM cross toolchain. We also installed zlib library and cross compiler for qt. But we had some problem when compiling qt. The error information says the make cannot find the cross-compiler. I used export command to set the path of cross complier we used in class before(some time later I noticed this may cause some problem) and new error occured saying &amp;quot;undefined reference to clock_gettime&amp;quot;. I googled it and find it's involved in one library so I modifed the make file and include the library when compiling but it still gave the same error.&lt;br /&gt;
&lt;br /&gt;
Then I went through the instruction carefully and found actually the instruction asked us to install two different toolchains for the same purpose. The difference of two toolchains is the version of qt, one is 4.6.3 and the other is 4.6.2, since our souce code is for 4.6.2 version, so I want to try toolchain for 4.6.2 to see if it makes any difference.&lt;br /&gt;
&lt;br /&gt;
The instruction also asked us to install two different versions of QtCreater in the pdf file and in blog, we prefered the version in pdf file since the instruction should be written based on this version.&lt;br /&gt;
&lt;br /&gt;
After struggling for a very long time, I decided to clean everything up and start over. I followed the instruction one step by step but '''skipped one step''' and it turned out everything works perfectly now. &lt;br /&gt;
Link [http://support.omekinteractive.com/forums/viewtopic.php?f=21&amp;amp;t=68&amp;amp;sid=6c151b2898f1e8f53039adc335781c9e Omek Forum] may help you with the version problem. &lt;br /&gt;
&lt;br /&gt;
'''Some conclusion for compiling Qt:'''&lt;br /&gt;
&lt;br /&gt;
(1). I reinstalled the Ubuntu when started over. It turned out you need to install g++ compiler before before getting started.(Type &amp;quot;sudo apt-    &lt;br /&gt;
get install g++&amp;quot;). Other than that, you don't need to do anything not mentioned in the developer's guide and the blog it quotes.&lt;br /&gt;
&lt;br /&gt;
(2). The instruction from Omek is a little redundant with the blog it quotes and not taltally right.(At least they don't all work on my laptop)&lt;br /&gt;
&lt;br /&gt;
(3). The &amp;quot;developer's guide&amp;quot; pdf file and the blog it quotes both tell developer to install a toolchain( but different version, it's 4.6.3 in   &lt;br /&gt;
the pdf file and 4.6.2 in the blog) for cross-compiling. The 4.6.3 toolchain works perfectly for compiling Qt 4.6.2.&lt;br /&gt;
&lt;br /&gt;
(4). You don't have to install QtCreater before compiling Qt. The blog says you'd better download one Qtcreater from the nokia website so that   &lt;br /&gt;
you can get the latest version, but it's not really necessary according to my experience. You can get a pretty good and working version by  &lt;br /&gt;
simply running &amp;quot;sudo apt-get install qtcreator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
(5). In the instruction for building QtTracking Sample, step 3.b tells you to remove the existing qmake step and make you own custom step, but  &lt;br /&gt;
I always got error when the building process reached the costum step, so I tried to just leave the existing qmake there, and everything  &lt;br /&gt;
worked amazingly!!! So, if you get trouble about the costum step you made in building, you can just try to use the default qmake(&amp;quot;existing &lt;br /&gt;
qmake&amp;quot; in the instruction from Omek).&lt;br /&gt;
&lt;br /&gt;
4. '''Build Q-ball without adding Kinect support using Qtcreator'''&lt;br /&gt;
After setting up ready all the development environment, we are going to firstly build the game without Kinect to see if it can work. The source code is already Qt coded, so we didn't meat any problems here. The code could successfully run on our beagleboard.&lt;br /&gt;
&lt;br /&gt;
5. '''Build Q-ball with Kinect support using Qtcreator'''&lt;br /&gt;
Lastly and most importantly, we would add Kinect support to Q-ball. The source code is written in C++, but both of us do not have any experience in it. The process of programming and debugging is quite struggling. We could finally make it work, the BeagleBoard could recognize our left and right scroll gestures, but the speed is very slow. We may proceed with this, and make it faster if more time is allowable.&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
* Github links: [http://github.com/wangg/ECE497 Github], including Omek image, developer guide, Omek sample code, and Kinect supported Q-ball source code &lt;br /&gt;
* Omek Beckon SDK Development tools&lt;br /&gt;
* Qtcreator&lt;br /&gt;
&lt;br /&gt;
1. If you haven't installed git, see instrucstions here [http://elinux.org/EBC_Exercise_07c_git EBC Exercise 07], if you did, git pull our reposotiry to your host.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
host$ git clone git@github.com:wangg/ECE497.git&lt;br /&gt;
host$ cd ECE497/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Insert your SD card, we recommend you to use an external USB card-reader, which would avoid strange mistakes.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
sudo bash mkcard.sh /media/sdX beagle-omek&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
WARNING: If you mistakenly use the main OS device name this script can erase your entire OS.&lt;br /&gt;
&lt;br /&gt;
3. Connect your BeagleBoard, insert your newly made SD-card, plug in the power supply, Kinect, mouse and keyboard. The log in user is root without a password.&lt;br /&gt;
&lt;br /&gt;
4. Now we want to run the demo program Omek gave us to see if everything works.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
cd ECE497/Beckon-SDK-2.4.16236/bin&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
NOTICE: The code has been modified for Q-ball, you need to untar Beckon-SDK-2.4.16236.tar.gz file first in order to run the sample.&lt;br /&gt;
&lt;br /&gt;
To run Qt Tracking Sample in live tracking using camera input:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./tracking.sh&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
or if you can record a camera sequence using the tools provided with the PC version of OpenNI. To run prerecorded camera sequence (OpenNI sequence file (.oni)): &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./tracking.sh -seq path/to/directory/containing/the/sequence/file/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: the path points to a directory containing the sequence, not to the sequence file itself.&lt;br /&gt;
&lt;br /&gt;
To run TrackingViewer3D Sample in live tracking using camera input: &lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./tracking3d.sh -gest &amp;lt;gesture name&amp;gt; -gest ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
To run GestureDemo Sample, you need to run&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# sh ./gestures.sh -gest &amp;lt;gesture name&amp;gt; -gest ...&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
The supported list of gestures are:&lt;br /&gt;
• _rightClick _leftClick&lt;br /&gt;
• _rightScrollRight _rightScrollLeft&lt;br /&gt;
• _rightScrollUp _rightScrollDown&lt;br /&gt;
• _leftScrollRight _leftScrollLeft&lt;br /&gt;
• _leftScrollUp _leftScrollDown&lt;br /&gt;
&lt;br /&gt;
Note: The path points to a directory containing the sequence, not to the sequence file itself.&lt;br /&gt;
&lt;br /&gt;
5. Now we are moving to the host side, and install the toolchain and Qtcreator we need.&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
1. Installed the Beckon SDK Development tools on both Linux PC host and BeagleBoard; Successfully tested the sample code and discussed the interface functions. ---completed on February 5th by Yifei Li and Guanqun Wang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project:_Kinect_Project</id>
		<title>ECE497 Project: Kinect Project</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project:_Kinect_Project"/>
				<updated>2012-02-20T12:01:14Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: objective and executive summary change&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
&lt;br /&gt;
Team members: [[user:Yifei|Yifei Li]], [[user:Gemini91|Guanqun Wang]]&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
Our goal is to implant a specific game application into Beagleboard and using Microsoft's Kinect to play with it. We would firstly make the Kinect recognizable to the Beagleboard. And then try to adapt the application to the Beagleboard. We haven't decided which game to play with, because the performance may be greatly influenced by what kind of operating system we want to use, or the size of this game. So the second part would be to test what is the best option for us. Finally, we would try everything to make it work.&lt;br /&gt;
Update: We finally decided to use Omek Beckon 2.4 SDK on BeagleBoard as interface of Kinect to develop our application and we chose Qt creator as cross-compiler tool to program and debug. As the limitation of the image(we could only use the image Omek provided with us, see http://support.omekinteractive.com/forums/viewtopic.php?f=21&amp;amp;t=58&amp;amp;sid=2ac0c7615fd5accfaf0458ed662ec5bb for details, you may need to register first), we can't transfer all the drivers and data to the image we used to use and also we can't develop programs with GUI using Qt, because the Omek image only support command-line mode, so we chose to develop the GUI itself within the source code. We searched on line and found the open source code for a game called Q-ball. We are going to use kinect to play with it.&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
1. '''Burn the Image Package and Boot the System'''&lt;br /&gt;
&lt;br /&gt;
The detailed instruction is shown in page7 of developer's guide from omek.&lt;br /&gt;
&lt;br /&gt;
When I tried to run mkcard.sh to create new partitions, I got some errors.&lt;br /&gt;
&lt;br /&gt;
One of the error is the shell script is asumming that first partition of device &amp;quot;mmc&amp;quot; is &amp;quot;mmc1&amp;quot; but it's &amp;quot;mmcp1&amp;quot; in my Ubuntu. I changed the shell script to fix this but still got some errors about the partition specs.&lt;br /&gt;
&lt;br /&gt;
Finally I found a tricky way to use the shell script directly. If I use a external USB card reader to read and write the microsd card, everything just works perfectly. I think maybe the author of shell script had a different verison of Linux or only tested the script on descktop with external card reader.&lt;br /&gt;
&lt;br /&gt;
2. '''Run the Sample Demos'''&lt;br /&gt;
&lt;br /&gt;
After burning the microsd card sucessfully, we can boot from this card and see a simplified Angstrom without GUI. All demos ran almost as expected but, &lt;br /&gt;
&lt;br /&gt;
(1).the program froze sometimes. It even happened sometimes when we were just typing some command. We think maybe it's because of the speed of microsd card. We will get a faster card and have a try.&lt;br /&gt;
&lt;br /&gt;
(2).the tracking for legs doesn't work very well, we think maybe it's because we didn't have enough space for the kinect.(When you played kinect game in xbox, it will tell you a large space is required for tracking).&lt;br /&gt;
&lt;br /&gt;
3. '''Compile the Sample Code on Host'''&lt;br /&gt;
&lt;br /&gt;
Detailed instruction is provided in page26 of the developer's guide from omek.&lt;br /&gt;
By following the instruction, we downloaded and installed the Linux ARM cross toolchain. We also installed zlib library and cross compiler for qt. But we had some problem when compiling qt. The error information says the make cannot find the cross-compiler. I used export command to set the path of cross complier we used in class before(some time later I noticed this may cause some problem) and new error occured saying &amp;quot;undefined reference to clock_gettime&amp;quot;. I googled it and find it's involved in one library so I modifed the make file and include the library when compiling but it still gave the same error.&lt;br /&gt;
&lt;br /&gt;
Then I went through the instruction carefully and found actually the instruction asked us to install two different toolchains for the same purpose. The difference of two toolchains is the version of qt, one is 4.6.3 and the other is 4.6.2, since our souce code is for 4.6.2 version, so I want to try toolchain for 4.6.2 to see if it makes any difference.&lt;br /&gt;
&lt;br /&gt;
The instruction also asked us to install two different versions of QtCreater in the pdf file and in blog, we prefered the version in pdf file since the instruction should be written based on this version.&lt;br /&gt;
&lt;br /&gt;
After struggling for a very long time, I decided to clean everything up and start over. I followed the instruction one step by step but '''skipped one step''' and it turned out everything works perfectly now. &lt;br /&gt;
Link http://support.omekinteractive.com/forums/viewtopic.php?f=21&amp;amp;t=68&amp;amp;sid=6c151b2898f1e8f53039adc335781c9e may help you with the version problem. &lt;br /&gt;
&lt;br /&gt;
'''Some conclusion for compiling Qt:'''&lt;br /&gt;
&lt;br /&gt;
(1). I reinstalled the Ubuntu when started over. It turned out you need to install g++ compiler before before getting started.(Type &amp;quot;sudo apt-    &lt;br /&gt;
get install g++&amp;quot;). Other than that, you don't need to do anything not mentioned in the developer's guide and the blog it quotes.&lt;br /&gt;
&lt;br /&gt;
(2). The instruction from Omek is a little redundant with the blog it quotes and not taltally right.(At least they don't all work on my laptop)&lt;br /&gt;
&lt;br /&gt;
(3). The &amp;quot;developer's guide&amp;quot; pdf file and the blog it quotes both tell developer to install a toolchain( but different version, it's 4.6.3 in   &lt;br /&gt;
the pdf file and 4.6.2 in the blog) for cross-compiling. The 4.6.3 toolchain works perfectly for compiling Qt 4.6.2.&lt;br /&gt;
&lt;br /&gt;
(4). You don't have to install QtCreater before compiling Qt. The blog says you'd better download one Qtcreater from the nokia website so that   &lt;br /&gt;
you can get the latest version, but it's not really necessary according to my experience. You can get a pretty good and working version by  &lt;br /&gt;
simply running &amp;quot;sudo apt-get install qtcreator&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
(5). In the instruction for building QtTracking Sample, step 3.b tells you to remove the existing qmake step and make you own custom step, but  &lt;br /&gt;
I always got error when the building process reached the costum step, so I tried to just leave the existing qmake there, and everything  &lt;br /&gt;
worked amazingly!!! So, if you get trouble about the costum step you made in building, you can just try to use the default qmake(&amp;quot;existing &lt;br /&gt;
qmake&amp;quot; in the instruction from Omek).&lt;br /&gt;
&lt;br /&gt;
4. '''Build Q-ball without adding Kinect support using Qtcreator'''&lt;br /&gt;
After setting up ready all the development environment, we are going to firstly build the game without Kinect to see if it can work. The source code is already Qt coded, so we didn't meat any problems here. The code could successfully run on our beagleboard.&lt;br /&gt;
&lt;br /&gt;
5. '''Build Q-ball with Kinect support using Qtcreator'''&lt;br /&gt;
Lastly and most importantly, we would add Kinect support to Q-ball. The source code is written in C++, but both of us do not have any experience in it. The process of programming and debugging is quite struggling. We could finally make it work, the BeagleBoard could recognize our left and right scroll gestures, but the speed is very slow. We may proceed with this, and make it faster if more time is allowable.&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
* Github links: http://github.com/wangg/ECE497, including Omek image, developer guide, Omek sample code, and Kinect supported Q-ball source code &lt;br /&gt;
* Omek Beckon SDK Development tools&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
1. Installed the Beckon SDK Development tools on both Linux PC host and BeagleBoard; Successfully tested the sample code and discussed the interface functions. ---completed on February 5th by Yifei Li and Guanqun Wang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project:_Kinect_Project</id>
		<title>ECE497 Project: Kinect Project</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project:_Kinect_Project"/>
				<updated>2012-02-06T19:22:58Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: First work breakdown&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
&lt;br /&gt;
Team members: [[user:Yifei|Yifei Li]], [[user:Gemini91|Guanqun Wang]]&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
Our goal is to implant a specific game application into Beagleboard and using Microsoft's Kinect to play with it. We would firstly make the Kinect recognizable to the Beagleboard. And then try to adapt the application to the Beagleboard. We haven't decided which game to play with, because the performance may be greatly influenced by what kind of operating system we want to use, or the size of this game. So the second part would be to test what is the best option for us. Finally, we would try everything to make it work.&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
* Github links: http://github.com/wangg/ECE497&lt;br /&gt;
* Omek Beckon SDK Development tools&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
1. Installed the Beckon SDK Development tools on both Linux PC host and BeagleBoard; Successfully tested the sample code and discussed the interface functions. ---completed on February 5th by Yifei Li and Guanqun Wang&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Listings_for_Chapter_8--Yifei</id>
		<title>ECE497 Listings for Chapter 8--Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Listings_for_Chapter_8--Yifei"/>
				<updated>2012-01-31T02:43:31Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 8-1&lt;br /&gt;
| 204&lt;br /&gt;
| Minimal Device Driver&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
/* Example Minimal Character Device Driver */&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(KERN_INFO &amp;quot;Hello Example Init\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(KERN_INFO &amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-2&lt;br /&gt;
| 206&lt;br /&gt;
| Kconfig Patch for Examples&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig &lt;br /&gt;
index 6f31c94..0805290 100644 &lt;br /&gt;
--- a/drivers/char/Kconfig &lt;br /&gt;
+++ b/drivers/char/Kconfig &lt;br /&gt;
@@ -4,6 +4,13 @@ &lt;br /&gt;
 &lt;br /&gt;
 menu &amp;quot;Character devices&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
+config EXAMPLES &lt;br /&gt;
+       tristate &amp;quot;Enable Examples&amp;quot; &lt;br /&gt;
+       default m&lt;br /&gt;
+       ---help--- &lt;br /&gt;
+         Enable compilation option for Embedded Linux Primer &lt;br /&gt;
+         driver examples &lt;br /&gt;
+ &lt;br /&gt;
 config VT &lt;br /&gt;
        bool &amp;quot;Virtual terminal&amp;quot; if EMBEDDED &lt;br /&gt;
        depends on !S390 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-3&lt;br /&gt;
| 208&lt;br /&gt;
| Makefile Patch for Examples&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/drivers/char/Makefile b/drivers/char/Makefile &lt;br /&gt;
index f957edf..f1b373d 100644 &lt;br /&gt;
--- a/drivers/char/Makefile &lt;br /&gt;
+++ b/drivers/char/Makefile &lt;br /&gt;
@@ -102,6 +102,7 @@ obj-$(CONFIG_MWAVE)         += mwave/ &lt;br /&gt;
 obj-$(CONFIG_AGP)              += agp/ &lt;br /&gt;
 obj-$(CONFIG_PCMCIA)           += pcmcia/ &lt;br /&gt;
 obj-$(CONFIG_IPMI_HANDLER)     += ipmi/ &lt;br /&gt;
+obj-$(CONFIG_EXAMPLES)         += examples/ &lt;br /&gt;
 &lt;br /&gt;
 obj-$(CONFIG_HANGCHECK_TIMER)  += hangcheck-timer.o &lt;br /&gt;
 obj-$(CONFIG_TCG_TPM)          += tpm/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-4&lt;br /&gt;
| 209&lt;br /&gt;
| Module Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
beagle@embed11:~/...$ time make modules&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;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
&amp;lt;stdin&amp;gt;:1523:2: warning: #warning syscall recvmmsg not implemented&lt;br /&gt;
  CC [M]  drivers/char/examples/hello1.o&lt;br /&gt;
  Building modules, stage 2.&lt;br /&gt;
  MODPOST 701 modules&lt;br /&gt;
  CC      drivers/char/examples/hello1.mod.o&lt;br /&gt;
  LD [M]  drivers/char/examples/hello1.ko&lt;br /&gt;
&lt;br /&gt;
real	0m28.129s&lt;br /&gt;
user	0m38.680s&lt;br /&gt;
sys	0m7.950s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-5&lt;br /&gt;
| 210&lt;br /&gt;
| Loading and Unloading a Module&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/modprobe hello1&lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[   73.556915] generic-usb 0003:045E:00CB.0004: input: USB HID v1.11 Mouse [Microsoft  Microsoft Basic Optical Mouse v2.0 ] on usb-ehci-omap.0-2.2/input0&lt;br /&gt;
[  373.735351] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xddee002a FSR 0x001&lt;br /&gt;
[  420.957183] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xdded002a FSR 0x001&lt;br /&gt;
[ 1913.619354] Hello Example Init&lt;br /&gt;
&lt;br /&gt;
# /sbin/modprobe -r hello1&lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[  373.735351] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xddee002a FSR 0x001&lt;br /&gt;
[  420.957183] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xdded002a FSR 0x001&lt;br /&gt;
[ 1913.619354] Hello Example Init&lt;br /&gt;
[ 2026.515991] Hello Example Exit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-6&lt;br /&gt;
| 211&lt;br /&gt;
| Example Driver with Parameter&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
/* Example Minimal Character Device Driver */&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static int debug_enable = 0;       /* Added driver parameter */&lt;br /&gt;
module_param(debug_enable, int, 0);  /* and these 2 lines */&lt;br /&gt;
MODULE_PARM_DESC(debug_enable, &amp;quot;Enable module debug mode.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    /* Now print value of new module parameter */&lt;br /&gt;
    printk(&amp;quot;Hello Example Init - debug mode is %s\n&amp;quot;,&lt;br /&gt;
           debug_enable ? &amp;quot;enabled&amp;quot; : &amp;quot;disabled&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-6a&lt;br /&gt;
| 211&lt;br /&gt;
| Example Driver with Parameter&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# /sbin/insmod /lib/modules/2.6.32/kernel/drivers/char/examples/hello1.ko debug_enable=1&lt;br /&gt;
insmod: error inserting '/lib/modules/2.6.32/kernel/drivers/char/examples/hello1.ko': -1 File exists&lt;br /&gt;
root@beagleboard:~# modprobe -r hello1&lt;br /&gt;
root@beagleboard:~# /sbin/insmod /lib/modules/2.6.32/kernel/drivers/char/examples/hello1.ko debug_enable=1&lt;br /&gt;
root@beagleboard:~# dmesg | tail -5&lt;br /&gt;
[15568.609344] Hello Example Init - debug mode is enabled&lt;br /&gt;
[15720.627441] Hello Example Exit&lt;br /&gt;
[15731.117248] Hello Example Init - debug mode is enabled&lt;br /&gt;
[15782.651062] Hello Example Exit&lt;br /&gt;
[15793.742034] Hello Example Init - debug mode is enabled&lt;br /&gt;
root@beagleboard:~# &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-7&lt;br /&gt;
| 213&lt;br /&gt;
| lsmod Example Output Format&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# /sbin/lsmod&lt;br /&gt;
Module                  Size  Used by&lt;br /&gt;
hello1                   653  0 &lt;br /&gt;
bufferclass_ti          4768  0 &lt;br /&gt;
omaplfb                 8733  0 &lt;br /&gt;
pvrsrvkm              154248  2 bufferclass_ti,omaplfb&lt;br /&gt;
rfcomm                 33484  0 &lt;br /&gt;
ircomm_tty             30305  0 &lt;br /&gt;
ircomm                 16429  1 ircomm_tty&lt;br /&gt;
irda                  162973  2 ircomm_tty,ircomm&lt;br /&gt;
ipv6                  249063  14 &lt;br /&gt;
hidp                   11193  0 &lt;br /&gt;
l2cap                  30104  4 rfcomm,hidp&lt;br /&gt;
bluetooth              49221  3 rfcomm,hidp,l2cap&lt;br /&gt;
rfkill                 14838  2 bluetooth&lt;br /&gt;
minix                  25759  0 &lt;br /&gt;
rtc_twl                 4451  0 &lt;br /&gt;
rtc_core               12535  1 rtc_twl&lt;br /&gt;
mt9t112                 9246  0 &lt;br /&gt;
root@beagleboard:~# &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-8&lt;br /&gt;
| 214&lt;br /&gt;
| Typical modprobe.conf File (not on Beagle)&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/modprobe.conf&lt;br /&gt;
alias eth1 orinoci_pci&lt;br /&gt;
options eth1 orinoco_debug=9&lt;br /&gt;
alias eth0 e100&lt;br /&gt;
alias snd-card-0 snd-intel8x0&lt;br /&gt;
options snd-card-0 index=0&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-9&lt;br /&gt;
| 216&lt;br /&gt;
| modinfo Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# /sbin/modinfo hello1&lt;br /&gt;
filename:       /lib/modules/2.6.32/kernel/drivers/char/examples/hello1.ko&lt;br /&gt;
license:        GPL&lt;br /&gt;
description:    Hello World Example&lt;br /&gt;
author:         Chris Hallinan&lt;br /&gt;
srcversion:     550CC1790D2FCC055F2B7F8&lt;br /&gt;
depends:        &lt;br /&gt;
vermagic:       2.6.32 preempt mod_unload modversions ARMv7 &lt;br /&gt;
parm:           debug_enable:Enable module debug mode. (int)&lt;br /&gt;
root@beagleboard:~# &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-10&lt;br /&gt;
| 217&lt;br /&gt;
| Adding File System Ops to Hello.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/fs.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define HELLO_MAJOR 234&lt;br /&gt;
&lt;br /&gt;
static int debug_enable = 0;&lt;br /&gt;
module_param(debug_enable, int, 0);&lt;br /&gt;
MODULE_PARM_DESC(debug_enable, &amp;quot;Enable module debug mode.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
struct file_operations hello_fops;&lt;br /&gt;
&lt;br /&gt;
static int hello_open(struct inode *inode, struct file *file)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_open: successful\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int hello_release(struct inode *inode, struct file *file)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_release: successful\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static ssize_t hello_read(struct file *file, char *buf, size_t count,&lt;br /&gt;
               loff_t *ptr)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_read: returning zero bytes\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static ssize_t hello_write(struct file *file, const char *buf,&lt;br /&gt;
               size_t count, loff_t * ppos)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_read: accepting zero bytes\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int hello_ioctl(struct inode *inode, struct file *file,&lt;br /&gt;
               unsigned int cmd, unsigned long arg)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_ioctl: cmd=%d, arg=%ld\n&amp;quot;, cmd, arg);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    int ret;&lt;br /&gt;
    printk(&amp;quot;Hello Example Init - debug mode is %s\n&amp;quot;,&lt;br /&gt;
           debug_enable ? &amp;quot;enabled&amp;quot; : &amp;quot;disabled&amp;quot;);&lt;br /&gt;
    ret = register_chrdev(HELLO_MAJOR, &amp;quot;hello1&amp;quot;, &amp;amp;hello_fops);&lt;br /&gt;
        if (ret &amp;lt; 0) {&lt;br /&gt;
            printk(&amp;quot;Error registering hello device\n&amp;quot;);&lt;br /&gt;
            goto hello_fail1;&lt;br /&gt;
        }&lt;br /&gt;
    printk(&amp;quot;Hello: registered module successfully!\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    /* Init processing here... */&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
&lt;br /&gt;
hello_fail1:&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
unregister_chrdev(HELLO_MAJOR, &amp;quot;hello1&amp;quot;);   &lt;br /&gt;
printk(&amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct file_operations hello_fops = {&lt;br /&gt;
    owner:   THIS_MODULE,&lt;br /&gt;
    read:    hello_read,&lt;br /&gt;
    write:   hello_write,&lt;br /&gt;
    ioctl:   hello_ioctl,&lt;br /&gt;
    open:    hello_open,&lt;br /&gt;
    release: hello_release,&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-11&lt;br /&gt;
| 222&lt;br /&gt;
| Adding File System Ops to Hello.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
    /* Our file descriptor */&lt;br /&gt;
    int fd;&lt;br /&gt;
    int rc = 0;&lt;br /&gt;
    char *rd_buf[16];&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;%s: entered\n&amp;quot;, argv[0]);&lt;br /&gt;
&lt;br /&gt;
    /* Open the device */&lt;br /&gt;
    fd = open(&amp;quot;/dev/hello1&amp;quot;, O_RDWR);&lt;br /&gt;
    if ( fd == -1 ) {&lt;br /&gt;
        perror(&amp;quot;open failed&amp;quot;);&lt;br /&gt;
        rc = fd;&lt;br /&gt;
        exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;%s: open: successful\n&amp;quot;, argv[0]);&lt;br /&gt;
&lt;br /&gt;
    /* Issue a read */&lt;br /&gt;
    rc = read(fd, rd_buf, 0);&lt;br /&gt;
    if ( rc == -1 ) {&lt;br /&gt;
        perror(&amp;quot;read failed&amp;quot;);&lt;br /&gt;
        close(fd);&lt;br /&gt;
        exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;%s: read: returning %d bytes!\n&amp;quot;, argv[0], rc);&lt;br /&gt;
&lt;br /&gt;
    close(fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Listings_for_Chapter_8--Yifei</id>
		<title>ECE497 Listings for Chapter 8--Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Listings_for_Chapter_8--Yifei"/>
				<updated>2012-01-31T00:05:04Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 8-1&lt;br /&gt;
| 204&lt;br /&gt;
| Minimal Device Driver&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
/* Example Minimal Character Device Driver */&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(KERN_INFO &amp;quot;Hello Example Init\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(KERN_INFO &amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-2&lt;br /&gt;
| 206&lt;br /&gt;
| Kconfig Patch for Examples&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig &lt;br /&gt;
index 6f31c94..0805290 100644 &lt;br /&gt;
--- a/drivers/char/Kconfig &lt;br /&gt;
+++ b/drivers/char/Kconfig &lt;br /&gt;
@@ -4,6 +4,13 @@ &lt;br /&gt;
 &lt;br /&gt;
 menu &amp;quot;Character devices&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
+config EXAMPLES &lt;br /&gt;
+       tristate &amp;quot;Enable Examples&amp;quot; &lt;br /&gt;
+       default m&lt;br /&gt;
+       ---help--- &lt;br /&gt;
+         Enable compilation option for Embedded Linux Primer &lt;br /&gt;
+         driver examples &lt;br /&gt;
+ &lt;br /&gt;
 config VT &lt;br /&gt;
        bool &amp;quot;Virtual terminal&amp;quot; if EMBEDDED &lt;br /&gt;
        depends on !S390 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-3&lt;br /&gt;
| 208&lt;br /&gt;
| Makefile Patch for Examples&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/drivers/char/Makefile b/drivers/char/Makefile &lt;br /&gt;
index f957edf..f1b373d 100644 &lt;br /&gt;
--- a/drivers/char/Makefile &lt;br /&gt;
+++ b/drivers/char/Makefile &lt;br /&gt;
@@ -102,6 +102,7 @@ obj-$(CONFIG_MWAVE)         += mwave/ &lt;br /&gt;
 obj-$(CONFIG_AGP)              += agp/ &lt;br /&gt;
 obj-$(CONFIG_PCMCIA)           += pcmcia/ &lt;br /&gt;
 obj-$(CONFIG_IPMI_HANDLER)     += ipmi/ &lt;br /&gt;
+obj-$(CONFIG_EXAMPLES)         += examples/ &lt;br /&gt;
 &lt;br /&gt;
 obj-$(CONFIG_HANGCHECK_TIMER)  += hangcheck-timer.o &lt;br /&gt;
 obj-$(CONFIG_TCG_TPM)          += tpm/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-4&lt;br /&gt;
| 209&lt;br /&gt;
| Module Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
beagle@embed11:~/...$ time make modules&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;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
&amp;lt;stdin&amp;gt;:1523:2: warning: #warning syscall recvmmsg not implemented&lt;br /&gt;
  CC [M]  drivers/char/examples/hello1.o&lt;br /&gt;
  Building modules, stage 2.&lt;br /&gt;
  MODPOST 701 modules&lt;br /&gt;
  CC      drivers/char/examples/hello1.mod.o&lt;br /&gt;
  LD [M]  drivers/char/examples/hello1.ko&lt;br /&gt;
&lt;br /&gt;
real	0m28.129s&lt;br /&gt;
user	0m38.680s&lt;br /&gt;
sys	0m7.950s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-5&lt;br /&gt;
| 210&lt;br /&gt;
| Loading and Unloading a Module&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/modprobe hello1&lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[   73.556915] generic-usb 0003:045E:00CB.0004: input: USB HID v1.11 Mouse [Microsoft  Microsoft Basic Optical Mouse v2.0 ] on usb-ehci-omap.0-2.2/input0&lt;br /&gt;
[  373.735351] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xddee002a FSR 0x001&lt;br /&gt;
[  420.957183] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xdded002a FSR 0x001&lt;br /&gt;
[ 1913.619354] Hello Example Init&lt;br /&gt;
&lt;br /&gt;
# /sbin/modprobe -r hello1&lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[  373.735351] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xddee002a FSR 0x001&lt;br /&gt;
[  420.957183] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xdded002a FSR 0x001&lt;br /&gt;
[ 1913.619354] Hello Example Init&lt;br /&gt;
[ 2026.515991] Hello Example Exit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-6&lt;br /&gt;
| 211&lt;br /&gt;
| Example Driver with Parameter&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
/* Example Minimal Character Device Driver */&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static int debug_enable = 0;       /* Added driver parameter */&lt;br /&gt;
module_param(debug_enable, int, 0);  /* and these 2 lines */&lt;br /&gt;
MODULE_PARM_DESC(debug_enable, &amp;quot;Enable module debug mode.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    /* Now print value of new module parameter */&lt;br /&gt;
    printk(&amp;quot;Hello Example Init - debug mode is %s\n&amp;quot;,&lt;br /&gt;
           debug_enable ? &amp;quot;enabled&amp;quot; : &amp;quot;disabled&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-6a&lt;br /&gt;
| 211&lt;br /&gt;
| Example Driver with Parameter&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# /sbin/insmod /lib/modules/2.6.32/kernel/drivers/char/examples/hello1.ko debug_enable=1&lt;br /&gt;
insmod: error inserting '/lib/modules/2.6.32/kernel/drivers/char/examples/hello1.ko': -1 File exists&lt;br /&gt;
root@beagleboard:~# modprobe -r hello1&lt;br /&gt;
root@beagleboard:~# /sbin/insmod /lib/modules/2.6.32/kernel/drivers/char/examples/hello1.ko debug_enable=1&lt;br /&gt;
root@beagleboard:~# dmesg | tail -5&lt;br /&gt;
[15568.609344] Hello Example Init - debug mode is enabled&lt;br /&gt;
[15720.627441] Hello Example Exit&lt;br /&gt;
[15731.117248] Hello Example Init - debug mode is enabled&lt;br /&gt;
[15782.651062] Hello Example Exit&lt;br /&gt;
[15793.742034] Hello Example Init - debug mode is enabled&lt;br /&gt;
root@beagleboard:~# &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-7&lt;br /&gt;
| 213&lt;br /&gt;
| lsmod Example Output Format&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# /sbin/lsmod&lt;br /&gt;
Module                  Size  Used by&lt;br /&gt;
hello1                   653  0 &lt;br /&gt;
bufferclass_ti          4768  0 &lt;br /&gt;
omaplfb                 8733  0 &lt;br /&gt;
pvrsrvkm              154248  2 bufferclass_ti,omaplfb&lt;br /&gt;
rfcomm                 33484  0 &lt;br /&gt;
ircomm_tty             30305  0 &lt;br /&gt;
ircomm                 16429  1 ircomm_tty&lt;br /&gt;
irda                  162973  2 ircomm_tty,ircomm&lt;br /&gt;
ipv6                  249063  14 &lt;br /&gt;
hidp                   11193  0 &lt;br /&gt;
l2cap                  30104  4 rfcomm,hidp&lt;br /&gt;
bluetooth              49221  3 rfcomm,hidp,l2cap&lt;br /&gt;
rfkill                 14838  2 bluetooth&lt;br /&gt;
minix                  25759  0 &lt;br /&gt;
rtc_twl                 4451  0 &lt;br /&gt;
rtc_core               12535  1 rtc_twl&lt;br /&gt;
mt9t112                 9246  0 &lt;br /&gt;
root@beagleboard:~# &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-8&lt;br /&gt;
| 214&lt;br /&gt;
| Typical modprobe.conf File (not on Beagle)&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/modprobe.conf&lt;br /&gt;
alias eth1 orinoci_pci&lt;br /&gt;
options eth1 orinoco_debug=9&lt;br /&gt;
alias eth0 e100&lt;br /&gt;
alias snd-card-0 snd-intel8x0&lt;br /&gt;
options snd-card-0 index=0&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-9&lt;br /&gt;
| 216&lt;br /&gt;
| modinfo Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# /sbin/modinfo hello1&lt;br /&gt;
filename:       /lib/modules/2.6.32/kernel/drivers/char/examples/hello1.ko&lt;br /&gt;
license:        GPL&lt;br /&gt;
description:    Hello World Example&lt;br /&gt;
author:         Chris Hallinan&lt;br /&gt;
srcversion:     550CC1790D2FCC055F2B7F8&lt;br /&gt;
depends:        &lt;br /&gt;
vermagic:       2.6.32 preempt mod_unload modversions ARMv7 &lt;br /&gt;
parm:           debug_enable:Enable module debug mode. (int)&lt;br /&gt;
root@beagleboard:~# &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-10&lt;br /&gt;
| 217&lt;br /&gt;
| Adding File System Ops to Hello.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/fs.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define HELLO_MAJOR 234&lt;br /&gt;
&lt;br /&gt;
static int debug_enable = 0;&lt;br /&gt;
module_param(debug_enable, int, 0);&lt;br /&gt;
MODULE_PARM_DESC(debug_enable, &amp;quot;Enable module debug mode.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
struct file_operations hello_fops;&lt;br /&gt;
&lt;br /&gt;
static int hello_open(struct inode *inode, struct file *file)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_open: successful\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int hello_release(struct inode *inode, struct file *file)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_release: successful\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static ssize_t hello_read(struct file *file, char *buf, size_t count,&lt;br /&gt;
               loff_t *ptr)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_read: returning zero bytes\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static ssize_t hello_write(struct file *file, const char *buf,&lt;br /&gt;
               size_t count, loff_t * ppos)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_read: accepting zero bytes\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int hello_ioctl(struct inode *inode, struct file *file,&lt;br /&gt;
               unsigned int cmd, unsigned long arg)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_ioctl: cmd=%ld, arg=%ld\n&amp;quot;, cmd, arg);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    int ret;&lt;br /&gt;
    printk(&amp;quot;Hello Example Init - debug mode is %s\n&amp;quot;,&lt;br /&gt;
           debug_enable ? &amp;quot;enabled&amp;quot; : &amp;quot;disabled&amp;quot;);&lt;br /&gt;
    ret = register_chrdev(HELLO_MAJOR, &amp;quot;hello1&amp;quot;, &amp;amp;hello_fops);&lt;br /&gt;
        if (ret &amp;lt; 0) {&lt;br /&gt;
            printk(&amp;quot;Error registering hello device\n&amp;quot;);&lt;br /&gt;
            goto hello_fail1;&lt;br /&gt;
        }&lt;br /&gt;
    printk(&amp;quot;Hello: registered module successfully!\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    /* Init processing here... */&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
&lt;br /&gt;
hello_fail1:&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct file_operations hello_fops = {&lt;br /&gt;
    owner:   THIS_MODULE,&lt;br /&gt;
    read:    hello_read,&lt;br /&gt;
    write:   hello_write,&lt;br /&gt;
    ioctl:   hello_ioctl,&lt;br /&gt;
    open:    hello_open,&lt;br /&gt;
    release: hello_release,&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-11&lt;br /&gt;
| 222&lt;br /&gt;
| Adding File System Ops to Hello.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
    /* Our file descriptor */&lt;br /&gt;
    int fd;&lt;br /&gt;
    int rc = 0;&lt;br /&gt;
    char *rd_buf[16];&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;%s: entered\n&amp;quot;, argv[0]);&lt;br /&gt;
&lt;br /&gt;
    /* Open the device */&lt;br /&gt;
    fd = open(&amp;quot;/dev/hello1&amp;quot;, O_RDWR);&lt;br /&gt;
    if ( fd == -1 ) {&lt;br /&gt;
        perror(&amp;quot;open failed&amp;quot;);&lt;br /&gt;
        rc = fd;&lt;br /&gt;
        exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;%s: open: successful\n&amp;quot;, argv[0]);&lt;br /&gt;
&lt;br /&gt;
    /* Issue a read */&lt;br /&gt;
    rc = read(fd, rd_buf, 0);&lt;br /&gt;
    if ( rc == -1 ) {&lt;br /&gt;
        perror(&amp;quot;read failed&amp;quot;);&lt;br /&gt;
        close(fd);&lt;br /&gt;
        exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;%s: read: returning %d bytes!\n&amp;quot;, argv[0], rc);&lt;br /&gt;
&lt;br /&gt;
    close(fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Listings_for_Chapter_8--Yifei</id>
		<title>ECE497 Listings for Chapter 8--Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Listings_for_Chapter_8--Yifei"/>
				<updated>2012-01-31T00:01:20Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 8-1&lt;br /&gt;
| 204&lt;br /&gt;
| Minimal Device Driver&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
/* Example Minimal Character Device Driver */&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(KERN_INFO &amp;quot;Hello Example Init\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(KERN_INFO &amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-2&lt;br /&gt;
| 206&lt;br /&gt;
| Kconfig Patch for Examples&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig &lt;br /&gt;
index 6f31c94..0805290 100644 &lt;br /&gt;
--- a/drivers/char/Kconfig &lt;br /&gt;
+++ b/drivers/char/Kconfig &lt;br /&gt;
@@ -4,6 +4,13 @@ &lt;br /&gt;
 &lt;br /&gt;
 menu &amp;quot;Character devices&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
+config EXAMPLES &lt;br /&gt;
+       tristate &amp;quot;Enable Examples&amp;quot; &lt;br /&gt;
+       default m&lt;br /&gt;
+       ---help--- &lt;br /&gt;
+         Enable compilation option for Embedded Linux Primer &lt;br /&gt;
+         driver examples &lt;br /&gt;
+ &lt;br /&gt;
 config VT &lt;br /&gt;
        bool &amp;quot;Virtual terminal&amp;quot; if EMBEDDED &lt;br /&gt;
        depends on !S390 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-3&lt;br /&gt;
| 208&lt;br /&gt;
| Makefile Patch for Examples&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/drivers/char/Makefile b/drivers/char/Makefile &lt;br /&gt;
index f957edf..f1b373d 100644 &lt;br /&gt;
--- a/drivers/char/Makefile &lt;br /&gt;
+++ b/drivers/char/Makefile &lt;br /&gt;
@@ -102,6 +102,7 @@ obj-$(CONFIG_MWAVE)         += mwave/ &lt;br /&gt;
 obj-$(CONFIG_AGP)              += agp/ &lt;br /&gt;
 obj-$(CONFIG_PCMCIA)           += pcmcia/ &lt;br /&gt;
 obj-$(CONFIG_IPMI_HANDLER)     += ipmi/ &lt;br /&gt;
+obj-$(CONFIG_EXAMPLES)         += examples/ &lt;br /&gt;
 &lt;br /&gt;
 obj-$(CONFIG_HANGCHECK_TIMER)  += hangcheck-timer.o &lt;br /&gt;
 obj-$(CONFIG_TCG_TPM)          += tpm/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-4&lt;br /&gt;
| 209&lt;br /&gt;
| Module Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
beagle@embed11:~/...$ time make modules&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;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
&amp;lt;stdin&amp;gt;:1523:2: warning: #warning syscall recvmmsg not implemented&lt;br /&gt;
  CC [M]  drivers/char/examples/hello1.o&lt;br /&gt;
  Building modules, stage 2.&lt;br /&gt;
  MODPOST 701 modules&lt;br /&gt;
  CC      drivers/char/examples/hello1.mod.o&lt;br /&gt;
  LD [M]  drivers/char/examples/hello1.ko&lt;br /&gt;
&lt;br /&gt;
real	0m28.129s&lt;br /&gt;
user	0m38.680s&lt;br /&gt;
sys	0m7.950s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-5&lt;br /&gt;
| 210&lt;br /&gt;
| Loading and Unloading a Module&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/modprobe hello1&lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[   73.556915] generic-usb 0003:045E:00CB.0004: input: USB HID v1.11 Mouse [Microsoft  Microsoft Basic Optical Mouse v2.0 ] on usb-ehci-omap.0-2.2/input0&lt;br /&gt;
[  373.735351] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xddee002a FSR 0x001&lt;br /&gt;
[  420.957183] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xdded002a FSR 0x001&lt;br /&gt;
[ 1913.619354] Hello Example Init&lt;br /&gt;
&lt;br /&gt;
# /sbin/modprobe -r hello1&lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[  373.735351] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xddee002a FSR 0x001&lt;br /&gt;
[  420.957183] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xdded002a FSR 0x001&lt;br /&gt;
[ 1913.619354] Hello Example Init&lt;br /&gt;
[ 2026.515991] Hello Example Exit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-6&lt;br /&gt;
| 211&lt;br /&gt;
| Example Driver with Parameter&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
/* Example Minimal Character Device Driver */&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static int debug_enable = 0;       /* Added driver parameter */&lt;br /&gt;
module_param(debug_enable, int, 0);  /* and these 2 lines */&lt;br /&gt;
MODULE_PARM_DESC(debug_enable, &amp;quot;Enable module debug mode.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    /* Now print value of new module parameter */&lt;br /&gt;
    printk(&amp;quot;Hello Example Init - debug mode is %s\n&amp;quot;,&lt;br /&gt;
           debug_enable ? &amp;quot;enabled&amp;quot; : &amp;quot;disabled&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-6a&lt;br /&gt;
| 211&lt;br /&gt;
| Example Driver with Parameter&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# /sbin/insmod /lib/modules/2.6.32/kernel/drivers/char/examples/hello1.ko debug_enable=1&lt;br /&gt;
insmod: error inserting '/lib/modules/2.6.32/kernel/drivers/char/examples/hello1.ko': -1 File exists&lt;br /&gt;
root@beagleboard:~# modprobe -r hello1&lt;br /&gt;
root@beagleboard:~# /sbin/insmod /lib/modules/2.6.32/kernel/drivers/char/examples/hello1.ko debug_enable=1&lt;br /&gt;
root@beagleboard:~# dmesg | tail -5&lt;br /&gt;
[15568.609344] Hello Example Init - debug mode is enabled&lt;br /&gt;
[15720.627441] Hello Example Exit&lt;br /&gt;
[15731.117248] Hello Example Init - debug mode is enabled&lt;br /&gt;
[15782.651062] Hello Example Exit&lt;br /&gt;
[15793.742034] Hello Example Init - debug mode is enabled&lt;br /&gt;
root@beagleboard:~# &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-7&lt;br /&gt;
| 213&lt;br /&gt;
| lsmod Example Output Format&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# /sbin/lsmod&lt;br /&gt;
Module                  Size  Used by&lt;br /&gt;
hello1                   653  0 &lt;br /&gt;
bufferclass_ti          4768  0 &lt;br /&gt;
omaplfb                 8733  0 &lt;br /&gt;
pvrsrvkm              154248  2 bufferclass_ti,omaplfb&lt;br /&gt;
rfcomm                 33484  0 &lt;br /&gt;
ircomm_tty             30305  0 &lt;br /&gt;
ircomm                 16429  1 ircomm_tty&lt;br /&gt;
irda                  162973  2 ircomm_tty,ircomm&lt;br /&gt;
ipv6                  249063  14 &lt;br /&gt;
hidp                   11193  0 &lt;br /&gt;
l2cap                  30104  4 rfcomm,hidp&lt;br /&gt;
bluetooth              49221  3 rfcomm,hidp,l2cap&lt;br /&gt;
rfkill                 14838  2 bluetooth&lt;br /&gt;
minix                  25759  0 &lt;br /&gt;
rtc_twl                 4451  0 &lt;br /&gt;
rtc_core               12535  1 rtc_twl&lt;br /&gt;
mt9t112                 9246  0 &lt;br /&gt;
root@beagleboard:~# &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-8&lt;br /&gt;
| 214&lt;br /&gt;
| Typical modprobe.conf File (not on Beagle)&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/modprobe.conf&lt;br /&gt;
alias eth1 orinoci_pci&lt;br /&gt;
options eth1 orinoco_debug=9&lt;br /&gt;
alias eth0 e100&lt;br /&gt;
alias snd-card-0 snd-intel8x0&lt;br /&gt;
options snd-card-0 index=0&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-9&lt;br /&gt;
| 216&lt;br /&gt;
| modinfo Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/modinfo hello1&lt;br /&gt;
filename:       /lib/modules/2.6.29-omap1/kernel/drivers/char/examples/hello1.ko&lt;br /&gt;
license:        GPL&lt;br /&gt;
description:    Hello World Example&lt;br /&gt;
author:         Mark A. Yoder&lt;br /&gt;
srcversion:     43AAF2090DF58262722312B&lt;br /&gt;
depends:        &lt;br /&gt;
vermagic:       2.6.29-omap1 preempt mod_unload modversions ARMv7 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-10&lt;br /&gt;
| 217&lt;br /&gt;
| Adding File System Ops to Hello.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/fs.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define HELLO_MAJOR 234&lt;br /&gt;
&lt;br /&gt;
static int debug_enable = 0;&lt;br /&gt;
module_param(debug_enable, int, 0);&lt;br /&gt;
MODULE_PARM_DESC(debug_enable, &amp;quot;Enable module debug mode.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
struct file_operations hello_fops;&lt;br /&gt;
&lt;br /&gt;
static int hello_open(struct inode *inode, struct file *file)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_open: successful\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int hello_release(struct inode *inode, struct file *file)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_release: successful\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static ssize_t hello_read(struct file *file, char *buf, size_t count,&lt;br /&gt;
               loff_t *ptr)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_read: returning zero bytes\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static ssize_t hello_write(struct file *file, const char *buf,&lt;br /&gt;
               size_t count, loff_t * ppos)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_read: accepting zero bytes\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int hello_ioctl(struct inode *inode, struct file *file,&lt;br /&gt;
               unsigned int cmd, unsigned long arg)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_ioctl: cmd=%ld, arg=%ld\n&amp;quot;, cmd, arg);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    int ret;&lt;br /&gt;
    printk(&amp;quot;Hello Example Init - debug mode is %s\n&amp;quot;,&lt;br /&gt;
           debug_enable ? &amp;quot;enabled&amp;quot; : &amp;quot;disabled&amp;quot;);&lt;br /&gt;
    ret = register_chrdev(HELLO_MAJOR, &amp;quot;hello1&amp;quot;, &amp;amp;hello_fops);&lt;br /&gt;
        if (ret &amp;lt; 0) {&lt;br /&gt;
            printk(&amp;quot;Error registering hello device\n&amp;quot;);&lt;br /&gt;
            goto hello_fail1;&lt;br /&gt;
        }&lt;br /&gt;
    printk(&amp;quot;Hello: registered module successfully!\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    /* Init processing here... */&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
&lt;br /&gt;
hello_fail1:&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct file_operations hello_fops = {&lt;br /&gt;
    owner:   THIS_MODULE,&lt;br /&gt;
    read:    hello_read,&lt;br /&gt;
    write:   hello_write,&lt;br /&gt;
    ioctl:   hello_ioctl,&lt;br /&gt;
    open:    hello_open,&lt;br /&gt;
    release: hello_release,&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-11&lt;br /&gt;
| 222&lt;br /&gt;
| Adding File System Ops to Hello.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
    /* Our file descriptor */&lt;br /&gt;
    int fd;&lt;br /&gt;
    int rc = 0;&lt;br /&gt;
    char *rd_buf[16];&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;%s: entered\n&amp;quot;, argv[0]);&lt;br /&gt;
&lt;br /&gt;
    /* Open the device */&lt;br /&gt;
    fd = open(&amp;quot;/dev/hello1&amp;quot;, O_RDWR);&lt;br /&gt;
    if ( fd == -1 ) {&lt;br /&gt;
        perror(&amp;quot;open failed&amp;quot;);&lt;br /&gt;
        rc = fd;&lt;br /&gt;
        exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;%s: open: successful\n&amp;quot;, argv[0]);&lt;br /&gt;
&lt;br /&gt;
    /* Issue a read */&lt;br /&gt;
    rc = read(fd, rd_buf, 0);&lt;br /&gt;
    if ( rc == -1 ) {&lt;br /&gt;
        perror(&amp;quot;read failed&amp;quot;);&lt;br /&gt;
        close(fd);&lt;br /&gt;
        exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;%s: read: returning %d bytes!\n&amp;quot;, argv[0], rc);&lt;br /&gt;
&lt;br /&gt;
    close(fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Listings_for_Chapter_8--Yifei</id>
		<title>ECE497 Listings for Chapter 8--Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Listings_for_Chapter_8--Yifei"/>
				<updated>2012-01-30T23:22:18Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 8-1&lt;br /&gt;
| 204&lt;br /&gt;
| Minimal Device Driver&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
/* Example Minimal Character Device Driver */&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(KERN_INFO &amp;quot;Hello Example Init\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(KERN_INFO &amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-2&lt;br /&gt;
| 206&lt;br /&gt;
| Kconfig Patch for Examples&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig &lt;br /&gt;
index 6f31c94..0805290 100644 &lt;br /&gt;
--- a/drivers/char/Kconfig &lt;br /&gt;
+++ b/drivers/char/Kconfig &lt;br /&gt;
@@ -4,6 +4,13 @@ &lt;br /&gt;
 &lt;br /&gt;
 menu &amp;quot;Character devices&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
+config EXAMPLES &lt;br /&gt;
+       tristate &amp;quot;Enable Examples&amp;quot; &lt;br /&gt;
+       default m&lt;br /&gt;
+       ---help--- &lt;br /&gt;
+         Enable compilation option for Embedded Linux Primer &lt;br /&gt;
+         driver examples &lt;br /&gt;
+ &lt;br /&gt;
 config VT &lt;br /&gt;
        bool &amp;quot;Virtual terminal&amp;quot; if EMBEDDED &lt;br /&gt;
        depends on !S390 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-3&lt;br /&gt;
| 208&lt;br /&gt;
| Makefile Patch for Examples&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/drivers/char/Makefile b/drivers/char/Makefile &lt;br /&gt;
index f957edf..f1b373d 100644 &lt;br /&gt;
--- a/drivers/char/Makefile &lt;br /&gt;
+++ b/drivers/char/Makefile &lt;br /&gt;
@@ -102,6 +102,7 @@ obj-$(CONFIG_MWAVE)         += mwave/ &lt;br /&gt;
 obj-$(CONFIG_AGP)              += agp/ &lt;br /&gt;
 obj-$(CONFIG_PCMCIA)           += pcmcia/ &lt;br /&gt;
 obj-$(CONFIG_IPMI_HANDLER)     += ipmi/ &lt;br /&gt;
+obj-$(CONFIG_EXAMPLES)         += examples/ &lt;br /&gt;
 &lt;br /&gt;
 obj-$(CONFIG_HANGCHECK_TIMER)  += hangcheck-timer.o &lt;br /&gt;
 obj-$(CONFIG_TCG_TPM)          += tpm/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-4&lt;br /&gt;
| 209&lt;br /&gt;
| Module Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
beagle@embed11:~/...$ time make modules&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;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
&amp;lt;stdin&amp;gt;:1523:2: warning: #warning syscall recvmmsg not implemented&lt;br /&gt;
  CC [M]  drivers/char/examples/hello1.o&lt;br /&gt;
  Building modules, stage 2.&lt;br /&gt;
  MODPOST 701 modules&lt;br /&gt;
  CC      drivers/char/examples/hello1.mod.o&lt;br /&gt;
  LD [M]  drivers/char/examples/hello1.ko&lt;br /&gt;
&lt;br /&gt;
real	0m28.129s&lt;br /&gt;
user	0m38.680s&lt;br /&gt;
sys	0m7.950s&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-5&lt;br /&gt;
| 210&lt;br /&gt;
| Loading and Unloading a Module&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/modprobe hello1&lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[   73.556915] generic-usb 0003:045E:00CB.0004: input: USB HID v1.11 Mouse [Microsoft  Microsoft Basic Optical Mouse v2.0 ] on usb-ehci-omap.0-2.2/input0&lt;br /&gt;
[  373.735351] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xddee002a FSR 0x001&lt;br /&gt;
[  420.957183] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xdded002a FSR 0x001&lt;br /&gt;
[ 1913.619354] Hello Example Init&lt;br /&gt;
&lt;br /&gt;
# /sbin/modprobe -r hello1&lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[  373.735351] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xddee002a FSR 0x001&lt;br /&gt;
[  420.957183] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xdded002a FSR 0x001&lt;br /&gt;
[ 1913.619354] Hello Example Init&lt;br /&gt;
[ 2026.515991] Hello Example Exit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-6&lt;br /&gt;
| 211&lt;br /&gt;
| Example Driver with Parameter&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
/* Example Minimal Character Device Driver */&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static int debug_enable = 0;       /* Added driver parameter */&lt;br /&gt;
module_param(debug_enable, int, 0);  /* and these 2 lines */&lt;br /&gt;
MODULE_PARM_DESC(debug_enable, &amp;quot;Enable module debug mode.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    /* Now print value of new module parameter */&lt;br /&gt;
    printk(&amp;quot;Hello Example Init - debug mode is %s\n&amp;quot;,&lt;br /&gt;
           debug_enable ? &amp;quot;enabled&amp;quot; : &amp;quot;disabled&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-6a&lt;br /&gt;
| 211&lt;br /&gt;
| Example Driver with Parameter&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/insmod /lib/modules/2.6.29-omap1/kernel/drivers/char/examples/hello2.ko debug_enable=1&lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[   49.005889] eth0: no IPv6 routers present&lt;br /&gt;
[  651.947784] Hello Example Init&lt;br /&gt;
[  677.682769] Hello Example Exit&lt;br /&gt;
[ 2997.772644] Hello Example Init - debug mode is enabled&lt;br /&gt;
# /sbin/rmmod hello2&lt;br /&gt;
# /sbin/insmod /lib/modules/2.6.29-omap1/kernel/drivers/char/examples/hello2.ko &lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[ 2990.234527] Hello Example Exit&lt;br /&gt;
[ 2997.772644] Hello Example Init - debug mode is enabled&lt;br /&gt;
[ 3236.012847] Hello Example Exit&lt;br /&gt;
[ 3243.475494] Hello Example Init - debug mode is disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-7&lt;br /&gt;
| 213&lt;br /&gt;
| lsmod Example Output Format&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/lsmod&lt;br /&gt;
Module                  Size  Used by&lt;br /&gt;
hello2                  1520  0 &lt;br /&gt;
hello1                  1160  0 &lt;br /&gt;
ircomm_tty             35984  0 &lt;br /&gt;
ircomm                 21144  1 ircomm_tty&lt;br /&gt;
irda                  186196  2 ircomm_tty,ircomm&lt;br /&gt;
ipv6                  274380  16 &lt;br /&gt;
nls_iso8859_1           3856  1 &lt;br /&gt;
rtc_twl4030             5394  0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-8&lt;br /&gt;
| 214&lt;br /&gt;
| Typical modprobe.conf File (not on Beagle)&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/modprobe.conf&lt;br /&gt;
alias eth1 orinoci_pci&lt;br /&gt;
options eth1 orinoco_debug=9&lt;br /&gt;
alias eth0 e100&lt;br /&gt;
alias snd-card-0 snd-intel8x0&lt;br /&gt;
options snd-card-0 index=0&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-9&lt;br /&gt;
| 216&lt;br /&gt;
| modinfo Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/modinfo hello1&lt;br /&gt;
filename:       /lib/modules/2.6.29-omap1/kernel/drivers/char/examples/hello1.ko&lt;br /&gt;
license:        GPL&lt;br /&gt;
description:    Hello World Example&lt;br /&gt;
author:         Mark A. Yoder&lt;br /&gt;
srcversion:     43AAF2090DF58262722312B&lt;br /&gt;
depends:        &lt;br /&gt;
vermagic:       2.6.29-omap1 preempt mod_unload modversions ARMv7 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-10&lt;br /&gt;
| 217&lt;br /&gt;
| Adding File System Ops to Hello.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/fs.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define HELLO_MAJOR 234&lt;br /&gt;
&lt;br /&gt;
static int debug_enable = 0;&lt;br /&gt;
module_param(debug_enable, int, 0);&lt;br /&gt;
MODULE_PARM_DESC(debug_enable, &amp;quot;Enable module debug mode.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
struct file_operations hello_fops;&lt;br /&gt;
&lt;br /&gt;
static int hello_open(struct inode *inode, struct file *file)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_open: successful\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int hello_release(struct inode *inode, struct file *file)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_release: successful\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static ssize_t hello_read(struct file *file, char *buf, size_t count,&lt;br /&gt;
               loff_t *ptr)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_read: returning zero bytes\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static ssize_t hello_write(struct file *file, const char *buf,&lt;br /&gt;
               size_t count, loff_t * ppos)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_read: accepting zero bytes\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int hello_ioctl(struct inode *inode, struct file *file,&lt;br /&gt;
               unsigned int cmd, unsigned long arg)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_ioctl: cmd=%ld, arg=%ld\n&amp;quot;, cmd, arg);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    int ret;&lt;br /&gt;
    printk(&amp;quot;Hello Example Init - debug mode is %s\n&amp;quot;,&lt;br /&gt;
           debug_enable ? &amp;quot;enabled&amp;quot; : &amp;quot;disabled&amp;quot;);&lt;br /&gt;
    ret = register_chrdev(HELLO_MAJOR, &amp;quot;hello1&amp;quot;, &amp;amp;hello_fops);&lt;br /&gt;
        if (ret &amp;lt; 0) {&lt;br /&gt;
            printk(&amp;quot;Error registering hello device\n&amp;quot;);&lt;br /&gt;
            goto hello_fail1;&lt;br /&gt;
        }&lt;br /&gt;
    printk(&amp;quot;Hello: registered module successfully!\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    /* Init processing here... */&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
&lt;br /&gt;
hello_fail1:&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct file_operations hello_fops = {&lt;br /&gt;
    owner:   THIS_MODULE,&lt;br /&gt;
    read:    hello_read,&lt;br /&gt;
    write:   hello_write,&lt;br /&gt;
    ioctl:   hello_ioctl,&lt;br /&gt;
    open:    hello_open,&lt;br /&gt;
    release: hello_release,&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-11&lt;br /&gt;
| 222&lt;br /&gt;
| Adding File System Ops to Hello.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
    /* Our file descriptor */&lt;br /&gt;
    int fd;&lt;br /&gt;
    int rc = 0;&lt;br /&gt;
    char *rd_buf[16];&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;%s: entered\n&amp;quot;, argv[0]);&lt;br /&gt;
&lt;br /&gt;
    /* Open the device */&lt;br /&gt;
    fd = open(&amp;quot;/dev/hello1&amp;quot;, O_RDWR);&lt;br /&gt;
    if ( fd == -1 ) {&lt;br /&gt;
        perror(&amp;quot;open failed&amp;quot;);&lt;br /&gt;
        rc = fd;&lt;br /&gt;
        exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;%s: open: successful\n&amp;quot;, argv[0]);&lt;br /&gt;
&lt;br /&gt;
    /* Issue a read */&lt;br /&gt;
    rc = read(fd, rd_buf, 0);&lt;br /&gt;
    if ( rc == -1 ) {&lt;br /&gt;
        perror(&amp;quot;read failed&amp;quot;);&lt;br /&gt;
        close(fd);&lt;br /&gt;
        exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;%s: read: returning %d bytes!\n&amp;quot;, argv[0], rc);&lt;br /&gt;
&lt;br /&gt;
    close(fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Listings_for_Chapter_8--Yifei</id>
		<title>ECE497 Listings for Chapter 8--Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Listings_for_Chapter_8--Yifei"/>
				<updated>2012-01-30T02:27:13Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: Created page with &amp;quot;{| ! Number ! Page ! Caption ! Listing |- | 8-1 | 204 | Minimal Device Driver | &amp;lt;pre&amp;gt; /* Example Minimal Character Device Driver */ #include &amp;lt;linux/module.h&amp;gt;  static int __init h...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|&lt;br /&gt;
! Number&lt;br /&gt;
! Page&lt;br /&gt;
! Caption&lt;br /&gt;
! Listing&lt;br /&gt;
|-&lt;br /&gt;
| 8-1&lt;br /&gt;
| 204&lt;br /&gt;
| Minimal Device Driver&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
/* Example Minimal Character Device Driver */&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(KERN_INFO &amp;quot;Hello Example Init\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(KERN_INFO &amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-2&lt;br /&gt;
| 206&lt;br /&gt;
| Kconfig Patch for Examples&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig &lt;br /&gt;
index 6f31c94..0805290 100644 &lt;br /&gt;
--- a/drivers/char/Kconfig &lt;br /&gt;
+++ b/drivers/char/Kconfig &lt;br /&gt;
@@ -4,6 +4,13 @@ &lt;br /&gt;
 &lt;br /&gt;
 menu &amp;quot;Character devices&amp;quot; &lt;br /&gt;
 &lt;br /&gt;
+config EXAMPLES &lt;br /&gt;
+       tristate &amp;quot;Enable Examples&amp;quot; &lt;br /&gt;
+       default m&lt;br /&gt;
+       ---help--- &lt;br /&gt;
+         Enable compilation option for Embedded Linux Primer &lt;br /&gt;
+         driver examples &lt;br /&gt;
+ &lt;br /&gt;
 config VT &lt;br /&gt;
        bool &amp;quot;Virtual terminal&amp;quot; if EMBEDDED &lt;br /&gt;
        depends on !S390 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-3&lt;br /&gt;
| 208&lt;br /&gt;
| Makefile Patch for Examples&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
diff --git a/drivers/char/Makefile b/drivers/char/Makefile &lt;br /&gt;
index f957edf..f1b373d 100644 &lt;br /&gt;
--- a/drivers/char/Makefile &lt;br /&gt;
+++ b/drivers/char/Makefile &lt;br /&gt;
@@ -102,6 +102,7 @@ obj-$(CONFIG_MWAVE)         += mwave/ &lt;br /&gt;
 obj-$(CONFIG_AGP)              += agp/ &lt;br /&gt;
 obj-$(CONFIG_PCMCIA)           += pcmcia/ &lt;br /&gt;
 obj-$(CONFIG_IPMI_HANDLER)     += ipmi/ &lt;br /&gt;
+obj-$(CONFIG_EXAMPLES)         += examples/ &lt;br /&gt;
 &lt;br /&gt;
 obj-$(CONFIG_HANGCHECK_TIMER)  += hangcheck-timer.o &lt;br /&gt;
 obj-$(CONFIG_TCG_TPM)          += tpm/&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-4&lt;br /&gt;
| 209&lt;br /&gt;
| Module Build Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
$ time make modules&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;
  CALL    scripts/checksyscalls.sh&lt;br /&gt;
&amp;lt;stdin&amp;gt;:1097:2: warning: #warning syscall fadvise64 not implemented&lt;br /&gt;
&amp;lt;stdin&amp;gt;:1265:2: warning: #warning syscall migrate_pages not implemented&lt;br /&gt;
  CC [M]  drivers/char/examples/hello1.o&lt;br /&gt;
  Building modules, stage 2.&lt;br /&gt;
  MODPOST 691 modules&lt;br /&gt;
  CC      drivers/char/examples/hello1.mod.o&lt;br /&gt;
  LD [M]  drivers/char/examples/hello1.ko&lt;br /&gt;
&lt;br /&gt;
real	0m41.559s&lt;br /&gt;
user	0m10.905s&lt;br /&gt;
sys	0m23.877s&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-5&lt;br /&gt;
| 210&lt;br /&gt;
| Loading and Unloading a Module&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/modprobe hello1&lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[   73.556915] generic-usb 0003:045E:00CB.0004: input: USB HID v1.11 Mouse [Microsoft  Microsoft Basic Optical Mouse v2.0 ] on usb-ehci-omap.0-2.2/input0&lt;br /&gt;
[  373.735351] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xddee002a FSR 0x001&lt;br /&gt;
[  420.957183] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xdded002a FSR 0x001&lt;br /&gt;
[ 1913.619354] Hello Example Init&lt;br /&gt;
&lt;br /&gt;
# /sbin/modprobe -r hello1&lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[  373.735351] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xddee002a FSR 0x001&lt;br /&gt;
[  420.957183] Alignment trap in kernel: swapper (0) PC=0xc043a30c Instr=0xe8930003 Address=0xdded002a FSR 0x001&lt;br /&gt;
[ 1913.619354] Hello Example Init&lt;br /&gt;
[ 2026.515991] Hello Example Exit&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-6&lt;br /&gt;
| 211&lt;br /&gt;
| Example Driver with Parameter&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
/* Example Minimal Character Device Driver */&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static int debug_enable = 0;       /* Added driver parameter */&lt;br /&gt;
module_param(debug_enable, int, 0);  /* and these 2 lines */&lt;br /&gt;
MODULE_PARM_DESC(debug_enable, &amp;quot;Enable module debug mode.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    /* Now print value of new module parameter */&lt;br /&gt;
    printk(&amp;quot;Hello Example Init - debug mode is %s\n&amp;quot;,&lt;br /&gt;
           debug_enable ? &amp;quot;enabled&amp;quot; : &amp;quot;disabled&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-6a&lt;br /&gt;
| 211&lt;br /&gt;
| Example Driver with Parameter&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/insmod /lib/modules/2.6.29-omap1/kernel/drivers/char/examples/hello2.ko debug_enable=1&lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[   49.005889] eth0: no IPv6 routers present&lt;br /&gt;
[  651.947784] Hello Example Init&lt;br /&gt;
[  677.682769] Hello Example Exit&lt;br /&gt;
[ 2997.772644] Hello Example Init - debug mode is enabled&lt;br /&gt;
# /sbin/rmmod hello2&lt;br /&gt;
# /sbin/insmod /lib/modules/2.6.29-omap1/kernel/drivers/char/examples/hello2.ko &lt;br /&gt;
# dmesg | tail -4&lt;br /&gt;
[ 2990.234527] Hello Example Exit&lt;br /&gt;
[ 2997.772644] Hello Example Init - debug mode is enabled&lt;br /&gt;
[ 3236.012847] Hello Example Exit&lt;br /&gt;
[ 3243.475494] Hello Example Init - debug mode is disabled&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-7&lt;br /&gt;
| 213&lt;br /&gt;
| lsmod Example Output Format&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/lsmod&lt;br /&gt;
Module                  Size  Used by&lt;br /&gt;
hello2                  1520  0 &lt;br /&gt;
hello1                  1160  0 &lt;br /&gt;
ircomm_tty             35984  0 &lt;br /&gt;
ircomm                 21144  1 ircomm_tty&lt;br /&gt;
irda                  186196  2 ircomm_tty,ircomm&lt;br /&gt;
ipv6                  274380  16 &lt;br /&gt;
nls_iso8859_1           3856  1 &lt;br /&gt;
rtc_twl4030             5394  0 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-8&lt;br /&gt;
| 214&lt;br /&gt;
| Typical modprobe.conf File (not on Beagle)&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
$ cat /etc/modprobe.conf&lt;br /&gt;
alias eth1 orinoci_pci&lt;br /&gt;
options eth1 orinoco_debug=9&lt;br /&gt;
alias eth0 e100&lt;br /&gt;
alias snd-card-0 snd-intel8x0&lt;br /&gt;
options snd-card-0 index=0&lt;br /&gt;
$&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-9&lt;br /&gt;
| 216&lt;br /&gt;
| modinfo Output&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
# /sbin/modinfo hello1&lt;br /&gt;
filename:       /lib/modules/2.6.29-omap1/kernel/drivers/char/examples/hello1.ko&lt;br /&gt;
license:        GPL&lt;br /&gt;
description:    Hello World Example&lt;br /&gt;
author:         Mark A. Yoder&lt;br /&gt;
srcversion:     43AAF2090DF58262722312B&lt;br /&gt;
depends:        &lt;br /&gt;
vermagic:       2.6.29-omap1 preempt mod_unload modversions ARMv7 &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-10&lt;br /&gt;
| 217&lt;br /&gt;
| Adding File System Ops to Hello.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/module.h&amp;gt;&lt;br /&gt;
#include &amp;lt;linux/fs.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
#define HELLO_MAJOR 234&lt;br /&gt;
&lt;br /&gt;
static int debug_enable = 0;&lt;br /&gt;
module_param(debug_enable, int, 0);&lt;br /&gt;
MODULE_PARM_DESC(debug_enable, &amp;quot;Enable module debug mode.&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
struct file_operations hello_fops;&lt;br /&gt;
&lt;br /&gt;
static int hello_open(struct inode *inode, struct file *file)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_open: successful\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int hello_release(struct inode *inode, struct file *file)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_release: successful\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static ssize_t hello_read(struct file *file, char *buf, size_t count,&lt;br /&gt;
               loff_t *ptr)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_read: returning zero bytes\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static ssize_t hello_write(struct file *file, const char *buf,&lt;br /&gt;
               size_t count, loff_t * ppos)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_read: accepting zero bytes\n&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int hello_ioctl(struct inode *inode, struct file *file,&lt;br /&gt;
               unsigned int cmd, unsigned long arg)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;hello_ioctl: cmd=%ld, arg=%ld\n&amp;quot;, cmd, arg);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static int __init hello_init(void)&lt;br /&gt;
{&lt;br /&gt;
    int ret;&lt;br /&gt;
    printk(&amp;quot;Hello Example Init - debug mode is %s\n&amp;quot;,&lt;br /&gt;
           debug_enable ? &amp;quot;enabled&amp;quot; : &amp;quot;disabled&amp;quot;);&lt;br /&gt;
    ret = register_chrdev(HELLO_MAJOR, &amp;quot;hello1&amp;quot;, &amp;amp;hello_fops);&lt;br /&gt;
        if (ret &amp;lt; 0) {&lt;br /&gt;
            printk(&amp;quot;Error registering hello device\n&amp;quot;);&lt;br /&gt;
            goto hello_fail1;&lt;br /&gt;
        }&lt;br /&gt;
    printk(&amp;quot;Hello: registered module successfully!\n&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
    /* Init processing here... */&lt;br /&gt;
&lt;br /&gt;
    return 0;&lt;br /&gt;
&lt;br /&gt;
hello_fail1:&lt;br /&gt;
    return ret;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
static void __exit hello_exit(void)&lt;br /&gt;
{&lt;br /&gt;
    printk(&amp;quot;Hello Example Exit\n&amp;quot;);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
struct file_operations hello_fops = {&lt;br /&gt;
    owner:   THIS_MODULE,&lt;br /&gt;
    read:    hello_read,&lt;br /&gt;
    write:   hello_write,&lt;br /&gt;
    ioctl:   hello_ioctl,&lt;br /&gt;
    open:    hello_open,&lt;br /&gt;
    release: hello_release,&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
module_init(hello_init);&lt;br /&gt;
module_exit(hello_exit);&lt;br /&gt;
&lt;br /&gt;
MODULE_AUTHOR(&amp;quot;Chris Hallinan&amp;quot;);&lt;br /&gt;
MODULE_DESCRIPTION(&amp;quot;Hello World Example&amp;quot;);&lt;br /&gt;
MODULE_LICENSE(&amp;quot;GPL&amp;quot;);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| 8-11&lt;br /&gt;
| 222&lt;br /&gt;
| Adding File System Ops to Hello.c&lt;br /&gt;
| &amp;lt;pre&amp;gt;&lt;br /&gt;
#include &amp;lt;stdio.h&amp;gt;&lt;br /&gt;
#include &amp;lt;stdlib.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/types.h&amp;gt;&lt;br /&gt;
#include &amp;lt;sys/stat.h&amp;gt;&lt;br /&gt;
#include &amp;lt;fcntl.h&amp;gt;&lt;br /&gt;
#include &amp;lt;unistd.h&amp;gt;&lt;br /&gt;
&lt;br /&gt;
int main(int argc, char **argv)&lt;br /&gt;
{&lt;br /&gt;
    /* Our file descriptor */&lt;br /&gt;
    int fd;&lt;br /&gt;
    int rc = 0;&lt;br /&gt;
    char *rd_buf[16];&lt;br /&gt;
&lt;br /&gt;
    printf(&amp;quot;%s: entered\n&amp;quot;, argv[0]);&lt;br /&gt;
&lt;br /&gt;
    /* Open the device */&lt;br /&gt;
    fd = open(&amp;quot;/dev/hello1&amp;quot;, O_RDWR);&lt;br /&gt;
    if ( fd == -1 ) {&lt;br /&gt;
        perror(&amp;quot;open failed&amp;quot;);&lt;br /&gt;
        rc = fd;&lt;br /&gt;
        exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;%s: open: successful\n&amp;quot;, argv[0]);&lt;br /&gt;
&lt;br /&gt;
    /* Issue a read */&lt;br /&gt;
    rc = read(fd, rd_buf, 0);&lt;br /&gt;
    if ( rc == -1 ) {&lt;br /&gt;
        perror(&amp;quot;read failed&amp;quot;);&lt;br /&gt;
        close(fd);&lt;br /&gt;
        exit(-1);&lt;br /&gt;
    }&lt;br /&gt;
    printf(&amp;quot;%s: read: returning %d bytes!\n&amp;quot;, argv[0], rc);&lt;br /&gt;
&lt;br /&gt;
    close(fd);&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Project:_Kinect_Project</id>
		<title>ECE497 Project: Kinect Project</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Project:_Kinect_Project"/>
				<updated>2012-01-27T21:05:17Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: Created page with &amp;quot;Team members: Yifei Li, Guanqun Wang  == Objectives == Our goal is to implant a specific game application into Beagleboard and using Microsoft's ...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Team members: [[user:Yifei|Yifei Li]], [[user:Gemini91|Guanqun Wang]]&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
Our goal is to implant a specific game application into Beagleboard and using Microsoft's Kinect to play with it. We would firstly make the Kinect recognizable to the Beagleboard. And then try to adapt the application to the Beagleboard. We haven't decided which game to play with, because the performance may be greatly influenced by what kind of operating system we want to use, or the size of this game. So the second part would be to test what is the best option for us. Finally, we would try everything to make it work.&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Contributions_and_Project_Status</id>
		<title>ECE497 Contributions and Project Status</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Contributions_and_Project_Status"/>
				<updated>2012-01-27T21:04:03Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
&lt;br /&gt;
== Project Status ==&lt;br /&gt;
&lt;br /&gt;
Please edit this page and add your project to this list. Copy my [[ECE497 Project Template]] to your own eLinux page and include the title of your project in the name of the page.  &lt;br /&gt;
&lt;br /&gt;
# [[User:Yoder | Mark A. Yoder]], [[ECE497 Project Template | My Beagle Project]]&lt;br /&gt;
# [[user:Yanj|Mona Yan]] and [[user:Harrisgw| Greg Harrison]], [[PS EYE QT PROJECT | Playstation Eye Audio with Qt]]&lt;br /&gt;
# [[user:Caogecym | Yuming Cao]] and [[user:zhangz | Ziyi Zhang]], [[Node.js Weather Station]]&lt;br /&gt;
# [[user:Yifei| Yifei Li]] and [[user:Gemini91| Guanqun Wang]], [[ Kinect Project | Play games using Kinect on Beagleboard]]&lt;br /&gt;
== Contributions ==&lt;br /&gt;
Please edit this page and add your user name, alphabetically by last name, to this list.&lt;br /&gt;
&lt;br /&gt;
Take a look at what you and others have contributed.&lt;br /&gt;
&lt;br /&gt;
# [[Special:Contributions/Yuming | Yuming Cao]]&lt;br /&gt;
# [[Special:Contributions/Yifei | Yifei Li]]&lt;br /&gt;
# [[Special:Contributions/Harrisgw | Greg Harrison]]&lt;br /&gt;
# [[Special:Contributions/mac | Jack Ma]]&lt;br /&gt;
# [[Special:Contributions/Gemini91 | Guanqun Wang]]&lt;br /&gt;
# [[Special:Contributions/Yanj | Mona Yan]]&lt;br /&gt;
# [[Special:Contributions/Yoder | Mark A. Yoder]]&lt;br /&gt;
# [[Special:Contributions/Yuhasmj | Michael Yuhas]]&lt;br /&gt;
# [[Special:Contributions/Ziyi Zhang | Ziyi Zhang]]&lt;br /&gt;
# [[Special:Contributions/Zitnikdj | David Zitnik]]&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Contributions_and_Project_Status</id>
		<title>ECE497 Contributions and Project Status</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Contributions_and_Project_Status"/>
				<updated>2012-01-27T21:02:29Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
&lt;br /&gt;
== Project Status ==&lt;br /&gt;
&lt;br /&gt;
Please edit this page and add your project to this list. Copy my [[ECE497 Project Template]] to your own eLinux page and include the title of your project in the name of the page.  &lt;br /&gt;
&lt;br /&gt;
# [[User:Yoder | Mark A. Yoder]], [[ECE497 Project Template | My Beagle Project]]&lt;br /&gt;
# [[user:Yanj|Mona Yan]] and [[user:Harrisgw| Greg Harrison]], [[PS EYE QT PROJECT | Playstation Eye Audio with Qt]]&lt;br /&gt;
# [[user:caoy1 | Yuming Cao]] and [[user:zhangz | Ziyi Zhang]], [[Node.js Weather Station]]&lt;br /&gt;
# [[user:Yifei| Yifei Li]] and [[user:Gemini91| Guanqun Wang]], [[ Kincet Project | Play games using Kinect on Beagleboard]]&lt;br /&gt;
== Contributions ==&lt;br /&gt;
Please edit this page and add your user name, alphabetically by last name, to this list.&lt;br /&gt;
&lt;br /&gt;
Take a look at what you and others have contributed.&lt;br /&gt;
&lt;br /&gt;
# [[Special:Contributions/Yuming | Yuming Cao]]&lt;br /&gt;
# [[Special:Contributions/Yifei | Yifei Li]]&lt;br /&gt;
# [[Special:Contributions/Harrisgw | Greg Harrison]]&lt;br /&gt;
# [[Special:Contributions/mac | Jack Ma]]&lt;br /&gt;
# [[Special:Contributions/Gemini91 | Guanqun Wang]]&lt;br /&gt;
# [[Special:Contributions/Yanj | Mona Yan]]&lt;br /&gt;
# [[Special:Contributions/Yoder | Mark A. Yoder]]&lt;br /&gt;
# [[Special:Contributions/Yuhasmj | Michael Yuhas]]&lt;br /&gt;
# [[Special:Contributions/Ziyi Zhang | Ziyi Zhang]]&lt;br /&gt;
# [[Special:Contributions/Zitnikdj | David Zitnik]]&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/Project</id>
		<title>Project</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/Project"/>
				<updated>2012-01-27T02:01:15Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Team members: [[user:Yifei|Yifei Li]], [[user:Gemini91|Guanqun Wang]]&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
Our goal is to implant a specific game application into Beagleboard and using Microsoft's Kinect to play with it. We would firstly make the Kinect recognizable to the Beagleboard. And then try to adapt the application to the Beagleboard. We haven't decided which game to play with, because the performance may be greatly influenced by what kind of operating system we want to use, or the size of this game. So the second part would be to test what is the best option for us. Finally, we would try everything to make it work.&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/Project</id>
		<title>Project</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/Project"/>
				<updated>2012-01-27T01:58:23Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: objectives modified&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
&lt;br /&gt;
Team members: [[user:Yifei|Yifei Li]], [[user:Gemini91|Guanqun Wang]]&lt;br /&gt;
&lt;br /&gt;
== Objectives ==&lt;br /&gt;
Our goal is to implant a specific game application into Beagleboard and using Microsoft's Kinect to play with it. We would firstly make the Kinect recognizable to the Beagleboard. And then try to adapt the application to the Beagleboard. We haven't decided which game to play with, because the performance may be greatly influenced by what kind of operating system we want to use, or the size of this game. So the second part would be to test what is the best option for us. Finally, we would try everything to make it work.&lt;br /&gt;
&lt;br /&gt;
== Executive Summary ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Installation Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== User Instructions ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Highlights ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Theory of Operation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Work Breakdown ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Conclusions ==&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Yifei</id>
		<title>User:Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Yifei"/>
				<updated>2012-01-27T01:41:46Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Yifei Li&lt;br /&gt;
&lt;br /&gt;
Master student in Electrical and Computer Engineering&lt;br /&gt;
&lt;br /&gt;
== Project ==&lt;br /&gt;
&lt;br /&gt;
* [[Project ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 2--Yifei | Listings for Chapter 2 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 4--Yifei | Listings for Chapter 4 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 5--Yifei | Listings for Chapter 5 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 6 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 6--Yifei | Listings for Chapter 6 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 7 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 7--Yifei | Listings for Chapter 7 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 8 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 8--Yifei | Listings for Chapter 8 ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE497]]&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Gemini91</id>
		<title>User:Gemini91</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Gemini91"/>
				<updated>2012-01-27T01:12:21Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== 2-1, page 15, Initial Bootloader Serial Output ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Texas Instruments X-Loader 1.5.0 (Mar 27 2011 - 17:37:56)&lt;br /&gt;
Beagle xM&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 2011.03-rc1-00000-g9a3cc57-dirty (Apr 01 2011 - 17:41:42)&lt;br /&gt;
&lt;br /&gt;
OMAP3630/3730-GP ES2.0, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  512 MiB&lt;br /&gt;
NAND:  0 MiB&lt;br /&gt;
MMC:   OMAP SD/MMC: 0&lt;br /&gt;
*** Warning - readenv() failed, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Beagle xM Rev A&lt;br /&gt;
No EEPROM on expansion board&lt;br /&gt;
Die ID #74ee00019ff80000015eeaa102029021&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, page 16, Loading the Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
 OMAP3 beagleboard.org # '''boot'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The user button is currently NOT pressed.&lt;br /&gt;
SD/MMC found on device 0&lt;br /&gt;
reading uEnv.txt&lt;br /&gt;
&lt;br /&gt;
191 bytes read&lt;br /&gt;
Loaded environment from uEnv.txt&lt;br /&gt;
Importing environment from mmc ...&lt;br /&gt;
Running uenvcmd ...&lt;br /&gt;
Loading file &amp;quot;/boot/uImage&amp;quot; from mmc device 0:2 (xxa2)&lt;br /&gt;
3203088 bytes read&lt;br /&gt;
Booting from mmc ...&lt;br /&gt;
## Booting kernel from Legacy Image at 80200000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.32/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    3203024 Bytes = 3.1 MiB&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.32 (koen@dominion) (gcc version 4.3.3 (GCC) ) #3 PREEMPT Tue May 10 10:06:15 CEST 2011&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f&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] OMAP3630/DM3730 ES1.0 (l2cache iva sgx neon isp 192mhz_clk )&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 25165824 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 122624&lt;br /&gt;
[    0.000000] Kernel command line: console=tty0 console=ttyS2,115200n8 consoleblank=0 mpurate=auto buddy=none camera=lbcm3m1 vram=24M omapfb.mode=dvi:hd720 mem=99M@0x80000000 mem=384M@0x88000000 omapfb.vram=0:12M,1:8M,2:4M omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait&lt;br /&gt;
[    0.000000] Beagle expansionboard: none&lt;br /&gt;
[    0.000000] Beagle cameraboard: lbcm3m1&lt;br /&gt;
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Memory: 99MB 384MB = 483MB total&lt;br /&gt;
[    0.000000] Memory: 458496KB available (5900K code, 673K data, 204K init, 0K highmem)&lt;br /&gt;
[    0.000000] Hierarchical RCU implementation.&lt;br /&gt;
[    0.000000] NR_IRQS:402&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz&lt;br /&gt;
[    0.000000] Reprogramming SDRC clock to 332000000 Hz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP GPIO hardware version 2.5&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] console [tty0] enabled&lt;br /&gt;
[    0.000000] Calibrating delay loop... 515.72 BogoMIPS (lpj=2015232)&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] tmpfs: No value for mount option 'mode'&lt;br /&gt;
[    0.000000] devtmpfs: initialized&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] OMAP3 Beagle Rev: xM A&lt;br /&gt;
[    0.000000] Beagle cameraboard: registering i2c2 bus for lbcm3m1&lt;br /&gt;
[    0.000000] Found NAND on CS0&lt;br /&gt;
[    0.000000] Registering NAND on CS0&lt;br /&gt;
[    0.000000] Unable to get DVI reset GPIO&lt;br /&gt;
[    0.000000] omap_init_mbox: platform not supported&lt;br /&gt;
[   15.246917] OMAP DMA hardware revision 5.0&lt;br /&gt;
[   15.253326] bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
[   15.254608] SCSI subsystem initialized&lt;br /&gt;
[   15.255920] usbcore: registered new interface driver usbfs&lt;br /&gt;
[   15.256103] usbcore: registered new interface driver hub&lt;br /&gt;
[   15.256347] usbcore: registered new device driver usb&lt;br /&gt;
[   15.256744] i2c_omap i2c_omap.1: bus 1 rev4.0 at 2600 kHz&lt;br /&gt;
[   15.259399] twl4030: PIH (irq 7) chaining IRQs 368..375&lt;br /&gt;
[   15.259460] twl4030: power (irq 373) chaining IRQs 376..383&lt;br /&gt;
[   15.259765] twl4030: gpio (irq 368) chaining IRQs 384..401&lt;br /&gt;
[   15.261474] regulator: VUSB1V5: 1500 mV normal standby&lt;br /&gt;
[   15.261718] regulator: VUSB1V8: 1800 mV normal standby&lt;br /&gt;
[   15.261962] regulator: VUSB3V1: 3100 mV normal standby&lt;br /&gt;
[   15.263275] twl4030_usb twl4030_usb: Initialized TWL4030 USB module&lt;br /&gt;
[   15.263671] regulator: VMMC1: 1850 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[   15.263977] regulator: VDAC: 1800 mV normal standby&lt;br /&gt;
[   15.264221] regulator: VPLL2: 1800 mV normal standby&lt;br /&gt;
[   15.264465] regulator: VSIM: 1800 &amp;lt;--&amp;gt; 3000 mV normal standby&lt;br /&gt;
[   15.264801] regulator: VAUX3: 1800 mV normal standby&lt;br /&gt;
[   15.265167] regulator: VAUX4: 1800 mV normal standby&lt;br /&gt;
[   15.276367] i2c_omap i2c_omap.2: bus 2 rev4.0 at 400 kHz&lt;br /&gt;
[   15.289794] i2c_omap i2c_omap.3: bus 3 rev4.0 at 100 kHz&lt;br /&gt;
[   15.291015] Switching to clocksource 32k_counter&lt;br /&gt;
[   15.300170] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0&lt;br /&gt;
[   15.303955] musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92&lt;br /&gt;
[   15.304016] musb_hdrc musb_hdrc: MUSB HDRC host driver&lt;br /&gt;
[   15.304138] musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1&lt;br /&gt;
[   15.304290] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
[   15.304351] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
[   15.304382] usb usb1: Product: MUSB HDRC host driver&lt;br /&gt;
[   15.304412] usb usb1: Manufacturer: Linux 2.6.32 musb-hcd&lt;br /&gt;
[   15.304473] usb usb1: SerialNumber: musb_hdrc&lt;br /&gt;
[   15.305084] hub 1-0:1.0: USB hub found&lt;br /&gt;
[   15.305145] hub 1-0:1.0: 1 port detected&lt;br /&gt;
[   15.306213] NET: Registered protocol family 2&lt;br /&gt;
[   15.306488] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)&lt;br /&gt;
[   15.307098] TCP established hash table entries: 16384 (order: 5, 131072 bytes)&lt;br /&gt;
[   15.307525] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[   15.307769] TCP: Hash tables configured (established 16384 bind 16384)&lt;br /&gt;
[   15.307800] TCP reno registered&lt;br /&gt;
[   15.307830] UDP hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
[   15.307891] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
[   15.308135] NET: Registered protocol family 1&lt;br /&gt;
[   15.308593] RPC: Registered udp transport module.&lt;br /&gt;
[   15.308624] RPC: Registered tcp transport module.&lt;br /&gt;
[   15.308654] RPC: Registered tcp NFSv4.1 backchannel transport module.&lt;br /&gt;
[   15.309539] omap-iommu omap-iommu.0: isp registered&lt;br /&gt;
[   15.311279] VFS: Disk quotas dquot_6.5.2&lt;br /&gt;
[   15.311401] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)&lt;br /&gt;
[   15.312500] squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
[   15.313293] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.&lt;br /&gt;
[   15.314178] msgmni has been set to 896&lt;br /&gt;
[   15.317932] alg: No test for stdrng (krng)&lt;br /&gt;
[   15.318237] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)&lt;br /&gt;
[   15.318298] io scheduler noop registered&lt;br /&gt;
[   15.318328] io scheduler deadline registered&lt;br /&gt;
[   15.318511] io scheduler cfq registered (default)&lt;br /&gt;
[   15.377227] OMAP DSS rev 2.0&lt;br /&gt;
[   15.377319] OMAP DISPC rev 3.0&lt;br /&gt;
[   15.377380] OMAP VENC rev 2&lt;br /&gt;
[   15.377655] OMAP DSI rev 1.0&lt;br /&gt;
[   15.714202] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled&lt;br /&gt;
[   15.732666] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654&lt;br /&gt;
[   15.750488] serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654&lt;br /&gt;
[   15.768249] serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654&lt;br /&gt;
[   16.347503] console [ttyS2] enabled&lt;br /&gt;
[   16.357757] brd: module loaded&lt;br /&gt;
[   16.364166] loop: module loaded&lt;br /&gt;
[   16.368713] omap2-nand driver initializing&lt;br /&gt;
[   16.373168] No NAND device found!!!&lt;br /&gt;
[   16.376861] No NAND device found!!!&lt;br /&gt;
[   16.381408] usbcore: registered new interface driver catc&lt;br /&gt;
[   16.386932] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver&lt;br /&gt;
[   16.393035] usbcore: registered new interface driver kaweth&lt;br /&gt;
[   16.398651] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver&lt;br /&gt;
[   16.406311] usbcore: registered new interface driver pegasus&lt;br /&gt;
[   16.412078] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver&lt;br /&gt;
[   16.419097] usbcore: registered new interface driver rtl8150&lt;br /&gt;
[   16.424926] usbcore: registered new interface driver asix&lt;br /&gt;
[   16.430419] usbcore: registered new interface driver cdc_ether&lt;br /&gt;
[   16.436431] usbcore: registered new interface driver dm9601&lt;br /&gt;
[   16.442169] usbcore: registered new interface driver smsc95xx&lt;br /&gt;
[   16.448089] usbcore: registered new interface driver gl620a&lt;br /&gt;
[   16.453765] usbcore: registered new interface driver net1080&lt;br /&gt;
[   16.459564] usbcore: registered new interface driver plusb&lt;br /&gt;
[   16.465209] usbcore: registered new interface driver rndis_host&lt;br /&gt;
[   16.471313] usbcore: registered new interface driver cdc_subset&lt;br /&gt;
[   16.477355] usbcore: registered new interface driver zaurus&lt;br /&gt;
[   16.483093] usbcore: registered new interface driver MOSCHIP usb-ethernet driver&lt;br /&gt;
[   16.491180] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver&lt;br /&gt;
[   16.498046] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller&lt;br /&gt;
[   16.504089] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2&lt;br /&gt;
[   16.511718] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800&lt;br /&gt;
[   16.525573] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00&lt;br /&gt;
[   16.531494] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
[   16.538360] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
[   16.545684] usb usb2: Product: OMAP-EHCI Host Controller&lt;br /&gt;
[   16.551086] usb usb2: Manufacturer: Linux 2.6.32 ehci_hcd&lt;br /&gt;
[   16.556549] usb usb2: SerialNumber: ehci-omap.0&lt;br /&gt;
[   16.561798] hub 2-0:1.0: USB hub found&lt;br /&gt;
[   16.565673] hub 2-0:1.0: 3 ports detected&lt;br /&gt;
[   16.595977] Initializing USB Mass Storage driver...&lt;br /&gt;
[   16.601104] usbcore: registered new interface driver usb-storage&lt;br /&gt;
[   16.607208] USB Mass Storage support registered.&lt;br /&gt;
[   16.612243] mice: PS/2 mouse device common for all mice&lt;br /&gt;
[   16.617919] input: gpio-keys as /devices/platform/gpio-keys/input/input0&lt;br /&gt;
[   16.625762] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-1/1-0049/twl4030_pwrbutton/input/input1&lt;br /&gt;
[   16.636535] i2c /dev entries driver&lt;br /&gt;
[   16.640655] Linux video capture interface: v2.00&lt;br /&gt;
[   16.645629] omap-iommu omap-iommu.0: isp: version 1.1&lt;br /&gt;
[   16.652313] vpfe_init&lt;br /&gt;
[   16.655212] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec&lt;br /&gt;
[   16.662017] cpuidle: using governor ladder&lt;br /&gt;
[   16.666229] cpuidle: using governor menu&lt;br /&gt;
[   16.775848] mmci-omap-hs mmci-omap-hs.1: err -16 configuring card detect&lt;br /&gt;
[   16.782928] Registered led device: beagleboard::usr0&lt;br /&gt;
[   16.788116] Registered led device: beagleboard::usr1&lt;br /&gt;
[   16.794647] Registered led device: beagleboard::pmu_stat&lt;br /&gt;
[   16.801757] usbcore: registered new interface driver usbhid&lt;br /&gt;
[   16.807434] usbhid: USB HID core driver&lt;br /&gt;
[   16.811492] Advanced Linux Sound Architecture Driver Version 1.0.21.&lt;br /&gt;
[   16.818420] usbcore: registered new interface driver snd-usb-audio&lt;br /&gt;
[   16.894531] usb 2-2: new high speed USB device using ehci-omap and address 2&lt;br /&gt;
[   16.902282] No device for DAI omap-mcbsp-dai-0&lt;br /&gt;
[   16.906768] No device for DAI omap-mcbsp-dai-1&lt;br /&gt;
[   16.911315] No device for DAI omap-mcbsp-dai-2&lt;br /&gt;
[   16.915802] No device for DAI omap-mcbsp-dai-3&lt;br /&gt;
[   16.920318] No device for DAI omap-mcbsp-dai-4&lt;br /&gt;
[   16.924835] OMAP3 Beagle SoC init&lt;br /&gt;
[   16.929016] asoc: twl4030 &amp;lt;-&amp;gt; omap-mcbsp-dai-0 mapping ok&lt;br /&gt;
[   16.940551] ALSA device list:&lt;br /&gt;
[   16.943572]   #0: omap3beagle (twl4030)&lt;br /&gt;
[   16.947570] oprofile: using arm/armv7&lt;br /&gt;
[   16.951507] TCP cubic registered&lt;br /&gt;
[   16.954803] NET: Registered protocol family 17&lt;br /&gt;
[   16.959350] NET: Registered protocol family 15&lt;br /&gt;
[   16.963958] lib80211: common routines for IEEE802.11 drivers&lt;br /&gt;
[   16.969696] ThumbEE CPU extension supported.&lt;br /&gt;
[   16.974060] Power Management for TI OMAP3.&lt;br /&gt;
[   16.979492] SmartReflex driver initialized&lt;br /&gt;
[   16.983764] omap3beaglelmb: Driver registration complete&lt;br /&gt;
[   16.997680] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3&lt;br /&gt;
[   17.005950] registered taskstats version 1&lt;br /&gt;
[   17.073242] usb 2-2: New USB device found, idVendor=0424, idProduct=9514&lt;br /&gt;
[   17.080047] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[   17.088012] hub 2-2:1.0: USB hub found&lt;br /&gt;
[   17.092041] hub 2-2:1.0: 5 ports detected&lt;br /&gt;
[   17.194213] Console: switching to colour frame buffer device 160x45&lt;br /&gt;
[   17.213806] mmc0: host does not support reading read-only switch. assuming write-enable.&lt;br /&gt;
[   17.222229] mmc0: new high speed SDHC card at address e624&lt;br /&gt;
[   17.228363] mmcblk0: mmc0:e624 SU08G 7.40 GiB &lt;br /&gt;
[   17.233337]  mmcblk0:&lt;br /&gt;
[   17.238006] regulator_init_complete: incomplete constraints, leaving VAUX4 on&lt;br /&gt;
[   17.245758]  p1 p2 p3&lt;br /&gt;
[   17.248992] regulator_init_complete: incomplete constraints, leaving VAUX3 on&lt;br /&gt;
[   17.256835] regulator_init_complete: incomplete constraints, leaving VDAC on&lt;br /&gt;
[   17.264923] omap_vout omap_vout: probed for an unknown device&lt;br /&gt;
[   17.416473] usb 2-2.1: new high speed USB device using ehci-omap and address 3&lt;br /&gt;
[   17.541809] usb 2-2.1: New USB device found, idVendor=0424, idProduct=ec00&lt;br /&gt;
[   17.552642] usb 2-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[   17.566772] smsc95xx v1.0.4&lt;br /&gt;
[   17.577423] EXT3-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is recommended&lt;br /&gt;
[   17.590637] kjournald starting.  Commit interval 5 seconds&lt;br /&gt;
[   17.602935] EXT3-fs (mmcblk0p2): using internal journal&lt;br /&gt;
[   17.612182] EXT3-fs (mmcblk0p2): recovery complete&lt;br /&gt;
[   17.623352] EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode&lt;br /&gt;
[   17.634643] VFS: Mounted root (ext3 filesystem) on device 179:2.&lt;br /&gt;
[   17.655609] devtmpfs: mounted&lt;br /&gt;
[   17.662811] Freeing init memory: 204K&lt;br /&gt;
[   17.676391] usb0: register 'smsc95xx' at usb-ehci-omap.0-2.1, smsc95xx USB 2.0 Ethernet, ea:12:4d:f4:ac:e9&lt;br /&gt;
&lt;br /&gt;
INIT: [   17.776031] usb 2-2.3: new low speed USB device using ehci-omap and address 4&lt;br /&gt;
version 2.86 booting&lt;br /&gt;
&lt;br /&gt;
[   17.914062] usb 2-2.3: New USB device found, idVendor=045e, idProduct=00cb&lt;br /&gt;
[   17.925750] usb 2-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[   17.937744] usb 2-2.3: Product: Microsoft Basic Optical Mouse v2.0 &lt;br /&gt;
[   17.948608] usb 2-2.3: Manufacturer: Microsoft &lt;br /&gt;
[   17.964416] input: Microsoft  Microsoft Basic Optical Mouse v2.0  as /devices/platform/ehci-omap.0/usb2/2-2/2-2.3/2-2.3:1.0/input/input2&lt;br /&gt;
[   17.982330] generic-usb 0003:045E:00CB.0001: input: USB HID v1.11 Mouse [Microsoft  Microsoft Basic Optical Mouse v2.0 ] on usb-ehci-omap.0-2.3/input0&lt;br /&gt;
Please wait: booting...&lt;br /&gt;
Starting udev&lt;br /&gt;
[   18.244476] usb 2-2.4: new high speed USB device using ehci-omap and address 5&lt;br /&gt;
[   18.372222] usb 2-2.4: New USB device found, idVendor=1415, idProduct=2000&lt;br /&gt;
[   18.387573] usb 2-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[   18.400329] usb 2-2.4: Product: USB Camera-B4.09.24.1&lt;br /&gt;
[   18.410644] usb 2-2.4: Manufacturer: OmniVision Technologies, Inc.&lt;br /&gt;
[   18.517974] usb 2-2.5: new low speed USB device using ehci-omap and address 6&lt;br /&gt;
[   18.586334] udev: starting version 151&lt;br /&gt;
[   18.650726] usb 2-2.5: New USB device found, idVendor=045e, idProduct=0750&lt;br /&gt;
[   18.689758] gspca: main v2.8.0 registered&lt;br /&gt;
[   18.736297] usb 2-2.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[   18.839233] gspca: probing 1415:2000&lt;br /&gt;
[   19.000030] usb 2-2.5: Product: Wired Keyboard 600&lt;br /&gt;
[   19.106811] ov534: Sensor ID: 7721&lt;br /&gt;
[   19.472229] usb 2-2.5: Manufacturer: Microsoft&lt;br /&gt;
[   20.147613] ov534: frame_rate: 30&lt;br /&gt;
[   20.252258] input: Microsoft Wired Keyboard 600 as /devices/platform/ehci-omap.0/usb2/2-2/2-2.5/2-2.5:1.0/input/input3&lt;br /&gt;
[   20.346679] gspca: /dev/video0 created&lt;br /&gt;
[   20.393554] usbcore: registered new interface driver ov534&lt;br /&gt;
Remounting root file system...&lt;br /&gt;
[   20.424743] generic-usb 0003:045E:0750.0002: input: USB HID v1.11 Keyboard [Microsoft Wired Keyboard 600] on usb-ehci-omap.0-2.5/input0&lt;br /&gt;
[   20.443634] ov534: registered&lt;br /&gt;
[   20.622131] input: Microsoft Wired Keyboard 600 as /devices/platform/ehci-omap.0/usb2/2-2/2-2.5/2-2.5:1.1/input/input4&lt;br /&gt;
[   20.936553] generic-usb 0003:045E:0750.0003: input: USB HID v1.11 Device [Microsoft Wired Keyboard 600] on usb-ehci-omap.0-2.5/input1&lt;br /&gt;
Caching udev devnodes&lt;br /&gt;
Populating dev cache&lt;br /&gt;
[   21.750549] Bluetooth: Core ver 2.15&lt;br /&gt;
[   21.761779] NET: Registered protocol family 31&lt;br /&gt;
[   21.772979] Bluetooth: HCI device and connection manager initialized&lt;br /&gt;
[   21.785308] Bluetooth: HCI socket layer initialized&lt;br /&gt;
[   21.812957] Bluetooth: L2CAP ver 2.14&lt;br /&gt;
[   21.822265] Bluetooth: L2CAP socket layer initialized&lt;br /&gt;
[   21.867309] Bluetooth: HIDP (Human Interface Emulation) ver 1.2&lt;br /&gt;
[   22.027709] NET: Registered protocol family 10&lt;br /&gt;
[   22.118774] NET: Registered protocol family 23&lt;br /&gt;
[   22.146392] IrCOMM protocol (Dag Brattli)&lt;br /&gt;
[   22.258270] Bluetooth: RFCOMM TTY layer initialized&lt;br /&gt;
[   22.269134] Bluetooth: RFCOMM socket layer initialized&lt;br /&gt;
[   22.279510] Bluetooth: RFCOMM ver 1.11&lt;br /&gt;
ALSA: Restoring mixer settings...&lt;br /&gt;
Cleaning: /etc/network/run/ifstate.&lt;br /&gt;
No state is present for card CameraB409241&lt;br /&gt;
/usr/sbin/alsactl: parse:1655: Unable to open file '/usr/share/alsa/init/00main': No such file or directory&lt;br /&gt;
No state is present for card CameraB409241&lt;br /&gt;
Configuring network interfaces... eth0: unknown interface: No such device&lt;br /&gt;
eth0: unknown interface: No such device&lt;br /&gt;
eth0      No such device&lt;br /&gt;
&lt;br /&gt;
Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
SIOCSIFADDR: No such device&lt;br /&gt;
eth0: unknown interface: No such device&lt;br /&gt;
eth0: unknown interface: No such device&lt;br /&gt;
Bind socket to interface: No such device&lt;br /&gt;
&lt;br /&gt;
If you did not get this software from ftp.isc.org, please&lt;br /&gt;
get the latest from ftp.isc.org and install that before&lt;br /&gt;
requesting help.&lt;br /&gt;
&lt;br /&gt;
If you did get this software from ftp.isc.org and have not&lt;br /&gt;
yet read the README, please read it before requesting help.&lt;br /&gt;
If you intend to request help from the dhcp-server@isc.org&lt;br /&gt;
mailing list, please read the section on the README about&lt;br /&gt;
submitting bug reports and requests for help.&lt;br /&gt;
&lt;br /&gt;
Please do not under any circumstances send requests for&lt;br /&gt;
help directly to the authors of this software - please&lt;br /&gt;
send them to the appropriate mailing list as described in&lt;br /&gt;
the README file.&lt;br /&gt;
&lt;br /&gt;
exiting.&lt;br /&gt;
Failed to bring up eth0.&lt;br /&gt;
usb0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/usb0/de:c5:bb:bb:37:d3&lt;br /&gt;
Sending on   LPF/usb0/de:c5:bb:bb:37:d3&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
[   27.879486] usb0: link up, 100Mbps, full-duplex, lpa 0x41E1&lt;br /&gt;
DHCPREQUEST on usb0 to 255.255.255.255 port 67&lt;br /&gt;
DHCPREQUEST on usb0 to 255.255.255.255 port 67&lt;br /&gt;
DHCPNAK from 137.112.101.1&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 7&lt;br /&gt;
receive_packet failed on usb0: Network is down&lt;br /&gt;
[   35.790985] usb0: link up, 100Mbps, full-duplex, lpa 0x41E1&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 7&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 15&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 18&lt;br /&gt;
[   78.214172] usb 2-2.3: USB disconnect, address 4&lt;br /&gt;
[   79.479156] usb 2-2.3: new low speed USB device using ehci-omap and address 7&lt;br /&gt;
[   79.609344] usb 2-2.3: New USB device found, idVendor=045e, idProduct=00cb&lt;br /&gt;
[   79.621215] usb 2-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[   79.633239] usb 2-2.3: Product: Microsoft Basic Optical Mouse v2.0 &lt;br /&gt;
[   79.644195] usb 2-2.3: Manufacturer: Microsoft &lt;br /&gt;
[   79.661895] input: Microsoft  Microsoft Basic Optical Mouse v2.0  as /devices/platform/ehci-omap.0/usb2/2-2/2-2.3/2-2.3:1.0/input/input5&lt;br /&gt;
[   79.714996] generic-usb 0003:045E:00CB.0004: input: USB HID v1.11 Mouse [Microsoft  Microsoft Basic Optical Mouse v2.0 ] on usb-ehci-omap.0-2.3/input0&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 14&lt;br /&gt;
No DHCPOFFERS received.&lt;br /&gt;
No working leases in persistent database - sleeping.&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
hwclock: can't open '/dev/misc/rtc': No such file or directory&lt;br /&gt;
Mon Oct  3 16:13:00 BST 2011&lt;br /&gt;
hwclock: can't open '/dev/misc/rtc': No such file or directory&lt;br /&gt;
&lt;br /&gt;
INIT: Entering runlevel: 5&lt;br /&gt;
&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::pmu_stat: none&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 Samba: smbd nmbd.&lt;br /&gt;
Starting syslog-ng:.&lt;br /&gt;
Starting internet superserver: xinetd.&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
�[A�[74G[ ok ]&lt;br /&gt;
Starting Network connection manager daemon: NetworkManager.&lt;br /&gt;
Starting PVR&lt;br /&gt;
cups: started scheduler.&lt;br /&gt;
Starting GNOME Display Manager gdm&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 2010.7-test-20110220 beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: 0oot� �� �� �� �root&lt;br /&gt;
root@beagleboard:~# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-X, page X, Shutdown messages ===&lt;br /&gt;
&lt;br /&gt;
 root@beagleboard:~# '''shutdown -r now'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Broadcast message from root (ttyS2) (Mon Oct  3 16:20:03 2011):&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The system is going down for reboot NOW!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
INIT: &lt;br /&gt;
INIT: Sending processes the TERM signal&lt;br /&gt;
&lt;br /&gt;
Deconfiguring leds:&lt;br /&gt;
  beagleboard::pmu_stat: no trigger&lt;br /&gt;
  beagleboard::usr0: no trigger&lt;br /&gt;
  beagleboard::usr1: no trigger&lt;br /&gt;
Stopping Dropbear SSH server: dropbear.&lt;br /&gt;
 * Stopping Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
�[A�[74G[ ok ]&lt;br /&gt;
Stopping advanced power management daemon: No /usr/sbin/apmd found running; none killed.&lt;br /&gt;
apmd.&lt;br /&gt;
Stopping Vixie-cron.&lt;br /&gt;
Stopping Hardware abstraction layer hald&lt;br /&gt;
Stopping system message bus: dbus.&lt;br /&gt;
Stopping GNOME Display Manager gdm&lt;br /&gt;
Stopping Samba: smbd nmbdstart-stop-daemon: warning: failed to kill 920: No such process&lt;br /&gt;
.&lt;br /&gt;
Stopping internet superserver: xinetd.&lt;br /&gt;
Stopping Network connection manager daemon: NetworkManager.&lt;br /&gt;
ALSA: Storing mixer settings...&lt;br /&gt;
/usr/sbin/alsactl: get_control:259: Cannot read control '2,0,0,Mic Capture Volume,0': Invalid argument&lt;br /&gt;
Deconfiguring network interfaces... Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/usb0/ea:e7:f3:22:77:ae&lt;br /&gt;
Sending on   LPF/usb0/ea:e7:f3:22:77:ae&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPRELEASE on usb0 to 192.168.1.1 port 67&lt;br /&gt;
done.&lt;br /&gt;
Stopping PVR&lt;br /&gt;
Stopping syslog-ng:.&lt;br /&gt;
Sending all processes the TERM signal...&lt;br /&gt;
Sending all processes the KILL signal...&lt;br /&gt;
hwclock: can't open '/dev/misc/rtc': No such file or directory&lt;br /&gt;
Unmounting remote filesystems...&lt;br /&gt;
Stopping portmap daemon: portmap.&lt;br /&gt;
Deactivating swap...&lt;br /&gt;
Unmounting local filesystems...&lt;br /&gt;
Rebooting... [  528.944213] Restarting system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-X, page X, ifconfig ===&lt;br /&gt;
 root@beagleboard:~# '''ifconfig'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
lo        Link encap:Local Loopback  &lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:8 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0 &lt;br /&gt;
          RX bytes:480 (480.0 b)  TX bytes:480 (480.0 b)&lt;br /&gt;
&lt;br /&gt;
usb0      Link encap:Ethernet  HWaddr E6:54:50:3F:0C:91  &lt;br /&gt;
          inet6 addr: fe80::e454:50ff:fe3f:c91/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1&lt;br /&gt;
          RX packets:96 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000 &lt;br /&gt;
          RX bytes:7702 (7.5 KiB)  TX bytes:5766 (5.6 KiB)&lt;br /&gt;
&lt;br /&gt;
root@beagleboard:~# &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-3, page 18, Linux Final Boot Messages ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[   17.416473] usb 2-2.1: new high speed USB device using ehci-omap and address 3&lt;br /&gt;
[   17.541809] usb 2-2.1: New USB device found, idVendor=0424, idProduct=ec00&lt;br /&gt;
[   17.552642] usb 2-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[   17.566772] smsc95xx v1.0.4&lt;br /&gt;
[   17.577423] EXT3-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is recommended&lt;br /&gt;
[   17.590637] kjournald starting.  Commit interval 5 seconds&lt;br /&gt;
[   17.602935] EXT3-fs (mmcblk0p2): using internal journal&lt;br /&gt;
[   17.612182] EXT3-fs (mmcblk0p2): recovery complete&lt;br /&gt;
[   17.623352] EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode&lt;br /&gt;
[   17.634643] VFS: Mounted root (ext3 filesystem) on device 179:2.&lt;br /&gt;
[   17.655609] devtmpfs: mounted&lt;br /&gt;
[   17.662811] Freeing init memory: 204K&lt;br /&gt;
[   17.676391] usb0: register 'smsc95xx' at usb-ehci-omap.0-2.1, smsc95xx USB 2.0 Ethernet, ea:12:4d:f4:ac:e9&lt;br /&gt;
&lt;br /&gt;
INIT: [   17.776031] usb 2-2.3: new low speed USB device using ehci-omap and address 4&lt;br /&gt;
version 2.86 booting&lt;br /&gt;
&lt;br /&gt;
[   17.914062] usb 2-2.3: New USB device found, idVendor=045e, idProduct=00cb&lt;br /&gt;
[   17.925750] usb 2-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[   17.937744] usb 2-2.3: Product: Microsoft Basic Optical Mouse v2.0 &lt;br /&gt;
[   17.948608] usb 2-2.3: Manufacturer: Microsoft &lt;br /&gt;
[   17.964416] input: Microsoft  Microsoft Basic Optical Mouse v2.0  as /devices/platform/ehci-omap.0/usb2/2-2/2-2.3/2-2.3:1.0/input/input2&lt;br /&gt;
[   17.982330] generic-usb 0003:045E:00CB.0001: input: USB HID v1.11 Mouse [Microsoft  Microsoft Basic Optical Mouse v2.0 ] on usb-ehci-omap.0-2.3/input0&lt;br /&gt;
Please wait: booting...&lt;br /&gt;
Starting udev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-4, page 29, Hello World, Embedded Style ===&lt;br /&gt;
&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, page 29, Hello Output for Host Computer ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
wangg@wangg-laptop:~$ '''gcc helloWorld.c''' &lt;br /&gt;
&lt;br /&gt;
wangg@wangg-laptop:~$ '''./a.out''' &lt;br /&gt;
&lt;br /&gt;
Hello, World! Main is executing at 0x80483e4&lt;br /&gt;
&lt;br /&gt;
This address (0xbfe9e6bc) is in our stack frame&lt;br /&gt;
&lt;br /&gt;
This address (0x804a020) is in our bss section&lt;br /&gt;
&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, page 29, Hello Output for Beagle ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# '''gcc helloWorld.c'''&lt;br /&gt;
root@beagleboard:~# '''./a.out'''&lt;br /&gt;
Hello, World! Main is executing at��0x8380&lt;br /&gt;
This address (0xbefe1454) 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;
[[Category:ECE497]]&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Listings_for_Chapter_2--Yifei</id>
		<title>ECE497 Listings for Chapter 2--Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Listings_for_Chapter_2--Yifei"/>
				<updated>2012-01-17T01:57:50Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== 2-1, page 15, Initial Bootloader Serial Output ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Texas Instruments X-Loader 1.5.0 (Mar 27 2011 - 17:37:56)&lt;br /&gt;
Beagle xM&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 2011.03-rc1-00000-g9a3cc57-dirty (Apr 01 2011 - 17:41:42)&lt;br /&gt;
&lt;br /&gt;
OMAP3630/3730-GP ES2.0, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  512 MiB&lt;br /&gt;
NAND:  0 MiB&lt;br /&gt;
MMC:   OMAP SD/MMC: 0&lt;br /&gt;
*** Warning - readenv() failed, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Beagle xM Rev A&lt;br /&gt;
No EEPROM on expansion board&lt;br /&gt;
Die ID #10c600011ff00000015739eb0800c018&lt;br /&gt;
Hit any key to stop autoboot:  3 ��� 2 ��� 1 ��� 0 &lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-2, page 16, Loading the Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
 OMAP3 beagleboard.org # '''boot'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The user button is currently NOT pressed.&lt;br /&gt;
SD/MMC found on device 0&lt;br /&gt;
reading uEnv.txt&lt;br /&gt;
&lt;br /&gt;
191 bytes read&lt;br /&gt;
Loaded environment from uEnv.txt&lt;br /&gt;
Importing environment from mmc ...&lt;br /&gt;
Running uenvcmd ...&lt;br /&gt;
Loading file &amp;quot;/boot/uImage&amp;quot; from mmc device 0:2 (xxa2)&lt;br /&gt;
3144304 bytes read&lt;br /&gt;
Booting from mmc ...&lt;br /&gt;
## Booting kernel from Legacy Image at 80200000 ...&lt;br /&gt;
   Image Name:   Linux-2.6.32&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    3144240 Bytes = 3 MiB&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.32 (beagle@ubu-may) (gcc version 4.5.4 20110917 (prerelease) (GCC) ) #4 PREEMPT Thu Dec 29 16:14:20 EST 2011&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f&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] OMAP3630/DM3730 ES1.0 (l2cache iva sgx neon isp 192mhz_clk )&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 25165824 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 122624&lt;br /&gt;
[    0.000000] Kernel command line: console=tty0 console=ttyS2,115200n8 consoleblank=0 mpurate=auto buddy=none camera=lbcm3m1 vram=24M omapfb.mode=dvi:hd720 mem=99M@0x80000000 mem=384M@0x88000000 omapfb.vram=0:12M,1:8M,2:4M omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait&lt;br /&gt;
[    0.000000] Beagle expansionboard: none&lt;br /&gt;
[    0.000000] Beagle cameraboard: lbcm3m1&lt;br /&gt;
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Memory: 99MB 384MB = 483MB total&lt;br /&gt;
[    0.000000] Memory: 458624KB available (5760K code, 672K data, 196K init, 0K highmem)&lt;br /&gt;
[    0.000000] Hierarchical RCU implementation.&lt;br /&gt;
[    0.000000] NR_IRQS:402&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz&lt;br /&gt;
[    0.000000] Reprogramming SDRC clock to 332000000 Hz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP GPIO hardware version 2.5&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] console [tty0] enabled&lt;br /&gt;
[    0.000000] Calibrating delay loop... 508.37 BogoMIPS (lpj=1986560)&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] tmpfs: No value for mount option 'mode'&lt;br /&gt;
[    0.000000] devtmpfs: initialized&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] OMAP3 Beagle Rev: xM A&lt;br /&gt;
[    0.000000] Beagle cameraboard: registering i2c2 bus for lbcm3m1&lt;br /&gt;
[    0.000000] Found NAND on CS0&lt;br /&gt;
[    0.000000] Registering NAND on CS0&lt;br /&gt;
[    0.000000] Unable to get DVI reset GPIO&lt;br /&gt;
[    0.000000] omap_init_mbox: platform not supported&lt;br /&gt;
[22393.999969] OMAP DMA hardware revision 5.0&lt;br /&gt;
[22394.006072] bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
[22394.007293] SCSI subsystem initialized&lt;br /&gt;
[22394.008636] usbcore: registered new interface driver usbfs&lt;br /&gt;
[22394.008789] usbcore: registered new interface driver hub&lt;br /&gt;
[22394.008972] usbcore: registered new device driver usb&lt;br /&gt;
[22394.009399] i2c_omap i2c_omap.1: bus 1 rev4.0 at 2600 kHz&lt;br /&gt;
[22394.012054] twl4030: PIH (irq 7) chaining IRQs 368..375&lt;br /&gt;
[22394.012115] twl4030: power (irq 373) chaining IRQs 376..383&lt;br /&gt;
[22394.012390] twl4030: gpio (irq 368) chaining IRQs 384..401&lt;br /&gt;
[22394.014099] regulator: VUSB1V5: 1500 mV normal standby&lt;br /&gt;
[22394.014343] regulator: VUSB1V8: 1800 mV normal standby&lt;br /&gt;
[22394.014587] regulator: VUSB3V1: 3100 mV normal standby&lt;br /&gt;
[22394.015808] twl4030_usb twl4030_usb: Initialized TWL4030 USB module&lt;br /&gt;
[22394.016265] regulator: VMMC1: 1850 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[22394.016540] regulator: VDAC: 1800 mV normal standby&lt;br /&gt;
[22394.016784] regulator: VPLL2: 1800 mV normal standby&lt;br /&gt;
[22394.017028] regulator: VSIM: 1800 &amp;lt;--&amp;gt; 3000 mV normal standby&lt;br /&gt;
[22394.017364] regulator: VAUX3: 1800 mV normal standby&lt;br /&gt;
[22394.017730] regulator: VAUX4: 1800 mV normal standby&lt;br /&gt;
[22394.029235] i2c_omap i2c_omap.2: bus 2 rev4.0 at 400 kHz&lt;br /&gt;
[22394.042480] i2c_omap i2c_omap.3: bus 3 rev4.0 at 100 kHz&lt;br /&gt;
[22394.043670] Switching to clocksource 32k_counter&lt;br /&gt;
[22394.052429] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0&lt;br /&gt;
[22394.056182] musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92&lt;br /&gt;
[22394.056213] musb_hdrc musb_hdrc: MUSB HDRC host driver&lt;br /&gt;
[22394.056365] musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1&lt;br /&gt;
[22394.056518] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
[22394.056549] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
[22394.056610] usb usb1: Product: MUSB HDRC host driver&lt;br /&gt;
[22394.056640] usb usb1: Manufacturer: Linux 2.6.32 musb-hcd&lt;br /&gt;
[22394.056671] usb usb1: SerialNumber: musb_hdrc&lt;br /&gt;
[22394.057312] hub 1-0:1.0: USB hub found&lt;br /&gt;
[22394.057373] hub 1-0:1.0: 1 port detected&lt;br /&gt;
[22394.058380] NET: Registered protocol family 2&lt;br /&gt;
[22394.058624] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)&lt;br /&gt;
[22394.059204] TCP established hash table entries: 16384 (order: 5, 131072 bytes)&lt;br /&gt;
[22394.059661] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[22394.059906] TCP: Hash tables configured (established 16384 bind 16384)&lt;br /&gt;
[22394.059936] TCP reno registered&lt;br /&gt;
[22394.059967] UDP hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
[22394.060028] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
[22394.060272] NET: Registered protocol family 1&lt;br /&gt;
[22394.060729] RPC: Registered udp transport module.&lt;br /&gt;
[22394.060760] RPC: Registered tcp transport module.&lt;br /&gt;
[22394.060791] RPC: Registered tcp NFSv4.1 backchannel transport module.&lt;br /&gt;
[22394.061645] omap-iommu omap-iommu.0: isp registered&lt;br /&gt;
[22394.063354] VFS: Disk quotas dquot_6.5.2&lt;br /&gt;
[22394.063476] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)&lt;br /&gt;
[22394.064544] squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
[22394.065338] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.&lt;br /&gt;
[22394.066192] msgmni has been set to 896&lt;br /&gt;
[22394.069824] alg: No test for stdrng (krng)&lt;br /&gt;
[22394.070129] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)&lt;br /&gt;
[22394.070190] io scheduler noop registered&lt;br /&gt;
[22394.070220] io scheduler deadline registered&lt;br /&gt;
[22394.070373] io scheduler cfq registered (default)&lt;br /&gt;
[22394.129882] OMAP DSS rev 2.0&lt;br /&gt;
[22394.129974] OMAP DISPC rev 3.0&lt;br /&gt;
[22394.130035] OMAP VENC rev 2&lt;br /&gt;
[22394.130279] OMAP DSI rev 1.0&lt;br /&gt;
[22394.466735] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled&lt;br /&gt;
[22394.484924] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654&lt;br /&gt;
[22394.502471] serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654&lt;br /&gt;
[22394.519989] serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654&lt;br /&gt;
[22395.101104] console [ttyS2] enabled&lt;br /&gt;
[22395.111206] brd: module loaded&lt;br /&gt;
[22395.117492] loop: module loaded&lt;br /&gt;
[22395.122009] omap2-nand driver initializing&lt;br /&gt;
[22395.126403] No NAND device found!!!&lt;br /&gt;
[22395.130096] No NAND device found!!!&lt;br /&gt;
[22395.134582] usbcore: registered new interface driver catc&lt;br /&gt;
[22395.140106] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver&lt;br /&gt;
[22395.146209] usbcore: registered new interface driver kaweth&lt;br /&gt;
[22395.151824] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver&lt;br /&gt;
[22395.159484] usbcore: registered new interface driver pegasus&lt;br /&gt;
[22395.165222] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver&lt;br /&gt;
[22395.172271] usbcore: registered new interface driver rtl8150&lt;br /&gt;
[22395.178070] usbcore: registered new interface driver asix&lt;br /&gt;
[22395.183593] usbcore: registered new interface driver cdc_ether&lt;br /&gt;
[22395.189575] usbcore: registered new interface driver dm9601&lt;br /&gt;
[22395.195312] usbcore: registered new interface driver smsc95xx&lt;br /&gt;
[22395.201232] usbcore: registered new interface driver gl620a&lt;br /&gt;
[22395.206939] usbcore: registered new interface driver net1080&lt;br /&gt;
[22395.212738] usbcore: registered new interface driver plusb&lt;br /&gt;
[22395.218383] usbcore: registered new interface driver rndis_host&lt;br /&gt;
[22395.224456] usbcore: registered new interface driver cdc_subset&lt;br /&gt;
[22395.230499] usbcore: registered new interface driver zaurus&lt;br /&gt;
[22395.236236] usbcore: registered new interface driver MOSCHIP usb-ethernet driver&lt;br /&gt;
[22395.244323] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver&lt;br /&gt;
[22395.251190] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller&lt;br /&gt;
[22395.257232] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2&lt;br /&gt;
[22395.264862] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800&lt;br /&gt;
[22395.286010] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00&lt;br /&gt;
[22395.291900] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
[22395.298797] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
[22395.306121] usb usb2: Product: OMAP-EHCI Host Controller&lt;br /&gt;
[22395.311492] usb usb2: Manufacturer: Linux 2.6.32 ehci_hcd&lt;br /&gt;
[22395.316955] usb usb2: SerialNumber: ehci-omap.0&lt;br /&gt;
[22395.322204] hub 2-0:1.0: USB hub found&lt;br /&gt;
[22395.326080] hub 2-0:1.0: 3 ports detected&lt;br /&gt;
[22395.356445] Initializing USB Mass Storage driver...&lt;br /&gt;
[22395.361541] usbcore: registered new interface driver usb-storage&lt;br /&gt;
[22395.367645] USB Mass Storage support registered.&lt;br /&gt;
[22395.372680] mice: PS/2 mouse device common for all mice&lt;br /&gt;
[22395.378326] input: gpio-keys as /devices/platform/gpio-keys/input/input0&lt;br /&gt;
[22395.386169] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-1/1-0049/twl4030_pwrbutton/input/input1&lt;br /&gt;
[22395.396911] i2c /dev entries driver&lt;br /&gt;
[22395.401031] Linux video capture interface: v2.00&lt;br /&gt;
[22395.406005] omap-iommu omap-iommu.0: isp: version 1.1&lt;br /&gt;
[22395.412689] vpfe_init&lt;br /&gt;
[22395.415557] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec&lt;br /&gt;
[22395.422363] cpuidle: using governor ladder&lt;br /&gt;
[22395.426574] cpuidle: using governor menu&lt;br /&gt;
[22395.536285] mmci-omap-hs mmci-omap-hs.1: err -16 configuring card detect&lt;br /&gt;
[22395.543365] Registered led device: beagleboard::usr0&lt;br /&gt;
[22395.548522] Registered led device: beagleboard::usr1&lt;br /&gt;
[22395.555023] Registered led device: beagleboard::pmu_stat&lt;br /&gt;
[22395.562103] usbcore: registered new interface driver usbhid&lt;br /&gt;
[22395.567779] usbhid: USB HID core driver&lt;br /&gt;
[22395.571838] Advanced Linux Sound Architecture Driver Version 1.0.21.&lt;br /&gt;
[22395.578765] usbcore: registered new interface driver snd-usb-audio&lt;br /&gt;
[22395.653930] usb 2-2: new high speed USB device using ehci-omap and address 2&lt;br /&gt;
[22395.667388] No device for DAI omap-mcbsp-dai-0&lt;br /&gt;
[22395.671905] No device for DAI omap-mcbsp-dai-1&lt;br /&gt;
[22395.676422] No device for DAI omap-mcbsp-dai-2&lt;br /&gt;
[22395.680938] No device for DAI omap-mcbsp-dai-3&lt;br /&gt;
[22395.685455] No device for DAI omap-mcbsp-dai-4&lt;br /&gt;
[22395.689941] OMAP3 Beagle SoC init&lt;br /&gt;
[22395.694122] asoc: twl4030 &amp;lt;-&amp;gt; omap-mcbsp-dai-0 mapping ok&lt;br /&gt;
[22395.705291] ALSA device list:&lt;br /&gt;
[22395.708374]   #0: omap3beagle (twl4030)&lt;br /&gt;
[22395.712341] oprofile: using arm/armv7&lt;br /&gt;
[22395.716278] TCP cubic registered&lt;br /&gt;
[22395.719573] NET: Registered protocol family 17&lt;br /&gt;
[22395.724151] NET: Registered protocol family 15&lt;br /&gt;
[22395.728698] lib80211: common routines for IEEE802.11 drivers&lt;br /&gt;
[22395.734466] ThumbEE CPU extension supported.&lt;br /&gt;
[22395.738800] Power Management for TI OMAP3.&lt;br /&gt;
[22395.744171] SmartReflex driver initialized&lt;br /&gt;
[22395.748504] omap3beaglelmb: Driver registration complete&lt;br /&gt;
[22395.761932] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3&lt;br /&gt;
[22395.770202] registered taskstats version 1&lt;br /&gt;
[22395.833557] usb 2-2: New USB device found, idVendor=0424, idProduct=9514&lt;br /&gt;
[22395.840362] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[22395.848327] hub 2-2:1.0: USB hub found&lt;br /&gt;
[22395.852355] hub 2-2:1.0: 5 ports detected&lt;br /&gt;
[22395.958404] Console: switching to colour frame buffer device 160x45&lt;br /&gt;
[22395.977630] mmc0: host does not support reading read-only switch. assuming write-enable.&lt;br /&gt;
[22395.986053] mmc0: new high speed SDHC card at address e624&lt;br /&gt;
[22395.992187] mmcblk0: mmc0:e624 SU08G 7.40 GiB &lt;br /&gt;
[22395.997222]  mmcblk0:&lt;br /&gt;
[22396.001953] regulator_init_complete: incomplete constraints, leaving VAUX4 on&lt;br /&gt;
[22396.009674]  p1 p2&lt;br /&gt;
[22396.012573] regulator_init_complete: incomplete constraints, leaving VAUX3 on&lt;br /&gt;
[22396.020416] regulator_init_complete: incomplete constraints, leaving VDAC on&lt;br /&gt;
[22396.028472] omap_vout omap_vout: probed for an unknown device&lt;br /&gt;
[22396.044433] EXT3-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is recommended&lt;br /&gt;
[22396.053924] kjournald starting.  Commit interval 5 seconds&lt;br /&gt;
[22396.072601] EXT3-fs (mmcblk0p2): using internal journal&lt;br /&gt;
[22396.081604] EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode&lt;br /&gt;
[22396.092468] VFS: Mounted root (ext3 filesystem) on device 179:2.&lt;br /&gt;
[22396.108184] devtmpfs: mounted&lt;br /&gt;
[22396.114929] Freeing init memory: 196K&lt;br /&gt;
[22396.184783] usb 2-2.1: new high speed USB device using ehci-omap and address 3&lt;br /&gt;
&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
&lt;br /&gt;
[22396.309906] usb 2-2.1: New USB device found, idVendor=0424, idProduct=ec00&lt;br /&gt;
[22396.320922] usb 2-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[22396.336395] smsc95xx v1.0.4&lt;br /&gt;
[22396.401306] usb0: register 'smsc95xx' at usb-ehci-omap.0-2.1, smsc95xx USB 2.0 Ethernet, 9a:90:a2:eb:2d:7e&lt;br /&gt;
Please wait: booting...&lt;br /&gt;
Starting udev&lt;br /&gt;
[22396.653747] usb 2-2.2: new high speed USB device using ehci-omap and address 4&lt;br /&gt;
[22396.781158] usb 2-2.2: New USB device found, idVendor=1415, idProduct=2000&lt;br /&gt;
[22396.801727] usb 2-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[22396.825225] usb 2-2.2: Product: USB Camera-B4.04.27.1&lt;br /&gt;
[22396.845581] usb 2-2.2: Manufacturer: OmniVision Technologies, Inc.&lt;br /&gt;
[22396.950500] usb 2-2.3: new high speed USB device using ehci-omap and address 5&lt;br /&gt;
[22397.031524] udev: starting version 151&lt;br /&gt;
[22397.089172] usb 2-2.3: New USB device found, idVendor=0b95, idProduct=7720&lt;br /&gt;
[22397.292785] usb 2-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[22397.818115] usb 2-2.3: Product: AX88772 &lt;br /&gt;
[22398.287506] gspca: main v2.8.0 registered&lt;br /&gt;
[22398.408355] usb 2-2.3: Manufacturer: ASIX Elec. Corp.&lt;br /&gt;
[22398.639282] gspca: probing 1415:2000&lt;br /&gt;
[22398.782592] usb 2-2.3: SerialNumber: 000001&lt;br /&gt;
Remounting root file system...&lt;br /&gt;
[22398.906860] ov534: Sensor ID: 7721&lt;br /&gt;
[22398.995330] ov534: frame_rate: 30&lt;br /&gt;
[22399.004089] gspca: /dev/video0 created&lt;br /&gt;
[22399.014282] usbcore: registered new interface driver ov534&lt;br /&gt;
[22399.024261] ov534: registered&lt;br /&gt;
Caching udev devnodes&lt;br /&gt;
Populating dev cache&lt;br /&gt;
[22399.603393] Bluetooth: Core ver 2.15&lt;br /&gt;
[22399.612976] NET: Registered protocol family 31&lt;br /&gt;
[22399.622619] Bluetooth: HCI device and connection manager initialized&lt;br /&gt;
[22399.633453] Bluetooth: HCI socket layer initialized&lt;br /&gt;
[22399.665588] Bluetooth: L2CAP ver 2.14&lt;br /&gt;
[22399.674407] Bluetooth: L2CAP socket layer initialized&lt;br /&gt;
[22399.705413] Bluetooth: HIDP (Human Interface Emulation) ver 1.2&lt;br /&gt;
[22399.745269] eth0: register 'asix' at usb-ehci-omap.0-2.3, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:0a:21:18&lt;br /&gt;
[22399.791259] udev: renamed network interface eth0 to eth1&lt;br /&gt;
[22399.888122] usb 2-2.4: new low speed USB device using ehci-omap and address 6&lt;br /&gt;
[22399.996948] NET: Registered protocol family 10&lt;br /&gt;
[22400.064605] usb 2-2.4: New USB device found, idVendor=045e, idProduct=00cb&lt;br /&gt;
[22400.090820] usb 2-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[22400.113952] usb 2-2.4: Product: Microsoft Basic Optical Mouse v2.0 &lt;br /&gt;
[22400.125549] NET: Registered protocol family 23&lt;br /&gt;
[22400.136352] usb 2-2.4: Manufacturer: Microsoft &lt;br /&gt;
[22400.159423] input: Microsoft  Microsoft Basic Optical Mouse v2.0  as /devices/platform/ehci-omap.0/usb2/2-2/2-2.4/2-2.4:1.0/input/input2&lt;br /&gt;
[22400.214202] IrCOMM protocol (Dag Brattli)&lt;br /&gt;
[22400.233917] generic-usb 0003:045E:00CB.0001: input: USB HID v1.11 Mouse [Microsoft  Microsoft Basic Optical Mouse v2.0 ] on usb-ehci-omap.0-2.4/input0&lt;br /&gt;
[22400.399627] Bluetooth: RFCOMM TTY layer initialized&lt;br /&gt;
[22400.409423] Bluetooth: RFCOMM socket layer initialized&lt;br /&gt;
[22400.419250] Bluetooth: RFCOMM ver 1.11&lt;br /&gt;
[22400.427490] usb 2-2.5: new low speed USB device using ehci-omap and address 7&lt;br /&gt;
[22400.567504] usb 2-2.5: New USB device found, idVendor=045e, idProduct=0750&lt;br /&gt;
[22400.583007] usb 2-2.5: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[22400.595001] usb 2-2.5: Product: Wired Keyboard 600&lt;br /&gt;
[22400.604217] usb 2-2.5: Manufacturer: Microsoft&lt;br /&gt;
[22400.630645] input: Microsoft Wired Keyboard 600 as /devices/platform/ehci-omap.0/usb2/2-2/2-2.5/2-2.5:1.0/input/input3&lt;br /&gt;
[22400.700561] generic-usb 0003:045E:0750.0002: input: USB HID v1.11 Keyboard [Microsoft Wired Keyboard 600] on usb-ehci-omap.0-2.5/input0&lt;br /&gt;
[22400.784606] input: Microsoft Wired Keyboard 600 as /devices/platform/ehci-omap.0/usb2/2-2/2-2.5/2-2.5:1.1/input/input4&lt;br /&gt;
[22400.856506] generic-usb 0003:045E:0750.0003: input: USB HID v1.11 Device [Microsoft Wired Keyboard 600] on usb-ehci-omap.0-2.5/input1&lt;br /&gt;
ALSA: Restoring mixer settings...&lt;br /&gt;
Cleaning: /etc/network/run/ifstate.&lt;br /&gt;
No state is present for card CameraB404271&lt;br /&gt;
/usr/sbin/alsactl: parse:1655: Unable to open file '/usr/share/alsa/init/00main': No such file or directory&lt;br /&gt;
No state is present for card CameraB404271&lt;br /&gt;
Configuring network interfaces... eth0: unknown interface: No such device&lt;br /&gt;
eth0: unknown interface: No such device&lt;br /&gt;
eth0      No such device&lt;br /&gt;
&lt;br /&gt;
Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
SIOCSIFADDR: No such device&lt;br /&gt;
eth0: unknown interface: No such device&lt;br /&gt;
eth0: unknown interface: No such device&lt;br /&gt;
Bind socket to interface: No such device&lt;br /&gt;
&lt;br /&gt;
If you did not get this software from ftp.isc.org, please&lt;br /&gt;
get the latest from ftp.isc.org and install that before&lt;br /&gt;
requesting help.&lt;br /&gt;
&lt;br /&gt;
If you did get this software from ftp.isc.org and have not&lt;br /&gt;
yet read the README, please read it before requesting help.&lt;br /&gt;
If you intend to request help from the dhcp-server@isc.org&lt;br /&gt;
mailing list, please read the section on the README about&lt;br /&gt;
submitting bug reports and requests for help.&lt;br /&gt;
&lt;br /&gt;
Please do not under any circumstances send requests for&lt;br /&gt;
help directly to the authors of this software - please&lt;br /&gt;
send them to the appropriate mailing list as described in&lt;br /&gt;
the README file.&lt;br /&gt;
&lt;br /&gt;
exiting.&lt;br /&gt;
Failed to bring up eth0.&lt;br /&gt;
usb0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/usb0/7e:3d:60:0e:c7:a2&lt;br /&gt;
Sending on   LPF/usb0/7e:3d:60:0e:c7:a2&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPREQUEST on usb0 to 255.255.255.255 port 67&lt;br /&gt;
DHCPREQUEST on usb0 to 255.255.255.255 port 67&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 3&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 7&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 7&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 10&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 11&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 13&lt;br /&gt;
[22460.296112] usb 2-2.4: USB disconnect, address 6&lt;br /&gt;
[22461.817718] usb 2-2.4: new low speed USB device using ehci-omap and address 8&lt;br /&gt;
[22461.947753] usb 2-2.4: New USB device found, idVendor=045e, idProduct=00cb&lt;br /&gt;
[22461.959808] usb 2-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[22461.972229] usb 2-2.4: Product: Microsoft Basic Optical Mouse v2.0 &lt;br /&gt;
[22461.983642] usb 2-2.4: Manufacturer: Microsoft &lt;br /&gt;
[22462.001617] input: Microsoft  Microsoft Basic Optical Mouse v2.0  as /devices/platform/ehci-omap.0/usb2/2-2/2-2.4/2-2.4:1.0/input/input5&lt;br /&gt;
[22462.054229] generic-usb 0003:045E:00CB.0004: input: USB HID v1.11 Mouse [Microsoft  Microsoft Basic Optical Mouse v2.0 ] on usb-ehci-omap.0-2.4/input0&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 8&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 2&lt;br /&gt;
No DHCPOFFERS received.&lt;br /&gt;
Trying recorded lease 192.168.1.104&lt;br /&gt;
PING 192.168.1.1 (192.168.1.1): 56 data bytes&lt;br /&gt;
64 bytes from 192.168.1.104: Destination Host Unreachable&lt;br /&gt;
Vr HL TOS  Len   ID Flg  off TTL Pro  cks      Src      Dst Data&lt;br /&gt;
 4  5  00 5400 0000   0 0040  40  01 efb6 192.168.1.104  192.168.1.1 &lt;br /&gt;
--- 192.168.1.1 ping statistics ---&lt;br /&gt;
1 packets transmitted, 0 packets received, 100% packet loss&lt;br /&gt;
No working leases in persistent database - sleeping.&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
hwclock: can't open '/dev/misc/rtc': No such file or directory&lt;br /&gt;
Tue Oct  4 01:58:00 BST 2011&lt;br /&gt;
hwclock: can't open '/dev/misc/rtc': No such file or directory&lt;br /&gt;
&lt;br /&gt;
INIT: Entering runlevel: 5&lt;br /&gt;
&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::pmu_stat: none&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 Samba: smbd nmbd.&lt;br /&gt;
Starting syslog-ng:.&lt;br /&gt;
Starting internet superserver: xinetd.&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
�[A�[74G[ ok ]&lt;br /&gt;
Starting Network connection manager daemon: NetworkManager.&lt;br /&gt;
Starting PVR&lt;br /&gt;
[22488.673706] eth1: link up, 100Mbps, full-duplex, lpa 0x41E1&lt;br /&gt;
[22488.848663] eth1: link up, 100Mbps, full-duplex, lpa 0x41E1&lt;br /&gt;
cups: started scheduler.&lt;br /&gt;
Starting GNOME Display Manager gdm&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 2010.7-test-20110220 beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-X, page X, Shutdown messages ===&lt;br /&gt;
&lt;br /&gt;
 root@beagleboard:~# '''shutdown -r now'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Broadcast message from root (ttyS2) (Tue Oct  4 01:58:15 2011):&lt;br /&gt;
The system is going down for reboot NOW!&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
INIT: &lt;br /&gt;
INIT: Sending processes the TERM signal&lt;br /&gt;
&lt;br /&gt;
Deconfiguring leds:&lt;br /&gt;
  beagleboard::pmu_stat: no trigger&lt;br /&gt;
  beagleboard::usr0: no trigger&lt;br /&gt;
  beagleboard::usr1: no trigger&lt;br /&gt;
Stopping Dropbear SSH server: dropbear.&lt;br /&gt;
 * Stopping Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
�[A�[74G[ ok ]&lt;br /&gt;
Stopping advanced power management daemon: No /usr/sbin/apmd found running; none killed.&lt;br /&gt;
apmd.&lt;br /&gt;
Stopping Vixie-cron.&lt;br /&gt;
Stopping Hardware abstraction layer hald&lt;br /&gt;
Stopping system message bus: dbus.&lt;br /&gt;
Stopping GNOME Display Manager gdm&lt;br /&gt;
Stopping Samba: smbd nmbd.&lt;br /&gt;
Stopping internet superserver: xinetd.&lt;br /&gt;
Stopping Network connection manager daemon: NetworkManager.&lt;br /&gt;
ALSA: Storing mixer settings...&lt;br /&gt;
/usr/sbin/alsactl: get_control:259: Cannot read control '2,0,0,Mic Capture Volume,0': Invalid argument&lt;br /&gt;
Deconfiguring network interfaces... Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/usb0/aa:db:5c:9e:a0:a0&lt;br /&gt;
Sending on   LPF/usb0/aa:db:5c:9e:a0:a0&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPRELEASE on usb0 to 192.168.1.1 port 67&lt;br /&gt;
done.&lt;br /&gt;
Stopping PVR&lt;br /&gt;
Stopping syslog-ng:.&lt;br /&gt;
Sending all processes the TERM signal...&lt;br /&gt;
Sending all processes the KILL signal...&lt;br /&gt;
hwclock: can't open '/dev/misc/rtc': No such file or directory&lt;br /&gt;
Unmounting remote filesystems...&lt;br /&gt;
Stopping portmap daemon: portmap.&lt;br /&gt;
Deactivating swap...&lt;br /&gt;
Unmounting local filesystems...&lt;br /&gt;
Rebooting... [22385.076416] Restarting system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-X, page X, ifconfig ===&lt;br /&gt;
 root@beagleboard:~# '''ifconfig'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# ifconfig&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 00:50:B6:0A:21:18  &lt;br /&gt;
          inet addr:137.112.101.235  Bcast:137.112.101.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::250:b6ff:fe0a:2118/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:268 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:96 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000 &lt;br /&gt;
          RX bytes:19429 (18.9 KiB)  TX bytes:15858 (15.4 KiB)&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback  &lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0 &lt;br /&gt;
          RX bytes:592 (592.0 b)  TX bytes:592 (592.0 b)&lt;br /&gt;
&lt;br /&gt;
usb0      Link encap:Ethernet  HWaddr 5A:3D:7F:FE:EE:BA  &lt;br /&gt;
          inet6 addr: fe80::583d:7fff:fefe:eeba/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:51 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000 &lt;br /&gt;
          RX bytes:0 (0.0 b)  TX bytes:10614 (10.3 KiB)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-3, page 18, Linux Final Boot Messages ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[22396.092468] VFS: Mounted root (ext3 filesystem) on device 179:2.&lt;br /&gt;
[22396.108184] devtmpfs: mounted&lt;br /&gt;
[22396.114929] Freeing init memory: 196K&lt;br /&gt;
[22396.184783] usb 2-2.1: new high speed USB device using ehci-omap and address 3&lt;br /&gt;
&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
&lt;br /&gt;
[22396.309906] usb 2-2.1: New USB device found, idVendor=0424, idProduct=ec00&lt;br /&gt;
[22396.320922] usb 2-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[22396.336395] smsc95xx v1.0.4&lt;br /&gt;
[22396.401306] usb0: register 'smsc95xx' at usb-ehci-omap.0-2.1, smsc95xx USB 2.0 Ethernet, 9a:90:a2:eb:2d:7e&lt;br /&gt;
Please wait: booting...&lt;br /&gt;
Starting udev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-4, page 29, Hello World, Embedded Style ===&lt;br /&gt;
&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;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-5, page 29, Hello Output for Host Computer ===&lt;br /&gt;
&lt;br /&gt;
 beagle@embed11:~/exercises$ gcc helloWorld.c &lt;br /&gt;
 beagle@embed11:~/exercises$ ./a.out&lt;br /&gt;
 Hello, World! Main is executing at 0x400524&lt;br /&gt;
 This address (0x7fff1bfbafc8) is in our stack frame&lt;br /&gt;
 This address (0x601038) is in our bss section&lt;br /&gt;
 This address (0x601020) is in our data section&lt;br /&gt;
&lt;br /&gt;
=== 2-5, page 29, Hello Output for Beagle ===&lt;br /&gt;
&lt;br /&gt;
 root@beagleboard:~/exercises# gcc helloWorld.c &lt;br /&gt;
 root@beagleboard:~/exercises# ./a.out&lt;br /&gt;
 Hello, World! Main is executing at 0x8380&lt;br /&gt;
 This address (0xbeb4fc94) 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;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Listings_for_Chapter_2--Yifei</id>
		<title>ECE497 Listings for Chapter 2--Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Listings_for_Chapter_2--Yifei"/>
				<updated>2012-01-17T01:14:37Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
=== 2-1, page 15, Initial Bootloader Serial Output ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Texas Instruments X-Loader 1.5.0 (Mar 27 2011 - 17:37:56)&lt;br /&gt;
Beagle xM&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 2011.03-rc1-00000-g9a3cc57-dirty (Apr 01 2011 - 17:41:42)&lt;br /&gt;
&lt;br /&gt;
OMAP3630/3730-GP ES2.1, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  512 MiB&lt;br /&gt;
NAND:  0 MiB&lt;br /&gt;
MMC:   OMAP SD/MMC: 0&lt;br /&gt;
*** Warning - readenv() failed, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Beagle xM Rev C&lt;br /&gt;
Recognized Tincantools Trainer board (rev 0 0)&lt;br /&gt;
Die ID #397600029ff80000015f26ad0f01a010&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, page 16, Loading the Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
 OMAP3 beagleboard.org # '''boot'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The user button is currently NOT pressed.&lt;br /&gt;
SD/MMC found on device 0&lt;br /&gt;
reading uEnv.txt&lt;br /&gt;
&lt;br /&gt;
191 bytes read&lt;br /&gt;
Loaded environment from uEnv.txt&lt;br /&gt;
Importing environment from mmc ...&lt;br /&gt;
Running uenvcmd ...&lt;br /&gt;
Loading file &amp;quot;/boot/uImage&amp;quot; from mmc device 0:2 (xxa2)&lt;br /&gt;
3203088 bytes read&lt;br /&gt;
Booting from mmc ...&lt;br /&gt;
## Booting kernel from Legacy Image at 80200000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.32/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    3203024 Bytes = 3.1 MiB&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.32 (koen@dominion) (gcc version 4.3.3 (GCC) ) #3 PREEMPT Tue May 10 10:06:15 CEST 2011&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f&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] OMAP3630/DM3730 ES1.0 (l2cache iva sgx neon isp 192mhz_clk )&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 25165824 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 122624&lt;br /&gt;
[    0.000000] Kernel command line: console=tty0 console=ttyS2,115200n8 consoleblank=0 mpurate=auto buddy=trainer camera=lbcm3m1 vram=24M omapfb.mode=dvi:hd720 mem=99M@0x80000000 mem=384M@0x88000000 omapfb.vram=0:12M,1:8M,2:4M omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait&lt;br /&gt;
[    0.000000] Beagle expansionboard: trainer&lt;br /&gt;
[    0.000000] Beagle cameraboard: lbcm3m1&lt;br /&gt;
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Memory: 99MB 384MB = 483MB total&lt;br /&gt;
[    0.000000] Memory: 458496KB available (5900K code, 673K data, 204K init, 0K highmem)&lt;br /&gt;
[    0.000000] Hierarchical RCU implementation.&lt;br /&gt;
[    0.000000] NR_IRQS:402&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz&lt;br /&gt;
[    0.000000] Reprogramming SDRC clock to 332000000 Hz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP GPIO hardware version 2.5&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] console [tty0] enabled&lt;br /&gt;
[    0.000000] Calibrating delay loop... 513.62 BogoMIPS (lpj=2007040)&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] tmpfs: No value for mount option 'mode'&lt;br /&gt;
[    0.000000] devtmpfs: initialized&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] OMAP3 Beagle Rev: xM C&lt;br /&gt;
[    0.000000] Beagle cameraboard: registering i2c2 bus for lbcm3m1&lt;br /&gt;
[    0.000000] Beagle expansionboard: exporting GPIOs 130-141,162 to userspace&lt;br /&gt;
[    0.000000] Found NAND on CS0&lt;br /&gt;
[    0.000000] Registering NAND on CS0&lt;br /&gt;
[    0.000000] Unable to get DVI reset GPIO&lt;br /&gt;
[    0.000000] omap_init_mbox: platform not supported&lt;br /&gt;
[ 1551.363037] OMAP DMA hardware revision 5.0&lt;br /&gt;
[ 1551.369598] bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
[ 1551.370880] SCSI subsystem initialized&lt;br /&gt;
[ 1551.372283] usbcore: registered new interface driver usbfs&lt;br /&gt;
[ 1551.372467] usbcore: registered new interface driver hub&lt;br /&gt;
[ 1551.372680] usbcore: registered new device driver usb&lt;br /&gt;
[ 1551.373046] i2c_omap i2c_omap.1: bus 1 rev4.0 at 2600 kHz&lt;br /&gt;
[ 1551.375701] twl4030: PIH (irq 7) chaining IRQs 368..375&lt;br /&gt;
[ 1551.375762] twl4030: power (irq 373) chaining IRQs 376..383&lt;br /&gt;
[ 1551.376037] twl4030: gpio (irq 368) chaining IRQs 384..401&lt;br /&gt;
[ 1551.377807] regulator: VUSB1V5: 1500 mV normal standby&lt;br /&gt;
[ 1551.378112] regulator: VUSB1V8: 1800 mV normal standby&lt;br /&gt;
[ 1551.378356] regulator: VUSB3V1: 3100 mV normal standby&lt;br /&gt;
[ 1551.379638] twl4030_usb twl4030_usb: Initialized TWL4030 USB module&lt;br /&gt;
[ 1551.380096] regulator: VMMC1: 1850 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[ 1551.380340] regulator: VDAC: 1800 mV normal standby&lt;br /&gt;
[ 1551.380615] regulator: VPLL2: 1800 mV normal standby&lt;br /&gt;
[ 1551.380889] regulator: VSIM: 1800 &amp;lt;--&amp;gt; 3000 mV normal standby&lt;br /&gt;
[ 1551.381256] regulator: VAUX3: 1800 mV normal standby&lt;br /&gt;
[ 1551.381622] regulator: VAUX4: 1800 mV normal standby&lt;br /&gt;
[ 1551.381805] i2c_omap i2c_omap.2: bus 2 rev4.0 at 400 kHz&lt;br /&gt;
[ 1551.391357] i2c_omap i2c_omap.3: bus 3 rev4.0 at 100 kHz&lt;br /&gt;
[ 1551.392578] Switching to clocksource 32k_counter&lt;br /&gt;
[ 1551.401733] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0&lt;br /&gt;
[ 1551.405517] musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92&lt;br /&gt;
[ 1551.405578] musb_hdrc musb_hdrc: MUSB HDRC host driver&lt;br /&gt;
[ 1551.405700] musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1&lt;br /&gt;
[ 1551.405883] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
[ 1551.405914] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
[ 1551.405975] usb usb1: Product: MUSB HDRC host driver&lt;br /&gt;
[ 1551.406005] usb usb1: Manufacturer: Linux 2.6.32 musb-hcd&lt;br /&gt;
[ 1551.406036] usb usb1: SerialNumber: musb_hdrc&lt;br /&gt;
[ 1551.406677] hub 1-0:1.0: USB hub found&lt;br /&gt;
[ 1551.406738] hub 1-0:1.0: 1 port detected&lt;br /&gt;
[ 1551.407775] NET: Registered protocol family 2&lt;br /&gt;
[ 1551.408050] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)&lt;br /&gt;
[ 1551.408660] TCP established hash table entries: 16384 (order: 5, 131072 bytes)&lt;br /&gt;
[ 1551.409088] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[ 1551.409332] TCP: Hash tables configured (established 16384 bind 16384)&lt;br /&gt;
[ 1551.409362] TCP reno registered&lt;br /&gt;
[ 1551.409393] UDP hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
[ 1551.409454] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
[ 1551.409698] NET: Registered protocol family 1&lt;br /&gt;
[ 1551.410156] RPC: Registered udp transport module.&lt;br /&gt;
[ 1551.410217] RPC: Registered tcp transport module.&lt;br /&gt;
[ 1551.410247] RPC: Registered tcp NFSv4.1 backchannel transport module.&lt;br /&gt;
[ 1551.411132] omap-iommu omap-iommu.0: isp registered&lt;br /&gt;
[ 1551.412872] VFS: Disk quotas dquot_6.5.2&lt;br /&gt;
[ 1551.412994] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)&lt;br /&gt;
[ 1551.414093] squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
[ 1551.414916] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.&lt;br /&gt;
[ 1551.415771] msgmni has been set to 896&lt;br /&gt;
[ 1551.419555] alg: No test for stdrng (krng)&lt;br /&gt;
[ 1551.419860] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)&lt;br /&gt;
[ 1551.419921] io scheduler noop registered&lt;br /&gt;
[ 1551.419952] io scheduler deadline registered&lt;br /&gt;
[ 1551.420104] io scheduler cfq registered (default)&lt;br /&gt;
[ 1551.478790] OMAP DSS rev 2.0&lt;br /&gt;
[ 1551.478881] OMAP DISPC rev 3.0&lt;br /&gt;
[ 1551.478942] OMAP VENC rev 2&lt;br /&gt;
[ 1551.479187] OMAP DSI rev 1.0&lt;br /&gt;
[ 1551.815734] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled&lt;br /&gt;
[ 1551.834197] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654&lt;br /&gt;
[ 1551.851959] serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654&lt;br /&gt;
[ 1551.869659] serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654&lt;br /&gt;
[ 1552.456451] console [ttyS2] enabled&lt;br /&gt;
[ 1552.466857] brd: module loaded&lt;br /&gt;
[ 1552.473175] loop: module loaded&lt;br /&gt;
[ 1552.477752] omap2-nand driver initializing&lt;br /&gt;
[ 1552.482238] No NAND device found!!!&lt;br /&gt;
[ 1552.485900] No NAND device found!!!&lt;br /&gt;
[ 1552.490447] usbcore: registered new interface driver catc&lt;br /&gt;
[ 1552.495971] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver&lt;br /&gt;
[ 1552.502044] usbcore: registered new interface driver kaweth&lt;br /&gt;
[ 1552.507720] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver&lt;br /&gt;
[ 1552.515380] usbcore: registered new interface driver pegasus&lt;br /&gt;
[ 1552.521118] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver&lt;br /&gt;
[ 1552.528167] usbcore: registered new interface driver rtl8150&lt;br /&gt;
[ 1552.533966] usbcore: registered new interface driver asix&lt;br /&gt;
[ 1552.539489] usbcore: registered new interface driver cdc_ether&lt;br /&gt;
[ 1552.545501] usbcore: registered new interface driver dm9601&lt;br /&gt;
[ 1552.551269] usbcore: registered new interface driver smsc95xx&lt;br /&gt;
[ 1552.557159] usbcore: registered new interface driver gl620a&lt;br /&gt;
[ 1552.562866] usbcore: registered new interface driver net1080&lt;br /&gt;
[ 1552.568664] usbcore: registered new interface driver plusb&lt;br /&gt;
[ 1552.574310] usbcore: registered new interface driver rndis_host&lt;br /&gt;
[ 1552.580383] usbcore: registered new interface driver cdc_subset&lt;br /&gt;
[ 1552.586425] usbcore: registered new interface driver zaurus&lt;br /&gt;
[ 1552.592163] usbcore: registered new interface driver MOSCHIP usb-ethernet driver&lt;br /&gt;
[ 1552.600250] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver&lt;br /&gt;
[ 1552.607147] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller&lt;br /&gt;
[ 1552.613189] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2&lt;br /&gt;
[ 1552.620819] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800&lt;br /&gt;
[ 1552.634948] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00&lt;br /&gt;
[ 1552.640869] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
[ 1552.647766] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
[ 1552.655059] usb usb2: Product: OMAP-EHCI Host Controller&lt;br /&gt;
[ 1552.660461] usb usb2: Manufacturer: Linux 2.6.32 ehci_hcd&lt;br /&gt;
[ 1552.665924] usb usb2: SerialNumber: ehci-omap.0&lt;br /&gt;
[ 1552.671203] hub 2-0:1.0: USB hub found&lt;br /&gt;
[ 1552.675048] hub 2-0:1.0: 3 ports detected&lt;br /&gt;
[ 1552.705352] Initializing USB Mass Storage driver...&lt;br /&gt;
[ 1552.710449] usbcore: registered new interface driver usb-storage&lt;br /&gt;
[ 1552.716552] USB Mass Storage support registered.&lt;br /&gt;
[ 1552.721618] mice: PS/2 mouse device common for all mice&lt;br /&gt;
[ 1552.727294] input: gpio-keys as /devices/platform/gpio-keys/input/input0&lt;br /&gt;
[ 1552.735137] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-1/1-0049/twl4030_pwrbutton/input/input1&lt;br /&gt;
[ 1552.745910] i2c /dev entries driver&lt;br /&gt;
[ 1552.750030] Linux video capture interface: v2.00&lt;br /&gt;
[ 1552.755004] omap-iommu omap-iommu.0: isp: version 1.1&lt;br /&gt;
[ 1552.761749] vpfe_init&lt;br /&gt;
[ 1552.764648] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec&lt;br /&gt;
[ 1552.771423] cpuidle: using governor ladder&lt;br /&gt;
[ 1552.775634] cpuidle: using governor menu&lt;br /&gt;
[ 1552.885253] mmci-omap-hs mmci-omap-hs.1: err -16 configuring card detect&lt;br /&gt;
[ 1552.892333] Registered led device: beagleboard::usr0&lt;br /&gt;
[ 1552.897521] Registered led device: beagleboard::usr1&lt;br /&gt;
[ 1552.904022] Registered led device: beagleboard::pmu_stat&lt;br /&gt;
[ 1552.911041] usbcore: registered new interface driver usbhid&lt;br /&gt;
[ 1552.916717] usbhid: USB HID core driver&lt;br /&gt;
[ 1552.920745] Advanced Linux Sound Architecture Driver Version 1.0.21.&lt;br /&gt;
[ 1552.927703] usbcore: registered new interface driver snd-usb-audio&lt;br /&gt;
[ 1553.003601] usb 2-2: new high speed USB device using ehci-omap and address 2&lt;br /&gt;
[ 1553.011474] No device for DAI omap-mcbsp-dai-0&lt;br /&gt;
[ 1553.015960] No device for DAI omap-mcbsp-dai-1&lt;br /&gt;
[ 1553.020477] No device for DAI omap-mcbsp-dai-2&lt;br /&gt;
[ 1553.024963] No device for DAI omap-mcbsp-dai-3&lt;br /&gt;
[ 1553.029479] No device for DAI omap-mcbsp-dai-4&lt;br /&gt;
[ 1553.034027] OMAP3 Beagle SoC init&lt;br /&gt;
[ 1553.038177] asoc: twl4030 &amp;lt;-&amp;gt; omap-mcbsp-dai-0 mapping ok&lt;br /&gt;
[ 1553.049713] ALSA device list:&lt;br /&gt;
[ 1553.052734]   #0: omap3beagle (twl4030)&lt;br /&gt;
[ 1553.056732] oprofile: using arm/armv7&lt;br /&gt;
[ 1553.060699] TCP cubic registered&lt;br /&gt;
[ 1553.063964] NET: Registered protocol family 17&lt;br /&gt;
[ 1553.068572] NET: Registered protocol family 15&lt;br /&gt;
[ 1553.073181] lib80211: common routines for IEEE802.11 drivers&lt;br /&gt;
[ 1553.078918] ThumbEE CPU extension supported.&lt;br /&gt;
[ 1553.083282] Power Management for TI OMAP3.&lt;br /&gt;
[ 1553.088714] SmartReflex driver initialized&lt;br /&gt;
[ 1553.092987] omap3beaglelmb: Driver registration complete&lt;br /&gt;
[ 1553.106903] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3&lt;br /&gt;
[ 1553.115173] registered taskstats version 1&lt;br /&gt;
[ 1553.182495] usb 2-2: New USB device found, idVendor=0424, idProduct=9514&lt;br /&gt;
[ 1553.189300] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[ 1553.197296] hub 2-2:1.0: USB hub found&lt;br /&gt;
[ 1553.201385] hub 2-2:1.0: 5 ports detected&lt;br /&gt;
[ 1553.275512] mmc0: host does not support reading read-only switch. assuming write-enable.&lt;br /&gt;
[ 1553.283721] mmc0: new high speed SDHC card at address 1234&lt;br /&gt;
[ 1553.289611] mmcblk0: mmc0:1234 SA04G 3.67 GiB &lt;br /&gt;
[ 1553.307678] Console: switching to colour frame buffer device 160x45&lt;br /&gt;
[ 1553.327545]  mmcblk0: p1 p2&lt;br /&gt;
[ 1553.333892] regulator_init_complete: incomplete constraints, leaving VAUX4 on&lt;br /&gt;
[ 1553.341491] regulator_init_complete: incomplete constraints, leaving VAUX3 on&lt;br /&gt;
[ 1553.349334] regulator_init_complete: incomplete constraints, leaving VDAC on&lt;br /&gt;
[ 1553.357391] omap_vout omap_vout: probed for an unknown device&lt;br /&gt;
[ 1553.369812] EXT3-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is recommended&lt;br /&gt;
[ 1553.379333] kjournald starting.  Commit interval 5 seconds&lt;br /&gt;
[ 1553.392669] EXT3-fs (mmcblk0p2): using internal journal&lt;br /&gt;
[ 1553.398101] EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode&lt;br /&gt;
[ 1553.405456] VFS: Mounted root (ext3 filesystem) on device 179:2.&lt;br /&gt;
[ 1553.416168] devtmpfs: mounted&lt;br /&gt;
[ 1553.422851] Freeing init memory: 204K&lt;br /&gt;
[ 1553.533721] usb 2-2.1: new high speed USB device using ehci-omap and address 3&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
[ 1553.659179] usb 2-2.1: New USB device found, idVendor=0424, idProduct=ec00&lt;br /&gt;
[ 1553.670410] usb 2-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[ 1553.684997] smsc95xx v1.0.4&lt;br /&gt;
[ 1553.753906] usb0: register 'smsc95xx' at usb-ehci-omap.0-2.1, smsc95xx USB 2.0 Ethernet, 5a:6b:7e:83:01:7d&lt;br /&gt;
[ 1553.854095] usb 2-2.2: new high speed USB device using ehci-omap and address 4&lt;br /&gt;
Please wait: booting...&lt;br /&gt;
Starting udev&lt;br /&gt;
[ 1554.000518] usb 2-2.2: New USB device found, idVendor=0b95, idProduct=7720&lt;br /&gt;
[ 1554.012084] usb 2-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[ 1554.023956] usb 2-2.2: Product: AX88772 &lt;br /&gt;
[ 1554.032348] usb 2-2.2: Manufacturer: ASIX Elec. Corp.&lt;br /&gt;
[ 1554.042266] usb 2-2.2: SerialNumber: 000001&lt;br /&gt;
[ 1554.890899] eth0: register 'asix' at usb-ehci-omap.0-2.2, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c4:57&lt;br /&gt;
[ 1555.316528] twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0&lt;br /&gt;
[ 1555.752227] usb 2-2.3: new high speed USB device using ehci-omap and address 5&lt;br /&gt;
[ 1556.591064] usb 2-2.3: New USB device found, idVendor=1415, idProduct=2000&lt;br /&gt;
[ 1556.747467] usb 2-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[ 1556.782348] usb 2-2.3: Product: USB Camera-B4.04.27.1&lt;br /&gt;
[ 1556.792510] usb 2-2.3: Manufacturer: OmniVision Technologies, Inc.&lt;br /&gt;
[ 1556.891815] gspca: main v2.8.0 registered&lt;br /&gt;
[ 1556.912536] usb 2-2.4: new low speed USB device using ehci-omap and address 6&lt;br /&gt;
[ 1556.932342] gspca: probing 1415:2000&lt;br /&gt;
[ 1557.069854] usb 2-2.4: New USB device found, idVendor=046d, idProduct=c016&lt;br /&gt;
[ 1557.082977] usb 2-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[ 1557.095520] usb 2-2.4: Product: Optical USB Mouse&lt;br /&gt;
[ 1557.105316] usb 2-2.4: Manufacturer: Logitech&lt;br /&gt;
[ 1557.118957] ov534: Sensor ID: 7721&lt;br /&gt;
[ 1557.132659] input: Logitech Optical USB Mouse as /devices/platform/ehci-omap.0/usb2/2-2/2-2.4/2-2.4:1.0/input/input2&lt;br /&gt;
[ 1557.192199] generic-usb 0003:046D:C016.0001: input: USB HID v1.10 Mouse [Logitech Optical USB Mouse] on usb-ehci-omap.0-2.4/input0&lt;br /&gt;
[ 1557.240783] ov534: frame_rate: 30&lt;br /&gt;
[ 1557.262695] gspca: /dev/video0 created&lt;br /&gt;
[ 1557.304016] usbcore: registered new interface driver ov534&lt;br /&gt;
[ 1557.341369] ov534: registered&lt;br /&gt;
[ 1557.377960] usb 2-2.5: new low speed USB device using ehci-omap and address 7&lt;br /&gt;
[ 1557.578521] usb 2-2.5: New USB device found, idVendor=04f3, idProduct=0103&lt;br /&gt;
[ 1557.603027] usb 2-2.5: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[ 1557.634033] input: HID 04f3:0103 as /devices/platform/ehci-omap.0/usb2/2-2/2-2.5/2-2.5:1.0/input/input3&lt;br /&gt;
[ 1557.694244] generic-usb 0003:04F3:0103.0002: input: USB HID v1.10 Keyboard [HID 04f3:0103] on usb-ehci-omap.0-2.5/input0&lt;br /&gt;
[ 1557.749481] input: HID 04f3:0103 as /devices/platform/ehci-omap.0/usb2/2-2/2-2.5/2-2.5:1.1/input/input4&lt;br /&gt;
[ 1557.829162] generic-usb 0003:04F3:0103.0003: input: USB HID v1.10 Device [HID 04f3:0103] on usb-ehci-omap.0-2.5/input1&lt;br /&gt;
Remounting root file system...&lt;br /&gt;
Caching udev devnodes&lt;br /&gt;
Populating dev cache&lt;br /&gt;
[ 1572.894226] Bluetooth: Core ver 2.15&lt;br /&gt;
[ 1572.904296] NET: Registered protocol family 31&lt;br /&gt;
[ 1572.914123] Bluetooth: HCI device and connection manager initialized&lt;br /&gt;
[ 1572.925842] Bluetooth: HCI socket layer initialized&lt;br /&gt;
[ 1572.953735] Bluetooth: L2CAP ver 2.14&lt;br /&gt;
[ 1572.962768] Bluetooth: L2CAP socket layer initialized&lt;br /&gt;
[ 1572.991455] Bluetooth: HIDP (Human Interface Emulation) ver 1.2&lt;br /&gt;
[ 1573.115783] NET: Registered protocol family 10&lt;br /&gt;
[ 1573.192199] NET: Registered protocol family 23&lt;br /&gt;
[ 1573.221649] IrCOMM protocol (Dag Brattli)&lt;br /&gt;
[ 1573.332153] Bluetooth: RFCOMM TTY layer initialized&lt;br /&gt;
[ 1573.342224] Bluetooth: RFCOMM socket layer initialized&lt;br /&gt;
[ 1573.352325] Bluetooth: RFCOMM ver 1.11&lt;br /&gt;
ALSA: Restoring mixer settings...&lt;br /&gt;
Cleaning: /etc/network/run/ifstate.&lt;br /&gt;
No state is present for card CameraB404271&lt;br /&gt;
/usr/sbin/alsactl: parse:1655: Unable to open file '/usr/share/alsa/init/00main': No such file or directory&lt;br /&gt;
No state is present for card CameraB404271&lt;br /&gt;
Configuring network interfaces... [ 1575.066680] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
eth0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
[ 1575.290283] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/eth0/00:50:b6:06:c4:57&lt;br /&gt;
Sending on   LPF/eth0/00:50:b6:06:c4:57&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPREQUEST on eth0 to 255.255.255.255 port 67&lt;br /&gt;
DHCPACK from 137.112.41.2&lt;br /&gt;
bound to 137.112.41.87 -- renewal in 1567 seconds.&lt;br /&gt;
usb0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/usb0/22:b8:c4:7d:a8:50&lt;br /&gt;
Sending on   LPF/usb0/22:b8:c4:7d:a8:50&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPREQUEST on usb0 to 255.255.255.255 port 67&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 5&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 14&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 16&lt;br /&gt;
[ 1614.207458] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 9&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 11&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 6&lt;br /&gt;
No DHCPOFFERS received.&lt;br /&gt;
No working leases in persistent database - sleeping.&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
INIT: Entering runlevel: 5&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::pmu_stat: none&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 Samba: smbd nmbd.&lt;br /&gt;
Starting syslog-ng:.&lt;br /&gt;
Starting internet superserver: xinetd.&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Network connection manager daemon: NetworkManager.&lt;br /&gt;
Starting PVR&lt;br /&gt;
cups: started scheduler.&lt;br /&gt;
Starting GNOME Display Manager gdm&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 2010.7-test-20110220 beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
Last login: Thu Dec 29 17:12:23 GMT 2011 from 137.112.41.109 on pts/0&lt;br /&gt;
root@beagleboard:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-X, page X, Shutdown messages ===&lt;br /&gt;
&lt;br /&gt;
 root@beagleboard:~# '''shutdown -r now'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
�Broadcast message from root (ttyS2) (Thu Dec 29 16:02:35 2011):&lt;br /&gt;
&lt;br /&gt;
The system is going down for reboot NOW!&lt;br /&gt;
INIT: INIT: Sending processes the TERM signal&lt;br /&gt;
Deconfiguring leds:&lt;br /&gt;
  beagleboard::pmu_stat: no trigger&lt;br /&gt;
  beagleboard::usr0: no trigger&lt;br /&gt;
  beagleboard::usr1: no trigger&lt;br /&gt;
Stopping Dropbear SSH server: dropbear.&lt;br /&gt;
 * Stopping Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Stopping advanced power management daemon: No /usr/sbin/apmd found running; none killed.&lt;br /&gt;
apmd.&lt;br /&gt;
Stopping Vixie-cron.&lt;br /&gt;
Stopping Hardware abstraction layer hald&lt;br /&gt;
Stopping system message bus: dbus.&lt;br /&gt;
Stopping GNOME Display Manager gdm&lt;br /&gt;
Stopping Samba: smbd nmbd.&lt;br /&gt;
Stopping internet superserver: xinetd.&lt;br /&gt;
Stopping Network connection manager daemon: NetworkManager.&lt;br /&gt;
ALSA: Storing mixer settings...&lt;br /&gt;
/usr/sbin/alsactl: get_control:259: Cannot read control '2,0,0,Mic Capture Volume,0': Invalid argument&lt;br /&gt;
Deconfiguring network interfaces... Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/usb0/92:93:b0:18:e8:b6&lt;br /&gt;
Sending on   LPF/usb0/92:93:b0:18:e8:b6&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPRELEASE on usb0 to 192.168.1.1 port 67&lt;br /&gt;
send_packet: Network is unreachable&lt;br /&gt;
send_packet: please consult README file regarding broadcast address.&lt;br /&gt;
done.&lt;br /&gt;
Stopping PVR&lt;br /&gt;
Stopping syslog-ng:.&lt;br /&gt;
Sending all processes the TERM signal...&lt;br /&gt;
Sending all processes the KILL signal...&lt;br /&gt;
hwclock: can't open '/dev/misc/rtc': No such file or directory&lt;br /&gt;
Unmounting remote filesystems...&lt;br /&gt;
Stopping portmap daemon: portmap.&lt;br /&gt;
Deactivating swap...&lt;br /&gt;
Unmounting local filesystems...&lt;br /&gt;
Rebooting... [67884.488464] Restarting system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-X, page X, ifconfig ===&lt;br /&gt;
 root@beagleboard:~# '''ifconfig'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# ifconfig&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 00:50:B6:0A:21:18  &lt;br /&gt;
          inet addr:137.112.101.235  Bcast:137.112.101.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::250:b6ff:fe0a:2118/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:268 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:96 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000 &lt;br /&gt;
          RX bytes:19429 (18.9 KiB)  TX bytes:15858 (15.4 KiB)&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback  &lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0 &lt;br /&gt;
          RX bytes:592 (592.0 b)  TX bytes:592 (592.0 b)&lt;br /&gt;
&lt;br /&gt;
usb0      Link encap:Ethernet  HWaddr 5A:3D:7F:FE:EE:BA  &lt;br /&gt;
          inet6 addr: fe80::583d:7fff:fefe:eeba/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:51 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000 &lt;br /&gt;
          RX bytes:0 (0.0 b)  TX bytes:10614 (10.3 KiB)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-3, page 18, Linux Final Boot Messages ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[67895.991638] usb 2-2.2: device descriptor read/64, error 18&lt;br /&gt;
[67896.002227] devtmpfs: mounted&lt;br /&gt;
[67896.009552] Freeing init memory: 204K&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
[67896.202636] usb 2-2.2: device descriptor read/64, error 18&lt;br /&gt;
Please wait: booting...&lt;br /&gt;
Starting udev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-4, page 29, Hello World, Embedded Style ===&lt;br /&gt;
&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;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-5, page 29, Hello Output for Host Computer ===&lt;br /&gt;
&lt;br /&gt;
 beagle@embed11:~/exercises$ gcc helloWorld.c &lt;br /&gt;
 beagle@embed11:~/exercises$ ./a.out&lt;br /&gt;
 Hello, World! Main is executing at 0x400524&lt;br /&gt;
 This address (0x7fff1bfbafc8) is in our stack frame&lt;br /&gt;
 This address (0x601038) is in our bss section&lt;br /&gt;
 This address (0x601020) is in our data section&lt;br /&gt;
&lt;br /&gt;
=== 2-5, page 29, Hello Output for Beagle ===&lt;br /&gt;
&lt;br /&gt;
 root@beagleboard:~/exercises# gcc helloWorld.c &lt;br /&gt;
 root@beagleboard:~/exercises# ./a.out&lt;br /&gt;
 Hello, World! Main is executing at 0x8380&lt;br /&gt;
 This address (0xbeb4fc94) 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;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Listings_for_Chapter_2--Yifei</id>
		<title>ECE497 Listings for Chapter 2--Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Listings_for_Chapter_2--Yifei"/>
				<updated>2012-01-17T00:57:29Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: /* 2-5, page 29, Hello Output for Beagle */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497old]]&lt;br /&gt;
&lt;br /&gt;
=== 2-1, page 15, Initial Bootloader Serial Output ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Texas Instruments X-Loader 1.5.0 (Mar 27 2011 - 17:37:56)&lt;br /&gt;
Beagle xM&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 2011.03-rc1-00000-g9a3cc57-dirty (Apr 01 2011 - 17:41:42)&lt;br /&gt;
&lt;br /&gt;
OMAP3630/3730-GP ES2.1, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  512 MiB&lt;br /&gt;
NAND:  0 MiB&lt;br /&gt;
MMC:   OMAP SD/MMC: 0&lt;br /&gt;
*** Warning - readenv() failed, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Beagle xM Rev C&lt;br /&gt;
Recognized Tincantools Trainer board (rev 0 0)&lt;br /&gt;
Die ID #397600029ff80000015f26ad0f01a010&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, page 16, Loading the Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
 OMAP3 beagleboard.org # '''boot'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The user button is currently NOT pressed.&lt;br /&gt;
SD/MMC found on device 0&lt;br /&gt;
reading uEnv.txt&lt;br /&gt;
&lt;br /&gt;
191 bytes read&lt;br /&gt;
Loaded environment from uEnv.txt&lt;br /&gt;
Importing environment from mmc ...&lt;br /&gt;
Running uenvcmd ...&lt;br /&gt;
Loading file &amp;quot;/boot/uImage&amp;quot; from mmc device 0:2 (xxa2)&lt;br /&gt;
3203088 bytes read&lt;br /&gt;
Booting from mmc ...&lt;br /&gt;
## Booting kernel from Legacy Image at 80200000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.32/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    3203024 Bytes = 3.1 MiB&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.32 (koen@dominion) (gcc version 4.3.3 (GCC) ) #3 PREEMPT Tue May 10 10:06:15 CEST 2011&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f&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] OMAP3630/DM3730 ES1.0 (l2cache iva sgx neon isp 192mhz_clk )&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 25165824 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 122624&lt;br /&gt;
[    0.000000] Kernel command line: console=tty0 console=ttyS2,115200n8 consoleblank=0 mpurate=auto buddy=trainer camera=lbcm3m1 vram=24M omapfb.mode=dvi:hd720 mem=99M@0x80000000 mem=384M@0x88000000 omapfb.vram=0:12M,1:8M,2:4M omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait&lt;br /&gt;
[    0.000000] Beagle expansionboard: trainer&lt;br /&gt;
[    0.000000] Beagle cameraboard: lbcm3m1&lt;br /&gt;
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Memory: 99MB 384MB = 483MB total&lt;br /&gt;
[    0.000000] Memory: 458496KB available (5900K code, 673K data, 204K init, 0K highmem)&lt;br /&gt;
[    0.000000] Hierarchical RCU implementation.&lt;br /&gt;
[    0.000000] NR_IRQS:402&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz&lt;br /&gt;
[    0.000000] Reprogramming SDRC clock to 332000000 Hz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP GPIO hardware version 2.5&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] console [tty0] enabled&lt;br /&gt;
[    0.000000] Calibrating delay loop... 513.62 BogoMIPS (lpj=2007040)&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] tmpfs: No value for mount option 'mode'&lt;br /&gt;
[    0.000000] devtmpfs: initialized&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] OMAP3 Beagle Rev: xM C&lt;br /&gt;
[    0.000000] Beagle cameraboard: registering i2c2 bus for lbcm3m1&lt;br /&gt;
[    0.000000] Beagle expansionboard: exporting GPIOs 130-141,162 to userspace&lt;br /&gt;
[    0.000000] Found NAND on CS0&lt;br /&gt;
[    0.000000] Registering NAND on CS0&lt;br /&gt;
[    0.000000] Unable to get DVI reset GPIO&lt;br /&gt;
[    0.000000] omap_init_mbox: platform not supported&lt;br /&gt;
[ 1551.363037] OMAP DMA hardware revision 5.0&lt;br /&gt;
[ 1551.369598] bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
[ 1551.370880] SCSI subsystem initialized&lt;br /&gt;
[ 1551.372283] usbcore: registered new interface driver usbfs&lt;br /&gt;
[ 1551.372467] usbcore: registered new interface driver hub&lt;br /&gt;
[ 1551.372680] usbcore: registered new device driver usb&lt;br /&gt;
[ 1551.373046] i2c_omap i2c_omap.1: bus 1 rev4.0 at 2600 kHz&lt;br /&gt;
[ 1551.375701] twl4030: PIH (irq 7) chaining IRQs 368..375&lt;br /&gt;
[ 1551.375762] twl4030: power (irq 373) chaining IRQs 376..383&lt;br /&gt;
[ 1551.376037] twl4030: gpio (irq 368) chaining IRQs 384..401&lt;br /&gt;
[ 1551.377807] regulator: VUSB1V5: 1500 mV normal standby&lt;br /&gt;
[ 1551.378112] regulator: VUSB1V8: 1800 mV normal standby&lt;br /&gt;
[ 1551.378356] regulator: VUSB3V1: 3100 mV normal standby&lt;br /&gt;
[ 1551.379638] twl4030_usb twl4030_usb: Initialized TWL4030 USB module&lt;br /&gt;
[ 1551.380096] regulator: VMMC1: 1850 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[ 1551.380340] regulator: VDAC: 1800 mV normal standby&lt;br /&gt;
[ 1551.380615] regulator: VPLL2: 1800 mV normal standby&lt;br /&gt;
[ 1551.380889] regulator: VSIM: 1800 &amp;lt;--&amp;gt; 3000 mV normal standby&lt;br /&gt;
[ 1551.381256] regulator: VAUX3: 1800 mV normal standby&lt;br /&gt;
[ 1551.381622] regulator: VAUX4: 1800 mV normal standby&lt;br /&gt;
[ 1551.381805] i2c_omap i2c_omap.2: bus 2 rev4.0 at 400 kHz&lt;br /&gt;
[ 1551.391357] i2c_omap i2c_omap.3: bus 3 rev4.0 at 100 kHz&lt;br /&gt;
[ 1551.392578] Switching to clocksource 32k_counter&lt;br /&gt;
[ 1551.401733] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0&lt;br /&gt;
[ 1551.405517] musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92&lt;br /&gt;
[ 1551.405578] musb_hdrc musb_hdrc: MUSB HDRC host driver&lt;br /&gt;
[ 1551.405700] musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1&lt;br /&gt;
[ 1551.405883] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
[ 1551.405914] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
[ 1551.405975] usb usb1: Product: MUSB HDRC host driver&lt;br /&gt;
[ 1551.406005] usb usb1: Manufacturer: Linux 2.6.32 musb-hcd&lt;br /&gt;
[ 1551.406036] usb usb1: SerialNumber: musb_hdrc&lt;br /&gt;
[ 1551.406677] hub 1-0:1.0: USB hub found&lt;br /&gt;
[ 1551.406738] hub 1-0:1.0: 1 port detected&lt;br /&gt;
[ 1551.407775] NET: Registered protocol family 2&lt;br /&gt;
[ 1551.408050] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)&lt;br /&gt;
[ 1551.408660] TCP established hash table entries: 16384 (order: 5, 131072 bytes)&lt;br /&gt;
[ 1551.409088] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[ 1551.409332] TCP: Hash tables configured (established 16384 bind 16384)&lt;br /&gt;
[ 1551.409362] TCP reno registered&lt;br /&gt;
[ 1551.409393] UDP hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
[ 1551.409454] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
[ 1551.409698] NET: Registered protocol family 1&lt;br /&gt;
[ 1551.410156] RPC: Registered udp transport module.&lt;br /&gt;
[ 1551.410217] RPC: Registered tcp transport module.&lt;br /&gt;
[ 1551.410247] RPC: Registered tcp NFSv4.1 backchannel transport module.&lt;br /&gt;
[ 1551.411132] omap-iommu omap-iommu.0: isp registered&lt;br /&gt;
[ 1551.412872] VFS: Disk quotas dquot_6.5.2&lt;br /&gt;
[ 1551.412994] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)&lt;br /&gt;
[ 1551.414093] squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
[ 1551.414916] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.&lt;br /&gt;
[ 1551.415771] msgmni has been set to 896&lt;br /&gt;
[ 1551.419555] alg: No test for stdrng (krng)&lt;br /&gt;
[ 1551.419860] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)&lt;br /&gt;
[ 1551.419921] io scheduler noop registered&lt;br /&gt;
[ 1551.419952] io scheduler deadline registered&lt;br /&gt;
[ 1551.420104] io scheduler cfq registered (default)&lt;br /&gt;
[ 1551.478790] OMAP DSS rev 2.0&lt;br /&gt;
[ 1551.478881] OMAP DISPC rev 3.0&lt;br /&gt;
[ 1551.478942] OMAP VENC rev 2&lt;br /&gt;
[ 1551.479187] OMAP DSI rev 1.0&lt;br /&gt;
[ 1551.815734] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled&lt;br /&gt;
[ 1551.834197] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654&lt;br /&gt;
[ 1551.851959] serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654&lt;br /&gt;
[ 1551.869659] serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654&lt;br /&gt;
[ 1552.456451] console [ttyS2] enabled&lt;br /&gt;
[ 1552.466857] brd: module loaded&lt;br /&gt;
[ 1552.473175] loop: module loaded&lt;br /&gt;
[ 1552.477752] omap2-nand driver initializing&lt;br /&gt;
[ 1552.482238] No NAND device found!!!&lt;br /&gt;
[ 1552.485900] No NAND device found!!!&lt;br /&gt;
[ 1552.490447] usbcore: registered new interface driver catc&lt;br /&gt;
[ 1552.495971] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver&lt;br /&gt;
[ 1552.502044] usbcore: registered new interface driver kaweth&lt;br /&gt;
[ 1552.507720] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver&lt;br /&gt;
[ 1552.515380] usbcore: registered new interface driver pegasus&lt;br /&gt;
[ 1552.521118] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver&lt;br /&gt;
[ 1552.528167] usbcore: registered new interface driver rtl8150&lt;br /&gt;
[ 1552.533966] usbcore: registered new interface driver asix&lt;br /&gt;
[ 1552.539489] usbcore: registered new interface driver cdc_ether&lt;br /&gt;
[ 1552.545501] usbcore: registered new interface driver dm9601&lt;br /&gt;
[ 1552.551269] usbcore: registered new interface driver smsc95xx&lt;br /&gt;
[ 1552.557159] usbcore: registered new interface driver gl620a&lt;br /&gt;
[ 1552.562866] usbcore: registered new interface driver net1080&lt;br /&gt;
[ 1552.568664] usbcore: registered new interface driver plusb&lt;br /&gt;
[ 1552.574310] usbcore: registered new interface driver rndis_host&lt;br /&gt;
[ 1552.580383] usbcore: registered new interface driver cdc_subset&lt;br /&gt;
[ 1552.586425] usbcore: registered new interface driver zaurus&lt;br /&gt;
[ 1552.592163] usbcore: registered new interface driver MOSCHIP usb-ethernet driver&lt;br /&gt;
[ 1552.600250] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver&lt;br /&gt;
[ 1552.607147] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller&lt;br /&gt;
[ 1552.613189] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2&lt;br /&gt;
[ 1552.620819] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800&lt;br /&gt;
[ 1552.634948] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00&lt;br /&gt;
[ 1552.640869] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
[ 1552.647766] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
[ 1552.655059] usb usb2: Product: OMAP-EHCI Host Controller&lt;br /&gt;
[ 1552.660461] usb usb2: Manufacturer: Linux 2.6.32 ehci_hcd&lt;br /&gt;
[ 1552.665924] usb usb2: SerialNumber: ehci-omap.0&lt;br /&gt;
[ 1552.671203] hub 2-0:1.0: USB hub found&lt;br /&gt;
[ 1552.675048] hub 2-0:1.0: 3 ports detected&lt;br /&gt;
[ 1552.705352] Initializing USB Mass Storage driver...&lt;br /&gt;
[ 1552.710449] usbcore: registered new interface driver usb-storage&lt;br /&gt;
[ 1552.716552] USB Mass Storage support registered.&lt;br /&gt;
[ 1552.721618] mice: PS/2 mouse device common for all mice&lt;br /&gt;
[ 1552.727294] input: gpio-keys as /devices/platform/gpio-keys/input/input0&lt;br /&gt;
[ 1552.735137] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-1/1-0049/twl4030_pwrbutton/input/input1&lt;br /&gt;
[ 1552.745910] i2c /dev entries driver&lt;br /&gt;
[ 1552.750030] Linux video capture interface: v2.00&lt;br /&gt;
[ 1552.755004] omap-iommu omap-iommu.0: isp: version 1.1&lt;br /&gt;
[ 1552.761749] vpfe_init&lt;br /&gt;
[ 1552.764648] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec&lt;br /&gt;
[ 1552.771423] cpuidle: using governor ladder&lt;br /&gt;
[ 1552.775634] cpuidle: using governor menu&lt;br /&gt;
[ 1552.885253] mmci-omap-hs mmci-omap-hs.1: err -16 configuring card detect&lt;br /&gt;
[ 1552.892333] Registered led device: beagleboard::usr0&lt;br /&gt;
[ 1552.897521] Registered led device: beagleboard::usr1&lt;br /&gt;
[ 1552.904022] Registered led device: beagleboard::pmu_stat&lt;br /&gt;
[ 1552.911041] usbcore: registered new interface driver usbhid&lt;br /&gt;
[ 1552.916717] usbhid: USB HID core driver&lt;br /&gt;
[ 1552.920745] Advanced Linux Sound Architecture Driver Version 1.0.21.&lt;br /&gt;
[ 1552.927703] usbcore: registered new interface driver snd-usb-audio&lt;br /&gt;
[ 1553.003601] usb 2-2: new high speed USB device using ehci-omap and address 2&lt;br /&gt;
[ 1553.011474] No device for DAI omap-mcbsp-dai-0&lt;br /&gt;
[ 1553.015960] No device for DAI omap-mcbsp-dai-1&lt;br /&gt;
[ 1553.020477] No device for DAI omap-mcbsp-dai-2&lt;br /&gt;
[ 1553.024963] No device for DAI omap-mcbsp-dai-3&lt;br /&gt;
[ 1553.029479] No device for DAI omap-mcbsp-dai-4&lt;br /&gt;
[ 1553.034027] OMAP3 Beagle SoC init&lt;br /&gt;
[ 1553.038177] asoc: twl4030 &amp;lt;-&amp;gt; omap-mcbsp-dai-0 mapping ok&lt;br /&gt;
[ 1553.049713] ALSA device list:&lt;br /&gt;
[ 1553.052734]   #0: omap3beagle (twl4030)&lt;br /&gt;
[ 1553.056732] oprofile: using arm/armv7&lt;br /&gt;
[ 1553.060699] TCP cubic registered&lt;br /&gt;
[ 1553.063964] NET: Registered protocol family 17&lt;br /&gt;
[ 1553.068572] NET: Registered protocol family 15&lt;br /&gt;
[ 1553.073181] lib80211: common routines for IEEE802.11 drivers&lt;br /&gt;
[ 1553.078918] ThumbEE CPU extension supported.&lt;br /&gt;
[ 1553.083282] Power Management for TI OMAP3.&lt;br /&gt;
[ 1553.088714] SmartReflex driver initialized&lt;br /&gt;
[ 1553.092987] omap3beaglelmb: Driver registration complete&lt;br /&gt;
[ 1553.106903] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3&lt;br /&gt;
[ 1553.115173] registered taskstats version 1&lt;br /&gt;
[ 1553.182495] usb 2-2: New USB device found, idVendor=0424, idProduct=9514&lt;br /&gt;
[ 1553.189300] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[ 1553.197296] hub 2-2:1.0: USB hub found&lt;br /&gt;
[ 1553.201385] hub 2-2:1.0: 5 ports detected&lt;br /&gt;
[ 1553.275512] mmc0: host does not support reading read-only switch. assuming write-enable.&lt;br /&gt;
[ 1553.283721] mmc0: new high speed SDHC card at address 1234&lt;br /&gt;
[ 1553.289611] mmcblk0: mmc0:1234 SA04G 3.67 GiB &lt;br /&gt;
[ 1553.307678] Console: switching to colour frame buffer device 160x45&lt;br /&gt;
[ 1553.327545]  mmcblk0: p1 p2&lt;br /&gt;
[ 1553.333892] regulator_init_complete: incomplete constraints, leaving VAUX4 on&lt;br /&gt;
[ 1553.341491] regulator_init_complete: incomplete constraints, leaving VAUX3 on&lt;br /&gt;
[ 1553.349334] regulator_init_complete: incomplete constraints, leaving VDAC on&lt;br /&gt;
[ 1553.357391] omap_vout omap_vout: probed for an unknown device&lt;br /&gt;
[ 1553.369812] EXT3-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is recommended&lt;br /&gt;
[ 1553.379333] kjournald starting.  Commit interval 5 seconds&lt;br /&gt;
[ 1553.392669] EXT3-fs (mmcblk0p2): using internal journal&lt;br /&gt;
[ 1553.398101] EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode&lt;br /&gt;
[ 1553.405456] VFS: Mounted root (ext3 filesystem) on device 179:2.&lt;br /&gt;
[ 1553.416168] devtmpfs: mounted&lt;br /&gt;
[ 1553.422851] Freeing init memory: 204K&lt;br /&gt;
[ 1553.533721] usb 2-2.1: new high speed USB device using ehci-omap and address 3&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
[ 1553.659179] usb 2-2.1: New USB device found, idVendor=0424, idProduct=ec00&lt;br /&gt;
[ 1553.670410] usb 2-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[ 1553.684997] smsc95xx v1.0.4&lt;br /&gt;
[ 1553.753906] usb0: register 'smsc95xx' at usb-ehci-omap.0-2.1, smsc95xx USB 2.0 Ethernet, 5a:6b:7e:83:01:7d&lt;br /&gt;
[ 1553.854095] usb 2-2.2: new high speed USB device using ehci-omap and address 4&lt;br /&gt;
Please wait: booting...&lt;br /&gt;
Starting udev&lt;br /&gt;
[ 1554.000518] usb 2-2.2: New USB device found, idVendor=0b95, idProduct=7720&lt;br /&gt;
[ 1554.012084] usb 2-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[ 1554.023956] usb 2-2.2: Product: AX88772 &lt;br /&gt;
[ 1554.032348] usb 2-2.2: Manufacturer: ASIX Elec. Corp.&lt;br /&gt;
[ 1554.042266] usb 2-2.2: SerialNumber: 000001&lt;br /&gt;
[ 1554.890899] eth0: register 'asix' at usb-ehci-omap.0-2.2, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c4:57&lt;br /&gt;
[ 1555.316528] twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0&lt;br /&gt;
[ 1555.752227] usb 2-2.3: new high speed USB device using ehci-omap and address 5&lt;br /&gt;
[ 1556.591064] usb 2-2.3: New USB device found, idVendor=1415, idProduct=2000&lt;br /&gt;
[ 1556.747467] usb 2-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[ 1556.782348] usb 2-2.3: Product: USB Camera-B4.04.27.1&lt;br /&gt;
[ 1556.792510] usb 2-2.3: Manufacturer: OmniVision Technologies, Inc.&lt;br /&gt;
[ 1556.891815] gspca: main v2.8.0 registered&lt;br /&gt;
[ 1556.912536] usb 2-2.4: new low speed USB device using ehci-omap and address 6&lt;br /&gt;
[ 1556.932342] gspca: probing 1415:2000&lt;br /&gt;
[ 1557.069854] usb 2-2.4: New USB device found, idVendor=046d, idProduct=c016&lt;br /&gt;
[ 1557.082977] usb 2-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[ 1557.095520] usb 2-2.4: Product: Optical USB Mouse&lt;br /&gt;
[ 1557.105316] usb 2-2.4: Manufacturer: Logitech&lt;br /&gt;
[ 1557.118957] ov534: Sensor ID: 7721&lt;br /&gt;
[ 1557.132659] input: Logitech Optical USB Mouse as /devices/platform/ehci-omap.0/usb2/2-2/2-2.4/2-2.4:1.0/input/input2&lt;br /&gt;
[ 1557.192199] generic-usb 0003:046D:C016.0001: input: USB HID v1.10 Mouse [Logitech Optical USB Mouse] on usb-ehci-omap.0-2.4/input0&lt;br /&gt;
[ 1557.240783] ov534: frame_rate: 30&lt;br /&gt;
[ 1557.262695] gspca: /dev/video0 created&lt;br /&gt;
[ 1557.304016] usbcore: registered new interface driver ov534&lt;br /&gt;
[ 1557.341369] ov534: registered&lt;br /&gt;
[ 1557.377960] usb 2-2.5: new low speed USB device using ehci-omap and address 7&lt;br /&gt;
[ 1557.578521] usb 2-2.5: New USB device found, idVendor=04f3, idProduct=0103&lt;br /&gt;
[ 1557.603027] usb 2-2.5: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[ 1557.634033] input: HID 04f3:0103 as /devices/platform/ehci-omap.0/usb2/2-2/2-2.5/2-2.5:1.0/input/input3&lt;br /&gt;
[ 1557.694244] generic-usb 0003:04F3:0103.0002: input: USB HID v1.10 Keyboard [HID 04f3:0103] on usb-ehci-omap.0-2.5/input0&lt;br /&gt;
[ 1557.749481] input: HID 04f3:0103 as /devices/platform/ehci-omap.0/usb2/2-2/2-2.5/2-2.5:1.1/input/input4&lt;br /&gt;
[ 1557.829162] generic-usb 0003:04F3:0103.0003: input: USB HID v1.10 Device [HID 04f3:0103] on usb-ehci-omap.0-2.5/input1&lt;br /&gt;
Remounting root file system...&lt;br /&gt;
Caching udev devnodes&lt;br /&gt;
Populating dev cache&lt;br /&gt;
[ 1572.894226] Bluetooth: Core ver 2.15&lt;br /&gt;
[ 1572.904296] NET: Registered protocol family 31&lt;br /&gt;
[ 1572.914123] Bluetooth: HCI device and connection manager initialized&lt;br /&gt;
[ 1572.925842] Bluetooth: HCI socket layer initialized&lt;br /&gt;
[ 1572.953735] Bluetooth: L2CAP ver 2.14&lt;br /&gt;
[ 1572.962768] Bluetooth: L2CAP socket layer initialized&lt;br /&gt;
[ 1572.991455] Bluetooth: HIDP (Human Interface Emulation) ver 1.2&lt;br /&gt;
[ 1573.115783] NET: Registered protocol family 10&lt;br /&gt;
[ 1573.192199] NET: Registered protocol family 23&lt;br /&gt;
[ 1573.221649] IrCOMM protocol (Dag Brattli)&lt;br /&gt;
[ 1573.332153] Bluetooth: RFCOMM TTY layer initialized&lt;br /&gt;
[ 1573.342224] Bluetooth: RFCOMM socket layer initialized&lt;br /&gt;
[ 1573.352325] Bluetooth: RFCOMM ver 1.11&lt;br /&gt;
ALSA: Restoring mixer settings...&lt;br /&gt;
Cleaning: /etc/network/run/ifstate.&lt;br /&gt;
No state is present for card CameraB404271&lt;br /&gt;
/usr/sbin/alsactl: parse:1655: Unable to open file '/usr/share/alsa/init/00main': No such file or directory&lt;br /&gt;
No state is present for card CameraB404271&lt;br /&gt;
Configuring network interfaces... [ 1575.066680] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
eth0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
[ 1575.290283] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/eth0/00:50:b6:06:c4:57&lt;br /&gt;
Sending on   LPF/eth0/00:50:b6:06:c4:57&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPREQUEST on eth0 to 255.255.255.255 port 67&lt;br /&gt;
DHCPACK from 137.112.41.2&lt;br /&gt;
bound to 137.112.41.87 -- renewal in 1567 seconds.&lt;br /&gt;
usb0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/usb0/22:b8:c4:7d:a8:50&lt;br /&gt;
Sending on   LPF/usb0/22:b8:c4:7d:a8:50&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPREQUEST on usb0 to 255.255.255.255 port 67&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 5&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 14&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 16&lt;br /&gt;
[ 1614.207458] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 9&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 11&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 6&lt;br /&gt;
No DHCPOFFERS received.&lt;br /&gt;
No working leases in persistent database - sleeping.&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
INIT: Entering runlevel: 5&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::pmu_stat: none&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 Samba: smbd nmbd.&lt;br /&gt;
Starting syslog-ng:.&lt;br /&gt;
Starting internet superserver: xinetd.&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Network connection manager daemon: NetworkManager.&lt;br /&gt;
Starting PVR&lt;br /&gt;
cups: started scheduler.&lt;br /&gt;
Starting GNOME Display Manager gdm&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 2010.7-test-20110220 beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
Last login: Thu Dec 29 17:12:23 GMT 2011 from 137.112.41.109 on pts/0&lt;br /&gt;
root@beagleboard:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-X, page X, Shutdown messages ===&lt;br /&gt;
&lt;br /&gt;
 root@beagleboard:~# '''shutdown -r now'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
�Broadcast message from root (ttyS2) (Thu Dec 29 16:02:35 2011):&lt;br /&gt;
&lt;br /&gt;
The system is going down for reboot NOW!&lt;br /&gt;
INIT: INIT: Sending processes the TERM signal&lt;br /&gt;
Deconfiguring leds:&lt;br /&gt;
  beagleboard::pmu_stat: no trigger&lt;br /&gt;
  beagleboard::usr0: no trigger&lt;br /&gt;
  beagleboard::usr1: no trigger&lt;br /&gt;
Stopping Dropbear SSH server: dropbear.&lt;br /&gt;
 * Stopping Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Stopping advanced power management daemon: No /usr/sbin/apmd found running; none killed.&lt;br /&gt;
apmd.&lt;br /&gt;
Stopping Vixie-cron.&lt;br /&gt;
Stopping Hardware abstraction layer hald&lt;br /&gt;
Stopping system message bus: dbus.&lt;br /&gt;
Stopping GNOME Display Manager gdm&lt;br /&gt;
Stopping Samba: smbd nmbd.&lt;br /&gt;
Stopping internet superserver: xinetd.&lt;br /&gt;
Stopping Network connection manager daemon: NetworkManager.&lt;br /&gt;
ALSA: Storing mixer settings...&lt;br /&gt;
/usr/sbin/alsactl: get_control:259: Cannot read control '2,0,0,Mic Capture Volume,0': Invalid argument&lt;br /&gt;
Deconfiguring network interfaces... Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/usb0/92:93:b0:18:e8:b6&lt;br /&gt;
Sending on   LPF/usb0/92:93:b0:18:e8:b6&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPRELEASE on usb0 to 192.168.1.1 port 67&lt;br /&gt;
send_packet: Network is unreachable&lt;br /&gt;
send_packet: please consult README file regarding broadcast address.&lt;br /&gt;
done.&lt;br /&gt;
Stopping PVR&lt;br /&gt;
Stopping syslog-ng:.&lt;br /&gt;
Sending all processes the TERM signal...&lt;br /&gt;
Sending all processes the KILL signal...&lt;br /&gt;
hwclock: can't open '/dev/misc/rtc': No such file or directory&lt;br /&gt;
Unmounting remote filesystems...&lt;br /&gt;
Stopping portmap daemon: portmap.&lt;br /&gt;
Deactivating swap...&lt;br /&gt;
Unmounting local filesystems...&lt;br /&gt;
Rebooting... [67884.488464] Restarting system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-X, page X, ifconfig ===&lt;br /&gt;
 root@beagleboard:~# '''ifconfig'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# ifconfig&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 00:50:B6:0A:21:18  &lt;br /&gt;
          inet addr:137.112.101.235  Bcast:137.112.101.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::250:b6ff:fe0a:2118/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:268 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:96 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000 &lt;br /&gt;
          RX bytes:19429 (18.9 KiB)  TX bytes:15858 (15.4 KiB)&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback  &lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0 &lt;br /&gt;
          RX bytes:592 (592.0 b)  TX bytes:592 (592.0 b)&lt;br /&gt;
&lt;br /&gt;
usb0      Link encap:Ethernet  HWaddr 5A:3D:7F:FE:EE:BA  &lt;br /&gt;
          inet6 addr: fe80::583d:7fff:fefe:eeba/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:51 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000 &lt;br /&gt;
          RX bytes:0 (0.0 b)  TX bytes:10614 (10.3 KiB)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-3, page 18, Linux Final Boot Messages ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[67895.991638] usb 2-2.2: device descriptor read/64, error 18&lt;br /&gt;
[67896.002227] devtmpfs: mounted&lt;br /&gt;
[67896.009552] Freeing init memory: 204K&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
[67896.202636] usb 2-2.2: device descriptor read/64, error 18&lt;br /&gt;
Please wait: booting...&lt;br /&gt;
Starting udev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-4, page 29, Hello World, Embedded Style ===&lt;br /&gt;
&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;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-5, page 29, Hello Output for Host Computer ===&lt;br /&gt;
&lt;br /&gt;
 beagle@embed11:~/exercises$ gcc helloWorld.c &lt;br /&gt;
 beagle@embed11:~/exercises$ ./a.out&lt;br /&gt;
 Hello, World! Main is executing at 0x400524&lt;br /&gt;
 This address (0x7fff1bfbafc8) is in our stack frame&lt;br /&gt;
 This address (0x601038) is in our bss section&lt;br /&gt;
 This address (0x601020) is in our data section&lt;br /&gt;
&lt;br /&gt;
=== 2-5, page 29, Hello Output for Beagle ===&lt;br /&gt;
&lt;br /&gt;
 root@beagleboard:~/exercises# gcc helloWorld.c &lt;br /&gt;
 root@beagleboard:~/exercises# ./a.out&lt;br /&gt;
 Hello, World! Main is executing at 0x8380&lt;br /&gt;
 This address (0xbeb4fc94) 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;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Listings_for_Chapter_2--Yifei</id>
		<title>ECE497 Listings for Chapter 2--Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Listings_for_Chapter_2--Yifei"/>
				<updated>2012-01-17T00:57:19Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: /* 2-5, page 29, Hello Output for Host Computer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497old]]&lt;br /&gt;
&lt;br /&gt;
=== 2-1, page 15, Initial Bootloader Serial Output ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Texas Instruments X-Loader 1.5.0 (Mar 27 2011 - 17:37:56)&lt;br /&gt;
Beagle xM&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 2011.03-rc1-00000-g9a3cc57-dirty (Apr 01 2011 - 17:41:42)&lt;br /&gt;
&lt;br /&gt;
OMAP3630/3730-GP ES2.1, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  512 MiB&lt;br /&gt;
NAND:  0 MiB&lt;br /&gt;
MMC:   OMAP SD/MMC: 0&lt;br /&gt;
*** Warning - readenv() failed, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Beagle xM Rev C&lt;br /&gt;
Recognized Tincantools Trainer board (rev 0 0)&lt;br /&gt;
Die ID #397600029ff80000015f26ad0f01a010&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, page 16, Loading the Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
 OMAP3 beagleboard.org # '''boot'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The user button is currently NOT pressed.&lt;br /&gt;
SD/MMC found on device 0&lt;br /&gt;
reading uEnv.txt&lt;br /&gt;
&lt;br /&gt;
191 bytes read&lt;br /&gt;
Loaded environment from uEnv.txt&lt;br /&gt;
Importing environment from mmc ...&lt;br /&gt;
Running uenvcmd ...&lt;br /&gt;
Loading file &amp;quot;/boot/uImage&amp;quot; from mmc device 0:2 (xxa2)&lt;br /&gt;
3203088 bytes read&lt;br /&gt;
Booting from mmc ...&lt;br /&gt;
## Booting kernel from Legacy Image at 80200000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.32/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    3203024 Bytes = 3.1 MiB&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.32 (koen@dominion) (gcc version 4.3.3 (GCC) ) #3 PREEMPT Tue May 10 10:06:15 CEST 2011&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f&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] OMAP3630/DM3730 ES1.0 (l2cache iva sgx neon isp 192mhz_clk )&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 25165824 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 122624&lt;br /&gt;
[    0.000000] Kernel command line: console=tty0 console=ttyS2,115200n8 consoleblank=0 mpurate=auto buddy=trainer camera=lbcm3m1 vram=24M omapfb.mode=dvi:hd720 mem=99M@0x80000000 mem=384M@0x88000000 omapfb.vram=0:12M,1:8M,2:4M omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait&lt;br /&gt;
[    0.000000] Beagle expansionboard: trainer&lt;br /&gt;
[    0.000000] Beagle cameraboard: lbcm3m1&lt;br /&gt;
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Memory: 99MB 384MB = 483MB total&lt;br /&gt;
[    0.000000] Memory: 458496KB available (5900K code, 673K data, 204K init, 0K highmem)&lt;br /&gt;
[    0.000000] Hierarchical RCU implementation.&lt;br /&gt;
[    0.000000] NR_IRQS:402&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz&lt;br /&gt;
[    0.000000] Reprogramming SDRC clock to 332000000 Hz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP GPIO hardware version 2.5&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] console [tty0] enabled&lt;br /&gt;
[    0.000000] Calibrating delay loop... 513.62 BogoMIPS (lpj=2007040)&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] tmpfs: No value for mount option 'mode'&lt;br /&gt;
[    0.000000] devtmpfs: initialized&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] OMAP3 Beagle Rev: xM C&lt;br /&gt;
[    0.000000] Beagle cameraboard: registering i2c2 bus for lbcm3m1&lt;br /&gt;
[    0.000000] Beagle expansionboard: exporting GPIOs 130-141,162 to userspace&lt;br /&gt;
[    0.000000] Found NAND on CS0&lt;br /&gt;
[    0.000000] Registering NAND on CS0&lt;br /&gt;
[    0.000000] Unable to get DVI reset GPIO&lt;br /&gt;
[    0.000000] omap_init_mbox: platform not supported&lt;br /&gt;
[ 1551.363037] OMAP DMA hardware revision 5.0&lt;br /&gt;
[ 1551.369598] bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
[ 1551.370880] SCSI subsystem initialized&lt;br /&gt;
[ 1551.372283] usbcore: registered new interface driver usbfs&lt;br /&gt;
[ 1551.372467] usbcore: registered new interface driver hub&lt;br /&gt;
[ 1551.372680] usbcore: registered new device driver usb&lt;br /&gt;
[ 1551.373046] i2c_omap i2c_omap.1: bus 1 rev4.0 at 2600 kHz&lt;br /&gt;
[ 1551.375701] twl4030: PIH (irq 7) chaining IRQs 368..375&lt;br /&gt;
[ 1551.375762] twl4030: power (irq 373) chaining IRQs 376..383&lt;br /&gt;
[ 1551.376037] twl4030: gpio (irq 368) chaining IRQs 384..401&lt;br /&gt;
[ 1551.377807] regulator: VUSB1V5: 1500 mV normal standby&lt;br /&gt;
[ 1551.378112] regulator: VUSB1V8: 1800 mV normal standby&lt;br /&gt;
[ 1551.378356] regulator: VUSB3V1: 3100 mV normal standby&lt;br /&gt;
[ 1551.379638] twl4030_usb twl4030_usb: Initialized TWL4030 USB module&lt;br /&gt;
[ 1551.380096] regulator: VMMC1: 1850 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[ 1551.380340] regulator: VDAC: 1800 mV normal standby&lt;br /&gt;
[ 1551.380615] regulator: VPLL2: 1800 mV normal standby&lt;br /&gt;
[ 1551.380889] regulator: VSIM: 1800 &amp;lt;--&amp;gt; 3000 mV normal standby&lt;br /&gt;
[ 1551.381256] regulator: VAUX3: 1800 mV normal standby&lt;br /&gt;
[ 1551.381622] regulator: VAUX4: 1800 mV normal standby&lt;br /&gt;
[ 1551.381805] i2c_omap i2c_omap.2: bus 2 rev4.0 at 400 kHz&lt;br /&gt;
[ 1551.391357] i2c_omap i2c_omap.3: bus 3 rev4.0 at 100 kHz&lt;br /&gt;
[ 1551.392578] Switching to clocksource 32k_counter&lt;br /&gt;
[ 1551.401733] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0&lt;br /&gt;
[ 1551.405517] musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92&lt;br /&gt;
[ 1551.405578] musb_hdrc musb_hdrc: MUSB HDRC host driver&lt;br /&gt;
[ 1551.405700] musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1&lt;br /&gt;
[ 1551.405883] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
[ 1551.405914] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
[ 1551.405975] usb usb1: Product: MUSB HDRC host driver&lt;br /&gt;
[ 1551.406005] usb usb1: Manufacturer: Linux 2.6.32 musb-hcd&lt;br /&gt;
[ 1551.406036] usb usb1: SerialNumber: musb_hdrc&lt;br /&gt;
[ 1551.406677] hub 1-0:1.0: USB hub found&lt;br /&gt;
[ 1551.406738] hub 1-0:1.0: 1 port detected&lt;br /&gt;
[ 1551.407775] NET: Registered protocol family 2&lt;br /&gt;
[ 1551.408050] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)&lt;br /&gt;
[ 1551.408660] TCP established hash table entries: 16384 (order: 5, 131072 bytes)&lt;br /&gt;
[ 1551.409088] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[ 1551.409332] TCP: Hash tables configured (established 16384 bind 16384)&lt;br /&gt;
[ 1551.409362] TCP reno registered&lt;br /&gt;
[ 1551.409393] UDP hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
[ 1551.409454] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
[ 1551.409698] NET: Registered protocol family 1&lt;br /&gt;
[ 1551.410156] RPC: Registered udp transport module.&lt;br /&gt;
[ 1551.410217] RPC: Registered tcp transport module.&lt;br /&gt;
[ 1551.410247] RPC: Registered tcp NFSv4.1 backchannel transport module.&lt;br /&gt;
[ 1551.411132] omap-iommu omap-iommu.0: isp registered&lt;br /&gt;
[ 1551.412872] VFS: Disk quotas dquot_6.5.2&lt;br /&gt;
[ 1551.412994] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)&lt;br /&gt;
[ 1551.414093] squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
[ 1551.414916] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.&lt;br /&gt;
[ 1551.415771] msgmni has been set to 896&lt;br /&gt;
[ 1551.419555] alg: No test for stdrng (krng)&lt;br /&gt;
[ 1551.419860] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)&lt;br /&gt;
[ 1551.419921] io scheduler noop registered&lt;br /&gt;
[ 1551.419952] io scheduler deadline registered&lt;br /&gt;
[ 1551.420104] io scheduler cfq registered (default)&lt;br /&gt;
[ 1551.478790] OMAP DSS rev 2.0&lt;br /&gt;
[ 1551.478881] OMAP DISPC rev 3.0&lt;br /&gt;
[ 1551.478942] OMAP VENC rev 2&lt;br /&gt;
[ 1551.479187] OMAP DSI rev 1.0&lt;br /&gt;
[ 1551.815734] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled&lt;br /&gt;
[ 1551.834197] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654&lt;br /&gt;
[ 1551.851959] serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654&lt;br /&gt;
[ 1551.869659] serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654&lt;br /&gt;
[ 1552.456451] console [ttyS2] enabled&lt;br /&gt;
[ 1552.466857] brd: module loaded&lt;br /&gt;
[ 1552.473175] loop: module loaded&lt;br /&gt;
[ 1552.477752] omap2-nand driver initializing&lt;br /&gt;
[ 1552.482238] No NAND device found!!!&lt;br /&gt;
[ 1552.485900] No NAND device found!!!&lt;br /&gt;
[ 1552.490447] usbcore: registered new interface driver catc&lt;br /&gt;
[ 1552.495971] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver&lt;br /&gt;
[ 1552.502044] usbcore: registered new interface driver kaweth&lt;br /&gt;
[ 1552.507720] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver&lt;br /&gt;
[ 1552.515380] usbcore: registered new interface driver pegasus&lt;br /&gt;
[ 1552.521118] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver&lt;br /&gt;
[ 1552.528167] usbcore: registered new interface driver rtl8150&lt;br /&gt;
[ 1552.533966] usbcore: registered new interface driver asix&lt;br /&gt;
[ 1552.539489] usbcore: registered new interface driver cdc_ether&lt;br /&gt;
[ 1552.545501] usbcore: registered new interface driver dm9601&lt;br /&gt;
[ 1552.551269] usbcore: registered new interface driver smsc95xx&lt;br /&gt;
[ 1552.557159] usbcore: registered new interface driver gl620a&lt;br /&gt;
[ 1552.562866] usbcore: registered new interface driver net1080&lt;br /&gt;
[ 1552.568664] usbcore: registered new interface driver plusb&lt;br /&gt;
[ 1552.574310] usbcore: registered new interface driver rndis_host&lt;br /&gt;
[ 1552.580383] usbcore: registered new interface driver cdc_subset&lt;br /&gt;
[ 1552.586425] usbcore: registered new interface driver zaurus&lt;br /&gt;
[ 1552.592163] usbcore: registered new interface driver MOSCHIP usb-ethernet driver&lt;br /&gt;
[ 1552.600250] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver&lt;br /&gt;
[ 1552.607147] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller&lt;br /&gt;
[ 1552.613189] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2&lt;br /&gt;
[ 1552.620819] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800&lt;br /&gt;
[ 1552.634948] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00&lt;br /&gt;
[ 1552.640869] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
[ 1552.647766] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
[ 1552.655059] usb usb2: Product: OMAP-EHCI Host Controller&lt;br /&gt;
[ 1552.660461] usb usb2: Manufacturer: Linux 2.6.32 ehci_hcd&lt;br /&gt;
[ 1552.665924] usb usb2: SerialNumber: ehci-omap.0&lt;br /&gt;
[ 1552.671203] hub 2-0:1.0: USB hub found&lt;br /&gt;
[ 1552.675048] hub 2-0:1.0: 3 ports detected&lt;br /&gt;
[ 1552.705352] Initializing USB Mass Storage driver...&lt;br /&gt;
[ 1552.710449] usbcore: registered new interface driver usb-storage&lt;br /&gt;
[ 1552.716552] USB Mass Storage support registered.&lt;br /&gt;
[ 1552.721618] mice: PS/2 mouse device common for all mice&lt;br /&gt;
[ 1552.727294] input: gpio-keys as /devices/platform/gpio-keys/input/input0&lt;br /&gt;
[ 1552.735137] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-1/1-0049/twl4030_pwrbutton/input/input1&lt;br /&gt;
[ 1552.745910] i2c /dev entries driver&lt;br /&gt;
[ 1552.750030] Linux video capture interface: v2.00&lt;br /&gt;
[ 1552.755004] omap-iommu omap-iommu.0: isp: version 1.1&lt;br /&gt;
[ 1552.761749] vpfe_init&lt;br /&gt;
[ 1552.764648] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec&lt;br /&gt;
[ 1552.771423] cpuidle: using governor ladder&lt;br /&gt;
[ 1552.775634] cpuidle: using governor menu&lt;br /&gt;
[ 1552.885253] mmci-omap-hs mmci-omap-hs.1: err -16 configuring card detect&lt;br /&gt;
[ 1552.892333] Registered led device: beagleboard::usr0&lt;br /&gt;
[ 1552.897521] Registered led device: beagleboard::usr1&lt;br /&gt;
[ 1552.904022] Registered led device: beagleboard::pmu_stat&lt;br /&gt;
[ 1552.911041] usbcore: registered new interface driver usbhid&lt;br /&gt;
[ 1552.916717] usbhid: USB HID core driver&lt;br /&gt;
[ 1552.920745] Advanced Linux Sound Architecture Driver Version 1.0.21.&lt;br /&gt;
[ 1552.927703] usbcore: registered new interface driver snd-usb-audio&lt;br /&gt;
[ 1553.003601] usb 2-2: new high speed USB device using ehci-omap and address 2&lt;br /&gt;
[ 1553.011474] No device for DAI omap-mcbsp-dai-0&lt;br /&gt;
[ 1553.015960] No device for DAI omap-mcbsp-dai-1&lt;br /&gt;
[ 1553.020477] No device for DAI omap-mcbsp-dai-2&lt;br /&gt;
[ 1553.024963] No device for DAI omap-mcbsp-dai-3&lt;br /&gt;
[ 1553.029479] No device for DAI omap-mcbsp-dai-4&lt;br /&gt;
[ 1553.034027] OMAP3 Beagle SoC init&lt;br /&gt;
[ 1553.038177] asoc: twl4030 &amp;lt;-&amp;gt; omap-mcbsp-dai-0 mapping ok&lt;br /&gt;
[ 1553.049713] ALSA device list:&lt;br /&gt;
[ 1553.052734]   #0: omap3beagle (twl4030)&lt;br /&gt;
[ 1553.056732] oprofile: using arm/armv7&lt;br /&gt;
[ 1553.060699] TCP cubic registered&lt;br /&gt;
[ 1553.063964] NET: Registered protocol family 17&lt;br /&gt;
[ 1553.068572] NET: Registered protocol family 15&lt;br /&gt;
[ 1553.073181] lib80211: common routines for IEEE802.11 drivers&lt;br /&gt;
[ 1553.078918] ThumbEE CPU extension supported.&lt;br /&gt;
[ 1553.083282] Power Management for TI OMAP3.&lt;br /&gt;
[ 1553.088714] SmartReflex driver initialized&lt;br /&gt;
[ 1553.092987] omap3beaglelmb: Driver registration complete&lt;br /&gt;
[ 1553.106903] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3&lt;br /&gt;
[ 1553.115173] registered taskstats version 1&lt;br /&gt;
[ 1553.182495] usb 2-2: New USB device found, idVendor=0424, idProduct=9514&lt;br /&gt;
[ 1553.189300] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[ 1553.197296] hub 2-2:1.0: USB hub found&lt;br /&gt;
[ 1553.201385] hub 2-2:1.0: 5 ports detected&lt;br /&gt;
[ 1553.275512] mmc0: host does not support reading read-only switch. assuming write-enable.&lt;br /&gt;
[ 1553.283721] mmc0: new high speed SDHC card at address 1234&lt;br /&gt;
[ 1553.289611] mmcblk0: mmc0:1234 SA04G 3.67 GiB &lt;br /&gt;
[ 1553.307678] Console: switching to colour frame buffer device 160x45&lt;br /&gt;
[ 1553.327545]  mmcblk0: p1 p2&lt;br /&gt;
[ 1553.333892] regulator_init_complete: incomplete constraints, leaving VAUX4 on&lt;br /&gt;
[ 1553.341491] regulator_init_complete: incomplete constraints, leaving VAUX3 on&lt;br /&gt;
[ 1553.349334] regulator_init_complete: incomplete constraints, leaving VDAC on&lt;br /&gt;
[ 1553.357391] omap_vout omap_vout: probed for an unknown device&lt;br /&gt;
[ 1553.369812] EXT3-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is recommended&lt;br /&gt;
[ 1553.379333] kjournald starting.  Commit interval 5 seconds&lt;br /&gt;
[ 1553.392669] EXT3-fs (mmcblk0p2): using internal journal&lt;br /&gt;
[ 1553.398101] EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode&lt;br /&gt;
[ 1553.405456] VFS: Mounted root (ext3 filesystem) on device 179:2.&lt;br /&gt;
[ 1553.416168] devtmpfs: mounted&lt;br /&gt;
[ 1553.422851] Freeing init memory: 204K&lt;br /&gt;
[ 1553.533721] usb 2-2.1: new high speed USB device using ehci-omap and address 3&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
[ 1553.659179] usb 2-2.1: New USB device found, idVendor=0424, idProduct=ec00&lt;br /&gt;
[ 1553.670410] usb 2-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[ 1553.684997] smsc95xx v1.0.4&lt;br /&gt;
[ 1553.753906] usb0: register 'smsc95xx' at usb-ehci-omap.0-2.1, smsc95xx USB 2.0 Ethernet, 5a:6b:7e:83:01:7d&lt;br /&gt;
[ 1553.854095] usb 2-2.2: new high speed USB device using ehci-omap and address 4&lt;br /&gt;
Please wait: booting...&lt;br /&gt;
Starting udev&lt;br /&gt;
[ 1554.000518] usb 2-2.2: New USB device found, idVendor=0b95, idProduct=7720&lt;br /&gt;
[ 1554.012084] usb 2-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[ 1554.023956] usb 2-2.2: Product: AX88772 &lt;br /&gt;
[ 1554.032348] usb 2-2.2: Manufacturer: ASIX Elec. Corp.&lt;br /&gt;
[ 1554.042266] usb 2-2.2: SerialNumber: 000001&lt;br /&gt;
[ 1554.890899] eth0: register 'asix' at usb-ehci-omap.0-2.2, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c4:57&lt;br /&gt;
[ 1555.316528] twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0&lt;br /&gt;
[ 1555.752227] usb 2-2.3: new high speed USB device using ehci-omap and address 5&lt;br /&gt;
[ 1556.591064] usb 2-2.3: New USB device found, idVendor=1415, idProduct=2000&lt;br /&gt;
[ 1556.747467] usb 2-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[ 1556.782348] usb 2-2.3: Product: USB Camera-B4.04.27.1&lt;br /&gt;
[ 1556.792510] usb 2-2.3: Manufacturer: OmniVision Technologies, Inc.&lt;br /&gt;
[ 1556.891815] gspca: main v2.8.0 registered&lt;br /&gt;
[ 1556.912536] usb 2-2.4: new low speed USB device using ehci-omap and address 6&lt;br /&gt;
[ 1556.932342] gspca: probing 1415:2000&lt;br /&gt;
[ 1557.069854] usb 2-2.4: New USB device found, idVendor=046d, idProduct=c016&lt;br /&gt;
[ 1557.082977] usb 2-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[ 1557.095520] usb 2-2.4: Product: Optical USB Mouse&lt;br /&gt;
[ 1557.105316] usb 2-2.4: Manufacturer: Logitech&lt;br /&gt;
[ 1557.118957] ov534: Sensor ID: 7721&lt;br /&gt;
[ 1557.132659] input: Logitech Optical USB Mouse as /devices/platform/ehci-omap.0/usb2/2-2/2-2.4/2-2.4:1.0/input/input2&lt;br /&gt;
[ 1557.192199] generic-usb 0003:046D:C016.0001: input: USB HID v1.10 Mouse [Logitech Optical USB Mouse] on usb-ehci-omap.0-2.4/input0&lt;br /&gt;
[ 1557.240783] ov534: frame_rate: 30&lt;br /&gt;
[ 1557.262695] gspca: /dev/video0 created&lt;br /&gt;
[ 1557.304016] usbcore: registered new interface driver ov534&lt;br /&gt;
[ 1557.341369] ov534: registered&lt;br /&gt;
[ 1557.377960] usb 2-2.5: new low speed USB device using ehci-omap and address 7&lt;br /&gt;
[ 1557.578521] usb 2-2.5: New USB device found, idVendor=04f3, idProduct=0103&lt;br /&gt;
[ 1557.603027] usb 2-2.5: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[ 1557.634033] input: HID 04f3:0103 as /devices/platform/ehci-omap.0/usb2/2-2/2-2.5/2-2.5:1.0/input/input3&lt;br /&gt;
[ 1557.694244] generic-usb 0003:04F3:0103.0002: input: USB HID v1.10 Keyboard [HID 04f3:0103] on usb-ehci-omap.0-2.5/input0&lt;br /&gt;
[ 1557.749481] input: HID 04f3:0103 as /devices/platform/ehci-omap.0/usb2/2-2/2-2.5/2-2.5:1.1/input/input4&lt;br /&gt;
[ 1557.829162] generic-usb 0003:04F3:0103.0003: input: USB HID v1.10 Device [HID 04f3:0103] on usb-ehci-omap.0-2.5/input1&lt;br /&gt;
Remounting root file system...&lt;br /&gt;
Caching udev devnodes&lt;br /&gt;
Populating dev cache&lt;br /&gt;
[ 1572.894226] Bluetooth: Core ver 2.15&lt;br /&gt;
[ 1572.904296] NET: Registered protocol family 31&lt;br /&gt;
[ 1572.914123] Bluetooth: HCI device and connection manager initialized&lt;br /&gt;
[ 1572.925842] Bluetooth: HCI socket layer initialized&lt;br /&gt;
[ 1572.953735] Bluetooth: L2CAP ver 2.14&lt;br /&gt;
[ 1572.962768] Bluetooth: L2CAP socket layer initialized&lt;br /&gt;
[ 1572.991455] Bluetooth: HIDP (Human Interface Emulation) ver 1.2&lt;br /&gt;
[ 1573.115783] NET: Registered protocol family 10&lt;br /&gt;
[ 1573.192199] NET: Registered protocol family 23&lt;br /&gt;
[ 1573.221649] IrCOMM protocol (Dag Brattli)&lt;br /&gt;
[ 1573.332153] Bluetooth: RFCOMM TTY layer initialized&lt;br /&gt;
[ 1573.342224] Bluetooth: RFCOMM socket layer initialized&lt;br /&gt;
[ 1573.352325] Bluetooth: RFCOMM ver 1.11&lt;br /&gt;
ALSA: Restoring mixer settings...&lt;br /&gt;
Cleaning: /etc/network/run/ifstate.&lt;br /&gt;
No state is present for card CameraB404271&lt;br /&gt;
/usr/sbin/alsactl: parse:1655: Unable to open file '/usr/share/alsa/init/00main': No such file or directory&lt;br /&gt;
No state is present for card CameraB404271&lt;br /&gt;
Configuring network interfaces... [ 1575.066680] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
eth0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
[ 1575.290283] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/eth0/00:50:b6:06:c4:57&lt;br /&gt;
Sending on   LPF/eth0/00:50:b6:06:c4:57&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPREQUEST on eth0 to 255.255.255.255 port 67&lt;br /&gt;
DHCPACK from 137.112.41.2&lt;br /&gt;
bound to 137.112.41.87 -- renewal in 1567 seconds.&lt;br /&gt;
usb0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/usb0/22:b8:c4:7d:a8:50&lt;br /&gt;
Sending on   LPF/usb0/22:b8:c4:7d:a8:50&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPREQUEST on usb0 to 255.255.255.255 port 67&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 5&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 14&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 16&lt;br /&gt;
[ 1614.207458] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 9&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 11&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 6&lt;br /&gt;
No DHCPOFFERS received.&lt;br /&gt;
No working leases in persistent database - sleeping.&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
INIT: Entering runlevel: 5&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::pmu_stat: none&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 Samba: smbd nmbd.&lt;br /&gt;
Starting syslog-ng:.&lt;br /&gt;
Starting internet superserver: xinetd.&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Network connection manager daemon: NetworkManager.&lt;br /&gt;
Starting PVR&lt;br /&gt;
cups: started scheduler.&lt;br /&gt;
Starting GNOME Display Manager gdm&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 2010.7-test-20110220 beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
Last login: Thu Dec 29 17:12:23 GMT 2011 from 137.112.41.109 on pts/0&lt;br /&gt;
root@beagleboard:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-X, page X, Shutdown messages ===&lt;br /&gt;
&lt;br /&gt;
 root@beagleboard:~# '''shutdown -r now'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
�Broadcast message from root (ttyS2) (Thu Dec 29 16:02:35 2011):&lt;br /&gt;
&lt;br /&gt;
The system is going down for reboot NOW!&lt;br /&gt;
INIT: INIT: Sending processes the TERM signal&lt;br /&gt;
Deconfiguring leds:&lt;br /&gt;
  beagleboard::pmu_stat: no trigger&lt;br /&gt;
  beagleboard::usr0: no trigger&lt;br /&gt;
  beagleboard::usr1: no trigger&lt;br /&gt;
Stopping Dropbear SSH server: dropbear.&lt;br /&gt;
 * Stopping Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Stopping advanced power management daemon: No /usr/sbin/apmd found running; none killed.&lt;br /&gt;
apmd.&lt;br /&gt;
Stopping Vixie-cron.&lt;br /&gt;
Stopping Hardware abstraction layer hald&lt;br /&gt;
Stopping system message bus: dbus.&lt;br /&gt;
Stopping GNOME Display Manager gdm&lt;br /&gt;
Stopping Samba: smbd nmbd.&lt;br /&gt;
Stopping internet superserver: xinetd.&lt;br /&gt;
Stopping Network connection manager daemon: NetworkManager.&lt;br /&gt;
ALSA: Storing mixer settings...&lt;br /&gt;
/usr/sbin/alsactl: get_control:259: Cannot read control '2,0,0,Mic Capture Volume,0': Invalid argument&lt;br /&gt;
Deconfiguring network interfaces... Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/usb0/92:93:b0:18:e8:b6&lt;br /&gt;
Sending on   LPF/usb0/92:93:b0:18:e8:b6&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPRELEASE on usb0 to 192.168.1.1 port 67&lt;br /&gt;
send_packet: Network is unreachable&lt;br /&gt;
send_packet: please consult README file regarding broadcast address.&lt;br /&gt;
done.&lt;br /&gt;
Stopping PVR&lt;br /&gt;
Stopping syslog-ng:.&lt;br /&gt;
Sending all processes the TERM signal...&lt;br /&gt;
Sending all processes the KILL signal...&lt;br /&gt;
hwclock: can't open '/dev/misc/rtc': No such file or directory&lt;br /&gt;
Unmounting remote filesystems...&lt;br /&gt;
Stopping portmap daemon: portmap.&lt;br /&gt;
Deactivating swap...&lt;br /&gt;
Unmounting local filesystems...&lt;br /&gt;
Rebooting... [67884.488464] Restarting system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-X, page X, ifconfig ===&lt;br /&gt;
 root@beagleboard:~# '''ifconfig'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# ifconfig&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 00:50:B6:0A:21:18  &lt;br /&gt;
          inet addr:137.112.101.235  Bcast:137.112.101.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::250:b6ff:fe0a:2118/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:268 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:96 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000 &lt;br /&gt;
          RX bytes:19429 (18.9 KiB)  TX bytes:15858 (15.4 KiB)&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback  &lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0 &lt;br /&gt;
          RX bytes:592 (592.0 b)  TX bytes:592 (592.0 b)&lt;br /&gt;
&lt;br /&gt;
usb0      Link encap:Ethernet  HWaddr 5A:3D:7F:FE:EE:BA  &lt;br /&gt;
          inet6 addr: fe80::583d:7fff:fefe:eeba/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:51 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000 &lt;br /&gt;
          RX bytes:0 (0.0 b)  TX bytes:10614 (10.3 KiB)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-3, page 18, Linux Final Boot Messages ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[67895.991638] usb 2-2.2: device descriptor read/64, error 18&lt;br /&gt;
[67896.002227] devtmpfs: mounted&lt;br /&gt;
[67896.009552] Freeing init memory: 204K&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
[67896.202636] usb 2-2.2: device descriptor read/64, error 18&lt;br /&gt;
Please wait: booting...&lt;br /&gt;
Starting udev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-4, page 29, Hello World, Embedded Style ===&lt;br /&gt;
&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;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-5, page 29, Hello Output for Host Computer ===&lt;br /&gt;
&lt;br /&gt;
 beagle@embed11:~/exercises$ gcc helloWorld.c &lt;br /&gt;
 beagle@embed11:~/exercises$ ./a.out&lt;br /&gt;
 Hello, World! Main is executing at 0x400524&lt;br /&gt;
 This address (0x7fff1bfbafc8) is in our stack frame&lt;br /&gt;
 This address (0x601038) is in our bss section&lt;br /&gt;
 This address (0x601020) is in our data section&lt;br /&gt;
&lt;br /&gt;
=== 2-5, page 29, Hello Output for Beagle ===&lt;br /&gt;
&lt;br /&gt;
root@beagleboard:~/exercises# gcc helloWorld.c &lt;br /&gt;
root@beagleboard:~/exercises# ./a.out&lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbeb4fc94) 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;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Listings_for_Chapter_2--Yifei</id>
		<title>ECE497 Listings for Chapter 2--Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Listings_for_Chapter_2--Yifei"/>
				<updated>2012-01-17T00:56:26Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: Created page with &amp;quot;Category:ECE497old  === 2-1, page 15, Initial Bootloader Serial Output === &amp;lt;pre&amp;gt; Texas Instruments X-Loader 1.5.0 (Mar 27 2011 - 17:37:56) Beagle xM Reading boot sector Loadi...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497old]]&lt;br /&gt;
&lt;br /&gt;
=== 2-1, page 15, Initial Bootloader Serial Output ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Texas Instruments X-Loader 1.5.0 (Mar 27 2011 - 17:37:56)&lt;br /&gt;
Beagle xM&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 2011.03-rc1-00000-g9a3cc57-dirty (Apr 01 2011 - 17:41:42)&lt;br /&gt;
&lt;br /&gt;
OMAP3630/3730-GP ES2.1, CPU-OPP2, L3-165MHz, Max CPU Clock 1 Ghz&lt;br /&gt;
OMAP3 Beagle board + LPDDR/NAND&lt;br /&gt;
I2C:   ready&lt;br /&gt;
DRAM:  512 MiB&lt;br /&gt;
NAND:  0 MiB&lt;br /&gt;
MMC:   OMAP SD/MMC: 0&lt;br /&gt;
*** Warning - readenv() failed, using default environment&lt;br /&gt;
&lt;br /&gt;
In:    serial&lt;br /&gt;
Out:   serial&lt;br /&gt;
Err:   serial&lt;br /&gt;
Beagle xM Rev C&lt;br /&gt;
Recognized Tincantools Trainer board (rev 0 0)&lt;br /&gt;
Die ID #397600029ff80000015f26ad0f01a010&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, page 16, Loading the Linux Kernel ===&lt;br /&gt;
&lt;br /&gt;
 OMAP3 beagleboard.org # '''boot'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
The user button is currently NOT pressed.&lt;br /&gt;
SD/MMC found on device 0&lt;br /&gt;
reading uEnv.txt&lt;br /&gt;
&lt;br /&gt;
191 bytes read&lt;br /&gt;
Loaded environment from uEnv.txt&lt;br /&gt;
Importing environment from mmc ...&lt;br /&gt;
Running uenvcmd ...&lt;br /&gt;
Loading file &amp;quot;/boot/uImage&amp;quot; from mmc device 0:2 (xxa2)&lt;br /&gt;
3203088 bytes read&lt;br /&gt;
Booting from mmc ...&lt;br /&gt;
## Booting kernel from Legacy Image at 80200000 ...&lt;br /&gt;
   Image Name:   Angstrom/2.6.32/beagleboard&lt;br /&gt;
   Image Type:   ARM Linux Kernel Image (uncompressed)&lt;br /&gt;
   Data Size:    3203024 Bytes = 3.1 MiB&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.32 (koen@dominion) (gcc version 4.3.3 (GCC) ) #3 PREEMPT Tue May 10 10:06:15 CEST 2011&lt;br /&gt;
[    0.000000] CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c53c7f&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] OMAP3630/DM3730 ES1.0 (l2cache iva sgx neon isp 192mhz_clk )&lt;br /&gt;
[    0.000000] SRAM: Mapped pa 0x40200000 to va 0xfe400000 size: 0x100000&lt;br /&gt;
[    0.000000] Reserving 25165824 bytes SDRAM for VRAM&lt;br /&gt;
[    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 122624&lt;br /&gt;
[    0.000000] Kernel command line: console=tty0 console=ttyS2,115200n8 consoleblank=0 mpurate=auto buddy=trainer camera=lbcm3m1 vram=24M omapfb.mode=dvi:hd720 mem=99M@0x80000000 mem=384M@0x88000000 omapfb.vram=0:12M,1:8M,2:4M omapdss.def_disp=dvi root=/dev/mmcblk0p2 rw rootfstype=ext3 rootwait&lt;br /&gt;
[    0.000000] Beagle expansionboard: trainer&lt;br /&gt;
[    0.000000] Beagle cameraboard: lbcm3m1&lt;br /&gt;
[    0.000000] PID hash table entries: 2048 (order: 1, 8192 bytes)&lt;br /&gt;
[    0.000000] Dentry cache hash table entries: 65536 (order: 6, 262144 bytes)&lt;br /&gt;
[    0.000000] Inode-cache hash table entries: 32768 (order: 5, 131072 bytes)&lt;br /&gt;
[    0.000000] Memory: 99MB 384MB = 483MB total&lt;br /&gt;
[    0.000000] Memory: 458496KB available (5900K code, 673K data, 204K init, 0K highmem)&lt;br /&gt;
[    0.000000] Hierarchical RCU implementation.&lt;br /&gt;
[    0.000000] NR_IRQS:402&lt;br /&gt;
[    0.000000] Clocking rate (Crystal/Core/MPU): 26.0/332/600 MHz&lt;br /&gt;
[    0.000000] Reprogramming SDRC clock to 332000000 Hz&lt;br /&gt;
[    0.000000] GPMC revision 5.0&lt;br /&gt;
[    0.000000] IRQ: Found an INTC at 0xfa200000 (revision 4.0) with 96 interrupts&lt;br /&gt;
[    0.000000] Total of 96 interrupts on 1 active controller&lt;br /&gt;
[    0.000000] OMAP GPIO hardware version 2.5&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] console [tty0] enabled&lt;br /&gt;
[    0.000000] Calibrating delay loop... 513.62 BogoMIPS (lpj=2007040)&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] tmpfs: No value for mount option 'mode'&lt;br /&gt;
[    0.000000] devtmpfs: initialized&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] OMAP3 Beagle Rev: xM C&lt;br /&gt;
[    0.000000] Beagle cameraboard: registering i2c2 bus for lbcm3m1&lt;br /&gt;
[    0.000000] Beagle expansionboard: exporting GPIOs 130-141,162 to userspace&lt;br /&gt;
[    0.000000] Found NAND on CS0&lt;br /&gt;
[    0.000000] Registering NAND on CS0&lt;br /&gt;
[    0.000000] Unable to get DVI reset GPIO&lt;br /&gt;
[    0.000000] omap_init_mbox: platform not supported&lt;br /&gt;
[ 1551.363037] OMAP DMA hardware revision 5.0&lt;br /&gt;
[ 1551.369598] bio: create slab &amp;lt;bio-0&amp;gt; at 0&lt;br /&gt;
[ 1551.370880] SCSI subsystem initialized&lt;br /&gt;
[ 1551.372283] usbcore: registered new interface driver usbfs&lt;br /&gt;
[ 1551.372467] usbcore: registered new interface driver hub&lt;br /&gt;
[ 1551.372680] usbcore: registered new device driver usb&lt;br /&gt;
[ 1551.373046] i2c_omap i2c_omap.1: bus 1 rev4.0 at 2600 kHz&lt;br /&gt;
[ 1551.375701] twl4030: PIH (irq 7) chaining IRQs 368..375&lt;br /&gt;
[ 1551.375762] twl4030: power (irq 373) chaining IRQs 376..383&lt;br /&gt;
[ 1551.376037] twl4030: gpio (irq 368) chaining IRQs 384..401&lt;br /&gt;
[ 1551.377807] regulator: VUSB1V5: 1500 mV normal standby&lt;br /&gt;
[ 1551.378112] regulator: VUSB1V8: 1800 mV normal standby&lt;br /&gt;
[ 1551.378356] regulator: VUSB3V1: 3100 mV normal standby&lt;br /&gt;
[ 1551.379638] twl4030_usb twl4030_usb: Initialized TWL4030 USB module&lt;br /&gt;
[ 1551.380096] regulator: VMMC1: 1850 &amp;lt;--&amp;gt; 3150 mV normal standby&lt;br /&gt;
[ 1551.380340] regulator: VDAC: 1800 mV normal standby&lt;br /&gt;
[ 1551.380615] regulator: VPLL2: 1800 mV normal standby&lt;br /&gt;
[ 1551.380889] regulator: VSIM: 1800 &amp;lt;--&amp;gt; 3000 mV normal standby&lt;br /&gt;
[ 1551.381256] regulator: VAUX3: 1800 mV normal standby&lt;br /&gt;
[ 1551.381622] regulator: VAUX4: 1800 mV normal standby&lt;br /&gt;
[ 1551.381805] i2c_omap i2c_omap.2: bus 2 rev4.0 at 400 kHz&lt;br /&gt;
[ 1551.391357] i2c_omap i2c_omap.3: bus 3 rev4.0 at 100 kHz&lt;br /&gt;
[ 1551.392578] Switching to clocksource 32k_counter&lt;br /&gt;
[ 1551.401733] musb_hdrc: version 6.0, musb-dma, otg (peripheral+host), debug=0&lt;br /&gt;
[ 1551.405517] musb_hdrc: USB OTG mode controller at fa0ab000 using DMA, IRQ 92&lt;br /&gt;
[ 1551.405578] musb_hdrc musb_hdrc: MUSB HDRC host driver&lt;br /&gt;
[ 1551.405700] musb_hdrc musb_hdrc: new USB bus registered, assigned bus number 1&lt;br /&gt;
[ 1551.405883] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
[ 1551.405914] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
[ 1551.405975] usb usb1: Product: MUSB HDRC host driver&lt;br /&gt;
[ 1551.406005] usb usb1: Manufacturer: Linux 2.6.32 musb-hcd&lt;br /&gt;
[ 1551.406036] usb usb1: SerialNumber: musb_hdrc&lt;br /&gt;
[ 1551.406677] hub 1-0:1.0: USB hub found&lt;br /&gt;
[ 1551.406738] hub 1-0:1.0: 1 port detected&lt;br /&gt;
[ 1551.407775] NET: Registered protocol family 2&lt;br /&gt;
[ 1551.408050] IP route cache hash table entries: 4096 (order: 2, 16384 bytes)&lt;br /&gt;
[ 1551.408660] TCP established hash table entries: 16384 (order: 5, 131072 bytes)&lt;br /&gt;
[ 1551.409088] TCP bind hash table entries: 16384 (order: 4, 65536 bytes)&lt;br /&gt;
[ 1551.409332] TCP: Hash tables configured (established 16384 bind 16384)&lt;br /&gt;
[ 1551.409362] TCP reno registered&lt;br /&gt;
[ 1551.409393] UDP hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
[ 1551.409454] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)&lt;br /&gt;
[ 1551.409698] NET: Registered protocol family 1&lt;br /&gt;
[ 1551.410156] RPC: Registered udp transport module.&lt;br /&gt;
[ 1551.410217] RPC: Registered tcp transport module.&lt;br /&gt;
[ 1551.410247] RPC: Registered tcp NFSv4.1 backchannel transport module.&lt;br /&gt;
[ 1551.411132] omap-iommu omap-iommu.0: isp registered&lt;br /&gt;
[ 1551.412872] VFS: Disk quotas dquot_6.5.2&lt;br /&gt;
[ 1551.412994] Dquot-cache hash table entries: 1024 (order 0, 4096 bytes)&lt;br /&gt;
[ 1551.414093] squashfs: version 4.0 (2009/01/31) Phillip Lougher&lt;br /&gt;
[ 1551.414916] JFFS2 version 2.2. (NAND) (SUMMARY)  © 2001-2006 Red Hat, Inc.&lt;br /&gt;
[ 1551.415771] msgmni has been set to 896&lt;br /&gt;
[ 1551.419555] alg: No test for stdrng (krng)&lt;br /&gt;
[ 1551.419860] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 254)&lt;br /&gt;
[ 1551.419921] io scheduler noop registered&lt;br /&gt;
[ 1551.419952] io scheduler deadline registered&lt;br /&gt;
[ 1551.420104] io scheduler cfq registered (default)&lt;br /&gt;
[ 1551.478790] OMAP DSS rev 2.0&lt;br /&gt;
[ 1551.478881] OMAP DISPC rev 3.0&lt;br /&gt;
[ 1551.478942] OMAP VENC rev 2&lt;br /&gt;
[ 1551.479187] OMAP DSI rev 1.0&lt;br /&gt;
[ 1551.815734] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled&lt;br /&gt;
[ 1551.834197] serial8250.0: ttyS0 at MMIO 0x4806a000 (irq = 72) is a ST16654&lt;br /&gt;
[ 1551.851959] serial8250.1: ttyS1 at MMIO 0x4806c000 (irq = 73) is a ST16654&lt;br /&gt;
[ 1551.869659] serial8250.2: ttyS2 at MMIO 0x49020000 (irq = 74) is a ST16654&lt;br /&gt;
[ 1552.456451] console [ttyS2] enabled&lt;br /&gt;
[ 1552.466857] brd: module loaded&lt;br /&gt;
[ 1552.473175] loop: module loaded&lt;br /&gt;
[ 1552.477752] omap2-nand driver initializing&lt;br /&gt;
[ 1552.482238] No NAND device found!!!&lt;br /&gt;
[ 1552.485900] No NAND device found!!!&lt;br /&gt;
[ 1552.490447] usbcore: registered new interface driver catc&lt;br /&gt;
[ 1552.495971] catc: v2.8:CATC EL1210A NetMate USB Ethernet driver&lt;br /&gt;
[ 1552.502044] usbcore: registered new interface driver kaweth&lt;br /&gt;
[ 1552.507720] pegasus: v0.6.14 (2006/09/27), Pegasus/Pegasus II USB Ethernet driver&lt;br /&gt;
[ 1552.515380] usbcore: registered new interface driver pegasus&lt;br /&gt;
[ 1552.521118] rtl8150: v0.6.2 (2004/08/27):rtl8150 based usb-ethernet driver&lt;br /&gt;
[ 1552.528167] usbcore: registered new interface driver rtl8150&lt;br /&gt;
[ 1552.533966] usbcore: registered new interface driver asix&lt;br /&gt;
[ 1552.539489] usbcore: registered new interface driver cdc_ether&lt;br /&gt;
[ 1552.545501] usbcore: registered new interface driver dm9601&lt;br /&gt;
[ 1552.551269] usbcore: registered new interface driver smsc95xx&lt;br /&gt;
[ 1552.557159] usbcore: registered new interface driver gl620a&lt;br /&gt;
[ 1552.562866] usbcore: registered new interface driver net1080&lt;br /&gt;
[ 1552.568664] usbcore: registered new interface driver plusb&lt;br /&gt;
[ 1552.574310] usbcore: registered new interface driver rndis_host&lt;br /&gt;
[ 1552.580383] usbcore: registered new interface driver cdc_subset&lt;br /&gt;
[ 1552.586425] usbcore: registered new interface driver zaurus&lt;br /&gt;
[ 1552.592163] usbcore: registered new interface driver MOSCHIP usb-ethernet driver&lt;br /&gt;
[ 1552.600250] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver&lt;br /&gt;
[ 1552.607147] ehci-omap ehci-omap.0: OMAP-EHCI Host Controller&lt;br /&gt;
[ 1552.613189] ehci-omap ehci-omap.0: new USB bus registered, assigned bus number 2&lt;br /&gt;
[ 1552.620819] ehci-omap ehci-omap.0: irq 77, io mem 0x48064800&lt;br /&gt;
[ 1552.634948] ehci-omap ehci-omap.0: USB 2.0 started, EHCI 1.00&lt;br /&gt;
[ 1552.640869] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002&lt;br /&gt;
[ 1552.647766] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1&lt;br /&gt;
[ 1552.655059] usb usb2: Product: OMAP-EHCI Host Controller&lt;br /&gt;
[ 1552.660461] usb usb2: Manufacturer: Linux 2.6.32 ehci_hcd&lt;br /&gt;
[ 1552.665924] usb usb2: SerialNumber: ehci-omap.0&lt;br /&gt;
[ 1552.671203] hub 2-0:1.0: USB hub found&lt;br /&gt;
[ 1552.675048] hub 2-0:1.0: 3 ports detected&lt;br /&gt;
[ 1552.705352] Initializing USB Mass Storage driver...&lt;br /&gt;
[ 1552.710449] usbcore: registered new interface driver usb-storage&lt;br /&gt;
[ 1552.716552] USB Mass Storage support registered.&lt;br /&gt;
[ 1552.721618] mice: PS/2 mouse device common for all mice&lt;br /&gt;
[ 1552.727294] input: gpio-keys as /devices/platform/gpio-keys/input/input0&lt;br /&gt;
[ 1552.735137] input: twl4030_pwrbutton as /devices/platform/i2c_omap.1/i2c-1/1-0049/twl4030_pwrbutton/input/input1&lt;br /&gt;
[ 1552.745910] i2c /dev entries driver&lt;br /&gt;
[ 1552.750030] Linux video capture interface: v2.00&lt;br /&gt;
[ 1552.755004] omap-iommu omap-iommu.0: isp: version 1.1&lt;br /&gt;
[ 1552.761749] vpfe_init&lt;br /&gt;
[ 1552.764648] OMAP Watchdog Timer Rev 0x31: initial timeout 60 sec&lt;br /&gt;
[ 1552.771423] cpuidle: using governor ladder&lt;br /&gt;
[ 1552.775634] cpuidle: using governor menu&lt;br /&gt;
[ 1552.885253] mmci-omap-hs mmci-omap-hs.1: err -16 configuring card detect&lt;br /&gt;
[ 1552.892333] Registered led device: beagleboard::usr0&lt;br /&gt;
[ 1552.897521] Registered led device: beagleboard::usr1&lt;br /&gt;
[ 1552.904022] Registered led device: beagleboard::pmu_stat&lt;br /&gt;
[ 1552.911041] usbcore: registered new interface driver usbhid&lt;br /&gt;
[ 1552.916717] usbhid: USB HID core driver&lt;br /&gt;
[ 1552.920745] Advanced Linux Sound Architecture Driver Version 1.0.21.&lt;br /&gt;
[ 1552.927703] usbcore: registered new interface driver snd-usb-audio&lt;br /&gt;
[ 1553.003601] usb 2-2: new high speed USB device using ehci-omap and address 2&lt;br /&gt;
[ 1553.011474] No device for DAI omap-mcbsp-dai-0&lt;br /&gt;
[ 1553.015960] No device for DAI omap-mcbsp-dai-1&lt;br /&gt;
[ 1553.020477] No device for DAI omap-mcbsp-dai-2&lt;br /&gt;
[ 1553.024963] No device for DAI omap-mcbsp-dai-3&lt;br /&gt;
[ 1553.029479] No device for DAI omap-mcbsp-dai-4&lt;br /&gt;
[ 1553.034027] OMAP3 Beagle SoC init&lt;br /&gt;
[ 1553.038177] asoc: twl4030 &amp;lt;-&amp;gt; omap-mcbsp-dai-0 mapping ok&lt;br /&gt;
[ 1553.049713] ALSA device list:&lt;br /&gt;
[ 1553.052734]   #0: omap3beagle (twl4030)&lt;br /&gt;
[ 1553.056732] oprofile: using arm/armv7&lt;br /&gt;
[ 1553.060699] TCP cubic registered&lt;br /&gt;
[ 1553.063964] NET: Registered protocol family 17&lt;br /&gt;
[ 1553.068572] NET: Registered protocol family 15&lt;br /&gt;
[ 1553.073181] lib80211: common routines for IEEE802.11 drivers&lt;br /&gt;
[ 1553.078918] ThumbEE CPU extension supported.&lt;br /&gt;
[ 1553.083282] Power Management for TI OMAP3.&lt;br /&gt;
[ 1553.088714] SmartReflex driver initialized&lt;br /&gt;
[ 1553.092987] omap3beaglelmb: Driver registration complete&lt;br /&gt;
[ 1553.106903] VFP support v0.3: implementor 41 architecture 3 part 30 variant c rev 3&lt;br /&gt;
[ 1553.115173] registered taskstats version 1&lt;br /&gt;
[ 1553.182495] usb 2-2: New USB device found, idVendor=0424, idProduct=9514&lt;br /&gt;
[ 1553.189300] usb 2-2: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[ 1553.197296] hub 2-2:1.0: USB hub found&lt;br /&gt;
[ 1553.201385] hub 2-2:1.0: 5 ports detected&lt;br /&gt;
[ 1553.275512] mmc0: host does not support reading read-only switch. assuming write-enable.&lt;br /&gt;
[ 1553.283721] mmc0: new high speed SDHC card at address 1234&lt;br /&gt;
[ 1553.289611] mmcblk0: mmc0:1234 SA04G 3.67 GiB &lt;br /&gt;
[ 1553.307678] Console: switching to colour frame buffer device 160x45&lt;br /&gt;
[ 1553.327545]  mmcblk0: p1 p2&lt;br /&gt;
[ 1553.333892] regulator_init_complete: incomplete constraints, leaving VAUX4 on&lt;br /&gt;
[ 1553.341491] regulator_init_complete: incomplete constraints, leaving VAUX3 on&lt;br /&gt;
[ 1553.349334] regulator_init_complete: incomplete constraints, leaving VDAC on&lt;br /&gt;
[ 1553.357391] omap_vout omap_vout: probed for an unknown device&lt;br /&gt;
[ 1553.369812] EXT3-fs (mmcblk0p2): warning: maximal mount count reached, running e2fsck is recommended&lt;br /&gt;
[ 1553.379333] kjournald starting.  Commit interval 5 seconds&lt;br /&gt;
[ 1553.392669] EXT3-fs (mmcblk0p2): using internal journal&lt;br /&gt;
[ 1553.398101] EXT3-fs (mmcblk0p2): mounted filesystem with writeback data mode&lt;br /&gt;
[ 1553.405456] VFS: Mounted root (ext3 filesystem) on device 179:2.&lt;br /&gt;
[ 1553.416168] devtmpfs: mounted&lt;br /&gt;
[ 1553.422851] Freeing init memory: 204K&lt;br /&gt;
[ 1553.533721] usb 2-2.1: new high speed USB device using ehci-omap and address 3&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
[ 1553.659179] usb 2-2.1: New USB device found, idVendor=0424, idProduct=ec00&lt;br /&gt;
[ 1553.670410] usb 2-2.1: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[ 1553.684997] smsc95xx v1.0.4&lt;br /&gt;
[ 1553.753906] usb0: register 'smsc95xx' at usb-ehci-omap.0-2.1, smsc95xx USB 2.0 Ethernet, 5a:6b:7e:83:01:7d&lt;br /&gt;
[ 1553.854095] usb 2-2.2: new high speed USB device using ehci-omap and address 4&lt;br /&gt;
Please wait: booting...&lt;br /&gt;
Starting udev&lt;br /&gt;
[ 1554.000518] usb 2-2.2: New USB device found, idVendor=0b95, idProduct=7720&lt;br /&gt;
[ 1554.012084] usb 2-2.2: New USB device strings: Mfr=1, Product=2, SerialNumber=3&lt;br /&gt;
[ 1554.023956] usb 2-2.2: Product: AX88772 &lt;br /&gt;
[ 1554.032348] usb 2-2.2: Manufacturer: ASIX Elec. Corp.&lt;br /&gt;
[ 1554.042266] usb 2-2.2: SerialNumber: 000001&lt;br /&gt;
[ 1554.890899] eth0: register 'asix' at usb-ehci-omap.0-2.2, ASIX AX88772 USB 2.0 Ethernet, 00:50:b6:06:c4:57&lt;br /&gt;
[ 1555.316528] twl_rtc twl_rtc: rtc core: registered twl_rtc as rtc0&lt;br /&gt;
[ 1555.752227] usb 2-2.3: new high speed USB device using ehci-omap and address 5&lt;br /&gt;
[ 1556.591064] usb 2-2.3: New USB device found, idVendor=1415, idProduct=2000&lt;br /&gt;
[ 1556.747467] usb 2-2.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[ 1556.782348] usb 2-2.3: Product: USB Camera-B4.04.27.1&lt;br /&gt;
[ 1556.792510] usb 2-2.3: Manufacturer: OmniVision Technologies, Inc.&lt;br /&gt;
[ 1556.891815] gspca: main v2.8.0 registered&lt;br /&gt;
[ 1556.912536] usb 2-2.4: new low speed USB device using ehci-omap and address 6&lt;br /&gt;
[ 1556.932342] gspca: probing 1415:2000&lt;br /&gt;
[ 1557.069854] usb 2-2.4: New USB device found, idVendor=046d, idProduct=c016&lt;br /&gt;
[ 1557.082977] usb 2-2.4: New USB device strings: Mfr=1, Product=2, SerialNumber=0&lt;br /&gt;
[ 1557.095520] usb 2-2.4: Product: Optical USB Mouse&lt;br /&gt;
[ 1557.105316] usb 2-2.4: Manufacturer: Logitech&lt;br /&gt;
[ 1557.118957] ov534: Sensor ID: 7721&lt;br /&gt;
[ 1557.132659] input: Logitech Optical USB Mouse as /devices/platform/ehci-omap.0/usb2/2-2/2-2.4/2-2.4:1.0/input/input2&lt;br /&gt;
[ 1557.192199] generic-usb 0003:046D:C016.0001: input: USB HID v1.10 Mouse [Logitech Optical USB Mouse] on usb-ehci-omap.0-2.4/input0&lt;br /&gt;
[ 1557.240783] ov534: frame_rate: 30&lt;br /&gt;
[ 1557.262695] gspca: /dev/video0 created&lt;br /&gt;
[ 1557.304016] usbcore: registered new interface driver ov534&lt;br /&gt;
[ 1557.341369] ov534: registered&lt;br /&gt;
[ 1557.377960] usb 2-2.5: new low speed USB device using ehci-omap and address 7&lt;br /&gt;
[ 1557.578521] usb 2-2.5: New USB device found, idVendor=04f3, idProduct=0103&lt;br /&gt;
[ 1557.603027] usb 2-2.5: New USB device strings: Mfr=0, Product=0, SerialNumber=0&lt;br /&gt;
[ 1557.634033] input: HID 04f3:0103 as /devices/platform/ehci-omap.0/usb2/2-2/2-2.5/2-2.5:1.0/input/input3&lt;br /&gt;
[ 1557.694244] generic-usb 0003:04F3:0103.0002: input: USB HID v1.10 Keyboard [HID 04f3:0103] on usb-ehci-omap.0-2.5/input0&lt;br /&gt;
[ 1557.749481] input: HID 04f3:0103 as /devices/platform/ehci-omap.0/usb2/2-2/2-2.5/2-2.5:1.1/input/input4&lt;br /&gt;
[ 1557.829162] generic-usb 0003:04F3:0103.0003: input: USB HID v1.10 Device [HID 04f3:0103] on usb-ehci-omap.0-2.5/input1&lt;br /&gt;
Remounting root file system...&lt;br /&gt;
Caching udev devnodes&lt;br /&gt;
Populating dev cache&lt;br /&gt;
[ 1572.894226] Bluetooth: Core ver 2.15&lt;br /&gt;
[ 1572.904296] NET: Registered protocol family 31&lt;br /&gt;
[ 1572.914123] Bluetooth: HCI device and connection manager initialized&lt;br /&gt;
[ 1572.925842] Bluetooth: HCI socket layer initialized&lt;br /&gt;
[ 1572.953735] Bluetooth: L2CAP ver 2.14&lt;br /&gt;
[ 1572.962768] Bluetooth: L2CAP socket layer initialized&lt;br /&gt;
[ 1572.991455] Bluetooth: HIDP (Human Interface Emulation) ver 1.2&lt;br /&gt;
[ 1573.115783] NET: Registered protocol family 10&lt;br /&gt;
[ 1573.192199] NET: Registered protocol family 23&lt;br /&gt;
[ 1573.221649] IrCOMM protocol (Dag Brattli)&lt;br /&gt;
[ 1573.332153] Bluetooth: RFCOMM TTY layer initialized&lt;br /&gt;
[ 1573.342224] Bluetooth: RFCOMM socket layer initialized&lt;br /&gt;
[ 1573.352325] Bluetooth: RFCOMM ver 1.11&lt;br /&gt;
ALSA: Restoring mixer settings...&lt;br /&gt;
Cleaning: /etc/network/run/ifstate.&lt;br /&gt;
No state is present for card CameraB404271&lt;br /&gt;
/usr/sbin/alsactl: parse:1655: Unable to open file '/usr/share/alsa/init/00main': No such file or directory&lt;br /&gt;
No state is present for card CameraB404271&lt;br /&gt;
Configuring network interfaces... [ 1575.066680] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
eth0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
[ 1575.290283] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/eth0/00:50:b6:06:c4:57&lt;br /&gt;
Sending on   LPF/eth0/00:50:b6:06:c4:57&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPREQUEST on eth0 to 255.255.255.255 port 67&lt;br /&gt;
DHCPACK from 137.112.41.2&lt;br /&gt;
bound to 137.112.41.87 -- renewal in 1567 seconds.&lt;br /&gt;
usb0      no wireless extensions.&lt;br /&gt;
&lt;br /&gt;
Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/usb0/22:b8:c4:7d:a8:50&lt;br /&gt;
Sending on   LPF/usb0/22:b8:c4:7d:a8:50&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPREQUEST on usb0 to 255.255.255.255 port 67&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 5&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 14&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 16&lt;br /&gt;
[ 1614.207458] eth0: link up, 100Mbps, full-duplex, lpa 0x45E1&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 9&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 11&lt;br /&gt;
DHCPDISCOVER on usb0 to 255.255.255.255 port 67 interval 6&lt;br /&gt;
No DHCPOFFERS received.&lt;br /&gt;
No working leases in persistent database - sleeping.&lt;br /&gt;
done.&lt;br /&gt;
Starting portmap daemon: portmap.&lt;br /&gt;
net.ipv4.conf.default.rp_filter = 1&lt;br /&gt;
net.ipv4.conf.all.rp_filter = 1&lt;br /&gt;
INIT: Entering runlevel: 5&lt;br /&gt;
Starting system message bus: dbus.&lt;br /&gt;
Starting Hardware abstraction layer hald&lt;br /&gt;
Configuring leds:&lt;br /&gt;
  beagleboard::pmu_stat: none&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 Samba: smbd nmbd.&lt;br /&gt;
Starting syslog-ng:.&lt;br /&gt;
Starting internet superserver: xinetd.&lt;br /&gt;
 * Starting Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Starting Network connection manager daemon: NetworkManager.&lt;br /&gt;
Starting PVR&lt;br /&gt;
cups: started scheduler.&lt;br /&gt;
Starting GNOME Display Manager gdm&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 2010.7-test-20110220 beagleboard ttyS2&lt;br /&gt;
&lt;br /&gt;
beagleboard login: root&lt;br /&gt;
Last login: Thu Dec 29 17:12:23 GMT 2011 from 137.112.41.109 on pts/0&lt;br /&gt;
root@beagleboard:~#&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-X, page X, Shutdown messages ===&lt;br /&gt;
&lt;br /&gt;
 root@beagleboard:~# '''shutdown -r now'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
�Broadcast message from root (ttyS2) (Thu Dec 29 16:02:35 2011):&lt;br /&gt;
&lt;br /&gt;
The system is going down for reboot NOW!&lt;br /&gt;
INIT: INIT: Sending processes the TERM signal&lt;br /&gt;
Deconfiguring leds:&lt;br /&gt;
  beagleboard::pmu_stat: no trigger&lt;br /&gt;
  beagleboard::usr0: no trigger&lt;br /&gt;
  beagleboard::usr1: no trigger&lt;br /&gt;
Stopping Dropbear SSH server: dropbear.&lt;br /&gt;
 * Stopping Avahi mDNS/DNS-SD Daemon: avahi-daemon&lt;br /&gt;
[ ok ]&lt;br /&gt;
Stopping advanced power management daemon: No /usr/sbin/apmd found running; none killed.&lt;br /&gt;
apmd.&lt;br /&gt;
Stopping Vixie-cron.&lt;br /&gt;
Stopping Hardware abstraction layer hald&lt;br /&gt;
Stopping system message bus: dbus.&lt;br /&gt;
Stopping GNOME Display Manager gdm&lt;br /&gt;
Stopping Samba: smbd nmbd.&lt;br /&gt;
Stopping internet superserver: xinetd.&lt;br /&gt;
Stopping Network connection manager daemon: NetworkManager.&lt;br /&gt;
ALSA: Storing mixer settings...&lt;br /&gt;
/usr/sbin/alsactl: get_control:259: Cannot read control '2,0,0,Mic Capture Volume,0': Invalid argument&lt;br /&gt;
Deconfiguring network interfaces... Internet Systems Consortium DHCP Client 4.1.1-P1&lt;br /&gt;
Copyright 2004-2010 Internet Systems Consortium.&lt;br /&gt;
All rights reserved.&lt;br /&gt;
For info, please visit https://www.isc.org/software/dhcp/&lt;br /&gt;
&lt;br /&gt;
Listening on LPF/usb0/92:93:b0:18:e8:b6&lt;br /&gt;
Sending on   LPF/usb0/92:93:b0:18:e8:b6&lt;br /&gt;
Sending on   Socket/fallback&lt;br /&gt;
DHCPRELEASE on usb0 to 192.168.1.1 port 67&lt;br /&gt;
send_packet: Network is unreachable&lt;br /&gt;
send_packet: please consult README file regarding broadcast address.&lt;br /&gt;
done.&lt;br /&gt;
Stopping PVR&lt;br /&gt;
Stopping syslog-ng:.&lt;br /&gt;
Sending all processes the TERM signal...&lt;br /&gt;
Sending all processes the KILL signal...&lt;br /&gt;
hwclock: can't open '/dev/misc/rtc': No such file or directory&lt;br /&gt;
Unmounting remote filesystems...&lt;br /&gt;
Stopping portmap daemon: portmap.&lt;br /&gt;
Deactivating swap...&lt;br /&gt;
Unmounting local filesystems...&lt;br /&gt;
Rebooting... [67884.488464] Restarting system.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-X, page X, ifconfig ===&lt;br /&gt;
 root@beagleboard:~# '''ifconfig'''&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
root@beagleboard:~# ifconfig&lt;br /&gt;
eth1      Link encap:Ethernet  HWaddr 00:50:B6:0A:21:18  &lt;br /&gt;
          inet addr:137.112.101.235  Bcast:137.112.101.255  Mask:255.255.255.0&lt;br /&gt;
          inet6 addr: fe80::250:b6ff:fe0a:2118/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1&lt;br /&gt;
          RX packets:268 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:96 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000 &lt;br /&gt;
          RX bytes:19429 (18.9 KiB)  TX bytes:15858 (15.4 KiB)&lt;br /&gt;
&lt;br /&gt;
lo        Link encap:Local Loopback  &lt;br /&gt;
          inet addr:127.0.0.1  Mask:255.0.0.0&lt;br /&gt;
          inet6 addr: ::1/128 Scope:Host&lt;br /&gt;
          UP LOOPBACK RUNNING  MTU:16436  Metric:1&lt;br /&gt;
          RX packets:9 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:9 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:0 &lt;br /&gt;
          RX bytes:592 (592.0 b)  TX bytes:592 (592.0 b)&lt;br /&gt;
&lt;br /&gt;
usb0      Link encap:Ethernet  HWaddr 5A:3D:7F:FE:EE:BA  &lt;br /&gt;
          inet6 addr: fe80::583d:7fff:fefe:eeba/64 Scope:Link&lt;br /&gt;
          UP BROADCAST RUNNING MULTICAST  MTU:1492  Metric:1&lt;br /&gt;
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0&lt;br /&gt;
          TX packets:51 errors:0 dropped:0 overruns:0 carrier:0&lt;br /&gt;
          collisions:0 txqueuelen:1000 &lt;br /&gt;
          RX bytes:0 (0.0 b)  TX bytes:10614 (10.3 KiB)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-3, page 18, Linux Final Boot Messages ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
[67895.991638] usb 2-2.2: device descriptor read/64, error 18&lt;br /&gt;
[67896.002227] devtmpfs: mounted&lt;br /&gt;
[67896.009552] Freeing init memory: 204K&lt;br /&gt;
INIT: version 2.86 booting&lt;br /&gt;
[67896.202636] usb 2-2.2: device descriptor read/64, error 18&lt;br /&gt;
Please wait: booting...&lt;br /&gt;
Starting udev&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-4, page 29, Hello World, Embedded Style ===&lt;br /&gt;
&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;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== 2-5, page 29, Hello Output for Host Computer ===&lt;br /&gt;
&lt;br /&gt;
beagle@embed11:~/exercises$ gcc helloWorld.c &lt;br /&gt;
beagle@embed11:~/exercises$ ./a.out&lt;br /&gt;
Hello, World! Main is executing at 0x400524&lt;br /&gt;
This address (0x7fff1bfbafc8) is in our stack frame&lt;br /&gt;
This address (0x601038) is in our bss section&lt;br /&gt;
This address (0x601020) is in our data section&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== 2-5, page 29, Hello Output for Beagle ===&lt;br /&gt;
&lt;br /&gt;
root@beagleboard:~/exercises# gcc helloWorld.c &lt;br /&gt;
root@beagleboard:~/exercises# ./a.out&lt;br /&gt;
Hello, World! Main is executing at 0x8380&lt;br /&gt;
This address (0xbeb4fc94) 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;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Yifei</id>
		<title>User:Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Yifei"/>
				<updated>2012-01-17T00:51:52Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Yifei Li&lt;br /&gt;
&lt;br /&gt;
Master student in Electrical and Computer Engineering&lt;br /&gt;
&lt;br /&gt;
== Project ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 2--Yifei | Listings for Chapter 2 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 4--Yifei | Listings for Chapter 4 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 5--Yifei | Listings for Chapter 5 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 6 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 6--Yifei | Listings for Chapter 6 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 7 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 7--Yifei | Listings for Chapter 7 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 8 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 8--Yifei | Listings for Chapter 8 ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE497]]&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Yifei</id>
		<title>User:Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Yifei"/>
				<updated>2012-01-17T00:22:46Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: Add project and listings links&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Yifei Li&lt;br /&gt;
&lt;br /&gt;
Master student in Electrical and Computer Engineering&lt;br /&gt;
&lt;br /&gt;
== Project ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Chapter 2 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 2 xink | Listings for Chapter 2 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 4 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 4 xink | Listings for Chapter 4 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 5 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 5 xink | Listings for Chapter 5 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 6 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 6 xink | Listings for Chapter 6 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 7 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 7 xink | Listings for Chapter 7 ]]&lt;br /&gt;
&lt;br /&gt;
== Chapter 8 ==&lt;br /&gt;
&lt;br /&gt;
* [[ECE497 Listings for Chapter 8 xink | Listings for Chapter 8 ]]&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE497]]&lt;/div&gt;</summary>
		<author><name>Yifei</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>2011-12-07T20:20:37Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
We have both mini projects and projects in ECE497.  &lt;br /&gt;
&lt;br /&gt;
'''Mini projects''' involved finding something interested in the Beagle world and installing it to your beagle and demoing it to the class.  You would also create a wiki page documenting what you did to get it installed.  Often you may find multiple efforts do to something, for example there are a few efforts to port Android on the Beagle.  Your task is to figure out which one should be used.  Generally mini projects won't require you to write new code; however they are the background work that may lead to a full project.  You should do a couple mini projects for the class.  Generally they are done alone, but working in pairs is OK. These will be about 1/3 of your grade and should be done in the first 5 weeks or so.&lt;br /&gt;
&lt;br /&gt;
Only one '''full project''' is done for the class and it's done with a team of 3 or 4.  These projects can take a mini project (or a whole new idea) and add to it.  The goal is to have your work contribute to the open source world. Any code is generated will be kept on [https://github.com/ github] and a [http://bitbake.berlios.de/manual/ bitbake receipt] will be created to automatically download and create the object files.&lt;br /&gt;
&lt;br /&gt;
What follows are&lt;br /&gt;
&lt;br /&gt;
; Places to look for project ideas: Feel free to add your own suggestions.&lt;br /&gt;
; Mini Project ideas: Add your own suggestions, and do some of them.  Mark the ones you've done.&lt;br /&gt;
; Full Project ideas: ditto.&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;
== Mini Project Ideas ==&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;
! Suggestor&lt;br /&gt;
! Implementor&lt;br /&gt;
! Description&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Jack Ma&lt;br /&gt;
| Work up an example of controlling the PWM registers from the shell.&lt;br /&gt;
| [http://esdw.wordpress.com/2010/03/25/a-useful-tool-devmem2/ PWM via the shell]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Weather Station&lt;br /&gt;
| [http://dominion.thruhere.net/koen/cms/using-the-beaglebone-as-a-weatherstation Ultrasonic weather]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Mike Yuhas&lt;br /&gt;
| Interface the BeagleBoard with an SRF08 Ultrasonic Ranger over I2C&lt;br /&gt;
| [http://yetanotherhackersblog.wordpress.com/2011/04/07/interfacing-the-beagleboard-with-an-srf08-ultrasonic-ranger-over-i2c Ultrasonic Ranger]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Compile the PowerVR examples&lt;br /&gt;
| [http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp PowerVR Insider SDK Downloads]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Work up some GStreamer PS EYE Demos&lt;br /&gt;
| [http://www.electronsonradio.com/2011/06/playstation-eye-gstreamer-examples GStreamer PS EYE Demos] and [http://www.ridgerun.com/blog/?p=224 RidgeRun]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Douglas Selby&lt;br /&gt;
| Get TI' embedded speech recognizer installed and demo the examples.&lt;br /&gt;
| [https://gforge.ti.com/gf/project/tiesr TI Embedded Speech Recognizer]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Demo last year's TI speech project.  I have a microphone amplifier and mike you can use.&lt;br /&gt;
| [[ECE597 Project pyWikiReader]]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Stephen Mayhew&lt;br /&gt;
| Find who is doing what with Kinect on the Beagle and install and run it.&lt;br /&gt;
| [http://www.google.com/webhp?rlz=1C1GPCK_enUS392US392&amp;amp;sourceid=chrome-instant&amp;amp;ie=UTF-8&amp;amp;ion=1#hl=en&amp;amp;sugexp=ldymls&amp;amp;xhr=t&amp;amp;q=beagleboard+kinect&amp;amp;cp=0&amp;amp;qe=YmVhZ2xlYm9hcmQga2lu&amp;amp;qesig=9qrD0rFfjWfujRRGmkB_Bw&amp;amp;pkc=AFgZ2tn-cylx0f71PasgBKOazjBQY3VK712RWQ7DueEjQNAdbOHr6BCgUd9xdyXyPe8TWErkesrQ246vygwImnAS5mIzCG2-5g&amp;amp;pf=p&amp;amp;sclient=psy&amp;amp;rlz=1C1GPCK_enUS392US392&amp;amp;site=webhp&amp;amp;source=hp&amp;amp;aq=0&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=beagleboard+kin&amp;amp;pbx=1&amp;amp;bav=on.2,or.&amp;amp;fp=3e817b7ec5d13467&amp;amp;ion=1 Google - beagleboard kinect]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| I have several [http://en.wikipedia.org/wiki/PlayStation_Eye Sony PlayStation Eye web cams] and I have examples of how to pull video from them via V4L2 ([[ECE497 DaVinci Workshop Labs]]).  The Eye also has a 4 microphone array.  I don't know how to get audio from it.  Figure out how.  This may expand to a full project if there is no solution out there.&lt;br /&gt;
| [http://www.google.com/webhp?rlz=1C1GPCK_enUS392US392&amp;amp;sourceid=chrome-instant&amp;amp;ie=UTF-8&amp;amp;ion=1#hl=en&amp;amp;sugexp=ldymls&amp;amp;xhr=t&amp;amp;q=beagleboard+playstation+eye+microphone+array&amp;amp;cp=0&amp;amp;qe=YmVhZ2xlYm9hcmQgcGxheXN0YXRpb24gZXllIG1pY3JvcGhvbmUgYXJyYXk&amp;amp;qesig=Sdh5Ru_jodwYydoeTls1GA&amp;amp;pkc=AFgZ2tmwB41tQwF7XwrJPqFnf0NRO911bMCrbnU1HR9Vm6-Pg0sH8LvbJZsKwjKRUpoin4cZlwLIngZw8OC7dyanjcJCG4N_kg&amp;amp;pf=p&amp;amp;sclient=psy&amp;amp;rlz=1C1GPCK_enUS392US392&amp;amp;site=webhp&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=beagleboard+playstation+eye+microphone+array&amp;amp;pbx=1&amp;amp;bav=on.2,or.&amp;amp;fp=3e817b7ec5d13467&amp;amp;ion=1 Google - beagleboard playstation eye microphone array]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Find some examples of how to use '''cmem'''. CMEM is an API and library for managing one or more blocks of physically contiguous memory. It also provides address translation services (e.g. virtual to physical translation) and user-mode cache management APIs. It's used for managing the shared memory between the ARM and the DSP on the processor.  I've been unable to find examples of how to use it.&lt;br /&gt;
| [http://processors.wiki.ti.com/index.php/CMEM_Overview CMEM Overview]&lt;br /&gt;
|-&lt;br /&gt;
| Mike Lester&lt;br /&gt;
| &lt;br /&gt;
| Connect to your beagleboard using ethernet over USB. This allows your beagleboard to share the host computer's internet connection and allow you to connect via VNC/ssh without the need for an external router/switch. This should make development much easier. &lt;br /&gt;
| [[BeagleBoardBeginners#Connect_with_your_beagleboard_using_VNC_and_ethernet_over_USB | VNC]]&lt;br /&gt;
|-&lt;br /&gt;
| Brian Hulette&lt;br /&gt;
| &lt;br /&gt;
| Experiment with audio synthesis and/or sampling/processing.  You could either synthesize and play a few tones to generate a song, or have the Beagle sample an audio signal then process and output it to create a sort of effects pedal. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| David McGinnis&lt;br /&gt;
| David McGinnis&lt;br /&gt;
| Look into connecting the beagleboard to a phone or headphones using bluetooth. This could involve either outputting audio and taking in audio from a bluetooth headset, allowing you to have audio I/O with the beagleboard, or could involve connecting with phones automatically as they come into range of the beagleboard, allowing for an automatic attendence registration system, among other things.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| David Bliss&lt;br /&gt;
| David Bliss&lt;br /&gt;
| Get a video stream from a PS Eye, and identify the relevant device files.&lt;br /&gt;
| [http://en.wikipedia.org/wiki/PlayStation_Eye#cite_note-Linux_support-32 PlayStation_Eye#cite_note-Linux_support-32]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| William Gerth&lt;br /&gt;
| William Gerth&lt;br /&gt;
| Explore the possibility of implementing OpenAOS on the Beagle, to make a portable media player and etc.&lt;br /&gt;
| http://www.openaos.org/&lt;br /&gt;
|-&lt;br /&gt;
| Joel Carlson&lt;br /&gt;
|&lt;br /&gt;
| Lacking a serial port and don't have a USB-serial converter?  Why not find a way to make the BeagleBoard boot over a USB console connection?&lt;br /&gt;
| [http://itgen.blogspot.com/2011/03/beagleboard-xm-u-boot-without-serial.html BeagleBoard XM U-boot without Serial]&lt;br /&gt;
|-&lt;br /&gt;
| Joel Carlson&lt;br /&gt;
| Joel Carlson&lt;br /&gt;
| Depending on what one is working on, it might be useful to mount the BeagleBoard root filesystem over NFS.  The link to the right does that using a USB-Ethernet connection, but one that just runs over an Ethernet cable would be nice.&lt;br /&gt;
| [http://elinux.org/Mount_BeagleBoard_Root_Filesystem_over_NFS_via_USB Mount BeagleBoard Root Filesystem over NFS via USB]&lt;br /&gt;
Here's an example of mounting dfs/afs on the Beagle&lt;br /&gt;
&lt;br /&gt;
[[ECE497 Mounting dfs/afs in Linux]]&lt;br /&gt;
|-&lt;br /&gt;
| Lei Liu&lt;br /&gt;
| Lei Liu&lt;br /&gt;
| Build communication with FPGA via USB port.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Aaron Bamberger&lt;br /&gt;
| Aaron Bamberger&lt;br /&gt;
| Play around with the BeagleBoard's various SPI and I2C ports, and get it to talk to some simple SPI and I2C peripherals, such as a 7-Segment display driver or small LCD panel&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Jay Dial&lt;br /&gt;
| Jay Dial&lt;br /&gt;
| Look into the parallel computing possibilities of the BeagleBoard. See how difficult it would be to get two BeagleBoards to communicate properly for parallel computing.&lt;br /&gt;
| [http://antipastohw.blogspot.com/2010/09/how-to-make-beagleboard-elastic-r.html How to make a BeagleBoard Elastic R Beowulf Cluster]&lt;br /&gt;
|-&lt;br /&gt;
| Randy Billingsley&lt;br /&gt;
| Randy Billingsley&lt;br /&gt;
| Configure wlan on the beagle board using a wireless usb adapter&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Mike Fuson&lt;br /&gt;
| Mike Fuson&lt;br /&gt;
| Get XBMC working on the beagle.&lt;br /&gt;
| [http://elinux.org/BeagleBoard/GSoC/2010_Projects/XBMC XBMC wiki page]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Sam Allen&lt;br /&gt;
|&lt;br /&gt;
| Port Android to beagle&lt;br /&gt;
| It's done.  Check out [http://code.google.com/p/rowboat/ this].&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Yifei Li&lt;br /&gt;
| Change the splash screen to a Rose logo when the Beagle starts up&lt;br /&gt;
| [http://blog.bizmobiletech.com/?p=253&amp;amp;utm_source=feedburner&amp;amp;utm_medium=twitter&amp;amp;utm_campaign=Feed%3A+BeagleBoard+%28BeagleBoard.org%29 How to Change Angstrom Boot logo in beagleboard]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Ziyi Zhang&lt;br /&gt;
| Do remote debugging with Eclipse.  My page needs updating.&lt;br /&gt;
| [[ECE497 Installing the Eclipse IDE]]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|&lt;br /&gt;
| Investigate Eigen. Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. Explicit vectorization is performed for SSE 2/3/4, ARM NEON, and AltiVec instruction sets, with graceful fallback to non-vectorized code. This means it should run fast on the Beagle.  How fast does it run?  Has anyone used it on the Beagle?&lt;br /&gt;
| [http://eigen.tuxfamily.org/index.php?title=Main_Page eigen.tuxfamily.org]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Find what libraries are available for the DSP side of the DM 3730 and write some examples that use them.&lt;br /&gt;
| [http://focus.ti.com/docs/toolsw/folders/print/sprc265.html C64x+ DSP Library (DSPLIB)] &lt;br /&gt;
[http://focus.ti.com/docs/toolsw/folders/print/sprc092.html DSPLIB] &lt;br /&gt;
[http://focus.ti.com/docs/toolsw/folders/print/sprc094.html IMGLIB]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Convert the OSS labs to use the new ALSA drivers&lt;br /&gt;
| [http://www.alsa-project.org/main/index.php/Tutorials_and_Presentations ALSA Tutorials]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Dig into the DSS drivers.  The OMAP display subsystem supports rotation and mirroring, but the '''mirror''' and '''rotate''' files in '''/sys/devices/platform/omapdss/display''' ''X'' don't work.  Find the code that implements them see if you can figure out what's wrong.&lt;br /&gt;
| [http://elinux.org/BeagleBoardFAQ#.22DSS2.22_display_driver_for_.3E.3D_2.6.29 dss2]&lt;br /&gt;
|-&lt;br /&gt;
| Jack Ma&lt;br /&gt;
| &lt;br /&gt;
| Install an RT kernel on beagleboard. If successful, this could turn into a full project for exploring RT system and application.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Jack Ma&lt;br /&gt;
| &lt;br /&gt;
| Interface beagleboard with a GPS device to read location information. If successful, see if it's possible build a (small) app that downloads appropriate map from google map and shows the beagleboard's location.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Jack Ma&lt;br /&gt;
| &lt;br /&gt;
| Install a VPN server on beagleboard.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Yifei Li&lt;br /&gt;
| &lt;br /&gt;
| Demo a BeagleLight program that could synchronize LEDs with music.&lt;br /&gt;
| http://processors.wiki.ti.com/index.php/BeagleLight&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Full Projects ==&lt;br /&gt;
&lt;br /&gt;
=== Winter 2011-2012 ===&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&amp;amp;nbsp;Members&lt;br /&gt;
! Project Title&lt;br /&gt;
! Description &lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| [http://e2e.ti.com/blogs_/b/dlp_mems_blog/archive/2011/05/13/3d-structured-light-using-dlp-technology.aspx 3D Structured Light using DLP® Technology]&lt;br /&gt;
| Create 3D maps using a DLP pico and the Beagle.&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| [http://m.matrixsynth.com/2011/06/beagleboard-synth-proof-of-concept.htm Beagle Midi]&lt;br /&gt;
| Make the Beagle synthesize midi files.&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| [http://www.sakoman.com/OMAP/an-overiew-of-omap3-power-management-with-2639-pm.html Beagle Power Management]&lt;br /&gt;
| Work up some power management demos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 2011 ===&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&amp;amp;nbsp;Members&lt;br /&gt;
! Project Title&lt;br /&gt;
! Description &lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| [https://gforge.ti.com/gf/project/tiesr TI Embedded Speech Recognizer]&lt;br /&gt;
| Port TI's fixed-point speech recognizer to the DSP.  It currently runs on the ARM.&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Kinect&lt;br /&gt;
| [http://hackaday.com/2010/11/15/rendering-a-3d-environment-from-kinect-video/ Here] and [http://gamerfront.net/2010/12/with-a-second-kinect-you-can-map-out-your-bedroom-in-3d/4644 here] are some interesting things people are doing with Kinects.  Maybe we could port it to the Beagle.&lt;br /&gt;
|-&lt;br /&gt;
| Mike Lester&lt;br /&gt;
| Accelerometer-based auto-leveled projection&lt;br /&gt;
| Several projects have been started to add [http://matthsu-abacus.blogspot.com/2009/11/build-3-axis-accelerometer-on.html  accelerometer support] to the BeagleBoard. This project would involve getting an accelerometer installed and working, perhaps using a [http://elinux.org/BeagleBoard_Trainer trainer board], as well the [http://focus.ti.com/general/docs/gencontent.tsp?contentId=52770 TI Pico Projector]. The orientation data from the accelerometer would be used to rotate, skew, keystone the projected image in order to keep it level and normalized.&lt;br /&gt;
|-&lt;br /&gt;
| Aaron Bamberger&lt;br /&gt;
| Kinect Based 3d Scanner&lt;br /&gt;
| Build some sort of motorized gantry that allows the Kinect to be rotated around (and possibly from top to bottom) of an arbitrary object.  The motors would be controlled using the BeagleBoard's I2C or SPI interfaces.  Use libfreenect to capture depth information from every side of the object as the Kinect rotates around the object.  Use this data and OpenGL to build a 3d model of the scanned object&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Port winDSK6 to the Beagle&lt;br /&gt;
| [http://www.ece.wisc.edu/~morrow/software/ winDSK6] is a Windows program that talks to a TI 'C6711 DSK and performs many interesting audio effects.  This project would implement the code running on the Windows side on the ARM.  The ARM could capture a frame of audio and send it to the DSP for processing.  The ARM could then send the processed audio to the speakers.  [http://processors.wiki.ti.com/index.php/C6Run c6run] would be used to interact with the DSP.  &lt;br /&gt;
|-&lt;br /&gt;
| David Bliss&lt;br /&gt;
| Automated Die Tester&lt;br /&gt;
| Make a device that can roll a die, and keep statistics on how random the die is. The build can either be very complex, or very simple, depending on how you define &amp;quot;rolling a die&amp;quot;. The software doesn't necessarily have to know what the numbers mean, it just has to be able to uniquely identify the sides.&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Mayhew&lt;br /&gt;
| Set-Playing System&lt;br /&gt;
| Set is a relatively simple card game that lends itself nicely to image recognition and computer play. The layout is not very structured, and the game play is pretty simple. This project would incorporate image recognition, projection of possible moves (using the pico projector), and maybe even speech synthesis, and recognition. For example, if someone didn't know how to play Set, then the board could take them through a tutorial, asking questions of the user as it went along (&amp;quot;If I have these 2 cards, what 3rd card would make a set?&amp;quot;). This would make for an interesting demo at conferences. &lt;br /&gt;
|-&lt;br /&gt;
| Michael Fuson  &lt;br /&gt;
Jay Dial&lt;br /&gt;
| Spectrum Analyzer&lt;br /&gt;
|Create a real-time audio Spectrum analyzer on the BeagleBoard. [http://elinux.org/ECE497_Project_Spectrum_Analyzer Project Page]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 2010 ===&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&amp;amp;nbsp;Members&lt;br /&gt;
! Project Title&lt;br /&gt;
! Description &lt;br /&gt;
|-&lt;br /&gt;
| Yannick Polius&lt;br /&gt;
| [[ECE597 Project pyWikiReader | pyWikiReader]]&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;
| Paul Morrison &amp;lt;br&amp;gt; Steven Stark&lt;br /&gt;
| [[ECE597 3D Chess | 3D Chess with Networking]]&lt;br /&gt;
| This project would simulate a hand-held chess game, and the game would allow two player games using two beagleboards over a network connection.  The graphics would use the beagle's PowerVR SGX for hardware accelerated graphics by using OpenGL.  In addition to 3D graphics and networking, a third portion of the project would be to optimize the boot time because a chess computer should start up quickly.&lt;br /&gt;
|-&lt;br /&gt;
| Tom Most &amp;lt;br&amp;gt; David Baty &amp;lt;br&amp;gt; Mark Jacobson&lt;br /&gt;
| [[ECE597: Sumo Robot|Sumo Robot]]&lt;br /&gt;
| The goal of this project is to create a robot capable of competing in the 3.0 kg weight class of a sumo competition ([http://www.youtube.com/watch?v=V3OR_sHrOJM an example]).  This would have minor hardware and electronics elements, but would focus on communication with sensors using the BeagleBoard and the Linux kernel.  At minimum, this involves sensors to detect the edge of the ring and the opposing robot.  This would likely be implemented using Sharp IR rangefinders, a ultrasonic rangefinders, and ideally a camera.  [http://circ.mtco.com/competitions/2010/rules/sumo Sumo rules].&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 Network based MP3 player]]&lt;br /&gt;
| Network based mp3 player.  The Beagle will be programmed using a custom, protocol for transferring files from a network based server (x86 pc) to a Beagle.  Speakers will be attached to the Beagle, where the file will be played back.  Possible extensions are a LCD for displaying id3 tag information, and buttons for user interaction (next track, previous track, etc.) on the GPIO interface.&lt;br /&gt;
|-&lt;br /&gt;
|[[user:routhcr | Chris Routh]] &amp;lt;br&amp;gt; [[user:collinjc | J. Cody Collins]] &amp;lt;br&amp;gt; [[user:jacksogc | Greg Jackson]] [[user:Xinkeqiong | 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;
| [[ECE597_Adding_Sense_to_Beagle|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|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>Yifei</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>2011-12-07T20:00:53Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
[[Category:BeagleBoard]]&lt;br /&gt;
&lt;br /&gt;
We have both mini projects and projects in ECE497.  &lt;br /&gt;
&lt;br /&gt;
'''Mini projects''' involved finding something interested in the Beagle world and installing it to your beagle and demoing it to the class.  You would also create a wiki page documenting what you did to get it installed.  Often you may find multiple efforts do to something, for example there are a few efforts to port Android on the Beagle.  Your task is to figure out which one should be used.  Generally mini projects won't require you to write new code; however they are the background work that may lead to a full project.  You should do a couple mini projects for the class.  Generally they are done alone, but working in pairs is OK. These will be about 1/3 of your grade and should be done in the first 5 weeks or so.&lt;br /&gt;
&lt;br /&gt;
Only one '''full project''' is done for the class and it's done with a team of 3 or 4.  These projects can take a mini project (or a whole new idea) and add to it.  The goal is to have your work contribute to the open source world. Any code is generated will be kept on [https://github.com/ github] and a [http://bitbake.berlios.de/manual/ bitbake receipt] will be created to automatically download and create the object files.&lt;br /&gt;
&lt;br /&gt;
What follows are&lt;br /&gt;
&lt;br /&gt;
; Places to look for project ideas: Feel free to add your own suggestions.&lt;br /&gt;
; Mini Project ideas: Add your own suggestions, and do some of them.  Mark the ones you've done.&lt;br /&gt;
; Full Project ideas: ditto.&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;
== Mini Project Ideas ==&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;
! Suggestor&lt;br /&gt;
! Implementor&lt;br /&gt;
! Description&lt;br /&gt;
! Link&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Jack Ma&lt;br /&gt;
| Work up an example of controlling the PWM registers from the shell.&lt;br /&gt;
| [http://esdw.wordpress.com/2010/03/25/a-useful-tool-devmem2/ PWM via the shell]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Weather Station&lt;br /&gt;
| [http://dominion.thruhere.net/koen/cms/using-the-beaglebone-as-a-weatherstation Ultrasonic weather]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Mike Yuhas&lt;br /&gt;
| Interface the BeagleBoard with an SRF08 Ultrasonic Ranger over I2C&lt;br /&gt;
| [http://yetanotherhackersblog.wordpress.com/2011/04/07/interfacing-the-beagleboard-with-an-srf08-ultrasonic-ranger-over-i2c Ultrasonic Ranger]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Compile the PowerVR examples&lt;br /&gt;
| [http://www.imgtec.com/powervr/insider/sdkdownloads/index.asp PowerVR Insider SDK Downloads]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Work up some GStreamer PS EYE Demos&lt;br /&gt;
| [http://www.electronsonradio.com/2011/06/playstation-eye-gstreamer-examples GStreamer PS EYE Demos] and [http://www.ridgerun.com/blog/?p=224 RidgeRun]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Douglas Selby&lt;br /&gt;
| Get TI' embedded speech recognizer installed and demo the examples.&lt;br /&gt;
| [https://gforge.ti.com/gf/project/tiesr TI Embedded Speech Recognizer]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Demo last year's TI speech project.  I have a microphone amplifier and mike you can use.&lt;br /&gt;
| [[ECE597 Project pyWikiReader]]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Stephen Mayhew&lt;br /&gt;
| Find who is doing what with Kinect on the Beagle and install and run it.&lt;br /&gt;
| [http://www.google.com/webhp?rlz=1C1GPCK_enUS392US392&amp;amp;sourceid=chrome-instant&amp;amp;ie=UTF-8&amp;amp;ion=1#hl=en&amp;amp;sugexp=ldymls&amp;amp;xhr=t&amp;amp;q=beagleboard+kinect&amp;amp;cp=0&amp;amp;qe=YmVhZ2xlYm9hcmQga2lu&amp;amp;qesig=9qrD0rFfjWfujRRGmkB_Bw&amp;amp;pkc=AFgZ2tn-cylx0f71PasgBKOazjBQY3VK712RWQ7DueEjQNAdbOHr6BCgUd9xdyXyPe8TWErkesrQ246vygwImnAS5mIzCG2-5g&amp;amp;pf=p&amp;amp;sclient=psy&amp;amp;rlz=1C1GPCK_enUS392US392&amp;amp;site=webhp&amp;amp;source=hp&amp;amp;aq=0&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=beagleboard+kin&amp;amp;pbx=1&amp;amp;bav=on.2,or.&amp;amp;fp=3e817b7ec5d13467&amp;amp;ion=1 Google - beagleboard kinect]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| I have several [http://en.wikipedia.org/wiki/PlayStation_Eye Sony PlayStation Eye web cams] and I have examples of how to pull video from them via V4L2 ([[ECE497 DaVinci Workshop Labs]]).  The Eye also has a 4 microphone array.  I don't know how to get audio from it.  Figure out how.  This may expand to a full project if there is no solution out there.&lt;br /&gt;
| [http://www.google.com/webhp?rlz=1C1GPCK_enUS392US392&amp;amp;sourceid=chrome-instant&amp;amp;ie=UTF-8&amp;amp;ion=1#hl=en&amp;amp;sugexp=ldymls&amp;amp;xhr=t&amp;amp;q=beagleboard+playstation+eye+microphone+array&amp;amp;cp=0&amp;amp;qe=YmVhZ2xlYm9hcmQgcGxheXN0YXRpb24gZXllIG1pY3JvcGhvbmUgYXJyYXk&amp;amp;qesig=Sdh5Ru_jodwYydoeTls1GA&amp;amp;pkc=AFgZ2tmwB41tQwF7XwrJPqFnf0NRO911bMCrbnU1HR9Vm6-Pg0sH8LvbJZsKwjKRUpoin4cZlwLIngZw8OC7dyanjcJCG4N_kg&amp;amp;pf=p&amp;amp;sclient=psy&amp;amp;rlz=1C1GPCK_enUS392US392&amp;amp;site=webhp&amp;amp;aq=f&amp;amp;aqi=&amp;amp;aql=&amp;amp;oq=beagleboard+playstation+eye+microphone+array&amp;amp;pbx=1&amp;amp;bav=on.2,or.&amp;amp;fp=3e817b7ec5d13467&amp;amp;ion=1 Google - beagleboard playstation eye microphone array]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Find some examples of how to use '''cmem'''. CMEM is an API and library for managing one or more blocks of physically contiguous memory. It also provides address translation services (e.g. virtual to physical translation) and user-mode cache management APIs. It's used for managing the shared memory between the ARM and the DSP on the processor.  I've been unable to find examples of how to use it.&lt;br /&gt;
| [http://processors.wiki.ti.com/index.php/CMEM_Overview CMEM Overview]&lt;br /&gt;
|-&lt;br /&gt;
| Mike Lester&lt;br /&gt;
| &lt;br /&gt;
| Connect to your beagleboard using ethernet over USB. This allows your beagleboard to share the host computer's internet connection and allow you to connect via VNC/ssh without the need for an external router/switch. This should make development much easier. &lt;br /&gt;
| [[BeagleBoardBeginners#Connect_with_your_beagleboard_using_VNC_and_ethernet_over_USB | VNC]]&lt;br /&gt;
|-&lt;br /&gt;
| Brian Hulette&lt;br /&gt;
| &lt;br /&gt;
| Experiment with audio synthesis and/or sampling/processing.  You could either synthesize and play a few tones to generate a song, or have the Beagle sample an audio signal then process and output it to create a sort of effects pedal. &lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| David McGinnis&lt;br /&gt;
| David McGinnis&lt;br /&gt;
| Look into connecting the beagleboard to a phone or headphones using bluetooth. This could involve either outputting audio and taking in audio from a bluetooth headset, allowing you to have audio I/O with the beagleboard, or could involve connecting with phones automatically as they come into range of the beagleboard, allowing for an automatic attendence registration system, among other things.&lt;br /&gt;
| &lt;br /&gt;
|-&lt;br /&gt;
| David Bliss&lt;br /&gt;
| David Bliss&lt;br /&gt;
| Get a video stream from a PS Eye, and identify the relevant device files.&lt;br /&gt;
| [http://en.wikipedia.org/wiki/PlayStation_Eye#cite_note-Linux_support-32 PlayStation_Eye#cite_note-Linux_support-32]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| William Gerth&lt;br /&gt;
| William Gerth&lt;br /&gt;
| Explore the possibility of implementing OpenAOS on the Beagle, to make a portable media player and etc.&lt;br /&gt;
| http://www.openaos.org/&lt;br /&gt;
|-&lt;br /&gt;
| Joel Carlson&lt;br /&gt;
|&lt;br /&gt;
| Lacking a serial port and don't have a USB-serial converter?  Why not find a way to make the BeagleBoard boot over a USB console connection?&lt;br /&gt;
| [http://itgen.blogspot.com/2011/03/beagleboard-xm-u-boot-without-serial.html BeagleBoard XM U-boot without Serial]&lt;br /&gt;
|-&lt;br /&gt;
| Joel Carlson&lt;br /&gt;
| Joel Carlson&lt;br /&gt;
| Depending on what one is working on, it might be useful to mount the BeagleBoard root filesystem over NFS.  The link to the right does that using a USB-Ethernet connection, but one that just runs over an Ethernet cable would be nice.&lt;br /&gt;
| [http://elinux.org/Mount_BeagleBoard_Root_Filesystem_over_NFS_via_USB Mount BeagleBoard Root Filesystem over NFS via USB]&lt;br /&gt;
Here's an example of mounting dfs/afs on the Beagle&lt;br /&gt;
&lt;br /&gt;
[[ECE497 Mounting dfs/afs in Linux]]&lt;br /&gt;
|-&lt;br /&gt;
| Lei Liu&lt;br /&gt;
| Lei Liu&lt;br /&gt;
| Build communication with FPGA via USB port.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Aaron Bamberger&lt;br /&gt;
| Aaron Bamberger&lt;br /&gt;
| Play around with the BeagleBoard's various SPI and I2C ports, and get it to talk to some simple SPI and I2C peripherals, such as a 7-Segment display driver or small LCD panel&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Jay Dial&lt;br /&gt;
| Jay Dial&lt;br /&gt;
| Look into the parallel computing possibilities of the BeagleBoard. See how difficult it would be to get two BeagleBoards to communicate properly for parallel computing.&lt;br /&gt;
| [http://antipastohw.blogspot.com/2010/09/how-to-make-beagleboard-elastic-r.html How to make a BeagleBoard Elastic R Beowulf Cluster]&lt;br /&gt;
|-&lt;br /&gt;
| Randy Billingsley&lt;br /&gt;
| Randy Billingsley&lt;br /&gt;
| Configure wlan on the beagle board using a wireless usb adapter&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Mike Fuson&lt;br /&gt;
| Mike Fuson&lt;br /&gt;
| Get XBMC working on the beagle.&lt;br /&gt;
| [http://elinux.org/BeagleBoard/GSoC/2010_Projects/XBMC XBMC wiki page]&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Sam Allen&lt;br /&gt;
|&lt;br /&gt;
| Port Android to beagle&lt;br /&gt;
| It's done.  Check out [http://code.google.com/p/rowboat/ this].&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Yifei Li&lt;br /&gt;
| Change the splash screen to a Rose logo when the Beagle starts up&lt;br /&gt;
| [http://blog.bizmobiletech.com/?p=253&amp;amp;utm_source=feedburner&amp;amp;utm_medium=twitter&amp;amp;utm_campaign=Feed%3A+BeagleBoard+%28BeagleBoard.org%29 How to Change Angstrom Boot logo in beagleboard]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Ziyi Zhang&lt;br /&gt;
| Do remote debugging with Eclipse.  My page needs updating.&lt;br /&gt;
| [[ECE497 Installing the Eclipse IDE]]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
|&lt;br /&gt;
| Investigate Eigen. Eigen is a C++ template library for linear algebra: matrices, vectors, numerical solvers, and related algorithms. Explicit vectorization is performed for SSE 2/3/4, ARM NEON, and AltiVec instruction sets, with graceful fallback to non-vectorized code. This means it should run fast on the Beagle.  How fast does it run?  Has anyone used it on the Beagle?&lt;br /&gt;
| [http://eigen.tuxfamily.org/index.php?title=Main_Page eigen.tuxfamily.org]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Find what libraries are available for the DSP side of the DM 3730 and write some examples that use them.&lt;br /&gt;
| [http://focus.ti.com/docs/toolsw/folders/print/sprc265.html C64x+ DSP Library (DSPLIB)] &lt;br /&gt;
[http://focus.ti.com/docs/toolsw/folders/print/sprc092.html DSPLIB] &lt;br /&gt;
[http://focus.ti.com/docs/toolsw/folders/print/sprc094.html IMGLIB]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Convert the OSS labs to use the new ALSA drivers&lt;br /&gt;
| [http://www.alsa-project.org/main/index.php/Tutorials_and_Presentations ALSA Tutorials]&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| &lt;br /&gt;
| Dig into the DSS drivers.  The OMAP display subsystem supports rotation and mirroring, but the '''mirror''' and '''rotate''' files in '''/sys/devices/platform/omapdss/display''' ''X'' don't work.  Find the code that implements them see if you can figure out what's wrong.&lt;br /&gt;
| [http://elinux.org/BeagleBoardFAQ#.22DSS2.22_display_driver_for_.3E.3D_2.6.29 dss2]&lt;br /&gt;
|-&lt;br /&gt;
| Jack Ma&lt;br /&gt;
| &lt;br /&gt;
| Install an RT kernel on beagleboard. If successful, this could turn into a full project for exploring RT system and application.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Jack Ma&lt;br /&gt;
| &lt;br /&gt;
| Interface beagleboard with a GPS device to read location information. If successful, see if it's possible build a (small) app that downloads appropriate map from google map and shows the beagleboard's location.&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
| Jack Ma&lt;br /&gt;
| &lt;br /&gt;
| Install a VPN server on beagleboard.&lt;br /&gt;
|&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Full Projects ==&lt;br /&gt;
&lt;br /&gt;
=== Winter 2011-2012 ===&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&amp;amp;nbsp;Members&lt;br /&gt;
! Project Title&lt;br /&gt;
! Description &lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| [http://e2e.ti.com/blogs_/b/dlp_mems_blog/archive/2011/05/13/3d-structured-light-using-dlp-technology.aspx 3D Structured Light using DLP® Technology]&lt;br /&gt;
| Create 3D maps using a DLP pico and the Beagle.&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| [http://m.matrixsynth.com/2011/06/beagleboard-synth-proof-of-concept.htm Beagle Midi]&lt;br /&gt;
| Make the Beagle synthesize midi files.&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| [http://www.sakoman.com/OMAP/an-overiew-of-omap3-power-management-with-2639-pm.html Beagle Power Management]&lt;br /&gt;
| Work up some power management demos.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 2011 ===&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&amp;amp;nbsp;Members&lt;br /&gt;
! Project Title&lt;br /&gt;
! Description &lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| [https://gforge.ti.com/gf/project/tiesr TI Embedded Speech Recognizer]&lt;br /&gt;
| Port TI's fixed-point speech recognizer to the DSP.  It currently runs on the ARM.&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Kinect&lt;br /&gt;
| [http://hackaday.com/2010/11/15/rendering-a-3d-environment-from-kinect-video/ Here] and [http://gamerfront.net/2010/12/with-a-second-kinect-you-can-map-out-your-bedroom-in-3d/4644 here] are some interesting things people are doing with Kinects.  Maybe we could port it to the Beagle.&lt;br /&gt;
|-&lt;br /&gt;
| Mike Lester&lt;br /&gt;
| Accelerometer-based auto-leveled projection&lt;br /&gt;
| Several projects have been started to add [http://matthsu-abacus.blogspot.com/2009/11/build-3-axis-accelerometer-on.html  accelerometer support] to the BeagleBoard. This project would involve getting an accelerometer installed and working, perhaps using a [http://elinux.org/BeagleBoard_Trainer trainer board], as well the [http://focus.ti.com/general/docs/gencontent.tsp?contentId=52770 TI Pico Projector]. The orientation data from the accelerometer would be used to rotate, skew, keystone the projected image in order to keep it level and normalized.&lt;br /&gt;
|-&lt;br /&gt;
| Aaron Bamberger&lt;br /&gt;
| Kinect Based 3d Scanner&lt;br /&gt;
| Build some sort of motorized gantry that allows the Kinect to be rotated around (and possibly from top to bottom) of an arbitrary object.  The motors would be controlled using the BeagleBoard's I2C or SPI interfaces.  Use libfreenect to capture depth information from every side of the object as the Kinect rotates around the object.  Use this data and OpenGL to build a 3d model of the scanned object&lt;br /&gt;
|-&lt;br /&gt;
| Mark A. Yoder&lt;br /&gt;
| Port winDSK6 to the Beagle&lt;br /&gt;
| [http://www.ece.wisc.edu/~morrow/software/ winDSK6] is a Windows program that talks to a TI 'C6711 DSK and performs many interesting audio effects.  This project would implement the code running on the Windows side on the ARM.  The ARM could capture a frame of audio and send it to the DSP for processing.  The ARM could then send the processed audio to the speakers.  [http://processors.wiki.ti.com/index.php/C6Run c6run] would be used to interact with the DSP.  &lt;br /&gt;
|-&lt;br /&gt;
| David Bliss&lt;br /&gt;
| Automated Die Tester&lt;br /&gt;
| Make a device that can roll a die, and keep statistics on how random the die is. The build can either be very complex, or very simple, depending on how you define &amp;quot;rolling a die&amp;quot;. The software doesn't necessarily have to know what the numbers mean, it just has to be able to uniquely identify the sides.&lt;br /&gt;
|-&lt;br /&gt;
| Stephen Mayhew&lt;br /&gt;
| Set-Playing System&lt;br /&gt;
| Set is a relatively simple card game that lends itself nicely to image recognition and computer play. The layout is not very structured, and the game play is pretty simple. This project would incorporate image recognition, projection of possible moves (using the pico projector), and maybe even speech synthesis, and recognition. For example, if someone didn't know how to play Set, then the board could take them through a tutorial, asking questions of the user as it went along (&amp;quot;If I have these 2 cards, what 3rd card would make a set?&amp;quot;). This would make for an interesting demo at conferences. &lt;br /&gt;
|-&lt;br /&gt;
| Michael Fuson  &lt;br /&gt;
Jay Dial&lt;br /&gt;
| Spectrum Analyzer&lt;br /&gt;
|Create a real-time audio Spectrum analyzer on the BeagleBoard. [http://elinux.org/ECE497_Project_Spectrum_Analyzer Project Page]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== 2010 ===&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&amp;amp;nbsp;Members&lt;br /&gt;
! Project Title&lt;br /&gt;
! Description &lt;br /&gt;
|-&lt;br /&gt;
| Yannick Polius&lt;br /&gt;
| [[ECE597 Project pyWikiReader | pyWikiReader]]&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;
| Paul Morrison &amp;lt;br&amp;gt; Steven Stark&lt;br /&gt;
| [[ECE597 3D Chess | 3D Chess with Networking]]&lt;br /&gt;
| This project would simulate a hand-held chess game, and the game would allow two player games using two beagleboards over a network connection.  The graphics would use the beagle's PowerVR SGX for hardware accelerated graphics by using OpenGL.  In addition to 3D graphics and networking, a third portion of the project would be to optimize the boot time because a chess computer should start up quickly.&lt;br /&gt;
|-&lt;br /&gt;
| Tom Most &amp;lt;br&amp;gt; David Baty &amp;lt;br&amp;gt; Mark Jacobson&lt;br /&gt;
| [[ECE597: Sumo Robot|Sumo Robot]]&lt;br /&gt;
| The goal of this project is to create a robot capable of competing in the 3.0 kg weight class of a sumo competition ([http://www.youtube.com/watch?v=V3OR_sHrOJM an example]).  This would have minor hardware and electronics elements, but would focus on communication with sensors using the BeagleBoard and the Linux kernel.  At minimum, this involves sensors to detect the edge of the ring and the opposing robot.  This would likely be implemented using Sharp IR rangefinders, a ultrasonic rangefinders, and ideally a camera.  [http://circ.mtco.com/competitions/2010/rules/sumo Sumo rules].&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 Network based MP3 player]]&lt;br /&gt;
| Network based mp3 player.  The Beagle will be programmed using a custom, protocol for transferring files from a network based server (x86 pc) to a Beagle.  Speakers will be attached to the Beagle, where the file will be played back.  Possible extensions are a LCD for displaying id3 tag information, and buttons for user interaction (next track, previous track, etc.) on the GPIO interface.&lt;br /&gt;
|-&lt;br /&gt;
|[[user:routhcr | Chris Routh]] &amp;lt;br&amp;gt; [[user:collinjc | J. Cody Collins]] &amp;lt;br&amp;gt; [[user:jacksogc | Greg Jackson]] [[user:Xinkeqiong | 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;
| [[ECE597_Adding_Sense_to_Beagle|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|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>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/ECE497_Contributions_and_Project_Status</id>
		<title>ECE497 Contributions and Project Status</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/ECE497_Contributions_and_Project_Status"/>
				<updated>2011-11-22T21:17:13Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
&lt;br /&gt;
Please edit this page and add your user name, alphabetically by last name, to this list.&lt;br /&gt;
&lt;br /&gt;
Take a look at what you and others have contributed.&lt;br /&gt;
&lt;br /&gt;
# [[Special:Contributions/YourUserName| YourName]]&lt;br /&gt;
# [[Special:Contributions/Yoder | Mark A. Yoder]]&lt;br /&gt;
# [[Special:Contributions/Yuming | Yuming Cao]]&lt;br /&gt;
# [[Special:Contributions/Yifei | Yifei Li]]&lt;br /&gt;
# [[Special:Contributions/Yuhasmj | Michael Yuhas]]&lt;br /&gt;
# [[Special:Contributions/Ziyi Zhang | Ziyi Zhang]]&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	<entry>
		<id>http://elinux.org/User:Yifei</id>
		<title>User:Yifei</title>
		<link rel="alternate" type="text/html" href="http://elinux.org/User:Yifei"/>
				<updated>2011-11-22T21:13:31Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: Created page with &amp;quot;Yifei Li  Master student in Electrical and Computer Engineering  Category:ECE497&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Yifei Li&lt;br /&gt;
&lt;br /&gt;
Master student in Electrical and Computer Engineering&lt;br /&gt;
&lt;br /&gt;
[[Category:ECE497]]&lt;/div&gt;</summary>
		<author><name>Yifei</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>2011-11-22T21:05:43Z</updated>
		
		<summary type="html">&lt;p&gt;Yifei: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Category:ECE497]]&lt;br /&gt;
&lt;br /&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;
If you need help with syntax check out the [[Editing Quickstart Guide|eLinux guide]] or the [http://en.wikipedia.org/wiki/Wikipedia:Cheatsheet Wikipedia Cheetsheet].&lt;br /&gt;
&lt;br /&gt;
{|&lt;br /&gt;
! Name&lt;br /&gt;
! Date&lt;br /&gt;
|-&lt;br /&gt;
| [[user:Yoder | Mark A. Yoder]]&lt;br /&gt;
| 21-Nov-2011&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [[user:Yuming | Yuming Cao]]&lt;br /&gt;
| 21-Nov-2011&lt;br /&gt;
|-&lt;br /&gt;
|-&lt;br /&gt;
| [[user:Yuhasmj | Michael Yuhas]]&lt;br /&gt;
| 21-Nov-2011&lt;br /&gt;
|-&lt;br /&gt;
| [[user:Yifei | Yifei Li]]&lt;br /&gt;
| 22-Nov-2011&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Yifei</name></author>	</entry>

	</feed>