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


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

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



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


203 名前:ドライバ初心者 [03/05/09 19:55 ID: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 mailto:sage [03/05/09 23:43 ID:ZjYTJvxM]
>>203
相手側の仕様にあわせてください。
仕様書ぐらいあるよね?


205 名前:ドライバ初心者 mailto:age [03/05/10 00:57 ID:5c13M/Uv]
>>204
それが、>>201 に書いたようなコマンドのやりとりのはしご図しかありません。

206 名前:login:Penguin mailto:sage [03/05/10 18:30 ID:+67eyGUg]
>>205
たぶん、1にかいて、2を読むんだとおもうけど、そんな状態でコーディングを
すすめちゃだめです。仕様書をもらって、それをもとに設計してから書くの。


207 名前:うまうま mailto:sage [03/05/11 02:10 ID:sP9foAmw]
>>203
ひょっとして未公開プロトコルをハックしてlinux用にドライバ
作ってんの?

lsusbの表示について
デバイスからデータを読むためのエンドポイントは IN になって
いるはずだよ。そのようなエンドポイントがひとつしかないなら
その番号でOKだと思う。
逆に、デバイスへデータを書き込むためのエンドポイントは OUT

そのターゲットデバイスにはエンドポイントが複数あるっぽいけど、
それだったらコマンドやりとり時、どのエンドポイントが使われて
いるのか調べる必要がある。

208 名前:206 mailto:sage [03/05/11 02:28 ID:+b1ggx7/]
あう。よく読まず1,2を逆にかいてしまいました。つことで>>206に惑わされないで2がOUTね。>>205




209 名前:ドライバ初心者 mailto:age [03/05/12 22:03 ID:fBjjjcco]
>>206
組み込み用のLinuxにUSB機器をつなげてアレコレしようという計画がありまして。
ところが、社内でC言語の経験があるのは私だけ。とりあえず研究開発名目で、USBドライバを
作ってみろと白羽の矢が立ちました。

うまうまさんのアドバイスでwriteができるようになりました。ありがとうございました。
あとはreadだけです。

210 名前:ドライバ初心者 [03/05/15 18:21 ID:QUGfuS7s]
read するとタイムアップになってしまう・・・。何が悪いのでしょうか。

キューのクリアとか必要ですか?



211 名前:login:Penguin mailto:sage [03/05/16 16:21 ID:yZKduc9i]
初歩的な質問ですみませんが、導師のみなさま、お導きを。

write()されたデータを一時的に保持して、次のread()で保持した値を返す
ようなキャラクタデバドラがあるとします。

アクセスする側が単独のプロセスの場合、実装は簡単ですが、複数のプロセスが
上記デバドラにアクセスする場合はセマフォを使っての排他制御が必要となります。

これをアクセス側にセマフォを設けないで、上記デバドラ側で同等の機構を
実現するにはどのように実装すればいいのでしょうか?






212 名前:login:Penguin mailto:sage [03/05/16 16:44 ID:0mzALYCZ]
>>211
プロセス別にキューを持てばいいんでは?
openされたら新しいキューを割り当てて、
closeされたら開放。


213 名前:211 mailto:sage [03/05/16 18:32 ID:g3wElzO+]
>>212
では、同一プロセスの複数スレッドまで考慮しなければならない場合、
どうすればいいのでしょうか?

214 名前:212 mailto:sage [03/05/16 19:18 ID:0mzALYCZ]
>>213
スレッドじゃなくても、二つ以上開いたら破綻しますな。
→お手軽コース:1回だけオープンできるようにする。
→まじめに作る:複数キューを持てるようにする。file.private_dataにキューのポインタ入れるのが簡単かな?
というところで。


215 名前:うまうま mailto:sage [03/05/17 03:23 ID:WAKxeCTB]
>>210
readしたとき、とりあえず何バイトか読み出してる?
デバイスが返しうるバイト数よりも多く読み出そうとして待ち
続けているという可能性はない?

216 名前:ドライバ初心者 mailto:age [03/05/18 01:04 ID:2usiGwhL]
>>215
>readしたとき、とりあえず何バイトか読み出してる?
その通りです! すっと、返されるはずのバイト数よりも多いバイト数で読み出していました!
今はハードが手元に無いので月曜日に試してみます。ありがとうございました。

217 名前:動画直リン [03/05/18 01:11 ID:pMLvChGr]
homepage.mac.com/hitomi18/

218 名前:login:Penguin mailto:sage [03/05/18 21:07 ID:sDNMC/v5]
猿でもわかるように書かれたデバドラ作成解説ページってある?

219 名前:ドライバ初心者 mailto:sage [03/05/19 19:00 ID: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
www.atomised.org/docs/linux-2.4.19-drivers/usb_8c.html


220 名前:login:Penguin mailto:sage [03/05/19 19:13 ID:Q6lDTR8l]
>>218
デバドラの前に、まずはRFC2795から行ってみよう。

221 名前:login:Penguin mailto:sage [03/05/19 22:53 ID:808Vam9H]
>>220
英語読むのめんどくせ
猿にハムレット歌わせるんだっけ?



222 名前:ドライバ初心者 mailto:sage [03/05/20 18:31 ID: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 名前:山崎渉 mailto:(^^) [03/05/22 01:55 ID:p4opmoqv]
━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―

224 名前:ドライバ初心者 mailto:sage [03/05/22 16:32 ID:7jvNN9yz]
>>222
仕様書のコマンドが入れ換わっていた!というわけで自己解決しますた。

north.hokkai.net/~nsawa/piece-lab/usb/20011231.html
ここのソースも参考にして完成です。アドバイスをくれたみなさん、あ
りがとうございました。

225 名前:login:Penguin [03/05/27 12:06 ID:VgmJadOg]
あまりにも便利なので上げさせてください

226 名前:login:Penguin mailto:sage [03/05/28 14:11 ID:2En7vxAz]
insmod するとこんなエラーが出てきたのですがどうすればいいでしょう?

couldn't find the kernel version the module was compiled for



227 名前:山崎渉 mailto:(^^) [03/05/28 16:42 ID:3t6i6zxR]
     ∧_∧
ピュ.ー (  ^^ ) <これからも僕を応援して下さいね(^^)。
  =〔~∪ ̄ ̄〕
  = ◎――◎                      山崎渉

228 名前:login:Penguin [03/05/28 16:55 ID:3qAfQe3K]
>>226
そのドライバを今のカーネルでコンパイルし直してください。
もしくは -f オプションで insmod してください。なんちって

229 名前:login:Penguin mailto:sage [03/05/28 23:40 ID:z1beycbb]
>>226
なにをいれた? 「実はモジュールじゃない」ってときもそれ。

230 名前:226 mailto:sage [03/05/29 18:33 ID:FeUqO3hy]
>>228
>>229
MIPS で動いているLinux に、Redhat7.2 のUSBデバイスドライバです。

ソースのコンパイルはちゃんと通るのですが。
あと、Hello World を出力するだけのデバドラの動作は確認済。

231 名前:login:Penguin mailto:sage [03/05/29 21:59 ID:5gpS9IGq]
>>230
archがあってないとか。

$ file vmlinux
$ file そのモジュール
の結果を見てみたい所ですね。




232 名前:226 mailto:sage [03/05/30 10:13 ID: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 mailto:sage [03/05/31 15:40 ID:pCrUKetP]
>>232
あってるねえ。謎だなあ。
init_moduleがエラーを返してるって事はないよね?


234 名前:226 mailto:sage [03/06/02 11:33 ID: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 mailto:sage [03/06/03 01:50 ID:iocW6lsY]
>>234
そんな関数見たことないなー。
別なモジュールに依存してるとかないの?
カーネル絡みはlibgcc以外のライブラリ使わないよ。


236 名前:コピペ mailto:sage [03/06/03 13:33 ID:9FZ3sCry]
(゚∀゚) ?
Insmod が _gp_disp シンボルが未定義だと文句を言います

(゚∀゚) !
_gp_disp は MIPS の PIC コード中で使われているマジックシンボルです。
このエラーは、システムをクラッシュから救ってくれたため、むしろ有り難いものです。
この場合の問題の要点は、カーネル作成時の Makefile のオプションと、
カーネルモジュール作成時のオプションは同じにすべきだということです。
特に、オプション -mno-pic -mno-abicalls -G 0 が重要です。

237 名前:login:Penguin mailto:sage [03/06/03 13:34 ID:9FZ3sCry]
まあなんか知らんけどgoogleって便利ってのはわかった
意味まではわかんないけど

238 名前:login:Penguin mailto:sage [03/06/03 14:40 ID:iocW6lsY]
>>236
へぇ、MIPSのPICは変わっていると聞いたことがあるが…
そんな事もやってるのか。
ひとつ賢くなったような気がする。


239 名前:() mailto:sage [03/06/03 18:52 ID: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 ID:RzUG7kJc]
デバドラ開発超初心者です。
誰か教えてちょーだい!!

カーネルモジュールでぬるぽ等による例外が起きてoopsが出た後って
リブートしなくちゃいけないの?
rmmodするとリソースbusyと言われて出来ないし。
簡単にやり直せる方法はないのでしょうか?
kdbとかを使うと出来るのでしょうか?
小さなドライバなので出来ればprintkだけでデバッグ
済ませてしまいたいです。

241 名前:login:Penguin mailto:sage [03/06/04 15:22 ID:miGkoc0u]
>>240
su して、
reboot

これが最速。



242 名前:login:Penguin mailto:sage [03/06/04 15:58 ID:YRPx8Qpb]
>>240
MOD_INC_USE_COUNTしなければ、rmmodできるはず。
Oops食らったまま動かし続けるのは気持ち悪すぎるが。


243 名前:240 [03/06/04 18:14 ID:RzUG7kJc]
>>241 >>242さん、ありがとうございます。
MOD_INC_USE_COUNT、MOD_DEC_USE_COUNTを空に
再定義してみました、単純なミスとかで他のメモリ
領域に影響なさそうであれば、これで切り抜けよう
と思います。
危なそうな場合は、やっぱりrebootですね。

244 名前:うまうま mailto:sage [03/06/04 23:56 ID:yoK8ZXbv]
>>239
ドライバの移植?なかなかおもしろそうだね

read, writeのコマンドシーケンスは合ってる?
ひょっとして、readする前にデバイスに対し的確なコマンドを
writeしてあげないといけないのでは?

そのsnifferログは、OSから8バイトのデータをデバイスに送っている
点や、URB番号が若い点からして、USBデバイスからディスクリプタを
読み出そうとしているところと見た。それはWindowsでもLinuxでもデバイスを
繋いだらUSBホスト側が自動的に行う部分。いわゆる初期化処理。
今回のreadできない問題に関係あるとは思えないな。


245 名前:239 mailto:sage [03/06/09 11:05 ID: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 mailto:sage [03/06/10 11:06 ID:3w0EVlGb]
ttp://www.xlsoft.com/jp/products/windriver/windriver.html
ここにある、winDrive の体験版でハードを調査したところ、インターフェースが活性化されていないのが原因のようです。

usb_set_interface() を使えばいいのだろうけど、パラメータがよくわからない。

247 名前:login:Penguin mailto:sage [03/06/13 16:03 ID: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 mailto:sage [03/06/13 18:44 ID:pewsS0ej]
ここを読んだら自己解決しますた。

USB通信プログラミングテクニック
ttp://www.picfun.com/usb00.html

249 名前:うまうま mailto:sage [03/06/13 22:20 ID: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 ID:G+Mtao/F]
オイラGPLライセンスだよ〜
と表明するときに書くマクロって
どういうやつだっけ?

251 名前:login:Penguin mailto:sage [03/06/14 18:11 ID:1HDS5RSe]
MODULE_LICENSE("GPL"); のことかにゃ。



252 名前:login:Penguin mailto:sage [03/06/14 18:13 ID:G+Mtao/F]
>>251
(゚∀゚)サンクスコ

253 名前:247 [03/06/16 12:53 ID:bzsTHCID]
>>249
そのとおりです。

えーと、いま作成中のドライバを試してみたら解決していませんでした。
Interface 1の初期化ってどうやるのでしょう?

254 名前:247 [03/06/16 17:13 ID:bzsTHCID]
追記:cat /proc/bus/usb/devices の表示は >>247 なのですが、なぜかread
が出来ないのです。writeは出来るのですが

255 名前: [03/06/19 18:39 ID:L1S32rBn]
質問です。USB のpipe を reset するにはどうすればいいのでしょうか?

256 名前:中年ハード屋 [03/06/20 00:46 ID:GdrpjdbN]
 DVDのCSS回路を設計するために、そのCSSの方法を理解するために、
LINUXのide-cdを利用したソフトを書いています。(ライセンス済みです)
それで、DVDのディスクキーや内部情報、そして、認証などは出来るのですが、
タイトルキーの取得が出来なくて困っています。

 atapiを通したイトルキーの取得で何かしらのトリックがあるのでしょうか?

 このようなソフトを書く場合に、通常のアプリソフトのように(いまの
やりかた)書けば動作するのですか、それともドライバーソフトのように
特殊な方法が必要なのでしょうか?

 よろしくお願いします

257 名前:login:Penguin [03/06/20 12:05 ID:w5824KTx]


258 名前:login:Penguin [03/07/02 02:02 ID:VujfXoME]
(・∀・)renice!

259 名前:login:Penguin [03/07/06 23:29 ID:lEtq+gmE]
(・∀・)renice!

260 名前:login:Penguin [03/07/08 15:11 ID:nDf4bQ70]
(・∀・)renice!

261 名前:linuxer [03/07/09 01:17 ID:W4/RwfEH]
僕はLinux のethernet のドライバを改造したいデス
ふつは通信用途に最適化されてると効きました
それはぺケットをみる目的につかいます
なにかアイディアはありますか??



262 名前:login:Penguin mailto:sage [03/07/09 01:22 ID:9Ead9bym]
tcpdump等の既存のものより詳細にみれなければ意味がない気がするけど大丈
夫なのかしら。


263 名前:_ mailto:sage [03/07/09 01:29 ID:RRaEUYou]
homepage.mac.com/hiroyuki44/hankaku09.html

264 名前:login:Penguin mailto:sage [03/07/09 01:48 ID:FD/eKW7A]
>>262
石にもよるでしょうねえ。
最近の利口な奴はいろいろ手を入れてくれるし。


265 名前:login:Penguin mailto:sage [03/07/09 13:47 ID:GtKhiIZ8]
>>261
現行ドライバだと、どの点が不満なのか言ってもらわないと助言しようがないよ
パケットモニタリングはNICチップのpromiscuousモードの仕様に依存する話だ

266 名前:login:Penguin mailto:sage [03/07/10 07:33 ID:sMbuqqa1]
>>265
現行のドライバならpromiscuousモードで動かしたときに
パフォーマンスがわるいな感じです
それでぺケットを取りこぼすことになってしまうので
キャプチャ用途に最適化できたらいいなと考えましたです

267 名前:login:Penguin mailto:sage [03/07/10 07:41 ID:oOmBMqv3]
>>266
promiscuousモードだと全パケットをホストPCに転送するから
通常モードに比べて取りこぼす可能性は増える。対象のNICチップは何?
素直にintelなり3comを買えば済むだけの話かもよ。

ちなみにリアルテック(蟹)の性能がよくないのは特許を避けてるから。
現状でいいパフォーマンスのNICが欲しけりゃIntel(or元DEC)、3comの
ちょっと値が張るNICを買うしかないよ。

ドライバでどうこうできる話ではない

268 名前:login:Penguin mailto:sagee [03/07/10 23:13 ID:TravPTn9]
>>267
リアルテクです。3COMも使ってますが、スイッチと相性が悪いな感じで
無反応になってしまう(壊れているのかもしれない)こともありますで
リアルテクでペルフォマンスがよくならないかなと想いました
ちなみに特許って具体的にはどんな特許ですか?

269 名前:login:Penguin mailto:sage [03/07/10 23:46 ID:bBVT4pXs]
>>268
261と268で目的が変化してるぞ。

270 名前:login:Penguin mailto:sage [03/07/11 13:32 ID:CtoBVZIQ]
>>268
そもそもパケットモニタリングするのにスイッチングハブを使ってる時点でアウト
リピータハブ(ダムハプ)を使わないと他ホストの通信は傍受できないよ

結論
・RealtekのNICは捨てて、Intelか3Comを使え
・スイッチングハブではなく、リピータハブを使え

全然デバドラと関係ないや スレ違いどころか板違い?

271 名前:login:Penguin mailto:sage [03/07/13 22:55 ID:UrPfG9sV]
>>267
>promiscuousモードだと全パケットをホストPCに転送するから
違うよ。promiscuousモードって言うのは、リンク層で受信したデータが
自ホストの物理アドレスでなくても受信すること。
>>270が正しい事を言っている。



272 名前:login:Penguin [03/07/14 02:37 ID:imGWjqw6]
age

273 名前:267=270 mailto:sage [03/07/14 15:12 ID:E/Ns9e+C]
>>271
すまん 267=270 なのだが 何か矛盾したこと言ったかな?

MAC層(データリンク層)の処理はNICチップで行われる。
ホストPCはMAC層の処理にはまったく関与しない。
MAC層の処理後、必要なデータだけPCIバスを介してホストPCにDMA転送する。

つまり、通常モードだと自ホスト宛かブロードキャストのパケットデータだけを
ホストPCに転送すればいいのに対し、promiscuousモードだとすべての
パケットデータを転送しなくてはならず、転送量が膨大になる。
そのため、バッファがあふれる(=データを取りこぼす)ことになりやすい。

274 名前:268 mailto:sage [03/07/15 03:30 ID:Yac3cQfq]
スイッチはL3スイッチでポトミラリング機能がありますよ

ただ3COMのNICでも限界があるとですがぎりぎりまでぺケットの
モニタ用に最適化したいと思いましたです
リアルテクの話は忘れてください ふつはバッファも通信用に
チュニングすれて確保してると思ったけどぺケットをモニタするときは
受け取るだけだから ドライバで受信用のバッファを多めに
できたらいいなと思ったよ でもどうやったらいいか分らないよ
ヘルプしてください





275 名前:山崎 渉 mailto:(^^) [03/07/15 11:17 ID:2JhhXBQM]

 __∧_∧_
 |(  ^^ )| <寝るぽ(^^)
 |\⌒⌒⌒\
 \ |⌒⌒⌒~|         山崎渉
   ~ ̄ ̄ ̄ ̄

276 名前:login:Penguin [03/07/15 12:07 ID:Fo16Kpwc]
(・∀・)renice!

277 名前:login:Penguin [03/07/22 11:30 ID:6WQ9WMDa]
(・∀・)renice!

278 名前:login:Penguin [03/07/25 12:52 ID:NH3LXVfX]
(・∀・)renice!

279 名前:login:Penguin [03/07/30 12:07 ID:cPdgkLk2]
(・∀・)renice!

280 名前:ぼるじょあ ◆yBEncckFOU mailto:(^^) [03/08/02 05:04 ID:GfRe8vK7]
     ∧_∧  ∧_∧
ピュ.ー (  ・3・) (  ^^ ) <これからも僕たちを応援して下さいね(^^)。
  =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕
  = ◎――――――◎                      山崎渉&ぼるじょあ

281 名前:login:Penguin [03/08/02 10:27 ID:2rmp9gin]
(・∀・)renice!



282 名前:login:Penguin [03/08/08 11:54 ID:mg5o8ebS]
(・∀・)renice!

283 名前:login:Penguin [03/08/13 12:30 ID:pfCYHBFY]
(・∀・)renice!

284 名前:login:Penguin mailto:sage [03/08/14 22:31 ID:EZZe4dzO]
$> cd /pub
$> more beer


285 名前:login:Penguin mailto:sage [03/08/14 22:44 ID:EZZe4dzO]
$> man woman
$> Segmentaion fault (core dumped)


286 名前:山崎 渉 mailto:(^^) [03/08/15 22:51 ID:dil3w4kp]
    (⌒V⌒)
   │ ^ ^ │<これからも僕を応援して下さいね(^^)。
  ⊂|    |つ
   (_)(_)                      山崎パン

287 名前:login:Penguin [03/08/15 23:47 ID:GfNK1qbf]
(・∀・)renice!

288 名前:login:Penguin [03/08/16 15:04 ID:rNtMNMvg]
(・∀・)renice!

289 名前:login:Penguin [03/08/25 09:46 ID:+hXUD3jL]
(・∀・)renice!

290 名前:login:Penguin [03/09/02 21:16 ID:1mo12GKS]
insmod xxx.oってことはドライバのソースはどんなに大きくてもxxx.cの1っこだけじゃないとだめなの?

291 名前:login:Penguin mailto:sage [03/09/02 21:20 ID:88sqYoXe]
>>1は、ママンでもファックしてろや!hahahahahahaaaaaaaaaaaaaa!



292 名前:login:Penguin mailto:sage ああウソだぜ [03/09/02 22:18 ID:qo69XMHR]
>>290
完全なるカーネルモジュールにヘッダやリンカはいらない。
ソースは常にひとつ。

293 名前:login:Penguin mailto:sage [03/09/03 08:04 ID:CuYcG2U3]
>>290
Cファイルをインクルードすればいいだろ。

294 名前:login:Penguin mailto:sage [03/09/03 11:30 ID:4cm8kGPF]
>>293
よりによって一番最悪な答えですね先生

295 名前:login:Penguin mailto:sage [03/09/03 16:47 ID:iWz7WMbL]
>>290
info ld
-rの説明読め。


296 名前:login:Penguin mailto:sage [04/01/07 22:36 ID:ui3n7e6w]
だいぶ下がってますが、
2.6 と 2.4 のドライバ記述って何か変りました?
2.6 まだインストしてないので報告キボンヌ・・・
2.2 -> 2.4 程は変ってないのかなー?

297 名前:login:Penguin [04/01/16 18:02 ID:ZUOtu/O9]
PCIのデバイスドライバを作成していますが、
全くできません。
less /proc/iomemで書かれているアドレスで
read、write関数を使って書いたり、読んだりしてもだめです。
何がいけないんでしょうか?


298 名前:login:Penguin mailto:sage [04/01/16 19:15 ID:JS8EwlnL]
とりあえず、lspci -vvv を晒してみたらどうでしょう。
もちろんデバイス指定でね。
それを見て私が答えられるかどうかはまた別の話ですけど。


299 名前:login:Penguin [04/01/16 19:52 ID: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 mailto:sage [04/01/16 20:57 ID:JS8EwlnL]
FPGAですね。

私もそんなに知っているわけではないので、
あまりあてにはしないで欲しいのですけれど…
lspciの結果は特に変なところは無いと思います。
Class ff00はどのクラスにも属さないと言うことだと思うのでちょっと気にはなりますが、
読み書きぐらいはできるでしょうね、きっと。

だとすると、あとはドライバのソースでチョンボがあるか
FPGAの中で書きこみ禁止になっているとかですかね。
FPGAにどんなipが載っているのか分からないので、あくまで推測ですけど。

あんまり力になれなくてごめんね。


301 名前:login:Penguin mailto:sage [04/01/18 02:27 ID:+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 ID:+zT3hNOG]
>>299のマチガイだ。

303 名前:login:Penguin mailto:sage [04/01/19 07:32 ID:kPFQP2Tn]
PCIバスアナライザで観測しながらアクセスしてみそ






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

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

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