Summary of steps to build the ESC demo image

I thought I had already sent this, but it was still sitting in my
drafts folder...

Fighting issues here and there has us working to the very last minute
to put together the demo image for the BeagleBoard-xM hands-on
training at ESC Chicago. Given that we are limited in our production
right now, this training is essentially a beta test of the demo image
that we will ship with the boards and we can use some time here to
help flesh out some issues and resolve quickly before it goes too
broad.

The steps were roughly (ignoring some fairly significant issues with
spotty wifi networking at the hotel):

1) Using narcissus, choose:
beagleboard
* advanced
  o manifest -> yes
* platform specific
  o linuxtag demo
2) dd if=/dev/zero of=/dev/sdd2 bs=1M ; sh mkcard.sh /dev/sdd; mount
/dev/sdd2 /media/card -O async,relatime
* mkcard fixed up to specify 444 cylinders only
3) tar xjf linuxtag-image-beagleboard.tar.bz2 -C /media/card
4) edit /etc/network/interfaces (only leave the 2 lo lines) edit
/etc/udev/scripts/mount.sh (async,relatime)
5) boot
6) login, adduser boris, etc /etc/passwd to change 'linux user'
7) Setup MLO, u-boot.bin, boot.scr, user.scr, and uImage
umount /media/mmcblk0p1/
mkfs.vfat -F 32 -n "boot" /dev/mmcblk0p1
mount /dev/mmcblk0p1 /media/mmcblk0p1
cp /boot/MLO-beagleboard-1.44+r11* /media/mmcblk0p1/MLO
cp /boot/u-boot-beagleboard-2010.03+r53* /media/mmcblk0p1/u-boot.bin
cp /boot/uImage /media/mmcblk0p1/uImage
cp /boot/u-boot-scripts/uboot-linuxtagdemo-sxga.cmd.scr
/media/mmcblk0p1/boot.scr
cp /boot/u-boot-scripts/uboot-ramdisk-dsplink.cmd.scr /media/mmcblk0p1/user.scr
8) rm /etc/localtime && ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
9) edit /etc/gdm/custom.conf:
[daemon]
TimedLoginEnable=true
TimedLogin=root
TimedLoginDelay=10
10) reboot
11) time preferences -> 24h, berlin location
12) add to panel -> cpufreq
13) drag icons from menu to desktop
* graphics -> texture streaming
* other -> GStreamer class
14) download bunny to the desktop
ipod version from http://www.bigbuckbunny.org/index.php/download/ (h.264)
(the 720p mpeg4 and 480p mpeg4 would be a better choice, but this is
what we did for now)
15) Install additional packages: x11vnc, evtest, linuxtag-ics, gstd,
qmake2, matrix-gui-autostart, esc-gst, esc-media, esc-node-demo
16) Install git repositories of git and u-boot to /usr/share/esc-training
git clone git://git.kernel.org/pub/scm/git/git.git
git clone git://git.denx.de/u-boot.git; cd u-boot
git remote add beagleboard-validation
git://gitorious.org/beagleboard-validation/u-boot.git
git remote update
17) Add ramdisk.gz to /media/mmcblk0p1/ (this is just a subset of the
files in the larger file system)

-Jason
http://beagleboard.org/twitter

Dear Jason,

Nice to see a step by step explanation of the LinuxTag demo, I do have
some questions regarding the steps. Could you help me?

Could you explain steps 4 and 5? How do I change mount.sh and how do I
boot the device without a proper boot partition? Do I still have
network after removing all lines from the interfaces file?

Kind regards, Eelco

How do I configure the demo image for a "regular" C4 board? Especially
the boot and user scripts are confusing me.

Jason,

I've tried all the steps you describe on my C4 board. I've used the
uboot-dsplink.cmd.scr instead of the uboot-ramdisk-dsplink.cmd.scr,
but somehow booting gets stuck after uncompressing the kernel... Any
hints and tips?

Kind regards, Eelco

Dear Jason,

Nice to see a step by step explanation of the LinuxTag demo, I do have
some questions regarding the steps. Could you help me?

Eelco,

Your e-mail thread is a bit of a disaster to try to follow. Please
take a read of http://beagleboard.org/faq on how to ask questions.

It would be easier to help you on such a complex process if you didn't
top-post. I've taken the liberty of interleaving your multiple
queries.

I thought I had already sent this, but it was still sitting in my
drafts folder...

Fighting issues here and there has us working to the very last minute
to put together the demo image for the BeagleBoard-xM hands-on
training at ESC Chicago. Given that we are limited in our production
right now, this training is essentially a beta test of the demo image
that we will ship with the boards and we can use some time here to
help flesh out some issues and resolve quickly before it goes too
broad.

The steps were roughly (ignoring some fairly significant issues with
spotty wifi networking at the hotel):

1) Using narcissus, choose:
beagleboard
* advanced
o manifest -> yes
* platform specific
o linuxtag demo
2) dd if=/dev/zero of=/dev/sdd2 bs=1M ; sh mkcard.sh /dev/sdd; mount
/dev/sdd2 /media/card -O async,relatime
* mkcard fixed up to specify 444 cylinders only
3) tar xjf linuxtag-image-beagleboard.tar.bz2 -C /media/card
4) edit /etc/network/interfaces (only leave the 2 lo lines) edit
/etc/udev/scripts/mount.sh (async,relatime)
5) boot

Could you explain steps 4 and 5?

Best for you to compare the Narcissus generated image and compare the
mount.sh file. There are many resources that explain how to boot.

How do I change mount.sh

Use a text editor.

and how do I
boot the device without a proper boot partition?

That wouldn't work. Why would you not have a proper boot partition?

Do I still have
network after removing all lines from the interfaces file?

Yes, networking works with the image at http://beagleboard.org/esc
under Chicago 2010.

6) login, adduser boris, etc /etc/passwd to change 'linux user'
7) Setup MLO, u-boot.bin, boot.scr, user.scr, and uImage
umount /media/mmcblk0p1/
mkfs.vfat -F 32 -n "boot" /dev/mmcblk0p1
mount /dev/mmcblk0p1 /media/mmcblk0p1
cp /boot/MLO-beagleboard-1.44+r11* /media/mmcblk0p1/MLO
cp /boot/u-boot-beagleboard-2010.03+r53* /media/mmcblk0p1/u-boot.bin
cp /boot/uImage /media/mmcblk0p1/uImage
cp /boot/u-boot-scripts/uboot-linuxtagdemo-sxga.cmd.scr
/media/mmcblk0p1/boot.scr
cp /boot/u-boot-scripts/uboot-ramdisk-dsplink.cmd.scr /media/mmcblk0p1/user.scr
8) rm /etc/localtime && ln -sf /usr/share/zoneinfo/Europe/Paris /etc/localtime
9) edit /etc/gdm/custom.conf:
[daemon]
TimedLoginEnable=true
TimedLogin=root
TimedLoginDelay=10
10) reboot
11) time preferences -> 24h, berlin location
12) add to panel -> cpufreq
13) drag icons from menu to desktop
* graphics -> texture streaming
* other -> GStreamer class
14) download bunny to the desktop
ipod version fromhttp://www.bigbuckbunny.org/index.php/download/(h.264)
(the 720p mpeg4 and 480p mpeg4 would be a better choice, but this is
what we did for now)
15) Install additional packages: x11vnc, evtest, linuxtag-ics, gstd,
qmake2, matrix-gui-autostart, esc-gst, esc-media, esc-node-demo
16) Install git repositories of git and u-boot to /usr/share/esc-training
git clone git://git.kernel.org/pub/scm/git/git.git
git clone git://git.denx.de/u-boot.git; cd u-boot
git remote add beagleboard-validation
git://gitorious.org/beagleboard-validation/u-boot.git
git remote update
17) Add ramdisk.gz to /media/mmcblk0p1/ (this is just a subset of the
files in the larger file system)

-Jason http://beagleboard.org/twitter

[Moved from your other e-mails.]

How do I configure the demo image for a "regular" C4 board? Especially
the boot and user scripts are confusing me.

There is at least 1 known bug in that the u-boot patches to add the
'userbutton' command setup the wrong GPIO for the USER button for Rev
C4 boards. It might work to copy the boot script file to user.scr,
rather than boot.scr, since the version of u-boot.bin in this image
will always think the USER button is being pressed.

I've tried all the steps you describe on my C4 board. I've used the
uboot-dsplink.cmd.scr instead of the uboot-ramdisk-dsplink.cmd.scr,
but somehow booting gets stuck after uncompressing the kernel... Any
hints and tips?

Not really. I'd say run step the kernel back to one that is known to
run on the C4 (pull one from
http://www.angstrom-distribution.org/demo/beagleboard) and then use
'git bisect' on the patches to find which one causes the break on C4.

Dear Jason,

Sorry for the mess I made from our conversation :wink: I was impressed
with the demo image (Youtube) and wanted to see if it runs on my
beagleboard. If I follow your steps literally I create a blank memory
card with two partitions in step 2. Step 3 yields a filled rootfs
partition but the boot (fat) partition is still empty. Changing the
network interfaces in step 4 is easy, but how mount.sh should be
changed is not clear from your post. In step 5 you say "boot", but
how, I still have an empty boot partition.

Is it because the XM board comes preloaded with a bootable NAND
partition? Most of the steps after step 5 are executed on the actual
Beagleboard? I need to execute them on my host linux machine as the C4
does not have a bootable NAND partition. In step 7 the files are
copied including the scripts boot.scr and user.scr. However, when the
system is booted I see that some environment variables (mem) are still
based on the XM memory size. Is it possible to have a ramdisk on the
Rev. C beagleboard or is it useless?

I am going to order the XM board as well...I think :wink:

Kind regards,

Eelco

Dear Jason,

Sorry for the mess I made from our conversation :wink: I was impressed
with the demo image (Youtube) and wanted to see if it runs on my
beagleboard. If I follow your steps literally I create a blank memory
card with two partitions in step 2. Step 3 yields a filled rootfs
partition but the boot (fat) partition is still empty. Changing the
network interfaces in step 4 is easy, but how mount.sh should be
changed is not clear from your post. In step 5 you say "boot", but
how, I still have an empty boot partition.

I don't see an issues with moving step 7 to just before step 4. When
this was actually done, it was done in a couple of iterations, so it
seems this step was put in out of order. Can you attempt and provide
the documentation of the procedure that works for you?

Is it because the XM board comes preloaded with a bootable NAND
partition?

There is no NAND on the xM.

Most of the steps after step 5 are executed on the actual
Beagleboard?

Yes.

I need to execute them on my host linux machine as the C4
does not have a bootable NAND partition. In step 7 the files are
copied including the scripts boot.scr and user.scr. However, when the
system is booted I see that some environment variables (mem) are still
based on the XM memory size. Is it possible to have a ramdisk on the
Rev. C beagleboard or is it useless?

Yes, running a ramdisk on Rev C is fine, as long as you aren't trying
to run Firefox or something just as much of a memory hog.

Jason,

Thanks for your patience, I know I can be a pain... I am going to try
it this weekend and will try to document it as well.

I want to use the board for a demonstration of real green computing at
a mini seminar at Ernst & Young.

Kind regards,

Eelco