Advanced OpenEmbedded

Setting up opkg feeds

 * 1) Install Apache
 * 2) Add a symlink to the openembedded deploy/ipk directory:
 * 3) Determine your IP address, and then add the following line to meta-chumby/conf/local.conf - you will need to rebuild the -image and re-write it to an SD card:
 * 4) * FEED_DEPLOYDIR_BASE_URI = "http://ip-address/oe-repo"
 * 5) After you finish building packages, refresh the package index
 * 6) On the device, re-fetch the package list
 * 7) On the device, search for packages or install them
 * 1) On the device, re-fetch the package list
 * 2) On the device, search for packages or install them
 * 1) On the device, search for packages or install them
 * 1) On the device, search for packages or install them

Tuning the build

 * 1) Edit meta-chumby/conf/local.conf
 * 2) Change "BB_NUMBER_THREADS" to be something reasonable such as one greater than the number of cores present on your system.
 * 3) Change PARALLEL_MAKE to be 1 or 2, depending on how much memory you have.
 * 4) If you're running builds under X11, remove the "TERMCMD" and "TERMCMDRUN" commands.  If you ever need to use the devshell under X11, it will open up a new xterm.  The default is to open up a new "screen" session, which is best for interacting with OpenEmbedded via SSH.
 * 5) Save and quit
 * 6) * Press Ctrl-X, type "Y", and press Enter to save and quit.
 * 1) * Press Ctrl-X, type "Y", and press Enter to save and quit.

Tuning the resulting image

 * 1) Edit meta-chumby/conf/machine/chumby-falconwing.conf
 * 2) Change the size of the rootfs.  Value is in kilobytes.  The resulting image will always be about 16 megabytes larger, due to the overhead of the bootloader
 * 3) * IMAGE_ROOTFS_SIZE = "450000"
 * 4) Set the width and height of the display.  Note you may need to make kernel patches in order to force it to PAL mode, or to add additional LCDs
 * 5) * MACHINE_DISPLAY_WIDTH_PIXELS = "720"
 * 6) * MACHINE_DISPLAY_HEIGHT_PIXELS = "480"
 * 1) * MACHINE_DISPLAY_HEIGHT_PIXELS = "480"

Patching the kernel (using devshell and screen)

 * 1) Start up a devshell
 * 2) Wait until the log says "task do_devshell: Started"
 * 3) Enter the devshell
 * 4) Add everything to git
 * 5) ** Git might throw an error saying "patches" won't be added, so remove that directory and try again (rm -rf patches; git add *)
 * 6) Set up for building the kernel
 * 7) Make changes (for example):
 * 8) Test changes
 * 9) * Copy arch/arm/boot/zImage to device
 * 10) * Write kernel e.g. by running "config_util --cmd=putblock --dev=/dev/mmcblk0p1 --block=krnA < /media/usb/zImage"
 * 11) Commit changes (for example):
 * 12) Create a patch
 * 13) Copy the resulting .patch file to ~/chumby-oe/meta-chumby/recipes/linux/linux-falconwing/
 * 14) Exit the devshell
 * 15) Edit the kernel recipe and add the new patch, adding the patch to the SRC_URI
 * 16) * file://0001-lcd-timings.patch \
 * 17) Rebuild the kernel and bootloader
 * 1) * Write kernel e.g. by running "config_util --cmd=putblock --dev=/dev/mmcblk0p1 --block=krnA < /media/usb/zImage"
 * 2) Commit changes (for example):
 * 3) Create a patch
 * 4) Copy the resulting .patch file to ~/chumby-oe/meta-chumby/recipes/linux/linux-falconwing/
 * 5) Exit the devshell
 * 6) Edit the kernel recipe and add the new patch, adding the patch to the SRC_URI
 * 7) * file://0001-lcd-timings.patch \
 * 8) Rebuild the kernel and bootloader
 * 1) Exit the devshell
 * 2) Edit the kernel recipe and add the new patch, adding the patch to the SRC_URI
 * 3) * file://0001-lcd-timings.patch \
 * 4) Rebuild the kernel and bootloader
 * 1) * file://0001-lcd-timings.patch \
 * 2) Rebuild the kernel and bootloader

Make your own custom image
These instructions are based on http://bec-systems.com/site/456/capture-oe-source-changes
 * 1) Copy meta-chumby/recipes/images/chumby-starter-image.bb to your own image file
 * 2) Edit the image and add any packages to DEPENDS and IMAGE_INSTALL
 * 3) Build the image
 * 4) Write the image out to disk
 * 1) Build the image
 * 2) Write the image out to disk
 * 1) Write the image out to disk