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.
Fast/Flexible Linux OS Recovery
On Demand Now
In this live one-hour webinar, learn how to enhance your existing backup strategies for complete disaster recovery preparedness using Storix System Backup Administrator (SBAdmin), a highly flexible full-system recovery solution for UNIX and Linux systems.
Join Linux Journal's Shawn Powers and David Huffman, President/CEO, Storix, Inc.
Free to Linux Journal readers.Register Now!
- Download "Linux Management with Red Hat Satellite: Measuring Business Impact and ROI"
- May 2016 Issue of Linux Journal
- Devuan Beta Release
- The Qt Company's Qt Start-Up
- Home Automation with Raspberry Pi
- The Death of RoboVM
- The Humble Hacker?
- BitTorrent Inc.'s Sync
- Server Hardening
- Take Control of Your PC with UEFI Secure Boot
In modern computer systems, privacy and security are mandatory. However, connections from the outside over public networks automatically imply risks. One easily available solution to avoid eavesdroppers’ attempts is SSH. But, its wide adoption during the past 21 years has made it a target for attackers, so hardening your system properly is a must.
Additionally, in highly regulated markets, you must comply with specific operational requirements, proving that you conform to standards and even that you have included new mandatory authentication methods, such as two-factor authentication. In this ebook, I discuss SSH and how to configure and manage it to guarantee that your network is safe, your data is secure and that you comply with relevant regulations.Get the Guide