Improving performance/Boot process
This article contains some tips on how you can improve your boot performance.
- 1 Tweaking Boot Files
- 2 Compile a kernel
- 2.1 General Setup
- 2.2 Loadable Module Support
- 2.3 Block Layer
- 2.4 Processor type and features
- 2.5 Bus Options
- 2.6 Network
- 2.7 Device Drivers
- 2.8 Network Device support
- 2.9 Input device support
- 2.10 Character Devices
- 2.11 Misc Devices
- 2.12 Graphics support
- 2.13 File systems
- 2.14 Instrumentation Support
- 2.15 Kernel Hacking
Tweaking Boot Files
Open /etc/mkinitcpio.conf as root and delete the HOOKS you don't need.
HOOKS="base udev autodetect sata usbinput filesystems"
Read more about which HOOKS you can remove.
Open /etc/rc.conf as root, scroll to the hardware section.
If you autoload your modules, there is no point of manually selecting modules. So clear out MODULES like this.
On the other hand, you can get a speed increase by disabling udev autoloading
and manually populate your MODULES=() line with the modules you need/use.
In the network section, make sure you only load the network interface you need. Manually configuring your network is also faster then using dhcp.
Then find remove all DAEMONS you don't need.
DAEMONS=(alsa network gdm)
Then move your Xdm to front, and background all DAEMONS.
DAEMONS=(@gdm @alsa @network)
Not letting your modules load before you go off trying to set up your network etc is just not going to work as expected. I'd attribute any success to this method as pure luck, and suggest you remove the ampersand immediately even if it is working. -- Codemac 18:52, 11 November 2007 (EST)
Open /etc/rc.sysinit as root and find
By adding a '&' to the end, all modules will be loaded in background.
/sbin/modprobe $mod &
Note that this can potentially cause your system to not boot if certain modules are needed. Have a live-cd handy in case this happens to you.
Open /etc/inittab as root and find the agetty terminal lines.
c1:2345:respawn:/sbin/agetty 38400 vc/1 linux c2:2345:respawn:/sbin/agetty 38400 vc/2 linux c3:2345:respawn:/sbin/agetty 38400 vc/3 linux c4:2345:respawn:/sbin/agetty 38400 vc/4 linux c5:2345:respawn:/sbin/agetty 38400 vc/5 linux c6:2345:respawn:/sbin/agetty 38400 vc/6 linux
Agetty terminals are what you see when you press Ctrl+Alt+F1-6 Now, if you only need 2 or 3 then comment out the rest.
c1:2345:respawn:/sbin/agetty 38400 vc/1 linux c2:2345:respawn:/sbin/agetty 38400 vc/2 linux #c3:2345:respawn:/sbin/agetty 38400 vc/3 linux #c4:2345:respawn:/sbin/agetty 38400 vc/4 linux #c5:2345:respawn:/sbin/agetty 38400 vc/5 linux #c6:2345:respawn:/sbin/agetty 38400 vc/6 linux
Compile a kernel
To decrease boot time, a stripped kernel is a must. Read more about compiling a kernel.
Here are some tips from XxX Owned XxX ( http://ubuntuforums.org/showpost.php?p=1174954&postcount=507 ). Warning: Some of these tips may cause your kernel to not compile properly. Use them at you own risk.
Feel free to add some!
S: Support for paging of anonymous memory. (swap)
Loadable Module Support
U: Module Versioning Support U: Source checksum for all modules
U: Large Block Devices (Uncheck all if possible) // IO Schedulers // U: Anticipatory I/O Schedulers U: Deadline I/O Schedulers
Processor type and features
U: Symmetric processing support (Unless your processor(s) support(s) it) U: Generic x86 support S: HPET Timer Support S: Voluntary Kernel Preemption (Desktop) (Under Preemption Model) S: Local APCI support on uniprocessors S: IOAPCI support on uniprocessors (Under Local APCI support) S: Off (Under High Memory support if you have under 1 gig of ram) S: Sparse Memory (Under Memory Model, some computers will not have this option) S: MTRR support S: Use register arguements S: Enable seccomp to compute untrusted bytecode S: 1000hz (Under Timer Frequency) // Firmware Drivers // U: Anything that you don't need.
S: Message Signaled Interrupts (MSI and MSIX) (PCI_MSI)
U: Anything/Everything in Amateur Radio, IrDA, and Bluetooth if you don't need it. // Network Options // S: Packet socket:mmapped IO
// ATA/ATAP/MFR/RLL support // S: Use PCI DMA by Default U: IDE Taskfile Acess // Raid and LVM // U: Unselect if you do not need it. // I2O support // U: Unselect if you do not need it. Most people do not.
Network Device support
U: EQL support U: Universial TUN/TAP device driver support U: FDDI Driver support U: HIPPI driver support U: SLIP (serial line) support U: Traffic Support U: Network console loggin support // ARCnet support // U: Unselect if you do not require/need it. // Ethernet Support (1000 MB) // U: Uselect the cards that you don't have. // Ethernet Support (10000 MB) // U: Unselect what you do not need. // Token Ring Devices // U: Unselect if you are not connected to a Token ring network. // WAN interfaces support // U: Unselect the some cards/the whole thing if you do not need it. // ISDN subsystem // U: ISDN support (If you do not require it)
Input device support
U: Touchscreen interface U: Touchscreens (Under the TouchScreens subcatergory)
U: Any video cards that you do not need. // Watchdog cards // U: Watch Dog Timer support
U: Device driver for IBM/RSA service drivers // Video Capture Adapters // U: Unselect anything that you don't need. // Radio Adapters // U: Unselect anything that you don't need. // Digital Video Broadcasting Devices // U: DVB for Linux
U: Unselect any graphics cards that you don't have. // Logo Configuration // S: Bootup Logo (and anything under it)
U: Unselect any file systems that you are NOT going to use. (Minix, ROM, Quota, etc.) // DOS/FAT/NT Filesystems // S: NTFS write support // Network File Systems // U: NFS file system support U: NFS server support U: NCP file system support U: Coda file system support U: Andrew file system support U: Plan 9 resource sharing support // Partition Types // U: Advanced partition selection // Native Language Support // U: Unselect all but your native language
U: Profiling Support U: Kprobes
U: Show timing information on printks U: Magic SysRq Key U: Kernel Hacking U: Debug Filesystem U: Compile the kernel with frame unwind information