# Remove remove unneeded module from kernel



## meteor8488 (Sep 9, 2012)

Hi all, I'm using a dell r620 server. And now I'm installed Freebsd 9.1beta. (Even freebsd 9.0 can't support dell H700 raid card.). This server will be used as Web server which will be running nginx and mysql.

I'm trying to remove all unneeded module and rebuild the kernel. Below is my kernel configuration file. 

Is there any module left that I can remove from the kernel? Thanks,



```
cpu		HAMMER
ident		www

makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols

options 	SCHED_ULE		# ULE scheduler
options 	PREEMPTION		# Enable kernel thread preemption
options 	INET			# InterNETworking
options 	FFS			# Berkeley Fast Filesystem
options 	SOFTUPDATES		# Enable FFS soft updates support
#options 	UFS_ACL			# Support for access control lists
options 	UFS_DIRHASH		# Improve performance on big directories
#options 	UFS_GJOURNAL		# Enable gjournal-based UFS journaling
options 	MD_ROOT			# MD is a potential root device
options 	CD9660			# ISO 9660 Filesystem
options 	PROCFS			# Process filesystem (requires PSEUDOFS)
options 	PSEUDOFS		# Pseudo-filesystem framework
options 	GEOM_PART_GPT		# GUID Partition Tables.
options 	GEOM_RAID		# Soft RAID functionality.
options 	GEOM_LABEL		# Provides labelization
options 	COMPAT_FREEBSD32	# Compatible with i386 binaries
options 	COMPAT_FREEBSD4		# Compatible with FreeBSD4
options 	COMPAT_FREEBSD5		# Compatible with FreeBSD5
options 	COMPAT_FREEBSD6		# Compatible with FreeBSD6
options 	COMPAT_FREEBSD7		# Compatible with FreeBSD7
options 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
#options 	KTRACE			# ktrace(1) support
options 	SYSVSHM			# SYSV-style shared memory
options 	SYSVMSG			# SYSV-style message queues
options 	SYSVSEM			# SYSV-style semaphores
options 	_KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions
options 	PRINTF_BUFR_SIZE=128	# Prevent printf output being interspersed.
options 	HWPMC_HOOKS		# Necessary kernel hooks for hwpmc(4)
options 	MAC			# TrustedBSD MAC Framework
options 	INCLUDE_CONFIG_FILE     # Include this file in kernel
options 	SMP			# Symmetric MultiProcessor Kernel
device		cpufreq
device		acpi
device		pci
device		ahci		# AHCI-compatible SATA controllers
device		ata		# Legacy ATA/SATA controllers
options 	ATA_CAM		# Handle legacy controllers with CAM
options 	ATA_STATIC_ID	# Static device numbering
device		scbus		# SCSI bus (required for ATA/SCSI)
device		da		# Direct Access (disks)
device		mfi		# LSI MegaRAID SAS
device		atkbdc		# AT keyboard controller
device		atkbd		# AT keyboard
device		vga		# VGA video card driver
device		splash		# Splash screen and screen saver support
device		sc
device		igb		# Intel PRO/1000 PCIE Server Gigabit Family
device		miibus		# MII bus support
device		loop		# Network loopback
device		random		# Entropy device
device		ether		# Ethernet support
device		vlan		# 802.1Q VLAN support
device		pty		# BSD-style compatibility pseudo ttys
device		firmware	# firmware assist module
device		bpf		# Berkeley packet filter
options 	USB_DEBUG	# enable debug msgs
device		uhci		# UHCI PCI->USB interface
device		ohci		# OHCI PCI->USB interface
device		ehci		# EHCI PCI->USB interface (USB 2.0)
device		xhci		# XHCI PCI->USB interface (USB 3.0)
device		usb		# USB Bus (required)
device		uhid		# "Human Interface Devices"
device		ukbd		# Keyboard
device		umass		# Disks/Mass storage - Requires scbus and da
options		KRPC		#Support ZFS
options		IPFIREWALL   	#firewall 
options		IPFIREWALL_VERBOSE 	#enable logging to syslogd(8) 
options		IPFIREWALL_VERBOSE_LIMIT=10 	#limit verbosity
options		IPFIREWALL_DEFAULT_TO_ACCEPT 	#allow everything by default
```


----------



## pashos_nix (Sep 9, 2012)

What's about 7.4 release?


----------



## Morte (Sep 10, 2012)

Things I would say can probably be removed are:

MD_ROOT CD9660 PROCFS

As the system would be new, it's unlikely you need backwards compatibility with older releases so COMPAT_FREEBSD[456] wouldn't be needed either. splash can be removed as well.

I can't be sure what your setup is, but typically end point servers do not require vlan support, so that's something to look at.  If you don't specifically have usb3 devices, xhci can be dropped. USB3 devices should still negotiate to USB2 if speed isn't an issue.

I used to do this kind of thing myself, but machines now days have so much ram I think my time is spent better elsewhere. Keep in mind that with every new release you'll be tinkering with the kernel config.


----------

