BOEL update

From SystemImager

Jump to: navigation, search

Contents

HOWTO: update SystemImager kernel (a.k.a. BOEL)

Start with the old .config

Copy the previous config file from patches/linux.<ARCH>.config into the new kernel source directory. For example:

 $ cp patches/linux.i386.config src/linux-2.6.16/.config

Make the kernel

Try to make the kernel, cloning the previous configuration:

$ cd src/linux-2.6.16 && make xconfig

Surely you will get some errors here, due to the differences of the previous configuration parameters, but that's not a problem.

Using the xconfig interface simply choose a configuration compatible with the new kernel you want to use and remember the following guidelines.

Developer's guidelines

  • compile only the minimum functionalities to boot and to reach the image server via the network (compile all the available network drivers statically in the kernel)
  • compile storage drivers and file systems as kernel modules (they'll be included in boel_binaries.tar.gz)
  • do not use SLOB allocator: rsync becomes very slow with that! (better to use SLAB)
  • compile RAM disk support statically in the kernel
  • compile these filesystems statically in the kernel: cramfs, procfs', sysfs, tmpfs (aka virtual memory filesystem), ISO 9660, UDF
  • enable support for large block devices
  • enable support for largest memory size (in some systems with a lot of memory users could want to use tmpfs staging of the whole image)
  • regarding networking and storage be more general as you can: BOEL should support all the available network cards and disk controllers
  • remember that the target environment is mainly a single-user and single-task system (a preemptible kernel will only provide lower performance)
  • do not enable sound and multimedia stuff

Moreover remember to update the kernel patches and remove those that are no more needed. The patches are constituted of the following files:

 patches/linux.<ARCH>.<PATCH_NAME>.patch

Update the .config

Save the new generated .config in patches/linux.<ARCH>.config and make the systemimager package to check if there's something wrong:

 $ cp src/linux-2.6.16/.config patches/linux.i386.config
 $ make
Personal tools