JavaScript is required to for searching.
跳过导航链接
退出打印视图
编写设备驱动程序     Oracle Solaris 11.1 Information Library (简体中文)
为本文档评分
search filter icon
search icon

文档信息

前言

第 1 部分针对 Oracle Solaris 平台设计设备驱动程序

1.  Oracle Solaris 设备驱动程序概述

2.  Oracle Solaris 内核和设备树

3.  多线程

4.  属性

5.  管理事件和排队任务

6.  驱动程序自动配置

7.  设备访问:程控 I/O

8.  中断处理程序

9.  直接内存访问 (Direct Memory Access, DMA)

10.  映射设备和内核内存

11.  设备上下文管理

12.  电源管理

13.  强化 Oracle Solaris 驱动程序

14.  分层驱动程序接口 (Layered Driver Interface, LDI)

第 2 部分设计特定种类的设备驱动程序

15.  字符设备驱动程序

16.  块设备驱动程序

17.  SCSI 目标驱动程序

18.  SCSI 主机总线适配器驱动程序

19.  网络设备驱动程序

20.  USB 驱动程序

21.  SR-IOV 驱动程序

第 3 部分生成设备驱动程序

22.  编译、装入、打包和测试驱动程序

23.  调试、测试和调优设备驱动程序

24.  推荐的编码方法

第 4 部分附录

A.  硬件概述

B.  Oracle Solaris DDI/DKI 服务汇总

C.  使设备驱动程序支持 64 位

D.  控制台帧缓存器驱动程序

Oracle Solaris 控制台和内核终端仿真器

x86 平台控制台通信

SPARC 平台控制台通信

控制台可视化 I/O 接口

I/O 控制接口

轮询式 I/O 接口

视频模式更改回调接口

在控制台帧缓存器驱动程序中实现可视化 I/O 接口

VIS_DEVINIT

VIS_DEFINI

VIS_CONSDISPLAY

VIS_CONSCOPY

VIS_CONSCURSOR

VIS_PUTCMAP

VIS_GETCMAP

在控制台帧缓存器驱动程序中实现轮询式 I/O

特定于帧缓存器的配置模块

特定于 X 窗口系统帧缓存器的 DDX 模块

开发、测试和调试控制台帧缓存器驱动程序

测试 I/O 控制接口

测试轮询式 I/O 接口

测试视频模式更改回调函数

有关测试控制台帧缓存器驱动程序的其他建议

E.  pci.conf 文件

索引

请告诉我们如何提高我们的文档:
过于简略
不易阅读或难以理解
重要信息缺失
错误的内容
需要翻译的版本
其他
Your rating has been updated
感谢您的反馈!

您的反馈将非常有助于我们提供更好的文档。 您是否愿意参与我们的内容改进并提供进一步的意见?

Oracle Solaris 控制台和内核终端仿真器

内核终端仿真器的作用是按照帧缓存器的屏幕高度、宽度和像素深度模式确定的正确位置和表示法在控制台帧缓存器中呈现文本。终端仿真器还可以驱动滚动、控制软件光标,以及解释 ANSI 终端转义序列。终端仿真器以 VGA 文本模式或像素模式访问控制台帧缓存器,具体取决于图形卡。要将您的帧缓存器驱动程序用作 Oracle Solaris 控制台帧缓存器驱动程序,它必须与 Oracle Solaris 内核终端仿真器兼容。目标平台是最重要的因素,它决定了您是否需要修改帧缓存器驱动程序,以使您的驱动程序与 Oracle Solaris 内核终端仿真器兼容。

x86 平台控制台通信

在 x86 平台上,Oracle Solaris 内核终端仿真器模块 (terminal emulator module, tem) 以独占方式使用 VGA 文本模式与 vgatext 模块进行交互。vgatext 模块使用行业标准 VGA 文本模式与 x86 兼容的帧缓存器设备进行交互。由于 vgatext 模块已经支持控制台帧缓存器接口,因此 x86 帧缓存器驱动程序与内核 tem 模块兼容。不需要向 x86 帧缓存器驱动程序添加任何特殊的接口。

本附录的其余部分仅适用于 SPARC 平台。

SPARC 平台控制台通信

SPARC 帧缓存器驱动程序通常不在 VGA 文本模式下运行。SPARC 帧缓存器驱动程序通常需要发送像素图案,以描述显示的文本和图像。内核 tem 要求 SPARC 驱动程序支持特定的接口,以便在屏幕上呈现数据、执行滚动和显示文本光标。驱动程序实际上如何在屏幕上呈现 tem 发出的数据取决于具体的设备。驱动程序通常根据硬件和视频模式在视频内存中绘制数据。

Oracle Solaris OS 提供的一些接口使内核终端仿真器能够直接驱动兼容的控制台帧缓存器。将驱动程序转换为与内核终端仿真器兼容的好处在于:

SPARC 控制台帧缓存器驱动程序不需要与内核终端仿真器兼容。如果控制台帧缓存器驱动程序不与内核终端仿真器兼容,系统将使用 OpenBoot PROM 中的 FCode 终端仿真器。

控制台帧缓存器通过 EEPROM screen 环境变量进行识别。系统通过检查帧缓存器驱动程序是否导出 tem-support DDI 属性,来确定控制台帧缓存器是否与内核终端仿真器模块兼容。如果导出了 tem-support 属性,则系统将在系统引导过程中配置控制台时对帧缓存器驱动程序发出 VIS_DEVINIT I/O 控制 (ioctl) 命令。如果导出了 tem-support DDI 属性,同时 VIS_DEVINIT ioctl 命令成功并向 tem 返回了兼容版本号,那么,系统会将系统控制台配置为通过内核终端仿真器利用该帧缓存器驱动程序。有关 I/O 控制驱动程序入口点的信息,请参见 ioctl(9E) 手册页。

支持内核终端仿真器的 SPARC 驱动程序应导出 tem-support DDI 属性。该属性表示驱动程序支持内核终端仿真器。如果帧缓存器驱动程序导出了 tem-support DDI 属性,则早在引导过程中配置控制台时就将会处理该驱动程序。如果帧缓存器驱动程序未导出 tem-support 属性,则在引导过程中,可能不会那么早就处理该驱动程序。

tem-support

设置为 1 时,此 DDI 属性表示此驱动程序与控制台内核帧缓存器接口兼容。

内核终端仿真器模块通过两种主要接口与控制台帧缓存器驱动程序进行交互:

下节将提供详细信息。