12.07.2015 Views

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

RedHawk Linux User's Guide version 6.3 日本語版

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

デバイス・ドライバBKLがロックされないようにデバイス・ドライバを 修 正 することはとても 重 要 です。さもなければ、プロセスは 同 じCPUへ 割 り 当 てられるプログラムや 割 り 込 みへのジッターの 原 因 となり 長 期にわたりBKLスピンロック 上 でスピンが 停 止 する 可 能 性 があります。デバイスのioctlルーチンへのエントリでBKLがロックされないように 指 定 するためのメカニズムは、デバイスのioctlメソッドとしてよりもむしろデバイスのunlocked_ioctlメソッドとしてドライバのioctl 機 能 を 登 録 することです。 以 下 はどのようにしてRCIMデバイスにこのフラグを 設定 するかの 例 です:static struct file_operations rcim_fops = {owner:THIS_MODULE,open:rcim_master_open,release:rcim_master_release,unlocked_ioctl: rcim_master_ioctl,mmap:rcim_master_mmap,};この 変 更 を 行 った 後 、デバイス・ドライバを 再 構 築 する 必 要 があります。 静 的 ドライバに 関 しては、これはカーネル 全 体 を 再 構 築 することを 意 味 します。 動 的 にロード 可 能 なモジュールに 関 しては、そのモジュールだけを 再 構 築 する 必 要 があります。 詳 細 については「カーネルの 構 成 および 構 築 」 章 を 参 照 して 下 さい。ユーザー 空 間 I/Oドライバドライバ(UIO) 14UIOはユーザー・レベル・ドライバを 記 述 するために 標 準 化 されたメソッドです。これはやはり小 さなドライバ 単 位 のカーネル・モジュールを 必 要 としますが、ドライバの 主 要 部邪 分 は 使 い 慣 れたツールやライブラリを 使 用 してユーザー 空 間 で 記 述 します。UIOを 使 用 すると、 標 準 的 なPCIカードの 取 り 込 みや 任 意 の 目 的 のために 簡 単 なユーザー 空 間 ドライバを 作 ることが 可 能 となります。これらのドライバは 実 装 やテストが 容 易 でありカーネルのバージョン 変 更 から 分 離 されています。そのドライバのバグはカーネルをクラッシュすることはなく、ドライバのアップデートはカーネルの 再 コンパイルなしに 行 うことが 可 能 です。現 在 、UIOドライバはキャラクタ・デバイス・ドライバだけに 使 用 することが 可 能 でユーザー 空間 からDMA 操 作 を 提 供 するために 使 用 することは 出 来 ません。小 さなドライバ 単 位 のカーネル・モジュールは 次 が 必 要 となります:• ボードのデバイスIDとベンダーIDが 一 致• 低 レベルでの 初 期 化 を 実 行• 割 り 込 みの 応 答一 旦 所 有 ハードウェア 用 に 動 作 するカーネル・モジュールを 所 有 してしまえば、ユーザー・アプリケーションを 記 述 するために 通 常 使 用 されるツールやライブラリを 使 用 してユーザー 空 間 ドライバを 記 述 することが 可 能 となります。lsuio(1)ツールはUIOデバイスとその 属 性 をリストアップするために 使 用 することが 可 能 です。各 UIOデバイスはデバイスファイル/dev/uio0, /dev/uio1などを 介 してアクセスします。 変 数 の 読み 書 きをするために 使 用 されるドライバの 属 性 は、/sys/class/uio/uioXディレクトリの 下 にあります。メモリ 領 域 はmmap(1)を 介 してサクセスされます。UIOデバイス・ドライバを 記 述 するための 完 全 な 説 明 書 は/usr/share/doc/ccur/examples/driver/uio/uio-howto.pdfで 見 ることが 可 能 です。14-15

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!