Freebsd 编译内核

# cd /usr/src/sys/i386/conf

# cp GENERIC GENERIC.20060812
# ee GENERIC

如果要加入ipf防火墙的话则加入
options         IPFIREWALL
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_FORWARD
options         IPDIVERT

# cd /usr/src/sys/i386/conf

运行config命令来产生内核源代码。
# /usr/sbin/config GENERIC

切换到建立内核的目录。
# cd ../compile/GENERIC

编译内核
# make cleandepend  (最好先清除一下)
# make depend
# make

安装新内核。
# make install

OK,到这里,如果中间没有出现任何错误的话,那么我们的内核心就已经安装成功了,
reboot后就能够使用我们的新编译的内核了。如果出现了

错误,那么请检查你的步骤是否跟上面的步骤一致,同时要检查你的内核配置文件配置的是否正确,
一般编译不成功都是内核文件配置的问题

,请仔细检查。

四、新内核无法启动:

如果你编译的内核无法启动,那么可以使用以前的内核来启动。一般编译一次内核后,
都会把把旧内核备份,一般/boot/kernel.old就是旧内

核的备份,出现问题就能够使用久内核来启动。

具体实现方法是:
你可以在系统启动进行10计数的时候按Enter以外的任何键, 接着键入unload命令,
再键入boot kernel.old,或者任何能正常启动的内核名字

,然后就能够正常启动系统,进入系统后再重新进行内核的配置工作。

注意: 你不能仅依靠kernel.old,因为当你安装一个新内核时, 
kernel.old会被上一次安装的内核所覆盖,所以你要么自己手动备份一个能

正常启动的内核,或者注意你的kernel.old是否能正常启动的内核。

结束

好,到这里,我们的编译内核的工作就完成了,来然我们来看看我们的内核是否已经减小了:

# ls -l /boot/kernel/kernel
-r-xr-xr-x 1 root wheel 3090929 Sep 1 21:30 /boot/kernel/kernel

呵呵,明显把原来的5940286变成了现在的3090929,虽然没有变小一倍,
但是也变小好多啦,以后系统又更快啦

修改时请参http://cnsnap.cn.freebsd.org/doc/zh_CN.GB2312/books/handbook/kernelconfig-config.html

#######################################################################
machine  i386
cpu  I486_CPU
cpu  I586_CPU
cpu  I686_CPU
ident  GENERIC

# To statically compile in device wiring instead of /boot/device.hints
#hints  "GENERIC.hints"  # Default places to look for devices.

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

#options  SCHED_ULE  # ULE scheduler
options  SCHED_4BSD  # 4BSD scheduler
options  PREEMPTION  # Enable kernel thread preemption
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  COMPAT_FREEBSD5  # Compatible with FreeBSD5
#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  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.

options         IPFIREWALL
options         IPFIREWALL_DEFAULT_TO_ACCEPT
options         IPFIREWALL_FORWARD

device  apic   # I/O APIC

# Bus support.
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  ispfw  # Firmware for QLogic HBAs- normally a module
#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

# 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 DC21×4x (“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  nve  # nVidia nForce MCP on-board Ethernet Networking
#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 CS89×0 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  ral  # Ralink Technology RT2500 wireless NICs.
#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  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  ural  # Ralink Technology RT2500USB wireless NICs
#device  urio  # Diamond Rio 500 MP3 player
#device  uscanner # Scanners
## USB Ethernet, requires miibus
#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!)
#######################################################################

时间: 2024-10-31 04:02:51

Freebsd 编译内核的相关文章

ubuntu 下面编译内核

1. 安装编译内核环境工具 <pre name="code" class="html">sudo apt-get install build-essential kernel-package libncurses5-dev libqt3-headers build-essential (基本的编程库(gcc, make 等) kernel-package (Debian 系统里生成 kernel-image 的一些配置文件和工具) libncurses5

Linux重新编译内核指南

Linux的一个重要的特点就是其源代码的公开性,全世界任何一个软件工程师都可以将自己认为优秀的代码加入到其中,由此引发的一个明显的好处就是Linux修补漏洞的快速以及对最新软件技术的利用.而Linux的内核则是这些特点的最直接的代表. 为什么要升级内核 正如它的名字的字面意义,Linux的内核承担着Linux操作系统的最为核心的任务,是其它程序和硬件等运行过程中的仲裁者:它要管理所有进程的内存,保证它们都能平等得到处理器的时隙.此外,它还提供程序和硬件之间的接口等功能. 通常,更新的内核会支持更

第3阶段——内核启动分析之make uImage编译内核(3)

目标: 通过分析makefile,明白make uImage如何编译内核 把整个内核的makefile分成三类(makefile资料文档在linux-2.6.22.6/Documentation/build/makefiles.txt) <1>各级子目录makefile(每个子目录都有makefile)<2>/arch/arm/Makefile(架构相关的makefile)<3>顶层目录makefile 在顶层目录makefile中auto.conf和/arch/arm

Linux 编译内核

编译内核步骤: 1.先查看自己OS使用的内核版本 [email protected]:~$ uname -r4.4.0-51-generic[email protected]:~$ 2.如果安装系统时,自动安装了源码.在 /usr/src 目录下有对应的使用的版本目录(ubuntu安装完一般没有源码需要自己下载).如下: 后缀generic表示通用版. [email protected]:/usr/src$ lslinux-headers-4.4.0-21  linux-headers-4.4.

iptables学习笔记之编译内核和iptables及安装l7proto

            编译内核和iptables及安装l7proto 一.环境介绍 操作系统:Redhat5.8_64bit 需要软件包: linux-2.6.28.10.tar.gz netfilter-layer7-v2.22.tar.gz l7-protocols-2009-05-28.tar.gz iptables-1.4.6.tar.bz2 安装步骤: 1).给内核打补丁,并重新编译内核 2).给iptables源码打补丁,并重新编译iptables 3).安装l7proto 1.给

Linux编译内核

查看内核: #uname [OPTION] [OPTION] -r 显示内核版本和release号. 用户空间访问.监控内核的方式: /proc /sys 伪文件系统: /proc/sys 目录中很多文件是可读写的. /sys 某些文件可写 设定内核参数值的方法: 临时生效,重启后失效: #echo VALUE > /proc/sys/FILE #sysctl -w DIR.FILE=VALUE 在/proc/sys目录下可以忽略/proc/sys,剩余路径用DIR.FILE表示. 例如: #e

linux内核编译,内核参数修改

核心(kernel):/boot/vmlinuz-version version 带发行包版本,本地版本内核模块(kernel object): /lib/modules/version/ 内核设计:    单内核        模块化设计--内核小,功能做成模块    微内核装载模块:    insmod    modprobe 内核下载:www.kernel.org 2(主).6(次).17(修正)-->2.6.17.1修复bug2.6.18.rc1(候补版) 新增功能 用户空间访问,监控内

debian7编译内核

第一个步骤“配置内核”. 在这里,我比较建议在发行版默认的config的基础上再进行配置,这样 配置出的内核和发行版本身才会有更好的相容性.比如可以在运行“make menuconfig”之前执行命令“cp /boot/config-2.6.35-24-generic  .config”,或者在menuconfig里先把/boot/config-2.6.35-24-generic load进来. 第二个步骤是编译内核并打包的过程.通常我们可以这样下命令: make-kpkg  --initrd

UBUNTU环境编译内核

1.编译的环境配置和库需要  编译需要最起码的GCC.make.和root权限,库依赖需要ncurses,安装ncurses命令如下:sudo  apt-get install build-essential kernel-package   libncurses5-dev2.为了证明内核更改,需要自己先查看内核版本:uname -r3.从www.kernel.org下载最新最新内核.4.将下载好的内核解压后进入[email protected]:~$ cd linux-3.9.2/5.使用ma