ディバイスドライバを ..
[2ch|▼Menu]
528:login:Penguin
06/08/20 11:29:13 EWXtKjUy
>>527
kernel_thread
daemonize


529:login:Penguin
06/08/20 20:55:18 bg2sTV9e
というか、普通に載ってるよね

530:login:Penguin
06/08/24 12:55:11 6WITQjoc
そいや、最近のノートPCには指紋センサーがあるけど

あれはハックできるものなの?

531:login:Penguin
06/08/24 13:34:05 wKY4BjAS
>>530
OSM 8月号に記事載ってたよ。
URLリンク(shop.sbcr.jp)

532:login:Penguin
06/08/25 00:34:04 CPHGcnDi
>>531 せんきゅー!

533:login:Penguin
06/08/26 07:37:08 F4NpQAPn
>>529
すみません。ページご存知でしたら教えてください。
第3版持ってます。


534:login:Penguin
06/10/04 21:49:48 EGTQjLn1
すみません、どなたかわかる方教えてください。

現在、XFree86でグラフィックドライバを作ってます。チップは独自のものです。
バス等に接続されておらず、メモリマップドI/Oでアクセスします。

一応画面は出たのですが、1024*768だと縦が半分しか表示されず、
(縦に圧縮される感じ。マウスカーソルが縦につぶれている)
1280*1024だと画面が横に5個くらい表示されてしまいます。

使用しているチップは1ライン4096byte固定なので、解像度に応じて次のラインを
描画するアドレスを更新しなくてはなりません。
カーネルのFBドライバだとline_lengthとかの変数に設定してあげればうまいこと
描画してくれるのですが、XFree86の構造体にはそういった変数が見当たりません。

カーネルFBドライバのline_lengthとかに相当するものはどれでしょうか?

縦に圧縮されるのと画面が5個くらい表示されるのは、別問題な気がしてます。
今、手元にソースがないんですが、InitをするときにvirtualYを*2してやると縦が一見
正常っぽく表示されました。カーソルとかが縦につぶれたままなので、根本対策には
なっていません。

535:Mr.名無しさん
06/10/09 16:36:24 OGKR436u
■■■■■■■■■■■■■■■■
■                     ■  違う板にコピペすると、四角の枠の中に
■                     ■  メッセージとURLが現れる不思議な絵。
■                     ■
■                     ■  (その仕組みがリンク先に書いてある)
■                     ■
■                     ■  この原理を応用すると、まったく新しい
■                     ■  コピペが作れる予感。
■■■■■■■■■■■■■■■■




536:login:Penguin
06/11/05 18:18:15 j6ZWju7f
>>534
グラフィックチップのモード設定を間違えている予感

537:login:Penguin
06/12/14 22:35:16 JyAlagq8
すみません どなたか助けて下さる方はいらっしゃらないでしょうか?
当方PCIデバイスのドライバをLinuxデバイスドライバ読みながら
作成しております。

今DMAを用いてread,writeさせようと思っているのですが、
うまく転送ができておりません。
DMA転送の関数としては

dma_buff = kmalloc( count, GFP_KERNEL | __GFP_DMA)
  bus_addr = pci_map_single( pci_dev, dma_buff, count,
direction );

flags = claim_dma_lock();
disable_dma(channel);
clear_dma_ff(channel);
set_dma_mode(channel, mode);
set_dma_addr(channel, bus_addr);
set_dma_count(channel, count);
enable_dma(channel);
release_dma_lock(flags);
てな感じです。
get_dma_residueで転送できてるかどうかみてるのですが
まったく転送されてないみたいです。
DMAコントローラのレジスタの設定とかは
ほかに何かいるのでしょうか。
ちなみにターゲットのPCはPen3 800MHZ
チップセットは815です。
どなたかお知りの方いらっしゃったら お願いします。


538:login:Penguin
06/12/15 11:02:30 Qc0JIFW5
>>537
見ているものがまったく違っているような気がしますが。
PCIでbus master転送したいんじゃないの?


539:537
06/12/15 15:20:46 NJleqqJR
おお、早速のレスありがとうございます。

DMA転送するにはチップセットの中の8237DMAコントローラをいじればいいって思ってました。バスマスタについて少し調べましたが、IDEのDMAもバスマスタになるんですね、知りませんでした。

となるとこのバスマスタはどうやればいいのでしょうか?参考になるものでもいいので、教えてください、お願いします。

540:login:Penguin
06/12/15 23:40:00 72pQobUh
ターゲットとなるPCIデバイスの仕様がわからなきゃデバイスドライバは書けないよ
せめて型番だけでも出してくれ

541:login:Penguin
06/12/16 18:42:01 wkeveW0d
ドライバというか、モジュールの話なんですけど
スレッドを使ったせい?なのか、psすると
3635 pts/0 R 0:00 modprobe hoge
と残るんですが、これは出ないようには出来ないものなんでしょうか?
勿論 rmmod hoge すると消えるんですけど。


542:537
06/12/17 19:34:20 BtOAund7
ターゲットのデバイスは内製のボードなのですよ orz
となると やっぱボード自体を作った人に聞いたほうがいいのかな?

543:login:Penguin
06/12/17 19:50:10 pl1Ns6BC
チップのレジスタ仕様と、制御のシーケンスがわからないとドライバは書けないよ。

544:login:Penguin
06/12/17 20:36:37 6E+xGodr
>>542
当然聞くべきなのですよ

545:login:Penguin
06/12/17 22:08:40 SVqrrgVr
チップも内製なのか?
だったらデバイスドライバもチップ開発チームが書くものだよな
少なくともサンプルコードの類は書くはずだ

そうでなくて市販のチップを使ってPWBAだけ内製したのなら
使用したチップのデータシートなりプログラマーズガイドなりを読めばいいだけの話

546:537
06/12/18 01:17:23 5wopQO2S
ほぼ内製だったと思います。
ちょっと月曜日会社いったら、聞いてみようと思います。
大変参考になりました、ありがとうございました。

ところで、これは単なる質問ですが、
マザボのチップセットにある8237とかの
DMAコントローラは古いし遅いみたいだから
PCIとかIDEとかに使われてないみたいだけど、
Pen3 800MHzとかでも PIOのが早いの?

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

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

548:537
06/12/19 00:01:59 2Sv0wv+g
なるほろ、大変勉強になりました。
ハード屋さんからマニュアルゲットして
がんばってみます。


549:login:Penguin
06/12/19 23:53:27 g20RCuxU
>>537
URLリンク(www.oreilly.co.jp)


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

551:login:Penguin
06/12/27 10:51:31 mQ5aQPBa
>>550
とりあえずそのふざけた石を投げ捨てれ。

やるならalloc_pagesだろうなあ。そのサイズで連続領域を簡単に確保できるとは思えんが。
ついでに書いておくと128KByte制限は8237の呪いなのでPCIならそんなものはない。



552:login:Penguin
06/12/27 12:43:43 krfJbXj5
投げ捨てぇー…れないorz

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

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

553:login:Penguin
06/12/28 02:29:39 4Oi09t3r
かなり強引だけど、カーネルオプションで使用メモリ量に制限かけといて、
未使用領域を作った上でそこ使っちゃえば?

554:login:Penguin
06/12/28 12:33:40 vc2Jrznf
>>553
MMUの面倒は誰が見るですか?

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


555:login:Penguin
06/12/29 09:28:41 JbqPlaTm
>>553
アドバイスありがとうございます。
ちょっと恐いですが、検討してみます。

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

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

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

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

557:login:Penguin
06/12/30 00:07:40 SZb58Bld
カーネル組込みで、ドライバ初期化のときなら確保できそうな気もするな。
開放したら二度と確保できなくなりそうだが。


558:login:Penguin
07/01/01 22:05:23 uXbHjsPd
明けましておめでとうございます。

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

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

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

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

560:login:Penguin
07/01/19 02:15:30 VcfRHkiI
>>559
mount -o remount,ro /
とかやって、書き込み不可にしてから遊べばよくね?

561:login:Penguin
07/01/19 08:04:16 /YcMJPuk
/etc/fstabの6番目のフィールドの値を0にする。man fstabしてみそ。
tune2fsで-c 0とかもしておいたほうがいいかも。


562:login:Penguin
07/01/19 20:24:37 xhnZtOc/
>>560
でもそれをやると、kmallocをGFP_KERNELで使ったときに
メモリがスワップアウトしたらまずいことになりませんか?

>>561
やってみました

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

563:login:Penguin
07/01/20 19:48:34 3aq4dRUa
>>562
/だけ守ればいいので、なりません。

564:login:Penguin
07/01/21 01:23:20 QaYT7DDq
>>563
ああそうか、swapファイルはswapパーティションですもんね
ありがとうございます

565:login:Penguin
07/01/27 11:05:03 4J9B+fMX
評価機はネットブートさせてNFSroot稼動させればいつ飛んでも
大丈夫な環境にできるんじゃない?


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

567:login:Penguin
07/02/05 06:26:04 9i1Bwf6u
Wikipedia項目リンクには
現在のカーネルではモジュールをカーネルの構築状態に依存する事なく追加できると
書いてあるけど、カーネル側でインターフェースが変更になった場合は旧ドライバは
使用できなくなるんじゃないの?それとも、カーネル側で旧インターフェースが温存されるの?
あと、「カーネル側に受け皿となるインターフェースがモジュール毎に用意されている必要がある」
Linuxはどのバージョンまでなの?

568:login:Penguin
07/02/05 06:56:37 Zi/ATtvA
>>566
いまはそんなことしなくていいよ
insmod rmmodで動的にドライバを挿入したり削除したりできる

569:login:Penguin
07/02/06 01:26:43 j3mwrUGC
いやぁソースはいるだろ。

570:login:Penguin
07/02/06 08:59:25 jQKQh5/W
ソースはいるけどカーネルのリビルドはいらない

571:login:Penguin
07/02/06 10:27:34 Rm04tDsq
いやぁリビルドは途中までいるだろ。

572:login:Penguin
07/02/10 16:03:43 XWBlzb1u
初歩的な質問ですがよろしいでしょうか

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

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

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

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

ソースコード
URLリンク(sakuratan.ddo.jp)

エラーメッセージ
URLリンク(sakuratan.ddo.jp)

573:login:Penguin
07/02/10 17:14:52 d+hexa9D
>>572
普通はMakefile書くわな


574:login:Penguin
07/02/10 17:47:20 a+8l3AD+
Makefileに
obj-m += module.o
って書いて
make -C /usr/src/linux M=$PWD modules

575:login:Penguin
07/02/10 19:18:09 XWBlzb1u
>>543

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

>>574

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

感謝感謝


576:542
07/02/10 19:55:09 XWBlzb1u
.koってファイルが出てきたらからinsmodにかけてみたら
insmod: error inserting 'module.ko': -1 Invalid module format

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

577:542
07/02/10 20:03:22 XWBlzb1u
今までsage忘れてたごめん

578:login:Penguin
07/02/10 20:06:01 791EznrY
話題提供時はage、その後はsage
ってのが一番角が立たない。

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

579:login:Penguin
07/02/10 20:14:38 a+8l3AD+
/usr/src/linux が今動いてるカーネルソースじゃないとか

580:542
07/02/10 21:33:23 XWBlzb1u
>>579

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

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



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


582:login:Penguin
07/02/19 10:56:01 QHwPPpDN
UNIXTIMEを日付文字列に変換するのに なんかAPI用意されてないの?
"2007/02/19 12:34:56" とかその程度のでいいんだけど。

583:login:Penguin
07/02/19 11:19:53 I/jMKPR3
strftime

584:login:Penguin
07/02/19 13:52:20 QHwPPpDN
>>583
いや、デバイスドライバ内でなんだけど、あったっけ? いや、ない。

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

586:login:Penguin
07/02/22 01:34:45 I6i5DnCh
そのカーネル側のABI決めようぜ話はLinusに一蹴されてるんじゃなかったけ?


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

588:login:Penguin
07/02/22 09:16:48 y9d4aAAQ
ラッパーにx86エミュレーションを追加するとザウルスでWindowsのドライバを読み込めたりもする。

589:login:Penguin
07/02/22 22:34:24 I6i5DnCh
つ NDISwrapper


590:login:Penguin
07/02/23 00:44:11 cxn/yRhr
つcapative ntfs

591:login:Penguin
07/04/03 00:09:41 3ycIJVku
<linux/module.h>が無いんだけど、
デバドラ開発するには、なにかパッケージ追加しなきゃいけないの?

使ってるのはfedora6

592:login:Penguin
07/04/03 00:24:35 3ycIJVku
yum install kernel-devel
してもダメだな。何が足りない?

593:login:Penguin
07/04/03 00:41:11 xSB1c0Df
>>591
カーネルソースそのものじゃね?

594:login:Penguin
07/04/03 01:00:14 3ycIJVku
>>593
あ、カーネルソースに有った。ありがとう。

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

595:login:Penguin
07/04/03 01:08:21 3ycIJVku
あと、
man printk
って出ないの?

596:login:Penguin
07/04/03 02:25:43 xSB1c0Df
>>595
出ないんじゃよ

597:login:Penguin
07/04/03 02:43:03 GYgStP3Z
>>594
カーネル用ヘッダと、ユーザプログラム用ヘッダは
まざるとまずいから分離されてる。だから/usr/includeにカーネル用ヘッダはふつうは無い。

598:login:Penguin
07/04/04 00:07:01 NkZt7NAi
/usr/include/linux に入ってないか?鳥にもよるけど。


599:login:Penguin
07/04/04 00:15:23 wyW6RdvI
カーネル用ヘッダと、ユーザプログラム用ヘッダがまざると、何でとまずいだろ。

600:login:Penguin
07/04/04 00:23:08 ICf0Aql0
爆発しても知りません。

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

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

602:login:Penguin
07/04/08 00:07:55 gmHS+Fdj
>>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,

603:login:Penguin
07/04/08 00:09:38 2aPQfsMY
脳?

604:login:Penguin
07/04/08 00:10:46 gmHS+Fdj
>>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’

605:login:Penguin
07/04/08 00:11:42 2aPQfsMY
じゃ、頭?

606:login:Penguin
07/04/08 00:12:08 gmHS+Fdj
NGID ID:2aPQfsMY

607:login:Penguin
07/04/08 00:15:19 2aPQfsMY
マジレスすると、読み込むヘッダーファイルが足りないんだよ。

608:602
07/04/08 00:19:06 gmHS+Fdj
環境は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)

609:login:Penguin
07/04/08 00:20:46 2aPQfsMY
BITS_PER_LONGを定義しているファイルをさがすことだね。

610:login:Penguin
07/04/08 00:29:38 nSKp4d9I
なんだこのキチガイ

611:login:Penguin
07/04/08 00:31:56 2aPQfsMY
また、きちがいあつかいですか?

612:login:Penguin
07/04/08 00:36:41 nSKp4d9I
ほう「また」なんだ

613:login:Penguin
07/04/08 00:37:31 2aPQfsMY
で?

614:login:Penguin
07/04/08 00:46:02 nSKp4d9I
あらら

615:login:Penguin
07/04/08 00:48:10 2aPQfsMY
なにがあららなの?

616:login:Penguin
07/04/08 00:49:12 nSKp4d9I
脳?

617:login:Penguin
07/04/08 00:49:55 2aPQfsMY
それはお互い様だろ?

618:login:Penguin
07/04/08 00:51:34 nSKp4d9I
俺はその質問者じゃないんだけどねえ

619:login:Penguin
07/04/08 00:56:35 2aPQfsMY
お友達?

620:602
07/04/08 00:58:54 gmHS+Fdj
もういちど、しきりなおし。

>>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,


621:login:Penguin
07/04/08 01:03:19 z/motjJL
>>620
ヒント:>>17のかかれた日付に注目。


622:login:Penguin
07/04/08 01:11:57 nSKp4d9I
2.6以降はモジュールのフォーマットが変わって、
.oじゃなくて.koになってるからね。
ビルドの仕方も面倒になって...俺もよくしらない。

623:login:Penguin
07/04/08 01:12:30 2aPQfsMY
linux/compiler.hかな?

624:login:Penguin
07/04/08 02:07:26 gmHS+Fdj
>>621-622
情報が古いのか。。
でも、ウェブにあるサンプルは大体同じような感じなんだけど。

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

625:login:Penguin
07/04/08 02:24:54 z/motjJL
>>624
2.6 kernel hello world
でぐぐればすぐ出てくるぞ。

626:login:Penguin
07/04/08 02:28:17 gmHS+Fdj
>>625
なかなか無いよ。たとえばどこ?
すぐ出てきたなら、ここに貼って。

627:login:Penguin
07/04/08 02:34:41 n+CzrFXh
#include <linux/init.h>
がいるみたいね

628:login:Penguin
07/04/08 02:41:10 gmHS+Fdj
Makefileの書き方も変わってるみたいだね。

URLリンク(uguisu.skr.jp)
のやり方でうまくいった。

629:login:Penguin
07/04/08 03:09:43 z/motjJL
こことかな。
URLリンク(www.si-linux.co.jp)

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

631:login:Penguin
07/04/12 02:34:41 HoyZz9hB
>>626
自分はこれが良かった。
URLリンク(www.freesoftwaremagazine.com)

632:login:Penguin
07/04/15 01:56:51 YIKahQqf
タスクレットの中でcopy_to_user()、copy_from_user()を使えますか?

633:login:Penguin
07/04/17 02:52:55 IoB9zeVk
試してみろ!!
callした瞬間ぼくの丸太のような足蹴りが君の股間をつぶす
それでもいいのなら!

634:login:Penguin
07/04/27 00:53:37 6m6QKylD
プログラムで確保したメモリの物理アドレスを知る方法と、その物理アドレスを使ってメモリにアクセスする方法を教えて。

635:login:Penguin
07/04/27 06:02:05 DTYmU0pC
URLリンク(www.linux.or.jp)

636:login:Penguin
07/04/27 06:03:05 DTYmU0pC
URLリンク(www.linux.or.jp)

637:login:Penguin
07/04/27 08:23:06 6m6QKylD
ユーザプログラムで確保したメモリの物理アドレスを知る方法と、その物理アドレスを使ってメモリにアクセスする方法を教えて。

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

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


639:login:Penguin
07/04/27 10:46:58 cjUqO3s+
>>638
つ 馬本

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




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

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

641:login:Penguin
07/04/27 21:40:17 67IsA5dw
痛い人現る

642:login:Penguin
07/04/27 23:10:53 EZ45sIxG
cr3レジスタからたどれば

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

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

644:login:Penguin
07/04/28 04:22:35 +D3gS6jR
カーネル書き直せば?w

645:login:Penguin
07/04/28 07:44:33 oKLKreO7
カーネルを書きなおしてもいいよ。どこをどうすればいいの?その方法を教えて。

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


646:login:Penguin
07/04/28 07:47:13 dRSGn50m
カーネルからだとページテーブルがページアウトしている可能性もあるから
めんどくさい

647:login:Penguin
07/04/28 08:04:23 oKLKreO7
ページアウトはしていないと仮定していいよ。それなら簡単?

648:login:Penguin
07/04/28 11:40:13 Fr2ol1ef
ザワザワ…
ザワザワ…


649:login:Penguin
07/04/28 23:24:32 ZU2q9XRX
>>639
URLリンク(d.hatena.ne.jp)

650:login:Penguin
07/04/28 23:42:14 o6o1fGCI
馬の多さにワロタ

651:login:Penguin
07/05/03 23:34:15 ErpReMz0
カーネルのソースツリーの一部分だけ、お試しでコンパイル
したいときってどのようにすればいいですか?

たとえば、lib/ の下だけすこしいじって、syntaxのチェック
だけしたいときとか。2.6.21です。

652:login:Penguin
07/05/04 00:08:49 9yQs8D1Y
>>651
なんだかんだいっても、一度全体コンパイルしておくのが一番早い。

653:login:Penguin
07/05/04 00:18:46 yYLKnQ2E
>>652
thx.でも、

一度全体をコンパイルしておいて、lib/以下をちょっと(.cのみ)いじって、
全体をmake bzImageすると、それだけで5分以上かかるんすよ...

わたしのへぼマシンだと。

654:login:Penguin
07/05/04 00:23:00 gFGVYRPM
やっぱりCPU速くするのが一番

655:login:Penguin
07/05/04 00:24:14 yYLKnQ2E
そこをなんとか。

656:login:Penguin
07/05/04 00:35:21 n4WASQRt
>>653
2.6だったらトップディレクトリから

$ make lib/cmdline.o
CC lib/cmdline.o

とか出来る。


657:login:Penguin
07/05/04 00:38:41 yYLKnQ2E
できました。ありがとうございました。

658:login:Penguin
07/05/04 01:24:26 ulT/mofy
>>576
カーネルをコンパイルしたgccでモジュールをコンパイルしないとinsmod時にそのエラーが出るよ。

659:login:Penguin
07/05/13 23:53:14 EYFP+J0v
質問です。
>>620さんと同じ状況です。
ただ>>628>>629の方法を試したのですが
解決しませんでした。
いまだに>>620さんが書かれてるエラーがでてしまいます。
考えられる原因はありますでしょうか?
ubuntu 7.04、gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4)
を使っています。


660:login:Penguin
07/05/26 11:11:39 XoKsvVbX
>>15
IPLで使いたい分のメモリを確保すればいいって聞いたことがある。
カーネルのブートパラメータでから使いたい分を引く感じ。

661:login:Penguin
07/05/26 16:19:33 olOYm4ED
>>660
それで短くなるの? ならないと思うけど。

662:login:Penguin
07/05/26 23:30:58 XoKsvVbX
>>661
あれ?なんかぜんぜん違う話へのレスになってる…。
スマソ、なんか誤爆っぽい…orz

663:login:Penguin
07/06/03 15:06:38 W8zh9WHI
ドライバ内での double 型の使用について質問があります.

Kernel 2.6 のドライバ内で double の演算と,sprintf("%.2f", ...) の様な
関数を使うのはどうすればいいのでしょうか?

現在,下記のようなエラーが出ていてドライバをロードできないです.
% make
...(snip)
WARNING: "__adddf3" [hoge.ko] undefined!
WARNING: "__muldf3" [hoge.ko] undefined!
WARNING: "__floatsidf" [hoge.ko] undefined!

% insmod hoge,ko
insmod: error inserting 'hoge.ko': -1 Unknown symbol in module

664:login:Penguin
07/06/03 15:14:36 1QJRDZ5d
>>663
ドライバで浮動小数点の計算はしない方がいいと思う。

665:login:Penguin
07/06/03 15:35:59 W8zh9WHI
proc_fs で表示するために使いたいのですが,駄目なんでしょうか...?

666:login:Penguin
07/06/03 16:53:58 KH63vIBs
浮動小数点演算はFPUを使う可能性があるから
カーネルモードでは可能な限り避けるべき

きちんと対応すれば使えないことはないけど、
速度的な利点はほとんどなくなる

667:login:Penguin
07/06/03 23:23:42 /hAY1VOO
「速度的な利点」って何に対する何の利点?

668:login:Penguin
07/06/03 23:31:28 5NVvB11p
きっと >>666 の CPU は浮動小数点演算を使うと割り込み禁止になるんだろう

669:login:Penguin
07/06/04 00:46:42 CXn8XPVL
nVidiaのドライバの解析って3年ぐらいまでやってる人間
いたけど今どうなってるの?

670:webmaster@気まぐれアナスイ
07/06/04 12:11:48 RaTjYNE+
!(-_Φ+){ ... }

671:663
07/06/05 02:17:22 aHzmfEHS
とりあえず固定小数点もどきをつかって回避して,こんなのできました.
お時間があれば添削などしていただけると嬉しいです.

URLリンク(acapulco.dyndns.org)

672:login:Penguin
07/06/05 10:49:22 qhZ8Q9LN
>>665
固定小数点じゃだめか?

値が必ず正値と仮定、valに本当の値の100倍を入れるとすると

 unsigned int val;
 sprintf(str, "%d.%02d", val/100, val%100)

みたいな感じ
負値だと剰余の扱いがちょっと面倒になる

673:login:Penguin
07/07/16 18:26:19 h1/eDBu5
はck

674:login:Penguin
07/08/06 00:29:52 E6mK6Nbx
ドライバ書くときってCPUの事は知っておいた方がいいのでしょうか?

675:login:Penguin
07/08/06 01:55:04 Taq1zrH7
どうでもいいよ
タマゴがどっち向きかだけ知っとけば

676:login:Penguin
07/08/28 23:24:19 aUO2fWSH
あげ

677:login:Penguin
07/08/29 01:23:49 bmM5qB+B
>>675
俺はとんがったほうから食べるのが好きだ。

678:login:Penguin
07/08/29 23:50:22 E1JDVS03
どちらから割るのが正しいかが問題だ。大きいほうか、尖った方か。
16bit時代以降、中には大きい方から割って、尖った方から食べるという
両刀使いが出てきてさらにややこしくなった。

679:login:Penguin
07/08/30 12:40:15 pmmgZB5J
そんな両刀使いがいたのか
具体的にはドレ?

680:login:Penguin
07/08/31 00:43:34 pR6eg2ir
NUXIとかmixed endianでggr。1234じゃなくて2143並びになったりするらしい。
実は漏れも知らなかったが、最近でも某腕プロセッサはデータ型によってはまさにミックスになるそうな。

681:login:Penguin
07/08/31 01:04:08 //apeG96
まあそうはいっても日常的にミックスは体験してるよな
通信プロトコルは大体ビッグだからな

682:login:Penguin
07/08/31 07:07:24 IHXG9RG5
uartのドライバ書きたいのだけど、uart_opsのメンバのそれぞれの責務がよく分からない。
文字列送って受けるだけなのに、なぜこんなにいっぱいあるんでしょう?
軽くおしえてもらえないでしょうか?
include/linux/serial_core.h
/*
* This structure describes all the operations that can be
* done on the physical hardware.
*/
struct uart_ops {
unsigned int (*tx_empty)(struct uart_port *);
void (*set_mctrl)(struct uart_port *, unsigned int mctrl);
unsigned int (*get_mctrl)(struct uart_port *);
void (*stop_tx)(struct uart_port *);
void (*start_tx)(struct uart_port *);
void (*send_xchar)(struct uart_port *, char ch);
void (*stop_rx)(struct uart_port *);
void (*enable_ms)(struct uart_port *);
void (*break_ctl)(struct uart_port *, int ctl);
int (*startup)(struct uart_port *);
void (*shutdown)(struct uart_port *);
void (*set_termios)(struct uart_port *, struct ktermios *new,
struct ktermios *old);
void (*pm)(struct uart_port *, unsigned int state,
unsigned int oldstate);
int (*set_wake)(struct uart_port *, unsigned int state);

683:login:Penguin
07/08/31 07:12:11 Bq5CxAt1
>>682
シリアル通信の基本を誰かに教えてもらったら...

684:login:Penguin
07/08/31 14:54:06 bz+r4Vre
>>682
ドライバを組むのなら、ターゲットの仕様をきちんとおさえるのが基本。
uart程度の解説なら本屋にいくらでもあるし、ググればいくらでも情報
が手に入る。

その程度の情報収集ができないなら、ドライバ開発は諦めたほうが良い。


685:login:Penguin
07/09/12 11:40:08 W+jFMZNC
初歩的な質問で、すみません

linuxカーネルは2.6.18-1.2798.fc6-i586で、fedora core6のカーネルを使っています

USBマウスが差し込まれたときに、呼ばれるprobeのコールバックと、外されたときに呼ぶdisconnect
のコールバックを書いたのですが、なぜかvenderIDと、productIDに間違いはないはずなのに
これらが呼ばれません

USBドライバの登録には成功しているようなのですが、登録に使う構造体の初期化に間違いがあったのでしょうか
それとも、このドライバ以外のUSBマウスドライバがあると、駄目なのでしょうか

文字数制限の問題で、ソースは>>686に貼らせていただきます

686:685
07/09/12 11:47:03 W+jFMZNC
コピペでは無理だったので、ロダに上げしました
URLリンク(sakuratan.ddo.jp)

687:login:Penguin
07/09/12 12:38:12 b4ZSgzLd
>>685
ハードウエアを接続したとき、dmesgにはなんて出てくる?

688:685
07/09/12 13:23:18 W+jFMZNC
>>687

dmesgは、このように出力しています

usbcore: registered new driver usb_mouse
succes_usbregist<6>usb 4-2: new low speed USB device using ohci_hcd and address 6
usb 4-2: configuration #1 chosen from 1 choice
input: Cypress Sem PS2/USB Browser Combo Mouse as /class/input/input6
input: USB HID v1.00 Mouse [Cypress Sem PS2/USB Browser Combo Mouse] on usb-0000:00:0b.1-2


689:login:Penguin
07/09/12 13:41:02 Eo9vQi0w
>>688
フックできないような感じだけど?

690:login:Penguin
07/09/12 14:04:06 gJXCaswd
usb_device_id の .driver_info だけ定義するとすべてのデバイスにマッチするらしい(馬本参照)ので
デバッグ用にやってみるのがいいかも

> このドライバ以外のUSBマウスドライバがあると、駄目なのでしょうか
たぶんそう

691:login:Penguin
07/09/13 12:25:45 oMFp/NB1
ドライバの開発って難しいでしょうか?

692:login:Penguin
07/09/13 21:34:22 dbMVSAQN
そのような質問をする方には難しいです。

693:login:Penguin
07/09/14 03:35:04 bpVkKQxn
>>685
むかしは定義に合致するドライバが呼ばれたが最近は1つ合致するやつが
あると、それ以上呼ばないようになってたと思う
HIDドライバが先にとっちゃうんでしょう。.configで無効にしてやってみそ

694:login:Penguin
07/10/03 08:13:37 WhUHfKUP
あげ

695:login:Penguin
07/10/07 18:44:44 wad8eg6i
UIO:ユーザー空間でデバイスドライバ作成が可能に
URLリンク(www.atmarkit.co.jp)

696:login:Penguin
07/10/08 12:39:42 v1nGyoTL
馬本でデバドラを勉強しています。
カーネルのソースでドライバやったことがない人にも分かりやすいソースってどれですかね?

697:login:Penguin
07/10/08 12:48:08 Y0LW8BuC
そんな事言ってる位なら、馬本のドライバソース見ればいいじゃん。ダウンロードできるよ

698:login:Penguin
07/10/09 08:54:41 qhmHV8vi
>>696
何系のドライバかによるのでは>どれを見たらいいか。

ドライバの種類によってどういうインタフェースセット(いわゆる*_opsとか)を
register_*とかで登録するのか、またインタフェース間やカーネル側処理がキュー等を
介してどのように連携するのか全く異なる。

漏れも読みたて入門者なんであれだけど、

キャラクタデバイスなら/dev/null(mem.c)とパラレルポート(ppdev.c + parport/*)
ブロックデバイスならフロッピー(floppy.c)かramdisk(rd.c)
ファイルシステムならromfs(romfs/*, readonly-fs)とbfs(bfs/*, readwrite-fs)

が短かったり馴染みがあったりしてすんなり読めた。


699:696
07/10/09 12:16:03 BjHL69v3
>>697-697
レスありがとうございます。

700:login:Penguin
07/10/18 23:39:59 YYamJxiT
複数のデバイス間でデータをバイパス
したいのですがサンプルないですか?

701:login:Penguin
07/10/19 14:04:12 CYTWECsc
いくらなんでも漠然としすぎだろw

702:login:Penguin
07/10/20 01:03:15 jtNU9aYY
2ポートとか4ポート付きのNICって
モジュールはどのようにロードされるの?
またデータの共有とかRx,Txバッファの
管理とかどうなってるの?

703:login:Penguin
07/10/20 04:41:50 izm7N8bV
1ポートのNICが複数枚ある場合と大差はない。


704:login:Penguin
07/10/21 17:41:17 yGaxVLsH
>>701
各ポートにデバイス eth0, eth1 ... と付いて、このデバイスファイルごとに
設定が管理されるだけじゃね?

705:login:Penguin
07/10/21 18:39:44 SCXCQ8PP
>>704
pciのデバイスとしては1つにしか見えないんだけどさ
どうやって、その後4ポート認識してるかわからないんだよね

706:login:Penguin
07/10/21 19:36:55 f7YPzoUy
>>705
それはPCIブリッジが載ってるからじゃね?
LANチップはその向こうのローカルバスに4ケ載ってるかと。

707:login:Penguin
07/10/23 20:59:15 pGCXISsZ
どなたかおしえてください。カーネルモジュールにバイナリコードを渡したい
のでrequest_firmware()を呼び出しているのですが、このrequest_firmware()
という関数から呼び出されるhotplugはどのディレクトリでバイナリコードを
検索してくれるのかわかりません。言ってみればバイナリコードをどのディレクトリ
におけばいいかがわかりません。ディストリビューションはfc6でカーネルは2.6.22です。

カーネルモジュールに対応するデバイスは無いので、sysfs上に仮想的なバスと
デバイス、ドライバを作ってあります。このデバイスのdevice構造体を使って
request_firmwareを呼んでいます。申し訳ありませんが、かなりまいってるので
お願いします。ご助力ください。

708:login:Penguin
07/10/23 21:05:08 tiPDo332
>>707
Documentation/firmware_class/*
?

709:login:Penguin
07/10/23 22:03:44 +D+WWc4l
BUFFALOのCD-RWドライブがまだ使えるのでハックしたいんですが、
必要な情報ってメーカーから提供されているんでしょうか?

710:login:Penguin
07/10/24 15:38:46 8BiGN5WQ
ハゲシク板違い

711:login:Penguin
07/10/26 18:00:12 OMFZLcsd
お馬さんの本読んで勉強してるのだが、さっぱり分からん。
ちなみに今3章のscullデバイス。

みんな最初はこんなもんなの?
それとも、俺がバカなだけなのか?諦めたほうがいいのか?

意見求む!!

712:login:Penguin
07/10/26 18:53:10 OVakku/9
やる気の問題じゃね?

713:login:Penguin
07/10/26 20:06:04 nlKsXgN2
>>711
「作ってみなきゃわかんない」 の典型かもしれん。
実際作業するとキャラクタデバイスは楽しい。

そして、ブロックデバイスに挑戦するときに
分けわかんなさをもう一度楽しめる

714:login:Penguin
07/10/27 11:47:28 US/tv6oE
よくわかんないのが、他のドライバの叩き方なんだよな。

ネットワーク通信してファイルとかブロックデバイスにも書くような
ドライバが最終ゴールなんだけど、他のドライバのAPIってどうやって
叩くのか(どこがインタフェース界面なのか)と。

715:login:Penguin
07/10/27 12:04:42 Y1miLqrF
OSの勉強やり直しっぽい

716:login:Penguin
07/10/27 19:45:56 5LV4rb/o
>>714
それってkernelspaceじゃなくてuserspaceでやればいいのでは。

717:login:Penguin
07/10/27 20:15:47 US/tv6oE
>>716
使う側からはファイルシステムに見せたいので、実際プロトタイプは
FUSE方式でやろうとしてます。でもそれだと簡単ではあるものの
二級市民みたいなので、kernelspaceでの正しいやり方を知りたいなと。

nfsとかcryptfsのコードを読むは読むにしても、どっかにそういう
各種ドライバを内部から使うための情報をとりまとめたものとかは
ないのかなと。

718:login:Penguin
07/10/27 21:00:45 RlzxlVfH
>>717
とにかくなんでもいいから氏ねw

719:711
07/10/28 02:49:08 W9zUZBn1
>>712
鋭いな。そうかもしんない。

>>713
なるほど、これは貴重な意見が聞けた。サンスコ!!

720:login:Penguin
07/10/28 02:54:06 7ULWmmgi
>>717
ntfs-3g なんかはfuseだけど、実用的に動いているし、全然2級って感じしないけど。

721:login:Penguin
07/10/28 23:36:04 jy3FHf6c
馬本にOSの仕組みを知ってる必要があると書いてありましたが、
どんなことを知っていたほうがいいのでしょうか?

722:login:Penguin
07/10/28 23:41:48 1vAj4w/k
メモリ管理・特権・スケジューリング・ファイルシステム(ry…全部じゃん

723:login:Penguin
07/10/28 23:45:24 jy3FHf6c
>>722
ありがとうございます。
詳解Linuxカーネルも読みます。

724:login:Penguin
07/10/29 00:42:23 uCaYz1aO
>>723
知りたくなったときに読めばいいよ
でも必ず買っとけ

725:login:Penguin
07/10/29 09:44:50 wx/mrO8x
買うなら原書(英語版)のほうがいいぜ
版が新しいし安いからな

726:login:Penguin
07/10/29 10:27:48 nDk3r2gZ
> 版が新しいし
4th edition でたの?

727:login:Penguin
07/10/29 20:53:20 Bg0Jp9i7
konozama.comとか少しは自分で調べようよ

728:login:Penguin
07/10/29 23:42:16 oMEBh2dX
Oh〜、チョッとお聞きしただけで損何怒らなくても
いいじゃないですかぁ〜。Hey,take it easy !
でも調べるところは教えてくれるアナタに感謝で〜す!

729:login:Penguin
07/11/08 00:29:00 Cm3oK6QC
メーカーとかが作ったデバドラのソースって公開してるものはあるのでしょうか?

730:login:Penguin
07/11/08 01:07:57 vscqki7B
ネットワークデバイス系はそういうのが結構多いような。
超いい加減だけど:
つ $ grep -r 'Inc[.o]' drivers | egrep -v '(Red|Vista|Foundation)'


731:login:Penguin
07/11/12 11:19:56 vNQ95D4g
kernel2.6.18.6でターゲット側のUSBドライバ書こうとしてるんですが
参考になるサンプルってありますでしょうか?
drivers/usb/gadget/net2280.cとかが近いのかも知れないですけど
どうもpciで登録してるように見えて「別物かなぁ?」と思いまして。

あとホスト側のUSBドライバで挿されたら何でも拾う設定って
usb_device_idの.device_infoに適当な値を突っ込めばいいと思って
たんですがどうにもattachの際に自作のprobeが呼ばれません。
成功した方っていらっしゃいます?

ご存知の方いらっしゃればお願いします。

732:login:Penguin
07/11/12 23:57:28 xIHzaILy
>>731
おめー御馬様のサンプル
見てていってるんだよね?

もしそうなら、適正無いから諦めろ
見てないなら、お前は調査能力ない
からニートかなんかになれ

733:login:Penguin
07/11/13 00:56:13 0Tz4Ruwv
>>732
よく判ってらっしゃる。
馬本はさらっと読みましたが元がLinuxでも組み込みでもない世界で
やってて、急遽ヘルプで入ったんでさっぱり。

前任が逃げてヘルプなんで誰も知ってる人がいない\(^o^)/

で、聞いてみたんですが俺も逃げっかな・・・

734:login:Penguin
07/11/13 01:11:37 nAlW3/rO
>>733
一週間悩んだら解かんないか?
すげー複雑な科学計算とか遺伝子関係の
プログラミング以外ほとんどの対象のプログラミング
なんて簡単だぞ

時間がかかるものが多いのは事実だが
ドライバは簡単な部類だ

735:login:Penguin
07/11/13 01:21:16 0Tz4Ruwv
>>734
まだ2日程度なんですよね。
「デバドラ」だと思ったんで聞いてみたんですがレベル設定あるみたいなんで
「くだらねぇ」でも行ってきます(´・ω・`)

736:login:Penguin
07/11/13 01:24:22 O430Avmc
御馬様っていうのか・・・
昨日、買いました。勉強します〜

737:login:Penguin
07/11/13 09:24:54 SFIG7nsG
>>734
ちなみに、回答しない人の言うことは無視したほうがいいよ。
>>732はニートとか言ってるし典型的な煽り。

738:735
07/11/14 00:27:19 2+ZY8Hov
馬本見たら「本書の範囲を超えるので載せません」て書かれてた(´・ω・`)
USB gadgetは難しいだろうかnet2280.cよりもZero.c見たほうがいいのかなぁ・・・。

739:login:Penguin
07/11/14 02:20:20 aLuJUt0c
文句とか愚痴だけいって何も貢献しない人間ほどむかつく奴はいない。

740:login:Penguin
07/11/17 09:40:38 MN9c6cz5
>>739
どうどうどぅ…

741:login:Penguin
07/11/17 11:39:12 AZzmHExp
>>739
Do! Do! Do!


次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
暇つぶし2ch

5367日前に更新/265 KB
担当:undef