How to deploy .deb packages into kernel monolithically

Good day, citizens.

Development Distro(s): Debian 5.0 Lenny, Ubuntu Lucid 10.4
Target kernel: 2.6.3x
Kernel build methods:

Debian: command line using make method directives

Ubuntu: Ubuntu Customization Kit

I am attempting to construct a customized 2.6.3x kernel image using kernel source obtained from the repository. At the time of image construction, I would also like to deploy several apps / utilities available in the format of .deb packages. In this way, when the initial image installation is performed, these app / utility packages will simultaneously be installed.

Using the Ubuntu Customization Kit, this is achievable as there is a break in the build process that allows packages to be added / removed / upgraded. Actually, I believe that UCK performs this package survey before the image construction actually starts. Unfortunately, this approach is not efficient because regardless of how many "packages" are removed the size of the image is still uncontrolled due to other excessive overhead (drivers, object files, unwanted system directives, etc) be passed into the new image....

On the other hand, we using command line build utilities (build-essential tools) I can scale the kernel image according to my specific need - which is very helpful when building for embedded applications. Using these method also allows me to build the kernel modules per the .config file be referenced for the build. Unfortunately, in this case I do not see a means to simultaneously deploy any additional .deb packages that I want installed in my new kernel.

For example: I would like to create an embedded so-called RTOS environment using the available RTAI package. One of the constraints of my system is the capacity of the primary storage flash ROM where my OS will reside - 64MB. As such, I want to stip out all unneeded resources / references from my kernel. Additionally, I do not want end users to have to manually deploy any packages after boot.

I have an idea how to do this, but am unsure with the exact implementation. My thoughts....

1. extract kernel soruce to build directory
2. create filesystem (?)
3. chroot to filesystem root (?)
4. use package manager (dpkg, apt-get, aptitude, etc) to download and install package on chroot'd filesystem
5. exit chroot
6. use build tools to build new kernel image.

Any help on this would be much appreciated. Thanks in advance.

One Click, Universal Protection: Implementing Centralized Security Policies on Linux Systems

As Linux continues to play an ever increasing role in corporate data centers and institutions, ensuring the integrity and protection of these systems must be a priority. With 60% of the world's websites and an increasing share of organization's mission-critical workloads running on Linux, failing to stop malware and other advanced threats on Linux can increasingly impact an organization's reputation and bottom line.

Learn More

Sponsored by Bit9

Linux Backup and Recovery Webinar

Most companies incorporate backup procedures for critical data, which can be restored quickly if a loss occurs. However, fewer companies are prepared for catastrophic system failures, in which they lose all data, the entire operating system, applications, settings, patches and more, reducing their system(s) to “bare metal.” After all, before data can be restored to a system, there must be a system to restore it to.

In this one hour webinar, learn how to enhance your existing backup strategies for better disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible bare-metal recovery solution for UNIX and Linux systems.

Learn More

Sponsored by Storix