我们刚才安装了wget软件,现在要开始使用了,当我们输入命令之后,竟然告诉我们命令没找到,那么我们就要找到软件安装在哪里才能去使用它,这样是不是太不方便了啊?那么我们就把软件命令所在的目录加入到环境变量中去,那么我们就可以在任何目录下使用命令了。在加入环境变量之前,我们先说一下概念。
  我们进入FreeBSD之后就进入命令解释状态,命令解释程序shell就相当于windows下面的dos啦。我们在shell下输入我们的操作命令,由shell去解释我们的命令告诉计算机如何去操作。在 Unix长期发展过程中,开发了很多种不同的shell,来解释用户的指令,包括sh、csh、bash等等。基本上,sh和csh是最基本的两种shell,而其他种类的shell通常是这两种shell的某种扩展。这两个基本shell的风格不太相同,某些基本指令也有所不同,不同的使用者常常会根据喜好来在两者之间进行选择。
  在登录FreeBSD系统之后,这个shell将给出一个提示符等待用户输入,(sh为 “ $ ” ,csh为 “ % ” ,如果是使用root用户,登录提示符将是 “ # ” ),然后对用户的输入进行解释执行。当shell接收到用户的指令的时候,它需要在一定的路径中查找可执行的指令,这个路径就是由环境变量PATH来确定的。
引用
可以使用echo指令来查看环境变量的内容。
echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/root/bin

引用
在 sh下通过下面方法重新设置环境变量:
$ PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
$ export PATH

引用
而在 csh中,需要使用setenv指令:
setenv PATH /bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin

  上面的方法仅仅是临时改变环境变量,如果我们需要每次启动都改变呢?那么我们就要去修改环境变量的配置文件了。
引用
用户登录时,sh将首先自动执行/etc/profile文件,为每个用户设置最基本的环境,而csh将使用/etc/csh.cshrc,csh.login和csh.logout作为系统级csh资源文件。执行了系统级别的登录文件之后,每个用户的shell就在该用户的主目录下寻找该用户个人的资源文件:sh使用.profile文件,csh使用.login和.cshrc文件。这些资源文件均使用相应的shell语言,/etc/profile和个人目录下的.profile使用sh风格的控制语言,/etc/cshrc和个人目录下的.login、.cshrc使用csh风格的控制语言。

  明白原理之后,我们把wget所在的目录加进系统环境变量文件中去吧。
引用
cd etc
vi profile
在最后加入
export /usr/local/bin
:wq

  好了这样就可以在任何地方使用wget命令了。多方便啊!


现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
  昨天我们更新了Ports,那么我们就要用Ports安装软件了,可是这么多的软件到底我们要安装的软件在哪里呢?总不能一个一个去找吧?那么我们使用下面的命令来查找:
whereis 软件名
例如: whereis wgetpro
然后系统就会告诉我们
wgetpro: /usr/ports/ftp/wgetpro
呵呵,是不是很方便啊?
接着我们来看看怎么安装软件了
引用
进入软件所在的目录
cd /usr/ports/ftp/wgetpro
编译
make
执行安装
make install clean

这样就安装好了,是不是很方便啊?

PORTS安装软件的几个常用命令
引用
1.怎样找到我想安装的包路径:

# cd /usr/ports
# make search name=mysql


2.仅仅下载源码包,而不安装:

# cd /usr/ports/directory
# make fetch

3.预先知道需要那些包,才能安装这个软件:

# cd /usr/ports/directory
# make fetch-list

4.把软件装到指定的目录:

# cd /usr/ports/directory
# make PREFIX=/usr install

5.仅仅下载包,解包,而不安装:

# cd /usr/ports/directory
# make extract

6.用PORTS制作一个定制二进制包:

# cd /usr/ports/somewhere/frobble
# make extract
# cd work/frobble-2.8
[Apply your patches]
# cd ../..
# make package

7.强制安装:

# make install FORCE_PKG_REGISTER=yes clean

8.初始化一个port

# cd /usr/ports/directory
# make rmconfig
# make config



现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
Tags: ,
  FreeBSD的ports安装软件有两种依赖,一种是编译时的依赖,一种是运行时的依赖。
如:
编译安装wget,需要安装gettext-0.14.5、libiconv-1.9.2_1、perl-5.8.7三个依赖。
用package安装,则只需要gettext-0.14.5、libiconv-1.9.2_1两个依赖
  那么安装你要的软件的时候,前提你必须安装了依赖软件,如果你没有安装那些依赖软件呢,系统就会自动帮你装上去,如果你不想你的系统里很多你根本不用的垃圾软件呢。那么你就必须清楚安装的软件有哪些依赖软件使你运行软件所不需要的。
  这样等你安装好了以后,就可以把不需要的依赖软件删掉。
  查询依赖软件的命令是:
引用
cd /usr/ports
make search name=wget


在ports里应该用
make search key="soft name"
或者
make search name="soft name"
查看说明。
命令可以使用*号还可以带上|more翻页阅读

现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
  FreeBSD的Packages和Ports是应用程序的安装和配置及反安装的解决方案,基本上类似RedHat的RPM方案,再说的通俗一点就是windows的installer,这个还不知道啊?setup.exe总知道了吧?就是类似安装程序,只是FreeBSD把很多软件安装的接口都做到Ports里面去了,那么我们很多时候就想知道软件是不是有更新啦,我们要用新的软件,那么怎么办?那么我们就要更新Ports了。现在看看我们如何更新Ports的。
  本文由ArthurXF倾情奉献,谢谢大家支持。
我们发现更新ports是一件痛苦的事情,主要的原因是很多软件都来自国外的服务器,那个下载速度只有几K,更新一次就要好几个小时。我们直接把下载服务器改成国内的服务器不是很好吗?网上虽然有很多教程说如何将MASTER_SITE_FREEBSD_ORG改成ftp.cn.FreeBSD.org,因为FreeBSD版本问题,很多方法都有些牛头不对马嘴了。这里ArthurXF直接奉献精华方法给大家。

引用
最近国内的服务器镜像的文件竟然不全,只有一部分,我找了半天,发现韩国的服务器是全的。
大家可以把下面的ftp.cn.FreeBSD.org替换成ftp.kr.FreeBSD.org即可


引用
cd /etc/
vi make.conf
加入下面的内容:
MASTER_SITE_FREEBSD_ORG= ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/%SUBDIR%/
MASTER_SITE_GNOME=  http://mirrors.geekbone.org/gnome/%SUBDIR%/
MASTER_SITE_LOCAL=  ftp://ftp.cn.FreeBSD.org/pub/FreeBSD/ports/local-distfiles/%SUBDIR%/
MASTER_SITE_OVERRIDE=ftp://ftp.cn.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/

大功告成,这样更新ports,就直接从中国的服务器下载了。这个速度就别提了,就是一个字,“快”!

1、安装cvsup
如果还没安装过cvsup,那么请执行以下命令安装:
cd /usr/ports/net/cvsup
make install clean

2、然后拷贝ports的配置文件到/etc/ports-supfile
cp /usr/share/examples/cvsup/ports-supfile /etc/ports-supfile
ee /etc/ports-supfile
将其中的# host=CHANGE_THIS.FreeBSD.org一行改为host=cvsup.cn.freebsd.org
cvsup.freebsdchina.org这个是中国的镜像服务器执行速度很快,不会连接过多
其他镜像站可以到http://www.freebsd.org/doc/handbook/cvsup.html#CVSUP-MIRRORS查找

3、更新ports
/usr/local/bin/cvsup -g -L 2 /etc/ports-supfile

4、修改/etc/make.conf文件
如果不存在则可以参考,/usr/share/examples/etc/make.conf文件新建一个,该文件主要是编译的时候需要用到。
如果要中文支持,就要加入这一段在make.conf中

下面是我的make.conf文件内容
引用
SUP_UPDATE= yes
SUP=  /usr/local/bin/cvsup
SUPFLAGS= -g -L 2
SUPHOST= cvsup.cn.FreeBSD.org
PORTSUPFILE= /etc/ports-supfile
WITH_CJK= yes


好了,这样Ports就更新完了。想测试一下吗?赶快去安装一个软件试试吧。

我们以后要用ports方式安装软件,这些软件都是以源码形式安装的, 所以我们这里得做两方面的优化工作,第一是优化编译器,也就是GCC的编译指令,这样可以提高软件的效率,第二就是为ports下载软件加速了。
首先检查GCC的版本是否大于3.0
#gcc --version

接着我们调整一下GCC的编译参数。
# ee /etc/make.conf
加入:
CFLAGS= -march=prescott -O2 -pipe -msse2 -mmmx -mfpmath=sse
CXXFLAGS= ${CFLAGS}
其中-march是指你机器的CPU,不知道CPU型号可以用下面的方法来查,我的是Intel志强,结果如下:
# sysctl hw.model
hw.model: Genuine Intel(R) CPU 3.20GHz
以下是对照表,按照你的CPU型号改就OK了(参考金步国的《GCC编译优化指南》)。
i386 (Intel)
CFLAGS= -march=i386
CXXFLAGS+= -march=i386

i486 (Intel)
CFLAGS= -march=i486
CXXFLAGS+= -march=i486

Pentium 1 (Intel)
CFLAGS= -march=pentium
CXXFLAGS+= -march=pentium

Pentium MMX (Intel)
CFLAGS= -march=pentium-mmx
CXXFLAGS+= -march=pentium-mmx

Pentium PRO (Intel)
CFLAGS= -march=pentiumpro
CXXFLAGS+= -march=pentiumpro

Pentium II (Intel)
CFLAGS= -march=pentium2
CXXFLAGS+= -march=pentium2

Celeron (Mendocino), aka Celeron1 (Intel)
CFLAGS= -march=pentium2
CXXFLAGS+= -march=pentium2

Pentium III (Intel)
CFLAGS= -march=pentium3
CXXFLAGS+= -march=pentium3

Celeron (Coppermine) aka Celeron2 (Intel)
CFLAGS= -march=pentium3
CXXFLAGS+= -march=pentium3

Celeron (Willamette?) (Intel)
CFLAGS= -march=pentium4
CXXFLAGS+= -march=pentium4

Pentium 4 (Intel)
CFLAGS= -march=pentium4
CXXFLAGS+= -march=pentium4

Intel Core Solo/Duo(Intel)
model name   : Genuine Intel(R) CPU TXXXX @ XXXGHz
CFLAGS= -march=prescott
CXXFLAGS+= -march=prescott

Eden C3/Ezra (Via)
CFLAGS= -march=i586 -m3dnow
CXXFLAGS+= -march=i586 -m3dnow

Core i7 and Core i5, Xeon 55xx
32 bit profile (x86) - for CHOST="i686-pc-linux-gnu"
CFLAGS=-O2 -pipe -march=nocona -msse3 -fomit-frame-pointer
CXXFLAGS=${CFLAGS}

32 bit profile (x86) - for >=sys-devel/gcc-4.3:
CHOST="i686-pc-linux-gnu"
CFLAGS=-O2 -pipe -march=core2 -msse4 -mcx16 -msahf -fomit-frame-pointer
CXXFLAGS=${CFLAGS}

64 bit profile (amd64) - for CHOST="x86_64-pc-linux-gnu"
CFLAGS=-march=nocona -O2 -msse3 -pipe
CXXFLAGS=${CFLAGS}

64 bit profile (amd64) - for >=sys-devel/gcc-4.3
CHOST="x86_64-pc-linux-gnu"
CFLAGS=-march=core2 -msse4 -mcx16 -msahf -O2 -pipe
CXXFLAGS=${CFLAGS}

K6 (AMD)
CFLAGS= -march=k6
CXXFLAGS+= -march=k6

K6-2 (AMD)
CFLAGS= -march=k6-2
CXXFLAGS+= -march=k6-2

K6-3 (AMD)
CFLAGS= -march=k6-3
CXXFLAGS+= -march=k6-3

Athlon (AMD)
CFLAGS= -march=athlon
CXXFLAGS+= -march=athlon

Athlon-tbird, aka K7 (AMD)
CFLAGS= -march=athlon-tbird
CXXFLAGS+= -march=athlon-tbird

Athlon-tbird XP (AMD)
CFLAGS= -march=athlon-xp
CXXFLAGS+= -march=athlon-xp

Athlon 4(AMD)
CFLAGS= -march=athlon-4
CXXFLAGS+= -march=athlon-4

Athlon XP (AMD)
CFLAGS= -march=athlon-xp
CXXFLAGS+= -march=athlon-xp

Athlon MP (AMD)
CFLAGS= -march=athlon-mp
CXXFLAGS+= -march=athlon-mp

更多类型请查阅http://en.gentoo-wiki.com/wiki/Safe_Cflags

最后我们的ports使用axel来多线程下载,不知道axel在ports的那个位置,可以用下面指令找找:
# cd /usr/ports
# make search key=axel
Port:   axel-1.0b
Path:   /usr/ports/ftp/axel
Info:   A download accelerator
Maint: ports@FreeBSD.org
B-deps: gettext-0.14.5_2 gmake-3.81_1 libiconv-1.9.2_2
R-deps: gettext-0.14.5_2 libiconv-1.9.2_2
WWW:    http://wilmer.gaast.net/main.php/axel.html
其实还有一个更方便的方法就是whereis
# whereis axel
axel: /usr/ports/ftp/axel

直接开始安装
# cd /usr/ports/ftp/axel
# make install clean
安装完成以后,我们到make.conf进行设置,axel才能工作。
# ee /etc/make.conf
加入:
FETCH_CMD=axel
FETCH_BEFORE_ARGS= -n 10 -a
FETCH_AFTER_ARGS=
DISABLE_SIZE=yes

这样编译出来的程序执行效率明显提高,呵呵。ArthurXF倾情奉献!

现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
  FreeBSD安装好了以后呢,因为FreeBSD默认配置要支持很多的设备,要兼容各种设备管理啊,这样就启动了很多的驱动程序等等,这些东西我们都一般服务器配置好之后很多都用不到,而FreeBSD每次都要加载它们,这样FreeBSD启动慢,而且还占用资源,所以我们现在来重新配置FreeBSD的内核,去掉我们用不到的东西,这样我们就可以很快启动FreeBSD系统了。那么让我们开始:
cd /usr/src/sys/i386/conf
cp GENERIC ArthurXF
vi ArthurXF
大家自己选择一些要用到的设备,如果不用的就用#号注释掉,我把我的配置放出来仅供参考。
需要注意的是ident    ArthurXF ,必须和你的内核文件名一致。
引用
#
# 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.429.2.7.2.2 2006/05/01 00:15:12 scottl Exp $

machine    i386
cpu    I486_CPU
cpu    I586_CPU
cpu    I686_CPU
ident    ArthurXF

# 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.

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    rr232x    # Highpoint RocketRAID 232x
#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    mfi    # LSI MegaRAID SAS
#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    kbdmux    # keyboard multiplexer

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 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    bce    # Broadcom BCM5706/BCM5708 Gigabit Ethernet
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 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

# 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!)


编辑完了以后就保存退出。然后执行:
cd /usr/src
make kernel KERNCONF=ArthurXF
系统开始编译内核了,如果全部通过了就可以继续操作了,如果编译出错了,就可能是哪个必须要用到的设备被你注释掉了,好好找找,把注释取消重新编译,直到编译通过为止。呵呵
编译通过之后,就重起让新内核加载:
shutdown –r now
重起之后,我们执行这个命令:
dmesg
这时我们将看到返回来的信息。
引用
Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
       The Regents of the University of California. All rights reserved.
FreeBSD 6.1-RELEASE #0: Sun May  7 04:32:43 UTC 2006
   root@opus.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC
ACPI APIC Table:
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Celeron(R) CPU 2.13GHz (2126.45-MHz 686-class CPU)
 Origin = "GenuineIntel"  Id = 0xf41  Stepping = 1
 Features=0xbfebfbff
 Features2=0x441d>
real memory  = 528416768 (503 MB)
avail memory = 507715584 (484 MB)
ioapic0 irqs 0-23 on motherboard
kbd1 at kbdmux0
acpi0: on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
cpu0: on acpi0
acpi_throttle0: on cpu0
acpi_button0: on acpi0
pcib0: port 0xcf8-0xcff on acpi0
pci0: on pcib0
agp0: mem 0xd0000000-0xd7ffffff,0xdff80000-0xdfffffff irq 16 at device 2.0 on pci0
agp0: detected 8060k stolen memory
agp0: aperture size is 128M
uhci0: port 0xe400-0xe41f irq 16 at device 29.0 on pci0
uhci0: [GIANT-LOCKED]
usb0: on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1: port 0xe800-0xe81f irq 19 at device 29.1 on pci0
uhci1: [GIANT-LOCKED]
usb1: on uhci1
usb1: USB revision 1.0
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2: port 0xec00-0xec1f irq 18 at device 29.2 on pci0
uhci2: [GIANT-LOCKED]
usb2: on uhci2
usb2: USB revision 1.0
uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
ehci0: mem 0xdff7bc00-0xdff7bfff irq 23 at device 29.7 on pci0
ehci0: [GIANT-LOCKED]
usb3: EHCI version 1.0
usb3: companion controllers, 2 ports each: usb0 usb1 usb2
usb3: on ehci0
usb3: USB revision 2.0
uhub3: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub3: 6 ports with 6 removable, self powered
pcib1: at device 30.0 on pci0
pci3: on pcib1
rl0: port 0xcc00-0xccff mem 0xdfdfff00-0xdfdfffff irq 17 at device 4.0 on pci3
miibus0: on rl0
rlphy0: on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl0: Ethernet address: 00:14:78:25:fd:e6
rl1: port 0xc800-0xc8ff mem 0xdfdffe00-0xdfdffeff irq 18 at device 5.0 on pci3
miibus1: on rl1
rlphy1: on miibus1
rlphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl1: Ethernet address: 00:14:78:26:26:58
rl2: port 0xc400-0xc4ff mem 0xdfdffd00-0xdfdffdff irq 17 at device 10.0 on pci3
miibus2: on rl2
rlphy2: on miibus2
rlphy2:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl2: Ethernet address: 00:13:8f:78:da:51
isab0: at device 31.0 on pci0
isa0: on isab0
atapci0: port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfc00-0xfc0f at device 31.1 on pci0
ata0: on atapci0
ata1: on atapci0
pci0: at device 31.5 (no driver attached)
fdc0: port 0x3f2-0x3f3,0x3f4-0x3f5,0x3f7 irq 6 drq 2 on acpi0
fdc0: [FAST]
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
sio1: port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
ppc0: port 0x378-0x37f,0x778-0x77b irq 7 drq 3 on acpi0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/9 bytes threshold
ppbus0: on ppc0
plip0: on ppbus0
lpt0: on ppbus0
lpt0: Interrupt-driven port
ppi0: on ppbus0
pmtimer0 on isa0
atkbdc0: at port 0x60,0x64 on isa0
atkbd0: irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
sc0: at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 2126445016 Hz quality 800
Timecounters tick every 1.000 msec
ad0: 76319MB at ata0-master UDMA100
Trying to mount root from ufs:/dev/ad0s1a
Waiting (max 60 seconds) for system process `vnlru' to stop...done
Waiting (max 60 seconds) for system process `bufdaemon' to stop...done
Waiting (max 60 seconds) for system process `syncer' to stop...
Syncing disks, vnodes remaining...1 1 1 0 0 0 done
All buffers synced.
Uptime: 23h16m32s
Shutting down ACPI
Rebooting...
Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
       The Regents of the University of California. All rights reserved.
FreeBSD 6.1-RELEASE #2: Thu Jan 18 07:52:26 CST 2007
   arthur@www.wap.com:/usr/obj/usr/src/sys/ArthurXF
ACPI APIC Table:
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel(R) Celeron(R) CPU 2.13GHz (2126.44-MHz 686-class CPU)
 Origin = "GenuineIntel"  Id = 0xf41  Stepping = 1
 Features=0xbfebfbff
 Features2=0x441d>
real memory  = 528416768 (503 MB)
avail memory = 507731968 (484 MB)
ioapic0 irqs 0-23 on motherboard
acpi0: on motherboard
acpi0: Power Button (fixed)
Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
acpi_timer0: <24-bit timer at 3.579545MHz> port 0x808-0x80b on acpi0
cpu0: on acpi0
acpi_throttle0: on cpu0
acpi_button0: on acpi0
pcib0: port 0xcf8-0xcff on acpi0
pci0: on pcib0
agp0: mem 0xd0000000-0xd7ffffff,0xdff80000-0xdfffffff irq 16 at device 2.0 on pci0
agp0: detected 8060k stolen memory
agp0: aperture size is 128M
pci0: at device 29.0 (no driver attached)
pci0: at device 29.1 (no driver attached)
pci0: at device 29.2 (no driver attached)
pci0: at device 29.7 (no driver attached)
pcib1: at device 30.0 on pci0
pci3: on pcib1
rl0: port 0xcc00-0xccff mem 0xdfdfff00-0xdfdfffff irq 17 at device 4.0 on pci3
miibus0: on rl0
rlphy0: on miibus0
rlphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl0: Ethernet address: 00:14:78:25:fd:e6
rl1: port 0xc800-0xc8ff mem 0xdfdffe00-0xdfdffeff irq 18 at device 5.0 on pci3
miibus1: on rl1
rlphy1: on miibus1
rlphy1:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl1: Ethernet address: 00:14:78:26:26:58
rl2: port 0xc400-0xc4ff mem 0xdfdffd00-0xdfdffdff irq 17 at device 10.0 on pci3
miibus2: on rl2
rlphy2: on miibus2
rlphy2:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
rl2: Ethernet address: 00:13:8f:78:da:51
isab0: at device 31.0 on pci0
isa0: on isab0
atapci0: port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xfc00-0xfc0f at device 31.1 on pci0
ata0: on atapci0
ata1: on atapci0
pci0: at device 31.5 (no driver attached)
sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
sio0: type 16550A
sio1: port 0x2f8-0x2ff irq 3 on acpi0
sio1: type 16550A
ppc0: port 0x378-0x37f,0x778-0x77b irq 7 drq 3 on acpi0
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
ppc0: FIFO with 16/16/9 bytes threshold
ppbus0: on ppc0
plip0: on ppbus0
lpt0: on ppbus0
lpt0: Interrupt-driven port
ppi0: on ppbus0
pmtimer0 on isa0
atkbdc0: at port 0x60,0x64 on isa0
atkbd0: irq 1 on atkbdc0
kbd0 at atkbd0
atkbd0: [GIANT-LOCKED]
sc0: at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
vga0: at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
Timecounter "TSC" frequency 2126443912 Hz quality 800
Timecounters tick every 1.000 msec
ad0: 76319MB at ata0-master UDMA100
Trying to mount root from ufs:/dev/ad0s1a


看到中间有这么一段吗?
引用
Rebooting...
Copyright (c) 1992-2006 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
       The Regents of the University of California. All rights reserved.
FreeBSD 6.1-RELEASE #2: Thu Jan 18 07:52:26 CST 2007
   arthur@www.wap.com:/usr/obj/usr/src/sys/ArthurXF

这里就是在替换内核,说明我们的新内核已经启动了。哈哈,内核编译成功!

引用
编译完成以后,我们现在的工作就是对系统一些参数进行优化调整。
# ee /boot/loader.conf
加入:
kern.ipc.maxsockets=65535
kern.maxusers=256
kern.ipc.nmbclusters=32768
kern.ipc.nsfbufs=2496
# ee /etc/sysctl.conf
加入:
net.inet.ip.sourceroute=0
net.inet.ip.accept_sourceroute=0
net.inet.tcp.drop_synfin=1
kern.maxvnodes=8446

kern.maxfiles=65536
kern.maxfilesperproc=32768
kern.ipc.somaxconn=32768
kern.ipc.shmmax=67108864 # 64MB
kern.ipc.shmall=32768
kern.ipc.shm_allow_removed=0
kern.coredump=1
net.inet.ip.portrange.last=65535

net.inet.tcp.msl=2500
net.inet.udp.blackhole=1
net.inet.udp.log_in_vain=1
net.inet.tcp.always_keepalive=1
net.inet.udp.blackhole=1
net.inet.raw.maxdgram=65536
net.inet.raw.recvspace=65536

net.inet.tcp.blackhole=2
net.inet.tcp.delayed_ack=1
net.inet.tcp.inflight.enable=1
net.inet.tcp.inflight.debug=0
net.inet.tcp.inflight.rttthresh=10
net.inet.tcp.inflight.min=6144
net.inet.tcp.inflight.max=1073725440
net.inet.tcp.inflight.stab=20

net.local.stream.sendspace=65536
net.local.stream.recvspace=65536
net.inet.tcp.sendspace=32768
net.inet.tcp.recvspace=65536
net.inet.udp.maxdgram=24576
net.inet.udp.recvspace=49152

net.inet.ip.rtexpire=3600
net.inet.ip.rtminexpire=2

net.inet.ip.random_id=1
net.inet.icmp.icmplim=100
net.inet.icmp.icmplim_output=1
net.inet.icmp.drop_redirect=1
net.inet.icmp.log_redirect=1

net.inet.tcp.keepidle=600000
net.inet.ip.redirect=0
net.isr.direct=1
net.inet.ip.intr_queue_maxlen=4096

kern.ipc.shm_use_phys=1
net.inet.ip.fastforwarding=1

vfs.hirunningspace=4194304
vfs.ufs.dirhash_maxmem=33554432 # 32MB
vfs.write_behind=0
security.bsd.see_other_uids=1
security.bsd.see_other_gids=1

设置完成以后reboot机器。
如果要不重启机器加载改动的参数还可以使用:
# /etc/rc.d/sysctl reload


现在ArthurXF本人正在搞PHP等技术培训,如果想学习的人可以跟我联系。另外培训的招生简章在这个网址,想了解的可以去看看。加我QQ:29011218交流也可。
PHP培训招生简章
分页: 19/20 第一页 上页 14 15 16 17 18 19 20 下页 最后页 [ 显示模式: 摘要 | 列表 ]