Revision as of 20:09, 7 December 2011 by RobertCNelson (Talk | contribs)

Jump to: navigation, search

This page is about running a (ARM EABI) Debian distribution at BeagleBoard. BeagleBoard will boot the (ARM EABI) Debian distribution from SD card. Debian's NetInstall will be used to install Debian onto your Beagle.

Note: Debian armel deb's are compiled for armv4t, this allows debian to support a larger number of arm devices with a single port, at only the sacrifice of speed.


If you need any help:

  • When asking for help, please provide some debugging information:
    • U-Boot Version installed on board
    • Kernel Version: uname -a
    • pastebin dmesg
      • Copy from serial port or use "dmesg | pastebinit" (sudo apt-get install pastebinit)

Recommended Beagle Software

X-loader/MLO (1.4.4ss) & U-Boot (2010.03) (Zippy1 & Zippy2 Support)

  • All Bx, C2/3/4 Boards are required to upgrade to atleast these MLO and U-Boot versions.
  • XM Boards have no NAND, so u-boot.bin is always required on the first partition
  • Directions: Upgrade X-loader and U-Boot

Debian NetInstall

You will need a 1GB SD card or greater.

Standard System : ~455MB
+ Desktop environment (GNOME) : ~2.9GB

Debian Squeeze

git clone git://
cd netinstall

Install script for Beagle Bx

sudo ./ --mmc /dev/sdX --uboot beagle_bx --distro squeeze

Install script for Beagle Cx, xM A/B/C

sudo ./ --mmc /dev/sdX --uboot beagle --distro squeeze

Install script for BeagleBone A2/A3

sudo ./ --mmc /dev/sdX --uboot bone --distro squeeze

Install script for Panda

sudo ./ --mmc /dev/sdX --uboot panda --distro squeeze
  • Options:
    • --uboot : beagle, panda, bone
    • --distro : squeeze
    • --firmware : installs firmware
    • --serial-mode : debian-installer uses Serial Port

NOTE: There is a bug in the USB Keyboard mapping, the debian-installer will initially fail, if and when the error occurs switch to the option "kernel keymap" and continue installing..

Beagleboard: NetInstall

Choose a language
 C - No localization
 English - English
Configure the network:
 usb0: USB net <- (usually the OTG port, but could also be the smsc95xx adapter on the beagle and panda)
 usb1: USB net <- (usually the smsc95xx adapter on the beagle and panda, when usb0 exist)
 eth0: Ethernet <- Your usb-ethernet device
 wlan0: Wifi <- Your usb-wifi device.. See BeagleBoardDebianWifiInstallInfo for my hack to set it up.

usb0 howto

There's a lot of question on irc about this, it might make sense to add a wiki page going thru with linux/winxp etc.. --RobertCNelson 00:55, 23 April 2010 (UTC)

Configuring usb0 network bridge for 2.6.29:
 While you chose your keyboard layout, setup a bridge with ethX and usbX.
  # ifconfig ethX
  # ifconfig usbX
  # brctl addbr brX
  # brctl addif brX ethX
  # brctl addif brX usbX
  # ifconfig brX up
  # dhclient brX
 *Sometimes the first beagle DHCP will fail(probably due PC trying autoconnect), just run the auto configuration again and it will configure it right.
Continue the install without loading kernel modules? : <yes>
Partition disks: This partitioner doesn't have the inform.....? : <yes>
 Logical Volume Manager not available: <Continue>
Partition disks:
 Guided - Use the largest continuous free space
Partitioning scheme....


MMC/SD card #1 (mmcblk0) - 2.0 GB Unknown
>  #1 primary  57.5 MB     fat32
>  #2 primary   1.8 GB B f ext3  /
>  #5 logical 148.0 MB   f swap  swap
Finish partitioning and write changes to disk
 Write the changes to disk? : <yes>
No installable kernel was found in the defined APT sources? : 
 Continue without installing a kernel? : <yes>
Standard System
No BootLoader: <ok>

Beagleboard: Install Latest Kernel

Script File:

sudo /bin/bash

export DIST=squeeze
wget $(cat ./LATEST-omap | grep STABLE | awk '{print $3}')

Reboot with your new Kernel

Debian armhf port

The armhf port of Debian is still only on the ports server, it hasn't been merged to main..

Port Details: Status:

armhf Demo Image

Image Updated:

  • Dec 7: Switched image to sid vs ports/unstable..

Services Active:

Note: Depending on your internal network these may work out the box
SSH, Port 22: ssh ubuntu@omap
Getty, Serial Port

Default user: debian pass: temppwd

Default root user: root pass: root

Get prebuilt image:

mirrors (will take some time to update):

Verify Image with:

md5sum sid-minimal-armhf-2011-12-07.tar.xz
02aad3c6148ed7936bf755140be80b45  sid-minimal-armhf-2011-12-07.tar.xz

Unpack Image:

tar xJf sid-minimal-armhf-2011-12-07.tar.xz
cd sid-minimal-armhf-2011-12-07

Install Image:

Quick Install script for Beagle Bx

sudo ./ --mmc /dev/sdX --uboot beagle_bx

Quick Install script for Beagle Cx

sudo ./ --mmc /dev/sdX --uboot beagle_cx

Quick Install script for Beagle xM A/B/C

sudo ./ --mmc /dev/sdX --uboot beagle_xm

Quick Install script for BeagleBone A2/A3

sudo ./ --mmc /dev/sdX --uboot bone

Quick Install script for Panda

sudo ./ --mmc /dev/sdX --uboot panda
  • Additional Options
    • --rootfs <ext4 default>
    • --swap_file <swap file size in MB's>
    • --addon pico <ti pico projector>
    • --addon ulcd <CircuitCo 7 inch lcd>
    • --svideo-ntsc <use ntsc over dvi for video)
    • --svideo-pal <use pal over dvi for video)


  • do NOT run update-initramfs and update the boot uInitrd, as location of gets moved.. but is known and patched, it'll just take awhile to get rebuilt. So the next update of this image should have it..

rootstock for armhf


Must have, these options for debian armhf...

--components "main" --arch armhf --mirror

Debian Configuration

Serial Ports


edit /etc/inittab and add:

S:2345:respawn:/sbin/getty 115200 ttyS2

For root access over the serial port add ttyS2 to /etc/securetty


edit /etc/inittab and add:

S:2345:respawn:/sbin/getty 115200 ttyO2


See BeagleBoard Debian WiFi install info.

SGX Video Acceleration

Requirements: 2.6-stable from launchpad or deb's from (the Demo Images hosted on meet this requirement)

Note: An older version of these instructions was adapted for the IGEPv2 platform - if you are following this tutorial and have an IGEPv2, consider using instead

SDK unPackage Script

Download the latest version of the "" script


Make script executable

chmod a+x ./

Run script


After Successfully running:

:~/temp$ ls
GFX_X_XX_XX_XX_libs.tar.gz                      : -> Copy to Beagle (System Libs)
GFX_Linux_SDK.tar.gz                            : -> Copy to Beagle (DEMO's)

Beagle: GFX_*_libs.tar.gz

tar xf GFX_4_00_00_01_libs.tar.gz  (extracts and
./ (copies necessary SGX libs and startup script)
./ (force run the new init script, or you can just reboot...)

On Successful install:

Stopping PVR
Starting PVR
Starting SGX fixup for ES2.x (or ES3.x) (or ES5.x xM)

Reboot for good measure

sudo reboot

Beagle: GFX_Linux_SDK.tar.gz

tar xf GFX_Linux_SDK.tar.gz
cd GFX_Linux_SDK
tar xf OGLES.tar.gz

Test SGX with a DEMO

cd OGLES/SDKPackage/Binaries/CommonX11/Demos/EvilSkull

Trouble Shooting

sudo rm /etc/powervr-esrev
sudo depmod -a omaplfb
sudo /etc/init.d/pvr restart



Seems to work on all Beagle's, with atleast 2.6.38+ now...

Requirements: 2.6-stable from launchpad or 2.6.38+ deb's from (the Demo Images hosted on meet this requirement)

Download the latest version of the "" script


Make script executable

chmod a+x ./

Package script:


Copy DSP_Install_libs.tar.gz to beagle

Setup network...


tar xf DSP_Install_libs.tar.gz



Build gst-dsp stuff..



sudo gst-launch playbin2 uri=file://(file)

Xorg omapfb Drivers

By default Debian will try* to use the FBDEV video driver, however for the beagleboard we can take advantage of a more software optimized driver (still not using the sgx video hardware) using the NEON extensions of the Cortex-A8 core.

Lenny might need this xorg.conf, but it's best to use omapfb later in this guide..


Section "Device"
	Identifier	"Configured Video Device" 
	Option		"UseFBDev"		"true"
	Driver		"fbdev"

cat /var/log/Xorg.0.log | grep FBDEV

(II) FBDEV: driver for framebuffer: fbdev
(II) FBDEV(0): using default device
(II) FBDEV(0): Creating default Display subsection in Screen section
(==) FBDEV(0): Depth 16, (==) framebuffer bpp 16
(==) FBDEV(0): RGB weight 565

Login into Debian and open a new terminal, xorg has to be running..

xvinfo -display :0.0

X-Video Extension version 2.2
screen #0
 no adaptors present


Note: These are built with neon optimizations:;a=blob;f=debian/rules;h=c2f0d5391c96c5abb60b1e691ad86bb27e0c17d8;hb=HEAD (line 48/49)


wget -c
sudo dpkg -i xserver-xorg-video-omap3_0.1.1-2_armel.deb


sudo apt-get install xserver-xorg-video-omap3



Section "Monitor"
    Identifier "Configured Monitor"

Section "Screen"
    Identifier "Default Screen"
    Device "Configured Video Device"
    #Limited by SGX?
    DefaultDepth 16

Section "Device"
    Identifier "Configured Video Device"
    Driver "omapfb"
    Option "fb" "/dev/fb0"

To verify it was correctly installed, reboot and:

cat /var/log/Xorg.0.log | grep omapfb

(II) LoadModule: "omapfb"
(II) Loading /usr/lib/xorg/modules/drivers//
(II) Module omapfb: vendor="X.Org Foundation"
(II) omapfb: Driver for OMAP framebuffer (omapfb) and external LCD controllers:
(WW) Error opening /sys/devices/platform/omapfb/ctrl/name: No such file or directory
(II) omapfb(0): VideoRAM: 1800KiB (SDRAM)
(II) omapfb(0): Creating default Display subsection in Screen section
(**) omapfb(0): Depth 16, (--) framebuffer bpp 16
(==) omapfb(0): RGB weight 565
(==) omapfb(0): Default visual is TrueColor
(--) omapfb(0): Virtual size is 1280x720 (pitch 1280)
(**) omapfb(0):  Built-in mode "current"
(==) omapfb(0): DPI set to (96, 96)
(II) omapfb(0): DPMS enabled
(II) omapfb(0): Video plane capabilities:
(II) omapfb(0): Video plane supports the following image formats:
(II) omapfb(0): XVideo extension initialized

Login into Debian and open a new terminal, xorg has to be running..

xvinfo -display :0.0

X-Video Extension version 2.2
screen #0
  Adaptor #0: "OMAP XV adaptor"
    number of ports: 1
    port base: 56
    operations supported: PutImage 
    supported visuals:
      depth 16, visualID 0x21
    number of attributes: 1

Building Kernel

Download SRC

git clone git://

Build Kernel


Optional Building Deb File


Upgrading from Debian 5 to Debian 6

Upgrading from Debian 5 to Debian 6 report and tutorial.