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 kernel.org 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.
Webinar: 8 Signs You’re Beyond Cron
11am CDT, April 29th
Join Linux Journal and Pat Cameron, Director of Automation Technology at HelpSystems, as they discuss the eight primary advantages of moving beyond cron job scheduling. In this webinar, you’ll learn about integrating cron with an enterprise scheduler.Join us!
- Picking Out the Nouns
- Tips for Optimizing Linux Memory Usage
- "No Reboot" Kernel Patching - And Why You Should Care
- DevOps: Better Than the Sum of Its Parts
- Return of the Mac
- Android Candy: Intercoms
- Drupageddon: SQL Injection, Database Abstraction and Hundreds of Thousands of Web Sites
- Non-Linux FOSS: .NET?
- New GeekGuide: Beyond Cron