プロが教える店舗&オフィスのセキュリティ対策術

Linuxのデバイスドライバの作り方の勉強を始めました。
まず、CQ出版Interfaceの2002年2月特集記事から、サンプルドライバとアプリケーションプログラムをコーディングして、動かしてみました。

Linuxは、Red Hat7.2Jを使っています。

<1> 作成したスペシャルデバイスの"/dev/wildio0" をopen → ioポートをread → close
<2> open → ioポートをread → "Illegal seek"が発生 → close
<3> EXEプログラムを終了 → EXEプログラムを実行open → ioポートをread
  このときには、"Illegal seek"は発生せず、"Success"です。

作成したドライバの#lsmodのUsed数も確認したのですが、openで+1、closeで-1していました。

何がどう悪いのか見当さえ付けられていません。
よろしくお願いします。

A 回答 (1件)

準備するもの:


linux kernelのソースコード

はじめに:
ソースコードを追うのに、文字列化されたエラーメッセージだと不便極まります。
メッセージではなく、エラーナンバーとしてそのエラーを確保するのが第一歩。

linux/include/arch/error.h
#defineESPIPE29/* Illegal seek */

このESPIPEを手がかりに追います。

その2:
ESPIPEをキーにカーネルソース、デバイスドライバのコードを検索。(grepでも何でも使って)
カーネルソースだと

linux/fs/...
linux/fs/devfs/....

あたりのものが関係あるかも?

その3:
上の情報を元にトレース&分析頑張れ!

わたしが
>CQ出版Interfaceの2002年2月特集記事
自体を拝見していないため、ここで終いです。
    • good
    • 0
この回答へのお礼

回答ありがとうございます。出張でメール見れませんでした、すみません。
2週間のブランク明けなので、いろいろ思い出しながら、「はじめに~その3」を追っていってます。

>上の情報を元にトレース&分析頑張れ!
頑張ります!

お礼日時:2002/09/24 09:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!