Trimming the OpenBSD kernel
I've been building a few OpenBSD custom kernels lately and I've noticed that you can really strip it down a bit.
Ok, here's size of the GENERIC
kernel that is installed by default:
[root@fw:/]$ du -sh bsd.GENERIC 5.1M bsd.GENERIC
The GENERIC
kernel comes loaded with a lot of stuff, including
PCMCIA/USB/SCSI/Audio/Radio etc. In the first kernel I compiled I didn't remove
much, mainly SCSI and audio support. This was the result:
[root@fw:/]$ du -sh bsd.old 4.3M bsd.old
I wanted to remove even more drivers from it so I stripped it down ever further. This was the result of the second kernel:
[root@fw:/FW]$ du -sh /bsd 2.9M /bsd
As you can see, I managed to remove 2.2M from the GENERIC
kernel.
Final config
Here is my final config file:
# $OpenBSD: GENERIC,v 1.431 2005/08/16 16:40:48 deraadt Exp $ # # For further information on compiling OpenBSD kernels, see the config(8) # man page. # # For further information on hardware support for this architecture, see # the intro(4) man page. For further information about kernel options # for this architecture, see the options(4) man page. For an explanation # of each device driver in this file see the section 4 man page for the # device. machine i386 include "../../../conf/GENERIC" maxusers 32 # estimated number of users #option I386_CPU # CPU classes; at least one is REQUIRED #option I486_CPU #option I586_CPU option I686_CPU #option GPL_MATH_EMULATE # floating point emulation. option USER_PCICONF # user-space PCI configuration #option VM86 # Virtual 8086 emulation option USER_LDT # user-settable LDT; see i386_set_ldt(2) option APERTURE # in-kernel aperture driver for XFree86 #option KGDB # Remote debugger support; exclusive of DDB #option "KGDB_DEVNAME=\"pccom\"",KGDBADDR=0x2f8,KGDBRATE=9600 #option DUMMY_NOPS # speed hack; recommended option COMPAT_SVR4 # binary compatibility with SVR4 option COMPAT_IBCS2 # binary compatibility with SCO and ISC option COMPAT_LINUX # binary compatibility with Linux option COMPAT_FREEBSD # binary compatibility with FreeBSD option COMPAT_BSDOS # binary compatibility with BSD/OS option COMPAT_AOUT # a.out binaries are emulated #option NTFS # Experimental NTFS support # or use root on nfs swap on nfs config bsd swap generic mainbus0 at root cpu0 at mainbus? bios0 at mainbus0 apm0 at bios0 flags 0x0000 # flags 0x0101 to force protocol version 1.1 pcibios0 at bios0 flags 0x0000 # use 0x30 for a total verbose isa0 at mainbus0 isa0 at pcib? isa0 at ichpcib? isa0 at gscpcib? eisa0 at mainbus0 pci* at mainbus0 #acpi0 at mainbus? #acpitimer* at acpi? #hpet* at acpi? option ACPIVERBOSE #option ACPI_ENABLE option PCIVERBOSE option EISAVERBOSE #option USBVERBOSE pchb* at pci? # PCI-Host bridges ppb* at pci? # PCI-PCI bridges pci* at ppb? pci* at pchb? pcib* at pci? # PCI-ISA bridge ichpcib* at pci? # Intel ICHx/ICHx-M LPC bridges gscpcib* at pci? # NS Geode SC1100 PCI-ISA bridge gpio* at gscpcib? # power management and other environmental stuff #amdpm* at pci? # AMD768MPX elansc* at pci? # AMD Elan SC520 System Controller gpio* at elansc? geodesc* at pci? # Geode SC1100/SCx200 IAOC #piixpm* at pci? # Intel PIIX PM #gscpm* at pci? # NS Geode SC1100 SMI/ACPI module #ichwdt* at pci? # Intel 6300ESB ICH watchdog timer # National Semiconductor LM7[89] and compatible hardware monitors lm0 at isa? port 0x290 #lm1 at isa? port 0x280 #lm2 at isa? port 0x310 nsclpcsio* at isa? port 0x2e # NS PC87366 LPC Super I/O nsclpcsio* at isa? port 0x4e gpio* at nsclpcsio? gscsio* at isa? port 0x2e # NS Geode SC1100 Super I/O gscsio* at isa? port 0x15c iic0 at gscsio? # ACCESS.bus 1 iic1 at gscsio? # ACCESS.bus 2 lmtemp0 at iic1 addr 0x48 # NS LM75/LM77 temperature sensor it0 at isa? port 0x290 # IT8705F, IT8712F and SiS970 hardware # monitors viaenv* at pci? # VIA VT82C686A hardware monitor viasio* at isa? port 0x2e flags 0x0000 # VIA VT1211 LPC Super I/O viasio* at isa? port 0x4e flags 0x0000 aps0 at isa? port 0x1600 # ThinkPad Active Protection System # ISA PCMCIA controllers #option PCMCIAVERBOSE #pcic0 at isa? port 0x3e0 iomem 0xd0000 iosiz 0x10000 #pcic1 at isa? port 0x3e2 iomem 0xe0000 iosiz 0x4000 #pcic2 at isa? port 0x3e4 iomem 0xe0000 iosiz 0x4000 #tcic0 at isa? disable port 0x240 iomem 0xd0000 iosiz 0x10000 # ISA Plug-and-Play PCMCIA controllers #option DEBUG_ISAPNP #pcic* at isapnp? # PCI PCMCIA controllers pcic* at pci? # PCMCIA bus support pcmcia* at pcic? #pcmcia* at tcic? # CardBus bus support cardbus* at cardslot? #pcmcia* at cardslot? cbb* at pci? cardslot* at cbb? # USB Controllers #ehci* at pci? # Enhanced Host Controller #ehci* at cardbus? # Enhanced Host Controller #uhci* at pci? # Universal Host Controller (Intel) #ohci* at pci? # Open Host Controller #ohci* at cardbus? # Open Host Controller # USB bus support #usb* at ehci? #usb* at uhci? #usb* at ohci? # USB devices #uhub* at usb? # USB Hubs #uhub* at uhub? # USB Hubs #umodem* at uhub? # USB Modems/Serial #ucom* at umodem? #uvisor* at uhub? # Handspring Visor #ucom* at uvisor? #uvscom* at uhub? # SUNTAC Slipper U VS-10U serial #ucom* at uvscom? #ubsa* at uhub? # Belkin serial adapter #ucom* at ubsa? #uftdi* at uhub? # FTDI FT8U100AX serial adapter #ucom* at uftdi? #uplcom* at uhub? # I/O DATA USB-RSAQ2 serial adapter #ucom* at uplcom? #umct* at uhub? # MCT USB-RS232 serial adapter #ucom* at umct? #uipaq* at uhub? # iPAQ serial adapter #ucom* at uipaq? #uaudio* at uhub? # USB Audio #audio* at uaudio? #umidi* at uhub? # USB MIDI #midi* at umidi? #ulpt* at uhub? # USB Printers #umass* at uhub? # USB Mass Storage devices #scsibus* at umass? #atapiscsi* at umass? #uhidev* at uhub? # Human Interface Devices #ums* at uhidev? # USB mouse #wsmouse* at ums? mux 0 #ukbd* at uhidev? # USB keyboard #wskbd* at ukbd? mux 1 #uhid* at uhidev? # USB generic HID support #aue* at uhub? # ADMtek AN986 Pegasus Ethernet #atu* at uhub? # Atmel AT76c50x based 802.11b #axe* at uhub? # ASIX Electronics AX88172 USB Ethernet #cue* at uhub? # CATC USB-EL1201A based Ethernet #kue* at uhub? # Kawasaki KL5KUSB101B based Ethernet #cdce* at uhub? # CDC Ethernet #upl* at uhub? # Prolific PL2301/PL2302 host-to-host `network' #udav* at uhub? # Davicom DM9601 based Ethernet #url* at uhub? # Realtek RTL8150L based adapters #wi* at uhub? # WaveLAN IEEE 802.11DS #urio* at uhub? # Diamond Multimedia Rio 500 #uscanner* at uhub? # USB Scanners #usscanner* at uhub? # USB SCSI scanners, e.g., HP5300 #scsibus* at usscanner? #uyap* at uhub? # Y@P firmware loader #udsbr* at uhub? # D-Link DSB-R100 radio #radio* at udsbr? # USB radio #ubt* at uhub? # USB Bluetooth #ugen* at uhub? # USB Generic driver #ural* at uhub? # Ralink RT2500 #option NATM #ueagle* at uhub? # Analog Devices Eagle ADSL puc* at pci? # PCI "universal" communication device npx0 at isa? port 0xf0 irq 13 # math coprocessor isadma0 at isa? isapnp0 at isa? option WSDISPLAY_COMPAT_USL # VT handling option WSDISPLAY_COMPAT_RAWKBD # can get raw scancodes option WSDISPLAY_DEFAULTSCREENS=6 option WSDISPLAY_COMPAT_PCVT # emulate some ioctls pckbc0 at isa? # PC keyboard controller pckbd* at pckbc? # PC keyboard pms* at pckbc? # PS/2 mouse for wsmouse pmsi* at pckbc? # PS/2 "Intelli"mouse for wsmouse vga0 at isa? option PCIAGP vga* at pci? pcdisplay0 at isa? # CGA, MDA, EGA, HGA wsdisplay* at vga? wsdisplay* at pcdisplay? wskbd* at pckbd? mux 1 wsmouse* at pms? mux 0 wsmouse* at pmsi? mux 0 pcppi0 at isa? sysbeep0 at pcppi? pccom0 at isa? port 0x3f8 irq 4 # standard PC serial ports pccom1 at isa? port 0x2f8 irq 3 pccom2 at isa? port 0x3e8 irq 5 #pccom3 at isa? port 0x2e8 irq 9 # (conflicts with some video cards) ast0 at isa? port 0x1a0 irq 5 # AST 4-port serial card #ast1 at isa? port 0x2a0 irq 6 # 2nd AST 4-port serial card pccom* at ast? #boca0 at isa? port 0x100 irq 5 # BOCA 8-port serial cards #pccom* at boca? #addcom0 at isa? port 0x108 irq 5 # Addonics FlexPort #pccom* at addcom? #rtfps0 at isa? port 0x1230 irq 10 # RT 4-port serial cards #pccom* at rtfps? #hsq0 at isa? port 0x140 irq 10 # Hostess 4-port serial card #pccom* at hsq? #pccom* at pcmcia? # PCMCIA modems/serial ports #pccom* at isapnp? #pccom* at puc? #pccom* at cardbus? # option for using CD1400 handshaking for incoming data # requires a special cable that exchanges the RTS and DTR lines # options CY_HW_RTS cy0 at isa? iomem 0xd4000 irq 12 # ISA cyclom serial card cy* at pci? # PCI cyclom serial card #cz* at pci? # Cyclades-Z multi-port serial boards lpt0 at isa? port 0x378 irq 7 # standard PC parallel ports lpt1 at isa? port 0x278 lpt2 at isa? port 0x3bc lpt* at puc? lms0 at isa? port 0x23c irq 5 # Logitech bus mouse lms1 at isa? port 0x238 irq 5 mms0 at isa? port 0x23c irq 5 # Microsoft InPort mouse mms1 at isa? port 0x238 irq 5 wsmouse* at lms? mux 0 wsmouse* at mms? mux 0 #bha0 at isa? port 0x330 # BusLogic [57]4X SCSI controllers #bha1 at isa? disable port 0x334 # BusLogic [57]4X SCSI controllers #bha2 at isa? disable #bha* at pci? #bha* at eisa? # XXX eisa still runs in isa-compat #scsibus* at bha? #aha0 at isa? port 0x330 # Adaptec 154[02] SCSI controllers #aha1 at isa? port 0x334 # Adaptec 154[02] SCSI controllers #aha* at isapnp? #scsibus* at aha? #ahb* at eisa? # Adaptec 174[024] SCSI controllers #scsibus* at ahb? #ahc0 at isa? # Adaptec 284x SCSI controllers #ahc* at eisa? # Adaptec 274x, aic7770 SCSI controllers #ahc* at pci? # Adaptec 2940/3940/78?? SCSI controllers #scsibus* at ahc? #ahd* at pci? # Adaptec 79?? SCSI controllers #scsibus* at ahd? #mpt* at pci? # LSI Fusion-MPT SCSI/Fibre #scsibus* at mpt? #dpt* at pci? # DPT SmartCache/SmartRAID PCI #dpt* at eisa? # DPT SmartCache/SmartRAID EISA #scsibus* at dpt? #gdt* at pci? # ICP Vortex GDT RAID controllers #scsibus* at gdt? #twe* at pci? # 3ware Escalade RAID controllers #scsibus* at twe? #aac* at pci? # Adaptec FSA RAID controllers #scsibus* at aac? #ami* at pci? # AMI MegaRAID controllers #scsibus* at ami? #cac* at pci? # Compaq Smart ARRAY [234]* RAID controllers #cac* at eisa? #scsibus* at cac? #ciss* at pci? # Compaq Smart ARRAY [56]* RAID controllers #scsibus* at ciss? #iha* at pci? # Initio Ultra/UltraWide SCSI controllers #scsibus* at iha? #isp* at pci? # Qlogic ISP [12]0x0 SCSI/FibreChannel #scsibus* at isp? #aic0 at isa? port 0x340 irq 11 # Adaptec 152[02] SCSI controllers #aic* at pcmcia? # PCMCIA based aic SCSI controllers #aic* at isapnp? # isapnp configured aic SCSI controllers #scsibus* at aic? #esp* at pcmcia? # PCMCIA based NCR 53C9X SCSI #scsibus* at esp? #siop* at pci? # NCR 538XX SCSI controllers(new) #scsibus* at siop? #adv* at pci? # AdvanSys 1200A/B and ULTRA SCSI #scsibus* at adv? #adw* at pci? # AdvanSys ULTRA WIDE SCSI #scsibus* at adw? #pcscp* at pci? # AMD 53c974 PCscsi-PCI SCSI #scsibus* at pcscp? #sea0 at isa? disable iomem 0xc8000 irq 5 # Seagate ST0[12] SCSI controllers #scsibus* at sea? #trm* at pci? # Tekram DC-3x5U SCSI Controllers #scsibus* at trm? #uha0 at isa? port 0x330 # UltraStor [13]4f SCSI controllers #uha1 at isa? disable port 0x334 # UltraStor [13]4f SCSI controllers #uha* at eisa? # UltraStor 24f SCSI controllers #scsibus* at uha? #wds0 at isa? disable port 0x350 irq 15 drq 6 # WD7000 and TMC-7000 controllers #wds1 at isa? port 0x358 irq 11 drq 5 #scsibus* at wds? #sd* at scsibus? # SCSI disk drives #st* at scsibus? # SCSI tape drives #cd* at scsibus? # SCSI CD-ROM drives #ch* at scsibus? # SCSI autochangers #ss* at scsibus? # SCSI scanners #safte* at scsibus? # SCSI accessed fault-tolerant enclosures #ses* at scsibus? # SCSI enclosure services #uk* at scsibus? # unknown SCSI fdc0 at isa? port 0x3f0 irq 6 drq 2 # standard PC floppy controllers #fdc1 at isa? port 0x370 fd* at fdc? flags 0x00 #mcd0 at isa? port 0x300 irq 10 # Mitsumi CD-ROM drives # IDE controllers pciide* at pci? flags 0x0000 wdc0 at isa? port 0x1f0 irq 14 flags 0x00 wdc1 at isa? port 0x170 irq 15 flags 0x00 #wdc* at pcmcia? wdc* at isapnp? # IDE hard drives wd* at wdc? flags 0x0000 wd* at pciide? flags 0x0000 # ATAPI<->SCSI #atapiscsi* at wdc? #atapiscsi* at pciide? #scsibus* at atapiscsi? #wt0 at isa? port 0x308 irq 5 drq 1 # Archive and Wangtek QIC tape drives # Networking devices #we0 at isa? port 0x280 iomem 0xd0000 irq 9 # WD/SMC 80x3 ethernet #we1 at isa? port 0x300 iomem 0xcc000 irq 10 # #we2 at isa? port 0x280 iomem 0xd0000 irq 3 # WD/SMC 80x3 ethernet #we* at isapnp? #ec0 at isa? port 0x250 iomem 0xd8000 irq 9 # 3C503 ethernet #ne0 at isa? port 0x240 irq 9 # NE[12]000 ethernet #ne1 at isa? port 0x300 irq 10 # NE[12]000 ethernet #ne2 at isa? port 0x280 irq 9 # NE[12]000 ethernet #ne* at isapnp? # NE[12]000 PnP ethernet #eg0 at isa? disable port 0x310 irq 5 # 3C505/Etherlink+ ethernet #el0 at isa? disable port 0x300 irq 9 # 3C501 ethernet #ep0 at isa? # 3C509 ethernet #ep* at isapnp? # 3C509 PnP ethernet #ep* at isa? # 3C509 ethernet #ef* at isapnp? # 3C515 PnP ethernet #ie0 at isa? port 0x360 iomem 0xd0000 irq 7 # StarLAN and 3C507 #ie1 at isa? port 0x300 irq 10 # EtherExpress #lc0 at isa? port 0x200 # DEC EtherWorks #lc1 at isa? port 0x280 # DEC EtherWorks #le0 at isa? port 0x360 irq 15 drq 6 # IsoLan, NE2100, and DEPCA #ex0 at isa? port 0x320 irq 5 # Intel EtherExpress PRO/10 #tr0 at isa? port 0xa20 iomem 0xd8000 # IBM TROPIC based Token-Ring #tr1 at isa? port 0xa24 iomem 0xd0000 # IBM TROPIC based Token-Ring #tr* at isa? # 3COM TROPIC based Token-Ring #ep0 at eisa? #ep* at eisa? # 3C579 ethernet #fea* at eisa? # DEC DEFEA FDDI #lmc* at pci? # Lan Media Corp SSI/T3/HSSI #san* at pci? # Sangoma PCI AFT card #le* at pci? # PCnet-PCI based ethernet #le* at isapnp? #pcn* at pci? # AMD PCnet-PCI Ethernet #de* at pci? # DC21X4X-based ethernet fxp* at pci? # EtherExpress 10/100B ethernet fxp* at cardbus? # Intel PRO/100 ethernet #ne* at pci? # NE2000-compat ethernet #ep0 at pci? # 3C59x ethernet #ep* at pci? # 3C59x ethernet #ne* at pcmcia? # PCMCIA based NE2000 ethernet #ep* at pcmcia? # PCMCIA based 3C5xx ethernet #sm* at pcmcia? # PCMCIA based sm ethernet #xe* at pcmcia? # Xircom ethernet #fpa* at pci? # DEC DEFPA FDDI xl* at pci? # 3C9xx ethernet xl* at cardbus? # 3C575/3C656 ethernet rl* at pci? # RealTek 81[23]9 ethernet rl* at cardbus? # RealTek 81[23]9 ethernet #mtd* at pci? # Myson MTD800/803/891 #epic* at pci? # SMC EPIC/100 ethernet #tl* at pci? # Compaq Thunderlan ethernet #vr* at pci? # VIA Rhine ethernet #wb* at pci? # Winbond W89C840F ethernet #sf* at pci? # Adaptec AIC-6915 ethernet #sis* at pci? # SiS 900/7016 ethernet #ste* at pci? # Sundance ST201 ethernet dc* at pci? # 21143, "tulip" clone ethernet dc* at cardbus? # 21143, "tulip" clone ethernet #ti* at pci? # Alteon Tigon 1Gb ethernet #skc* at pci? # SysKonnect GEnesis 984x #sk* at skc? # each port of above #em* at pci? # Intel Pro/1000 ethernet #txp* at pci? # 3com 3CR990 #nge* at pci? # NS DP83820/DP83821 GigE #bge* at pci? # Broadcom BCM570x (aka Tigon3) #re* at pci? # Realtek 8169/8169S/8110S #re* at cardbus? # Realtek 8169/8169S/8110S #stge* at pci? # Sundance TC9021 GigE #lge* at pci? # Level1 LXT1001 GigE #hme* at pci? # Sun Happy Meal #bce* at pci? # Broadcom BCM4401 #vge* at pci? # VIA VT612x #musycc* at pci? # Conexant HDLC controller #art* at musycc? # Accoom Artery E1/T1 cards # Wireless network cards #ath* at pci? # Atheros AR5k (802.11a/b/g) #ath* at cardbus? # Atheros AR5k (802.11a/b/g) #atw* at pci? # ADMtek ADM8211 (802.11) #atw* at cardbus? # ADMtek ADM8211 (802.11) #wi* at pci? # WaveLAN IEEE 802.11DS #wi* at pcmcia? # WaveLAN IEEE 802.11DS #awi* at pcmcia? # Bay Networks IEEE 802.11FH #an* at pci? # Aironet IEEE 802.11DS #an* at isapnp? # Aironet IEEE 802.11DS #an* at pcmcia? # Aironet IEEE 802.11DS #cnw* at pcmcia? # Xircom Netwave #ray* at pcmcia? # Raylink Aviator2.4/Pro 802.11FH #ipw* at pci? # Intel PRO/Wireless 2100 #iwi* at pci? # Intel PRO/Wireless 2200BG/2915ABG #ral* at pci? # Ralink RT2500 #ral* at cardbus? # Ralink RT2500 #rtw* at pci? # Realtek 8180 #rtw* at cardbus? # Realtek 8180 # Media Independent Interface (mii) drivers exphy* at mii? # 3Com internal PHYs inphy* at mii? # Intel 82555 PHYs iophy* at mii? # Intel 82553 PHYs icsphy* at mii? # ICS 1890 PHYs lxtphy* at mii? # Level1 LXT970 PHYs nsphy* at mii? # NS and compatible PHYs nsphyter* at mii? # NS and compatible PHYs qsphy* at mii? # Quality Semi QS6612 PHYs luphy* at mii? # Lucent LU6612 PHY sqphy* at mii? # Seeq 8x220 PHYs rlphy* at mii? # RealTek 8139 internal PHYs mtdphy* at mii? # Myson MTD972 PHYs dcphy* at mii? # Digital Clone PHYs acphy* at mii? # Altima AC101 PHYs amphy* at mii? # AMD 79C873 PHYs tqphy* at mii? # TDK 78Q212x PHYs bmtphy* at mii? # Broadcom 10/100 PHYs brgphy* at mii? # Broadcom Gigabit PHYs eephy* at mii? # Marvell 88E1000 series PHY xmphy* at mii? # XaQti XMAC-II PHYs nsgphy* at mii? # NS gigabit PHYs urlphy* at mii? # Realtek RTL8150L internal PHY rgephy* at mii? # Realtek 8169S/8110S PHY ciphy* at mii? # Cicada CS8201 10/100/1000 copper PHY ukphy* at mii? # "unknown" PHYs #pss0 at isa? port 0x220 irq 7 drq 6 # Personal Sound System #sp0 at pss0 port 0x530 irq 10 drq 0 # sound port driver #eap* at pci? # Ensoniq AudioPCI S5016 #eso* at pci? # ESS Solo-1 PCI AudioDrive #sv* at pci? # S3 SonicVibes (S3 617) #neo* at pci? # NeoMagic 256AV/ZX #cmpci* at pci? # C-Media CMI8338/8738 #auich* at pci? flags 0x0000 # i82801 ICH AC'97 audio #auixp* at pci? # ATI IXP AC'97 Audio #autri* at pci? flags 0x0000 # Trident 4D WAVE #auvia* at pci? # VIA VT82C686A #clcs* at pci? # CS4280 CrystalClear audio #clct* at pci? # CS4281 CrystalClear audio #fms* at pci? # Forte Media FM801 #maestro* at pci? # ESS Maestro PCI #esa* at pci? # ESS Maestro3 PCI #yds* at pci? flags 0x0000 # Yamaha YMF Audio #emu* at pci? # SB Live! #sb0 at isa? port 0x220 irq 5 drq 1 # SoundBlaster #sb* at isapnp? #ess* at isapnp? # ESS Tech ES188[78], ES888 #wss0 at isa? port 0x530 irq 10 drq 0 # Windows Sound System #wss* at isapnp? #pas0 at isa? port 0x220 irq 7 drq 1 # ProAudio Spectrum #gus0 at isa? port 0x220 irq 7 drq 1 drq2 6 # Gravis (drq2 is record drq) #ym* at isapnp? #mpu* at isapnp? #mpu* at isa? port 0x300 # generic MPU, Yamaha SW60XG #aria0 at isa? port 0x280 irq 10 drq 0 flags 0x1 # Prometheus Aria 16 # OPL[23] FM synthesizers #opl0 at isa? port 0x388 # use only if not attached to sound card #opl* at eso? #opl* at sb? #opl* at ess? #opl* at yds? # MIDI support #midi* at pcppi? # MIDI interface to the PC speaker #midi* at sb? # SB MPU401 port #midi* at opl? # OPL FM synth #midi* at ym? #midi* at mpu? #midi* at autri? #midi* at eap? spkr0 at pcppi? # PC speaker # Audio Support #audio* at sb? #audio* at gus? #audio* at pas? #audio* at sp? #audio* at ess? #audio* at wss? #audio* at ym? #audio* at eap? #audio* at eso? #audio* at sv? #audio* at neo? #audio* at cmpci? #audio* at clcs? #audio* at clct? #audio* at auich? #audio* at auixp? #audio* at autri? #audio* at auvia? #audio* at fms? #audio* at maestro? #audio* at esa? #audio* at yds? #audio* at emu? #bktr0 at pci? # FM-Radio devices #gtp* at pci? # Gemtek/Guillemot Radio PCI Radio Card #sfr0 at isa? port 0x384 # SoundForte RadioLink SF16-FMR FM Radio Card #sf2r0 at isa? port 0x384 # SoundForte RadioLink SF16-FMR2 FM Radio Card #az0 at isa? port 0x350 # Aztech/PackardBell FM Radio Card #rt0 at isa? port 0x30c # AIMS Lab Radiotrack FM Radio Card #rt* at isapnp? #rtii0 at isa? port 0x30c # AIMS Lab Radiotrack II FM Radio Card # FM-Radio support #radio* at bktr? #radio* at fms? #radio* at gtp? #radio* at sfr? #radio* at sf2r? #radio* at az? #radio* at rt? #radio* at rtii? # Joystick driver. Probe is a little strange; add only if you have one. #joy0 at isa? port 0x201 #joy* at isapnp? #wdt0 at pci? # Ind Computer Source PCI-WDT50x driver # crypto support #hifn* at pci? # Hi/fn 7751 crypto card #lofn* at pci? # Hi/fn 6500 crypto card #nofn* at pci? # Hi/fn 7814/7851/7854 crypto card #ubsec* at pci? # Bluesteel Networks 5xxx crypto card #safe* at pci? # SafeNet SafeXcel 1141/1741 #ises* at pci? # Pijnenburg PCC-ISES # I2O iop* at pci? # I2O ioprbs* at iop? # Random block storage scsibus* at ioprbs? pseudo-device pctr 1 pseudo-device mtrr 1 # Memory range attributes control pseudo-device nvram 1 pseudo-device sequencer 1 #pseudo-device raid 4 # RAIDframe disk driver pseudo-device bio 1 # ioctl multiplexing device pseudo-device hotplug 1 # devices hot plugging # mouse & keyboard multiplexor pseudo-devices pseudo-device wsmux 2 pseudo-device crypto 1
Helper script
Here is a simple bash script to make the compiling easier:
#!/usr/local/bin/bash # just a simple bash script for building a kernel on OpenBSD # by martin.polden at c2i.net # # place your kernel config in /usr/src/sys/arch/${ARCH}/conf/ # run this script with the name of your config as the first argument CONFIG="${1}"; ARCH=`uname -m`; SYS=`uname -s`; if [ $# = 0 ]; then echo "usage: buildkernel config-file"; exit 3 elif [ $SYS != "OpenBSD" ]; then echo "You're not running OpenBSD. Shame on you!"; exit 4 elif [ ! -e "/usr/src/sys/arch/${ARCH}/conf/${CONFIG}" ]; then echo "Kernel config (${CONFIG}) does not exist in /usr/src/sys/arch/${ARCH}/conf/"; exit 5 else mkdir /${CONFIG} && cd /${CONFIG}; cp /usr/src/sys/arch/${ARCH}/conf/${CONFIG} .; config -s /usr/src/sys -b . ${CONFIG}; make clean && make depend && make; cp /bsd /bsd.backup; fi echo "Your kernel (${CONFIG}) has been compiled in /${CONFIG}"; echo "Type 'cd /${CONFIG} && make install' to install your kernel"; echo "A backup of your old kernel has been created in /bsd.backup"; exit 0