Difference between revisions of "BeagleBone Community"

From eLinux.org
Jump to: navigation, search
(Sabayon)
(Using Netbeans to remotely compile and debug C/C++)
(31 intermediate revisions by 5 users not shown)
Line 40: Line 40:
 
* Two 46-pin 3.3-V peripheral headers with multiplexed LCD signals
 
* Two 46-pin 3.3-V peripheral headers with multiplexed LCD signals
 
* Board size: 3.4" × 2.1" (86.4mm x 53.3mm) -- fits in an Altoid tin
 
* Board size: 3.4" × 2.1" (86.4mm x 53.3mm) -- fits in an Altoid tin
 +
 +
= Expansion Connectors =
 +
The BeagleBone provides two 46-pin dual-row expansion connectors "'''P9'''" and "'''P8'''" which are also known as "'''Expansion A'''" and  "'''Expansion B'''", respectively.  The location and pinout of these connectors is illustrated below (click tables to enlarge).  All signals on expansion headers are 3.3V except where indicated otherwise.
 +
 +
=== P9 and P8 - Each 2x23 pins ===
 +
[[File:BeagleBone_P9_256x256.jpg|256px|left|top|border|P9 Header|link=File:BeagleBone_p9_pinout.jpg]]
 +
[[File:BeagleBone_P9_P8_256x256.jpg|256px|top|border|BeagleBone P9 + P8|link=File:BeagleBone_P9_P8_512x512.jpg]]
 +
[[File:BeagleBone_P8_256x256.jpg|256px|top|border|P8 Header|link=File:BeagleBone_p8_pinout.jpg]]
 +
<p><br>
 +
In addition to the two large headers above, a small 10-pin dual-row connector provides "'''P6'''" provides a "'''PMIC Expansion'''" that brings out some additional signals from the TPS65217B Power Management IC, using the following pinout:
 +
 +
=== P6 - 2x5 pins''' ===
 +
[[File:BeagleBone_P6_464x222.jpg|464px|left|middle|border|P6 MPIC Expansion Header]]
 +
'''IMPORTANT'''
 +
 +
This diagram of P6 provides an '''UNDERSIDE PINOUT''' view.
 +
 +
It is therefore ''' ''laterally inverted'' ''' relative to the photograph.
 +
 +
To obtain the top-side pinout that corresponds to the physical orientation shown in the photograph, swap the two rows of pins so that odd-numbered pins are on the left of even-numbered pins.<br style="clear: both" />
  
 
= Expansion Boards and Accessories =
 
= Expansion Boards and Accessories =
Line 67: Line 87:
 
LCD displays for the BeagleBone are typically implemented as capes which plug in as the ''' ''top board'' ''' in a stack of capes, for reasons of visibility.  Such displays are often larger than the BeagleBone itself, so the normal physical relationship in which a daughterboard is smaller than its host board is inverted.  In this arrangement it is the expansion board that provides the physical support for the BeagleBone.
 
LCD displays for the BeagleBone are typically implemented as capes which plug in as the ''' ''top board'' ''' in a stack of capes, for reasons of visibility.  Such displays are often larger than the BeagleBone itself, so the normal physical relationship in which a daughterboard is smaller than its host board is inverted.  In this arrangement it is the expansion board that provides the physical support for the BeagleBone.
  
* [[File:Beaglebone.jpg|320px|thumb|BeadaFrame]][http://www.esky-sh.com/bbs/viewforum.php?f=20 BeadaFrame] with BeagleBone companion board
+
* [[File:Beaglebone.jpg|320px|thumb|BeadaFrame]][http://www.nxelec.com/products/hmi/beadaframe-beaglebone NAXING Electronics BeadaFrame] with BeagleBone companion board
:Hardware Features:
+
:Expanded Hardware Features:
 
:* 7" 800x480 TFT LCD screen
 
:* 7" 800x480 TFT LCD screen
 
:* PWM Backlight control
 
:* PWM Backlight control
Line 93: Line 113:
 
* [http://www.thingiverse.com/thing:16195 NinjaBlock's 3D-printable Beaglebone front panel design]
 
* [http://www.thingiverse.com/thing:16195 NinjaBlock's 3D-printable Beaglebone front panel design]
 
* [http://www.thingiverse.com/thing:20122 builttospec's laser-cut design for BeagleBone Enclosure with DVI Cape]
 
* [http://www.thingiverse.com/thing:20122 builttospec's laser-cut design for BeagleBone Enclosure with DVI Cape]
* [http://www.built-to-spec.com/blog/2012/03/01/beaglebone-case-update-and-new-kits-page/ Built to Spec BeagleBone Case Update]
+
* [http://www.built-to-spec.com/blog/2012/03/01/beaglebone-case-update-and-new-kits-page/ Built to Spec BeagleBone Case Update], and [http://builttospecstore.storenvy.com/products/225603-beaglebone-enclosure final product]
  
 
= BeagleBone Operating Systems =
 
= BeagleBone Operating Systems =
Line 107: Line 127:
 
The Angstrom community does not provide a forum, [http://www.angstrom-distribution.org/contact intentionally].
 
The Angstrom community does not provide a forum, [http://www.angstrom-distribution.org/contact intentionally].
  
Angstrom uses [http://www.busybox.net/ Busybox] for many key utilities, which has both pros and cons.  Advantages include requiring less storage space and a smaller memory footprint for many common utilities, which also improves system startup time and performance.  The main disadvantages stem from those utilities not mirroring exactly their full-size counterparts.  This may be annoying for some, and may also break shell scripts that rely on standard functionality.
+
Angstrom uses [http://www.busybox.net/ Busybox] for many key utilities, which has both pros and cons.  Advantages include requiring less storage space and a smaller memory footprint for many common utilities, which also improves system startup time and performance.  The main disadvantages stem from those utilities not mirroring exactly their full-size counterparts.  These differences can be annoying if one is used to standard behavior, and may also break shell scripts that rely on portable functionality.
  
 
Angstrom uses [http://connman.net/ connman] for network connection management, but no documentation is available for this currently.  Also, man(1) and man pages are not provided by default, nor debugging utilities like strace(1) and tcpdump(1).  Getting started may therefore present difficulties, depending on experience.
 
Angstrom uses [http://connman.net/ connman] for network connection management, but no documentation is available for this currently.  Also, man(1) and man pages are not provided by default, nor debugging utilities like strace(1) and tcpdump(1).  Getting started may therefore present difficulties, depending on experience.
  
 
=== Debian ===
 
=== Debian ===
 +
* See [[BeagleBoardDebian]]
 
* Home site: [http://wiki.debian.org/ArmEabiPort http://wiki.debian.org/ArmEabiPort]
 
* Home site: [http://wiki.debian.org/ArmEabiPort http://wiki.debian.org/ArmEabiPort]
 
* Mailing list:  http://lists.debian.org/debian-arm/
 
* Mailing list:  http://lists.debian.org/debian-arm/
 +
* IRC channel: irc://irc.debian.org/debian-arm
 
The ARM EABI port is the default port of the standard Debian distribution of Linux for the ARM architecture ("armel").
 
The ARM EABI port is the default port of the standard Debian distribution of Linux for the ARM architecture ("armel").
 
EABI ("Embedded ABI") is actually a family of ABIs, and one of the "subABIs" is the GNU EABI for Linux which is used for this port.
 
EABI ("Embedded ABI") is actually a family of ABIs, and one of the "subABIs" is the GNU EABI for Linux which is used for this port.
Line 130: Line 152:
 
=== Fedora ===
 
=== Fedora ===
 
* See [[BeagleBoardFedora]].
 
* See [[BeagleBoardFedora]].
 +
* Home site: http://fedoraproject.org/wiki/Architectures/ARM
 +
* Mailing list: http://lists.fedoraproject.org/pipermail/arm/
 
* IRC channel:  irc://irc.freenode.net/#fedora-arm
 
* IRC channel:  irc://irc.freenode.net/#fedora-arm
 +
The Fedora Project is sponsored by Red Hat, which invests in its infrastructure and resources to encourage collaboration and incubate innovative new technologies. Some of these technologies may later be integrated into Red Hat products. They are developed in Fedora and produced under a free and open source license from inception, so other free software communities and projects are free to study, adopt, and modify them.
 +
 +
Red Hat has been a major player since the earliest days of Linux distributions, and has earned a good reputation for solidity which continues in Fedora.  The Fedora ARM initiative is very active (see mailing list).
  
 
=== ArchLinux ===
 
=== ArchLinux ===
Line 151: Line 178:
 
* IRC channel:  irc://irc.freenode.net/#sabayon
 
* IRC channel:  irc://irc.freenode.net/#sabayon
 
Sabayon Linux uses the mechanisms of Gentoo to create a pre-configured Linux distribution that can be installed as rapidly as a normal binary distribution, but still retains the benefits of Gentoo's source-based package management.  Sabayon on Intel/AMD also provides the Entropy binary package management system, which could in principle greatly ease installation of packages on resource-constrained embedded Linux devices, but this is not yet available for ARM.
 
Sabayon Linux uses the mechanisms of Gentoo to create a pre-configured Linux distribution that can be installed as rapidly as a normal binary distribution, but still retains the benefits of Gentoo's source-based package management.  Sabayon on Intel/AMD also provides the Entropy binary package management system, which could in principle greatly ease installation of packages on resource-constrained embedded Linux devices, but this is not yet available for ARM.
 +
 +
Although it is still early days for Sabayon on ARM (and hence on BeagleBone), there is regular progress reported on [http://lxnay.wordpress.com/2012/ lxnay's blog], and contributions from the community would probably accelerate the work.
  
 
=== Buildroot ===
 
=== Buildroot ===
 
* Home site:  http://www.zoobab.com/beaglebone
 
* Home site:  http://www.zoobab.com/beaglebone
 
* Source repository:  https://github.com/fhunleth/buildroot-beaglebone
 
* Source repository:  https://github.com/fhunleth/buildroot-beaglebone
* The root filesystem is mounted read-only.
+
* Buildroot project site: http://buildroot.uclibc.org/
* Almost everything is done as root.
+
Buildroot is a set of Makefiles and patches that makes it easy to generate a complete embedded Linux system. Buildroot can generate any or all of a cross-compilation toolchain, a root filesystem, a kernel image and a bootloader image. Buildroot is useful mainly for people working with small or embedded systems, using various CPU architectures (x86, ARM, MIPS, PowerPC, etc.) : it automates the building process of your embedded system and eases the cross-compilation process.
* There is no package manager.  Buildroot manages package selection through '''make menuconfig'''.
+
 
 +
The resulting root filesystem is mounted read-only, but other filesystems can be mounted read/write for persistence. Although user accounts can be created, in practice almost everything is done as root. Buildroot uses no package manager.  Instead, package selection is managed through '''make menuconfig'''.
  
 
=== Nerves Erlang/OTP ===
 
=== Nerves Erlang/OTP ===
 
* Home site:  http://nerves-project.org/
 
* Home site:  http://nerves-project.org/
 
* Source repository:  https://github.com/nerves-project/bbone-erlang-buildroot
 
* Source repository:  https://github.com/nerves-project/bbone-erlang-buildroot
* Based on '''Buildroot''' (see above).
+
* Erlang project site: http://www.erlang.org/
 +
Erlang is a programming language used to build massively scalable soft realtime systems with high availability requirements (5-9’s). Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang’s runtime system has built-in support for concurrency, distribution and fault tolerance.
 +
 
 +
OTP is a set of Erlang libraries and design principles providing middle-ware to develop these systems. It includes its own distributed database, applications to interface towards other languages, debugging and release handling tools.
 +
 
 +
The Nerves project provides an embedded Linux-based environment for running Erlang and an easy-to-use API to access common I/O interfaces, based on '''Buildroot''' (see above).  If you are interested in running an Erlang node on a low power ARM-based board such as BeagleBone, this project can get you started.
  
 
= Board recovery =
 
= Board recovery =
Line 177: Line 212:
 
=== BeagleBone JTAG Debugging ===
 
=== BeagleBone JTAG Debugging ===
 
''..... description here .....''
 
''..... description here .....''
 +
 +
===Using Netbeans to remotely compile and debug C/C++===
 +
 +
When developing c/c++ on a linux desktop, a toolchain is available for cross-compiling the code for arm.  However no such toolchain is readily available for windows.  Netbeans can be used to write the code on your desktop, save it in a location accessible to the beagle, and then automatically compile it on the beagle itself using ssh and the built in compiler on the beaglebone's OS.
 +
 +
Netbeans can also use GDB for remote debugging over ssh.
 +
 +
Requirements:
 +
 +
* Set up a samba / smb network share through which code can be shared between both desktop and beagle
 +
* Give netbeans the SSh login details of the beagle
 +
* Give netbeans the path mapping so it can translate between the desktop code folder and beagle code folder
 +
* Setup only takes a few minutes.
 +
 +
====More info====
 +
 +
* Download Netbeans (Windows/Linux/OS-X/Solaris): http://www.netbeans.org/
 +
* Example tutorial on setting this up: http://mechomaniac.com/BeagleboardDevelopmentWithNetbeans
  
 
= FAQ =
 
= FAQ =
Line 189: Line 242:
 
* [http://beagleboard.org/project BeagleBoard and BeagleBone projects list]
 
* [http://beagleboard.org/project BeagleBoard and BeagleBone projects list]
 
* [https://docs.google.com/spreadsheet/ccc?key=0AtD7XdBlve3HdDZqUk0xQ1dpV2NiNm43d0pNWmVGdmc&hl=en_US#gid=0 Capes Registry] and its [https://docs.google.com/spreadsheet/viewform?formkey=dDZqUk0xQ1dpV2NiNm43d0pNWmVGdmc6MQ registration page]
 
* [https://docs.google.com/spreadsheet/ccc?key=0AtD7XdBlve3HdDZqUk0xQ1dpV2NiNm43d0pNWmVGdmc&hl=en_US#gid=0 Capes Registry] and its [https://docs.google.com/spreadsheet/viewform?formkey=dDZqUk0xQ1dpV2NiNm43d0pNWmVGdmc6MQ registration page]
 +
* [http://www.adafruit.com/blog/category/beaglebone/ BeagleBone articles at Adafruit blog] -- products, projects and tutorials
 
* Use [http://www.google.de/ Google] to search beagleboard.org (including [http://www.beagleboard.org/irclogs/ IRC logs]) using ''site:beagleboard.org <search term>''
 
* Use [http://www.google.de/ Google] to search beagleboard.org (including [http://www.beagleboard.org/irclogs/ IRC logs]) using ''site:beagleboard.org <search term>''
  
Line 198: Line 252:
 
* [http://www.youtube.com/watch?v=vFv_-ykLppo ''Beaglebone: C/C++ Programming Introduction for ARM Embedded Linux Development using Eclipse''], video by Derek Molloy, DCU/EE
 
* [http://www.youtube.com/watch?v=vFv_-ykLppo ''Beaglebone: C/C++ Programming Introduction for ARM Embedded Linux Development using Eclipse''], video by Derek Molloy, DCU/EE
 
* [http://www.youtube.com/watch?v=SaIpz00lE84 ''Beaglebone: GPIO Programming on ARM Embedded Linux''], video by Derek Molloy, DCU/EE
 
* [http://www.youtube.com/watch?v=SaIpz00lE84 ''Beaglebone: GPIO Programming on ARM Embedded Linux''], video by Derek Molloy, DCU/EE
 +
* [http://borderhack.com/?p=1062 First steps with the Beaglebone], introductory HOWTO by octavio at borderhack
 +
* [http://learn.adafruit.com/beaglebone Adafruit Learning System - BeagleBone] -- web page
  
 
== Manuals and resources ==
 
== Manuals and resources ==
Line 208: Line 264:
 
* [http://www.ftdichip.com/Products/ICs/FT2232H.htm FTDI FT2232H Hi-Speed Dual USB UART/FIFO IC overview], [http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT2232H.pdf FT2232H datasheet]
 
* [http://www.ftdichip.com/Products/ICs/FT2232H.htm FTDI FT2232H Hi-Speed Dual USB UART/FIFO IC overview], [http://www.ftdichip.com/Support/Documents/DataSheets/ICs/DS_FT2232H.pdf FT2232H datasheet]
 
* [http://www.linux-usb.org/gadget/index.html Linux-USB Gadget API Framework] and [http://www.linux-usb.org/gadget/h2-otg.html USB OTG], and [http://forums.gentoo.org/viewtopic-t-843255.html kernel config] -- Ethernet-over-USB
 
* [http://www.linux-usb.org/gadget/index.html Linux-USB Gadget API Framework] and [http://www.linux-usb.org/gadget/h2-otg.html USB OTG], and [http://forums.gentoo.org/viewtopic-t-843255.html kernel config] -- Ethernet-over-USB
 +
== Translations ==
 +
* 한국어:[[KR:BeagleBone]]
  
 
== Errata ==
 
== Errata ==

Revision as of 07:16, 7 September 2012


BeagleBone

This page collects information about BeagleBoard.org's TI AM335x ARM-based BeagleBone board.


Events

Description

The BeagleBone is a low-cost, high-expansion board from the BeagleBoard product line. It uses the TI AM3358/9 SoC based on an ARM Cortex-A8 processor core using the ARMv7-A architecture. It is similar in purpose to earlier BeagleBoards, and can be used either standalone or as a USB or Ethernet-connected expansion for a BeagleBoard or any other system. The BeagleBone is small even by BeagleBoard standards yet still provides much of the performance and capabilities of the larger BeagleBoards.

BeagleBone ships with a 4GB micro-SD card preloaded with the Angstrom ARM Linux distribution.

The board uses a TI TPS65217B PMIC to generate stable supply voltages regardless of input power variation. +5V DC power can be supplied to the BeagleBone through a barrel connector or from the mini-USB, both of which are located near the large RJ45 Ethernet connector.

The mini-USB type-A OTG/device client-mode socket is multi-functional. In addition to providing an alternative source of power, it gives access to an on-board front-end two-port USB client-side hub. (This is not related to the separate host-mode USB socket described later). One port of the hub goes directly to the USB0 port of the TI AM3358/9 SoC, while the other port connects to a dual-port FTDI FT2232H USB-to-serial converter to provide board-to-external-host serial communications and/or JTAG debugging. The BeagleBone's Linux serial console is available through this USB serial connection.

The SoC's USB0 connection to the front-end hub works in one of two modes, and you can toggle between them at any time: it either presents the SD card as a mountable USB storage device to the host, or it provides an Ethernet-over-USB networking interface which yields a simple method of quick-start. The Ethernet-over-USB facility is additional to the BeagleBone's normal 10/100 Ethernet interface, which is directly implemented in the SoC rather than hanging off USB as in some other designs. Full IPv4 and IPv6 networking is provided by the supplied Linux system out of the box.

In addition to the USB OTG Device or client-mode facilities already described, BeagleBone also provides one host-mode USB type-A socket on the other end of the board. This is driven from the USB1 connection on the AM3358/9 SoC, and provides access to USB host peripherals such as mice, keyboards, storage, and wifi or Bluetooth dongles, or a USB hub for further expansion.

Specifications

  • Up to 720-MHz superscalar ARM Cortex-A8
  • 256-MB DDR2 RAM
  • 10/100 Ethernet RJ45 socket, IPv4 and IPv6 networking
  • MicroSD slot and 4GB microSD card supplied
  • Preloaded with Angstrom ARM Linux Distribution
  • Single USB 2.0 type A host port
  • Dual USB hub on USB 2.0 type mini-A OTG device port
  • On-board USB-to-serial/JTAG over one shared USB device port
  • Storage-over-USB or Ethernet-over-USB on other USB device port
  • Extensive I/O: 2 I2C, 5 UART, SPI, CAN, 66 GPIO, 8 PWM, 8 ADC
  • +5V DC power from barrel connector or USB device port
  • Two 46-pin 3.3-V peripheral headers with multiplexed LCD signals
  • Board size: 3.4" × 2.1" (86.4mm x 53.3mm) -- fits in an Altoid tin

Expansion Connectors

The BeagleBone provides two 46-pin dual-row expansion connectors "P9" and "P8" which are also known as "Expansion A" and "Expansion B", respectively. The location and pinout of these connectors is illustrated below (click tables to enlarge). All signals on expansion headers are 3.3V except where indicated otherwise.

P9 and P8 - Each 2x23 pins

P9 Header

BeagleBone P9 + P8 P8 Header


In addition to the two large headers above, a small 10-pin dual-row connector provides "P6" provides a "PMIC Expansion" that brings out some additional signals from the TPS65217B Power Management IC, using the following pinout:

P6 - 2x5 pins

P6 MPIC Expansion Header

IMPORTANT

This diagram of P6 provides an UNDERSIDE PINOUT view.

It is therefore laterally inverted relative to the photograph.

To obtain the top-side pinout that corresponds to the physical orientation shown in the photograph, swap the two rows of pins so that odd-numbered pins are on the left of even-numbered pins.

Expansion Boards and Accessories

Capes

A BeagleBone Cape is an expansion board which can be plugged into the BeagleBone's two 46-pin dual-row Expansion Headers and which in turns provides similar headers onto which further capes can be stacked. Up to four capes at a time can be stacked on top of a BeagleBone. An expansion board which can be fitted only at the top of a stack of capes (usually for physical reasons) is a special case of "cape", but this usage is common for display expansion boards such as LCDs (see next section).

Capes are required to provide a 32Kbyte I2C-addressed EEPROM which holds board information such as board name, serial number and revision, although this is typically omitted on simple prototyping capes. Capes are also expected to provide a 2-position DIP switch to select their address in the stack, although this too is often omitted in prototyping capes.

The Capes Registry seeks to index all existing capes and cape concepts, including private projects. A registration page is available to help add capes to the list.

This section lists only those capes which are available commercially or which are close to a production release, as well as open hardware designs.

LCD Displays and Other Expansions

LCD displays for the BeagleBone are typically implemented as capes which plug in as the top board in a stack of capes, for reasons of visibility. Such displays are often larger than the BeagleBone itself, so the normal physical relationship in which a daughterboard is smaller than its host board is inverted. In this arrangement it is the expansion board that provides the physical support for the BeagleBone.

Expanded Hardware Features:
  • 7" 800x480 TFT LCD screen
  • PWM Backlight control
  • Resistive touch panel
  • Plastic frame
  • 256MB Nand flash(K9F2G08)
  • RS232 serial ports(UART1 w/ CTS&RTS)
  • Stereo audio out
  • Micro-phone in
  • 6 x USER buttons
  • PWM Beeper
  • RTC with Battery(DS1302)
3.5" TFT LCD screen, resolution 320x240, 4-wire resistive touchscreen, seven buttons at finger-friendly positions.
7" TFT LCD screen, resolution 800x480, 4-wire resistive touchscreen, rear mount for BeagleBone and capes.

Cases

BeagleBone Operating Systems

BeagleBone's default operating system is Angstrom, which ships with the board. This section provides basic information on Angstrom and other operating systems commonly used on BeagleBone. This information may help in making a preliminary choice, but full details should be obtained from the home sites.

Angstrom

Ångström was started by a small group of people who worked on the OpenEmbedded, OpenZaurus and OpenSimpad projects to unify their effort to make a stable and user-friendly distribution for embedded devices like handhelds, set top boxes and network-attached storage devices. Ångström can scale down to devices with only 4MB of flash storage.

The Angstrom community does not provide a forum, intentionally.

Angstrom uses Busybox for many key utilities, which has both pros and cons. Advantages include requiring less storage space and a smaller memory footprint for many common utilities, which also improves system startup time and performance. The main disadvantages stem from those utilities not mirroring exactly their full-size counterparts. These differences can be annoying if one is used to standard behavior, and may also break shell scripts that rely on portable functionality.

Angstrom uses connman for network connection management, but no documentation is available for this currently. Also, man(1) and man pages are not provided by default, nor debugging utilities like strace(1) and tcpdump(1). Getting started may therefore present difficulties, depending on experience.

Debian

The ARM EABI port is the default port of the standard Debian distribution of Linux for the ARM architecture ("armel"). EABI ("Embedded ABI") is actually a family of ABIs, and one of the "subABIs" is the GNU EABI for Linux which is used for this port. A newer port targeted at newer hardware with another ABI ("armhf") is currently under development and is expected to ship with Debian 7.0 (Wheezy).

The Debian Project is strongly committed to software freedom, and has a long pedigree and a good reputation.

Ubuntu

The vision for Ubuntu is part social and part economic: free software, available free of charge to everybody on the same terms, and funded through a portfolio of services provided by Canonical.

The first version of Ubuntu was based on the GNOME desktop, but has since added a KDE edition, Kubuntu, and a server edition. All of the editions of Ubuntu share common infrastructure and software. In recent years, special emphasis has been placed on netbooks for lightweight, connected, mobile computing, and on the cloud as a new architecture for data centres.

Fedora

The Fedora Project is sponsored by Red Hat, which invests in its infrastructure and resources to encourage collaboration and incubate innovative new technologies. Some of these technologies may later be integrated into Red Hat products. They are developed in Fedora and produced under a free and open source license from inception, so other free software communities and projects are free to study, adopt, and modify them.

Red Hat has been a major player since the earliest days of Linux distributions, and has earned a good reputation for solidity which continues in Fedora. The Fedora ARM initiative is very active (see mailing list).

ArchLinux

Arch Linux for BeagleBone is a version of the Arch Linux ARM distribution. This carries forward the Arch Linux philosophy of simplicity and user-centrism, targeting and accommodating competent Linux users by giving them complete control and responsibility over the system. Instructions are provided to assist in navigating the nuances of installation on the varied ARM platforms; however, the system itself will offer little assistance to the user.

The entire distribution is on a rolling-release cycle that can be updated daily through small packages instead of huge updates on a defined release schedule. Most packages are unmodified from what the upstream developer originally released.

Gentoo

Gentoo is a source-based meta-distribution of Linux. Instead of distributing a standard system image built with predefined options, Gentoo gives each user the means to create their own customized system that doesn't contain unused bloat and with minimum dependencies. Upgrades are incremental and under user control, so a Gentoo system is normally always up-to-date and wholesale upgrades are avoided.

Being a source-based system, the downside of Gentoo for low-power ARM systems is very long install times for large applications. Cross-compilation on x86 machines and distcc can overcome this problem, but they add complexity.

Sabayon

Sabayon Linux uses the mechanisms of Gentoo to create a pre-configured Linux distribution that can be installed as rapidly as a normal binary distribution, but still retains the benefits of Gentoo's source-based package management. Sabayon on Intel/AMD also provides the Entropy binary package management system, which could in principle greatly ease installation of packages on resource-constrained embedded Linux devices, but this is not yet available for ARM.

Although it is still early days for Sabayon on ARM (and hence on BeagleBone), there is regular progress reported on lxnay's blog, and contributions from the community would probably accelerate the work.

Buildroot

Buildroot is a set of Makefiles and patches that makes it easy to generate a complete embedded Linux system. Buildroot can generate any or all of a cross-compilation toolchain, a root filesystem, a kernel image and a bootloader image. Buildroot is useful mainly for people working with small or embedded systems, using various CPU architectures (x86, ARM, MIPS, PowerPC, etc.) : it automates the building process of your embedded system and eases the cross-compilation process.

The resulting root filesystem is mounted read-only, but other filesystems can be mounted read/write for persistence. Although user accounts can be created, in practice almost everything is done as root. Buildroot uses no package manager. Instead, package selection is managed through make menuconfig.

Nerves Erlang/OTP

Erlang is a programming language used to build massively scalable soft realtime systems with high availability requirements (5-9’s). Some of its uses are in telecoms, banking, e-commerce, computer telephony and instant messaging. Erlang’s runtime system has built-in support for concurrency, distribution and fault tolerance.

OTP is a set of Erlang libraries and design principles providing middle-ware to develop these systems. It includes its own distributed database, applications to interface towards other languages, debugging and release handling tools.

The Nerves project provides an embedded Linux-based environment for running Erlang and an easy-to-use API to access common I/O interfaces, based on Buildroot (see above). If you are interested in running an Erlang node on a low power ARM-based board such as BeagleBone, this project can get you started.

Board recovery

Software Development

Software development on the BeagleBone is normally no different to any other Linux platform, and typically varies with language and with the IDE used, if any. This section deals only with development issues that are specific to BeagleBone, or mostly so.

Cloud9 IDE and Bonescript

..... description here .....

BeagleBone JTAG Debugging

..... description here .....

Using Netbeans to remotely compile and debug C/C++

When developing c/c++ on a linux desktop, a toolchain is available for cross-compiling the code for arm. However no such toolchain is readily available for windows. Netbeans can be used to write the code on your desktop, save it in a location accessible to the beagle, and then automatically compile it on the beagle itself using ssh and the built in compiler on the beaglebone's OS.

Netbeans can also use GDB for remote debugging over ssh.

Requirements:

  • Set up a samba / smb network share through which code can be shared between both desktop and beagle
  • Give netbeans the SSh login details of the beagle
  • Give netbeans the path mapping so it can translate between the desktop code folder and beagle code folder
  • Setup only takes a few minutes.

More info

FAQ

For BeagleBoard frequently asked questions (FAQ) see community FAQ and "official" BeagleBoard.org FAQ.

Links

Home page and Community

Tutorials and Videos

Manuals and resources

Translations

Errata

Subpages

<splist

parent=
showparent=no
sort=desc
sortby=title
liststyle=ordered
showpath=no
kidsonly=no
debug=0

/>