[表示 : 全て 最新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]
ディバイスドライバの改造、製作にまつわる情報交換、質問、
噂話、ぐち、政治、経済に関するスレです。できる限り生産的にいきましょーや。


682 名前:login:Penguin [2007/08/31(金) 07:07:24 ID: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 mailto:sage [2007/08/31(金) 07:12:11 ID:Bq5CxAt1]
>>682
シリアル通信の基本を誰かに教えてもらったら...

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

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


685 名前:login:Penguin [2007/09/12(水) 11:40:08 ID:W+jFMZNC]
初歩的な質問で、すみません

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

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

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

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

686 名前:685 [2007/09/12(水) 11:47:03 ID:W+jFMZNC]
コピペでは無理だったので、ロダに上げしました
sakuratan.ddo.jp/uploader/source/date51655.c

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つのアプリがマルチスレッドになってるという場合もありでお願いしたい






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

前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