This page has a list of items that can be configured for the Linux kernel,
which may affect the size (RAM/ROM/static/dynamic) of the kernel.
Options from Linux-tiny
CONFIG option
|
description
|
default value
|
value for small size
|
Size change (ARM)
|
Notes
|
CONFIG_CORE_SMALL
|
tune some kernel data sizes
|
N
|
Y
|
??
|
.
|
CONFIG_NET_SMALL
|
tune some net-related data sizes
|
N
|
Y
|
??
|
.
|
CONFIG_PRINTK
|
allow disable of printk code and message data
|
Y
|
N
|
??
|
.
|
CONFIG_BUG
|
allow elimination of BUG (and BUG_ON??) code
|
Y
|
N
|
??
|
.
|
CONFIG_ELF_CORE
|
allow disabling of ELF core dumps
|
Y
|
N
|
??
|
.
|
CONFIG_PROC_KCORE
|
allow disabling of /proc/kcore
|
Y
|
N
|
??
|
.
|
CONFIG_AIO
|
allow disabling of async IO syscalls
|
Y
|
N
|
??
|
.
|
CONFIG_XATTR
|
allow disabling of xattr syscalls
|
Y
|
N
|
??
|
.
|
CONFIG_FILE_LOCKING
|
allow disabling of file locking syscalls
|
Y
|
N
|
??
|
.
|
CONFIG_DIRECTIO
|
allow disabling of direct IO support
|
Y
|
N
|
??
|
.
|
CONFIG_MAX_SWAPFILES_SHIFT
|
number of swapfiles
|
5
|
0
|
??
|
.
|
CONFIG_NR_LDISCS
|
number of tty line disciplines
|
16
|
2?
|
??
|
.
|
CONFIG_MAX_USER_RT_PRIO
|
number of RT priority levels (schedule slots)
|
100
|
5?
|
??
|
.
|
Other config options
|
These are not in Linux-tiny, but help with size
|
default
|
small
|
Size change (ARM)
|
Notes
|
CONFIG_KALLSYMS
|
load all symbols for debugging/kksymoops
|
Y
|
N
|
??
|
.
|
CONFIG_SHMEM
|
allow use of shmem filesystem
|
Y
|
N
|
??
|
.
|
Options for size instrumentation
Options for measuring size
|
description
|
default value
|
value for instrumentation
|
CONFIG_KMALLOC_ACCOUNTING
|
turn on kmalloc accounting
|
N
|
Y
|
CONFIG_AUDIT_BOOTMEM
|
print out all bootmem allocations
|
N
|
Y
|
CONFIG_DEPRECATE_INLINES
|
cause compiler to emit info about inlines
|
N
|
Y
|
options that should be investigated
Option
|
default value
|
value for small size
|
Size change
|
Notes
|
CONFIG_SERIAL_8250_NR_UARTS
|
4
|
0
|
??
|
only useful for non-legacy ports, depends on hardware, but most embedded hardware has only legacy serial ports
|
- by default (at least on my OSK config), several different schedulers are configured
- only one should be used and others not compiled in.