Download presentation
Presentation is loading. Please wait.
Published byBruce Terry Modified over 9 years ago
1
Beagle Board 101 Gerald Coley and Jason Kridner September 22, 2009
Archived at:
2
Agenda Overview of the Beagle Board Hardware presentation
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 Overall message: Empowerment You can push patches back Non-schedule driven development Solve your customer’s problems Benefits You might save other customers’ problems You might get fame and glory Positioning of community development Most benefit to customers on the bleeding edge
3
What’s 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 Linux upstream BYOP and Entry-level cost: Deferring some costs to the user (ex. LCD), and Inexpensive as possible Is… A give-away to key developers Subsidizing the board (Price: $149+shipping), Is Not… Subsidizing the peripherals, or Free for everyone who contributes We can build more boards if they cost less Because… Include only interfaces to useful peripherals Keep the cost down by limiting the board layers So we will… ARM Cortex-A8: Using standard busses for expansion, and Capable of running real applications, A subset of other OMAP3 EVMs A target for complex kernel builds An all-purpose expansion solution, or The most complete OMAP3 development platform, It allows applications to be ported up to other EVMs It keeps the kernel and debug relatively simple, and Serious customers shouldn’t mind paying $1000, Not add an LCD or features unsupported on other EVMs Include support for an external monitor, MMC/SD, and USB Graphics and DSP/Video accelerated, Linux port, and Environment: OMAP3530 based (ARM Cortex-A8/Neon, 2D/3D, C64x+) Interesting for home applications A consumer electronics product OMAP3503, 3515, or 3525 based (subsets of processors) Stickiness comes from using the ARM+DSP architecture We don’t want to compete with Nokia or Neuros Open source developers may help simplify DSP programming Not target it for any specific end-application (“browser” and “computer” are generic roles) Begin with select partners under NDA, and Wait to publicly announce until after the TI OMAP3530 EVM is announced Leverage community to develop feature-rich robust open source code base on OMAP3530 GOALS 1,000 external developers 10 software IP offerings pushed upstream 10 commercial interests started 50 major internal/external contributors Phase 1 “Close Friends” Baseline software (kernel, bootloader, …) and website CES demonstrations created Phase 2 “100 OMAP-motivated Developers” Baseline applications and “buzz” Launched at TIDC with targeted individuals and partners Phase 3 “1,000 OSS-motivated Developers” Reach open source and web developers Press release in May before summer “blackout” Phase 4 “10,000 Students and Partners” Educational and programming contest programs created API and demonstration applications with partners released 3
4
Community development
Personally affordable $149 Wikis, blogs, promotion of community activity > 2,000 participants and growing Active & technical community Freedom to innovate Addressing open source community needs Instant access to >10 million lines of code Open access to hardware documentation Opportunity to tinker and learn Free software
5
Fast, low power, flexible expansion
OMAP3530 Processor 600MHz Cortex-A8 NEON+VFPv3 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… Peripheral I/O DVI-D video out SD/MMC+ S-Video out
On-going collaboration at BeagleBoard.org Live chat via IRC for 24/7 community support Links to software projects to download And more… 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 Peripheral I/O
3” Peripheral I/O USB HS/host-only (in addition to existing USB HS on-the-go) LCD expansion 256MB LPDDR RAM (up from 128MB)
8
Desktop development Stereo in SD Power DVI-D USB Stereo out Note: Beagle Board can be powered from the alternate jack (as shown) or via USB
9
Development on-the-go
Power + IP over USB Serial Port 9
10
Expand with custom hardware
USRP Stereo out USB Let’s take a look at an example application – a software radio. A complete SDR system using Beagle is using the on board DSP, software and stereo out and a microphone to communicate over radio waves. Here is more of a HW oriented project. The USRP (universal software radio peripheral – FPGA based board for interfacing to different antennas for SDR. Power SD 2GB Photo by Philip Balister 10 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 ND) Needed for adding USB peripherals 5V power supply (T450-P5P-ND) Frees USB OTG port Hardware specifications and recommended peripherals RSS feed of newly verified peripherals Some typical standard PC like peripherals and connectors that are useful with BeagleBoard, and available from Digi-Key, include: A 5V power supply (T450-P5P-ND) , Which connects into the option barrel power connector for power to free the USB port for use as a host A Null-modem serial cable (AE9879-ND), Which is useful for bootloader and boot console I/O A HDMI-to-DVI-D cable (AE10260-ND), Which enables connection to digital monitors via DVI-D And a USB hub (DA ND), Which is useful for adding USB peripherals Also, a serial adapter to convert from IDC10 to DB9 may be needed for a serial console. To really get the technical scoop on a fresh basis, tap into the Links for hardware specifications and peripherals at And for RSS feed of updates on newly validated peripherals working with BeagleBoard, tap into
12
Other design benefits http://beagleboard.org/hardware/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 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) Now let’s highlight the benefits to you of the low power consumption of BeagleBoard. Low power means NO FANS are needed, which means Silent operation….you can use it in your media center without annoying fan noise. Low power means USB cable power, such that you can take BeagleBoard with you on the road with your laptop or a cell phone charger. NO additional power supply needed. Low power means no heat sinks and smaller size and lower cost board. Or, if you choose, Alternate power means you can use the USB Host for expansion. The alternate power can even be derived from USB!
13
Verifying the hardware
Code images, procedure, and sources are provided to verify the board functionality Links to the diagnostics found at Includes bootloader, Linux kernel, and minimal file system for testing These sources act as examples for software developers The first thing to do once you get BeagleBoard is to verify that the hardware is operating correctly. Only basic software is provided on BeagleBoard, as most of the software is intended to be downloaded from or developed in conjunction with the technical community at BeagleBoard.org. Find the links to the diagnostics code and step by step instructions for beagleboard at Many links to other software can be found via reference from BeagleBoard.org.
14
Baseline tools and software http://beagleboard.org/resources
Hardware verification procedure ( 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 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 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 14
15
BeagleBoard.org 15 Four primary activities Plans for site
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 Is… Intended to unite multiple audiences Linux hackers/experts and open source zealots Web application developers ARM embedded programmers and integrators DSP programmers and theorists Students and educators Is Not… Just for kernel developers Because… A lot more open source content can leverage OMAP Rich applications will demonstrate OMAP value So we will… Promote and discuss every Beagle application gStreamer, Firefox, Quake, Miro, Java, Helma, drivers, … Provide additional support packages from opensource.ti.com Tools, Graphics, Codecs, CE+Link, … 15
16
Community projects and distros http://www. flickr
Community projects and distros and Ångström Linux Distribution Firefox 3.0, Epiphany-WebKit, etc. AbiWord, GIMP, etc. 3D graphics and DSP codec integration ARMv7+NEON gcc tool-chain Maemo.org FFmpeg 720P-24 MPEG4 decode on ARM+NEON only Beagle SDR (low-power software defined radio) Windows Embedded for BeagleBoard Handheld.org’s 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… Kernel Windowing System Creativity Tools Office Suite Browser
17
A handful of the thousands…
Camera streaming application Audio processing Linux home fileserver Fanless multimedia/internet terminal Low-cost kiosk terminal VLC VideoLAN Development platform for mobile VoIP phone CMUcam-style applications Wearable computer Bluez and GUI using direct frame buffering Low cost linux pc/gaming device Smart home Linux thin client I'm interested to buy 2 to 10 rev-B boards (10 preferred ;) congratulations for your project and its spirit ! LCD picture frame Port xnu Autonomous robot Port OpenWrt Port Google-Android Networked digital signage Home monitoring Processing images and pattern recognition 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. No idea yet Mobile DTV tuner and receiver Port OpenMoko Clutter & Qt development Port OKL4 Powerful nas with media server and transcoding capabilities Autonomous vehicles After discussing with my dev guys, I confirm I would like to order 20 beagleboards Home security cameras and powered-curtains 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 Speech recognition applications SDR platform Linux/Firefox web add-on for the TV in the house Vehicle telematics Project for masters degree
18
Booting the Beagle Board
18
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 USB Power DVI-D Monitor SD Desktop Computer Configuration
20
First boot of “101” image Connect everything and then apply power
Image boots up as root by default ApplicationsSettingsLogin Setup Don’t 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 ROM loads x-load (MLO) X-load loads u-boot
U-boot reads commands Commands load kernel 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: NANDUSBserialMMC/SD Pressed: USBserialMMC/SDNAND 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-boot http://gitorious.org/projects/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 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 commands http://gitorious.org/projects/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 haven’t 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 <RAM addr> – executes kernel from RAM
27
Default bootcmd for Rev C http://gitorious
bootcmd= if 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 summary http://www.denx.de/wiki/DULG/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 <variable> ‘string’ – sets environment variable autoscr <RAM addr> – 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 <RAM addr> <filename> – load a file into RAM NAND nand unlock – enables writing to the NAND nandecc <sw|hw> – configures ECC mode (OMAP3 specific) nand erase <start> <length> – erases portion of NAND flash nand read <RAM addr> <start> <length> – reads into RAM nand write <RAM addr> <start> <length> – writes from RAM Serial loadb <RAM addr> – 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 rootfstype=jffs2 RAMDISK: root=/dev/ram0 rw ramdisk_size=32768 initrd=0x ,32M MMC/SD: root=/dev/mmcblk0p2 rw rootwait NFS: root=/dev/nfs rw nfsroot= :/data/target ip= :: nolock,rsize=1024,wsize=1024 rootdelay=2
30
Configuring the display http://groups. google
video=omapfb vram=10M omap-dss.def_disp=lcd omapfb.vram=4M,3M,3M
31
Other bootargs nohz=off Power management mem=88M Reserve memory
32
Understanding the basics of Linux
Some simple tests Understanding the basics of Linux
33
Getting started with Linux
Starting references (/UpstreamMerge) The Linux Documentation Project ( Device Drivers Book ( “The” kernel GitWeb Linux-omap kernel (Tony Lindgren) Others that feed “the” kernel or linux-omap kernel The Linux kernel repository ARM Linux The Linux Documentation Project Linux Device Drivers News Other
34
Everything is a file http://free-electrons
In Linux, you typically talk to devices using file I/O GPIO example ls /sys; ls /proc; cat /proc/cmdline echo “none” > /sys/class/leds/beagleboard\:\:usr0/trigger echo “1” > /sys/class/leds/beagleboard\:\:usr0/brightness echo “0” > /sys/class/leds/beagleboard\:\:usr0/brightness echo “heartbeat” > /sys/class/leds/beagleboard\:\:usr0/trigger
35
Read events http://git. kernel. org/
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
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 Configure your host using linux.inf ping VNC x11vnc & Connect with your VNC viewer from your host Synergy Start Synergy server on your host synergyc --daemon --restart
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 0x x20000 ./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’
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 0x x20000
44
Creating a ramdisk.gz dd if=/dev/zero of=ramdisk bs=1k count=32768
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 Make shorter. Version control: git, svn, … Compilers: task-native-sdk/gcc, perl, python, ruby, tcl Java: phoneme_advanced_foundation, cacao, jamvm Other VMs: mono UI kits: Sugar, SWT/Swing, Tcl/Tk, Gnome, … Dynamic repositories: OSGi (Java), some CPAN (Perl)
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 development http://www.programmableweb.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 rt=Packages.java.lang.Runtime.getRuntime(); rt.exec(“…”) new Packages.java.io.File(“…”)
50
Beagle web control demo
beagle-web-control-demo used at ARM Developers’ Conference 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 Turn LEDs “on” and “off”
51
Collaboration tools
52
Distributed version control
GIT is different—eliminates 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 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
53
Post patch to OMAP community
Read Post your patch to mailing list
54
Chat, mail, forums, blogs, and wikis!
All exist because they all solve different problems Chat allows you to know someone’s listening or #beagle on irc.freenode.net Great for beginner questions and rapid coordination Mail allows you to reach almost anyone Brings larger group into the conversation Provides you with a personal log in your inbox Forums helps get the threads organized (minimal activity to avoid disrupting community critical mass) Blogs provide emphasis, filtering, and timeliness and Wikis enable inputs to become documentation and
55
Chat on IRC http://freenode.net IRC clients
#beagle: discussion regarding the Beagle Board #neuros: discussion #davinci: discussion regarding TI DaVinci products #ol: discussion regarding OMAP Linux (not active) IRC clients
56
E-mail regarding OMAP Linux
57
Forums
58
Blogs (RSS feeds)
59
Wikis http://wiki.davincidsp.com http://tiexpressdsp.com
60
Registering Beagle projects http://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 manager’s approval Use the tag “beagleboard” Let’s explore:
61
Git What is Git? Read more here: Learn from Linus here:
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: Learn from Linus here:
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: How to build GIT ? #> tar –xzvf git tar.gz #> cd <to extracted directory> #> make How to install GIT ? #> make prefix=<my directory> install Example: #> 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 Tony’s README on muru.com for detailed description on working with OMAP GIT tree. Few important commands: To clone OMAP GIT Tree: $ git clone Note: Setup Proxy Server before cloning the tree: Example: #> export http_proxy= 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 <output_dir> abcdef abcdef abcdef01 Other methods: - Create another local branch and take a normal diff between the too. - Use Quilt. ( 1 Linux OMAP My-Clone Linus Main Line TAG
67
Everyday Git http://www.kernel.org/pub/software/scm/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.openembedded.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://beagleboard
Browsers Gecko: Firefox 3, Fennec, … WebKit: Epiphany, … Media FFmpeg, XMMS, GStreamer, MythTV, … Development C, Java, Python, Perl, Mono, Ruby, Tk, … Gaming, Networking, …
72
Installing Ångstrøm to NAND http://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 = console=ttyS2,115200n8 ramdisk_size= root=/dev/ram0 rw rootfstype=ext2 initrd=0x ,32M bootcmd = mmcinit;fatload mmc uImage; fatload mmc 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 = console=ttyS2,115200n8 console=tty0 root=/dev/mtdblock4 rw rootfstype=jffs2 nohz=off video=omapfb:vram:2M,vram:4M bootcmd = nand read ; bootm
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
Build environment not always well isolated Many build scripts do native build environment tests Alternatives Matrix Sponsored by ARM: 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 options http://wiki. omap. com/index. php
TI/Mistral OMAP35x EVM Nokia Internet Tablets LogicPD OMAPZoom Gumstix Overo Analogue & Micro Cobra3530 Cogent CSB740 LogicPD OMAP35x Dev. Kit / Medical EVM 5.75” x 6.25” Mini Board 3” x 3” LogicPD OMAP34x Mobile Development Kit 3.8” x 6.3” x .95” Gumstix Overo Beagle Board 3” x 3” OMAP34x SDP 8.5” x 11” OMAP35x EVM 4.25” x 7” Not to scale. Approximate size noted (in inches)
81
Many tools options 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 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 architecture http://www.ti.com/omap35x
Applications GUI App Framework 2D/3D APIs Multimedia Framework Optional DRM 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 GFX ARM
84
Accessing the C64x™+ DSP OMAP/DaVinci “Dummies Book” DSP/BIOS™ Link source available Provides code loading and data passing Kernel portions licensed as GPL DSP/BIOS RTOS and components Enables sharing of the DSP as a resource Free TI DSP compiler Non-commercial use Full support in Code Composer Studio
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 Ask your questions before you buy… Participate and enjoy! Finally, in closing, we want to remind you that BeagleBoard.org is a community of developers and hobbyists and provide unpaid support for BeagleBoard users. Those that participate in and contribute to the BeagleBoard.org technical community will likely get the most out of their BeagleBoard experience. The openness of BeagleBoard.org enables developers, be they hobbyists or product developers, to share advances in code, and helps to keep keeps costs low and enables more people to participate. Remember, There is online 24/7 access to fellow developers at Go ahead, ask your questions before you buy… Participate and enjoy! And to buy your BagleBoard to get started, go to BeagleBoard.org, click on the Digi-Key link to buy a BeagleBoard, and go for it!
86
Participating in the community
Joining the herd of cats Building Community for your open source project Video of Greg Kroah-Hartman on the Linux kernel Sending kernel patches upstream
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@ti.com jkridner@beagleboard.org
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 Open Source Hardware
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 >2100 subscribers Beagleboard.org handles the RMAs
92
Overview (Cont) Multiple Distributors Production DigiKey Mouser
>1,000 per month Mouser SparkFun (Pending) IDA Systems (India) Production Built in the US Plans for Asia
93
Features 3” x 3” Power Processor 256MB DRAM 256MB FLASH USB 5V DC
OMAP3530 600MHz DSP 3D Graphics 256MB DRAM 256MB FLASH
94
Features (cont) Serial Port Audio Display port DVI-D LCD Header
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 Button LEDs MMC UART
SPI GPIO Power Button Reset User LEDs 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?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.