Embedded Systems Conference 2008
Build Your Own Embedded System with the Beagle Board
Under Construction -- All presentations and SD contents will be uploaded here, along with instructions on programming the SD cards. This construction message will be removed once all of the content is here
This page summarizes the content presented at ESC 2008 in the Build Your Own Embedded System with the Beagle Board track. This page is still under construction and the content for most of the presentations, including download-able software, should be linked to from here. Please come back soon as this should probably be finished in the next week.
Instructions for booting the MontaVista-built SD card image provided with your boards can be found below.
The summary of courses can be found on the conference schedule. Below is the list of sessions and links to the materials:
- [ESC-100] Beagle Board 101 (pre-conference workshop) - Gerald Coley and Jason Kridner
- [ESC-201] Understanding Free and Open Source Licenses - William Gatliff
- [ESC-221] Building an Embedded Linux System from Scratch - William Gatliff
- [ESC-241] Understanding Linux Kernel Modules - William Gatliff
- [ESC-261] Constructionist learning with Sugar and the Beagle Board - Bernie Innocenti
- [ESC-301] BeagleBoard Platform BringUp - Bill Mar
- [ESC-321] Embedded Streaming Media with GStreamer - Todd Fischer
- [ESC-341] Introduction to creating 3D UI with Beagle Board - Diego Dompe
- [ESC-401] Hardware lessons from building Beagle - Gerald Coley
- [ESC-421] Taking advantage of Bluetooth for communications and more - Hunyue Yau
- [ESC-441] Building blocks of Embedded Linux Power Management - William Gatliff
- [ESC-461] Memory Subsystem Optimization - Mike McClimans and Bill Stafford
Booting the MV Linux SD card
Back to topAs shipped, the Beagle Boards are not configured to boot the kernel and root file system on the SD cards, nor are the SD cards configured with a boot-loader that can be executed by holding the USER button. It is simple to configure the boot-loader loaded onto the Beagle Boards to boot the SD cards provided with the demo image that was generated using MontaVista Linux.
Please note that this is a demo card image that was built using MV Linux for the purpose of this training and does not fully represent what is available from MontaVista in support of the OMAP3530.
- Connect to the Beagle Board serial port. Adapters can be found on the hardware page. Basic instructions can be found in the System Reference Manual and also on the Beagle Board beginners page on the eLinux.org wiki.
-
At the "OMAP3 beagleboard.org #" prompt, give the following commands:
setenv bootcmd 'mmcinit;fatload mmc 0 80200000 uImage;bootm 80200000' saveenv
- Remove power, have the SD card and other system peripherals connected, apply power and you should get to the "login:" prompt. Be aware that the system will turn off the monitor due to inactivity and there is not a trivial way to disable this time-out. Pressing any key on the USB keyboard will bring the monitor output back on.
If you need to recreate your MV Linux SD card, or you want to use a bootable card, you can make use of the MV Linux SD card image (please request from sales AT mvista.com). You'll need to use zcat or gunzip to decompress the image and dd to copy the image onto a 2GB SD card.
Be very careful when using dd not to overwrite the wrong drive
ESC-100: BeagleBoard 101
Back to topJason Kridner and Gerald Coley
This presentation walked through the process of developing with the Beagle Board and interacting with the community. Particular attention was given to the boot process to get the Angstrom and MontaVista demos running.
Angstrom Demo
The following steps should allow you to program the Angstrom demo into the NAND flash on your Beagle Board using a Windows PC with an SD card adapter and without the use of the serial port, a multi-partition SD card, or a Linux PC.
Step 1: Re-format an SD card to be boot-able
Information on formatting the SD cards, putting your board back into factory conditions, and testing the hardware functionality can be found at: BeagleBoardDiagnostics. Specifically, this utility can be used to format the SD cards: SP27213.exe.
It is important that the card be formated with a specific geometry and be marked bootable in the partition table. The HP SD card formatting utility has been shown to be reliable at doing this under Windows. Under Linux fdisk, specific geometries have been shown to work well.
Step 2: Download the Angstrom demo SD card contents
The following content files can be downloaded from this site:
- MLO - This must be the first file copied to the SD. It is the file loaded by the ROM boot-loader and it loads u-boot.bin off of the SD card.
- u-boot.bin - Hacked u-boot to read u-boot.img for command script from MMC/SD card first partition (/dev/mmcblk0p1), rather than using the environment in the NAND flash.
- u-boot.img - U-boot script that configures the environment in the NAND flash to boot from NAND and programs the Linux kernel into the flash.
- uImage - The kernel to be used to boot the ramdisk.gz and rootfs.tgz root file systems on the Beagle.
- ramdisk.gz - The RAMDISK console-only root file system that is loaded into RAM by booting from the SD card. It has been modified from the default Angstrom root file system to execute boot.sh from the first partition on the MMC/SD card (/media/mmcblk0p1).
- boot.sh - These commands executed automatically by ramdisk.gz and are used to install the Angstrom demo on to the on-board flash.
- rootfs.tgz - The root file system copied onto the JFFS2 partition (/media/mtdblock4) on the on-board NAND flash by boot.sh.
- bootable.sh - This originally contained some commands to "fix-up" the MV Linux SD card, but the "fix-up" doesn't work. Instead, it is recommended you simply configure the environment variables in flash to boot the SD card, rather than try to make the SD card itself bootable. This script has been modified to set the environment variables using the u-boot_fw.tgz executables and should only be run from within the Angstrom kernel as running it from the MV kernel has shown it to corrupt the NAND flash environment variables for some class attendees.
- ignorenv.txt - This is the patch used to hack u-boot. The link to the source to which this patch applies is included in the presentation.
- mkubootcmd - This is the script that builds the u-boot script files:
- u-boot.tgz - The hacked u-boot sources described in the presentation.
- u-boot_fw.tgz - The files built by Frank during the class to set the environment on the flash (mtd2) from within Angstrom Linux, rather than from the u-boot serial prompt.
- copyfiles.bat - A DOS batch script file that you can edit to format the SD card and copy the files in the proper order. This script file calls itself again in the end for the purpose of making multiple SD cards.
Step 3: Copy files to the SD card
All of the files should be copied to the SD card in order. At least the MLO file should be copied onto the SD card first, immediately after formatting the card.
Step 4: Install Angstrom demo by booting the SD card
Insert the SD card, hold the USER button, and apply power. You can release the USER button when you see the USR0/USR1 LEDs come on (within a second from applying power). Type "yes" to install the demo and "flash" to configure the board to boot the demo upon startup.
Step 5: Configure for running MV Linux demo
Remove power, wait a few seconds, then apply power again. This time, do not hold the USER button and the SD card is not required to be inserted. You will boot to a GUI where you can login. The password is 'Angstrom'. Bring up a root shell and you can run the following commands to configure the board to boot to the MV Linux demo:
fw_setenv bootcmd 'mmcinit;fatload mmc 0 80200000 uImage;bootm 80200000'
Shutdown and restart with the MV Linux demo SD card inserted and it will boot. You can then install the 3D graphics drivers and utilize other aspects of the demo.
Additional notes
If you have a serial port connection, you can use configure the boot source from the u-boot console. Press when you see the text being output, within the timeout period, to reach the prompt.
From the U-Boot prompt (OMAP3 beagleboard.org #) on the serial port, if you have the Angstrom demo installed into the NAND flash, configure the Beagle Board to execute it with the following commands:
setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mtdblock4 rw rootfstype=jffs2 nohz=off' setenv bootcmd 'nand read 80200000 280000 400000;bootm 80200000' saveenv boot
From the U-Boot prompt (OMAP3 beagleboard.org #) on the serial port, to execute either the MV Linux demo or the Sugar demo stored on SD cards, execute the following commands:
setenv bootargs 'console=ttyS2,115200n8 console=tty0 root=/dev/mmcblk0p2 rw rootwait nohz=off' setenv bootcmd 'mmcinit;fatload mmc 0 80200000 uImage;bootm 80200000' saveenv boot
During the class, some attendees were running USB networking and VNC to use their laptops as the keyboard, mouse, video, and networking for their Beagle Boards. Scott did a write-up on the Beagle Board mailing list on how to configure USB networking and VNC under Angstrom.
Additional source information to be provided upon request or sooner at this location.
[ESC-261] Constructionist learning with Sugar and the Beagle Board
Back to topBernie Innocenti
[ESC-321] Embedded Streaming Media with GStreamer
Back to topTodd Fischer
- Conference paper
- Slides
- Extra content - Expand this into the root directory of your MV Linux based SD cards (requires a Linux host).
[ESC-341] Introduction to creating 3D UI with Beagle Board
Back to topDiego Dompe
- Conference paper
- Slides
- Extra content - Expand this into the root directory of your MV Linux based SD cards (requires a Linux host).
[ESC-401] Hardware lessons from building Beagle
Back to topGerald Coley
[ESC-421] Taking advantage of Bluetooth for communications and more
Back to topHunyue Yau