FreeBSD 13.5 RELEASE - 基本設定 - カーネルの再構築


 


1. 概要
2. カーネルのコピー
3. カーネルの編集
4. コンパイルとインストール

1. 概要

 「FreeBSD」をインストールした時点で動いているカーネルは、「GENERIC」というカーネルです。  カーネルとはメモリ管理やタスク管理デバイスの管理など、「OS」の基本機能を実現しています。  自分のマシンに合わせたカーネルを作成することにより、以下のような利点があります。
  • 素早く起動します。 カーネルはシステム上にあるハードウェアしか検出しないので、 システムの起動にかかる時間を短くできます。
  • メモリの消費量を減らすことができます。 システムに合わせたカーネルは、 使用しない機能やデバイスドライバを含まないので、 大抵 GENERIC カーネルより少ないメモリしか消費しません。 カーネルコードは常に物理メモリ上に存在し、 アプリケーションはその容量分のメモリを使用できないので、 これは重要なことです。 したがって、メモリが少ないシステムでは、 カーネルの再構築は重要です。
  • 追加のハードウェアをサポートします。 カスタムカーネルは、GENERIC カーネルに存在しないデバイスのサポートを追加することができます。
 (以上、「FreeBSD ハンドブック 8.2. なぜカスタムカーネルを作るか?」より引用)  ただし、カーネルの再構築に失敗すると OS が起動できなくなります。現在のマシン性能は2000年頃に比べて格段に早くなっていますので、現時点の起動速度等に問題がなくカーネルの再構築に自信のない場合はやめておく方が賢明です。  また、「FreeBSD」のメジャーバージョンをアップデートする際は、オリジナルのカーネルが必要になりますのでカスタムのカーネルを作成する際はオリジナルをコピーして作成し、いつでもオリジナルに戻せるようにしておきます。  また失敗した場合、何が失敗したのかを調べるよりもクリーンインストールする方が早いことがありますので、この手順は、OSインストール直後に行った方がいいかもしれません。

2. カーネルのコピー

 デフォルトのカーネルは、「GENERIC」という名前で

/usr/src/sys/プロセッサ名/conf/
 にあります。  プロセッサ名は、x86 系であれば「i386」、x64 系であれば「amd64」になります。  ここではプロセッサを x64 系、作成するカーネルの名称を「MYKERNEL」(カーネルの名称はすべて大文字で記述するのが慣習になっています) として例示します。  はじめにカーネルのコピーを作成します。

cd /usr/src/sys/amd64/conf/
cp GENERIC MYKERNEL

3. カーネルの編集

 コピーしたカーネルをエディタを用いて編集します。  空白行は、読みやすくするためのものなので、出来ればそのまま残しておきます。自分で読みやすくしたければ適当な行に空白行を挿入します。  #(シャープ) 以降は、コメントの意味を持ちます(これは、大抵の unix 系のコンフィグレーションファイルの記述に共通です)。  もし、不必要な行を削除する場合は、出来れば行をそのまま完全に削除するよりは、先頭カラムに"#"を挿入します。そうすることで、不幸な事故が起きたときにも容易にもとに戻せます。  起動時のログを

dmesg
 で見ることができます。  実装していて、OS が認識しているハードウェアが記述されていますので、ハードウェアの変更を予定していなければ、実装しているハードウェア部分のみを残すことも可能です。  ログが起動後のメッセージで埋め尽くされている場合は

/var/run/dmesg.boot
 に残されています。  以下、変更する部分を示します。

cpu		HAMMER
ident		GENERIC
 ここは必須で書き換えます。

cpu             HAMMER
ident           MYKERNEL
 「MYKERNEL」は、例示のカーネル名ですが、ドメイン名でもなんでも自分で命名するものをつけます。

makeoptions	DEBUG=-g		# Build kernel with gdb(1) debug symbols
makeoptions	WITH_CTF=1		# Run ctfconvert(1) for DTrace support

options 	SCHED_ULE		# ULE scheduler
options 	NUMA			# Non-Uniform Memory Architecture support
options 	PREEMPTION		# Enable kernel thread preemption
options 	VIMAGE			# Subsystem virtualization, e.g. VNET
options 	INET			# InterNETworking
options 	INET6			# IPv6 communications protocols
options 	IPSEC_SUPPORT		# Allow kldload of ipsec and tcpmd5
options		NETLINK			# netlink(4) support
options		ROUTE_MPATH		# Multipath routing support
options		FIB_ALGO		# Modular fib lookups
options 	TCP_OFFLOAD		# TCP offload
options 	TCP_BLACKBOX		# Enhanced TCP event logging
options 	TCP_HHOOK		# hhook(9) framework for TCP
options		TCP_RFC7413		# TCP Fast Open
options 	SCTP_SUPPORT		# Allow kldload of SCTP
options		KERN_TLS		# TLS transmit & receive offload
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 	QUOTA			# Enable disk quotas for UFS
options 	MD_ROOT			# MD is a potential root device
options 	NFSCL			# Network Filesystem Client
options 	NFSD			# Network Filesystem Server
options 	NFSLOCKD		# Network Lock Manager
options 	NFS_ROOT		# NFS usable as /, requires NFSCL
options 	MSDOSFS			# MSDOS Filesystem
options 	CD9660			# ISO 9660 Filesystem
options 	PROCFS			# Process filesystem (requires PSEUDOFS)
options 	PSEUDOFS		# Pseudo-filesystem framework
options 	TMPFS			# Efficient memory filesystem
options 	GEOM_RAID		# Soft RAID functionality.
options 	GEOM_LABEL		# Provides labelization
options 	EFIRT			# EFI Runtime Services support
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 	COMPAT_FREEBSD9		# Compatible with FreeBSD9
options 	COMPAT_FREEBSD10	# Compatible with FreeBSD10
options 	COMPAT_FREEBSD11	# Compatible with FreeBSD11
options 	COMPAT_FREEBSD12	# Compatible with FreeBSD12
options 	SCSI_DELAY=5000		# Delay (in ms) before probing SCSI
options 	KTRACE			# ktrace(1) support
options 	STACK			# stack(9) 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 	KBD_INSTALL_CDEV	# install a CDEV entry in /dev
options 	HWPMC_HOOKS		# Necessary kernel hooks for hwpmc(4)
options 	AUDIT			# Security event auditing
options 	CAPABILITY_MODE		# Capsicum capability mode
options 	CAPABILITIES		# Capsicum capabilities
options 	MAC			# TrustedBSD MAC Framework
options 	KDTRACE_FRAME		# Ensure frames are compiled in
options 	KDTRACE_HOOKS		# Kernel DTrace hooks
options 	DDB_CTF			# Kernel ELF linker loads CTF data
options 	INCLUDE_CONFIG_FILE	# Include this file in kernel
options 	RACCT			# Resource accounting framework
options 	RACCT_DEFAULT_TO_DISABLED # Set kern.racct.enable=0 by default
options 	RCTL			# Resource limits

# Debugging support.  Always need this:
options 	KDB			# Enable kernel debugger support.
options 	KDB_TRACE		# Print a stack trace for a panic.

# Kernel Sanitizers
#options 	COVERAGE		# Generic kernel coverage. Used by KCOV
#options 	KCOV			# Kernel Coverage Sanitizer
# Warning: KUBSAN can result in a kernel too large for loader to load
#options 	KUBSAN			# Kernel Undefined Behavior Sanitizer
#options 	KCSAN			# Kernel Concurrency Sanitizer

# Kernel dump features.
options 	EKCD			# Support for encrypted kernel dumps
options 	GZIO			# gzip-compressed kernel and user dumps
options 	ZSTDIO			# zstd-compressed kernel and user dumps
options 	DEBUGNET		# debugnet networking
options 	NETDUMP			# netdump(4) client support
options 	NETGDB			# netgdb(4) client support

# Make an SMP-capable kernel by default
options 	SMP			# Symmetric MultiProcessor Kernel
options 	EARLY_AP_STARTUP

# CPU frequency control
device		cpufreq

# Bus support.
device		acpi
device		smbios
options 	IOMMU
device		pci
options 	PCI_HP			# PCI-Express native HotPlug
options		PCI_IOV			# PCI SR-IOV support

options 	COMPAT_LINUXKPI

# Enable support for the kernel PLL to use an external PPS signal,
# under supervision of [x]ntpd(8)
# More info in ntpd documentation: http://www.eecis.udel.edu/~ntp

 54行は、光学ドライブの「ISO 9660」ファイルシステムをマウントするのに使用します。  「CD-ROM」を使用するのは、光学ディスクを時々マウントするだけなら(いれっぱなしでなければ)この行をコメントアウトしても大丈夫です (データ CD を最初にマウントする時、自動的にロードされます)。  ただ、今回、これをコメントアウトすると「make」時にエラーとなったので、コメントアウトしない方が良さそうです。  70行は、カーネルがそれぞれの「SCSI」機器を検出する前に 5 秒間待つようにします。  「SCSI」機器を接続しないのであれば、コメントアウトします。  「SCSI」機器を使用している場合でも、起動時間を短くするため、秒数を小さくしてみてください。  「SCSI」機器を認識しなくなった場合は時間を元に戻します。  以下、デバイスのオプションでマシンのハードウェア構成上、使用していないものをコメント化していきます。  よくわからないものはそのまま残しておいたほうが賢明です。  コメント化しすぎるとカーネルビルド時にエラーになります。  明らかに不要なもののみにコメント化するように注意深くすることが必要です。

# Floppy drives
device		fdc

# ATA controllers
device		ahci			# AHCI-compatible SATA controllers
device		ata			# Legacy ATA/SATA controllers
device		mvs			# Marvell 88SX50XX/88SX60XX/88SX70XX/SoC SATA
 135行は、フロッピーの定義です。フロッピーを使用していないマシンであれば、コメントアウトします。

# SCSI Controllers
device		ahc			# AHA2940 and onboard AIC7xxx devices
device		ahd			# AHA39320/29320 and onboard AIC79xx devices
device		esp			# AMD Am53C974 (Tekram DC-390(T))
device		hptiop			# Highpoint RocketRaid 3xxx series
device		isp			# Qlogic family
#device		ispfw			# Firmware for QLogic HBAs- normally a module
device		mpt			# LSI-Logic MPT-Fusion
device		mps			# LSI-Logic MPT-Fusion 2
device		mpr			# LSI-Logic MPT-Fusion 3
device		sym			# NCR/Symbios Logic
device		isci			# Intel C600 SAS controller
device		ocs_fc			# Emulex FC adapters
device		pvscsi			# VMware PVSCSI
 143行以下は、「SCSI」コントローラの定義です。SCSI コントローラを使用しないのであれば、コメントアウトします。  以下、同様に何を定義しているかを記述していきますので不要なものをコメントアウトします。

# ATA/SCSI peripherals
device		scbus			# SCSI bus (required for ATA/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 ATA/SCSI access)
device		ses			# Enclosure Services (SES and SAF-TE)
#device		ctl			# CAM Target Layer

# RAID controllers interfaced to the SCSI subsystem
device		amr			# AMI MegaRAID
device		arcmsr			# Areca SATA II RAID
device		ciss			# Compaq Smart RAID 5*
device		iir			# Intel Integrated RAID
device		ips			# IBM (Adaptec) ServeRAID
device		mly			# Mylex AcceleRAID/eXtremeRAID
device		twa			# 3ware 9000 series PATA/SATA RAID
device		smartpqi		# Microsemi smartpqi driver
device		tws			# LSI 3ware 9750 SATA+SAS 6Gb/s RAID controller
 「SCSI」の周辺機器の定義です。

# RAID controllers
device		aac			# Adaptec FSA RAID
device		aacp			# SCSI passthrough for aac (requires CAM)
device		aacraid			# Adaptec by PMC RAID
device		ida			# Compaq Smart RAID
device		mfi			# LSI MegaRAID SAS
device		mlx			# Mylex DAC960 family
device		mrsas			# LSI/Avago MegaRAID SAS/SATA, 6Gb/s and 12Gb/s
device		pmspcv			# PMC-Sierra SAS/SATA Controller driver
#XXX pointer/int warnings
#device		pst			# Promise Supertrak SX6000
device		twe			# 3ware ATA RAID
 「SCSI」の「RAID」コントローラの定義です。

# NVM Express (NVMe) support
device		nvme			# base NVMe driver
device		nvd			# expose NVMe namespaces as disks, depends on nvme

# Intel Volume Management Device (VMD) support
device		vmd
 「RAID」コントローラと「NVMe(よく知りません)」の定義です。

# 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		kbdmux			# keyboard multiplexer

device		vga			# VGA video card driver
options 	VESA			# Add support for VESA BIOS Extensions (VBE)

device		splash			# Splash screen and screen saver support

# syscons is the legacy console driver, resembling an SCO console
device		sc
options 	SC_PIXEL_MODE		# add support for the raster text mode
 「PS2」マウスやらコンソール周りの定義です。

# vt is the default video console driver
device		vt
device		vt_vga
device		vt_efifb
device		vt_vbefb

device		agp			# support several AGP chipsets
 ビデオコンソールドライバの定義です。

# 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
 PC カードデバイスの定義です。

# Serial (COM) ports
device		uart			# Generic UART driver
 「COM」ポート(「RS-232C」あるいは、シリアルポートともいう)の定義です。

# Parallel port
device		ppc
device		ppbus			# Parallel port bus (required)
device		lpt			# Printer
device		ppi			# Parallel port interface device
#device		vpo			# Requires scbus and da

device		puc			# Multi I/O cards and multi-channel UARTs
 に続く行は、パラレルポートです。  コメント化していいのはこのあたりまでだと思います。以下をコメント化するのは結構危険です。

# PCI/PCI-X/PCIe Ethernet NICs that use iflib infrastructure
device		iflib
device		em			# Intel PRO/1000 Gigabit Ethernet Family
device		igc			# Intel I225 2.5G Ethernet
device		ix			# Intel PRO/10GbE PCIE PF Ethernet
device		ixv			# Intel PRO/10GbE PCIE VF Ethernet
device		ixl			# Intel 700 Series Physical Function
device		iavf			# Intel Adaptive Virtual Function
device		ice			# Intel 800 Series Physical Function
device		vmx			# VMware VMXNET3 Ethernet
device		axp			# AMD EPYC integrated NIC

# PCI Ethernet NICs.
device		bxe			# Broadcom NetXtreme II BCM5771X/BCM578XX 10GbE
device		le			# AMD Am7900 LANCE and Am79C9xx PCnet
device		ti			# Alteon Networks Tigon I/II gigabit Ethernet
 「PCI」系の「NIC(Network Interface Card)」の定義です。

# Nvidia/Mellanox Connect-X 4 and later, Ethernet only
# mlx5ib requires ibcore infra and is not included by default
device		mlx5			# Base driver
device		mlxfw			# Firmware update
device		mlx5en			# Ethernet driver

# 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		ae			# Attansic/Atheros L2 FastEthernet
device		age			# Attansic/Atheros L1 Gigabit Ethernet
device		alc			# Atheros AR8131/AR8132 Ethernet
device		ale			# Atheros AR8121/AR8113/AR8114 Ethernet
device		bce			# Broadcom BCM5706/BCM5708 Gigabit Ethernet
device		bfe			# Broadcom BCM440x 10/100 Ethernet
device		bge			# Broadcom BCM570xx Gigabit Ethernet
device		cas			# Sun Cassini/Cassini+ and NS DP83065 Saturn
device		dc			# DEC/Intel 21143 and various workalikes
device		et			# Agere ET1310 10/100/Gigabit Ethernet
device		fxp			# Intel EtherExpress PRO/100B (82557, 82558)
device		gem			# Sun GEM/Sun ERI/Apple GMAC
device		jme			# JMicron JMC250 Gigabit/JMC260 Fast Ethernet
device		lge			# Level 1 LXT1001 gigabit Ethernet
device		msk			# Marvell/SysKonnect Yukon II Gigabit Ethernet
device		nfe			# nVidia nForce MCP on-board Ethernet
device		nge			# NatSemi DP83820 gigabit Ethernet
device		re			# RealTek 8139C+/8169/8169S/8110S
device		rl			# RealTek 8129/8139
device		sge			# Silicon Integrated Systems SiS190/191
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		stge			# Sundance/Tamarack TC9021 gigabit Ethernet
device		vge			# VIA VT612x gigabit Ethernet
device		vr			# VIA Rhine, Rhine II
device		xl			# 3Com 3c90x (``Boomerang'', ``Cyclone'')

# Wireless NIC cards
device		wlan			# 802.11 support
options 	IEEE80211_DEBUG		# enable debug msgs
options 	IEEE80211_SUPPORT_MESH	# enable 802.11s draft support
device		wlan_wep		# 802.11 WEP support
device		wlan_ccmp		# 802.11 CCMP support
device		wlan_tkip		# 802.11 TKIP support
device		wlan_amrr		# AMRR transmit rate control algorithm
device		an			# Aironet 4500/4800 802.11 wireless NICs.
device		ath			# Atheros NICs
device		ath_pci			# Atheros pci/cardbus glue
device		ath_hal			# pci/cardbus chip support
options 	AH_AR5416_INTERRUPT_MITIGATION # AR5416 interrupt mitigation
options 	ATH_ENABLE_11N		# Enable 802.11n support for AR5416 and later
device		ath_rate_sample		# SampleRate tx rate control for ath
#device		bwi			# Broadcom BCM430x/BCM431x wireless NICs.
#device		bwn			# Broadcom BCM43xx wireless NICs.
device		ipw			# Intel 2100 wireless NICs.
device		iwi			# Intel 2200BG/2225BG/2915ABG wireless NICs.
device		iwn			# Intel 4965/1000/5000/6000 wireless NICs.
device		malo			# Marvell Libertas wireless NICs.
device		mwl			# Marvell 88W8363 802.11n wireless NICs.
device		ral			# Ralink Technology RT2500 wireless NICs.
device		wpi			# Intel 3945ABG wireless NICs.

# Pseudo devices.
device		crypto			# core crypto support
device		aesni			# AES-NI OpenCrypto module
device		loop			# Network loopback
device		padlock_rng		# VIA Padlock RNG
device		rdrand_rng		# Intel Bull Mountain RNG
device		ether			# Ethernet support
device		vlan			# 802.1Q VLAN support
device		tuntap			# Packet tunnel.
device		md			# Memory "disks"
device		gif			# IPv6 and IPv4 tunneling
device		firmware		# firmware assist module
device		xz			# lzma decompression

# 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
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		ukbd			# Keyboard
device		umass			# Disks/Mass storage - Requires scbus and da

# Sound support
device		sound			# Generic sound driver (required)
device		snd_cmi			# CMedia CMI8338/CMI8738
device		snd_csa			# Crystal Semiconductor CS461x/428x
device		snd_emu10kx		# Creative SoundBlaster Live! and Audigy
device		snd_es137x		# Ensoniq AudioPCI ES137x
device		snd_hda			# Intel High Definition Audio
device		snd_ich			# Intel, NVidia and other ICH AC'97 Audio
device		snd_via8233		# VIA VT8233x Audio

# MMC/SD
device		mmc			# MMC/SD bus
device		mmcsd			# MMC/SD memory card
device		sdhci			# Generic PCI SD Host Controller
device		rtsx			# Realtek SD card reader

# VirtIO support
device		virtio			# Generic VirtIO bus (required)
device		virtio_pci		# VirtIO PCI device
device		vtnet			# VirtIO Ethernet device
device		virtio_blk		# VirtIO Block device
device		virtio_scsi		# VirtIO SCSI device
device		virtio_balloon		# VirtIO Memory Balloon device

# Linux KVM paravirtualization support
device		kvm_clock		# KVM paravirtual clock driver

# HyperV drivers and enhancement support
device		hyperv			# HyperV drivers 

# Xen HVM Guest Optimizations
# NOTE: XENHVM depends on xenpci.  They must be added or removed together.
options 	XENHVM			# Xen HVM kernel infrastructure
device		xenpci			# Xen HVM Hypervisor services driver

# Netmap provides direct access to TX/RX rings on supported NICs
device		netmap			# netmap(4) support

# evdev interface
options 	EVDEV_SUPPORT		# evdev support in legacy drivers
device		evdev			# input event device support
device		uinput			# install /dev/uinput cdev

# HID support
options 	HID_DEBUG		# enable debug msgs
 これも「PCI」系の「NIC」の定義ですが、インテル系の「NIC」を使用している場合は、「device miibus」の行は絶対に残す必要があります。

# Wireless NIC cards
device		wlan			# 802.11 support
options 	IEEE80211_DEBUG		# enable debug msgs
options 	IEEE80211_SUPPORT_MESH	# enable 802.11s draft support
device		wlan_wep		# 802.11 WEP support
device		wlan_ccmp		# 802.11 CCMP support
device		wlan_tkip		# 802.11 TKIP support
device		wlan_amrr		# AMRR transmit rate control algorithm
device		an			# Aironet 4500/4800 802.11 wireless NICs.
device		ath			# Atheros NICs
device		ath_pci			# Atheros pci/cardbus glue
device		ath_hal			# pci/cardbus chip support
options 	AH_AR5416_INTERRUPT_MITIGATION # AR5416 interrupt mitigation
options 	ATH_ENABLE_11N		# Enable 802.11n support for AR5416 and later
device		ath_rate_sample		# SampleRate tx rate control for ath
#device		bwi			# Broadcom BCM430x/BCM431x wireless NICs.
#device		bwn			# Broadcom BCM43xx wireless NICs.
device		ipw			# Intel 2100 wireless NICs.
device		iwi			# Intel 2200BG/2225BG/2915ABG wireless NICs.
device		iwn			# Intel 4965/1000/5000/6000 wireless NICs.
device		malo			# Marvell Libertas wireless NICs.
device		mwl			# Marvell 88W8363 802.11n wireless NICs.
device		ral			# Ralink Technology RT2500 wireless NICs.
device		wpi			# Intel 3945ABG wireless NICs.
 無線「NIC」の定義です。

# Pseudo devices.
device		crypto			# core crypto support
device		aesni			# AES-NI OpenCrypto module
device		loop			# Network loopback
device		padlock_rng		# VIA Padlock RNG
device		rdrand_rng		# Intel Bull Mountain RNG
device		ether			# Ethernet support
device		vlan			# 802.1Q VLAN support
device		tuntap			# Packet tunnel.
device		md			# Memory "disks"
device		gif			# IPv6 and IPv4 tunneling
device		firmware		# firmware assist module
device		xz			# lzma decompression

# 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
 「Pseudo devices」(疑似デバイス)です。これらは削除してはいけません。  「device md」の記述は「.iso」形式のファイルをマウントする際に必要のようです。

# USB support
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		ukbd			# Keyboard
device		umass			# Disks/Mass storage - Requires scbus and da

# Sound support
device		sound			# Generic sound driver (required)
device		snd_cmi			# CMedia CMI8338/CMI8738
device		snd_csa			# Crystal Semiconductor CS461x/428x
device		snd_emu10kx		# Creative SoundBlaster Live! and Audigy
device		snd_es137x		# Ensoniq AudioPCI ES137x
device		snd_hda			# Intel High Definition Audio
device		snd_ich			# Intel, NVidia and other ICH AC'97 Audio
device		snd_via8233		# VIA VT8233x Audio
 「USB」デバイス、サウンドカードの定義です。

# MMC/SD
device		mmc			# MMC/SD bus
device		mmcsd			# MMC/SD memory card
device		sdhci			# Generic PCI SD Host Controller
device		rtsx			# Realtek SD card reader
 「SD」カードの定義です。  使わないのであればコメントアウトしてよいでしょう。

# VirtIO support
device		virtio			# Generic VirtIO bus (required)
device		virtio_pci		# VirtIO PCI device
device		vtnet			# VirtIO Ethernet device
device		virtio_blk		# VirtIO Block device
device		virtio_scsi		# VirtIO SCSI device
device		virtio_balloon		# VirtIO Memory Balloon device

# Linux KVM paravirtualization support
device		kvm_clock		# KVM paravirtual clock driver

# HyperV drivers and enhancement support
device		hyperv			# HyperV drivers 

# Xen HVM Guest Optimizations
# NOTE: XENHVM depends on xenpci.  They must be added or removed together.
options 	XENHVM			# Xen HVM kernel infrastructure
device		xenpci			# Xen HVM Hypervisor services driver

# Netmap provides direct access to TX/RX rings on supported NICs
device		netmap			# netmap(4) support

# evdev interface
options 	EVDEV_SUPPORT		# evdev support in legacy drivers
device		evdev			# input event device support
device		uinput			# install /dev/uinput cdev

# HID support
options 	HID_DEBUG		# enable debug msgs
device		hid			# Generic HID support
options 	IICHID_SAMPLING		# Workaround missing GPIO INTR support
 仮想環境系のデバイス定義です。  仮想に無縁であればコメントアウトしてよいでしょう。  この他、ファイアウォールの機能「IP Firewall」を有効にするのであれば以下のオプションを追加します。

options IPFIREWALL
options IPFIREWALL_VERBOSE
options IPFIREWALL_DEFAULT_TO_ACCEPT
 それぞれの意味については「メンテナンス・トラブルシュート - セキュリティ対策」をご参照ください。

4. コンパイルとインストール

 編集が終わったら、以下のようにコンパイルとインストールを行います。  結構な時間を必要としますので、終わるまでマシンをちらちら見ながら、何か他のことをしていた方がいいかも・・・。  もちろんここは、「root」ユーザ権限で。

cd /usr/src
 コンパイル。

make buildkernel KERNCONF=MYKERNEL
 コンパイル中のメッセージが表示されます。  リンク、インストール。

make installkernel KERNCONF=MYKERNEL
 インストール中のメッセージが表示されます  これでエラーがでなければ、以下のコマンドで再起動すれば新しいカーネルで動きます。

shutdown -r now
 編集する前のカーネルは「kernel.old」という名前で残っています。  もし新しいカーネルで起動できなくなったらブート時に、

boot kernel.old
 と打ち込みます。  そうすれば一回前のカーネルで起動できます。

audiobook.jp
アフィリエイトのアクセストレード
TikTok Shop 【リピート用プログラム】
葬送のフリーレン Prime Video
損保との違い
薬屋の独り言
サウンドハウス
5G CONNECT
EaseUS
Amazonギフトカード
ハイスピードプラン
earthcar(アースカー)
ベルリッツ
JETBOY
ネットオークションの相場、統計、価格比較といえばオークファン
健康サポート特集
【usus ウズウズ】
それがだいじWi-Fi
U-NEXT