User Tools

Site Tools


Sidebar

Translations of this page:



最近の更新



Tag Cloud

en:02_freebsd:99_その他:カーネル再構築

Rebuilding the FreeBSD Kernel

The default kernel includes unnecessary components that can occupy memory, which is not ideal. It is better to create a customized and efficient kernel by removing unnecessary devices and features tailored to your needs.

Environment

FreeBSD 6.0

Create a Copy of the Default Kernel

■ To start, duplicate the default kernel (GENERIC) and rename it to a custom name of your choice.
You can use any name you prefer for your kernel. In this example, we'll be using MYKERNEL as our example.

 # cd /usr/src/sys/i386/conf/
 # cp GENERIC MYKERNEL

Modify MYKERNEL

 #
 # GENERIC -- Generic kernel configuration file for FreeBSD/i386
 #
 # For more information on this file, please read the handbook section on
 # Kernel Configuration Files:
 #
 #    http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html
 #
 # The handbook is also available locally in /usr/share/doc/handbook
 # if you've installed the doc distribution, otherwise always see the
 # FreeBSD World Wide Web server (http://www.FreeBSD.org/) for the
 # latest information.
 #
 # An exhaustive list of options and more detailed explanations of the
 # device lines is also present in the ../../conf/NOTES and NOTES files.
 # If you are in doubt as to the purpose or necessity of a line, check first
 # in NOTES.
 #
 # $FreeBSD: src/sys/i386/conf/GENERIC,v 1.413.2.13 2005/04/02 16:37:58 scottl Exp $
 
 machine                i386
 #cpu           I486_CPU
 #cpu           I586_CPU
 cpu            I686_CPU
 ident          MYKERNEL
 
 # To statically compile in device wiring instead of /boot/device.hints
 #hints         "GENERIC.hints"         # Default places to look for devices.
 
 options        SCHED_4BSD              # 4BSD scheduler
 options        INET                    # InterNETworking
 options        INET6                   # IPv6 communications protocols
 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        MD_ROOT                 # MD is a potential root device
 #options       NFSCLIENT               # Network Filesystem Client
 #options       NFSSERVER               # Network Filesystem Server
 #options       NFS_ROOT                # NFS usable as /, requires NFSCLIENT
 options        MSDOSFS                 # MSDOS Filesystem
 options        CD9660                  # ISO 9660 Filesystem
 options        PROCFS                  # Process filesystem (requires PSEUDOFS)
 options        PSEUDOFS                # Pseudo-filesystem framework
 options        GEOM_GPT                # GUID Partition Tables.
 options        COMPAT_43               # Compatible with BSD 4.3 [KEEP THIS!]
 options        COMPAT_FREEBSD4         # Compatible with FreeBSD4
 #options       SCSI_DELAY=15000        # 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        KBD_INSTALL_CDEV        # install a CDEV entry in /dev
 options        AHC_REG_PRETTY_PRINT    # Print register bitfields in debug
                                        # output.  Adds ~128k to driver.
 options        AHD_REG_PRETTY_PRINT    # Print register bitfields in debug
                                        # output.  Adds ~215k to driver.
 options        ADAPTIVE_GIANT          # Giant mutex is adaptive.
 
 #Quota
 options                QUOTA
 
 # PPPoE
 options    NETGRAPH
 options    NETGRAPH_ETHER
 options    NETGRAPH_PPPOE
 options    NETGRAPH_SOCKET
 
 # NAT
 options    IPDIVERT
 # FIREWALL
 #options           IPFW2
 options    IPFIREWALL
 options    IPFIREWALL_VERBOSE
 options    IPFIREWALL_VERBOSE_LIMIT=50000
 #options    IPFIREWALL_DEFAULT_TO_ACCEPT
 
 device         apic                    # I/O APIC
 
 # Bus support.  Do not remove isa, even if you have no isa slots
 device         isa
 #device                eisa
 device         pci
 
 # Floppy drives
 device         fdc
 
 # ATA and ATAPI devices
 device         ata
 device         atadisk         # ATA disk drives
 device         ataraid         # ATA RAID drives
 device         atapicd         # ATAPI CDROM drives
 #device                atapifd         # ATAPI floppy drives
 #device                atapist         # ATAPI tape drives
 options        ATA_STATIC_ID   # Static device numbering
 
 # SCSI Controllers
 #device                ahb             # EISA AHA1742 family
 #device                ahc             # AHA2940 and onboard AIC7xxx devices
 #device                ahd             # AHA39320/29320 and onboard AIC79xx devices
 #device                amd             # AMD 53C974 (Tekram DC-390(T))
 #device                isp             # Qlogic family
 #device                mpt             # LSI-Logic MPT-Fusion
 #device                ncr             # NCR/Symbios Logic
 #device                sym             # NCR/Symbios Logic (newer chipsets + those of `ncr')
 #device                trm             # Tekram DC395U/UW/F DC315U adapters
 
 #device                adv             # Advansys SCSI adapters
 #device                adw             # Advansys wide SCSI adapters
 #device                aha             # Adaptec 154x SCSI adapters
 #device                aic             # Adaptec 15[012]x SCSI adapters, AIC-6[23]60.
 #device                bt              # Buslogic/Mylex MultiMaster SCSI adapters
 
 #device                ncv             # NCR 53C500
 #device                nsp             # Workbit Ninja SCSI-3
 #device                stg             # TMC 18C30/18C50
 
 # SCSI peripherals
 #device                scbus           # SCSI bus (required for SCSI)
 #device                ch              # SCSI media changers
 #device                da              # Direct Access (disks)
 #device                sa              # Sequential Access (tape etc)
 #device                cd              # CD
 #device                pass            # Passthrough device (direct SCSI access)
 #device                ses             # SCSI Environmental Services (and SAF-TE)
 
 # RAID controllers interfaced to the SCSI subsystem
 #device                amr             # AMI MegaRAID
 #device                arcmsr          # Areca SATA II RAID
 #device                asr             # DPT SmartRAID V, VI and Adaptec SCSI RAID
 #device                ciss            # Compaq Smart RAID 5*
 #device                dpt             # DPT Smartcache III, IV - See NOTES for options
 #device                hptmv           # Highpoint RocketRAID 182x
 #device                iir             # Intel Integrated RAID
 #device                ips             # IBM (Adaptec) ServeRAID
 #device                mly             # Mylex AcceleRAID/eXtremeRAID
 #device                twa             # 3ware 9000 series PATA/SATA RAID
 
 # RAID controllers
 #device                aac             # Adaptec FSA RAID
 #device                aacp            # SCSI passthrough for aac (requires CAM)
 #device                ida             # Compaq Smart RAID
 #device                mlx             # Mylex DAC960 family
 #device                pst             # Promise Supertrak SX6000
 #device                twe             # 3ware ATA RAID
 
 # atkbdc0 controls both the keyboard and the PS/2 mouse
 device         atkbdc          # AT keyboard controller
 device         atkbd           # AT keyboard
 device         psm             # PS/2 mouse
 
 device         vga             # VGA video card driver
 
 #device                splash          # Splash screen and screen saver support
 
 # syscons is the default console driver, resembling an SCO console
 device         sc
 
 # Enable this for the pcvt (VT220 compatible) console driver
 #device                vt
 #options       XSERVER         # support for X server on a vt console
 #options       FAT_CURSOR      # start with block cursor
 
 device         agp             # support several AGP chipsets
 
 # Floating point support - do not disable.
 device         npx
 
 # Power management support (see NOTES for more options)
 #device                apm
 # Add suspend/resume support for the i8254.
 device         pmtimer
 
 # PCCARD (PCMCIA) support
 # PCMCIA and cardbus bridge support
 #device                cbb             # cardbus (yenta) bridge
 #device                pccard          # PC Card (16-bit) bus
 #device                cardbus         # CardBus (32-bit) bus
 
 # Serial (COM) ports
 device         sio             # 8250, 16[45]50 based serial ports
 
 # Parallel port
 device         ppc
 device         ppbus           # Parallel port bus (required)
 device         lpt             # Printer
 #device                plip            # TCP/IP over parallel
 #device                ppi             # Parallel port interface device
 #device                vpo             # Requires scbus and da
 
 # If you've got a "dumb" serial or parallel PCI card that is
 # supported by the puc(4) glue driver, uncomment the following
 # line to enable it (connects to the sio and/or ppc drivers):
 #device         puc
 
 # PCI Ethernet NICs.
 device         de              # DEC/Intel DC21x4x (``Tulip'')
 device         em              # Intel PRO/1000 adapter Gigabit Ethernet Card
 device         ixgb            # Intel PRO/10GbE Ethernet Card
 device         txp             # 3Com 3cR990 (``Typhoon'')
 device         vx              # 3Com 3c590, 3c595 (``Vortex'')
 
 # PCI Ethernet NICs that use the common MII bus controller code.
 # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs!
 device         miibus          # MII bus support
 #device                bfe             # Broadcom BCM440x 10/100 Ethernet
 #device                bge             # Broadcom BCM570xx Gigabit Ethernet
 #device                dc              # DEC/Intel 21143 and various workalikes
 #device                fxp             # Intel EtherExpress PRO/100B (82557, 82558)
 #device                lge             # Level 1 LXT1001 gigabit ethernet
 #device                nge             # NatSemi DP83820 gigabit ethernet
 #device                pcn             # AMD Am79C97x PCI 10/100 (precedence over 'lnc')
 #device                re              # RealTek 8139C+/8169/8169S/8110S
 device         rl              # RealTek 8129/8139
 #device                sf              # Adaptec AIC-6915 (``Starfire'')
 #device                sis             # Silicon Integrated Systems SiS 900/SiS 7016
 #device                sk              # SysKonnect SK-984x & SK-982x gigabit Ethernet
 #device                ste             # Sundance ST201 (D-Link DFE-550TX)
 #device                ti              # Alteon Networks Tigon I/II gigabit Ethernet
 #device                tl              # Texas Instruments ThunderLAN
 #device                tx              # SMC EtherPower II (83c170 ``EPIC'')
 #device                vge             # VIA VT612x gigabit ethernet
 #device                vr              # VIA Rhine, Rhine II
 #device                wb              # Winbond W89C840F
 #device                xl              # 3Com 3c90x (``Boomerang'', ``Cyclone'')
 
 # ISA Ethernet NICs.  pccard NICs included.
 #device                cs              # Crystal Semiconductor CS89x0 NIC
 # 'device ed' requires 'device miibus'
 #device                ed              # NE[12]000, SMC Ultra, 3c503, DS8390 cards
 #device                ex              # Intel EtherExpress Pro/10 and Pro/10+
 #device                ep              # Etherlink III based cards
 #device                fe              # Fujitsu MB8696x based cards
 #device                ie              # EtherExpress 8/16, 3C507, StarLAN 10 etc.
 #device                lnc             # NE2100, NE32-VL Lance Ethernet cards
 #device                sn              # SMC's 9000 series of Ethernet chips
 #device                xe              # Xircom pccard Ethernet
 
 # ISA devices that use the old ISA shims
 #device                le
 
 # Wireless NIC cards
 #device                wlan            # 802.11 support
 #device                an              # Aironet 4500/4800 802.11 wireless NICs.
 #device                awi             # BayStack 660 and others
 #device                wi              # WaveLAN/Intersil/Symbol 802.11 wireless NICs.
 #device                wl              # Older non 802.11 Wavelan wireless NIC.
 
 # Pseudo devices.
 device         loop            # Network loopback
 device         mem             # Memory and kernel memory devices
 device         io              # I/O device
 device         random          # Entropy device
 device         ether           # Ethernet support
 #device                sl              # Kernel SLIP
 device         ppp             # Kernel PPP
 device         tun             # Packet tunnel.
 device         pty             # Pseudo-ttys (telnet etc)
 device         md              # Memory "disks"
 device         gif             # IPv6 and IPv4 tunneling
 device         faith           # IPv6-to-IPv4 relaying (translation)
 
 # The `bpf' device enables the Berkeley Packet Filter.
 # Be aware of the administrative consequences of enabling this!
 # Note that 'bpf' is required for DHCP.
 device         bpf             # Berkeley packet filter
 
 # USB support
 #device                uhci            # UHCI PCI->USB interface
 #device                ohci            # OHCI PCI->USB interface
 #device                ehci            # EHCI PCI->USB interface (USB 2.0)
 #device                usb             # USB Bus (required)
 #device                udbp            # USB Double Bulk Pipe devices
 #device                ugen            # Generic
 #device                uhid            # "Human Interface Devices"
 #device                ukbd            # Keyboard
 #device                ulpt            # Printer
 #device                umass           # Disks/Mass storage - Requires scbus and da
 #device                ums             # Mouse
 #device                urio            # Diamond Rio 500 MP3 player
 #device                uscanner        # Scanners
 # USB Ethernet, requires mii
 #device                aue             # ADMtek USB Ethernet
 #device                axe             # ASIX Electronics USB Ethernet
 #device                cdce            # Generic USB over Ethernet
 #device                cue             # CATC USB Ethernet
 #device                kue             # Kawasaki LSI USB Ethernet
 #device                rue             # RealTek RTL8150 USB Ethernet
 
 # FireWire support
 #device                firewire        # FireWire bus code
 #device                sbp             # SCSI over FireWire (Requires scbus and da)
 #device                fwe             # Ethernet over FireWire (non-standard!)

Compile & Install

■ Please note that the process may take quite some time.
シングルユーザモードでの作業を推奨します。

 # config MYKERNEL
 # cd ../../compile/MYKERNEL
 # make depend
 # make
 # make install

If the New Kernel Doesn't Boot

■ In the event that your system fails to boot after installing your new kernel, you may need to revert back to your previous kernel. To do this, press 6 at the boot options screen during startup to access the loader menu.

Use the 'unload' command to unload the current kernel, then use the 'load' command to load the previous kernel before booting with the 'boot' command. This will allow you to revert back to your previous kernel and troubleshoot any issues with your new kernel.

 unload
 local /boot/kernel.old/kernel
 boot
en/02_freebsd/99_その他/カーネル再構築.txt · Last modified: 2023/06/21 13:14 by matsui