Linux kernel
Compiling the debian way
see: Debian Linux Kernel Handbook
bzip2 -dc /usr/src/patch.bz2 | patch -p1 --dry-run
make-kpkg clean fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
After –append-to-version=
you can write any string that helps you identify the kernel, but it must begin with a minus (-) and must not contain whitespace.
SMP/DualCore compiling tip
# CONCURRENCY_LEVEL=4 make-kpkg --initrd --rootcmd=fakeroot --append-to-version=<version> kernel_image
Cross-compiling
see: http://michael-prokop.at/blog/2007/01/21/cross-compile-the-linux-kernel-on-debian/
Adjust $KERNELSOURCE/Makefile to:
ARCH = powerpc CROSS_COMPILE = powerpc-linux-gnu-
export ARCH=powerpc
make-kpkg --arch powerpc ...
kernel lab
kernellab − manage kernel configs for many machines easily
apt-get install kernellab
usage:
kernellab [options] <host> [<version>[−ac<patchlevel>] [<module>..]]
or more advance :)
for a in router1 router2 router3 ...; do kernellab "$a"; done
IO scheduler
- Completely Fair Queuing—elevator=cfq
- Deadline—elevator=deadline
- NOOP—elevator=noop
- Anticipatory—elevator=as
image = /boot/vmlinuz26113 initrd = /boot/initrd.gz append = "elevator=deadline" root = /dev/hda1 label = kernel_2.6.11.3 read-only
# cat /sys/block/hda/queue/scheduler noop [anticipatory] deadline cfq
how come deadline is not being chosen??
This works.
# echo deadline > /sys/block/hda/queue/scheduler # cat /sys/block/hda/queue/scheduler noop anticipatory [deadline] cfq