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していました。
何がどう悪いのか見当さえ付けられていません。
よろしくお願いします。
No.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月特集記事
自体を拝見していないため、ここで終いです。
回答ありがとうございます。出張でメール見れませんでした、すみません。
2週間のブランク明けなので、いろいろ思い出しながら、「はじめに~その3」を追っていってます。
>上の情報を元にトレース&分析頑張れ!
頑張ります!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perlのflock関数でロックをかけたままopen関数で何度もファイルを開きなおすことはできますか 3 2023/05/01 22:25
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- ダイヤルアップ Raspberry Piでアナログモデム経由で音声再生 1 2022/05/20 18:01
- CGI htmlからパラメータで、cgiに渡したい。 1 2023/02/06 16:15
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- Visual Basic(VBA) Access VBAから使用したExcelプロセスを閉じる方法について 4 2022/06/08 17:50
- ドライブ・ストレージ SSDを追加したら昔のHDDがおかしくなった 4 2023/03/23 13:25
- Excel(エクセル) excelvbaのenableeventsについて 3 2022/08/30 11:20
- C言語・C++・C# c言語の問題の説明、各所ごとに 5 2023/07/26 11:03
- プリンタ・スキャナー キャノンmp490プリンター【エラー番号5400】で【プリンタートラブルが発生しました。電源を入れ直 2 2023/07/24 17:45
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
パフォーマンスモニタの%Proces...
-
/dev/nvme0n1p2 clean と表示さ...
-
/proc/sys/net/ipv4/route/flus...
-
率直な質問です!
-
どうしてwindowsはMacと比べ動...
-
エラー”Illegal seek”はどんな...
-
Windows7はVistaの何倍重くなり...
-
romfsってなんですか?
-
mac OSは、何のプログラミング...
-
割り込み不可能?なプロセスを...
-
ブルースクリーンの原因が「ntk...
-
Windowsのソースコードって非公...
-
最近、よくOpenWall という言葉...
-
kernel 2.4.XX.ELsmp のELって?
-
ザウルス SL-C860のフリーズは...
-
CentOSのアップデートに...
-
ubuntu 初期化について
-
パソコンでゲームをプレイしよ...
-
外部レポジトリとは
-
パッケージとRPMについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
パフォーマンスモニタの%Proces...
-
mac OSは、何のプログラミング...
-
/proc/sys/net/ipv4/route/flus...
-
どうしてwindowsはMacと比べ動...
-
カーネルバッファとは何でしょうか
-
LinuxのDMA転送でのメモリ操作...
-
違いを教えください!!
-
カーネルアップグレード後、una...
-
/dev/nvme0n1p2 clean と表示さ...
-
DATが使えなくなった??
-
Windowsのソースコードって非公...
-
魔改造版Windows 2000をインス...
-
ブルースクリーンの原因が「ntk...
-
romfsってなんですか?
-
CentOS6 の画面サイズの設定
-
UNIXとBSDとLinuxの違いを小学...
-
RedHat Ferora2とは?
-
PCカードが認識しない・・・
-
キュー最大サイズ値の変更
-
Linuxでcrcエラー?
おすすめ情報