Embedded linux
From NuclearCat's homepage
Contents |
GPL compliance patches
Because i am removing or modifying not required for me stuff for my projects, and sometimes distributing my code, i am publishing diff's with original code here:
- http://www.nuclearcat.com/files/iproute2.gpl.diff iproute-2.6.23 patch, removing decnet and IPX stuff from ip, to make size of binary a bit smaller
WRAP SC1100 reboot fix (trivial)
--- linux-2.6.23/arch/i386/kernel/reboot_fixups.c 2007-10-09 23:31:38.000000000 +0300
+++ linux-2.6.23-new/arch/i386/kernel/reboot_fixups.c 2007-11-04 04:34:44.000000000 +0200
@@ -42,6 +42,7 @@
static struct device_fixup fixups_table[] = {
{ PCI_VENDOR_ID_CYRIX, PCI_DEVICE_ID_CYRIX_5530_LEGACY, cs5530a_warm_reset },
{ PCI_VENDOR_ID_AMD, PCI_DEVICE_ID_AMD_CS5536_ISA, cs5536_warm_reset },
+{ PCI_VENDOR_ID_NS, PCI_DEVICE_ID_NS_SC1100_BRIDGE, cs5530a_warm_reset },
};
/*
Debug and other Tricks
uart[8250],io,<addr>[,options]
uart[8250],mmio,<addr>[,options]
Start an early, polled-mode console on the 8250/16550
UART at the specified I/O port or MMIO address,
switching to the matching ttyS device later. The
options are the same as for ttyS, above.
Sizes
I tried to track, what is consuming most space in kernel while compiling kernel
- Generic i386 kernel - 251Kb
- Added networking - 302Kb (51Kb)
- Added Virtual terminal - 366Kb (+64Kb)
- Added printk support - 387Kb (+21Kb)
- Removed Optimize for size - 429Kb, reversed (+42Kb, 10%)
- Removed initrd/initramfs support - 381Kb (-7Kb)
- Changing SLOB to SLUB - 392Kb (+5Kb)
- Removing HID devices - 383Kb (+9Kb)
- Enabling block layer(and it enable also a lot of another nasty stuff seems) - 424Kb (41Kb)
- Disabling ELF support 421Kb (3Kb)
- Proc & sysctl 460Kb (36Kb)
- sysfs 473 Kb (13Kb)
- Inotify+Dnotify 478 (5Kb)
- To be continued...
So TODO:
- Remove HID
- Remove in production VT?
- Remove in production printk?
Links
- http://gentoo-wiki.com/HOWTO_Cross_Compile
- http://www.nuclearcat.com/files/embedded_linux_optimizations.odp (taken from http://free-electrons.com/doc/embedded_linux_optimizations.odp)
uclibc for generic CPU, Gentoo
USE="-* -nls" UCLIBC_CPU="486" crossdev -t i386-linux-uclibc -S
