beagleboard url

BeagleBoard 101

Jason Kridner,
Wednesday, September 28, 2011, 8:00AM
Embedded Systems Conference Boston
Room 210

Slides available at



What is the BeagleBoard?


BeagleBoard-xM image

BeagleBoard-xM Details


BeagleBoard-xM image

Some BeagleBoard examples



Getting up and running

Classroom setup

Equipment is meant to stay in the classroom

Matrix GUI

Matrix GUI

Gnome Desktop

Gnome Desktop

Lab - Edit Matrix GUI menu


root@beagleboard:~# cd ~/labs/matrix
root@beagleboard:~/labs/matrix# ls -l
root@beagleboard:~/labs/matrix# gedit menu_main_1.html

Search for "p1" and replace the title with your name.

root@beagleboard:~/labs/matrix# cat run_matrix_gui
root@beagleboard:~/labs/matrix# ./run_matrix_gui

Why work with community?


Why Community?

Why push code to mainline?


Why Mainline?

Engaging the community

Ask questions the smart way

What do I work with the community on?


Typical BeagleBoard-xM boot process

The five phases

  1. ROM loads x-load (MLO)
    • Performs external DRAM configuration
  2. x-load loads u-boot
    • Default location is /media/mmcblk0p1/u-boot.bin
  3. u-boot executes default environment/commands
    • Default location is /media/mmcblk0p1/uEnv.txt
    • USERBUTTON will cause search for /media/mmcblk0p1/user.txt
    • By default, 'uenvcmd' is executed
  4. Commands load kernel
    • Default location is /media/mmcblk0p2/boot/uImage
  5. Kernel reads root file system

The default u-boot boot command


282  "if mmc rescan ${mmcdev}; then " \
283   "if userbutton; then " \
284    "setenv bootenv user.txt;" \
285   "fi;" \
286   "echo SD/MMC found on device ${mmcdev};" \
287   "if run loadbootenv; then " \
288    "echo Loaded environment from ${bootenv};" \
289    "run importbootenv;" \
290   "fi;" \
291   "if test -n $uenvcmd; then " \
292    "echo Running uenvcmd ...;" \
293    "run uenvcmd;" \
294   "fi;" \
295   "if run loaduimage; then " \
296    "run mmcboot;" \
297   "fi;" \
298  "fi;" \
299  "run nandboot;" \

Baseline software


Highlighted community projects





Qt Architecture

Qt modules

Qt modules

Qt demos


Qt Creator

Qt Hello World example

 #include <QApplication>
 #include <QPushButton>

 int main(int argc, char *argv[])
     QApplication app(argc, argv);

     QPushButton hello("Hello world!");
     hello.resize(100, 30);;
     return app.exec();

Lab - Qt Hello World


root@beagleboard:~# cd ~/labs/qt/hello
root@beagleboard:~/labs/qt/hello# . /usr/share/qt4/environment-setup 
root@beagleboard:~/labs/qt/hello# ls
root@beagleboard:~/labs/qt/hello# cat hello.cpp
root@beagleboard:~/labs/qt/hello# qmake2 -project
root@beagleboard:~/labs/qt/hello# qmake2
qt_config.prf:7: include(file) requires one argument.
root@beagleboard:~/labs/qt/hello# make clean
root@beagleboard:~/labs/qt/hello# make
root@beagleboard:~/labs/qt/hello# ls
root@beagleboard:~/labs/qt/hello# ./hello