[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 07/25 01:06 / Filesize : 281 KB / Number-of Response : 941
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

ディバイスドライバをハックしよう!



1 名前:login:Penguin [02/01/31 01:14 ID:t3s191ys.net]
ディバイスドライバの改造、製作にまつわる情報交換、質問、
噂話、ぐち、政治、経済に関するスレです。できる限り生産的にいきましょーや。


557 名前:login:Penguin mailto:sage [2006/12/18(月) 07:35:08 ID:a8xYea1H.net]
最近のデバイスで言うDMAはバスマスタDMAのことだよ。
バスマスタってのはデバイス側が主導権とってバスを制御して
CPUの頭越しにメインメモリにデータ出し入れすることだ。
そのためにはデバイスにバスをのっとってデータ転送しろって命令を
CPUからデバイスに発行する必要がある。

その手続きを知るためにレジスタなりデータシートなりを調べろって
みなさん言ってるんだよ。

558 名前:537 mailto:sage [2006/12/19(火) 00:01:59 ID:2Sv0wv+g.net]
なるほろ、大変勉強になりました。
ハード屋さんからマニュアルゲットして
がんばってみます。


559 名前:login:Penguin [2006/12/19(火) 23:53:27 ID:g20RCuxU.net]
>>537
つ ttp://www.oreilly.co.jp/books/4873112532/


560 名前:login:Penguin mailto:sage [2006/12/27(水) 05:38:58 ID:krfJbXj5.net]
すみません ドライバでDMA転送するための連続したメモリ領域(64MB)を確保したいのです。
kmallocで確保可能な連続したDMA領域は最大128kB ということはネットで検索すると出て来たのですが、
どうすればドライバのDMA転送で利用可能な128kBを超えるの連続領域を確保出来るでしょうか?
OSはlinuxカーネル2.6です。
ご存じの方おられましたら御教示戴きたくよろしくお願い致します。

561 名前:login:Penguin mailto:sage [2006/12/27(水) 10:51:31 ID:mQ5aQPBa.net]
>>550
とりあえずそのふざけた石を投げ捨てれ。

やるならalloc_pagesだろうなあ。そのサイズで連続領域を

562 名前:ネ単に確保できるとは思えんが。
ついでに書いておくと128KByte制限は8237の呪いなのでPCIならそんなものはない。

[]
[ここ壊れてます]

563 名前:login:Penguin mailto:sage [2006/12/27(水) 12:43:43 ID:krfJbXj5.net]
投げ捨てぇー…れないorz

>>551
早速ありがとうございます。
検索してても思ったのですが、
なんか連続領域"64MB"っていうのは常識外れっぽいのですね…
とはいえ組込み系で使った独自ロケットI/OのPC向け転用の必要があり、
石を投げ捨てる訳にもいかず今回の質問とあいなりました。
alloc_pages、試してみます!!

回答感謝いたします。
センキュー!!!!

564 名前:login:Penguin mailto:sage [2006/12/28(木) 02:29:39 ID:4Oi09t3r.net]
かなり強引だけど、カーネルオプションで使用メモリ量に制限かけといて、
未使用領域を作った上でそこ使っちゃえば?

565 名前:login:Penguin mailto:sage [2006/12/28(木) 12:33:40 ID:vc2Jrznf.net]
>>553
MMUの面倒は誰が見るですか?

面倒な世の中になったのう…
物理アドレスで完結してりゃなにも考えなくていいのに。




566 名前:login:Penguin mailto:sage [2006/12/29(金) 09:28:41 ID:JbqPlaTm.net]
>>553
アドバイスありがとうございます。
ちょっと恐いですが、検討してみます。

>>554
MMU…よく判ってません…勉強してきます。
ご指摘ありがとうございます。

いろいろレスありがとうございました。
スレの皆様が良い年越しを迎えられますように!!
それでは、また来年!!

567 名前:login:Penguin mailto:sage [2006/12/29(金) 10:44:35 ID:PkRb73AX.net]
RocketIOってことはXilinxのFPGAだよな
だったら128KBのブロックのアドレスポインタリストを渡すと
自動的にリスト通りブロックをたどって転送するように
FPGA回路を再設計するのがまっとうな手段だろうな

デバイスドライバやOS設定の変更ではどうにもならんと思う

568 名前:login:Penguin mailto:sage [2006/12/30(土) 00:07:40 ID:SZb58Bld.net]
カーネル組込みで、ドライバ初期化のときなら確保できそうな気もするな。
開放したら二度と確保できなくなりそうだが。


569 名前:login:Penguin mailto:sage [2007/01/01(月) 22:05:23 ID:uXbHjsPd.net]
明けましておめでとうございます。

さらにレス&アドバイスありがとうございます。
うー勉強不足。知らないこと多過ぎますね!ハードル高いです orz
安定化まで考えると更にハードル上がりそうですが、ハード側とも相談してみます。

それでは本年もよろしくお願いいたします!!

570 名前:login:Penguin mailto:sage [2007/01/19(金) 00:41:46 ID:xhnZtOc/.net]
皆様に聞きたいのですが
当方Linux 2.6カーネルの元でドライバの開発を行っています。
起動してからinsmodでインサートするタイプのモジュールを作っています。
カーネルをフリーズさせたりして固まらせてしまって、やむなくリセットボタンを
押す事が多々あるのですが、その際にファイルシステムのチェックが
強制的に行われてしまい、これでかなりの時間をロスしてしまいます。
何とかこのファイルチェックを飛ばして時間の短縮を行う方法はないでしょうか?

VMwareとかの仮想マシンを使えばいいのかもしれませんが、
特殊命令を使っておりますので、仮想マシンがその命令をサポートしていないために
導入できません。

571 名前:login:Penguin mailto:sage [2007/01/19(金) 02:15:30 ID:VcfRHkiI.net]
>>559
mount -o remount,ro /
とかやって、書き込み不可にしてから遊べばよくね?

572 名前:login:Penguin mailto:sage [2007/01/19(金) 08:04:16 ID:/YcMJPuk.net]
/etc/fstabの6番目のフィールドの値を0にする。man fstabしてみそ。
tune2fsで-c 0とかもしておいたほうがいいかも。


573 名前:login:Penguin mailto:sage [2007/01/19(金) 20:24:37 ID:xhnZtOc/.net]
>>560
でもそれをやると、kmallocをGFP_KERNELで使ったときに
メモリがスワップアウトしたらまずいことになりませんか?

>>561
やってみました

なんかファイルチェックをしなくなったことで壊れそうでもありますが
やっぱり我慢してチェックしたほうがいいでしょうか...

574 名前:login:Penguin mailto:sage [2007/01/20(土) 19:48:34 ID:3aq4dRUa.net]
>>562
/だけ守ればいいので、なりません。

575 名前:login:Penguin mailto:sage [2007/01/21(日) 01:23:20 ID:QaYT7DDq.net]
>>563
ああそうか、swapファイルはswapパーティションですもんね
ありがとうございます



576 名前:login:Penguin mailto:sage [2007/01/27(土) 11:05:03 ID:4J9B+fMX.net]
評価機はネットブートさせてNFSroot稼動させればいつ飛んでも
大丈夫な環境にできるんじゃない?


577 名前:login:Penguin [2007/02/05(月) 06:03:38 ID:9i1Bwf6u.net]
通常、Linuxのドライバをインストールする時はカーネルにパッチを当ててカーネルごと
コンパイルしなければいけないけど、Windowsのようにカーネルソース無しでドライバを
コンパイルしてインストールできるようにする方法ってあるの?

578 名前:login:Penguin [2007/02/05(月) 06:26:04 ID:9i1Bwf6u.net]
ja.wikipedia.org/wiki/%E3%83%A2%E3%83%8E%E3%83%AA%E3%82%B7%E3%83%83%E3%82%AF%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%ABには
現在のカーネルではモジュールをカーネルの構築状態に依存する事なく追加できると
書いてあるけど、カーネル側でインターフェースが変更になった場合は旧ドライバは
使用できなくなるんじゃないの?それとも、カーネル側で旧インターフェースが温存されるの?
あと、「カーネル側に受け皿となるインターフェースがモジュール毎に用意されている必要がある」
Linuxはどのバージョンまでなの?

579 名前:login:Penguin mailto:sage [2007/02/05(月) 06:56:37 ID:Zi/ATtvA.net]
>>566
いまはそんなことしなくていいよ
insmod rmmodで動的にドライバを挿入したり削除したりできる

580 名前:login:Penguin mailto:sage [2007/02/06(火) 01:26:43 ID:j3mwrUGC.net]
いやぁソースはいるだろ。

581 名前:login:Penguin mailto:sage [2007/02/06(火) 08:59:25 ID:jQKQh5/W.net]
ソースはいるけどカーネルのリビルドはいらない

582 名前:login:Penguin mailto:sage [2007/02/06(火) 10:27:34 ID:Rm04tDsq.net]
いやぁリビルドは途中までいるだろ。

583 名前:login:Penguin [2007/02/10(土) 16:03:43 ID:XWBlzb1u.net]
初歩的な質問ですがよろしいでしょうか

私はlinuxカーネル2.6.13のモジュールでhello worldのプログラムを組込みたいのですが上手くいきません

gcc -c module.c -Wall -Wstrict-prototypes -O -pipe -m486

この様にコンパイルしたのですがカーネルのソースコードに構文エラーがあるようでコンパイルが通りません
カーネルのソースコードを見てみても構文エラーらしき物はみられませんでした
どうすればコンパイルが通るでしょうか

エラーメッセージとソースコードを書いておきます

ソースコード
sakuratan.ddo.jp/uploader/source/date32474.c

エラーメッセージ
sakuratan.ddo.jp/uploader/source/date32475.txt

584 名前:login:Penguin mailto:sage [2007/02/10(土) 17:14:52 ID:d+hexa9D.net]
>>572
普通はMakefile書くわな


585 名前:login:Penguin mailto:sage [2007/02/10(土) 17:47:20 ID:a+8l3AD+.net]
Makefileに
obj-m += module.o
って書いて
make -C /usr/src/linux M=$PWD modules



586 名前:login:Penguin [2007/02/10(土) 19:18:09 ID:XWBlzb1u.net]
>>543

そうみたいですね
私のみた資料では、そうコンパイルする様に書いてあったのですが結構古い奴だった
のでしょうか

>>574

本当にありがとうございました。
その方法で無事にモジュールを作れました

感謝感謝


587 名前:542 [2007/02/10(土) 19:55:09 ID:XWBlzb1u.net]
.koってファイルが出てきたらからinsmodにかけてみたら
insmod: error inserting 'module.ko': -1 Invalid module format

って言われワラタ
turbo linuxなんて微妙なの使ってるせいなんですかねこれは.....

588 名前:542 mailto:sage [2007/02/10(土) 20:03:22 ID:XWBlzb1u.net]
今までsage忘れてたごめん

589 名前:login:Penguin mailto:sage [2007/02/10(土) 20:06:01 ID:791EznrY.net]
話題提供時はage、その後はsage
ってのが一番角が立たない。

正直、どうでもいいけど。

590 名前:login:Penguin mailto:sage [2007/02/10(土) 20:14:38 ID:a+8l3AD+.net]
/usr/src/linux が今動いてるカーネルソースじゃないとか

591 名前:542 mailto:sage [2007/02/10(土) 21:33:23 ID:XWBlzb1u.net]
>>579

そうですね
元からあったソースでコンパイルしようとすると必要なMakefileがないとかで無理
でしたから、kernel.orgから同じバージョンのコード落してきてまた設定しなし
いた訳ですがそれが原因ですかね。

ディストリとかは独自の変更を加えているらしいし、また変更が加えられていない
純粋なカーネルインストールしてから出直してきます



592 名前:login:Penguin [2007/02/18(日) 23:17:11 ID:PxJoV1oA.net]
すみません。kmallocで確保したメモリ領域をDMA転送するために、__paで変換して
渡してやるのと、dma_map_singleで変換して渡すのと、違いはあるのでしょうか?
たとえば性能(処理効率)が違うとか? どう使い分けているのでしょうか?


593 名前:login:Penguin mailto:sage [2007/02/19(月) 10:56:01 ID:QHwPPpDN.net]
UNIXTIMEを日付文字列に変換するのに なんかAPI用意されてないの?
"2007/02/19 12:34:56" とかその程度のでいいんだけど。

594 名前:login:Penguin mailto:sage [2007/02/19(月) 11:19:53 ID:I/jMKPR3.net]
strftime

595 名前:login:Penguin mailto:sage [2007/02/19(月) 13:52:20 ID:QHwPPpDN.net]
>>583
いや、デバイスドライバ内でなんだけど、あったっけ? いや、ない。



596 名前:login:Penguin [2007/02/21(水) 07:53:48 ID:Wuryqsb6.net]
Linux 2.6.16用のパッチとe2comprを同時に使いたいのだが、e2comprは2.6.10用まで
しかない。カーネルとドライバが完全に分離され、カーネルバージョンが上がっても
カーネル側の旧インターフェースが温存されるようになれば、ドライバの開発が停滞しても
最新のカーネルでそのドライバを使い続ける事ができる。

597 名前:login:Penguin mailto:sage [2007/02/22(木) 01:34:45 ID:I6i5DnCh.net]
そのカーネル側のABI決めようぜ話はLinusに一蹴されてるんじゃなかったけ?


598 名前:login:Penguin [2007/02/22(木) 09:14:42 ID:y9d4aAAQ.net]
>>586
カーネル側のドライバとして旧バージョンのカーネルのモジュールをロードできる
ラッパーを作成して、カーネル側インターフェースが変更されるたびにラッパーを
更新していく手もあるべ。

599 名前:login:Penguin [2007/02/22(木) 09:16:48 ID:y9d4aAAQ.net]
ラッパーにx86エミュレーションを追加するとザウルスでWindowsのドライバを読み込めたりもする。

600 名前:login:Penguin mailto:sage [2007/02/22(木) 22:34:24 ID:I6i5DnCh.net]
つ NDISwrapper


601 名前:login:Penguin mailto:sage [2007/02/23(金) 00:44:11 ID:cxn/yRhr.net]
つcapative ntfs

602 名前:login:Penguin [2007/04/03(火) 00:09:41 ID:3ycIJVku.net]
<linux/module.h>が無いんだけど、
デバドラ開発するには、なにかパッケージ追加しなきゃいけないの?

使ってるのはfedora6

603 名前:login:Penguin [2007/04/03(火) 00:24:35 ID:3ycIJVku.net]
yum install kernel-devel
してもダメだな。何が足りない?

604 名前:login:Penguin mailto:sage [2007/04/03(火) 00:41:11 ID:xSB1c0Df.net]
>>591
カーネルソースそのものじゃね?

605 名前:login:Penguin [2007/04/03(火) 01:00:14 ID:3ycIJVku.net]
>>593
あ、カーネルソースに有った。ありがとう。

普通、/usr/includeには入らないの?



606 名前:login:Penguin [2007/04/03(火) 01:08:21 ID:3ycIJVku.net]
あと、
man printk
って出ないの?

607 名前:login:Penguin mailto:sage [2007/04/03(火) 02:25:43 ID:xSB1c0Df.net]
>>595
出ないんじゃよ

608 名前:login:Penguin mailto:sage [2007/04/03(火) 02:43:03 ID:GYgStP3Z.net]
>>594
カーネル用ヘッダと、ユーザプログラム用ヘッダは
まざるとまずいから分離されてる。だから/usr/includeにカーネル用ヘッダはふつうは無い。

609 名前:login:Penguin mailto:sage [2007/04/04(水) 00:07:01 ID:NkZt7NAi.net]
/usr/include/linux に入ってないか?鳥にもよるけど。


610 名前:login:Penguin [2007/04/04(水) 00:15:23 ID:wyW6RdvI.net]
カーネル用ヘッダと、ユーザプログラム用ヘッダがまざると、何でとまずいだろ。

611 名前:login:Penguin [2007/04/04(水) 00:23:08 ID:ICf0Aql0.net]
爆発しても知りません。

612 名前:login:Penguin mailto:sage [2007/04/04(水) 00:42:58 ID:IK0cizpI.net]
>>598,>>599
/usr/include/linuxにあるのは確かにカーネルのヘッダだが、glibcをビルドするときに使った
アーキテクチャ依存部分とかのカーネルヘッダ、
/usr/src/linux/includeにあるのは「現在使用中のカーネル」のヘッダファイル
だよね。(間違ってたらスマソ)

これらが同じだとちょっとカーネルに変更があったときとかまずくない?
最悪glibc動かなくなるときもあるかと。

613 名前:login:Penguin [2007/04/08(日) 00:07:55 ID:gmHS+Fdj.net]
>>17 をコンパイルするとエラーがたくさん出るんだけど何が悪いの??

エラーの一部

/usr/src/kernels/2.6.20-1.2933.fc6-i586/include/asm/bitops.h:244: error: expected ‘=’, ‘,’’, ‘asm’ or ‘__attribute__’ before ‘int’
from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/thread_info.h:
20,
from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/preempt.h:9,
from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/spinlock.h:49,
from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/module.h:9,

614 名前:login:Penguin mailto:sage [2007/04/08(日) 00:09:38 ID:2aPQfsMY.net]
脳?

615 名前:login:Penguin [2007/04/08(日) 00:10:46 ID:gmHS+Fdj.net]
>>603
いや、たぶん違うと思う。

こんなのも出てる。

/usr/src/kernels/2.6.20-1.2933.fc6-i586/include/asm/system.h:346: error: expected declarat
ion specifiers or ‘...’ before ‘u8’
/usr/src/kernels/2.6.20-1.2933.fc6-i586/include/asm/system.h:346: error: expected declarat
ion specifiers or ‘...’ before ‘u8’



616 名前:login:Penguin mailto:sage [2007/04/08(日) 00:11:42 ID:2aPQfsMY.net]
じゃ、頭?

617 名前:login:Penguin [2007/04/08(日) 00:12:08 ID:gmHS+Fdj.net]
NGID ID:2aPQfsMY

618 名前:login:Penguin mailto:sage [2007/04/08(日) 00:15:19 ID:2aPQfsMY.net]
マジレスすると、読み込むヘッダーファイルが足りないんだよ。

619 名前:602 [2007/04/08(日) 00:19:06 ID:gmHS+Fdj.net]
環境はVMWare上でfedora 6を動かしてる。

こんなのも。

/usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/bitmap.h:149: error: ‘BITS_PER_LONG’
undeclared (first use in this function)

620 名前:login:Penguin mailto:sage [2007/04/08(日) 00:20:46 ID:2aPQfsMY.net]
BITS_PER_LONGを定義しているファイルをさがすことだね。

621 名前:login:Penguin mailto:sage [2007/04/08(日) 00:29:38 ID:nSKp4d9I.net]
なんだこのキチガイ

622 名前:login:Penguin mailto:sage [2007/04/08(日) 00:31:56 ID:2aPQfsMY.net]
また、きちがいあつかいですか?

623 名前:login:Penguin mailto:sage [2007/04/08(日) 00:36:41 ID:nSKp4d9I.net]
ほう「また」なんだ

624 名前:login:Penguin mailto:sage [2007/04/08(日) 00:37:31 ID:2aPQfsMY.net]
で?

625 名前:login:Penguin mailto:sage [2007/04/08(日) 00:46:02 ID:nSKp4d9I.net]
あらら



626 名前:login:Penguin mailto:sage [2007/04/08(日) 00:48:10 ID:2aPQfsMY.net]
なにがあららなの?

627 名前:login:Penguin mailto:sage [2007/04/08(日) 00:49:12 ID:nSKp4d9I.net]
脳?

628 名前:login:Penguin mailto:sage [2007/04/08(日) 00:49:55 ID:2aPQfsMY.net]
それはお互い様だろ?

629 名前:login:Penguin mailto:sage [2007/04/08(日) 00:51:34 ID:nSKp4d9I.net]
俺はその質問者じゃないんだけどねえ

630 名前:login:Penguin mailto:sage [2007/04/08(日) 00:56:35 ID:2aPQfsMY.net]
お友達?

631 名前:602 [2007/04/08(日) 00:58:54 ID:gmHS+Fdj.net]
もういちど、しきりなおし。

>>17 をコンパイルするとエラーがたくさん出るんだけど何が悪いの??

エラーの一部

/usr/src/kernels/2.6.20-1.2933.fc6-i586/include/asm/bitops.h:244: error: expected ‘=’, ‘,’’, ‘asm’ or ‘__attribute__’ before ‘int’
from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/thread_info.h:
20,
from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/preempt.h:9,
from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/spinlock.h:49,
from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/module.h:9,


632 名前:login:Penguin mailto:sage [2007/04/08(日) 01:03:19 ID:z/motjJL.net]
>>620
ヒント:>>17のかかれた日付に注目。


633 名前:login:Penguin mailto:sage [2007/04/08(日) 01:11:57 ID:nSKp4d9I.net]
2.6以降はモジュールのフォーマットが変わって、
.oじゃなくて.koになってるからね。
ビルドの仕方も面倒になって...俺もよくしらない。

634 名前:login:Penguin mailto:sage [2007/04/08(日) 01:12:30 ID:2aPQfsMY.net]
linux/compiler.hかな?

635 名前:login:Penguin [2007/04/08(日) 02:07:26 ID:gmHS+Fdj.net]
>>621-622
情報が古いのか。。
でも、ウェブにあるサンプルは大体同じような感じなんだけど。

2.6用モジュールhello worldってないのかな。



636 名前:login:Penguin mailto:sage [2007/04/08(日) 02:24:54 ID:z/motjJL.net]
>>624
2.6 kernel hello world
でぐぐればすぐ出てくるぞ。

637 名前:login:Penguin [2007/04/08(日) 02:28:17 ID:gmHS+Fdj.net]
>>625
なかなか無いよ。たとえばどこ?
すぐ出てきたなら、ここに貼って。

638 名前:login:Penguin mailto:sage [2007/04/08(日) 02:34:41 ID:n+CzrFXh.net]
#include <linux/init.h>
がいるみたいね

639 名前:login:Penguin [2007/04/08(日) 02:41:10 ID:gmHS+Fdj.net]
Makefileの書き方も変わってるみたいだね。

uguisu.skr.jp/algo/device.html
のやり方でうまくいった。

640 名前:login:Penguin mailto:sage [2007/04/08(日) 03:09:43 ID:z/motjJL.net]
こことかな。
www.si-linux.co.jp/wiki/silinux/index.php?Linux-2.6%A5%C7%A5%D0%A5%A4%A5%B9%A5%C9%A5%E9%A5%A4%A5%D0

641 名前:login:Penguin [2007/04/12(木) 01:42:14 ID:MCdnGupN.net]
aio_write()でユーザ空間の登録だけして、後からハードウェア割り込みでその登録したユーザ空間にアクセスすることってできる?
やり方教えて。

642 名前:login:Penguin mailto:sage [2007/04/12(木) 02:34:41 ID:HoyZz9hB.net]
>>626
自分はこれが良かった。
www.freesoftwaremagazine.com/articles/drivers_linux

643 名前:login:Penguin [2007/04/15(日) 01:56:51 ID:YIKahQqf.net]
タスクレットの中でcopy_to_user()、copy_from_user()を使えますか?

644 名前:login:Penguin mailto:sage [2007/04/17(火) 02:52:55 ID:IoB9zeVk.net]
試してみろ!!
callした瞬間ぼくの丸太のような足蹴りが君の股間をつぶす
それでもいいのなら!

645 名前:login:Penguin [2007/04/27(金) 00:53:37 ID:6m6QKylD.net]
プログラムで確保したメモリの物理アドレスを知る方法と、その物理アドレスを使ってメモリにアクセスする方法を教えて。



646 名前:login:Penguin mailto:sage [2007/04/27(金) 06:02:05 ID:DTYmU0pC.net]
www.linux.or.jp/JF/JFdocs/kernel-docs-2.2/IO-mapping.txt.html

647 名前:login:Penguin mailto:sage [2007/04/27(金) 06:03:05 ID:DTYmU0pC.net]
www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-4.html

648 名前:login:Penguin [2007/04/27(金) 08:23:06 ID:6m6QKylD.net]
ユーザプログラムで確保したメモリの物理アドレスを知る方法と、その物理アドレスを使ってメモリにアクセスする方法を教えて。

649 名前:login:Penguin [2007/04/27(金) 08:26:29 ID:6m6QKylD.net]
(1)ユーザプログラムで確保したメモリの物理アドレスを知る方法と、
(2)その物理アドレスにアクセスする方法を教えて。

>>634-635 そこの記述では不十分だよ。


650 名前:login:Penguin mailto:sage [2007/04/27(金) 10:46:58 ID:cjUqO3s+.net]
>>638
つ 馬本

なんで物理アドレスが必要なのかよくわからんが、virt_to_pyhsかのう。




651 名前:login:Penguin [2007/04/27(金) 21:21:47 ID:6NURgk06.net]
>>639
virt_to_phys()で本当にユーザプログラムで確保したメモリの物理アドレスが求められる?
質問はカーネルの仮想アドレスを物理アドレスに変換したいのではないよ。
ユーザプログラムで確保したメモリのアドレスの物理アドレスだよ。

あと>>638の(2)については、知ってる人いないの?

652 名前:login:Penguin mailto:sage [2007/04/27(金) 21:40:17 ID:67IsA5dw.net]
痛い人現る

653 名前:login:Penguin mailto:sage [2007/04/27(金) 23:10:53 ID:EZ45sIxG.net]
cr3レジスタからたどれば

654 名前:login:Penguin [2007/04/27(金) 23:27:03 ID:6NURgk06.net]
>>642
で、そのcr3レジスタの値はどこから持ってくるの?
cr3レジスタの値はあくまでも現在のプロセスの仮想アドレスのページテーブルだよね。
カーネルプロセスからユーザプログラムのページテーブルを取得するにはどうするの?

mm_structを保存しておけば、任意のユーザプロセスのメモリ空間にアクセスできる?

655 名前:login:Penguin mailto:sage [2007/04/28(土) 04:22:35 ID:+D3gS6jR.net]
カーネル書き直せば?w



656 名前:login:Penguin [2007/04/28(土) 07:44:33 ID:oKLKreO7.net]
カーネルを書きなおしてもいいよ。どこをどうすればいいの?その方法を教えて。

(1)カーネルから任意のユーザプログラムで確保したメモリの物理アドレスを知る方法と、
(2)その物理アドレスにアクセスする方法を教えて。


657 名前:login:Penguin mailto:sage [2007/04/28(土) 07:47:13 ID:dRSGn50m.net]
カーネルからだとページテーブルがページアウトしている可能性もあるから
めんどくさい






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<281KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef