JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
デバイスドライバの記述     Oracle Solaris 11.1 Information Library (日本語)
このドキュメントの評価
search filter icon
search icon

ドキュメントの情報

はじめに

パート I Oracle Solaris プラットフォーム用デバイスドライバの設計

1.  Oracle Solaris デバイスドライバの概要

2.  Oracle Solaris カーネルとデバイスツリー

3.  マルチスレッド

4.  プロパティー

5.  イベントの管理とタスクのキュー

6.  ドライバの自動構成

7.  デバイスアクセス: プログラム式入出力

8.  割り込みハンドラ

9.  ダイレクトメモリーアクセス (DMA)

10.  デバイスメモリーおよびカーネルメモリーのマッピング

11.  デバイスコンテキスト管理

12.  電源管理

13.  Oracle Solaris ドライバの強化

14.  階層化ドライバインタフェース (LDI)

パート II 特定の種類のデバイスドライバの設計

15.  文字デバイスのドライバ

16.  ブロックデバイスのドライバ

17.  SCSI ターゲットドライバ

18.  SCSI ホストバスアダプタドライバ

19.  ネットワークデバイスのドライバ

20.  USB ドライバ

21.  SR-IOV ドライバ

パート III デバイスドライバの構築

22.  ドライバのコンパイル、ロード、パッケージ化、およびテスト

23.  デバイスドライバのデバッグ、テスト、およびチューニング

24.  推奨されるコーティング方法

パート IV 付録

A.  ハードウェアの概要

B.  Oracle Solaris DDI/DKI サービスのサマリー

C.  64 ビットデバイスドライバの準備

D.  コンソールフレームバッファードライバ

Oracle Solaris コンソールとカーネル端末エミュレータ

x86 プラットフォームのコンソール通信

SPARC プラットフォームのコンソール通信

コンソールの視覚的な入出力インタフェース

入出力制御インタフェース

ポーリングされた入出力インタフェース

ビデオモード変更コールバックインタフェース

コンソールフレームバッファードライバでの視覚的な入出力インタフェースの実装

VIS_DEVINIT

VIS_DEFINI

VIS_CONSDISPLAY

VIS_CONSCOPY

VIS_CONSCURSOR

VIS_PUTCMAP

VIS_GETCMAP

コンソールフレームバッファードライバでのポーリングされた入出力の実装

フレームバッファー固有の構成モジュール

X Window System のフレームバッファー固有の DDX モジュール

コンソールフレームバッファードライバの開発、テスト、およびデバッグ

入出力制御インタフェースのテスト

ポーリングされた入出力インタフェースのテスト

ビデオモード変更コールバック関数のテスト

コンソールフレームバッファードライバをテストするための追加の提案

E.  pci.conf ファイル

索引

ドキュメントの品質向上のためのご意見をください
簡潔すぎた
読みづらかった、または難し過ぎた
重要な情報が欠けていた
内容が間違っていた
翻訳版が必要
その他
Your rating has been updated
貴重なご意見を有り難うございました!

あなたの貴重なご意見はより良いドキュメント作成の手助けとなります 内容の品質向上と追加コメントのためのアンケートに参加されますか?

コンソールフレームバッファードライバの開発、テスト、およびデバッグ

アクティブなシステム上でのコンソールフレームバッファードライバのデバッグでは、問題が発生する場合があります。

このセクションでは、コンソールフレームバッファードライバの開発、テスト、およびデバッグに役立ついくつかの提案を示します。

入出力制御インタフェースのテスト

ioctl コマンドをテストするには、ユーザーアプリケーションから呼び出し可能な追加の ioctl エントリポイントを作成します。引数を適切にコピーする必要があります。ユーザーアドレス空間との間でデータを転送するには、ddi_copyin(9F) ルーチンと ddi_copyout(9F) ルーチンを使用します。次に、描画、スクロール、およびカーソル動作を検証するためのアプリケーションを記述します。これによって、これらの ioctl コマンドの開発またはテスト中にコンソールが影響を受けることはなくなります。

ioctl コマンドが正しく機能することを確認するには、システムをブートしてログインします。prstat(1M)、ls(1)、vi(1)、man(1) などのコマンドを実行したときに予期した動作が得られるかどうかをチェックします。

ANSI カラーが正しく機能することを検証するには、次のスクリプトを実行します。

#!/bin/bash
printf "\n\n\n\e[37;40m             Color List       \e[m\n\n"
printf "\e[30m Color 30 black\e[m\n"
printf "\e[31m Color 31 red\e[m\n"
printf "\e[32m Color 32 green\e[m\n"
printf "\e[33m Color 33 yellow\e[m\n"
printf "\e[34m Color 34 blue\e[m\n"
printf "\e[35m Color 35 purple\e[m\n"
printf "\e[36m Color 36 cyan\e[m\n"
printf "\e[37m Color 37 white\e[m\n\n"
printf "\e[40m Backlight 40 black \e[m\n"
printf "\e[41m Backlight 41 red   \e[m\n"
printf "\e[34;42m Backlight 42 green \e[m\n"
printf "\e[43m Backlight 43 yellow\e[m\n"
printf "\e[37;44m Backlight 44 blue  \e[m\n"
printf "\e[45m Backlight 45 purple\e[m\n"
printf "\e[30;46m Backlight 46 cyan  \e[m\n"
printf "\e[30;47m Backlight 47 white \e[m\n\n"

ポーリングされた入出力インタフェースのテスト

ポーリングされた入出力インタフェースは、次の状況でのみ使用できます。

ポーリングされた入出力インタフェースは、ブートプロセス内の特定の時点でのみ使用可能になります。システムが稼働する前に OpenBoot PROM から発行され、ポーリングされた入出力要求は描画されません。同様に、コンソールが構成される前に発行された kmdb プロンプトは描画されません。

ポーリングされた入出力インタフェースをテストするには、L1+A のキーストロークシーケンスを使用して OpenBoot PROM に入ります。ポーリングされた入出力インタフェースが使用されていることを検証するには、OpenBoot PROM の ok プロンプトで次のコマンドを入力します。

ok 1b emit ." [32m This is a test" 1b emit ." [m"

次の文章の内容が当てはまる場合、ポーリングされた入出力インタフェースは正しく機能しています。

ビデオモード変更コールバック関数のテスト

ビデオモード変更コールバック関数が正しく機能するかどうかを判定するには、システムにログインし、fbconfig(1M) を使用して解像度とフレームバッファーの深さを複数回変更します。コンソールにテキストが引き続き正しく表示される場合、ビデオモード変更コールバック関数は正しく機能しています。異なる画面サイズに対応するためにカーネル端末エミュレータがフォントサイズを調整する可能性がありますが、それはコンソールフレームバッファードライバにとって重大な問題ではありません。

X Window System とコンソールフレームバッファードライバが相互に正しく作用しているかどうかを判定するには、X Window System のビデオ解像度とコマンド行の解像度を異なる方法で変更しているときに、X Window System とコマンド行を複数回切り換えます。X Window System が終了したときにコンソール文字が正しく表示されない場合は、X Window System がドライバのコンソールコードにビデオモードが変更されたことを通知しなかったか、またはドライバがカーネル端末エミュレータのビデオモード変更コールバック関数を呼び出さなかったかのどちらかです。

コンソールフレームバッファードライバをテストするための追加の提案

ブート中に、システムがカーネル端末エミュレータと互換性があるフレームバッファードライバを見つけられないか、または正常にロードできなかった場合、システムは /var/adm/messages にメッセージを送信します。これらのメッセージを監視するには、別のウィンドウで次のコマンドを入力します。

% tail -f /var/adm/messages

ドライバをデバッグしているときの USB に関する問題を回避するには、EEPROM の input-device NVRAM 構成パラメータが、キーボードの代わりにシリアルポートを使用するように変更します。このパラメータの詳細については、eeprom(1M) のマニュアルページを参照してください。