KR:BeagleBone



이 페이지는 BeagleBoard.org의 TI AM335x ARM을 기반으로 하는 BeagleBone의 정보를 모았다.

= 이벤트 =
 * 진행중인 2009: 비글 스폰서 프로젝트 프로그램 - 참신한 프로젝트를 추가하고 무료로 비글보드를 얻어가세요!

= 설명 =

비글본(BeagleBone)은 BeagleBoard 제품 라인으로 저렴하며 높은 확장성을 가진다. ARM Cortex-A8 프로세서 코어를 기반으로 TI AM3358/9 SoC를 사용한다. ARMv7-A 구조를 기반으로 한다. 초기 비글보드의 목적과 유사해서 독립적으로 사용하거나 비글보드나 다른 시스템에 이더넷 연결 확장하여 사용할 수 있다. 비글본은 표준 비글보드도 작으면서도 상당한 성능과 용량을 제공한다.

비글본은 4GB 마이크로 SD카드에 Angstrom ARM Linux 배포판과 함께 제공된다.

입력 전력이 가변적이더라도 안정적인 전압을 생성할 수 있도록 TI TPS65217B PMIC를 사용한다. +5V DC는 배럴 커넥터(barrel connector)나 미니-USB를 통해 공급된다. 이 둘은 모두 RJ45 이더넷 커넥터 근처에 위치하고 있다.

mini-USB type-A OTG 장치 클라이언트 모드 소켓은 다양한 기능이 있다. 선택 가능한 전원을 제공하며 온보드 프론트 엔드 2포트 USB 클라이언트 사이드 허브에 접근할 수 있게 한다.(나중에 소개할 독립된 호스트 모드 USB 소켓과는 관련이 없다.) 허브 중 하나는 TI AM3358/9 SoC의 USB0 포트에 직접적으로 연결되지만 다른 포트는 듀얼-포트 FTDI FT2232H USB-to-시리얼 컨버터에 연결되며 이는 보드에서 외부 호스트와 시리얼 통신이나 JTAG 디버깅에 이용된다. 비글본의 리눅스 시리얼 콘솔은 이 USB 시리얼 연결을 통해 가능하다.

프론트 엔드 허브에 SoC의 USB0 연결은 2가지 모드 중에 하나로 동작한다. 언제든 이 2모드 사이에서 토글이 가능하다. 호스트에 마운팅 가능한 USB 저장장치처럼 SD카드나 혹은 Ethernet-over-USB 네트워킹 인터페이스를 제공한다. Ethernet-over-USB 기능은 비글본의 기본 10/100 이더넷 인터페이스에 추가되어 있으며 이는 직접 SoC에 구현되어 있다. 제공한 리눅스 시스템에서 완전한 IPv4와 IPv6 네트워킹을 제공한다.

이미 설명한 USB OTG 장치나 클라이언트 모드 기능 이외에, 비글본은 보드의 다른 가장자리에 호스트 모드 USB type-A 소켓도 제공한다. AM3358/9 SoC에 있는 USB1 연결이며 마우스나 키보드, 저장장치, wifi, 블루투스 동글, USB 허브 등과 같은 USB 호스트 주변장치에 연결을 제공한다.

= 스펙 =
 * 최대 720-MHz superscalar ARM Cortex-A8
 * 256-MB DDR2 RAM
 * 10/100 이더넷 RJ45 소켓, IPv4 and IPv6 네트워킹
 * 마이크로SD 슬롯과 4GB 마이크로SD 카드 제공
 * Angstrom ARM 리눅스 배포판
 * 단일 USB 2.0 타입 A 호스트 포트
 * 듀얼 USB 허브 USB 2.0 타입 mini-A OTG 장치 포트
 * On-board USB-to-serial/JTAG 하나의 공유 USB 장치 포트
 * 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 (배럴 커넥터 or USB 장치 포트)
 * 2개 46-pin 3.3-V peripheral headers with multiplexed LCD signals
 * 보드 크기 : 86.4mm x 53.3mm(3.4" × 2.1") -- Altoid tin에 적합

= 확장 커넥터 = 비글본은 2개의 46핀 2열 확장 커넥트인 "Expansion A"와 "Expansion B"로 알려진 "P9"와 "P8" 를 제공한다. 이 커넥터의 위치와 핀아웃은 아래에 나와 있다.(크게 볼려면 테이블을 클릭하라). 다른 표시가 없으면 확장 헤더에 모든 신호는 3.3V이다.

P9과 P8 - 각 2x23 pins
위에 2개의 넓은 허더에 추가로 작은 10-pin 2줄 커넥터는 "P6"과 "PMIC Expansion"를 제공한다. 다음 핀아웃을 이용해서 TPS65217B Power Management IC로부터 추가 신호를 끌어낸다.

P6 - 2x5 pins'''
중요

P6 다이어그램은 아랫부분 PINOUT을 보여준다.

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.

= 확장 보드와 악세사리 =

케이프(Capes)
BeagleBone Cape은 BeagleBone의 2개 46핀 2줄 확장 헤더에 연결할 수 있는 확장보드이다. 유사한 헤더를 차례차례로 케이프 위에 쌓을 수 있다. 한 번에 4개의 케이프까지 쌓을 수 있다. 확장보드는 케이프의 맨 위에 있는 케이프 하고만 맞는 경우는 특별한 경우이다. 하지만 LCD와 같은 확장 보드에는 이 방식이 일반적이다.(다음 섹션 참고)

케이프는 32Kbyte I2C-addressed EEPROM을 제공한다. EEPROM은 보드 이름, 시리얼 넘버, 리비전과 같은 정보를 가지고 있다. 단순한 프로토타이핑 케이프에는 들어가 있지 않다. 또 케이프는 스택에 주소를 선택하기 위해 2-position DIP 스위치를 제공한다. 이것도 프로토타이핑 케이프에는 빠져있는 경우가 많다.

케이프 등록페이지에서는 현존하는 모든 케이프와 케이프 컨셉을 찾아볼 수 있다. 등록 페이지에서 케이프를 목록에 추가할 수 있다.

아래 목록은 구입 가능한 케이프 혹은 오픈하드웨어로 설계된 케이프이다.


 * CircuitCo BeagleBone DVI-D cape
 * CircuitCo BeagleBone Breadboard cape
 * CircuitCo BeagleBone Breakout cape
 * CircuitCo BeagleBone CANBus cape
 * CircuitCo BeagleBone RS232 cape
 * CircuitCo BeagleBone Battery cape
 * Adafruit Proto Cape kit for BeagleBone
 * TowerTech TT3201 Multi-Channel CAN Cape
 * Special Computing Spartan-3A FPGA cape for BeagleBone -- in development
 * Thinking Machines LCD-IO Expansion Cape -- in development
 * Open Source BeagleBone Prototyping Board -- piranha32 GitHub repository

LCD 디스플레이와 확장
비글본에서 LCD 디스플레이는 일반적으로 케이프로 구현되어 있다. 쉽게 볼 수 있도록 하기 위해 케이프의 위에  "탑 보드(top board)" 형태로 연결시킨다.이런 디스플레이는 비글본 보다 더 큰 경우가 많다. 물리적인 관계로 봤을 때 연결된 보드가 본체 보드보다 더 커지는 현상이 생긴다. 비글본을 물리적으로 지원하는 확장 보드이다.
 * Beaglebone.jpgG Electronics BeadaFrame with BeagleBone companion board
 * 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)


 * CircuitCo BeagleBone LCD3 cape and LCD display
 * 3.5" TFT LCD 화면, 해상도 320x240, 4-wire resistive 터치 스크린, 손가락 위치에 잘 맞는 7개 버튼.


 * CircuitCo BeagleBone LCD7 cape and LCD display
 * 7" TFT LCD 화면, 해상도 800x480, 4-wire resistive 터치 스크린, 비글본과 케이프에 rear mount

케이스

 * Adafruit Bone Box - 비글본 박스
 * SK Pang 비글본용 아크릴 커버
 * Special Computing Bone 아크릴 케이스
 * canadaduane's 3D-printable 비글본 케이스 디자인
 * NinjaBlock's 3D-printable 비글본 전면 패널 디자인
 * builttospec's 레이저 가공이며 DVI 케이프가 있는 비글본 박스
 * Built to Spec 비글본 케이스 업데이트, and 최종 제품

= BeagleBone 운영체제 = 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이다. 보드 구입시 기본 탑재되어 있다. 여기서는 Angstrom에 관한 기본적인 정보와 그외 비글본에서 사용하는 운영체제에 대한 정보를 제공한다. 여기 있는 정보는 처음 선택하는데 도움이 되지만 자세한 정보는 홈페이지에서 얻을 수 있다.

Angstrom
Ångström는 OpenEmbedded, OpenZaurus와 OpenSimpad 프로젝트에서 일하던 사람들의 작은 단체로 시작되었다. 임베디드 장치(핸드헬드, 셋탑박스, 네트웍 기능 스토리지 장치)에 적합한 안정적이고 사용자가 사용하기 쉬운 배포판을 만들기 위해 힘을 합쳤다. Ångström은 4MB 플래쉬를 가지는 장치에도 적합하게 스케일을 줄였다.
 * 홈페이지: http://www.angstrom-distribution.org/
 * 메일링 리스트: angstrom-distro-devel and angstrom-distro-users
 * IRC 채널: irc://irc.freenode.net/#angstrom

Angstrom 커뮤니티는 포럼을 제공하지 않는다. 의도적으로

Angstrom은 많은 핵심 유틸리티에 Busybox를 사용한다. 이는 장단점을 가진다. 장점은 저장공간이 적게 필요하다는 것과 공통 유틸리티에 적은 메모리가 사용된다는 것이다. 이로써 시스템 시작과 성능을 개선할 수 있다. 주요 단점은 전체 크기 counterparts를 정확하게 미러링 할 수 없다는 것이다. 이런 차이점은 표준 동작하는 경우 귀찮을 수 있고 이식된 기능에 의존하는 경우 쉘 스크립트가 깨질 수 있다.

Angstrom은 네트워크 연결 관리에 connman을 사용한다. 하지만 현재 이에 대한 문서가 없다. 또 man이나 man page가 기본으로 제공되지 않는다. strace나 tcpdump와 같은 디버깅 유틸리티도 제공되지 않는다. 따라서 시작하는 경우 어려움을 겪을 수 있고 경험에 의존해야한다.

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).
 * Home site: http://wiki.debian.org/ArmEabiPort
 * Mailing list: http://lists.debian.org/debian-arm/
 * IRC channel: irc://irc.debian.org/debian-arm

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

Ubuntu
Ubuntu의 목표는 소셜과 경제성이다: 무료 소프트웨어로서 모든 사람이 무료로 사용할 수 있으며 Canonical이 제공하는 서비스의 포트폴리오를 통해 펀드를 받는다.
 * BeagleBoardUbuntu 참조
 * 홈페이지: https://wiki.ubuntu.com/ARM
 * IRC 채널: irc://irc.freenode.net/#ubuntu-arm

Ubuntu의 첫번째 버전은 GNOME 데스크탑을 기반으로 했지만 KED, Kubuntu와 server버전이 추가되었다. 우분투의 모든 에디션은 공통 인프라구조와 소프트웨어를 공유하고 있다. 특별한 부분은 넷북, 모바일 컴퓨팅, 데이터 센터용으로 새로운 구조를 가지는 클라우드 버전이다.

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

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.
 * Home site: http://archlinuxarm.org/platforms/armv7/beaglebone
 * Source repository: https://github.com/archlinuxarm/PKGBUILDs
 * IRC channel: irc://irc.freenode.net/#archlinux-arm

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.
 * Home site: http://dev.gentoo.org/~armin76/arm/beaglebone/install.xml
 * IRC channel: irc://irc.freenode.net/#gentoo-embedded

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.
 * Home site: wiki.sabayon.org/Hitchhikers Guide to the BeagleBone
 * IRC channel: irc://irc.freenode.net/#sabayon

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.
 * Home site: http://www.zoobab.com/beaglebone
 * Source repository: https://github.com/fhunleth/buildroot-beaglebone
 * Buildroot project site: http://buildroot.uclibc.org/

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.
 * Home site: http://nerves-project.org/
 * Source repository: https://github.com/nerves-project/bbone-erlang-buildroot
 * Erlang project site: http://www.erlang.org/

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 =
 * See BeagleBoardRecovery --- (*) Check applicability

= 소프트웨어 개발 = 비글본에서 소프트웨어 개발은 다른 리눅스 플랫폼과 차이가 없고 개발언어놔 사용한 IDE에 따라 달라진다. 따라서 비글본에 한정된 개발 이슈에 대해서만 알아보자.

Cloud9 IDE와 본스크립트(Bonescript)
..... description here .....
 * 소스 저장소: https://github.com/jadonk/bonescript
 * 언어 문서: http://nodejs.org/

비글본 JTAG 디버깅
..... description here .....

= FAQ =

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

= Links =

홈페이지와 커뮤니티

 * beagleboard.org -- 비글보드와 비글본 제품 관련 홈페이지
 * irc://irc.freenode.net/#beagle -- official combined IRC channel
 * Google Groups forums/mailing list -- English, 일본, 브라질, 터키
 * 비글보드와 비글본 프로젝트 목록
 * 케이프 등록 and 등록 페이지
 * BeagleBone articles at Adafruit blog -- products, projects and tutorials
 * Use Google to search beagleboard.org (including IRC logs) using site:beagleboard.org 

튜토리얼과 비디오

 * 비글본: 비글보드-101 소개 -- 슬라이드 (turn off Javascript for single page)
 * 비글본 소개, 비디오 by Jason Kridner, Texas Instruments
 * How-To: 비글본 시작하기, 비디오 by Matt Richardson, MakeMagazine
 * 비글본 - 개봉, 소개 튜토리얼 및 처음 예제, 비디오 by Derek Molloy, DCU/EE
 * 비글본: Eclipse를 사용한 C/C++ 프로그래밍 소개 for ARM Embedded Linux Development, 비디오 by Derek Molloy, DCU/EE
 * 비글본: GPIO 프로그래밍 on ARM Embedded Linux, 비디오 by Derek Molloy, DCU/EE
 * 비글본과 함께 첫걸음, introductory HOWTO by octavio at borderhack

Manuals and resources

 * 비글본 시스템 참고 메뉴얼 (rev. A3_1.0).
 * Texas Instruments - Sitara ARM Cortex-A8 마이크로프로세서 개요.
 * ARM/ARMv7-AR 구조 -- ARM Cortex-A8 구조 개요
 * ARM Cortex-A8 Technical Reference Manual r2p1
 * ARM Cortex-A Development Platforms -- ARM page on Beagle boards
 * TI TPS65217 Power Management IC, TPS65217 PMIC datasheet
 * FTDI FT2232H Hi-Speed Dual USB UART/FIFO IC overview, FT2232H datasheet
 * Linux-USB Gadget API Framework and USB OTG, and kernel config -- Ethernet-over-USB

Errata
= Subpages = 