BeagleBoardDebian

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

= Help =

If you need any help:


 * Kernel related help:
 * Email Beagleboard user group *Recommended method
 * #beagle: Beagle irc on freenode, accessible also by web interface (logs)
 * Kernel Trees
 * v4.6.x kernel branch
 * BeagleBone
 * Development Kernel source code


 * 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)

= Official BeagleBoard.org Images for shipping with BeagleBone Black =
 * http://beagleboard.org/source

= Recommended Beagle Software =

Mainline U-Boot:
 * All old Ax, Bx, Cx and Dx boards are required to upgrade to at least these U-Boot versions.
 * XM Boards have no NAND, so MLO/u-boot.img is always required on the first partition
 * Directions: Upgrade X-loader and U-Boot

= Debian NetInstall =

Scripts: git clone https://github.com/RobertCNelson/netinstall.git cd netinstall

Device Options: BeagleBoard --dtb omap3-beagle BeagleBoard-xM --dtb omap3-beagle-xm BeagleBoard-X15 --dtb am57xx-beagle-x15 BeagleBone (serial) --dtb am335x-bone-serial BeagleBone (video via cape) --dtb am335x-bone-video BeagleBone Black --dtb am335x-boneblack PandaBoard (A1->A3) --dtb omap4-panda PandaBoard (A4->Ax) --dtb omap4-panda-a4 PandaBoard ES --dtb omap4-panda-es

You will need a 1GB SD card or greater. Standard System : ~455MB

Debian 8 (jessie)
Quick Install script for "board" sudo ./mk_mmc.sh --mmc /dev/sdX --dtb "board" --distro jessie

So For the BeagleBoard xM: sudo ./mk_mmc.sh --mmc /dev/sdX --dtb omap3-beagle-xm --distro jessie


 * Options:
 * --firmware : installs firmware
 * --serial-mode : debian-installer uses Serial Port

= Demo Image =

git clone https://github.com/RobertCNelson/armv7-multiplatform.git cd armv7-multiplatform git checkout origin/v4.11.x -b tmp ./build_kernel.sh git clone https://github.com/RobertCNelson/ti-linux-kernel-dev.git cd ti-linux-kernel-dev git checkout origin/ti-linux-4.4.y -b tmp ./build_kernel.sh
 * Advanced Users only: BeagleBoard xM: Kernel source, used in these demo images: https://github.com/RobertCNelson/armv7-multiplatform
 * Advanced Users only: BeagleBone/BeagleBone Black: Kernel v4.4.x source, used in these demo images: https://github.com/RobertCNelson/ti-linux-kernel-dev/tree/ti-linux-4.4.y

Debian (jessie)
Default username/password:
 * username: debian
 * password: temppwd

Image Updated:
 * 2017-06-12
 * BeagleBoard xM: v4.11.4-armv7-x0 kernel
 * All BeagleBone Varients: v4.4.68-ti-r108 kernel
 * OMAP5432 uEVM: v4.4.68-ti-r108 kernel
 * BeagleBoard-X15: v4.4.68-ti-r108 kernel
 * 2017-05-21
 * BeagleBoard xM: v4.9.28-armv7-x4 kernel
 * All BeagleBone Varients: v4.4.62-ti-r104 kernel
 * OMAP5432 uEVM: v4.4.62-ti-r104 kernel
 * BeagleBoard-X15: v4.4.62-ti-r104 kernel
 * 2017-04-07
 * BeagleBoard xM: v4.9.20-armv7-x4 kernel
 * All BeagleBone Varients: v4.4.59-ti-r96 kernel
 * OMAP5432 uEVM: v4.4.59-ti-r96 kernel
 * BeagleBoard-X15: v4.4.59-ti-r96 kernel

Services Active: Note: Depending on your internal network these may work out of the box Apache, Port 80: http://arm.local/ (Bone: via usb) http://192.168.7.2 SSH, Port 22: ssh debian@arm.local (Bone: via usb) debian@192.168.7.2 Getty, Serial Port

Default user: debian pass: temppwd

Get prebuilt image: wget https://rcn-ee.com/rootfs/2017-06-12/elinux/debian-8.8-console-armhf-2017-06-12.tar.xz

Verify Image with: sha256sum debian-8.8-console-armhf-2017-06-12.tar.xz 01037ac480e8611bef0b97a40febe8022134e06b1d461c737c94c95135b5e9cb debian-8.8-console-armhf-2017-06-12.tar.xz

Unpack Image: tar xf debian-8.8-console-armhf-2017-06-12.tar.xz cd debian-8.8-console-armhf-2017-06-12

If you don't know the location of your SD card: sudo ./setup_sdcard.sh --probe-mmc

You should see something like:

Are you sure? I don't see [/dev/idontknow], here is what I do see... fdisk -l: Disk /dev/sda: 500.1 GB, 500107862016 bytes <- x86 Root Drive Disk /dev/sdd: 3957 MB, 3957325824 bytes <- MMC/SD card lsblk: NAME  MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT sda     8:0    0 465.8G  0 disk ├─sda1  8:1    0 446.9G  0 part /  <- x86 Root Partition ├─sda2  8:2    0     1K  0 part └─sda5  8:5    0  18.9G  0 part [SWAP] sdd     8:48   1   3.7G  0 disk ├─sdd1  8:49   1    64M  0 part └─sdd2  8:50   1   3.6G  0 part


 * In this example, we can see via mount, /dev/sda1 is the x86 rootfs, therefore /dev/sdd is the other drive in the system, which is the MMC/SD card that was inserted and should be used by ./setup_sdcard.sh...

Install Image:

Quick install script for [board] sudo ./setup_sdcard.sh --mmc /dev/sdX --dtb board

board options:
 * BeagleBoard Ax/Bx/Cx/Dx         - omap3-beagle
 * BeagleBoard xM                  - omap3-beagle-xm
 * All BeagleBone Varients         - beaglebone
 * OMAP5432 uEVM                   - omap5-uevm
 * BeagleBoard-X15                 - am57xx-beagle-x15

So for the BeagleBoard xM: sudo ./setup_sdcard.sh --mmc /dev/sdX --dtb omap3-beagle-xm

Advanced: Build Image:

git clone https://github.com/RobertCNelson/omap-image-builder.git cd omap-image-builder git checkout v2017.06.1 -b tmp

Stable:

./RootStock-NG.sh -c rcn-ee_console_debian_jessie_armhf

Testing:

./RootStock-NG.sh -c rcn-ee_console_debian_stretch_armhf

Debian Testing (stretch)
Image Updated:
 * 2017-06-12
 * BeagleBoard xM: v4.11.4-armv7-x0 kernel
 * All BeagleBone Varients: v4.4.68-ti-r108 kernel
 * OMAP5432 uEVM: v4.4.68-ti-r108 kernel
 * BeagleBoard-X15: v4.4.68-ti-r108 kernel
 * 2017-05-21
 * BeagleBoard xM: v4.9.28-armv7-x4 kernel
 * All BeagleBone Varients: v4.4.62-ti-r104 kernel
 * OMAP5432 uEVM: v4.4.62-ti-r104 kernel
 * BeagleBoard-X15: v4.4.62-ti-r104 kernel
 * 2017-04-07
 * BeagleBoard xM: v4.9.20-armv7-x4 kernel
 * All BeagleBone Varients: v4.4.59-ti-r96 kernel
 * OMAP5432 uEVM: v4.4.59-ti-r96 kernel
 * BeagleBoard-X15: v4.4.59-ti-r96 kernel

Get prebuilt image: wget https://rcn-ee.com/rootfs/2017-06-12/elinux/debian-stretch-console-armhf-2017-06-12.tar.xz

Verify Image with: sha256sum debian-stretch-console-armhf-2017-06-12.tar.xz f88ea570a121f2e79d4a1c37f420bc9a58340e32df48428ef5f047c538fe8e5c debian-stretch-console-armhf-2017-06-12.tar.xz

Unpack image: tar xf debian-stretch-console-armhf-2017-06-12.tar.xz cd debian-stretch-console-armhf-2017-06-12

Then follow the directions shown above with the other images...

= Flasher =

eMMC: All BeagleBone Varients with eMMC
This image can be written to a 2GB (or larger) microSD card, via 'dd' on linux or on Windows/Mac/Linux: https://etcher.io First press and hold the boot select button (next to the microSD card), then apply power. On bootup the board should indicate it has started the flashing procedure visually via a Cylon Sweep pattern shown on the 4 LED's next to the ethernet jack. Progress is reported on both the serial debug and hdmi connectors, once completed all 4 LED's should be full ON. Simply remove power, remove the microSD card and Debian will now boot directly from eMMC.

Script for reference: (this is the script that writes to the eMMC) https://github.com/RobertCNelson/boot-scripts/blob/master/tools/eMMC/init-eMMC-flasher-v3.sh

This script will only take about 5-6 Minutes after power on.

Notes:
 * If only two LED's stay lit and nothing happens, the board has crashed due to lack of power. Retry with a 5Volt DC power supply connected.
 * If the 4 LED's blink a constant pattern, the eMMC write has failed. First REMOVE ALL capes, then retry again.

User: debian pass: temppwd

Image Updated:
 * 2017-06-12
 * All BeagleBone Varients with eMMC: v4.4.68-ti-r108 kernel
 * 2017-05-21
 * All BeagleBone Varients with eMMC: v4.4.62-ti-r104 kernel
 * 2017-04-07
 * All BeagleBone Varients with eMMC: v4.4.59-ti-r96 kernel

Get prebuilt image: wget https://rcn-ee.com/rootfs/2017-06-12/flasher/BBB-eMMC-flasher-debian-8.8-console-armhf-2017-06-12-2gb.img.xz

Verify Image with: sha256sum BBB-eMMC-flasher-debian-8.8-console-armhf-2017-06-12-2gb* 11c97d29cd95bf53e2b0c49f43a483a5f670fea6911badedccc6762dd800db9c BBB-eMMC-flasher-debian-8.8-console-armhf-2017-06-12-2gb.img.xz

Windows/Mac/Linux gui http://etcher.io

Linux: (dd) xzcat BBB-eMMC-flasher-debian-8.8-console-armhf-2017-06-12-2gb.img.xz | sudo dd of=/dev/sdX

eMMC: BeagleBoard-X15
This image can be written to a 2GB (or larger) microSD card, via 'dd' on linux or on Windows/Mac/Linux: https://etcher.io First press and hold the boot select button (next to the microSD card), then apply power. On bootup the board should indicate it has started the flashing procedure visually via a Cylon Sweep pattern shown on the 4 LED's next to the ethernet jack. Progress is reported on both the serial debug and hdmi connectors, once completed all 4 LED's should be full ON. Simply remove power, remove the microSD card and Debian will now boot directly from eMMC.

Script for reference: (this is the script that writes to the eMMC) https://github.com/RobertCNelson/boot-scripts/blob/master/tools/eMMC/init-eMMC-flasher-v3.sh

This script will only take about 5-6 Minutes after power on.

Notes:
 * If only two LED's stay lit and nothing happens, the board has crashed due to lack of power. Retry with a 5Volt DC power supply connected.
 * If the 4 LED's blink a constant pattern, the eMMC write has failed. First REMOVE ALL capes, then retry again.

User: debian pass: temppwd

Image Updated:
 * 2017-06-12
 * BeagleBoard-X15: v4.4.68-ti-r108 kernel
 * 2017-05-21
 * BeagleBoard-X15: v4.4.62-ti-r104 kernel
 * 2017-04-07
 * BeagleBoard-X15: v4.4.59-ti-r96 kernel

Get prebuilt image: wget https://rcn-ee.com/rootfs/2017-06-12/flasher/bbx15-eMMC-flasher-debian-8.8-console-armhf-2017-06-12-2gb.img.xz

Verify Image with: sha256sum bbx15-eMMC-flasher-debian-8.8-console-armhf-2017-06-12-2gb* 179aaa8d6b68eccb5a2a04d37cb0d08a32c95456b8486bf77519d11fed3454c5 bbx15-eMMC-flasher-debian-8.8-console-armhf-2017-06-12-2gb.img.xz

Windows/Mac/Linux gui http://etcher.io

Linux: (dd) xzcat bbx15-eMMC-flasher-debian-8.8-console-armhf-2017-06-12-2gb.img.xz | sudo dd of=/dev/sdX

= raw microSD img =

BeagleBoard xM
This image can be written to a 2GB (or larger) microSD card, via 'dd' on linux or on Windows/Mac/Linux: https://etcher.io

User: debian pass: temppwd

Auto partition resize: cd /opt/scripts/tools git pull ./grow_partition.sh sudo reboot

Image Updated:
 * 2017-06-12
 * BeagleBoard xM: v4.11.4-armv7-x0 kernel
 * 2017-05-21
 * BeagleBoard xM: v4.9.28-armv7-x4 kernel
 * 2017-04-07
 * BeagleBoard xM: v4.9.20-armv7-x4 kernel

Get prebuilt image: wget https://rcn-ee.com/rootfs/2017-06-12/microsd/bbxm-debian-8.8-console-armhf-2017-06-12-2gb.img.xz

Verify Image with: sha256sum bbxm-debian-8.8-console-armhf-2017-06-12-2gb* 368602fa49f75160eb830319966c2154536cf30b6632fb3cac5c679a32bea59e bbxm-debian-8.8-console-armhf-2017-06-12-2gb.img.xz

Windows/Mac/Linux gui http://etcher.io

Linux: (dd) xzcat bbxm-debian-8.8-console-armhf-2017-06-12-2gb.img.xz | sudo dd of=/dev/sdX

All BeagleBone Varients
This image can be written to a 2GB (or larger) microSD card, via 'dd' on linux or on Windows/Mac/Linux: https://etcher.io

User: debian pass: temppwd

Auto partition resize: cd /opt/scripts/tools git pull ./grow_partition.sh sudo reboot

Image Updated:
 * 2017-06-12
 * All BeagleBone Varients: v4.4.68-ti-r108 kernel
 * 2017-05-21
 * All BeagleBone Varients: v4.4.62-ti-r104 kernel
 * 2017-04-07
 * All BeagleBone Varients: v4.4.59-ti-r96 kernel

Get prebuilt image: wget https://rcn-ee.com/rootfs/2017-06-12/microsd/bone-debian-8.8-console-armhf-2017-06-12-2gb.img.xz

Verify Image with: sha256sum bone-debian-8.8-console-armhf-2017-06-12-2gb* 5fdb698e7c00fe3273179b5279f597d0e5b53ba7fa683681b79a77a2c70d5ff7 bone-debian-8.8-console-armhf-2017-06-12-2gb.img.xz

Windows/Mac/Linux gui http://etcher.io

Linux: (dd) xzcat bone-debian-8.8-console-armhf-2017-06-12-2gb.img.xz | sudo dd of=/dev/sdX

OMAP5432 uEVM
This image can be written to a 2GB (or larger) microSD card, via 'dd' on linux or on Windows/Mac/Linux: https://etcher.io

User: debian pass: temppwd

Auto partition resize: cd /opt/scripts/tools git pull ./grow_partition.sh sudo reboot

Image Updated:
 * 2017-06-12
 * OMAP5432 uEVM: v4.4.68-ti-r108 kernel
 * 2017-05-21
 * OMAP5432 uEVM: v4.4.62-ti-r104 kernel
 * 2017-04-07
 * OMAP5432 uEVM: v4.4.59-ti-r96 kernel

Get prebuilt image: wget https://rcn-ee.com/rootfs/2017-06-12/microsd/omap5-uevm-debian-8.8-console-armhf-2017-06-12-2gb.img.xz

Verify Image with: sha256sum omap5-uevm-debian-8.8-console-armhf-2017-06-12-2gb* 5461ddffc9baad9c3e662e4e4f9d8970a17b2ab641c15dc7e3d24fbaada9fd98 omap5-uevm-debian-8.8-console-armhf-2017-06-12-2gb.img.xz

Windows/Mac/Linux gui http://etcher.io

Linux: (dd) xzcat omap5-uevm-debian-8.8-console-armhf-2017-06-12-2gb.img.xz | sudo dd of=/dev/sdX

BeagleBoard-X15
This image can be written to a 2GB (or larger) microSD card, via 'dd' on linux or on Windows/Mac/Linux: https://etcher.io

User: debian pass: temppwd

Auto partition resize: cd /opt/scripts/tools git pull ./grow_partition.sh sudo reboot

Image Updated:
 * 2017-06-12
 * BeagleBoard-X15: v4.4.68-ti-r108 kernel
 * 2017-05-21
 * BeagleBoard-X15: v4.4.62-ti-r104 kernel
 * 2017-04-07
 * BeagleBoard-X15: v4.4.59-ti-r96 kernel

Get prebuilt image: wget https://rcn-ee.com/rootfs/2017-06-12/microsd/bbx15-debian-8.8-console-armhf-2017-06-12-2gb.img.xz

Verify Image with: sha256sum bbx15-debian-8.8-console-armhf-2017-06-12-2gb* aa43be70dbabc0fb5feb296f0f7f001b48d25daf1476f9d52c8d7fc42843fb45 bbx15-debian-8.8-console-armhf-2017-06-12-2gb.img.xz

Windows/Mac/Linux gui http://etcher.io

Linux: (dd) xzcat bbx15-debian-8.8-console-armhf-2017-06-12-2gb.img.xz | sudo dd of=/dev/sdX

= Debian Configuration =

Install Latest Kernel Image
General apt syntax for searching and installing a specific kernel: sudo apt-get update sudo apt-cache search linux-image | grep sudo apt-get install linux-image- sudo reboot

Latest kernel script cd /opt/scripts/tools/ git pull sudo ./update_kernel.sh 

3.8.x
This is the first beagleboard.org long term kernel tree with capemanager support, it's been the default install for Debian Wheezy beagleboard.org patchset: https://github.com/beagleboard/linux/tree/3.8

3.8.x BeagleBone/BeagleBone Black FULL Cape Support --bone-channel --stable

3.8.x BeagleBone/BeagleBone Black FULL Cape Support + Xenomai --bone-xenomai-channel --stable

4.4.x-ti
This is slated to replace the v3.8.x tree in Debian Jessie, cape manager support is enabled. beagleboard.org patchset: https://github.com/beagleboard/linux/tree/4.4 Based on: http://git.ti.com/gitweb/?p=ti-linux-kernel/ti-linux-kernel.git;a=shortlog;h=refs/heads/ti-linux-4.4.y

4.4.x-ti BeagleBone/BeagleBone Black/BeagleBoard-X15 --ti-channel --lts-4_4

4.4.x-ti BeagleBone/BeagleBone Black/BeagleBoard-X15 + RT --ti-rt-channel --lts-4_4

4.4.x-ti BeagleBone/BeagleBone Black/BeagleBoard-X15 + Xenomai --ti-xenomai-channel --lts-4_4

Mainline (4.4.x lts)
4.4.x BeagleBone/BeagleBone Black + SGX --bone-kernel --lts-4_4

4.4.x BeagleBone/BeagleBone Black + RT + SGX --bone-rt-kernel --lts-4_4

Mainline (4.9.x lts)
4.9.x BeagleBone/BeagleBone Black --bone-kernel --lts-4_9

4.9.x BeagleBone/BeagleBone Black + RT --bone-rt-kernel --lts-4_9

Debian 8: jessie
sudo apt-get install linux-image-armmp

Reboot with your new Kernel Image.

Xorg Drivers
Script: cd /opt/scripts/tools/ git pull

BeagleBoard/PandaBoard: cd /opt/scripts/tools/graphics/ ./ti-omapdrm.sh

BeagleBone/BeagleBone Black: cd /opt/scripts/tools/graphics/ ./ti-tilcdc.sh

SGX BeagleBone/BeagleBone Black
Note, these are FBDEV only, no xorg/x11/etc...

Install the "4.4.x" lts/bone kernel: http://elinux.org/BeagleBoardDebian#Mainline_.284.4.x_lts.29

Build SGX userspace for 4.4.x (must be done on an x86, due to the TI 5.01.01.02 blob extractor) git clone https://github.com/RobertCNelson/bb-kernel.git cd bb-kernel/ git checkout origin/am33x-v4.4 -b tmp-sgx ./sgx_create_package.sh

Copy ./deploy/GFX_5.01.01.02_es8.x.tar.gz to BeagleBone/BeagleBone Black and install sudo tar xfv GFX_5.01.01.02_es8.x.tar.gz -C / cd /opt/gfxinstall/ sudo ./sgx-install.sh sudo reboot

Verify omaplfb & pvrsrvkm loaded debian@arm:~$ lsmod | grep omaplfb omaplfb               12065  0 pvrsrvkm             178782  1 omaplfb

= Building Kernel =

Note, this section use to have a lot of details, but maintenance of the two wiki's became a pain, so for now on we will just link to my other pages:

Beagle/Beagle xM
http://eewiki.net/display/linuxonarm/BeagleBoard

BeagleBone
http://eewiki.net/display/linuxonarm/BeagleBone

BeagleBone Black
http://eewiki.net/display/linuxonarm/BeagleBone+Black

Panda/Panda ES
http://eewiki.net/display/linuxonarm/PandaBoard

= Upgrading from Debian 5 to Debian 6 =

Upgrading from Debian 5 to Debian 6 report and tutorial.

= Upgrading from Debian 6 (Squeeze) to Debian 7 (Wheezy) =

Note, this only goes over "armel" -> "armel"... For users wishing to switch from "armel" -> "armhf" just re-install...

sudo apt-get update ; sudo apt-get upgrade sudo sed -i -e "s/squeeze/wheezy/g" /etc/apt/sources.list sudo apt-get update ; sudo apt-get install -y apt aptitude udev dpkg sudo aptitude update ; sudo aptitude -y safe-upgrade ; sudo aptitude -y dist-upgrade