免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12
最近访问板块 发新帖
楼主: 日落月升
打印 上一主题 下一主题

安装系统时有没有做硬件探测和配置? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-05-02 01:58 |只看该作者
原帖由 HonestQiao 于 2006-8-24 00:03 发表

BSD的内核可以配置支持的设备。
而且很多设备也可以安装驱动。

在通常情况下,BSD的默认将支持常见的通用的设备。

所以很多时候为了更高的效率,我们自己设定编译符合自己设备的内核,把不需要的设备支持去掉。

我一直对 FreeBSD 、Linux 类的“编译内核”这个概念感到不可理解。内核是我们(普通)用户可以随便编译的吗?
举例来说, MS-DOS 的内核是 MSDOS.SYS 这个文件(对 6.22 及以前的版本来说),我要更改 MS-DOS 的内核就要更改 MSDOS.SYS 这个文件,这不是我这个普通用户能做到的。那么重新编译 FreeBSD 的内核是个什么概念,难道说我要把 FreeBSD 的几个内核文件重新用编译器把源代码重新编译一下?
还有与此相关的一个概念是如何添加/删除驱动程序?是类似于 DOS 下的编辑一下 config.sys 这个文本文件就可以了(当然有具体的驱动文件),还是要把相关的驱动程序的源代码加到内核文件的源代码中用编译器重新编译一下?

论坛徽章:
0
12 [报告]
发表于 2008-05-04 15:18 |只看该作者
原帖由 DOSforever 于 2008-5-2 01:58 发表

我一直对 FreeBSD 、Linux 类的“编译内核”这个概念感到不可理解。内核是我们(普通)用户可以随便编译的吗?
举例来说, MS-DOS 的内核是 MSDOS.SYS 这个文件(对 6.22 及以前的版本来说),我要更改 MS-D ...


你说的MSDOS的那个sys文件是什么类型的东西我不太清楚,文本文件??
但是Linux的内核是一个二进制文件,这个二进制文件是从一堆源代码编译得来的,该二进制文件可以被硬件执行,这就是Linux的内核大概的样子。

对于驱动也是这样,在Linux下,驱动是内核的一部分,也是二进制文件。只不过为了各种方便的理由,有人发明了内核模块这种机制。这样就不一定要和内核一起编译了,可以单独把驱动模块插入到内核中。

所以编译内核就是指把内核的源代码那来然后用C编译器给编译了,最后出来一个二进制文件。

FreeBSD不太清楚,应该类似吧

论坛徽章:
0
13 [报告]
发表于 2008-05-04 15:30 |只看该作者
对于硬件的支持,你可以理解为FreeBSD已安装了所有它能支持的所有硬件的驱动程序了。所能支持的硬件列表已在HARDWARE.HTM文件里列出来了。

编译内核是因为默认安装的内核不支持新的硬件,你通过编辑内核配置文件,生成新的内核文件,使系统能使用上新的硬件。

例如一台服务器有个千兆网卡,在安装系统时默认内核未能识别到并进行配置。
那么,你在安装时记得把内核的源码安装到系统里。安装结束后,打开机箱找网卡芯卡的名字,假设你找到了如3Com 3c996-SX, 3c996-T这样的名字,并在HARDWARE.HTM文件丑找到了这个芯片对应的设备名为 bge 。
转到目录 /usr/src/sys/i386/conf ,复制默认的内核配置文件GENERIC为
new_kernel ,再修改new_kernel这个文件,在文件的最后一行,或是在配置网络那一段的代码后加都行。增加如
device bge
这一行,保存退出就可以开始编译内核了
一系列命令是
config new_kernel        #这是通过配置文件生成编译的环境,如目录、目标文件
cd ../../compile/new_kernel
make depend                #生成一些预编译文件
make                        #开始编译内核
make install                #安装内核

reboot 重启系统
在系统启动时,你会看到很多系统发现的硬件信息,正常情况下你会看到新网卡的相关信息。
如果信息过得太快,你可以用命令 dmesg | more 慢慢看

你要删除一个硬件的支持就是要这一样,把相应的硬件配置行从 new_kernel 里删除重新编译一次就行了。至于驱动程序的文件,你不用删它,它只是占点磁盘空间而已,它是不会出现在内在里的。

编译内核支持新的硬件,这只是很简单的说法。编译内核不仅是增加新硬件的支持,也是可以增加新的系统功能,如
options         MSDOSFS #让系统能访问FAT文件系统

options        SMP        #让系统使用多CPU
options        APIC_IO

pseudo-device   bpf        #让系统能使用dhcp软件,分发IP地址

更多的内容,你可以看看FreeBSD的 hardbook ,这有中文的
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP