Linux中国  设为主页
 收藏本站
 
当前位置: > 首页 ->Linux技术 ->内核研究 ->配置FreeBSD内核
  相关分类: 
入门与提高
系统管理
网络应用
嵌入式系统
内核研究
服务器相关
发行版专区
Linux程序设计
Linux安全
BSD相关
桌面应用
  站内搜索: 
热门文章排行
热门文章排行 一次即大功告成 Linux内核升级全过程(04-19)
使用 Linux 系统调用的内核命令 (04-22)
推荐:Linux用户态与内核态的交互(04-11)
Linux内核配置选项 (04-22)
Linux 2.6 内核的 Initrd 机制解析(04-11)
精采文章排行
精采文章排行 使用 Linux 系统调用的内核命令 (04-22)
Linux 和对称多处理 (04-22)
Relay:一种高效的数据传输技术 (04-22)
使用 SystemTap 调试内核 (04-22)
配置FreeBSD内核 (04-22)
  ·Linux 和对称多处理 ·Relay:一种高效的数据传输技术 ·使用 SystemTap 调试内核 ·配置FreeBSD内核 ·在FreeBSD4.x中制作启动菜单 ·制作软盘上运行的FreeBSD系统 ·FreeBSD光盘运行版的制作过程 ·制作RAMDISK in KERNEL的NetBSD ·制作RAMDISK in KERNEL的OpenBSD

配置FreeBSD内核

作者:顾宏军    来源:cnfug   点击:   日期:2007-04-22 [收藏] [投稿]

  IE是否经常中毒?推荐您


#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
# USB Ethernet, requires mii
#device aue # ADMtek USB ethernet
#device cue # CATC USB ethernet
#device kue # Kawasaki LSI USB ethernet

支持多种USB 设备。

更多有关FreeBSD 支持的设备请参考/usr/src/sys/i386/conf/LINT 。

----------------------------------------------------------------------

9.4.1 大内存配置 (PAE:物理内存扩展)

大内存的机器是特指内存数超过4G(被用户和内核逻辑地址总和所限)的机器。为
解决这个问题,Intel在 Pentium Pro及其之后的CPU中加入了36位物理地址空间寻址能力。

加入了PAE功能的Intel Pentium Pro及其后的cpu允许内存最大可配置到64G。FreeBSD
(4。x系列从4。 9RELEASE开始,5.X系列从5.1-RELEASE开始)通过内核配置参数PAE
提供这种容量扩展支持。由于年存储体系 结构的局限性,多于和少于4g没多少差别;
超过4g的那部分内存只是添加到可用内存池里。

要加入PAE支持,只要在内核配置文件中加入如下一行即可:

options PAE

注意: FreeBSD 中的PAE支持只对Intel IA-32 处理器有效。另外,FreeBSD中的PAE
支持还没有经过广泛 的测试, 应该和其它stable版的特性一样看做是beta级别的。

FreeBSD中的PAE支持有以下一些局限:

* 进程没办法访问超过4g的内存。

* 由于构建模块和内核的框架(framework)的不同,KLD不能在使用了PAE的内核中使用。

* 不使用bus_dma接口设备驱动,在使用了PAE支持的内核上,可能引起data corruption,
并且不被推荐 使用此类驱动。因此,在支持PAE的5。x中,内核将拒绝所有对PAE而言
无法识别的驱动。

* 有些系统参数能依据总的可用内存调节系统内存资源的使用。 这些微调不需要依据PAE
系统的内存大 小来分配。举一个kern.maxvnodes sysctl的例子,它控制了内核最大允许的
vnodes数。 调整它以及其它类似 参数需要慎重考虑,以设置为一个合理的数值。

* 也许应该增大内核虚拟地址空间或者说是减少所有对内核资源的严重消耗,以避免KVM不
够用。内核参 数KVA_PAGES 能用来增加KVA空间的大小.

对于所关心的性能及稳定性的问题,可以查看tuning的man手册。pae的man手册有FreeBSD的
PAE支持最新信息 。

----------------------------------------------------------------------

9.5 Making Device Nodes

注意:5。0或其后续版本的用户应该略过这一节。因为它们使用devfs来自动的分派设备节点。

几乎内核中的每个设备在/dev 目录下都有对应的节点。这些节点看上去是些普通文件,
但事实上是程序在使用对应的设备时,与内核联系的接入点。当你一开始安装操作系统时,
脚本/dev/MAKEDEV就已经执行,并创建了常见的支持的设备节点。然而,它并没有建立
所有设备,所以当你加入对新设备的支持时,注意确信对应的节点在这个目录下。如果没有,
就加入它们。这儿是一个简单的例子:

假设在内核中加入IDE CD-ROM 的支持。可以这样加入:

device acd0

这意味着你该在/dev 目录下找一些以acd0 为文件名的开头的文件,通常是后面跟一个字母,
象c或是以r开头(表示这是一个raw 设备).那些文件不存在,则必须到/dev目录执行以下命令:

# sh MAKEDEV acd0

当这些脚本完成后,在/dev 目录下有acd0c 和racd0c 等几个入口文件,表示程序已经正确执行。

以下是加入声卡节点的例子:

# sh MAKEDEV snd0

注意:当创建完诸如声卡这样的设备节点时,如果其它人有权访问你的机器,可能有
必要在/etc/fbtab 文件中添加这些节点来保护系统安全。具体实施可以参考fstab的手册页。

依上述的方法,建立所有不在GENERIC 里的硬件设备节点。

注意: 所有的SCSI 控制器都使用一样的设备节点,所以你无须重新建立节点。另外,
网卡与SLIP/PPP 虚拟设备并没有任何设备节点,所以你不必担心节点问题。

----------------------------------------------------------------------

9.6 出现问题怎么办?

在定制一个内核时,可能会出现五类问题。它们是:

配置错误:

当你给config 命令传递你的内核描述时出错,你可能在某个地方发生了一个小错误。
幸运的是,config会显示出错的那一行的行号,你能很快找到出错地点并用vi
编辑器做修改。例如,如果你 看到:

config: line 17: syntax error

你可以在vi 的命令模式输入17G 来跳到17 行(也就是出错的那行)。和比较GENERIC
内核或其它参考资料, 以确定你没有打字错误。

编译错误:

如果编译命令失败,通常会在你的内核描述中提示一个错误,但config并没有能力找出
错误。另外,查看一下你的配置信息,如果你仍然无法解决这个问题,可以把你的
内核配置文件发到FreeBSD 常规问题邮件列表<freebsd-questions@FreeBSD.org>,
它将很快地被解决。

安装新内核失败:

如果内核编译成功,但安装失败(make install 或是 make installkernel 命令失败),
第一件要检查的事情就是你的系统运行的安全级别是否是 1或更高。内核的安装需要
移除内核的不可变信号 量,并用新内核的不可变信号量代替。而securelevel 1或
更高时,是不允许任何对系统不可变信号量的改变 ,内核的安装需要在securelevel 0
或更低时才能完成。

内核无法启动:

如果你的新内核无法启动,或无法识别你的硬件,不要担心!幸运的是,FreeBSD 有一个
很棒的从错误内核恢复的机制。简单的说就是,从FreeBSD 的启动loader 中,选择一个
你要使用的内核。在 系统时间从10开始倒计时时,按下除Enter 之外的任何键, 输入
unload然后输入 boot kernel.old, 或者其 它任何能准确引导的内核的文件名字.当
配置一个内核时,记得在手头保留一个能正常启动的内核是个好主意 。

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<

上一页 1 2 3 4 5 6 78 下一页

上一篇:在FreeBSD4.x中制作启动菜单   下一篇:使用 SystemTap 调试内核
文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论

   相关文章:
·使用 Linux 系统调用的内核命令

   文章评论:(1条)
  
 请留名: 匿名评论   点击查看所有评论 论坛讨论
 

 声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。