读书频道 > 系统 > linux > 深度探索Linux操作系统系统构建和原理解析
3.3.5 配置硬盘控制器驱动
2013-09-28 16:42:55     我来说两句 
收藏    我要投稿   
全书一共8章:第1章介绍了如何准备工作环境。在第2章中构建了编译工具链,这是后面构建操作系统各个组件的基础。在这一章中,不仅详细讲解了工具链的构建过程,而且还通过对编译链接过程的探讨,深入讨论了工具链  立即去当当网订购

一般而言,PC的根文件系统都保存在硬盘上,因此,我们需要配置内核的硬盘驱动。在笔者写作这本书时,大多数现代PC都使用SATA接口的硬盘,SATA硬盘基本已经全面取代了IDE硬盘。因此,我们以SATA硬盘为例,讨论内核中硬盘驱动的配置。关于SATA控制器驱动的配置,需要从三个方面考虑。

(1)硬盘控制器的接口

SATA控制器使用的是PCI接口,挂在PCI总线上,所以首先需要配置内核支持PCI总线。

可以使用lspci命令查看SATA硬盘的相关信息。下面以笔者机器为例,执行lspci命令输出的关于SATA控制器的相关信息:
root@baisheng:~# lspci –v
00:1f.2 SATA controller: Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller (rev 04) (prog-if 01 [AHCI 1.0])
...
Kernel driver in use: ahci

显然,在0号PCI总线上,有一个SATA控制器,工作模式为AHCI,使用的内核驱动是ahci。

(2)与SCSI层之间的关系

在内核中,SATA设备被实现为一个SCSI设备,如图3-11所示。

 

因此,虽然目标机器上可能没有SCSI设备,但是如果要支持SATA控制器,内核也要配置支持SCSI。

(3)底层设备驱动

在图3-11中,内核将SATA驱动从逻辑上划分为两层:

SATA Translation,这一层负责SCSI和SATA协议之间的翻译,在SATA驱动中被封装为libata模块。

Low Level Device Driver,在SATA Translation层下,是直接面对设备的底层驱动。很多SATA控制器均提供两种可选模式:一种是模拟传统的IDE,通常称为Compatibility模式,这种模式是为了向后兼容那些较早的不支持SATA的操作系统;另外一种是AHCI模式,这种模式可以提供更好的性能及传输速度。对于Intel的SATA控制器来说,内核为这两种不同的模式分别实现了驱动:ata_piix和ahci。ata_piix驱动用于Compatibility模式,ahci驱动用于AHCI模式。

从kbuild中有关SATA的Kconfig中,我们也可以清楚地看到SATA控制器对PCI和SCSI的依赖:
linux-3.7.4/drivers/ata/Kconfig:
menuconfig ATA
    tristate "Serial ATA and Parallel ATA drivers"
    ...
    select SCSI
    ...
config SATA_AHCI
    tristate "AHCI SATA support"
    depends on PCI
    ...
config ATA_PIIX
    tristate "Intel ESB, ICH, PIIX3, PIIX4 PATA/SATA support"
    depends on PCI

先看配置项ATA,正如配置中的描述“Serial ATA and Parallel ATA drivers”,这一项对应于SATA和PATA设备。注意其中用黑体标识的部分,这一配置项是依赖SCSI的而且ATA是选择(select)依赖SCSI。也就是说,一旦配置内核支持ATA设备,kbuild将自动选中内核的SCSI支持。

再来看配置项SATA_AHCI和ATA_PIIX,这两项对应的就是前面所说的SATA控制器的驱动,SATA_AHCI用于驱动AHCI模式,ATA_PIIX用于驱动Compatibility模式。根据上面我们用黑体标示的部分,可以清楚地看到,这两项均要求内核支持PCI总线。

下面我们就具体配置这三个部分。

点击复制链接 与好友分享!回本站首页
分享到: 更多
您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:3.3.4 配置内核支持模块
下一篇:1. 配置PCI总线
相关文章
图文推荐
3.3.6 GNOME的软件管
3.3.5 GNOME的文件管
3.3.4 GNOME的窗口管
3.3.3 收藏夹和快捷
排行
热门
文章
下载
读书

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做最好的IT技术学习网站