Skip to content

Latest commit

 

History

History
 
 

aem

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 

Script for provisioning a DUT with WIP GRUB and Xen

Setup on first use

./aem.sh init   # can specify --depth=1
vim aem-cfg.sh  # edit repo URL, branches, device files, list of files to copy
./aem.sh build
./aem.sh update # generates helper script
# put files that will be sent to the DUT in webroot/
cp somewhere/{grub.cfg,bzImage,initramfs.cpio} webroot
./aem.sh serve  # starts the server and exists

Example grub.cfg is in the current directory (here). Minimal bzImage and initramfs.cpio can be found in http://boot.3mdeb.com/tb/mb2/. Full kernel and initramfs from most distributions should also work, as long as they are built for Xen.

After making changes in GRUB/Xen

Rebuild everything:

./aem.sh build
# the server is still running, this just updates list of grub modules or
# regenerates the helper script
./aem.sh update

Rebuild only GRUB:

./aem.sh build grub
./aem.sh update     # skip this if you didn't add/remove GRUB modules

Rebuild only Xen:

./aem.sh build xen

On DUT

wget -O - 10.0.2.2:8080 | bash -

After done with everything

Remove everything but config and your files in webroot/:

./aem.sh purge

The server is stopped automatically if it was still running.

Multiple workspaces

You can put the script in $PATH or call it outside of the directory it resides in in current way. This enables creation of multiple independent workspaces. Could be useful for working with several branches of projects.

Some implementation details

The script downloaded via wget on DUT is generated by aem.sh. So all your edits will be lost on the next ./aem.sh serve on or ./aem.sh serve update command.