ディバイスドライバを ..
183:うまうま
03/04/25 12:03 HCQr+NWK
>>182
モルフィー企画のUSBキットはいかが?
URLリンク(www.morphyplanning.co.jp)
確かLinuxドライバを開発しているサイトがあった気がする。
184:bloom
03/04/25 12:26 1KQi+Ees
URLリンク(homepage.mac.com)
185:login:Penguin
03/05/02 11:48 LZsBxbHZ
USB デバイスを/dev 以下のデバイスノードに割りあてるにはどうすればいいのでしょうか?
馬本を見ながら、
devfs = devfs_mk_dir(NULL, "matsu", NULL);
if(!devfs)
return -EBUSY;
devfs_register(devfs, "nt401", DEVFS_FL_AUTO_DEVNUM, 0, 0,
S_IFCHR | S_IRUGO | S_IWUGO,
&scull_fops,
sampleDevice
);
とやっているのですが、indmod すると
Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters
IOやIRQはどこからとってくればいいのでしょうか?
186:login:Penguin
03/05/02 12:21 5kcklCyp
>>183
モルフィー企画は、5/1 千葉地裁に破産申し立てを行った模様。
やっと終わったようですね、夢が・・・
187:login:Penguin
03/05/02 13:17 8SKdq5Sf
>>185
それはモジュールの初期化に失敗した時のメッセージでつ。
だまされないように。
188:login:Penguin
03/05/02 14:02 fxkN+fN8
>>185
それは、init_moduleがretun 0;以外で終了した場合のメッセージですよ。
普通、デバイスが見付からないときは -ENODEVとかでかえすでしょ?
返り値を確認汁。
ISAのデバイスでは、IOとかIRQの設定が違うと見付からないことが多いので、
insmodが、ヒントのために、IOとかIRQはどうよ? って書くことになってるだけ。
189:185
03/05/02 14:12 LZsBxbHZ
>>187
>>188
ありがとうございます。
probe の処理のところへ devfs 関係の処理を移したらinsmod できるようになりました。
190:login:Penguin
03/05/02 14:25 fxkN+fN8
あぁ、すまん。よく読まずに答えた。USBなのね。
USBの場合は、usb_driver.probe() が NULL で帰った時がそのエラーですね。
で、probeのところでdevfs関係やるので正解です。
191:login:Penguin
03/05/02 15:56 gUkzFRNW
モニタのドライバディスクっていうのはあるんでしょうか?
当方モニタを認識できないのですが・・・。
192:login:Penguin
03/05/02 17:25 MBGKHtnA
>>191
周波数や解像度を設定すれば済むだろ。
193:185
03/05/02 18:18 LZsBxbHZ
>>190
insmod はできるようになったのですが、devfs関係の処理がうまくいきません。
devfs_mk_dir と devfs_register がNULL しか返さないのですが・・・
194:login:Penguin
03/05/02 18:33 ntJpWIhT
>>193
カーネルがまずい
195:185
03/05/02 19:13 LZsBxbHZ
>>194
了解っす。さっそく、カーネルを再コンパイルします。
196:ドライバ初心者
03/05/07 14:44 8SxzL6UK
ううう、USB器機との通信方法がよくわからん。
0x07 を送ると 0x1f を返すというUSB器機との通信でどうやるの?
キャラクタデバイス作って、それをread, write するでいいの?
197:bloom
03/05/07 15:13 dAUH81mE
URLリンク(homepage.mac.com)
198:login:Penguin
03/05/07 18:18 xHs+a1Ja
>>196
??? どのレベルでわからないんだろう。ユーザアプリから機器を操作するのは、
すべからくデバイスドライバを通してopen/close/read/write/ioctl 等です。
でも、0x07 を送ると 0x1fを返すとうUSB機器なら、デバドラいらないじゃん。っ
ていうか、機器もいらないじゃん。「0x07を送ると0x1fを返す」ダミーの関数
かませればいいじゃん。たぶん、その質問はなにか省略しすぎで返事がしにくい。
199:ドライバ初心者
03/05/07 23:02 Sh0BeBWS
>>198
分かりにくくてすいません。
USB機器に、データ確認コマンド(0x07のバイト列)を送る。
USB機器にデータがあるなら、(0x01)が返ってくる。
(0x01)が返ってきたのを確認したら、データ取得コマンド(0x0a)を送る。
USB機器からデータ(20バイト)が返ってくる。
上記の仕様で、USB機器にバイト列を送ったり、USB機器が返すバイト列を受け取るにはどうすればいいのかが分からないのです。
urb構造体を使うのでしょうか?
200:login:Penguin
03/05/07 23:47 ppjtoJvG
>>199
USBのドライバは書いた事ないのでアドバイス出来んが、
URLリンク(www.narimatsu.net)
にあるドライバが多分近いので、読んで見ると参考になるかも。
201:login:Penguin
03/05/08 02:33 XzMiCqqd
>>199
なんか、道が遠いな。がんばれー。
> urb構造体を使うのでしょうか?
まぁ、正解なんだけど。なにしろ最終的には全部usb_submit_urb()だから...
実際には usb_bulk_msg()とか、その類を使うの。
その前に基本設計。ハンドシェイクのようなものがあるのよね。それをどうする?
ドライバを一番簡単にするなら、ドライバは、ただデータの横流しをするだけにして、
ハンドシェイクをアプリにさせたらいい。
アプリが /dev/それ をopenして
アプリが 0x07をwriteして
アプリが readでまって、0x01がかえったら
アプリが 0x0aをwriteして
アプリが readする
これが一番簡単だろ。ドライバのデバッグより、アプリのデバッグのほうが簡
単だから、ドライバを簡単にするのは意味がある。
もし、これにするなら、カーネルに標準でついてるdrivers/usb/scanner.c を
参考にしたらいい。はっきりいって、本当に横流ししかしないドライバなので、
参考にして書き直す必要スラなくて、idさえ指定すればスキャナじゃなくても
ナンデモ操作できます。おすすめ。
あ、でもclose/unloadあたりでのリソースの解放順序にバグがあるので、気を
つけてね。
202:ドライバ初心者
03/05/08 18:46 01Q6DwzH
>>200
>>201
アドバイスありがとうございます。 非常に助かりました。
とりあえず、morphy と scanner の両方をコンパイルして試してみました。
morphy の方は、何とかデバイスをopenできるように改造できました。
scannerの方は。 カーネルがdevfsを使えないのと、今回のUSB器機からendpoint の取得がうまくできないようです。
/dev/usb のスペシャルファイルの取得はmorphy を参考に、read write はscanner を参考に、 ハンドシェイクは >>201 の方法でやってみます。
203:ドライバ初心者
03/05/09 19:55 ye3nMZo+
open,close,probe,disconnect はうまく動くようになりました。
read の実装に入ったのですが、 usb_bulk_msg で
#define RD_NAK_TIMEOUT (10*HZ)
usb_bulk_msg(dev, usb_rcvbulkpipe(dev, endpoint), buffer, 20, &partial, RD_NAK_TIMEOUT);
usb_rcvbulkpipe へ渡すパラメータの endpoint にはどんな値を渡せばいいのでしょうか?
lsusb で以下のように表示されている 2 とかでいいのでしょうか?
bEndpointAddress 0x02 EP 2 OUT
scanner.c のソースを読むと、1,2,3, のどれかの値が入るようなのですが・・・
204:login:Penguin
03/05/09 23:43 ZjYTJvxM
>>203
相手側の仕様にあわせてください。
仕様書ぐらいあるよね?
205:ドライバ初心者
03/05/10 00:57 5c13M/Uv
>>204
それが、>>201 に書いたようなコマンドのやりとりのはしご図しかありません。
206:login:Penguin
03/05/10 18:30 +67eyGUg
>>205
たぶん、1にかいて、2を読むんだとおもうけど、そんな状態でコーディングを
すすめちゃだめです。仕様書をもらって、それをもとに設計してから書くの。
207:うまうま
03/05/11 02:10 sP9foAmw
>>203
ひょっとして未公開プロトコルをハックしてlinux用にドライバ
作ってんの?
lsusbの表示について
デバイスからデータを読むためのエンドポイントは IN になって
いるはずだよ。そのようなエンドポイントがひとつしかないなら
その番号でOKだと思う。
逆に、デバイスへデータを書き込むためのエンドポイントは OUT
そのターゲットデバイスにはエンドポイントが複数あるっぽいけど、
それだったらコマンドやりとり時、どのエンドポイントが使われて
いるのか調べる必要がある。
208:206
03/05/11 02:28 +b1ggx7/
あう。よく読まず1,2を逆にかいてしまいました。つことで>>206に惑わされないで2がOUTね。>>205
209:ドライバ初心者
03/05/12 22:03 fBjjjcco
>>206
組み込み用のLinuxにUSB機器をつなげてアレコレしようという計画がありまして。
ところが、社内でC言語の経験があるのは私だけ。とりあえず研究開発名目で、USBドライバを
作ってみろと白羽の矢が立ちました。
うまうまさんのアドバイスでwriteができるようになりました。ありがとうございました。
あとはreadだけです。
210:ドライバ初心者
03/05/15 18:21 QUGfuS7s
read するとタイムアップになってしまう・・・。何が悪いのでしょうか。
キューのクリアとか必要ですか?
211:login:Penguin
03/05/16 16:21 yZKduc9i
初歩的な質問ですみませんが、導師のみなさま、お導きを。
write()されたデータを一時的に保持して、次のread()で保持した値を返す
ようなキャラクタデバドラがあるとします。
アクセスする側が単独のプロセスの場合、実装は簡単ですが、複数のプロセスが
上記デバドラにアクセスする場合はセマフォを使っての排他制御が必要となります。
これをアクセス側にセマフォを設けないで、上記デバドラ側で同等の機構を
実現するにはどのように実装すればいいのでしょうか?
212:login:Penguin
03/05/16 16:44 0mzALYCZ
>>211
プロセス別にキューを持てばいいんでは?
openされたら新しいキューを割り当てて、
closeされたら開放。
213:211
03/05/16 18:32 g3wElzO+
>>212
では、同一プロセスの複数スレッドまで考慮しなければならない場合、
どうすればいいのでしょうか?
214:212
03/05/16 19:18 0mzALYCZ
>>213
スレッドじゃなくても、二つ以上開いたら破綻しますな。
→お手軽コース:1回だけオープンできるようにする。
→まじめに作る:複数キューを持てるようにする。file.private_dataにキューのポインタ入れるのが簡単かな?
というところで。
215:うまうま
03/05/17 03:23 WAKxeCTB
>>210
readしたとき、とりあえず何バイトか読み出してる?
デバイスが返しうるバイト数よりも多く読み出そうとして待ち
続けているという可能性はない?
216:ドライバ初心者
03/05/18 01:04 2usiGwhL
>>215
>readしたとき、とりあえず何バイトか読み出してる?
その通りです! すっと、返されるはずのバイト数よりも多いバイト数で読み出していました!
今はハードが手元に無いので月曜日に試してみます。ありがとうございました。
217:動画直リン
03/05/18 01:11 pMLvChGr
URLリンク(homepage.mac.com)
218:login:Penguin
03/05/18 21:07 sDNMC/v5
猿でもわかるように書かれたデバドラ作成解説ページってある?
219:ドライバ初心者
03/05/19 19:00 r7lftq4x
>>215
タイムアウトは無くなりましたが、こんどはusb-uhci.c 内でエラーになってしまいました。
/proc/kmsg の出力は
usb-uhci.c: ENXIO c0010200, flags 0, urb de96cbe0, burb de96cbe0
usb_bulk_msg の使い方がまずいのでしょうか・・・
usb_bulk_msg(scn->dev, usb_rcvbulkpipe(scn->dev, M_READ), ibuf,
count, &partial, RD_NAK_TIMEOUT);
USBデバドラ開発に役立ちそうなページ
usb.c File Reference
URLリンク(www.atomised.org)
220:login:Penguin
03/05/19 19:13 Q6lDTR8l
>>218
デバドラの前に、まずはRFC2795から行ってみよう。
221:login:Penguin
03/05/19 22:53 808Vam9H
>>220
英語読むのめんどくせ
猿にハムレット歌わせるんだっけ?
222:ドライバ初心者
03/05/20 18:31 oatjLeiG
>>219 は私のバグでした。
しかしながら。タイムアウトは解決しないままです。
Windows用のドライバではちゃんと読みこめているようなのですが・・・
lsusb で 下のようにでているのと関係があるのか・・・
unknown descriptor type: 05 24 00 10 01
unknown descriptor type: 04 24 02 06
unknown descriptor type: 05 24 06 00 01
unknown descriptor type: 05 24 01 03 01
223:山崎渉
03/05/22 01:55 p4opmoqv
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
224:ドライバ初心者
03/05/22 16:32 7jvNN9yz
>>222
仕様書のコマンドが入れ換わっていた!というわけで自己解決しますた。
URLリンク(north.hokkai.net)
ここのソースも参考にして完成です。アドバイスをくれたみなさん、あ
りがとうございました。
225:login:Penguin
03/05/27 12:06 VgmJadOg
あまりにも便利なので上げさせてください
226:login:Penguin
03/05/28 14:11 2En7vxAz
insmod するとこんなエラーが出てきたのですがどうすればいいでしょう?
couldn't find the kernel version the module was compiled for
227:山崎渉
03/05/28 16:42 3t6i6zxR
∧_∧
ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。
=〔~∪ ̄ ̄〕
= ◎―◎ 山崎渉
228:login:Penguin
03/05/28 16:55 3qAfQe3K
>>226
そのドライバを今のカーネルでコンパイルし直してください。
もしくは -f オプションで insmod してください。なんちって
229:login:Penguin
03/05/28 23:40 z1beycbb
>>226
なにをいれた? 「実はモジュールじゃない」ってときもそれ。
230:226
03/05/29 18:33 FeUqO3hy
>>228
>>229
MIPS で動いているLinux に、Redhat7.2 のUSBデバイスドライバです。
ソースのコンパイルはちゃんと通るのですが。
あと、Hello World を出力するだけのデバドラの動作は確認済。
231:login:Penguin
03/05/29 21:59 5gpS9IGq
>>230
archがあってないとか。
$ file vmlinux
$ file そのモジュール
の結果を見てみたい所ですね。
232:226
03/05/30 10:13 Mg17snq6
>>231
$file vmlinux
./vmlinux: ELF 32-bit LSB mips-2 executable, MIPS R3000_LE [bfd bug], version 1, statically linked, not stripped
$file test.o
./test.o: ELF 32-bit LSB mips-2 relocatable, MIPS R3000_LE [bfd bug], version 1, not stripped
233:login:Penguin
03/05/31 15:40 pCrUKetP
>>232
あってるねえ。謎だなあ。
init_moduleがエラーを返してるって事はないよね?
234:226
03/06/02 11:33 O0kbkjww
>>233
cc に渡すパラメータに -DCONFIG_MODVERSIONS を付け加えたら無くなりました。
ところが今度は、insmod するとこんなエラーが・・・
./test.o: unresolved symbol _gp_disp
./test.o: Note: modules without a GPL compatible license cannot use GPLONLY_ symbols
_gp_disp はどこのライブラリにあるのでしょうか?
235:login:Penguin
03/06/03 01:50 iocW6lsY
>>234
そんな関数見たことないなー。
別なモジュールに依存してるとかないの?
カーネル絡みはlibgcc以外のライブラリ使わないよ。
236:コピペ
03/06/03 13:33 9FZ3sCry
(゚∀゚) ?
Insmod が _gp_disp シンボルが未定義だと文句を言います
(゚∀゚) !
_gp_disp は MIPS の PIC コード中で使われているマジックシンボルです。
このエラーは、システムをクラッシュから救ってくれたため、むしろ有り難いものです。
この場合の問題の要点は、カーネル作成時の Makefile のオプションと、
カーネルモジュール作成時のオプションは同じにすべきだということです。
特に、オプション -mno-pic -mno-abicalls -G 0 が重要です。
237:login:Penguin
03/06/03 13:34 9FZ3sCry
まあなんか知らんけどgoogleって便利ってのはわかった
意味まではわかんないけど
238:login:Penguin
03/06/03 14:40 iocW6lsY
>>236
へぇ、MIPSのPICは変わっていると聞いたことがあるが…
そんな事もやってるのか。
ひとつ賢くなったような気がする。
239:()
03/06/03 18:52 U5Cecnio
Windowsで動いているUSBデバイスドライバを、Linux へ移植しようとしています。デバイスの認識、open, write, close はうまく出来ているようなのですがreadがうまく行きません。 -75 のエラーが usb_bulk_msg() から返って来ます。-EOVERFLOW のエラーのようです。
ところが、一度、Windowsに認識させてから、そのデバイスをLinux につなぎ直してreadするとうまく行きます。
何らかの初期化をしているようなのですが、Linux ではどのようにすればいいのでしょうか? sniffer Tool の出力には
0000027510:31:13>>>>>>> URB 4 going down...
0000027610:31:13-- URB_FUNCTION_CLASS_INTERFACE:
0000027710:31:13 TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK)
0000027810:31:13 TransferBufferLength = 00000008
0000027910:31:13 TransferBuffer = 81406fd0
0000028010:31:13 TransferBufferMDL = 00000000
0000028110:31:13
0000028210:31:13 0000:
0000028310:31:13 80
0000028410:31:13 25
0000028510:31:13 00
0000028610:31:13 00
0000028710:31:13 00
0000028810:31:13 02
0000028910:31:13 08
0000029010:31:13 00
0000029110:31:13
0000029210:31:13 UrbLink = 00000000
0000029310:31:13 RequestTypeReservedBits = 00
0000029410:31:13 Request = 20
0000029510:31:13 Value = 0000
0000029610:31:13 Index = 0000
とでていたので、usb_ctrl_msg()を使うのかと思ったのですが。
#define EPIPE32/* Broken pipe */
のエラーを返してしまいます。どうやればいいのでしょうか?
ちなみにチップは、日立の38K0です。
240:login:Penguin
03/06/04 10:07 RzUG7kJc
デバドラ開発超初心者です。
誰か教えてちょーだい!!
カーネルモジュールでぬるぽ等による例外が起きてoopsが出た後って
リブートしなくちゃいけないの?
rmmodするとリソースbusyと言われて出来ないし。
簡単にやり直せる方法はないのでしょうか?
kdbとかを使うと出来るのでしょうか?
小さなドライバなので出来ればprintkだけでデバッグ
済ませてしまいたいです。
241:login:Penguin
03/06/04 15:22 miGkoc0u
>>240
su して、
reboot
これが最速。
242:login:Penguin
03/06/04 15:58 YRPx8Qpb
>>240
MOD_INC_USE_COUNTしなければ、rmmodできるはず。
Oops食らったまま動かし続けるのは気持ち悪すぎるが。
243:240
03/06/04 18:14 RzUG7kJc
>>241 >>242さん、ありがとうございます。
MOD_INC_USE_COUNT、MOD_DEC_USE_COUNTを空に
再定義してみました、単純なミスとかで他のメモリ
領域に影響なさそうであれば、これで切り抜けよう
と思います。
危なそうな場合は、やっぱりrebootですね。
244:うまうま
03/06/04 23:56 yoK8ZXbv
>>239
ドライバの移植?なかなかおもしろそうだね
read, writeのコマンドシーケンスは合ってる?
ひょっとして、readする前にデバイスに対し的確なコマンドを
writeしてあげないといけないのでは?
そのsnifferログは、OSから8バイトのデータをデバイスに送っている
点や、URB番号が若い点からして、USBデバイスからディスクリプタを
読み出そうとしているところと見た。それはWindowsでもLinuxでもデバイスを
繋いだらUSBホスト側が自動的に行う部分。いわゆる初期化処理。
今回のreadできない問題に関係あるとは思えないな。
245:239
03/06/09 11:05 FPzn7DZy
>>244
write シーケンスの前にあるこの処理が妖しいとは思うのですが、Linux でどうやって実現したらいいのか・・・
0000037010:31:29>>>>>>> URB 7 going down...
0000037110:31:29-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER:
0000037210:31:29 PipeHandle = 814d7b1c
0000037310:31:29 TransferFlags = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK)
0000037410:31:29 TransferBufferLength = 00001000
0000037510:31:29 TransferBuffer = 8140c000
0000037610:31:29 TransferBufferMDL = 00000000
0000037710:31:29 UrbLink = 00000000
0000037810:31:29B133TN: m_Endpoint1IN.SubmitUrb status ==>
0000037910:31:290x00000103
0000038010:31:29
0000038110:31:29B133TN: B133TNDevice::Create Status
0000038210:31:290x00000000
0000038310:31:29
0000038410:31:29B133TN: Entering B133TNDevice::Device Control,
0000038510:31:29IRP: Major=0xe
0000038610:31:29 Minor=0x0 Flags=0x30
0000038710:31:29B133TN: Code=0x222000 InputSize=0x4 OutputSize=0x0
0000038810:31:29B133TN:
0000038910:31:29B133TN: Entering B133TNDevice::IOCTL_B133TN_COMMAND_OUT_Handler,
0000039010:31:29IRP: Major=0xe
0000039110:31:29 Minor=0x0 Flags=0x30
0000039210:31:29B133TN: Code=0x222000 InputSize=0x4 OutputSize=0x0
0000039310:31:29B133TN:
0000039410:31:29B133TN: FIFO ReservedDataSize=>
0000039510:31:290x00000000
0000039610:31:29
0000039710:31:29UsbSnoop - IRP_MJ_INTERNAL_DEVICE_CONTROL, IOCTL_INTERNAL_USB_SUBMIT_URB
0000039810:31:29
246:239
03/06/10 11:06 3w0EVlGb
URLリンク(www.xlsoft.com)
ここにある、winDrive の体験版でハードを調査したところ、インターフェースが活性化されていないのが原因のようです。
usb_set_interface() を使えばいいのだろうけど、パラメータがよくわからない。
247:login:Penguin
03/06/13 16:03 pewsS0ej
cat /proc/bus/usb/devices で表示されるインターフェースの中から
C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=100mA
I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=piece
E: Ad=83(I) Atr=03(Int.) MxPS= 16 Ivl= 16ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=piece
E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms
I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=piece
のデバイスを活性化するにはどうすればいいのでしょうか?
248:247
03/06/13 18:44 pewsS0ej
ここを読んだら自己解決しますた。
USB通信プログラミングテクニック
URLリンク(www.picfun.com)
249:うまうま
03/06/13 22:20 EYuB3skO
>>248
こりゃ使えるサイトだ。日本語でUSBの仕様をここまで説明したサイトって、
他にはないよきっと
>>247に質問!
「活性化」というのがよくわからないから教えてほしい。
cat /proc/bus/usb/devices で >>247のような表示がされたってことは、
すべてのPIPEがオープンされているものと思ったけど。
結局、このデバイスにはInterfaceが二つあって、USBバス上に
接続したときは Interface 0しか初期化されなかった。その状態で
Interface 1のEndpoint 0x81からread()しようとしたが、
まだPIPEがオープンされてないためできなかったということ?
250:login:Penguin
03/06/14 17:46 G+Mtao/F
オイラGPLライセンスだよ〜
と表明するときに書くマクロって
どういうやつだっけ?
251:login:Penguin
03/06/14 18:11 1HDS5RSe
MODULE_LICENSE("GPL"); のことかにゃ。
252:login:Penguin
03/06/14 18:13 G+Mtao/F
>>251
(゚∀゚)サンクスコ
253:247
03/06/16 12:53 bzsTHCID
>>249
そのとおりです。
えーと、いま作成中のドライバを試してみたら解決していませんでした。
Interface 1の初期化ってどうやるのでしょう?
254:247
03/06/16 17:13 bzsTHCID
追記:cat /proc/bus/usb/devices の表示は >>247 なのですが、なぜかread
が出来ないのです。writeは出来るのですが
255:
03/06/19 18:39 L1S32rBn
質問です。USB のpipe を reset するにはどうすればいいのでしょうか?
256:中年ハード屋
03/06/20 00:46 GdrpjdbN
DVDのCSS回路を設計するために、そのCSSの方法を理解するために、
LINUXのide-cdを利用したソフトを書いています。(ライセンス済みです)
それで、DVDのディスクキーや内部情報、そして、認証などは出来るのですが、
タイトルキーの取得が出来なくて困っています。
atapiを通したイトルキーの取得で何かしらのトリックがあるのでしょうか?
このようなソフトを書く場合に、通常のアプリソフトのように(いまの
やりかた)書けば動作するのですか、それともドライバーソフトのように
特殊な方法が必要なのでしょうか?
よろしくお願いします
257:login:Penguin
03/06/20 12:05 w5824KTx
258:login:Penguin
03/07/02 02:02 VujfXoME
(・∀・)renice!
259:login:Penguin
03/07/06 23:29 lEtq+gmE
(・∀・)renice!
260:login:Penguin
03/07/08 15:11 nDf4bQ70
(・∀・)renice!
261:linuxer
03/07/09 01:17 W4/RwfEH
僕はLinux のethernet のドライバを改造したいデス
ふつは通信用途に最適化されてると効きました
それはぺケットをみる目的につかいます
なにかアイディアはありますか??
262:login:Penguin
03/07/09 01:22 9Ead9bym
tcpdump等の既存のものより詳細にみれなければ意味がない気がするけど大丈
夫なのかしら。
263:_
03/07/09 01:29 RRaEUYou
URLリンク(homepage.mac.com)
264:login:Penguin
03/07/09 01:48 FD/eKW7A
>>262
石にもよるでしょうねえ。
最近の利口な奴はいろいろ手を入れてくれるし。
265:login:Penguin
03/07/09 13:47 GtKhiIZ8
>>261
現行ドライバだと、どの点が不満なのか言ってもらわないと助言しようがないよ
パケットモニタリングはNICチップのpromiscuousモードの仕様に依存する話だ
266:login:Penguin
03/07/10 07:33 sMbuqqa1
>>265
現行のドライバならpromiscuousモードで動かしたときに
パフォーマンスがわるいな感じです
それでぺケットを取りこぼすことになってしまうので
キャプチャ用途に最適化できたらいいなと考えましたです
267:login:Penguin
03/07/10 07:41 oOmBMqv3
>>266
promiscuousモードだと全パケットをホストPCに転送するから
通常モードに比べて取りこぼす可能性は増える。対象のNICチップは何?
素直にintelなり3comを買えば済むだけの話かもよ。
ちなみにリアルテック(蟹)の性能がよくないのは特許を避けてるから。
現状でいいパフォーマンスのNICが欲しけりゃIntel(or元DEC)、3comの
ちょっと値が張るNICを買うしかないよ。
ドライバでどうこうできる話ではない
268:login:Penguin
03/07/10 23:13 TravPTn9
>>267
リアルテクです。3COMも使ってますが、スイッチと相性が悪いな感じで
無反応になってしまう(壊れているのかもしれない)こともありますで
リアルテクでペルフォマンスがよくならないかなと想いました
ちなみに特許って具体的にはどんな特許ですか?
269:login:Penguin
03/07/10 23:46 bBVT4pXs
>>268
261と268で目的が変化してるぞ。
270:login:Penguin
03/07/11 13:32 CtoBVZIQ
>>268
そもそもパケットモニタリングするのにスイッチングハブを使ってる時点でアウト
リピータハブ(ダムハプ)を使わないと他ホストの通信は傍受できないよ
結論
・RealtekのNICは捨てて、Intelか3Comを使え
・スイッチングハブではなく、リピータハブを使え
全然デバドラと関係ないや スレ違いどころか板違い?
271:login:Penguin
03/07/13 22:55 UrPfG9sV
>>267
>promiscuousモードだと全パケットをホストPCに転送するから
違うよ。promiscuousモードって言うのは、リンク層で受信したデータが
自ホストの物理アドレスでなくても受信すること。
>>270が正しい事を言っている。
272:login:Penguin
03/07/14 02:37 imGWjqw6
age
273:267=270
03/07/14 15:12 E/Ns9e+C
>>271
すまん 267=270 なのだが 何か矛盾したこと言ったかな?
MAC層(データリンク層)の処理はNICチップで行われる。
ホストPCはMAC層の処理にはまったく関与しない。
MAC層の処理後、必要なデータだけPCIバスを介してホストPCにDMA転送する。
つまり、通常モードだと自ホスト宛かブロードキャストのパケットデータだけを
ホストPCに転送すればいいのに対し、promiscuousモードだとすべての
パケットデータを転送しなくてはならず、転送量が膨大になる。
そのため、バッファがあふれる(=データを取りこぼす)ことになりやすい。
274:268
03/07/15 03:30 Yac3cQfq
スイッチはL3スイッチでポトミラリング機能がありますよ
ただ3COMのNICでも限界があるとですがぎりぎりまでぺケットの
モニタ用に最適化したいと思いましたです
リアルテクの話は忘れてください ふつはバッファも通信用に
チュニングすれて確保してると思ったけどぺケットをモニタするときは
受け取るだけだから ドライバで受信用のバッファを多めに
できたらいいなと思ったよ でもどうやったらいいか分らないよ
ヘルプしてください
275:山崎 渉
03/07/15 11:17 2JhhXBQM
__∧_∧_
|( ^^ )| <寝るぽ(^^)
|\⌒⌒⌒\
\ |⌒⌒⌒~| 山崎渉
~ ̄ ̄ ̄ ̄
276:login:Penguin
03/07/15 12:07 Fo16Kpwc
(・∀・)renice!
277:login:Penguin
03/07/22 11:30 6WQ9WMDa
(・∀・)renice!
278:login:Penguin
03/07/25 12:52 NH3LXVfX
(・∀・)renice!
279:login:Penguin
03/07/30 12:07 cPdgkLk2
(・∀・)renice!
280:ぼるじょあ ◆yBEncckFOU
03/08/02 05:04 GfRe8vK7
∧_∧ ∧_∧
ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。
=〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
= ◎―――◎ 山崎渉&ぼるじょあ
281:login:Penguin
03/08/02 10:27 2rmp9gin
(・∀・)renice!
282:login:Penguin
03/08/08 11:54 mg5o8ebS
(・∀・)renice!
283:login:Penguin
03/08/13 12:30 pfCYHBFY
(・∀・)renice!
284:login:Penguin
03/08/14 22:31 EZZe4dzO
$> cd /pub
$> more beer
285:login:Penguin
03/08/14 22:44 EZZe4dzO
$> man woman
$> Segmentaion fault (core dumped)
286:山崎 渉
03/08/15 22:51 dil3w4kp
(⌒V⌒)
│ ^ ^ │<これからも僕を応援して下さいね(^^)。
⊂| |つ
(_)(_) 山崎パン
287:login:Penguin
03/08/15 23:47 GfNK1qbf
(・∀・)renice!
288:login:Penguin
03/08/16 15:04 rNtMNMvg
(・∀・)renice!
289:login:Penguin
03/08/25 09:46 +hXUD3jL
(・∀・)renice!
290:login:Penguin
03/09/02 21:16 1mo12GKS
insmod xxx.oってことはドライバのソースはどんなに大きくてもxxx.cの1っこだけじゃないとだめなの?
291:login:Penguin
03/09/02 21:20 88sqYoXe
>>1は、ママンでもファックしてろや!hahahahahahaaaaaaaaaaaaaa!
292:login:Penguin
03/09/02 22:18 qo69XMHR
>>290
完全なるカーネルモジュールにヘッダやリンカはいらない。
ソースは常にひとつ。
293:login:Penguin
03/09/03 08:04 CuYcG2U3
>>290
Cファイルをインクルードすればいいだろ。
294:login:Penguin
03/09/03 11:30 4cm8kGPF
>>293
よりによって一番最悪な答えですね先生
295:login:Penguin
03/09/03 16:47 iWz7WMbL
>>290
info ld
-rの説明読め。
296:login:Penguin
04/01/07 22:36 ui3n7e6w
だいぶ下がってますが、
2.6 と 2.4 のドライバ記述って何か変りました?
2.6 まだインストしてないので報告キボンヌ・・・
2.2 -> 2.4 程は変ってないのかなー?
297:login:Penguin
04/01/16 18:02 ZUOtu/O9
PCIのデバイスドライバを作成していますが、
全くできません。
less /proc/iomemで書かれているアドレスで
read、write関数を使って書いたり、読んだりしてもだめです。
何がいけないんでしょうか?
298:login:Penguin
04/01/16 19:15 JS8EwlnL
とりあえず、lspci -vvv を晒してみたらどうでしょう。
もちろんデバイス指定でね。
それを見て私が答えられるかどうかはまた別の話ですけど。
299:login:Penguin
04/01/16 19:52 ZUOtu/O9
lspci -vvvで次のような表示になりました。
00:11.0 Class ff00: Altera Corporation: Unknown device 1998 (rev 07)
Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B-
Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR-
Interrupt: pin A routed to IRQ 16
Region 0: Memory at dffe0000 (32-bit, non-prefetchable) [size=64K]
300:298
04/01/16 20:57 JS8EwlnL
FPGAですね。
私もそんなに知っているわけではないので、
あまりあてにはしないで欲しいのですけれど…
lspciの結果は特に変なところは無いと思います。
Class ff00はどのクラスにも属さないと言うことだと思うのでちょっと気にはなりますが、
読み書きぐらいはできるでしょうね、きっと。
だとすると、あとはドライバのソースでチョンボがあるか
FPGAの中で書きこみ禁止になっているとかですかね。
FPGAにどんなipが載っているのか分からないので、あくまで推測ですけど。
あんまり力になれなくてごめんね。
301:login:Penguin
04/01/18 02:27 +zT3hNOG
>>298
read/writeのかわりに
ioremap_nocache()で対象アドレスのページを取得して、
ポインタで直接参照してみたら?
よみたい物理アドレスが
(unsigned int) p_adr
だとしたら
unsigned char p_read(unsigned int p_adr){
unsigned int v_page,v_offset;
unsigned char ret;
v_offset=p_adr&0x0fff;
v_page=ioremap_nocache(p_adr&0xfffff000, 0x1000);
ret=*((unsigned char *)(v_page + v_offset));
iounmap(v_page);
return (ret);
}
適当だけどこんな感じで。ページサイズが4K決め打ちだけど。
302:login:Penguin
04/01/18 02:28 +zT3hNOG
あ>>299のマチガイだ。
303:login:Penguin
04/01/19 07:32 kPFQP2Tn
PCIバスアナライザで観測しながらアクセスしてみそ
304:login:Penguin
04/01/22 14:27 O8v9hJ5s
>>303
持っているならいい方法だけどね。
買おうとすると激しく高い。
レンタルでも中古でも激しく高い。
でも、欲しいね。
305:login:Penguin
04/01/28 10:42 N5b+GE5n
マジレスすれば
ロジアナでPCIバスを観測するか、PCIバスアナライザを使うか
どっちかしないと、PCIデバイス/ドライバの開発は無理だろう
306:login:Penguin
04/01/28 12:46 OnT2yC/X
んなこたーない!
297 が FPGA開発を同時にやってるならまだしも・・・
あったほうが楽なのは確かだが、無理ではない。
ハード屋さんはバスレベルで確認して提出するはず。
read/write 出来ないのはドライバの不具合。
>>297 は pci_find_device 関数など、基本から勉強したほうがよさそう。
307:305
04/01/28 15:27 N5b+GE5n
無理ではないって言っても、そんなマゾプレイみたいなコトしたくないよ
目隠しして半田付けしろっていうのに近いな
PCIのロジックって複雑だから、実機でバグが露呈するのはよくあること
430FXで動いたからって 875Pでは動かないとか余裕であるよ
市場に流通してるチップセットすべてで確認しないと市販は無理
名の通った枯れてるチップならまだしも、実機の動作チェックもしてない
FPGAの回路をつかったPCIカードなら、最初から疑ってかからなきゃダメだと思います
> ハード屋さんはバスレベルで確認して提出するはず。
PCIバスの全パターンをシミュレーションできる検証ツールってすごく高いよ
特にFPGAの開発のために検証環境買うのはコストにあわない
PCIバスアナライザがある環境で実機試験して、少しずつ直すほうが早くて安い
308:login:Penguin
04/01/28 18:36 XM3JMqvR
>>307
そーゆーのはハード屋さんの仕事じゃないかと。
PCIブリッジの違いで動かないなんてのは設定云々じゃない限りドライバじゃ直せん。
309:login:Penguin
04/01/28 19:09 ceOaOw14
> そーゆーのはハード屋さんの仕事じゃないかと。
おれもそう思う。
でも、実際はソフト組み込んだらなんかおかしくて、
実は結局、微妙にハードが悪かったなんて事は良くある話だね。
きっと >>305 は苦い思いをしたんだろうよ。
310:login:Penguin
04/01/29 18:47 ci1wDtTm
>実は結局、微妙にハードが悪かったなんて事は良くある話だね。
ハード絡みやってりゃ必ずあるね。
慣れてくればハード、ソフトどっちが悪いか何となくわかるようになるけど。
制御チップ動かす時なんかはオシロ、ロジアナの出番が増える。
さすがに PCI制御用FPGAまで計測器突っ込んだ亊はないけどね・・・
そこまで行くと スレ違いですね >> 307
311:307
04/01/30 07:19 tIkj6Ynv
私はPWBAからASIC/FPGA デバイスドライバ アプリ まで全部自分で開発する
ある意味何でも屋です
FPGAの検証を実機でやるときにデバイスドライバを作ってるはずだから
バスレベルで動作検証済なら、そのとき使ったドライバをハード屋さんから
もらってくればいいんだと思います
もちろんLinuxじゃない別のOSで検証してる場合もあるだろうけど
今の時代はLinuxでやってるケースがほとんどではないかなぁ
Linuxは
1. ソースが公開されてて、ドキュメントも多くドライバ書くのが楽
2. CDからブートしてRAMDISKだけで動くシステムを簡単に作れる
等の利点があって、特に2が重要
PCIバスのハードのデバッグだとしばしばフリーズするので
正しくshutdownしないままリセットすることが頻発する。
winだろうがlinuxだろうがHDDにOSが入ってるシステムだと、
リセット連発していると、次の起動時に時間がかかるし
そのうちHDDの内容が不整合を起こしてくる。
1CD ramdiskオンリー システムだと、気軽にリセットできて楽なんだ。
まぁlinuxじゃなくてFreeBSDでもいいんだけど。
私は5〜6年くらい前はFreeBSD(2.x/3.xの時代)でPCIカードのハードのデバグ
やってたけど、今世紀に入ってからLinux(2.2の頃から)でやるようになった。
時代の流れで、商品としてlinuxへの対応が必要ってことになったので
最初からlinux用のドライバ書いておけば後が楽になるからね。
スレ違いだったかな
駄文失礼
312:login:Penguin
04/02/03 23:12 j9rA+N1w
>駄文失礼
気にしなくていいぜ。(w
313:login:Penguin
04/02/09 07:11 7h6uvjnn
すいません、どうしようもない質問なんですが、
実験的にカーネルパニックを発生させるドライバを作るのには
どうすればよいでしょうか?
カーネル関数panic()を使っても
ハングするだけでパニックしないんです。。。
どうか教えてください。
314:login:Penguin
04/02/09 20:13 oe9mNV77
このスレは俺に勇気をくれた。
315:login:Penguin
04/02/10 00:02 0xm4A1oM
>>313
コンソールに"Kernel panic: …"って出てないの?
316:login:Penguin
04/02/10 00:52 4iNUE3rF
>>313->panic();
317:login:Penguin
04/02/10 21:13 WwFCucZO
>>315−316
返信ありがとうございます!
単純にパニックするよりoops画面が表示するようにしたいのです。
mmapあたりをいじくるドライバを作れば、
oops画面を表示させることは可能ですか?
318:殴られそうだが
04/02/10 23:35 0xm4A1oM
>>317
試してないけど、
*(unsigned long)0 = 0;
とか。
319:login:Penguin
04/02/11 00:21 QfDGoor4
>>318
似たようなので、
x=0;
x=x/x;
ってのをやってみたのですがダメですた。
やっぱLinuxって頑強だと思いますた。
mmapも見てみたらカーネル空間でなく補助記憶空間に
マップするだけのようですし・・・
アドレス例外でoopsできるような方法とかあるのですかね??
320:login:Penguin
04/02/11 17:17 ViS2X9Xm
Oopsとpanicを混同しているような気がしないでもない。
321:login:Penguin
04/02/12 00:21 9Bh5Rhh+
>>320
すみません。。。
パニックとシステムフォルト(oops)と勘違いしていたようです。。。
ドライバからシステムフォルト(oops)
させるような方法ってあるのでしょうか?
322:login:Penguin
04/02/14 07:34 kX0ZpYOB
linuxはsolarisみたいにクラッシュダンプ取れますか??
323:login:Penguin
04/02/16 00:01 dUYGf/LZ
>>322
URLリンク(lkcd.sourceforge.net)
324:login:Penguin
04/02/19 02:35 tYIYueC9
Linuxでのデバイス・ノード管理は現在
従来の/dev以下のデバイス・ノードファイル、devfs、udevが
存在しているようですが、デバイスドライバを書くような
デバドラ開発者にはこの状態は影響するのでしょうか?
325:login:Penguin
04/02/19 10:34 iwEBqmwA
私は従来の/dev以下のデバイス・ノードファイルを使ってます
devfsに対応するのも簡単だけど優先度低いから先送り
326:login:Penguin
04/02/24 22:37 BGHqYIMS
modpostについて詳しく解説している文書をご存知でしたら教えて下さい。
327:login:Penguin
04/03/17 23:57 P4QfZyWd
データシートをどうやって手に入れるか
それが問題だ
328:login:Penguin
04/03/18 10:56 WBeyRceU
何のデータシート?
329:login:Penguin
04/04/08 16:25 E32BiKCa
mmapについて質問させてください。
メモリデバイスをmmapするとき、ページサイズを4096Byteとした場合、
mmapされたデバイスの先頭からの"物理アドレス"と
mmapしたプロセスのデバイスに割り当てられた"仮想アドレス"の
下位12bit(2^12 = 4096)は一致するのでしょうか?
mmapではプロセスの仮想空間にページサイズ単位で
ファイルやデバイスを割り当てることが出来るわけですよね。
ページサイズが関係してくると言うことはMMUのようなものが
作用して、この割り当てを管理しているのですよね。
(あるいはMMUそのものなんですか?そこが分かってないのですが)
もしも、MMUの管理下にあるならば、実空間と仮想空間のアドレスの
下位12bitは一致するはずです。
MMUはページサイズ以下のアドレスを知らないはずですから。
ここまでは私の理解に間違えはないですよね。
でも、mmapが実際にどんな風に動いているか良く分からないので、
上のような疑問が沸いてしまったのです。
どなたかお分かりいになる方がいましたら教えてください。
330:login:Penguin
04/04/08 17:57 /VjqMrH1
>>329
つ[ mmap.c ]
331:login:Penguin
04/04/09 00:53 E9wQ2At3
いいなこのスレ
332:login:Penguin
04/04/09 00:58 ImS0ZAox
>>330
ha?
333:login:Penguin
04/04/09 00:59 ImS0ZAox
あぁソース嫁ってことかw
334:login:Penguin
04/04/09 14:52 8RpqlllW
>>329
CPU/MMUアーキテクチャに依存する話だね。
IA32に限っていえばその理解でいいと思うよ。
他archでもまずそうなってるだろう。
そうなってないMMUなんて見たことない。
335:login:Penguin
04/04/09 15:39 dsP5+/oo
2次キャッシュを UBS mem に格納して使いたし。可能?
336:login:Penguin
04/04/09 21:34 /keZpBhh
>>335
CPUの2次キャッシュをUSBメモリにやらせるってこと?
337:login:Penguin
04/04/10 01:41 04yJkWho
AGE
338:login:Penguin
04/04/13 23:49 bzoEXS/o
USBのデバイスドライバ作る時のTIPSを教えてください
339:login:Penguin
04/04/14 15:26 XimV19c+
デバイスを破壊出来るデバイスドライバーの作り方教えてください
340:login:Penguin
04/04/14 23:18 QKI6oVKA
>>339
1.どこからかゴルフのドライバーを手に入れる。
2.ドライバーのフェイスにデバイスを貼り付ける(ガムテープでも可)
しかる後にドライバーを振りかぶり、路面、ブロック塀etc.にぶつけること。
341:login:Penguin
04/04/15 10:49 D/fT1Zhi
>>340
( ´д)ヒソ(´д`)ヒソ(д` )
342:login:Penguin
04/04/19 20:10 TjHP8JDs
>>340
( ´д)チョメ(´д`)チョメ(д` )
343:login:Penguin
04/04/27 21:12 ftQXOuAJ
v2.6.x 用の module (.ko) の作り方ってどっかに落ちてませんか?
v2.4.x だと gcc -c するだけで insmod できるイメージができましたが、
v2.6.x だとなんか後工程があるんですよね?
344:login:Penguin
04/04/27 21:18 VEIU93yI
>>339
FDDにアクセスして、その音で音楽を鳴らす。
CDDのトレイを頻繁に出し入れする。
ってトレイは入れられたっけ?
345:login:Penguin
04/04/28 09:36 r7A4ZD5z
>>344
出し入れ可能だけど、作り方は教えられないのでは?
もう既に完成してしまっているし ソース嫁としか言えないと思う
346:login:Penguin
04/04/29 22:03 ugZV/Avt
>>344
CDDのトレイを開け閉めする位ならioctlで……
347:login:Penguin
04/05/05 09:59 IcDQ6/Fz
v2.4でUSBキーボードドライバにRAWレベルアクセスする方法知りませんか?
usb/usbkbd.cを単品でモジュール化してみたけど、プログラムからのアクセス
方法がわからない・・・
usb_register時にマイナーバージョンの情報を登録してないみたいだけど
デバイスファイルでアクセスしようと思うと無理なのかな〜・・・
348:login:Penguin
04/07/17 17:55 z93SFsgN
落ちそう・・・見込みなさそうだけど上げ
349:login:Penguin
04/07/18 17:33 qhsm/Ia2
>>343
URLリンク(linuxdevices.com)とか
URLリンク(lwn.net)とかではどう?
350:login:Penguin
04/07/27 03:02 AwmCdxXP
Moz2chで見てると
レスがだんだん右にずれていくます。
351:login:Penguin
04/07/27 03:08 AwmCdxXP
USBに2台のWebカメラをつなげてまちゅが
May 30 08:31:05 localhost kernel: usb-uhci.c: interrupt,status 3, frame# 1728
しばらく動いた後に/var/log/messageに出力されてカメラがハングしてちまいます。
USBのデバイスドライバは何を言ったのでしょうか?おちえてください。
352:login:Penguin
04/07/27 03:23 7ve9Hskt
>>351
要はエラーが起きたのですね。それ以上あまり解析のタシにはなりません。
status 3 ってのは、割り込みが起きて、IOC と Error が立っていたんです。
# IOCの方は、割り込みを発生する機能なので、エラーじゃないですが。
353:login:Penguin
04/08/02 14:39 QD1yhPkc
チップセットのドライバって具体的にはどんなことやってるの?
354:login:Penguin
04/08/02 16:42 4u8OC/CN
すごく恥かしいあんなことやこんなこと
355:login:Penguin
04/08/02 17:48 Wbtl3uph
>>354
激しく気になります。
356:login:Penguin
04/08/03 23:29 HnnAhZGX
突然ですが、デバドラのioctlからpollやselectって呼べるかどなたか知ってますか?
pollやselectの引数の構造体に何を入れていいのかわかりません。
357:login:Penguin
04/08/03 23:47 0P3Qaw2+
>>356
ioctlのハンドラからsys_selectとか呼びたいって事ですか?
呼べないことはないと思うけど…
なんでそんな変な事をする必要があるのか興味がありますな。
引数は普通にselectに食わせているものを同じように渡せば良いはず。
358:login:Penguin
04/08/04 09:37 NoJQortH
>>357
3つのCPUおよびOSがある組込み系のデバドラを考えてます。
普通はioctlやselectをモジュール側に個別に書くのでしょうが、
それだとダメみたいです。デバドラ側で一括して処理を行うようにしないといけません。
ioctlをモジュール側から呼びだして、デバイス側ではそのioctl処理からpoll(割り込み処理)を
考えてます。なぜioctlかと言うと、ユーザデータをデバドラに渡したい(アドレスのチェック)からです。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5366日前に更新/265 KB
担当:undef