1 名前:login:Penguin [02/01/31 01:14 ID:t3s191ys] ディバイスドライバの改造、製作にまつわる情報交換、質問、 噂話、ぐち、政治、経済に関するスレです。できる限り生産的にいきましょーや。
687 名前:login:Penguin mailto:sage [2007/09/12(水) 12:38:12 ID:b4ZSgzLd] >>685 ハードウエアを接続したとき、dmesgにはなんて出てくる?
688 名前:685 [2007/09/12(水) 13:23:18 ID: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 mailto:sage [2007/09/12(水) 13:41:02 ID:Eo9vQi0w] >>688 フックできないような感じだけど?
690 名前:login:Penguin mailto:sage [2007/09/12(水) 14:04:06 ID:gJXCaswd] usb_device_id の .driver_info だけ定義するとすべてのデバイスにマッチするらしい(馬本参照)ので デバッグ用にやってみるのがいいかも > このドライバ以外のUSBマウスドライバがあると、駄目なのでしょうか たぶんそう
691 名前:login:Penguin [2007/09/13(木) 12:25:45 ID:oMFp/NB1] ドライバの開発って難しいでしょうか?
692 名前:login:Penguin mailto:sage [2007/09/13(木) 21:34:22 ID:dbMVSAQN] そのような質問をする方には難しいです。
693 名前:login:Penguin mailto:sage [2007/09/14(金) 03:35:04 ID:bpVkKQxn] >>685 むかしは定義に合致するドライバが呼ばれたが最近は1つ合致するやつが あると、それ以上呼ばないようになってたと思う HIDドライバが先にとっちゃうんでしょう。.configで無効にしてやってみそ
694 名前:login:Penguin [2007/10/03(水) 08:13:37 ID:WhUHfKUP] あげ
695 名前:login:Penguin mailto:sage [2007/10/07(日) 18:44:44 ID:wad8eg6i] UIO:ユーザー空間でデバイスドライバ作成が可能に www.atmarkit.co.jp/flinux/rensai/watch2007/watch09a.html
696 名前:login:Penguin [2007/10/08(月) 12:39:42 ID:v1nGyoTL] 馬本でデバドラを勉強しています。 カーネルのソースでドライバやったことがない人にも分かりやすいソースってどれですかね?
697 名前:login:Penguin mailto:sage [2007/10/08(月) 12:48:08 ID:Y0LW8BuC] そんな事言ってる位なら、馬本のドライバソース見ればいいじゃん。ダウンロードできるよ
698 名前:login:Penguin mailto:sage [2007/10/09(火) 08:54:41 ID: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 [2007/10/09(火) 12:16:03 ID:BjHL69v3] >>697-697 レスありがとうございます。
700 名前:login:Penguin mailto:sage [2007/10/18(木) 23:39:59 ID:YYamJxiT] 複数のデバイス間でデータをバイパス したいのですがサンプルないですか?
701 名前:login:Penguin mailto:sage [2007/10/19(金) 14:04:12 ID:CYTWECsc] いくらなんでも漠然としすぎだろw
702 名前:login:Penguin mailto:sage [2007/10/20(土) 01:03:15 ID:jtNU9aYY] 2ポートとか4ポート付きのNICって モジュールはどのようにロードされるの? またデータの共有とかRx,Txバッファの 管理とかどうなってるの?
703 名前:login:Penguin mailto:sage [2007/10/20(土) 04:41:50 ID:izm7N8bV] 1ポートのNICが複数枚ある場合と大差はない。
704 名前:login:Penguin [2007/10/21(日) 17:41:17 ID:yGaxVLsH] >>701 各ポートにデバイス eth0, eth1 ... と付いて、このデバイスファイルごとに 設定が管理されるだけじゃね?
705 名前:login:Penguin mailto:sage [2007/10/21(日) 18:39:44 ID:SCXCQ8PP] >>704 pciのデバイスとしては1つにしか見えないんだけどさ どうやって、その後4ポート認識してるかわからないんだよね
706 名前:login:Penguin mailto:sage [2007/10/21(日) 19:36:55 ID:f7YPzoUy] >>705 それはPCIブリッジが載ってるからじゃね? LANチップはその向こうのローカルバスに4ケ載ってるかと。
707 名前:login:Penguin [2007/10/23(火) 20:59:15 ID:pGCXISsZ] どなたかおしえてください。カーネルモジュールにバイナリコードを渡したい のでrequest_firmware()を呼び出しているのですが、このrequest_firmware() という関数から呼び出されるhotplugはどのディレクトリでバイナリコードを 検索してくれるのかわかりません。言ってみればバイナリコードをどのディレクトリ におけばいいかがわかりません。ディストリビューションはfc6でカーネルは2.6.22です。 カーネルモジュールに対応するデバイスは無いので、sysfs上に仮想的なバスと デバイス、ドライバを作ってあります。このデバイスのdevice構造体を使って request_firmwareを呼んでいます。申し訳ありませんが、かなりまいってるので お願いします。ご助力ください。
708 名前:login:Penguin mailto:sage [2007/10/23(火) 21:05:08 ID:tiPDo332] >>707 Documentation/firmware_class/* ?
709 名前:login:Penguin mailto:sage [2007/10/23(火) 22:03:44 ID:+D+WWc4l] BUFFALOのCD-RWドライブがまだ使えるのでハックしたいんですが、 必要な情報ってメーカーから提供されているんでしょうか?
710 名前:login:Penguin mailto:sage [2007/10/24(水) 15:38:46 ID:8BiGN5WQ] ハゲシク板違い
711 名前:login:Penguin mailto:sage [2007/10/26(金) 18:00:12 ID:OMFZLcsd] お馬さんの本読んで勉強してるのだが、さっぱり分からん。 ちなみに今3章のscullデバイス。 みんな最初はこんなもんなの? それとも、俺がバカなだけなのか?諦めたほうがいいのか? 意見求む!!
712 名前:login:Penguin mailto:sage [2007/10/26(金) 18:53:10 ID:OVakku/9] やる気の問題じゃね?
713 名前:login:Penguin mailto:sage [2007/10/26(金) 20:06:04 ID:nlKsXgN2] >>711 「作ってみなきゃわかんない」 の典型かもしれん。 実際作業するとキャラクタデバイスは楽しい。 そして、ブロックデバイスに挑戦するときに 分けわかんなさをもう一度楽しめる
714 名前:login:Penguin mailto:sage [2007/10/27(土) 11:47:28 ID:US/tv6oE] よくわかんないのが、他のドライバの叩き方なんだよな。 ネットワーク通信してファイルとかブロックデバイスにも書くような ドライバが最終ゴールなんだけど、他のドライバのAPIってどうやって 叩くのか(どこがインタフェース界面なのか)と。
715 名前:login:Penguin mailto:sage [2007/10/27(土) 12:04:42 ID:Y1miLqrF] OSの勉強やり直しっぽい
716 名前:login:Penguin [2007/10/27(土) 19:45:56 ID:5LV4rb/o] >>714 それってkernelspaceじゃなくてuserspaceでやればいいのでは。
717 名前:login:Penguin mailto:sage [2007/10/27(土) 20:15:47 ID:US/tv6oE] >>716 使う側からはファイルシステムに見せたいので、実際プロトタイプは FUSE方式でやろうとしてます。でもそれだと簡単ではあるものの 二級市民みたいなので、kernelspaceでの正しいやり方を知りたいなと。 nfsとかcryptfsのコードを読むは読むにしても、どっかにそういう 各種ドライバを内部から使うための情報をとりまとめたものとかは ないのかなと。
718 名前:login:Penguin mailto:sage [2007/10/27(土) 21:00:45 ID:RlzxlVfH] >>717 とにかくなんでもいいから氏ねw
719 名前:711 mailto:sage [2007/10/28(日) 02:49:08 ID:W9zUZBn1] >>712 鋭いな。そうかもしんない。 >>713 なるほど、これは貴重な意見が聞けた。サンスコ!!
720 名前:login:Penguin mailto:sage [2007/10/28(日) 02:54:06 ID:7ULWmmgi] >>717 ntfs-3g なんかはfuseだけど、実用的に動いているし、全然2級って感じしないけど。
721 名前:login:Penguin [2007/10/28(日) 23:36:04 ID:jy3FHf6c] 馬本にOSの仕組みを知ってる必要があると書いてありましたが、 どんなことを知っていたほうがいいのでしょうか?
722 名前:login:Penguin mailto:sage [2007/10/28(日) 23:41:48 ID:1vAj4w/k] メモリ管理・特権・スケジューリング・ファイルシステム(ry…全部じゃん
723 名前:login:Penguin [2007/10/28(日) 23:45:24 ID:jy3FHf6c] >>722 ありがとうございます。 詳解Linuxカーネルも読みます。
724 名前:login:Penguin mailto:sage [2007/10/29(月) 00:42:23 ID:uCaYz1aO] >>723 知りたくなったときに読めばいいよ でも必ず買っとけ
725 名前:login:Penguin mailto:sage [2007/10/29(月) 09:44:50 ID:wx/mrO8x] 買うなら原書(英語版)のほうがいいぜ 版が新しいし安いからな
726 名前:login:Penguin mailto:sage [2007/10/29(月) 10:27:48 ID:nDk3r2gZ] > 版が新しいし 4th edition でたの?
727 名前:login:Penguin mailto:sage [2007/10/29(月) 20:53:20 ID:Bg0Jp9i7] konozama.comとか少しは自分で調べようよ
728 名前:login:Penguin mailto:sage [2007/10/29(月) 23:42:16 ID:oMEBh2dX] Oh〜、チョッとお聞きしただけで損何怒らなくても いいじゃないですかぁ〜。Hey,take it easy ! でも調べるところは教えてくれるアナタに感謝で〜す!
729 名前:login:Penguin [2007/11/08(木) 00:29:00 ID:Cm3oK6QC] メーカーとかが作ったデバドラのソースって公開してるものはあるのでしょうか?
730 名前:login:Penguin mailto:sage [2007/11/08(木) 01:07:57 ID:vscqki7B] ネットワークデバイス系はそういうのが結構多いような。 超いい加減だけど: つ $ grep -r 'Inc[.o]' drivers | egrep -v '(Red|Vista|Foundation)'
731 名前:login:Penguin [2007/11/12(月) 11:19:56 ID:vNQ95D4g] kernel2.6.18.6でターゲット側のUSBドライバ書こうとしてるんですが 参考になるサンプルってありますでしょうか? drivers/usb/gadget/net2280.cとかが近いのかも知れないですけど どうもpciで登録してるように見えて「別物かなぁ?」と思いまして。 あとホスト側のUSBドライバで挿されたら何でも拾う設定って usb_device_idの.device_infoに適当な値を突っ込めばいいと思って たんですがどうにもattachの際に自作のprobeが呼ばれません。 成功した方っていらっしゃいます? ご存知の方いらっしゃればお願いします。
732 名前:login:Penguin mailto:sage [2007/11/12(月) 23:57:28 ID:xIHzaILy] >>731 おめー御馬様のサンプル 見てていってるんだよね? もしそうなら、適正無いから諦めろ 見てないなら、お前は調査能力ない からニートかなんかになれ
733 名前:login:Penguin mailto:sage [2007/11/13(火) 00:56:13 ID:0Tz4Ruwv] >>732 よく判ってらっしゃる。 馬本はさらっと読みましたが元がLinuxでも組み込みでもない世界で やってて、急遽ヘルプで入ったんでさっぱり。 前任が逃げてヘルプなんで誰も知ってる人がいない\(^o^)/ で、聞いてみたんですが俺も逃げっかな・・・
734 名前:login:Penguin mailto:sage [2007/11/13(火) 01:11:37 ID:nAlW3/rO] >>733 一週間悩んだら解かんないか? すげー複雑な科学計算とか遺伝子関係の プログラミング以外ほとんどの対象のプログラミング なんて簡単だぞ 時間がかかるものが多いのは事実だが ドライバは簡単な部類だ
735 名前:login:Penguin mailto:sage [2007/11/13(火) 01:21:16 ID:0Tz4Ruwv] >>734 まだ2日程度なんですよね。 「デバドラ」だと思ったんで聞いてみたんですがレベル設定あるみたいなんで 「くだらねぇ」でも行ってきます(´・ω・`)
736 名前:login:Penguin mailto:sage [2007/11/13(火) 01:24:22 ID:O430Avmc] 御馬様っていうのか・・・ 昨日、買いました。勉強します〜
737 名前:login:Penguin mailto:sage [2007/11/13(火) 09:24:54 ID:SFIG7nsG] >>734 ちなみに、回答しない人の言うことは無視したほうがいいよ。 >>732 はニートとか言ってるし典型的な煽り。
738 名前:735 mailto:sage [2007/11/14(水) 00:27:19 ID:2+ZY8Hov] 馬本見たら「本書の範囲を超えるので載せません」て書かれてた(´・ω・`) USB gadgetは難しいだろうかnet2280.cよりもZero.c見たほうがいいのかなぁ・・・。
739 名前:login:Penguin mailto:sage [2007/11/14(水) 02:20:20 ID:aLuJUt0c] 文句とか愚痴だけいって何も貢献しない人間ほどむかつく奴はいない。
740 名前:login:Penguin [2007/11/17(土) 09:40:38 ID:MN9c6cz5] >>739 どうどうどぅ…
741 名前:login:Penguin mailto:sage [2007/11/17(土) 11:39:12 ID:AZzmHExp] >>739 Do! Do! Do!
742 名前:login:Penguin [2007/11/17(土) 11:43:31 ID:4avAGLIe] do_fork
743 名前:login:Penguin [2007/11/29(木) 13:55:56 ID:yo1OGExb] mmapで特定のデバイスのIOメモリを仮想空間に割り付けて, その領域に対してユーザーからデータを書き込むことを考えています. ユーザープログラムからその領域上に,あるデータ型の双方向リスト を作りたいのですが,ユーザー空間の特定のアドレス範囲から空き メモリ領域を動的に確保する方法ってないでしょうか void *dev_malloc(start_address, end_adress, nbyte); とすると仮想アドレスstart_address〜end_adressの範囲から nbyteバイトの領域を確保するみたいなイメージです
744 名前:login:Penguin mailto:sage [2007/11/29(木) 20:09:08 ID:iCD9/EY6] >>743 かーなーり スレ違い デバイスドライバ関係ない 汎用heap管理ライブラリがほしいってことだろ heap-management とか ヒープ管理 でぐぐってみそ ちなみに void *dev_malloc(start_address, end_adress, nbyte); ってI/Fはありえないと思うぞ 毎回 start_addressとend_adressを与えるわけ??
745 名前:login:Penguin [2007/12/02(日) 23:50:11 ID:lbIQi7BJ] あげ
746 名前:login:Penguin [2007/12/13(木) 19:50:31 ID:pBhS9AMD] あげ
747 名前:俺 [2007/12/18(火) 23:09:45 ID:K//ZswLt] ドライバでCPUキャッシュのフラッシュやりたい! どうやるの?だれかおせぇ〜てぇ〜
748 名前:login:Penguin mailto:sage [2007/12/18(火) 23:41:07 ID:uNdsweTC] >>747 CPUキャッシュのフラッシュをする命令を実行すればいいんじゃない? CPUはなに?
749 名前:俺 [2007/12/18(火) 23:59:27 ID:K//ZswLt] >>748 Xeonの5100です。 データシートとか見つからなくて。。。 ご存知でしたら教えていただけませんか? <経緯> Linuxマシンで、DMAでPCIeのデバイスからホストメモリにデータ転送 したときにキャッシュのせいか、2周目のリングバッファ領域が うまく参照できていなく、フラッシュすればと思いました。。
750 名前:login:Penguin mailto:sage [2007/12/23(日) 13:45:51 ID:VU+KNtKv] >>ORE ttp://www.intel.com/products/processor/manuals/index.htm
751 名前:login:Penguin [2007/12/24(月) 18:03:58 ID:ugbio3bt] Linux 2.6.22 ARM9マシンでシリアルコンソールでデバッグするためにカーネルコマンドラインで console=uart,mmio,0x80004600,57600n8 とすると、カーネルの初期化中に early_uart_console_init()→register_console()→early_uart_setup()→parse_options()→ioremap()→__arm_ioremap()→__arm_ioremap_pfn()→get_vm_area()→__get_vm_area_node()→kmalloc_node()→kmalloc()→kmem_cache_alloc() が呼ばれてkmem_cache_alloc()でこけます。 slabアロケータがまだ初期化されていないのにkmem_cache_alloc()が呼ばれているのがこける原因と思うのですが、armマシンでもearly_uart_consoleは使えるのでしょうか?
752 名前: 【大吉】 【801円】 [2008/01/01(火) 19:54:53 ID:EHGXP/cp] 新年あげ
753 名前: 【中吉】 【156円】 [2008/01/01(火) 20:58:21 ID:LfamTH+n] >750 749じゃないけど,これいいな.サンクス. みんなチップのデータとかはどこから調べてくるの? ちょっと想像してみたけど,「とりあえずメーカサイトを調べる」 以外の方法がわからん. windowsのドライバから情報調べたりする人もいるの? いたらその解析方法とかおしえてください.
754 名前:login:Penguin mailto:sage [2008/01/01(火) 20:59:27 ID:VCekl7x7] >>753 メーカに電話して聞く
755 名前:login:Penguin mailto:sage [2008/01/01(火) 23:23:30 ID:hQDOyXLN] >>749 Intel の CPU だとその手のキャッシュのことは気にしなくていいんじゃなかったっけ? いわゆるバススヌープ。ま、明示的にフラッシュしたきゃできるだろうけど。 (実は俺自身は x86 以外用のドライバしか書いたことがないので聞きかじりだが...) あと、キャッシュが効いているなら1周目でも駄目な場合がありそうだがどうなん? 単にリングバッファのアリゴリズムでしくじってたりして。 って、よく見るとえらい昔の書き込みだった。もう解決したのかな。
756 名前:login:Penguin mailto:sage [2008/01/02(水) 12:58:56 ID:jVjgkvN4] チップの購入先の営業から入手とか チップベンダのwebサイトからダウンロードだろ 常考
757 名前:login:Penguin [2008/01/14(月) 11:44:33 ID:MLu8ArWP] 今馬本の第 3 版読んでんだけど scull のソースコードって Web でダウンロードできるの?
758 名前:login:Penguin mailto:sage [2008/01/14(月) 11:59:56 ID:hAs2atpA] あるよ
759 名前:login:Penguin mailto:sage [2008/01/14(月) 13:03:13 ID:MLu8ArWP] >>758 早速ありがとう. 本を斜め読みしてるんだけど URL が見当たらないです. 検索しても見付からないし,もしよろしければ教えていただけますと うれしいです
760 名前:login:Penguin mailto:sage [2008/01/14(月) 13:36:46 ID:Q2m15cvj] >>759 >>80
761 名前:login:Penguin mailto:sage [2008/01/14(月) 14:10:16 ID:MLu8ArWP] >>759 ありがとう! 3版のは FTP で以下からダウンロードできました. ar.linux.it/pub/ldd3/ldd3-samples-1.0.0.tar.gz かなり感謝です ありがとう
762 名前:login:Penguin mailto:sage [2008/01/14(月) 14:13:07 ID:MLu8ArWP] 自分にお礼ちまった >>761 の「>>759 」は >>760 の間違いです >>760 さんありがとう
763 名前:login:Penguin mailto:sage [2008/01/17(木) 11:56:40 ID:1+AIbUNm] >>761 あれ?お馬さんの第3版それなの? 日付が気になるので、第3版翻訳本に載ってたのをこぴぺ ftp://example.oreilly.com/pub/examples/linuxdrive3 examples.tar.gz 70 KB 2005/05/12 0:00:00 ちょいとだけ新しいかも。同じくLinuxデバドラはじめる所なので よろしく〜。Win系でWDM書いてました〜。
764 名前:!omikuji !dama [2008/01/25(金) 07:11:44 ID:dVpHcdky] kaso
765 名前:login:Penguin mailto:sage [2008/01/25(金) 21:56:39 ID:OZPnpJ0W] ドライバでのロックの掛け方とか その変のデザインパターンみたいなもの ないのですか? 馬本読んでも、DualSocket 4コアとか その辺の場合どうすればいいとかまったく 書いてなくて困ってる。 CPU毎にあるモノを意識しなければならないのか 全リソースを意識した作りなのかの判断も ケースバイケースとかだし。WDMの方がいいよね
766 名前:login:Penguin mailto:sage [2008/01/26(土) 23:10:19 ID:jNmSnKBM] >>765 スピンロック様
767 名前:login:Penguin mailto:sage [2008/01/27(日) 14:19:40 ID:/9d4A9Tg] WDMってよく知らないが、割り禁、スピン、寝る&起こす以外に 排他の方法があるの?
768 名前:login:Penguin mailto:sage [2008/01/27(日) 17:28:29 ID:Q2ylOq7r] そもそも排他なんじゃねーの? 昔はLinuxも明示的にスケジュールよぶまで カーネル空間は排他だったじゃん SMPが出てきて全部直す羽目になったけど
769 名前:login:Penguin mailto:sage [2008/01/27(日) 19:45:28 ID:/9d4A9Tg] 割込みハンドラ
770 名前:login:Penguin [2008/02/03(日) 19:45:35 ID:coODkdMv] 過疎
771 名前:login:Penguin mailto:sage [2008/02/07(木) 03:30:55 ID:9BnmgFGp] 「新着1件ってことは、いつもの良スレ上げ厨かなぁ」と思ったらそう来たか。
772 名前:login:Penguin [2008/02/19(火) 16:29:32 ID:vNMS2dUr] 基本的にPCIデバイスにデータ渡すだけのドライバを作ってるのですが、 I2Cデータ転送もしたいといわれ、苦戦中につき質問させて下さい。 カーネルリリースは2.6.11-1.1369_FC4 今のところインクルードしてるのは下記ヘッダーです。 linux/module.h linux/kernel.h linux/pci.h linux/pci-dev.h asm/uaccess.h unistd/.h sys/ioctl.h sys/perm.h I2Cのオープンのために、これにfcntl.hを加えたところ、dev_tの型などが再定義されたとエラーが出ます。 また、KERNELDIRを取得して、その場でMAKEしているため Makefileにて、環境変数C_INCLUDE_PATHに/usr/includeを設定しているのですが fcntl.hを除いてコンパイルしてもclose, ioctl等が未定義と警告されます。 これらエラーや警告の対応に行き詰まってしまいました。 インクルードに過不足あるのか、Makefileが悪いのか、そもそもPCIドライバからI2Cを叩く方法が悪いのか… アドバイス等お願い出来ますでしょうか。
773 名前:login:Penguin mailto:sage [2008/02/19(火) 19:10:24 ID:5BDGV8A6] デバイスドライバでunistd.hなんかincludeしちゃダメだろ fcntl.hも同様
774 名前:login:Penguin mailto:sage [2008/02/19(火) 21:35:29 ID:ec7S8nn5] 何言ってるのかわからないなw PCIデバイスとして、I2Cバスへのブリッジが載っているのか? それとも、PCIバス/デバイスとは関係なく、全く別のI2Cバス上のデバイスをアクセスしたいだけなのか?
775 名前:772 mailto:sage [2008/02/19(火) 22:00:59 ID:vQR2/dLm] >>773 やっぱりダメですか。 というか、無理やり環境変数使ってコンパイラのエラーを抜けてる(unistd.h以降3ヘッダ、加えてfcntl.h)のは全部includeしちゃダメですかね。 >>774 >PCIデバイスとして、I2Cバスへのブリッジが載っているのか? >それとも、PCIバス/デバイスとは関係なく、全く別のI2Cバス上のデバイスをアクセスしたいだけなのか? PCIデバイスにI2Cバスへのブリッジが載っている、のはずです。
776 名前:login:Penguin mailto:sage [2008/02/19(火) 22:53:37 ID:5BDGV8A6] つーかさ カーネルモードで動いてるデバイスドライバの中から open()とかclose()とかioctl()みたいなシステムコールを 発行できるわけないだろ? >>772 が作りたいと思ってるのは root権限で直接I/O叩くだけの ユーザランドで動くアプリなんじゃないのか?
777 名前:login:Penguin mailto:sage [2008/02/19(火) 23:10:27 ID:ec7S8nn5] >>775 じゃあ、そのPCI-I2Cブリッジのデバイスドライバを書いているんだとして、 >I2Cのオープンのために なんで、こうなるのよw とりあえずDocumentation/i2c/summaryでも読んでくれ。
778 名前:login:Penguin mailto:sage [2008/02/20(水) 08:43:00 ID:zgvkT7V3] >>776 呼んじゃダメなんですね。了解しました。 先週までアプリしかやったことがなく、ついそっち寄りな考えに、と、蛇足でした。失礼しました。 >>777 あー、確かに。 教えていただいたものを読んでみます。 ありがとうございました。
779 名前:login:Penguin mailto:sage [2008/02/20(水) 09:40:57 ID:zxxPBExl] >>773 そういえば、しちゃダメだ ってどこにも書いてないな わからない奴はわからないんじゃないか?
780 名前:login:Penguin mailto:sage [2008/02/21(木) 00:46:11 ID:VUV3LHo/] ちょっと相談なんだが、いいかな writeの中で長時間割り込み待ちをするような処理と、その場で終わる処理を持ったデバドラがあって、 (処理の切り替えはioctl) まずアプリAが長時間かかる処理のためにwriteわ呼び出す。 当然割り込み待ちになるが、そのままアプリBがioctlやwriteを呼び出すとどうなる? 普通に処理出来る?
781 名前:login:Penguin mailto:sage [2008/02/21(木) 00:55:15 ID:A2lpGb2W] 一つのデバイスを二つのアプリで同時に使うっつー事ですか?
782 名前:login:Penguin mailto:sage [2008/02/21(木) 01:18:43 ID:VUV3LHo/] >>781 その通りで。 ただ、1つのアプリがマルチスレッドになってるという場合もありでお願いしたい
783 名前:login:Penguin mailto:sage [2008/02/21(木) 01:55:12 ID:6LvlPNy5] できるかどうかは作り方次第だろうな 資源の排他処理が必要なら、ロック使わなきゃならん その場合は、すぐ終わるはずの処理ももちろん待たされる 待たせたくなけりゃ、長時間かかるというwriteにバッファを設けて write処理と割り込み処理とを分離するみたいな工夫したらどうだ 的外れならスマソ
784 名前:login:Penguin mailto:sage [2008/02/21(木) 02:11:45 ID:VUV3LHo/] >>783 資源は共有しないからロックはいらなさそうだ writeにバッファを設けて処理を分離ってのがイマイチわからんのだけど、説明頼んでもいいかい? デバドラの中でもスレッドとかで並列にするの?
785 名前:login:Penguin mailto:sage [2008/02/21(木) 06:04:45 ID:Xs+RkuJQ] シリアルポートを想像してみたらどうだろう Write、Read、割り込みがそれぞれ並列に動くはずだ Writeで割り込み使ってるかどうかは知らないけど
786 名前:login:Penguin mailto:sage [2008/02/21(木) 07:26:26 ID:Kf6eqU14] ブロック と ノンブロック という用語を使ってほしいところだな んで複数プロセスから同時に使えるかどうかはデバイスドライバの作り方次第 手抜きにつくると open()されるときに競合問題を判断して 同時にひとつとかopenできないようにするよな 複数同時にopenして、ひとつがブロックしてる時に また別のがノンブロックの処理要求してきたなんて場合は そういう風にうまく動くようにドライバの中で考慮する必要がある
787 名前:login:Penguin mailto:sage [2008/02/21(木) 07:32:20 ID:Kf6eqU14] 追記 呼び出し側がマルチスレッド使ってるかどうかはあまり関係ない ふたつのプロセスがメモリを共有してようがしてまいが ドライバにとっては関係ない話だ それよりCPUが複数ある(いわゆるSMP)かどうかの方が重要 smp対応させるなら必要なところできっちりspinlockしないとダメ