Beagle Board 101 - PowerPoint PPT Presentation

About This Presentation
Title:

Beagle Board 101

Description:

Beagle Board 101 – PowerPoint PPT presentation

Number of Views:4989
Avg rating:3.0/5.0
Slides: 97
Provided by: CMP71
Category:
Tags: aree | beagle | board

less

Transcript and Presenter's Notes

Title: Beagle Board 101


1
Beagle Board 101
  • Gerald Coley and Jason Kridner
  • September 22, 2009
  • Archived athttp//beagleboard.org/esc

2
Agenda
  • Overview of the Beagle Board
  • Board features and community
  • Booting the Beagle Board
  • Some simple tests (learning Linux)
  • Writing our own boot script
  • Native, managed, and web-based UI code
    development
  • Collaboration tools and community participation
  • Resources for more information and support
  • Hardware presentation
  • Lessons from building Beagle

3
Whats in a name
  • Bring your own peripherals
  • Entry-level cost (149)
  • ARM Cortex-A8 (superscalar)
  • Graphics and DSP accelerated
  • Linux and open source community
  • Environment for innovators

4
Community development
Wikis, blogs, promotion of community activity
gt 2,000 participants and growing
Addressing open source communityneeds
Instant access to gt10 million lines of code
Open access to hardware documentation
5
Fast, low power, flexible expansion
  • OMAP3530 Processor
  • 600MHz Cortex-A8
  • NEONVFPv3
  • 16KB/16KB L1
  • 256KB L2
  • 430MHz C64x DSP
  • 32K/32K L1
  • 48K L1D
  • 32K L2
  • PowerVR SGX GPU
  • 64K on-chip RAM
  • POP Memory
  • 128MB LPDDR RAM
  • 256MB NAND flash
  • Peripheral I/O
  • DVI-D video out
  • SD/MMC
  • S-Video out
  • USB 2.0 HS OTG
  • I2C, I2S, SPI,MMC/SD
  • JTAG
  • Stereo in/out
  • Alternate power
  • RS-232 serial

3
  • USB Powered
  • 2W maximum consumption
  • OMAP is small of that
  • Many adapter options
  • Car, wall, battery, solar,

Revision C has 256MB LPDDR RAM
6
And more
  • On-going collaboration at BeagleBoard.org
  • Live chat via IRC for 24/7 community support
  • Links to software projects to download
  • Other Features
  • 4 LEDs
  • USR0
  • USR1
  • PMU_STAT
  • PWR
  • 2 buttons
  • USER
  • RESET
  • 4 boot sources
  • SD/MMC
  • NAND flash
  • USB
  • Serial

3
  • Peripheral I/O
  • DVI-D video out
  • SD/MMC
  • S-Video out
  • USB HS on-the-go
  • I2C, I2S, SPI,MMC/SD
  • JTAG
  • Stereo in/out
  • Alternate power
  • RS-232 serial

7
New for Revision C
3
  • Peripheral I/O
  • USB HS/host-only(in addition to existingUSB HS
    on-the-go)
  • LCD expansion

256MB LPDDR RAM (up from 128MB)
8
Desktop development
Note Beagle Boardcan be powered fromthe
alternate jack (as shown) or via USB
9
Development on-the-go
10
Expand with custom hardware
USRP
Stereo out
USB
Power
SD2GB
Photo by Philip Balister
10
11
Typical peripherals
  • Available from Digi-Key
  • Serial cable (BBC01-ND)
  • Needed for serial console
  • HDMI-to-DVI-D cable (AE10260-ND)
  • Needed for connection to digital monitors
  • USB hub (DA-70227-ND)
  • Needed for adding USB peripherals
  • 5V power supply (T450-P5P-ND)
  • Frees USB OTG port
  • Hardware specifications and recommended
    peripherals
  • http//BeagleBoard.org/hardware
  • RSS feed of newly verified peripherals
  • http//feeds.feedburner.com/BeagleBoardPeripherals

12
Other design benefitshttp//beagleboard.org/hardw
are/design
  • Open source hardware design
  • Low power
  • No fan for silent operation
  • Use a USB cable to power the board (barrel
    connector power option)
  • USB 2.0 high-speed on-the-go (OTG) and host-only
    (EHCI) ports
  • Host an almost endless set of USB peripheral
    devices
  • On-the go port
  • Acts as device when connected to a PC and
    host when connected to a hub
  • OTG port requires a mini-A to standard-A adapter
    to act as a host http//BeagleBoard.org/hardware
  • Able to emulate a network connection to a PC
  • Provides power to board
  • Boot options
  • Boot from NAND, MMC/SD, serial, or USB using
    OMAP3530 ROM
  • User button
  • Boot default NAND ? USB ? serial ? MMC/SD
  • Button pressed USB ? serial ? MMC/SD ? NAND
  • Avoids bricking
  • Reusable in applications
  • Reset button (function may be altered with
    software)

13
Verifying the hardware
  • Code images, procedure, and sources are provided
    to verify the board functionality
  • Links to the diagnostics found at
    http//BeagleBoard.org/support
  • Includes bootloader, Linux kernel, and minimal
    file system for testing
  • These sources act as examples for software
    developers

14
Baseline tools and softwarehttp//beagleboard.org
/resources
  • Hardware verification procedure
    (http//beagleboard.org.support)
  • Code images, procedure, and sources are provided
    to verify the board functionality
  • GPL ARM GNU compiler collection
  • Code Sourcery version 2007q3 is one known-good
    option
  • Runs on Linux/Windows and generates ARMv7/Thumb2
  • Free C6000 compiler for non-commercial use
  • x86-Linux hosted
  • GPL x-load version 1.4.2
  • GPL u-boot version 2009.01
  • Interact over UART or USB and program flash
  • Boot kernel from UART, NAND, or MMC/SD (FAT32)
  • Test UART, DVI-D, S-Video, NAND, and MMC/SD
  • GPL Linux kernel version 2.6.28 for diagnostics
  • Test UART, DVI-D, S-Video, ALSA audio, NAND,
    MMC/SD, USB OTG, and USB Host
  • Free 3D graphics libraries (OpenGLES 2.0)
  • BSD/GPL DSP interface software
  • Free production audio/video codecs for the DSP

15
BeagleBoard.org
  • Four primary activities
  • Buy a board
  • Learn how to use existing projects
  • Learn how to join or start a project
  • Learn about the latest project news
  • Plans for site
  • Multi-lingual
  • Wiki-like editing-through-web
  • Keep website source open leverage OpenID
  • Facilitates community
  • Aggregates blogs
  • Provides community chat
  • Of, by, and for members
  • Promotes member actions
  • OMAP3530 collaboration
  • Focus upstream
  • Long-term presence
  • Broad set of problems
  • Aggregate downstream
  • Inform users of the broader world
  • Avoid information deluge

16
Community projects and distroshttp//www.flickr.c
om/groups/beagleboard/pool/ and
http//beagleboad.org/project
  • Ångström Linux Distribution
  • Firefox 3.0, Epiphany-WebKit, etc.
  • AbiWord, GIMP, etc.
  • 3D graphics and DSP codec integration
  • ARMv7NEON gcc tool-chain
  • Maemo.org
  • FFmpeg
  • 720P-24 MPEG4 decode on ARMNEON only
  • Beagle SDR (low-power software defined radio)
  • Windows Embedded for BeagleBoard 
  • Handheld.orgs Mojo Ubuntu build for ARM
  • Android for Beagle
  • ARM Linux Internet Platform
  • Ubuntu, Debian, OpenOCD, Mamona, Ethernet, OKL4,
    robots, home automation, vision, e-ink displays,
    FreeBSD, QEMU, Fedora,
  • Kernel, boot-loader, and boot utilities
  • Several more and growing

17
A handful of the thousands
Camera streaming application
Audio processing
Linux home fileserver
VLC VideoLAN
Fanless multimedia/internet terminal
Low-cost kiosk terminal
Wearable computer
Development platform for mobile VoIP phone
CMUcam-style applications
Low cost linux pc/gaming device
Smart home
Bluez and GUI using direct frame buffering
I'm interested to buy 2 to 10 rev-B boards (10
preferred ) congratulations for your project
and its spirit !
LCD picture frame
Linux thin client
Port xnu
Autonomous robot
Port OpenWrt
Port Google-Android  
Networked digital signage
Processing images and pattern recognition
Home monitoring
No idea yet
Small linux home fileserver
I'm not interested in waiting for the platform to
mature any longer.  Let me know how to get hold
of a beagleboard now.
Port OpenMoko
Mobile DTV tuner and receiver
Port OKL4
Clutter Qt development
Powerful nas with media server and transcoding
capabilities
Autonomous vehicles
Home security cameras and powered-curtains
After discussing with my dev guys, I confirm I
would like to order 20 beagleboards
Bachelor thesis
I'd like my students to design and build hardware
and software to do for Linux what TimeCapsule
does for MacOS
Media centre
SDR platform
Speech recognition applications
Vehicle telematics
Linux/Firefox web add-on for the TV in the house
Project for masters degree
18
Booting the Beagle Board
19
Equipment at ESC Boston
  • For you to keep
  • Beagle Board Rev. C3
  • SD card
  • Content for each class
  • Serial cable
  • IDC10-to-DB9 adapter
  • Null modem cable
  • Hub
  • Powered USB 2.0 HS
  • Cables
  • USB to Beagle power
  • HDMI to DVI-D
  • USB A to mini-B
  • For you to use in the labs
  • DVI-D monitor
  • USB keyboard and mouse

Powered USB hub
USBPower
DVI-DMonitor
SD
Desktop Computer Configuration
20
First boot of 101 image
  • Connect everything and then apply power
  • Image boots up as root by default
  • Applications?Settings?Login Setup
  • Dont do the next step yet!
  • Start root terminal and use /switchboot to
    start other images
  • Use halt to power down (optional?)

opkg install font-misc-misc xterm -fn 10x20
21
Default boot behavior
RESET
Is USER pressed?
Poll USB, Serial, and SD before trying NAND
Is u-boot.bin on SD card?
Run u-boot.bin from SD card, possibly ignoring
environment
Is env var set?
Execute commands stored in bootcmd environment
var
Execute default commands
22
The five (5) boot phases
  1. ROM loads x-load (MLO)
  2. X-load loads u-boot
  3. U-boot reads commands
  4. Commands load kernel
  5. Kernel reads root file system

MLO 0x000000 U-boot 0x020000 Env
0x260000 Kernel 0x280000 File sys 0x680000
23
(1) ROM loads x-load (MLO)http//www.ti.com/litv/
pdf/sprufd6a
  • ROM attempts to load boot image
  • Sequence of attempts depends if USER button
    pressed
  • Not-pressed NAND?USB?serial?MMC/SD
  • Pressed USB?serial?MMC/SD?NAND
  • For MMC/SD boot
  • Must have 255 heads and 63 sectors/track
  • First partition is FAT and bootable
  • Must have MLO as first file and directory entry
  • MLO is x-load.bin.ift renamed
  • X-load image must be signed
  • signGP app is open source
  • There are utilities for USB and serial boot

24
(2) X-load loads u-boothttp//gitorious.org/proje
cts/x-load-omap3
  • X-load is a utility derived from u-boot
  • Small enough to fit in internal RAM
  • Configures external RAM
  • Only configured to read NAND or MMC/SD
  • X-load 1.4.2 looks first on MMC/SD
  • If it finds u-boot.bin, loads and runs it
  • Otherwise loads u-boot from the second NAND
    partition (mtd1)

25
(3) U-boot reads commandshttp//gitorious.org/pro
jects/u-boot-omap3
  • U-boot version allows interaction over the serial
    and USB ports
  • Serial cable provided in case you have a laptop
  • USB driver looks like a USB-to-serial converter
    device
  • Use gserial.inf to install a driver in Windows
  • U-boot environment variables read from flash
  • Stored in the third flash partition (mtd2)
  • bootcmd variable stores the commands to execute
  • bootdelay is number of seconds to allow
    interruption of the boot
  • Default bootcmd reads boot.scr auto-script

26
(4) Commands load kernel
  • U-boot loads kernel and passes it bootargs
  • Default environment is used when variables
    havent been stored in flash
  • Rev C boards are shipped without variables stored
    in flash
  • Console can be used to interrupt the boot process
    and modify variables
  • The Rev B u-boot only supported the console over
    the serial port
  • The Rev C u-boot adds support for the console
    over the USB OTG port
  • Future modifications may support USB
    keyboard/mouse and DVI-D monitor
  • Fourth flash partition (mtd3) is reserved for the
    kernel
  • bootm ltRAM addrgt executes kernel from RAM

27
Default bootcmd for Rev Chttp//gitorious.org/pro
jects/beagleboard-default-u-boot/repos/jason-clone
/blobs/for-khasim-rebase/include/configs/omap3_bea
gle.h
  • bootcmdif mmcinit then  if run
    loadbootscript then    run bootscript   else
       if run loaduimage then     if run
    loadramdisk then      run ramboot     else  
       run mmcboot     fi    else run nandboot
       fi   fi else run nandboot fi

28
U-boot command summaryhttp//www.denx.de/wiki/DUL
G/Manual
  • Basic commands
  • help provide the list of commands (varies by
    build)
  • printenv lists the contents of the current
    environment
  • saveenv writes the current environment to the
    flash
  • setenv ltvariablegt string sets environment
    variable
  • autoscr ltRAM addrgt run script from RAM
  • MMC/SD
  • mmcinit initializes the MMC/SD card
  • fatls mmc 0 reads FAT directory on the first
    partition
  • fatload mmc 0 ltRAM addrgt ltfilenamegt load a file
    into RAM
  • NAND
  • nand unlock enables writing to the NAND
  • nandecc ltswhwgt configures ECC mode (OMAP3
    specific)
  • nand erase ltstartgt ltlengthgt erases portion of
    NAND flash
  • nand read ltRAM addrgt ltstartgt ltlengthgt reads
    into RAM
  • nand write ltRAM addrgt ltstartgt ltlengthgt writes
    from RAM
  • Serial
  • loadb ltRAM addrgt reads into RAM via kermit file
    send

29
(5) Kernel reads root file system
  • Kernel mounts root file system based on
    bootargs
  • NAND (JFFS2) root/dev/mtdblock4 rw
    rootfstypejffs2
  • RAMDISK root/dev/ram0 rw ramdisk_size32768
    initrd0x81600000,32M
  • MMC/SD root/dev/mmcblk0p2 rw rootwait
  • NFS root/dev/nfs rw nfsroot192.168.123.1/data/
    target ip192.168.123.2255.255.255.0
    nolock,rsize1024,wsize1024 rootdelay2

30
Configuring the displayhttp//groups.google.com/g
roup/beagleboard/msg/4c64b2c614622053
  • videoomapfb
  • vram10M
  • omap-dss.def_displcd
  • omapfb.vram4M,3M,3M
  • omapfb.video_mode1024x768MR-16_at_60

31
Other bootargs
  • nohzoff
  • Power management
  • mem88M
  • Reserve memory

32
Some simple tests
  • Understanding the basics of Linux

33
Getting started with Linux
  • Starting references
  • http//free-electrons/training
  • http//kernelnewbies.org (/UpstreamMerge)
  • The Linux Documentation Project
    (http//www.tldp.org/)
  • Device Drivers Book (http//www.xml.com/ldd/chapte
    r/book/index.html)
  • http//kerneltrap.org
  • The kernel GitWeb
  • http//git.kernel.org/?plinux/kernel/git/torvalds
    /linux-2.6.git
  • Linux-omap kernel
  • http//linux.omap.com
  • http//source.mvista.com/git/ (Tony Lindgren)
  • Others that feed the kernel or linux-omap
    kernel
  • http//www.linux-arm.org/git?plinux-2.6.git
  • http//www.arm.linux.org.uk/
  • http//www.sakoman.net/cgi-bin/gitweb.cgi

34
Everything is a file http//free-electrons.com/do
c/unix_linux_introduction.pdf
  • In Linux, you typically talk to devices using
    file I/O
  • GPIO example
  • ls /sys ls /proc cat /proc/cmdline
  • echo none gt /sys/class/leds/beagleboard\\usr0/
    trigger
  • echo 1 gt /sys/class/leds/beagleboard\\usr0/bri
    ghtness
  • echo 0 gt /sys/class/leds/beagleboard\\usr0/bri
    ghtness
  • echo heartbeat gt /sys/class/leds/beagleboard\\
    usr0/trigger

35
Read eventshttp//git.kernel.org/?plinux/kernel/
git/torvalds/linux-2.6.gitablobfDocumentation/
input/input.txt
  • cd /utils
  • gcc -o evtest evtest.c
  • ./evtest /dev/input/event0
  • Press the USER button
  • C to exit
  • ./evtest /dev/input/event4
  • Move the mouse
  • C to exit

36
Access monitor EDID
  • cd /sys/bus ls cd
  • cat /sys/bus/i2c/devices/3-0050/eeprom
  • i2cdump -y 0x3 0x50 b
  • decode-edid
  • fbset

37
USB OTG and EHCI
  • cd /sys/bus/usb/devices
  • ls
  • cat usb1/speed
  • cat usb1/1-2/1-2.2/manufacturer
  • cd
  • lsusb

38
Networking
  • Copy linux.inf from SD card to host and connect
    Beagle
  • ifconfig
  • nano /etc/networking/interfaces
  • ifdown usb0 ifup usb0
  • ifconfig
  • Configure your host using linux.inf
  • ping 192.168.123.1
  • VNC
  • x11vnc
  • Connect with your VNC viewer from your host
  • Synergy
  • Start Synergy server on your host
  • synergyc --daemon --restart 192.168.123.1

39
Writing our own boot script
40
Build u-boot and mkimage
  • cd /u-boot-omap3
  • make omap3_beagle_config
  • make

41
Build my.scr
  • cd /u-boot-omap3
  • cp /media/mmcblk0p1/menu/kridner.script my.script
  • nano my.script
  • ./tools/mkimage -A arm -T script -C none -d
    my.script my.scr
  • Be very careful before executing the next step
  • cp my.scr /media/mmcblk0p1/boot.scr
  • If unsure, run /switchboot now
  • boot

42
Edit environment in flash
  • make env
  • nano /etc/fw_env.config
  • /dev/mtd2 0 0x20000 0x20000
  • ./tools/env/fw_printenv
  • ln -s tools/env/fw_printenv fw_setenv
  • ./fw_setenv usbtty cdc_acm
  • ./fw_setenv stdout serial,usbtty
  • ./fw_setenv stdin serial,usbtty
  • ./fw_setenv stderr serial,usbtty
  • ./tools/env/fw_printenv

43
Trying usbtty
  • cp /gserial.inf /media/mmcblk0p1/
  • halt
  • Remove power and SD card
  • Copy gserial.inf from SD to PC
  • Plug USB from Beagle to your PC
  • Select driver
  • Start Hyperterminal
  • Newest serial port, max baud, n81, no flow
  • Optional
  • nand erase 0x260000 0x20000

44
Creating a ramdisk.gz
  • dd if/dev/zero oframdisk bs1k count32768
  • mkfs.ext2 ramdisk
  • mount -o loop ramdisk /mnt
  • tar -xvjf fs.tar.bz2 -C /mnt
  • Other methods to copy may be fine
  • umount /mnt
  • gzip ramdisk

45
Native, managed, and web-based UI code development
46
Native development
  • Not limited to embedded/cross tools
  • Reach out to broader developer community
  • Native tools easy to install
  • Immediately see impact of your changes
  • Edit local source files with familiar editors
  • You still need to manage your code!
  • Version control with git, svn, cvs,
  • Also possible to perform distributed builds
  • Some packages may require larger memory

47
Managed code
  • Easier to create an emulation environment
  • But what about performance?
  • JIT compilers may be sufficient
  • Performance bottlenecks are often in just a few
    places
  • Just optimize where the issue is, but build the
    rest fast!
  • Important to make sure the rest is open for
    optimization
  • Certainly not for every market
  • If you already know C/GTK/Qt, use what you know!
  • If you are new, this may be a way to get started

48
Web-based UI developmenthttp//www.programmablewe
b.com/scorecard
  • Familiar paradigm for consumers
  • Enables remote control and monitoring
  • Many HTML/JavaScript developers
  • Opens up use of other web services
  • Mapping
  • Order fulfillment
  • Storage
  • Social networking and media

49
Web-based UI development
  • Helma is one option for the server side
  • Based on Java Servlet Container and Mozilla Rhino
  • Provides sessions, user management,
  • Write entire applications in XML/HTML and
    JavaScript
  • No recompilation required, allowing for dynamic
    development
  • Database options for object storage with
    automatic persistence
  • Native XML database for flexibility
  • Java database connection (JDBC) for scale
  • Drop-in Java .jar files for access to huge
    libraries of functions
  • Accessing Linux shell and drivers
  • rtPackages.java.lang.Runtime.getRuntime()
    rt.exec()
  • new Packages.java.io.File()

50
Beagle web control demo
  • beagle-web-control-demo used at ARM Developers
    Conferencehttp//www.beagleboard.org/gitweb/?pbe
    agle-web-control-demo.gitasummary
  • cd
  • If not root sudo ./beagle-web-control-demo/script
    /permissions.sh
  • ./helma-1.6.1/start.sh
  • tail -f helma-1.6.1/log/helma.beaglewebcontroldemo
    .event.log
  • Browse (using Midori) to
  • http//localhost8080/demo/static/ARM_DevCon/slide
    34.html
  • Turn LEDs on and off

51
Collaboration tools
52
Distributed version control
  • GIT is differenteliminates often bad assumptions
  • Instead of everyone pushing into Linus
    repository
  • Linus pulls patches from people he trusts
  • Everyone has all of Linus history (and their
    own) locally
  • Patches enter system as e-mail messages
  • When a merge is non-trivial, he simply asks
    others to rebase
  • Mailing list
  • Archives available to everyone
  • Accepted patches applied to git repositories
  • Guides to GIT
  • http//linux.yyz.us/git-howto.html
  • http//git.or.cz/
  • http//www.kernel.org/pub/software/scm/git/docs/

53
Post patch to OMAP community
  • Readhttp//www.muru.com/linux/omap/README_OMAP_PA
    TCHES
  • Post your patch to mailing listlinux-omap_at_vger.ke
    rnel.org

54
Chat, mail, forums, blogs, and wikis!
  • All exist because they all solve different
    problems
  • Chat allows you to know someones
    listeninghttp//beagleboard.org/chat or beagle
    on irc.freenode.net
  • Great for beginner questions and rapid
    coordination
  • Mail allows you to reach almost
    anyonehttp//groups.google.com/group/beagleboard
  • Brings larger group into the conversation
  • Provides you with a personal log in your inbox
  • Forums helps get the threads organizedhttps//com
    munity.ti.com/forums/32.aspx (minimal activity to
    avoid disrupting community critical mass)
  • Blogs provide emphasis, filtering, and
    timelinesshttp//beagleboard.org/news and
    http//beagleboard.blogspot.com
  • Wikis enable inputs to become documentationhttp/
    /eLinux.org/BeagleBoard and http//code.google.com
    /p/beagleboard/wiki

55
Chat on IRC
  • http//freenode.net
  • beagle discussion regarding the Beagle Board
  • neuros discussion
  • davinci discussion regarding TI DaVinci
    products
  • ol discussion regarding OMAP Linux (not active)
  • IRC clients
  • http//beagleboard.org/chat
  • http//pidgin.im
  • http//www.mirc.com
  • http//en.wikipedia.org/wiki/List_of_IRC_clients
  • http//www.ircreviews.org/clients/

56
E-mail regarding OMAP Linux
  • http//BeagleBoard.org/discuss
  • http//vger.kernel.org/vger-lists.htmllinux-omap

57
Forums
  • http//community.ti.com

58
Blogs (RSS feeds)
  • http//beagleboard.blogspot.com

59
Wikis
  • http//wiki.davincidsp.com
  • http//tiexpressdsp.com
  • http//elinux.org/BeagleBoard

60
Registering Beagle projectshttp//code.google.com
  • Anyone can create a new open source project
  • Features
  • Site is cleaner than sf.net, but sf.net is OK
    too
  • Source control is Subversion
  • Issue tracking is custom
  • Provides downloads and wiki support
  • Use common sense and get your managers approval
  • Use the tag beagleboard
  • Lets explore http//code.google.com/p/beagleboar
    d

61
Git
  • What is Git?
  • Git is a popular version control system designed
    to handle very large projects with speed and
    efficiency it is used mainly for various open
    source projects, most notably the Linux kernel.
  • Git falls in the category of distributed source
    code management tools, similar to e.g. GNU Arch
    or Monotone (or BitKeeper in the proprietary
    world). Every Git working directory is a
    full-fledged repository with full revision
    tracking capabilities, not dependent on network
    access or a central server.
  • Git is an Open Source project covered by the GNU
    General Public License v2. It was originally
    written by Linus Torvalds and is currently
    maintained by Junio C Hamano.
  • Read more here
  • http//git.or.cz/
  • Learn from Linus here
  • http//www.youtube.com/watch?v4XpnKHJAok8

62
Community Participation with Git
63
Features of Git
  • Strong support for non-linear development
  • Git supports rapid and convenient branching and
    merging
  • Includes powerful tools for visualizing and
    navigating a non-linear development history
  • Distributed development
  • Remote changes are imported as additional
    development branches and can be merged in the
    same way as a locally developed branch
  • Repositories can be easily accessed via the
    efficient Git protocol (optionally under ssh) or
    HTTP
  • No special web server configuration required
  • Efficient handling of large projects
  • Very fast and scales well even when working with
    large projects and long histories
  • Commonly an order of magnitude faster
  • Extremely efficient packed format for long-term
    revision storage
  • Cryptographic authentication of history
  • History is stored in such a way that the name of
    a particular revision (a "commit" in Git terms)
    depends upon the complete development history
    leading up to that commit
  • Once published, it is not possible to change the
    old versions without it being noticed
  • Tags can be cryptographically signed
  • Toolkit design
  • Following the Unix tradition, Git is a collection
    of many small tools written in C, and a number of
    scripts that provide convenient wrappers
  • Easy to chain components together to do other
    clever things

64
How to build Git tool from source
Download GIT from http//git.or.cz/
How to build GIT ? gt tar xzvf
git-1.5.5.1.tar.gz gt cd ltto extracted
directorygt gt make How to install GIT ? gt make
prefixltmy directorygt install Example gt make
prefix/home/ubuntu/mygit/ install GIT tools
will be installed at /home/ubuntu/mygit/bin
(export this PATH to get the GIT commands)
65
Commands used to pull trees
  • Refer to Tonys README on muru.com for detailed
    description on working with OMAP GIT
  • tree.
  • http//www.muru.com/linux/omap/README_OMAP_GIT
  • Few important commands
  • To clone OMAP GIT Tree
  • git clone http//www.kernel.org/pub/scm/linux/k
    ernel/git/tmlind/linux-omap-2.6.git
  • Note Setup Proxy Server before cloning the
    tree
  • Example gt export http_proxyhttp//my.proxy.he
    report/
  • To re-sync your branch with mainline
  • git-pull

66
What do you do with Git?
  • To add new changes
  • Open file in any unix compatible editor.
  • Do the modifications
  • Save the file
  • To store the file in repository
  • git status
  • git update-index arch/arm/plat-omap/myfile.c
  • git commit -s
  • To generate patches using GIT tool
  • git format-patch -o ltoutput_dirgt
    abcdef0123456789abcdef0123456789abcdef01
  • Other methods
  • - Create another local branch and take a normal
    diff between the too.
  • - Use Quilt. (http//download.savannah.gnu.org/re
    leases/quilt/)

67
Everyday Githttp//www.kernel.org/pub/software/sc
m/git/docs/everyday.html
  • git-show-branch(1) to see where you are.
  • git-log(1) to see what happened.
  • git-checkout(1) and git-branch(1) to switch
    branches.
  • git-add(1) to manage the index file.
  • git-diff(1) and git-status(1) to see what you are
    in the middle of doing.
  • git-commit(1) to advance the current branch.
  • git-reset(1) and git-checkout(1) (with pathname
    parameters) to undo changes.
  • git-merge(1) to merge between local branches.
  • git-rebase(1) to maintain topic branches.
  • git-tag(1) to mark known point.

68
Community participation with Open Embedded
69
What is Open Embedded (OE)?http//www.openembedde
d.org
  • OE is like a top-level Makefile
  • Sophisticated layer on top of make
  • Tool for building distributions
  • Maintains meta-data database for building open
    source
  • BitBake is a python tool core to OE
  • Database is built of recipes for each package
  • Inheritance for reuse (autotools, )
  • Satisfies dependencies and follows build steps
  • Fetch, unpack, patch, configure, compile, stage,
    install, package
  • Opkg tool for package management
  • Replacement for Debian dpkg
  • Utilizes pre-built package feeds

70
What role does OE play?
  • Collaboration on entire distribution
  • Ångstrøm is a distribution built with OE
  • Full control over almost every aspect
  • Tool chain, package set, patches, kernel,...
  • Relatively complete starting point
  • armv7a compiled binaries in Ångstrøm
  • Possible to take a demo snapshot
  • Play with higher-level development

71
What does Ångstrøm provide today?http//beagleboa
rd.org/project/angstrom
  • Browsers
  • Gecko Firefox 3, Fennec,
  • WebKit Epiphany,
  • Media
  • FFmpeg, XMMS, GStreamer, MythTV,
  • Development
  • C, Java, Python, Perl, Mono, Ruby, Tk,
  • Gaming, Networking,

http//www.angstrom-distribution.org/repo/
72
Installing Ångstrøm to NANDhttp//beagleboard.org
/demo/angstrom
  • SD card FAT formatted (default, optionally
    bootable)
  • boot/kernel/ramdisk to get into OE console
  • Can store kernel (and ramdisk) in flash
  • Copy of tar.bz2 of full file system image desired
  • Boot console image
  • bootargs consolettyS2,115200n8
    ramdisk_size32768 root/dev/ram0 rw
    rootfstypeext2 initrd0x81600000,32M
  • bootcmd mmcinitfatload mmc 0 80300000
    uImagefatload mmc 0 81600000 angstrom-console-rd
    .gz
  • Flash board
  • opkg install mtd-utils opkg install mkfs-jffs2
  • flash_eraseall /dev/mtd4 mkfs.jffs2 -o
    /dev/mtdblock4
  • mkdir /mnt/flash mount -t jffs2 /dev/mtdblock4
    /mnt/flash
  • tar xvjf Angstrom-XXX.rootfs.tar.bz2 -C
    /mnt/flash
  • Boot new file system
  • bootargs consolettyS2,115200n8 consoletty0
    root/dev/mtdblock4 rw rootfstypejffs2 nohzoff
    videoomapfbvram2M,vram4M
  • bootcmd nand read 80200000 280000 400000 bootm
    80200000

73
What is Open Embedded made from?
  • BitBake build tool
  • Specifically written for top level make problem
    space
  • Uses inheritance to factor common support from
    recipes
  • Simple language with shell sequences
  • Language elements and functions can use Python
    for advanced cases
  • Meta-data
  • Package recipes and classes
  • A number of distribution definitions
  • A number of platform definitions
  • A version control repository of the meta-data
  • Uses Monotone for SCM (moving to Git)
  • Maintains dev and (recently) stable branches

74
OE reference typical processing
  • Satisfy all dependencies
  • Build (default command)
  • Fetch get the source code
  • Unpack extract the source code
  • Patch apply patches (local or fetched)
  • Configure run any configuration steps
  • Compile do actual compilation
  • Stage install locally for use by other packages
  • Install install product files to temporary
    directory
  • Package take installed files and place into
    packages
  • helloworld, helloworld-dbg, helloworld-dev,
    helloworld-doc, helloworld-local

75
Top Level Default OE flow
  • Build toolchain and libraries
  • Build needed components to packages
  • Build file-system image from packages
  • Will take Gigabytes of storage and hours to
    perform the above on a clean install

76
Alternate OE flows
  • Use precompiled toolchain
  • Use pre-downloaded source archives
  • Build toolchain and package as an SDK
  • Build collection of packages only
  • Build file-system image from pre-built
    packages
  • This may not be a current capability

77
What is OE not good for (today) ?
  • Active development of a given component
  • There are ways to use OE in this fashion but it
    is not a strength and you can lose code if you
    are not careful
  • GUI tools to guide and monitor
  • All config is edit of text files
  • Build log is very verbose and not visually
    structured

78
Limitations and alternatives
  • Limitations
  • Build environment not always well isolated
  • Many build scripts do native build environment
    tests
  • Alternatives
  • Matrix
  • Sponsored by ARM http//linux.onarm.com
  • Utilizes Scratchbox and QEMU
  • Reproduces target environment in cross-compile
  • Relies on emulation on build host
  • Mamona
  • Targets Nokia Internet Tablets
  • Utilizes Open Embedded, Scratchbox, and QEMU
  • Generates Debian source/binary packages
  • Solves some partial emulation problems
  • Native development or managed code environments

79
Resources for more information and support
80
Some hardware optionshttp//wiki.omap.com/index.
php?titleOMAP3_Boards
  • TI/Mistral OMAP35x EVM
  • Nokia Internet Tablets
  • LogicPD OMAPZoom
  • Gumstix Overo
  • Analogue Micro Cobra3530
  • Cogent CSB740

Not to scale. Approximate size noted (in inches)
81
Many tools optionshttp//focus.ti.com/dsp/docs/ds
pplatformscontenttp.tsp?sectionId2familyId1525
tabId2224
The many OS vendors for are OMAP35x not listed
here
Tool / Top features Debug Compile Other
TI Code Composer Studio Low-level ARM and DSP Low-level ARM (ARMv7) and DSP (NEON roadmap) Power-aware debug
ARM RealView Low-level ARM Application-level ARM (ARMv7, NEON)
Lauterbach Low-level and app ARM and DSP None Extensive trace
Green Hills Low-level and app ARM and DSP Low-level ARM Trace
CodeSourcery Linux application debug Linux kernel/app ARM (ARMv7, NEON)
Additional third party information here
  • Cortex-A8 uses ARMv7 instructions

82
OS vendors for OMAP35x
  • MontaVista
  • RidgeRun
  • TimeSys
  • bSquare
  • QNX
  • Many, many more

83
TI OMAP35x software architecturehttp//www.ti.com
/omap35x
Applications
GUI
App Framework
2D/3D APIs
MultimediaFramework
OptionalDRM
GFX Driver
Codec Engine and Link
Codec Engine
FC
BIOS
Linux Kernel / WinCE Power Management
audio
video
image
video
image
audio
video
image
audio
C64x DSP and Video Acceleration
ARM
GFX
84
Accessing the C64x DSP
  • OMAP/DaVinci Dummies Bookhttp//www.ti.com/dumm
    iesbook
  • DSP/BIOS Link source availablehttp//tiexpressds
    p.com
  • Provides code loading and data passing
  • Kernel portions licensed as GPL
  • DSP/BIOS RTOS and componentshttp//tiexpressdsp.c
    om
  • Enables sharing of the DSP as a resource
  • Free TI DSP compilerhttps//www-a.ti.com/download
    s/sds_support/targetcontent/LinuxDspTools/index.ht
    ml
  • Non-commercial use
  • Full support in Code Composer Studiohttp//www.ti
    .com/expressdsp

85
The Beagle Board community
  • Support for this board is provided through an
    active community of hobbyists and developers
  • Being very open enables developers to share
  • Keeps costs low
  • Enables more people to participate
  • 24/7 access to fellow developers
  • http//BeagleBoard.org/discuss
  • Ask your questions before you buy
  • Participate and enjoy!

86
Participating in the community
  • Joining the herd of catshttp//lwn.net/talks/elc2
    007
  • Building Community for your open source
    projecthttp//www.eclipsecon.org/2006/Sub.do?id2
    68
  • Video of Greg Kroah-Hartman on the Linux
    kernelhttp//www.linuxelectrons.com/news/linux/16
    774/greg-kroah-hartman-linux-kernel
  • Sending kernel patches upstreamhttp//wiki.omap.c
    om/index.php?titlePatch_upstream_sending

87
Summary
  • Open source is very diverse and OMAP35x supports
    that diversity
  • Beagle Board enables new possibilities for open
    collaboration
  • Enjoy programming again!

88
Thank you!
  • jdk_at_ti.com
  • jkridner_at_beagleboard.org
  • http//beagleboard.org/chat
  • IRC nickname jkridner

89
BeagleBoard Hardware
90
Topics Covered
  • Overview
  • Features
  • Hardware Support
  • Upcoming Revisions
  • Questions and discussion

91
Project Overview
  • Shipped First Board July 2008
  • 10,000 Boards shipped
  • Open Source Hardware
  • Schematics, PCB, and BOM
  • Continual improvements
  • Community input
  • Balanced against cost
  • Rev B4,B5,B6,B7,C2,C3
  • Community Supported
  • http//beagleboard.org
  • gt2100 subscribers
  • Beagleboard.org handles the RMAs

92
Overview (Cont)
  • Multiple Distributors
  • DigiKey
  • gt1,000 per month
  • Mouser
  • SparkFun (Pending)
  • IDA Systems (India)
  • Production
  • Built in the US
  • Plans for Asia

93
Features
  • 3 x 3
  • Power
  • USB
  • 5V DC
  • Processor
  • OMAP3530
  • 600MHz
  • DSP
  • 3D Graphics
  • 256MB DRAM
  • 256MB FLASH

94
Features (cont)
  • Serial Port
  • Header
  • Audio
  • Stereo
  • Input 3.5mm Jack
  • Output 3.5mm Jack
  • Display port
  • DVI-D
  • LCD Header
  • S-Video

95
Features (cont)
  • SD/MMC Connector
  • Expansion Header
  • MMC
  • UART
  • SPI
  • GPIO
  • Power
  • Button
  • Reset
  • User
  • LEDs
  • Power
  • User (2)
  • PMIC

96
Hardware Support Material
  • Schematics
  • PDF, OrCAD
  • PCB
  • Gerber, Allegro Database
  • System Reference Manual
  • Block Diagram
  • Circuit descriptions
  • Schematic
  • Debug SectionBOM
  • Excel
  • Open Source Hardware

97
Upcoming Revisions
  • C4
  • Production version of the OMAP3530
  • OMAP3530DCBB
  • No SW Impact
  • Limited number of units planned
  • C5
  • USB Host Issue Fix
  • Minor PCB change
  • No Impact on SW
  • Rev D?/2.0
  • Q2 2010
  • Price?
  • Adding good stuff

98
Questions and Discussion?
Write a Comment
User Comments (0)
About PowerShow.com