OK, time to get serious about a new verification image. There is
confusion regarding the validation process as new people are coming to
the BeagleBoard and trying to follow the many various sources of
instructions, some of which have become a bit stale. Several people
have been hacking away at the code for the BeagleBoard-xM and, now
with the camera code working for VGA and 3MP sensors, it is time to
get things cleaned up into a releasable state with instructions for
all board revisions, Bx (128MB OTG-only), C2/3 (256MB 600MHz), C4
(720MHz w/ USB fixes), and xM-Ax (512MB w/ USB hub).
The verification software is utilizing the Angstrom Distribution of
GNU/Linux with 3 non-BeagleBoard-specific open source projects having
BeagleBoard-specific updates: x-loader, u-boot, and the Linux kernel.
Branches for the git repositories of these projects are cloned on
Gitorious [1]. The x-loader upstream is on TI's Arago Project server
[2], but we've actually started from sources maintained by Steve
Sakoman from his Gitorious x-load project repository [3] and may
require a more public process before we can conclude where the
upstream will be. The u-boot upstream is on Denx's site [4] with a TI
staging area [5] we should utilize. The Linux kernel upstream is on
kernel.org [6] where Tony Lindgren has a staging area for OMAP [7].
While it would be ideal from a least-amount-of-wasted-effort
standpoint to get all of the BeagleBoard-specific updates pushed into
their upstream projects prior to any further distribution of the
working branches, we need to build up an automated test build and test
flow to make sure the code going upstream really works for people and
in a way that we can test for any significant regressions. The task
list being spelled out here will be about putting together that
verification image and, once complete, we can point the build tool to
the upstream project repositories and push our patches until
everything works directly from the upstream sources.
The primary user entry page for the verification software is the
BeagleBoard.org support page (http://beagleboard.org/support) [8].
This will point to the diagnostic/verification instructions page [9]
on the Google code project wiki. The Google code project issues list
[10] should be used to report any confirmed issue with the software or
instructions that might otherwise might get forgotten. There will be
a single diagnostic/verification page and all the obsolete
verification pages on that wiki site will get replaced with links to
the one set of instructions that should work for all revisions of the
hardware. During initial work, I'll be using the
BeagleBoardDiagnosticsNext wiki page [11].
Unlike previous sets of diagnostic/verification instructions, we will
utilize an exact MMC/SD card image (as produced with the Linux 'dd'
utility) and utilize the Ubuntu Win32DiskImager [12] (with a source
project on Launchpad [13]) to enable making a bootable card via
Windows, instead of any proprietary formatting tools. The image will
be a fixed size that requires a minimum card size of 128MB. The
BeagleBoard itself can be used to repartition the card, format the
second partition, download something like the full Angstrom
Distribution demo image [14], and configure the boot.scr for your
monitor resolution.
A 64MB ramdisk image will contain all the test scripts and data files.
The current ramdisk image is the one in the ESC Chicago demo image
[15]. The u-boot patch to read 'user.scr' when the USER button is
held will allow recovery from creating a bad 'boot.scr'. Users will
be discouraged from setting environment variables in the NAND flash to
allow distribution makers to create SD card images that simply boot
without needing to mess with the u-boot environment.
Some of the remaining tasks:
* Angstrom patch: add a recipe for the ramdisk based on minimal-image
with the test scripts and u-boot scripts
* Angstrom patch: add mplayer with tv:/// support for the camera to
the ramdisk image
* Scripts: update ec2build.sh to perform the build (uses Amazon EC2
and could even be issued from the BeagleBoard)
* Scripts: update mkcard.sh to reformat wget the LinuxTag/ESC Angstrom
demo image
* Scripts: update mkcard.sh to create a card image without an SD card
(using losetup like the ESC script [16])
* Angstrom patch: should their be a task that calls mkcard.sh?
* U-boot: only boot from ramdisk.gz if USER button is held
* U-boot: present warning on Numonyx flash on xM (warn people not to
use the flash because it won't always be there)
* Linux: create new validation branch
* Angstrom patch: add recipes to point to the beagleboard-validation
x-load, u-boot, and kernel trees and use those for the ramdisk
* Angstrom u-boot scripts: add scripts to set the flash to desired
factory conditions
* Populate the 'downloads' folder on the S3 file share to make avoid
any of the source sites going down on us
[1] http://gitorious.org/beagleboard-validation
[2] http://arago-project.org/git/projects/?p=x-load-omap3.git
[3] http://gitorious.org/x-load-omap3
[4] http://git.denx.de/?p=u-boot.git
[5] http://git.denx.de/?p=u-boot/u-boot-ti.git
[6] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git
[7] http://git.kernel.org/?p=linux/kernel/git/tmlind/linux-omap-2.6.git
[8] http://beagleboard.org/support
[9] http://code.google.com/p/beagleboard/wiki/BeagleBoardDiagnostics
[10] http://code.google.com/p/beagleboard/issues/list
[11] http://code.google.com/p/beagleboard/wiki/BeagleBoardDiagnosticsNext
[12] https://wiki.ubuntu.com/Win32DiskImager
[13] https://launchpad.net/win32-image-writer
[14] http://www.angstrom-distribution.org/demo/beagleboard/
[15] http://beagleboard.org/esc
[16] http://www.beagleboard.org/~arago/esc/mksdimg.sh.txt