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


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

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



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


660 名前:login:Penguin mailto:sage [2007/04/28(土) 23:24:32 ID:ZU2q9XRX.net]
>>639
ttp://d.hatena.ne.jp/Newmarket/20060828/1156705255

661 名前:login:Penguin mailto:sage [2007/04/28(土) 23:42:14 ID:o6o1fGCI.net]
馬の多さにワロタ

662 名前:login:Penguin [2007/05/03(木) 23:34:15 ID:ErpReMz0.net]
カーネルのソースツリーの一部分だけ、お試しでコンパイル
したいときってどのようにすればいいですか?

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

663 名前:login:Penguin mailto:sage [2007/05/04(金) 00:08:49 ID:9yQs8D1Y.net]
>>651
なんだかんだいっても、一度全体コンパイルしておくのが一番早い。

664 名前:login:Penguin [2007/05/04(金) 00:18:46 ID:yYLKnQ2E.net]
>>652
thx.でも、

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

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

665 名前:login:Penguin mailto:sage [2007/05/04(金) 00:23:00 ID:gFGVYRPM.net]
やっぱりCPU速くするのが一番

666 名前:login:Penguin mailto:sage [2007/05/04(金) 00:24:14 ID:yYLKnQ2E.net]
そこをなんとか。

667 名前:login:Penguin mailto:sage [2007/05/04(金) 00:35:21 ID:n4WASQRt.net]
>>653
2.6だったらトップディレクトリから

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

とか出来る。


668 名前:login:Penguin mailto:sage [2007/05/04(金) 00:38:41 ID:yYLKnQ2E.net]
できました。ありがとうございました。



669 名前:login:Penguin mailto:sage [2007/05/04(金) 01:24:26 ID:ulT/mofy.net]
>>576
カーネルをコンパイルしたgccでモジュールをコンパイルしないとinsmod時にそのエラーが出るよ。

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


671 名前:login:Penguin mailto:sage [2007/05/26(土) 11:11:39 ID:XoKsvVbX.net]
>>15
IPLで使いたい分のメモリを確保すればいいって聞いたことがある。
カーネルのブートパラメータでから使いたい分を引く感じ。

672 名前:login:Penguin mailto:sage [2007/05/26(土) 16:19:33 ID:olOYm4ED.net]
>>660
それで短くなるの? ならないと思うけど。

673 名前:login:Penguin mailto:sage [2007/05/26(土) 23:30:58 ID:XoKsvVbX.net]
>>661
あれ?なんかぜんぜん違う話へのレスになってる…。
スマソ、なんか誤爆っぽい…orz

674 名前:login:Penguin [2007/06/03(日) 15:06:38 ID:W8zh9WHI.net]
ドライバ内での 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

675 名前:login:Penguin mailto:sage [2007/06/03(日) 15:14:36 ID:1QJRDZ5d.net]
>>663
ドライバで浮動小数点の計算はしない方がいいと思う。

676 名前:login:Penguin mailto:sage [2007/06/03(日) 15:35:59 ID:W8zh9WHI.net]
proc_fs で表示するために使いたいのですが,駄目なんでしょうか...?

677 名前:login:Penguin mailto:sage [2007/06/03(日) 16:53:58 ID:KH63vIBs.net]
浮動小数点演算はFPUを使う可能性があるから
カーネルモードでは可能な限り避けるべき

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

678 名前:login:Penguin mailto:sage [2007/06/03(日) 23:23:42 ID:/hAY1VOO.net]
「速度的な利点」って何に対する何の利点?



679 名前:login:Penguin mailto:sage [2007/06/03(日) 23:31:28 ID:5NVvB11p.net]
きっと >>666 の CPU は浮動小数点演算を使うと割り込み禁止になるんだろう

680 名前:login:Penguin mailto:sage [2007/06/04(月) 00:46:42 ID:CXn8XPVL.net]
nVidiaのドライバの解析って3年ぐらいまでやってる人間
いたけど今どうなってるの?

681 名前:webmaster@気まぐれアナスイ mailto:192.168.0.1 [2007/06/04(月) 12:11:48 ID:RaTjYNE+.net]
!(-_Φ+){ ... }

682 名前:663 mailto:sage [2007/06/05(火) 02:17:22 ID:aHzmfEHS.net]
とりあえず固定小数点もどきをつかって回避して,こんなのできました.
お時間があれば添削などしていただけると嬉しいです.

acapulco.dyndns.org/usbrh/

683 名前:login:Penguin mailto:sage [2007/06/05(火) 10:49:22 ID:qhZ8Q9LN.net]
>>665
固定小数点じゃだめか?

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

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

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

684 名前:login:Penguin [2007/07/16(月) 18:26:19 ID:h1/eDBu5.net]
はck

685 名前:login:Penguin [2007/08/06(月) 00:29:52 ID:E6mK6Nbx.net]
ドライバ書くときってCPUの事は知っておいた方がいいのでしょうか?

686 名前:login:Penguin mailto:sage [2007/08/06(月) 01:55:04 ID:Taq1zrH7.net]
どうでもいいよ
タマゴがどっち向きかだけ知っとけば

687 名前:login:Penguin [2007/08/28(火) 23:24:19 ID:aUO2fWSH.net]
あげ

688 名前:login:Penguin mailto:sage [2007/08/29(水) 01:23:49 ID:bmM5qB+B.net]
>>675
俺はとんがったほうから食べるのが好きだ。



689 名前:login:Penguin mailto:sage [2007/08/29(水) 23:50:22 ID:E1JDVS03.net]
どちらから割るのが正しいかが問題だ。大きいほうか、尖った方か。
16bit時代以降、中には大きい方から割って、尖った方から食べるという
両刀使いが出てきてさらにややこしくなった。

690 名前:login:Penguin mailto:sage [2007/08/30(木) 12:40:15 ID:pmmgZB5J.net]
そんな両刀使いがいたのか
具体的にはドレ?

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

692 名前:login:Penguin mailto:sage [2007/08/31(金) 01:04:08 ID://apeG96.net]
まあそうはいっても日常的にミックスは体験してるよな
通信プロトコルは大体ビッグだからな

693 名前:login:Penguin [2007/08/31(金) 07:07:24 ID:IHXG9RG5.net]
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);

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

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

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


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

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

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

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

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

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

698 名前:login:Penguin mailto:sage [2007/09/12(水) 12:38:12 ID:b4ZSgzLd.net]
>>685
ハードウエアを接続したとき、dmesgにはなんて出てくる?



699 名前:685 [2007/09/12(水) 13:23:18 ID:W+jFMZNC.net]
>>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


700 名前:login:Penguin mailto:sage [2007/09/12(水) 13:41:02 ID:Eo9vQi0w.net]
>>688
フックできないような感じだけど? []
[ここ壊れてます]

702 名前:login:Penguin mailto:sage [2007/09/12(水) 14:04:06 ID:gJXCaswd.net]
usb_device_id の .driver_info だけ定義するとすべてのデバイスにマッチするらしい(馬本参照)ので
デバッグ用にやってみるのがいいかも

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

703 名前:login:Penguin [2007/09/13(木) 12:25:45 ID:oMFp/NB1.net]
ドライバの開発って難しいでしょうか?

704 名前:login:Penguin mailto:sage [2007/09/13(木) 21:34:22 ID:dbMVSAQN.net]
そのような質問をする方には難しいです。

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

706 名前:login:Penguin [2007/10/03(水) 08:13:37 ID:WhUHfKUP.net]
あげ

707 名前:login:Penguin mailto:sage [2007/10/07(日) 18:44:44 ID:wad8eg6i.net]
UIO:ユーザー空間でデバイスドライバ作成が可能に
www.atmarkit.co.jp/flinux/rensai/watch2007/watch09a.html

708 名前:login:Penguin [2007/10/08(月) 12:39:42 ID:v1nGyoTL.net]
馬本でデバドラを勉強しています。
カーネルのソースでドライバやったことがない人にも分かりやすいソースってどれですかね?



709 名前:login:Penguin mailto:sage [2007/10/08(月) 12:48:08 ID:Y0LW8BuC.net]
そんな事言ってる位なら、馬本のドライバソース見ればいいじゃん。ダウンロードできるよ

710 名前:login:Penguin mailto:sage [2007/10/09(火) 08:54:41 ID:qhmHV8vi.net]
>>696
何系のドライバかによるのでは>どれを見たらいいか。

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

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

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

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


711 名前:696 [2007/10/09(火) 12:16:03 ID:BjHL69v3.net]
>>697-697
レスありがとうございます。

712 名前:login:Penguin mailto:sage [2007/10/18(木) 23:39:59 ID:YYamJxiT.net]
複数のデバイス間でデータをバイパス
したいのですがサンプルないですか?

713 名前:login:Penguin mailto:sage [2007/10/19(金) 14:04:12 ID:CYTWECsc.net]
いくらなんでも漠然としすぎだろw

714 名前:login:Penguin mailto:sage [2007/10/20(土) 01:03:15 ID:jtNU9aYY.net]
2ポートとか4ポート付きのNICって
モジュールはどのようにロードされるの?
またデータの共有とかRx,Txバッファの
管理とかどうなってるの?

715 名前:login:Penguin mailto:sage [2007/10/20(土) 04:41:50 ID:izm7N8bV.net]
1ポートのNICが複数枚ある場合と大差はない。


716 名前:login:Penguin [2007/10/21(日) 17:41:17 ID:yGaxVLsH.net]
>>701
各ポートにデバイス eth0, eth1 ... と付いて、このデバイスファイルごとに
設定が管理されるだけじゃね?

717 名前:login:Penguin mailto:sage [2007/10/21(日) 18:39:44 ID:SCXCQ8PP.net]
>>704
pciのデバイスとしては1つにしか見えないんだけどさ
どうやって、その後4ポート認識してるかわからないんだよね

718 名前:login:Penguin mailto:sage [2007/10/21(日) 19:36:55 ID:f7YPzoUy.net]
>>705
それはPCIブリッジが載ってるからじゃね?
LANチップはその向こうのローカルバスに4ケ載ってるかと。



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

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

720 名前:login:Penguin mailto:sage [2007/10/23(火) 21:05:08 ID:tiPDo332.net]
>>707
Documentation/firmware_class/*
?

721 名前:login:Penguin mailto:sage [2007/10/23(火) 22:03:44 ID:+D+WWc4l.net]
BUFFALOのCD-RWドライブがまだ使えるのでハックしたいんですが、
必要な情報ってメーカーから提供されているんでしょうか?

722 名前:login:Penguin mailto:sage [2007/10/24(水) 15:38:46 ID:8BiGN5WQ.net]
ハゲシク板違い

723 名前:login:Penguin mailto:sage [2007/10/26(金) 18:00:12 ID:OMFZLcsd.net]
お馬さんの本読んで勉強してるのだが、さっぱり分からん。
ちなみに今3章のscullデバイス。

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

意見求む!!

724 名前:login:Penguin mailto:sage [2007/10/26(金) 18:53:10 ID:OVakku/9.net]
やる気の問題じゃね?

725 名前:login:Penguin mailto:sage [2007/10/26(金) 20:06:04 ID:nlKsXgN2.net]
>>711
「作ってみなきゃわかんない」 の典型かもしれん。
実際作業するとキャラクタデバイスは楽しい。

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

726 名前:login:Penguin mailto:sage [2007/10/27(土) 11:47:28 ID:US/tv6oE.net]
よくわかんないのが、他のドライバの叩き方なんだよな。

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

727 名前:login:Penguin mailto:sage [2007/10/27(土) 12:04:42 ID:Y1miLqrF.net]
OSの勉強やり直しっぽい

728 名前:login:Penguin [2007/10/27(土) 19:45:56 ID:5LV4rb/o.net]
>>714
それってkernelspaceじゃなくてuserspaceでやればいいのでは。



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

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

730 名前:login:Penguin mailto:sage [2007/10/27(土) 21:00:45 ID:RlzxlVfH.net]
>>717
とにかくなんでもいいから氏ねw

731 名前:711 mailto:sage [2007/10/28(日) 02:49:08 ID:W9zUZBn1.net]
>>712
鋭いな。そうかもしんない。

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

732 名前:login:Penguin mailto:sage [2007/10/28(日) 02:54:06 ID:7ULWmmgi.net]
>>717
ntfs-3g なんかはfuseだけど、実用的に動いているし、全然2級って感じしないけど。

733 名前:login:Penguin [2007/10/28(日) 23:36:04 ID:jy3FHf6c.net]
馬本にOSの仕組みを知ってる必要があると書いてありましたが、
どんなことを知っていたほうがいいのでしょうか?

734 名前:login:Penguin mailto:sage [2007/10/28(日) 23:41:48 ID:1vAj4w/k.net]
メモリ管理・特権・スケジューリング・ファイルシステム(ry…全部じゃん

735 名前:login:Penguin [2007/10/28(日) 23:45:24 ID:jy3FHf6c.net]
>>722
ありがとうございます。
詳解Linuxカーネルも読みます。

736 名前:login:Penguin mailto:sage [2007/10/29(月) 00:42:23 ID:uCaYz1aO.net]
>>723
知りたくなったときに読めばいいよ
でも必ず買っとけ

737 名前:login:Penguin mailto:sage [2007/10/29(月) 09:44:50 ID:wx/mrO8x.net]
買うなら原書(英語版)のほうがいいぜ
版が新しいし安いからな

738 名前:login:Penguin mailto:sage [2007/10/29(月) 10:27:48 ID:nDk3r2gZ.net]
> 版が新しいし
4th edition でたの?



739 名前:login:Penguin mailto:sage [2007/10/29(月) 20:53:20 ID:Bg0Jp9i7.net]
konozama.comとか少しは自分で調べようよ

740 名前:login:Penguin mailto:sage [2007/10/29(月) 23:42:16 ID:oMEBh2dX.net]
Oh〜、チョッとお聞きしただけで損何怒らなくても
いいじゃないですかぁ〜。Hey,take it easy !
でも調べるところは教えてくれるアナタに感謝で〜す!

741 名前:login:Penguin [2007/11/08(木) 00:29:00 ID:Cm3oK6QC.net]
メーカーとかが作ったデバドラのソースって公開してるものはあるのでしょうか?

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


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

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

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

744 名前:login:Penguin mailto:sage [2007/11/12(月) 23:57:28 ID:xIHzaILy.net]
>>731
おめー御馬様のサンプル
見てていってるんだよね?

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

745 名前:login:Penguin mailto:sage [2007/11/13(火) 00:56:13 ID:0Tz4Ruwv.net]
>>732
よく判ってらっしゃる。
馬本はさらっと読みましたが元がLinuxでも組み込みでもない世界で
やってて、急遽ヘルプで入ったんでさっぱり。

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

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

746 名前:login:Penguin mailto:sage [2007/11/13(火) 01:11:37 ID:nAlW3/rO.net]
>>733
一週間悩んだら解かんないか?
すげー複雑な科学計算とか遺伝子関係の
プログラミング以外ほとんどの対象のプログラミング
なんて簡単だぞ

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

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

748 名前:login:Penguin mailto:sage [2007/11/13(火) 01:24:22 ID:O430Avmc.net]
御馬様っていうのか・・・
昨日、買いました。勉強します〜



749 名前:login:Penguin mailto:sage [2007/11/13(火) 09:24:54 ID:SFIG7nsG.net]
>>734
ちなみに、回答しない人の言うことは無視したほうがいいよ。
>>732はニートとか言ってるし典型的な煽り。

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

751 名前:login:Penguin mailto:sage [2007/11/14(水) 02:20:20 ID:aLuJUt0c.net]
文句とか愚痴だけいって何も貢献しない人間ほどむかつく奴はいない。

752 名前:login:Penguin [2007/11/17(土) 09:40:38 ID:MN9c6cz5.net]
>>739
どうどうどぅ…

753 名前:login:Penguin mailto:sage [2007/11/17(土) 11:39:12 ID:AZzmHExp.net]
>>739
Do! Do! Do!

754 名前:login:Penguin [2007/11/17(土) 11:43:31 ID:4avAGLIe.net]
do_fork

755 名前:login:Penguin [2007/11/29(木) 13:55:56 ID:yo1OGExb.net]
mmapで特定のデバイスのIOメモリを仮想空間に割り付けて,
その領域に対してユーザーからデータを書き込むことを考えています.

ユーザープログラムからその領域上に,あるデータ型の双方向リスト
を作りたいのですが,ユーザー空間の特定のアドレス範囲から空き
メモリ領域を動的に確保する方法ってないでしょうか

void *dev_malloc(start_address, end_adress, nbyte);
とすると仮想アドレスstart_address〜end_adressの範囲から
nbyteバイトの領域を確保するみたいなイメージです


756 名前:login:Penguin mailto:sage [2007/11/29(木) 20:09:08 ID:iCD9/EY6.net]
>>743
かーなーり スレ違い
デバイスドライバ関係ない
汎用heap管理ライブラリがほしいってことだろ

heap-management とか ヒープ管理 でぐぐってみそ

ちなみに
void *dev_malloc(start_address, end_adress, nbyte);
ってI/Fはありえないと思うぞ
毎回 start_addressとend_adressを与えるわけ??

757 名前:login:Penguin [2007/12/02(日) 23:50:11 ID:lbIQi7BJ.net]
あげ

758 名前:login:Penguin [2007/12/13(木) 19:50:31 ID:pBhS9AMD.net]
あげ



759 名前: [2007/12/18(火) 23:09:45 ID:K//ZswLt.net]
ドライバでCPUキャッシュのフラッシュやりたい!
どうやるの?だれかおせぇ〜てぇ〜

760 名前:login:Penguin mailto:sage [2007/12/18(火) 23:41:07 ID:uNdsweTC.net]
>>747
CPUキャッシュのフラッシュをする命令を実行すればいいんじゃない?
CPUはなに?

761 名前: [2007/12/18(火) 23:59:27 ID:K//ZswLt.net]
>>748
Xeonの5100です。
データシートとか見つからなくて。。。
ご存知でしたら教えていただけませんか?

<経緯>
Linuxマシンで、DMAでPCIeのデバイスからホストメモリにデータ転送
したときにキャッシュのせいか、2周目のリングバッファ領域が
うまく参照できていなく、フラッシュすればと思いました。。



762 名前:login:Penguin mailto:sage [2007/12/23(日) 13:45:51 ID:VU+KNtKv.net]
>>ORE
ttp://www.intel.com/products/processor/manuals/index.htm

763 名前:login:Penguin [2007/12/24(月) 18:03:58 ID:ugbio3bt.net]
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は使えるのでしょうか?

764 名前: 【大吉】 【801円】 [2008/01/01(火) 19:54:53 ID:EHGXP/cp.net]
新年あげ

765 名前: 【中吉】 【156円】 [2008/01/01(火) 20:58:21 ID:LfamTH+n.net]
>750
749じゃないけど,これいいな.サンクス.
みんなチップのデータとかはどこから調べてくるの?
ちょっと想像してみたけど,「とりあえずメーカサイトを調べる」
以外の方法がわからん.
windowsのドライバから情報調べたりする人もいるの?
いたらその解析方法とかおしえてください.

766 名前:login:Penguin mailto:sage [2008/01/01(火) 20:59:27 ID:VCekl7x7.net]
>>753
メーカに電話して聞く

767 名前:login:Penguin mailto:sage [2008/01/01(火) 23:23:30 ID:hQDOyXLN.net]
>>749
Intel の CPU だとその手のキャッシュのことは気にしなくていいんじゃなかったっけ?
いわゆるバススヌープ。ま、明示的にフラッシュしたきゃできるだろうけど。
(実は俺自身は x86 以外用のドライバしか書いたことがないので聞きかじりだが...)

あと、キャッシュが効いているなら1周目でも駄目な場合がありそうだがどうなん?
単にリングバッファのアリゴリズムでしくじってたりして。

って、よく見るとえらい昔の書き込みだった。もう解決したのかな。

768 名前:login:Penguin mailto:sage [2008/01/02(水) 12:58:56 ID:jVjgkvN4.net]
チップの購入先の営業から入手とか
チップベンダのwebサイトからダウンロードだろ
常考



769 名前:login:Penguin [2008/01/14(月) 11:44:33 ID:MLu8ArWP.net]
今馬本の第 3 版読んでんだけど scull のソースコードって
Web でダウンロードできるの?

770 名前:login:Penguin mailto:sage [2008/01/14(月) 11:59:56 ID:hAs2atpA.net]
あるよ

771 名前:login:Penguin mailto:sage [2008/01/14(月) 13:03:13 ID:MLu8ArWP.net]
>>758
早速ありがとう.
本を斜め読みしてるんだけど URL が見当たらないです.
検索しても見付からないし,もしよろしければ教えていただけますと
うれしいです

772 名前:login:Penguin mailto:sage [2008/01/14(月) 13:36:46 ID:Q2m15cvj.net]
>>759
>>80

773 名前:login:Penguin mailto:sage [2008/01/14(月) 14:10:16 ID:MLu8ArWP.net]
>>759
ありがとう! 3版のは FTP で以下からダウンロードできました.

ar.linux.it/pub/ldd3/ldd3-samples-1.0.0.tar.gz

かなり感謝です ありがとう

774 名前:login:Penguin mailto:sage [2008/01/14(月) 14:13:07 ID:MLu8ArWP.net]
自分にお礼ちまった

>>761の「>>759」は >>760 の間違いです
>>760さんありがとう

775 名前:login:Penguin mailto:sage [2008/01/17(木) 11:56:40 ID:1+AIbUNm.net]
>>761
あれ?お馬さんの第3版それなの?
日付が気になるので、第3版翻訳本に載ってたのをこぴぺ

ftp://example.oreilly.com/pub/examples/linuxdrive3
examples.tar.gz 70 KB 2005/05/12 0:00:00

ちょいとだけ新しいかも。同じくLinuxデバドラはじめる所なので
よろしく〜。Win系でWDM書いてました〜。

776 名前:!omikuji !dama [2008/01/25(金) 07:11:44 ID:dVpHcdky.net]
kaso

777 名前:login:Penguin mailto:sage [2008/01/25(金) 21:56:39 ID:OZPnpJ0W.net]
ドライバでのロックの掛け方とか
その変のデザインパターンみたいなもの
ないのですか?

馬本読んでも、DualSocket 4コアとか
その辺の場合どうすればいいとかまったく
書いてなくて困ってる。

CPU毎にあるモノを意識しなければならないのか
全リソースを意識した作りなのかの判断も
ケースバイケースとかだし。WDMの方がいいよね

778 名前:login:Penguin mailto:sage [2008/01/26(土) 23:10:19 ID:jNmSnKBM.net]
>>765
スピンロック様



779 名前:login:Penguin mailto:sage [2008/01/27(日) 14:19:40 ID:/9d4A9Tg.net]
WDMってよく知らないが、割り禁、スピン、寝る&起こす以外に
排他の方法があるの?

780 名前:login:Penguin mailto:sage [2008/01/27(日) 17:28:29 ID:Q2ylOq7r.net]
そもそも排他なんじゃねーの?
昔はLinuxも明示的にスケジュールよぶまで
カーネル空間は排他だったじゃん
SMPが出てきて全部直す羽目になったけど

781 名前:login:Penguin mailto:sage [2008/01/27(日) 19:45:28 ID:/9d4A9Tg.net]
割込みハンドラ

782 名前:login:Penguin [2008/02/03(日) 19:45:35 ID:coODkdMv.net]
過疎

783 名前:login:Penguin mailto:sage [2008/02/07(木) 03:30:55 ID:9BnmgFGp.net]
「新着1件ってことは、いつもの良スレ上げ厨かなぁ」と思ったらそう来たか。

784 名前:login:Penguin [2008/02/19(火) 16:29:32 ID:vNMS2dUr.net]
基本的に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を叩く方法が悪いのか…
アドバイス等お願い出来ますでしょうか。

785 名前:login:Penguin mailto:sage [2008/02/19(火) 19:10:24 ID:5BDGV8A6.net]
デバイスドライバでunistd.hなんかincludeしちゃダメだろ
fcntl.hも同様

786 名前:login:Penguin mailto:sage [2008/02/19(火) 21:35:29 ID:ec7S8nn5.net]
何言ってるのかわからないなw
PCIデバイスとして、I2Cバスへのブリッジが載っているのか?
それとも、PCIバス/デバイスとは関係なく、全く別のI2Cバス上のデバイスをアクセスしたいだけなのか?

787 名前:772 mailto:sage [2008/02/19(火) 22:00:59 ID:vQR2/dLm.net]
>>773
やっぱりダメですか。

というか、無理やり環境変数使ってコンパイラのエラーを抜けてる(unistd.h以降3ヘッダ、加えてfcntl.h)のは全部includeしちゃダメですかね。

>>774
>PCIデバイスとして、I2Cバスへのブリッジが載っているのか?
>それとも、PCIバス/デバイスとは関係なく、全く別のI2Cバス上のデバイスをアクセスしたいだけなのか?

PCIデバイスにI2Cバスへのブリッジが載っている、のはずです。


788 名前:login:Penguin mailto:sage [2008/02/19(火) 22:53:37 ID:5BDGV8A6.net]
つーかさ
カーネルモードで動いてるデバイスドライバの中から
open()とかclose()とかioctl()みたいなシステムコールを
発行できるわけないだろ?

>>772が作りたいと思ってるのは root権限で直接I/O叩くだけの
ユーザランドで動くアプリなんじゃないのか?



789 名前:login:Penguin mailto:sage [2008/02/19(火) 23:10:27 ID:ec7S8nn5.net]
>>775
じゃあ、そのPCI-I2Cブリッジのデバイスドライバを書いているんだとして、
>I2Cのオープンのために
なんで、こうなるのよw 
とりあえずDocumentation/i2c/summaryでも読んでくれ。

790 名前:login:Penguin mailto:sage [2008/02/20(水) 08:43:00 ID:zgvkT7V3.net]
>>776
呼んじゃダメなんですね。了解しました。
先週までアプリしかやったことがなく、ついそっち寄りな考えに、と、蛇足でした。失礼しました。

>>777
あー、確かに。
教えていただいたものを読んでみます。
ありがとうございました。

791 名前:login:Penguin mailto:sage [2008/02/20(水) 09:40:57 ID:zxxPBExl.net]
>>773
そういえば、しちゃダメだ ってどこにも書いてないな
わからない奴はわからないんじゃないか?

792 名前:login:Penguin mailto:sage [2008/02/21(木) 00:46:11 ID:VUV3LHo/.net]
ちょっと相談なんだが、いいかな

writeの中で長時間割り込み待ちをするような処理と、その場で終わる処理を持ったデバドラがあって、
(処理の切り替えはioctl)
まずアプリAが長時間かかる処理のためにwriteわ呼び出す。

当然割り込み待ちになるが、そのままアプリBがioctlやwriteを呼び出すとどうなる?
普通に処理出来る?

793 名前:login:Penguin mailto:sage [2008/02/21(木) 00:55:15 ID:A2lpGb2W.net]
一つのデバイスを二つのアプリで同時に使うっつー事ですか?

794 名前:login:Penguin mailto:sage [2008/02/21(木) 01:18:43 ID:VUV3LHo/.net]
>>781
その通りで。
ただ、1つのアプリがマルチスレッドになってるという場合もありでお願いしたい

795 名前:login:Penguin mailto:sage [2008/02/21(木) 01:55:12 ID:6LvlPNy5.net]
できるかどうかは作り方次第だろうな

資源の排他処理が必要なら、ロック使わなきゃならん
その場合は、すぐ終わるはずの処理ももちろん待たされる

待たせたくなけりゃ、長時間かかるというwriteにバッファを設けて
write処理と割り込み処理とを分離するみたいな工夫したらどうだ

的外れならスマソ

796 名前:login:Penguin mailto:sage [2008/02/21(木) 02:11:45 ID:VUV3LHo/.net]
>>783
資源は共有しないからロックはいらなさそうだ
writeにバッファを設けて処理を分離ってのがイマイチわからんのだけど、説明頼んでもいいかい?
デバドラの中でもスレッドとかで並列にするの?

797 名前:login:Penguin mailto:sage [2008/02/21(木) 06:04:45 ID:Xs+RkuJQ.net]
シリアルポートを想像してみたらどうだろう
Write、Read、割り込みがそれぞれ並列に動くはずだ

Writeで割り込み使ってるかどうかは知らないけど

798 名前:login:Penguin mailto:sage [2008/02/21(木) 07:26:26 ID:Kf6eqU14.net]
ブロック と ノンブロック という用語を使ってほしいところだな

んで複数プロセスから同時に使えるかどうかはデバイスドライバの作り方次第
手抜きにつくると open()されるときに競合問題を判断して
同時にひとつとかopenできないようにするよな

複数同時にopenして、ひとつがブロックしてる時に
また別のがノンブロックの処理要求してきたなんて場合は
そういう風にうまく動くようにドライバの中で考慮する必要がある



799 名前:login:Penguin mailto:sage [2008/02/21(木) 07:32:20 ID:Kf6eqU14.net]
追記

呼び出し側がマルチスレッド使ってるかどうかはあまり関係ない
ふたつのプロセスがメモリを共有してようがしてまいが
ドライバにとっては関係ない話だ

それよりCPUが複数ある(いわゆるSMP)かどうかの方が重要
smp対応させるなら必要なところできっちりspinlockしないとダメ

800 名前:login:Penguin mailto:sage [2008/02/21(木) 08:59:36 ID:VUV3LHo/.net]
>>787-788
ブロック=長時間処理
ノンブロック=即時処理
でおk?

複数からopenされるのはアリにしないといけないっぽいんで、考えてみる。

ブロック中にアプリBからもwrite自体は呼び出せる?
その時点で破綻してるなら、今のwriteをそのままスレッド化して、write自体はスレッド起動だけにするなりで対応とか…ダメかな

あとCPUは1つ前提でおkっす。
余裕があったら後学のためにもsmp対応も抑えておきたいがw

801 名前:login:Penguin mailto:sage [2008/02/21(木) 09:10:48 ID:Kf6eqU14.net]
> ブロック中にアプリBからもwrite自体は呼び出せる?
もちろん呼べる

ブロック処理とは、簡単にいうと処理開始をデバイス(ハードウェア)に
通知したあとスリープ状態に入り、処理完了割込が入ったら
割込ハンドラがスリープ(ブロッキング)しているプロセスを
たたき起こすって流れ。

アプリAがスリープ(ブロッキング)している間に
アプリBからreadなりwriteなりが発行されるのは当然ありうる話。
ちゃんとドライバを書いておけば問題なく動く。

linuxカーネルのソースコードそのものがいいサンプルコードだから
いろいろ読んでみるとよい。

それから、procfs(/procの下に仮想ファイルをつくる)に
状態監視・デバッグ操作用のI/Fを用意しておくと後々楽になるよ。

802 名前:login:Penguin mailto:sage [2008/02/21(木) 09:27:27 ID:VUV3LHo/.net]
>>789
凄く参考になった!
ありがとう

>答えてくれた人達
いろいろありがとう

803 名前:login:Penguin [2008/03/03(月) 00:13:39 ID:JgGlbVL6.net]
ttp://www.atmarkit.co.jp/fsecurity/rensai/rootkit03/rootkit02.html

上記を参考にシステムコールをフックするプログラムを書きました(そのままでは駄目なので必要に応じて修正しています)。
コンパイルすると、

original_sys_uname = sys_call_table[sys_uname];
sys_call_table[sys_uname] = hook_uname;

のsys_unameで `sys_uname' undeclared (first use in this function) とエラーがでます。
これは arch/i386/kernel/syscall_table.S をインクルードしておく必要があるのでしょうか?

使用しているカーネル:2.6.23

804 名前:login:Penguin mailto:sage [2008/03/03(月) 01:17:37 ID:dOT+ttrq.net]
>>791
よく知らんけど、これよめ。
System calls replacement
ttp://kerneltrap.org/node/5793

nm -uでundefinedなシンボルが置き換えらればいいだけなら、
LD_PRELOADなりLD_AUDITをつかってどうにかしたほうがいいんじゃね?
そうなら、以後下へどうぞ。

Linuxプログラミング
pc11.2ch.net/test/read.cgi/linux/1118024349/

805 名前:login:Penguin mailto:sage [2008/03/03(月) 04:02:04 ID:JCTvrwL7.net]
>>791
sys_call_table[NR_uname] = hook_uname;
の様な気がするわけですが。

>>792
それはユーザー空間で乗っ取る方法ですがな。


806 名前:791 [2008/03/03(月) 07:25:41 ID:zrYDUX8A.net]
>>792-793
試してみます。
情報ありがとうございます。

807 名前:login:Penguin mailto:sage [2008/03/04(火) 09:36:17 ID:NdRlprld.net]
>>791
乗り遅れたか!?

Linux 2.6からシステムコールのフックはできません。
パッチ当てなきゃできないようなことが
ttp://tldp.org/LDP/lkmpg/2.6/lkmpg.pdf
8章にそのようなことが書いてあったはず。

記憶が確かなら、792の示したサイトの
unsigned long **sys_call_table = find_sys_call_table();を
加えればできたと思う。

808 名前:795 mailto:sage [2008/03/04(火) 09:39:35 ID:NdRlprld.net]
>>791
パッチを当てるのが嫌ならLSMを使ったらいい。
決まった関数で始めるとか、とかsecurity_operations構造体に登録するあたりとか
デバドラに似ているからsecurity以下を読めば使えると思う。



809 名前:791 [2008/03/04(火) 19:10:21 ID:iX0t2env.net]
>>795
どうもです。
あれから色々調べたら>>795の言うとおりに2.6.xからはできないみたいですね。
下記のURLに書いてある。i386_ksyms.cに

extern void* sys_call_table[];
EXPORT_SYMBOL(sys_call_table);

を、追加・再構築してやってみようと思います。

ttp://mail.nl.linux.org/kernelnewbies/2006-05/msg00334.html

810 名前:login:Penguin mailto:sage [2008/03/04(火) 20:25:09 ID:neWtFAJV.net]
>>791
調べもせずに書いてるけどLinux版のウィルス対策ソフトのお試し版に
運がよければカーネルモジュールのソースが含まれていて、なおかつ、
それがシステムコールのフックしていたりしないか?

811 名前:791 [2008/03/05(水) 00:39:02 ID:QPFLTsD+.net]
>>798
そのようなことはございません

812 名前:login:Penguin [2008/03/17(月) 18:46:02 ID:c0UdNwV3.net]
あげ

813 名前:login:Penguin mailto:sage [2008/03/18(火) 18:12:00 ID:z8581E+A.net]
init中にalloc_chrdev_regionでデバイス番号を動的確保した後で、
そのまま(関数内で)スペシャルファイルを作成する事は可能?

mknodコマンドでなく、あくまでインスコだけで済ませるように出来ないかと…

814 名前:login:Penguin mailto:sage [2008/03/18(火) 18:22:19 ID:qC/Waqz9.net]
udevじゃダメなの?

815 名前:login:Penguin mailto:sage [2008/03/18(火) 20:50:35 ID:Hq9+Lc7G.net]
>>801
オレならprocなりsysなりのみで済ます

816 名前:801 mailto:sage [2008/03/18(火) 21:37:57 ID:z8581E+A.net]
>>802>>803
それだとinsmod以外にも必要になるんじゃないんですか?
関数で無いですかね
(init_moduleから呼び出す)

insmod hoge
だけ実行すればアプリから叩けるような形にしたいんですが…

817 名前:login:Penguin mailto:sage [2008/03/18(火) 21:49:17 ID:irgQA2zj.net]
shell スクリプト作ってその中で insmod、mknod すれば?
rmmod も出来るようにすれば、なお良いでしょ?

818 名前:login:Penguin mailto:sage [2008/03/18(火) 23:47:40 ID:z8581E+A.net]
>>805
それが良さげですね。
ありがとうございました。



819 名前:login:Penguin mailto:sage [2008/03/18(火) 23:49:33 ID:owXiyD5i.net]
>>801
mknodしたくないってだけなら、device_create(9)か、手を抜きたいなら
misc_reg

820 名前:ister(9)に全部にまかせれば、>>802が言ってるように、udevが勝手に
スペシャルファイルを作ってくれるんじゃないか?
[]
[ここ壊れてます]

821 名前:login:Penguin mailto:sage [2008/03/19(水) 10:35:22 ID:J+fEVrF8.net]
ブロックデバイスのブロックサイズってどこで決まってるの?
ユーザアプリから見る方法ある?

822 名前:login:Penguin mailto:sage [2008/03/19(水) 14:37:31 ID:ZMxkS/nc.net]
>>808
mkfsする時に決まると思うが。
ext2/ext3 なら tune2fs -l で見るか、ファイルがあれば stat構造体の st_blksize を見る。

823 名前:login:Penguin mailto:sage [2008/03/20(木) 00:19:26 ID:tEIlyDHp.net]
>>808
そのブロックデバイスドライバが制御しているハードの規格によりだね。
SCSI系ならMode Senseコマンドで取れたんじゃないっけ?

824 名前:login:Penguin mailto:sage [2008/03/20(木) 00:24:56 ID:tEIlyDHp.net]
>>808
試してないけど、blktool(8)のblock-szコマンドでいけそうかもね?

825 名前:login:Penguin mailto:sage [2008/03/20(木) 02:10:32 ID:wMmGSYfl.net]
>>809
フォーマットする前に最適値を知っときたい乙女心です

>>810-811
ありがとう。でもハードの規格というよりブロックデバイスとして
なんかその辺を返してくれるioctlなりなんなりがあったらいいな
とか夢想してた

826 名前:login:Penguin mailto:sage [2008/03/28(金) 15:40:00 ID:BcQjSrEl.net]
>>807見て、misc_register調べてちょっと使ってみたんだけど、
これで作ったもんどうやって消すんだ?

関数自体は使い方分かったが、対になるもの無い?
misc_register込みのinsmod→rmmod→再度insmodでハングするんだが

827 名前:login:Penguin mailto:sage [2008/03/28(金) 15:47:49 ID:BcQjSrEl.net]
書いた直後に自己解決しちまったorz

misc_deregisterがあるのね…
スレ汚しすまんかった

828 名前:791 [2008/04/06(日) 15:36:55 ID:n9AD6VHb.net]
ほ?



829 名前:login:Penguin [2008/04/10(木) 21:40:14 ID:zop984mC.net]
mmapを利用して物理アドレス0x10000000に存在するデバイス(SRAM)のR/Wを
行うドライバを作成しようと思っています。
馬本の第3版のサンプルソース(simple)を参考にしながらremap_pfn_rangeで
マッピングし、ダンプをとってみたところ、0x10000000エリアのデータでは
なく、全て0のデータが読み取れました。
0x1000等の小さい物理アドレスであれば正常にリード出来ているようです。
0x10000000のように上の方のアドレスは、remap_pfn_rangeではマッピング
されないのでしょうか?

カーネルのバージョンは2.6.11です。


830 名前:816 [2008/04/10(木) 22:19:28 ID:zop984mC.net]
/dev/mem openして
memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
でも同じ結果でした・・・



831 名前:816 [2008/04/10(木) 22:20:55 ID:zop984mC.net]
訂正
>>817
>memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
>memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
mmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
mmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)


832 名前:816 [2008/04/10(木) 22:21:43 ID:zop984mC.net]
訂正
>>817
>memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
>memmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)
mmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x10000000)
mmap((void*)0, 0x1000,PROT_READ|PROT_WRITE,MAP_SHARED,fd,0x1000)


833 名前:login:Penguin mailto:sage [2008/04/10(木) 23:10:16 ID:hws3UYgb.net]
Linux 2.6.11 使ってないしためしてないけど、
/sys/devices/pci*/*/resource? を mmap(2) って出来ないんだっけ?

834 名前:login:Penguin mailto:sage [2008/04/11(金) 00:58:30 ID:pzz5pihD.net]
とりあえず、落ち着けw
man mmap2

835 名前:816 [2008/04/11(金) 23:01:18 ID:1s5/4DVK.net]
>>821
>man mmap2
↓ですよね?
www.pinkdragon.net/doc_lib/contents/ja/linux_man/mmap2.2.html
Linux 2.3.31 以降で使用可能とありますが、この環境では定義されていないと言われます。
組込み系だからなんでしょうか・・・

それと馬本第3版のP437 15.2.6 RAMのマッピングを変更する に
「ramap_pfn_rangeがRAMを扱えないことは・・・」ってくだりがあります。
実際いま起きている問題はこれなんでしょうか?
ioremap_nocacheでReadする方法とダンプ比較したところ,mmapだと
0x00000000〜0x00800000 あたりまではちゃんとよめますが、
0x01000000になったとたん、0x00000000の値になってしまいます・・・
ioremap_nocacheでは0x01000000も見れるのに・・・

836 名前:login:Penguin mailto:sage [2008/04/12(土) 04:09:25 ID:CJCvWk/v.net]
MTD使えばいいんじゃない?
phram.koとか
slram.koとか

837 名前:login:Penguin mailto:sage [2008/05/26(月) 23:35:38 ID:ZMUO6bXW.net]
タスクレットの中でsleep_on_timeoutって呼べないんですか?
なぜかカーネルパニックになってしまいます…

838 名前:login:Penguin mailto:sage [2008/05/28(水) 19:14:20 ID:eAKKlqpI.net]
タスクレットからkill_fasync()呼びたいんですけど、
第一引数ってどこから持ってくればいいんでしょうか?



839 名前:login:Penguin [2008/06/13(金) 19:47:44 ID:ngpRzev4.net]
フリーオのデバイスドライバー書ける人が居たら神!

840 名前:login:Penguin mailto:sage [2008/06/13(金) 22:56:58 ID:yAy4CW2H.net]
玄箱用のは、あるだろ

841 名前:login:Penguin [2008/07/05(土) 05:09:39 ID:+CtKxXwh.net]
あげあげ

842 名前:login:Penguin mailto:sage [2008/07/05(土) 08:11:05 ID:d6Puhgue.net]

ttp://pc11.2ch.net/test/read.cgi/linux/1213378360/

843 名前:login:Penguin mailto:sage [2008/07/05(土) 11:49:23 ID:D1363wxr.net]
やっぱり情報公開されてない物のドライバ造るのって無理がある?
Willcomスマートフォン端末でLinuxを動かすプロジェクト?があるのですが、
WS003SH、WSはPrismチップの無線LANを使用。
WS011SHではSharp独自のチップを使用した物のようです。
WS020SHは不明。

当方WS011SHの物の開発に興味があるのですが、難しいどころか情報の公開がされていない限りは
手すら付けられない状態でしょうか?
アドバイスよろしくお願いします。

844 名前:login:Penguin [2008/07/27(日) 04:17:46 ID:JGvJfhtT.net]
copy_{to,from}_user()でユーザプロセスのアドレスを与えるところにカーネル空間のアドレスを与えるとどうなります?
やっぱりaccess_ok()で弾かれる?


845 名前:login:Penguin [2008/07/27(日) 08:01:26 ID:Nq54nVAZ.net]
>>831
その程度、自分で確認しろ。

846 名前:login:Penguin [2008/08/21(木) 06:11:30 ID:5vh0FBcx.net]
あげ

847 名前:login:Penguin [2008/09/17(水) 22:50:23 ID:v0hV3n2N.net]
Linuxデバドラ移植の質問です。
雑誌の記事でx86Linuxデバドラを他CPUのLinuxに移植する際に、デバドラのソースが
x86に依存してて移植できないことを知りました。
どうやらx86プログラマが他のCPUへの移植性を考えずに開発したことが原因みたいです。

雑誌によるとデバドラの依存箇所は以下が多いようです。
・バイトオーダ
・アライメント
・I/Oアクセス
・タイミング

皆様に質問ですが、このようなx86に依存したLinuxデバドラが落ちている場所を
ご存じないでしょうか?
また、根本的なことですがx86Linuxデバドラを移植したり、移植しようとしたが
x86に依存してて大変だったという案件は多いのでしょうか?

どうぞよろしくお願いいたします。













848 名前:login:Penguin mailto:sage [2008/09/17(水) 23:58:51 ID:3YmhTjsY.net]
>>834
drivers/

直すのはそんなにめんどくないが、どこに地雷があるかわかりにくいのがのう。




849 名前:login:Penguin mailto:sage [2008/09/18(木) 00:34:30 ID:YTkXriLK.net]
>>834
というか、デバイスドライバは基本的にハードに依存して当然
という側面も否定できないと言わざるを得ないこともあるので。

850 名前:834 mailto:sage [2008/09/18(木) 00:34:38 ID:csSd+QEz.net]
カーネルソース内にあるんですね!
知りませんでした;

私は初心者でよく知らないんですが、てっきりカーネルソール内のコードって
移植性をちゃんと考えてあって(arch/以外)、管理されていると思ってました。

むしろ、カーネルソース外の開発(企業or個人)で公開されているドライバに
あるのかと思ってました。

851 名前:login:Penguin mailto:sage [2008/09/18(木) 10:25:28 ID:tEXQNL4k.net]
>>834
ふつー開発者の持ってるCPUでしかテストしないよ。

tg3とかe1000とかはNEC(ia64)とかIBM(powerpc)とかが
頑張って自分とこのハードで動くようにしてるけど、
個人でハックしてるものはたいていx86だけ。

852 名前:login:Penguin mailto:sage [2008/09/19(金) 05:32:38 ID:PmgUOzFO.net]
まあ、過去の経験からすると
・USBターゲット - ほとんど手を入れる必要無し
・PCI - そんなに苦労することはない
・CPU直結 - 健闘を祈る
てところですかねえ。


853 名前:login:Penguin [2008/11/09(日) 10:59:58 ID:QBZrgAJi.net]
age

854 名前:login:Penguin mailto:sage [2008/11/13(木) 05:29:37 ID:dS9nrsy0.net]
USBデバイスでも無線LANとかは

855 名前:login:Penguin [2008/12/07(日) 17:23:17 ID:Ht7uJKzk.net]
age

856 名前:login:Penguin mailto:sage [2008/12/19(金) 14:08:43 ID:MwDJWbRs.net]
HWからの割込み処理中の、ローカルAPICへのEOI発行タイミングについて質問があります。
レベル・トリガの割込みだった場合は、end関数からEOIを発行しています。
これは、割込み処理の先頭で発行してしまうと、I/O APICへEOIが通知され、デバイスのアサートが
失われてしまうのが不都合だからでしょうか?
カーネルのverは2.6.18 です。



857 名前:login:Penguin mailto:sage [2008/12/20(土) 08:40:05 ID:9ZJbjYSC.net]
>>843
一般的な話だけど
割り込みに関わるのは3つ。
@割り込み発生の条件と、割り込み要求するデバイス
A割り込みを調停する割り込みコントローラと、割り込み受付のカーネル
B実際の割り込み処理プログラム

@→A→Bの流れは分かるよね
それなら質問の答えも分かるよねw


わんこ蕎麦に例えると
@>>843のお椀の蓋が開いてる
A>>843のお椀に蕎麦を放り込むおばちゃん
B蕎麦を食べる>>843

満腹になった>>843Bが最初にすべきは、@の処理かAの処理か

858 名前:login:Penguin mailto:sage [2008/12/21(日) 18:36:36 ID:6RSqLOEI.net]
>>844
「ご馳走様でした」と言いながら金を払わないで蓋も開けっ放しで逃げる。





859 名前:login:Penguin mailto:sage [2008/12/21(日) 19:17:37 ID:otIiAnj0.net]
ダブルフォルト乙

860 名前:login:Penguin mailto:sage [2008/12/22(月) 03:52:28 ID:guo09gfy.net]
(1)はおばさんのスピードに勝てないと判断して、(2)のおばさんに話し掛けるよな
もうお腹いっぱいって

861 名前:login:Penguin [2009/01/24(土) 00:42:09 ID:UJ+xFTUa.net]
a

862 名前:login:Penguin mailto:sage [2009/02/17(火) 22:55:17 ID:m2mCukTw.net]
ポートIOするサンプルを作ってみようと思ったのですが、
下のコードの時点で、すでにコンパイルが通りません。
sys_ioplを呼ぶのに、何が足りないのか分からないです。
どうしたら良いか、アドバイス頂けたら助かります。
よろしくお願いします。

debian 2.6.24 gcc 4.1.2

make -C /lib/modules/2.6.24/build M=/test module
error: implicit declartion of function 'sys_iopl'
---
#include <linux/init.h>
#include <linux/module.h>
#include <linux/io.h>
#include <linux/ioport.h>

static int __init
hello_init(void){
sys_iopl(3);
return;
}

static void __exit
hello_exit(void){
return;
}

module_init(hello_init);
module_exit(hello_exit);


863 名前:login:Penguin [2009/02/17(火) 22:55:48 ID:m2mCukTw.net]
すみません、sageてしまいました。

864 名前:login:Penguin mailto:sage [2009/02/18(水) 00:04:19 ID:lQ8CDN9P.net]
根本的に間違っているような気がするので、
もう少し具体的にやりたいことを書いた方がいいと思う。

取り合えずドライバでioplはいらねえ。


865 名前:login:Penguin mailto:sage [2009/02/18(水) 01:04:31 ID:WJ6360yx.net]
>>851
もしかして、ドライバ内では、ポートにアクセスするのに、iopl自体が使えないということでしょうか?
そうすると、request_regionしていくしかないということですかね。
それとも、アクセス許可自体が必要ないのでしょうか。


元々、独自PCI-I/Fボードにアクセスするアプリがありまして、
それの、ドライバ版を作ろうと思いました。
そのアプリでは、iopl(3)→outb(),inb()にて値を取得していたので、同じ様に作っていたところでした。
PCIからのポートアドレス取得が上手くでき、そのアドレスにアクセスする段階だったのですが、
ioplでどうしてもコンパイルが通らず、includeの問題なのか、Makefileなのか、
途方に暮れてました。>>849はそのテストプログラムを抜き出しです。


866 名前:login:Penguin mailto:sage [2009/02/18(水) 01:38:21 ID:lQ8CDN9P.net]
なんでドライバにする必要があるのかよくわからんが。
そういうレベルでわからんのであれば、まずは馬本で基礎知識を
身につけた方がいいと思う。

ついでに、sys_ioplの呼び方はそうじゃない。
つうかカーネルの中でsys_〜は直接呼ぶもんじゃない。


867 名前:login:Penguin mailto:sage [2009/02/18(水) 12:48:39 ID:WJ6360yx.net]
>>853
ありがとうございます。
ドライバ版の意図は、いずれ割り込みを使うつもりだったからです。
馬本は十分理解できなかったので、とりあえず作ってみるという感じでやってました。
sys_ioplは呼んではいけないんですね。
馬本、もう一度読んでみます。

868 名前:login:Penguin mailto:sage [2009/02/18(水) 16:25:38 ID:zpaCJvuo.net]
馬本はカーネルの知識がある程度ある前提で書かれてるので
まずはLinuxカーネルに関する文献を読んでみることをおすすめするよ

デバイスドライバはカーネルの一部でもあることを忘れるな



869 名前:login:Penguin mailto:sage [2009/05/29(金) 14:40:20 ID:D/EXOrYt.net]
Kernel 内で IN/OUT アセンブラ命令に相当するのは
何かマクロがあるんじゃなかったっけ?

READ_PORT とかそんなの。


870 名前:login:Penguin mailto:sage [2009/05/29(金) 23:00:18 ID:A6oE+oT8.net]
in[bwl]
out[bwl]
とか。
include/asm/io.hに入ってたはず。


871 名前:login:Penguin mailto:sage [2009/07/04(土) 14:39:23 ID:D5yvn6Kc.net]
シリアルドライバ内の情報で、何バイト受信済みとか、何バイト未送信という情報って
取得することは可能ですか?

872 名前:858 mailto:sage [2009/07/04(土) 16:35:43 ID:D5yvn6Kc.net]
補足です。
上記の情報をアプリケーションから取得できますか?

873 名前:login:Penguin mailto:sage [2009/07/05(日) 02:17:52 ID:vnzKXmwE.net]
>>859
ioctlでTIOCINQとかTIOCOUTQみれば出来そう。
つーかマニュアル嫁よ。せっかくあるんだからよ。

874 名前:login:Penguin mailto:sage [2009/07/05(日) 14:39:25 ID:jkHVDhT6.net]
ヌルイぞ。そこは

 つーかソース嫁よ。せっかるあるんだからよ。

だろ。ソース以上の資料なんかないんだからOSSってのは質問禁止なんだよ。

・・・ってえらいひとがいってました!

875 名前:login:Penguin mailto:sage [2009/07/05(日) 23:11:19 ID:vnzKXmwE.net]
>>861
その偉い人は馬鹿だよ

876 名前:login:Penguin mailto:sage [2009/07/05(日) 23:20:49 ID:xNWd+cLB.net]
どこでも、えらい人は馬鹿なもんさ。

877 名前:login:Penguin [2009/09/19(土) 20:24:56 ID:I29pddJ7.net]
保守上げ

878 名前:login:Penguin mailto:sage [2009/10/12(月) 16:24:20 ID:cJbteqq9.net]
>>861

× だろ。ソース以上の資料なんかないんだからOSSってのは質問禁止なんだよ。

○ だろ。ソース以外の資料なんかないんだからOSSってのは質問禁止なんだよ。



879 名前:login:Penguin mailto:sage [2009/12/03(木) 22:11:10 ID:s69LcKJk.net]
i386BSDカーネルの386BSDカーネルソースコードの秘密
ソース以上の資料なんかないんだから、に対して何か書いてあったな。

880 名前:login:Penguin mailto:sage [2009/12/03(木) 23:11:02 ID:LYVup2we.net]
>>866
ソースそのものと、ソースにこめられた趣旨は別じゃないかな?

881 名前:login:Penguin mailto:sage [2009/12/10(木) 00:21:58 ID:XvjOUXRH.net]
UTSL だな。


882 名前:login:Penguin [2010/02/18(木) 10:40:00 ID:hWc/MwlX.net]
linuxmintとウィンドウズ7RCを使っています。WIN7は試用なので来月から起動後一時間で自動で電源が落ちるようです。
リナックスに乗り換えるのは簡単なのですが、今使ってるテレビチューナーのドライバがリナックスには無いのです。
だれかmvp-rx3のドライバを書いてください。
このままではリナックスでテレビが見られず、リナックスをあきらめてウィンドウズのところにお嫁にイかされてしまいます。
テレビを見るためにはリナックスをお慕いもうしあげていますのにウィンドウズを買わなければならない境遇に
どうかどうか同情をしていただけるスーパーハッカーの方はドライバ書いてくださいませんか。
生きていくためには愛をもあきらめゲイツに身をゆだねなければならないのかと震えております。
ちなみにあたし女子中学生です。生娘です。似ている芸能人は17歳のころの広末涼子です。

883 名前:login:Penguin mailto:sage [2010/02/18(木) 19:21:20 ID:tk+7V5La.net]
>>869
GV-MVP/RX3
www.iodata.jp/product/tv/analog/gv-mvprx3/

mvp-rx3はアナログTVキャプチャーボードですね。
2011年7月にアナログテレビ放送が終了するので
どのみち地上デジタルテレビチューナーが必要になります。
Windows7を買う金でPT2を買ってLinuxで使う方がよいと思います。
PT2なら地デジでもコピーワンスによる不便から逃れられます。

日経Linux 2010年2月号
itpro.nikkeibp.co.jp/article/MAG/20100105/342880/
> 特集2
> PT2で地デジ録画システムを作る
> パソコンで地上デジタル放送や衛星放送を受信できる
> デジタル・チューナ「PT2」を使ってシステムを作ります。
> 最新のLinuxディストリビューションのFedora 12とUbuntu 9.10で
> PT2のドライバをインストールし,高画質のテレビ番組を見てみましょう。
> 番組表から録画予約する方法も紹介します。

【視聴】Linuxでデジタル放送【録画】
pc11.2ch.net/test/read.cgi/linux/1230616112/

884 名前:login:Penguin mailto:sage [2010/06/28(月) 20:46:03 ID:Pckx/KO8.net]
デバイスクラスがCDCでバルクでデータ転送するUSBドライバを作りたいんですけど、usb-skeltonドライバのベンダーIDとプロダクトIDを変更すれば使えるのでしょうか?


885 名前:login:Penguin mailto:sage [2010/11/04(木) 21:49:31 ID:S1XESMQS.net]
ioctlについて教えてください。

ioctlのパラメーターで指定するIDはlinux/ioctl.hで定義されているIOWやIORを使います。
しかし、アプリ開発者に渡すヘッダにIOWなどを使ってしまうと、ioctl.hはカーネルヘッダなので
アプリ開発者に渡せません。

ioctl.hごと渡すという手もありますが、ioctl.hの実態はarchの下を辿っていったものなので、
ずばりIOWなどが定義されているioctl.hを渡してしまっては、アーキテクチャを隠蔽している意味が
薄れてしまいます。
かと言って、別にヘッダを作っては無駄です。

これは、本来はどのように解決することを想定されているのでしょうか?

886 名前:login:Penguin mailto:sage [2010/11/04(木) 22:06:18 ID:qwjxXvn/.net]
ビルド環境に入っているものを素直に使う。


887 名前:login:Penguin mailto:sage [2010/11/04(木) 22:34:19 ID:S1XESMQS.net]
>>873
ビルド環境?
すみません、Linuxはドライバの開発とOSの移植しかやったことがないので、
ビルド環境がよくわかりません。
ドライバを開発するうえで、アプリ屋さんにどのようにドライバのヘッダファイルを
渡すのが正しいやり方なのかを知りたいです。

888 名前:login:Penguin mailto:sage [2010/11/04(木) 22:38:36 ID:LR3hS2yn.net]
?ttp://homepage3.nifty.com/rio_i/lab/driver24/00205ioctl.html



889 名前:login:Penguin mailto:sage [2010/11/04(木) 23:04:47 ID:S1XESMQS.net]
分かりました。
ioctl.hはわざわざ渡さなくても、アプリ開発で使用するカーネルヘッダに入っているので
大丈夫ということですね。
ありがとうございました。

890 名前:login:Penguin mailto:sage [2010/12/02(木) 23:23:04 ID:4b10+uK8.net]
ドライバコンパイル時に静的ライブラリをリンクさせることって出来ますか?

891 名前:login:Penguin mailto:sage [2010/12/02(木) 23:29:16 ID:QEjw5J80.net]
はい

892 名前:login:Penguin mailto:sage [2010/12/03(金) 01:20:27 ID:q4cXzrWN.net]
どうやったら出来ますか?
2.6系のカーネルですが、-lでライブラリを指定しても
WARNING: "hoge" [/home/hoge.ko] undefined!
と言われてリンクできないんですよ。

893 名前:login:Penguin mailto:sage [2010/12/03(金) 01:26:12 ID:HjCnxCbQ.net]
.koってライブラリじゃないよ

894 名前:login:Penguin mailto:sage [2010/12/03(金) 10:36:25 ID:CY74Qv7R.net]
そもそもgccやbinutilsはWARNINGとか大文字は出さないだろう
何かすごい勘違いしてそう

895 名前:login:Penguin mailto:sage [2010/12/11(土) 14:59:04 ID:uuYvSF4I.net]
>>879
そもそも -l のかわりにソース直指定ならリンクできるのか?


896 名前:login:Penguin [2010/12/29(水) 17:20:29 ID:4yM0+SZ6.net]
webcam(UVC)を接続すると、/dev/video0にデバイスが作成されますが、
ここから流れてくるフォーマットについて知りたいのですが、どこか
参照するところってありますでしょうか?

897 名前: 【中吉】 【1992円】 mailto:sage [2011/01/01(土) 00:36:00 ID:NRMsojMl.net]
おめおめ!

898 名前:login:Penguin mailto:sage [2011/05/27(金) 16:14:52.73 ID:hBkzVcCP.net]
Cライブラリのassert()のドライバ版みたいなのないですかね?
勉強用にドライバを書いているのだけど、エラーチェックにいちいち if文を書くのが面倒くさい。
普通のアプリの場合は、assert()で一行でエラーチェックを終わらせるのだけど。
無いなら、どうやってエラーチェックしてるか教えて貰えるとありがたい。




899 名前:login:Penguin mailto:sage [2011/05/27(金) 16:21:32.12 ID:oqgnTIfp.net]
BUG_ON

900 名前:login:Penguin mailto:sage [2011/05/27(金) 23:08:25.94 ID:NHryjoxJ.net]
タイプ数減らしたいだけなら自分でマクロ書けばいいじゃん

#define assert(x) なんとかかんとか

901 名前:885 mailto:sage [2011/05/28(土) 21:55:24.09 ID:DZ/zAfXL.net]
>886
どうもありがとう。良い情報を頂きました。

>887
最悪その方法を取るけれど、既存の洗練された方法があるならそっちを使うべきでしょう?

902 名前:login:Penguin [2011/07/28(木) 17:08:37.75 ID:fa8I36t3.net]
PCIの自作用穴あき基板ってあるんですかね?
自作基板をスロットに差してデバドラも自分で書いて使ってる人います?

903 名前:login:Penguin [2011/07/28(木) 21:19:13.92 ID:9X016Sem.net]
FPGAでプログラムする人とかいるんじゃないかな

904 名前:login:Penguin mailto:sage [2011/08/30(火) 14:59:09.92 ID:0covJFQI.net]
>>889
サンハヤトで売ってる
ttp://www.sunhayato.co.jp/products/details.php?u=242&id=07008
もう生産終了して在庫のみみたいだが…

・FPGAにPCIバスコントローラIPを組込む
 (QuickPCIのようなPCIコア搭載のASSPも可)
・PLXのPCIバスブリッジLSIを使う

とかが簡単かな?
ただし、多chロジアナかPCIバスアナライザがないとH/Wのデバッグつらそう

905 名前:電板住人 mailto:sage [2011/09/08(木) 22:50:33.11 ID:5S22Lom/.net]
>891
なせばなるってか。
elm-chan.org/works/pci/report.html

USB highspeed で足りなくなる用途ってのがなかなかなくて
なんか作る前に PCI がオワコンになってしまた。


906 名前:login:Penguin mailto:sage [2011/09/08(木) 22:57:53.59 ID:gAMXe89X.net]
汎用のPCIプロトコルICがあればいいのにね
プロトコルが複雑なせいで使いにくいよ、PCIは

907 名前:login:Penguin mailto:sage [2011/09/08(木) 23:36:34.13 ID:M1WIsemQ.net]
>>893(やーさん)
891が言ってるPLXのPCI bridge LSIが、いわゆる汎用のPCIプロトコルICだろ?
ttp://www.plxtech.com/products/fastlane/
ttp://www.plxtech.com/products/expresslane/bridges


908 名前:login:Penguin mailto:sage [2011/09/09(金) 00:51:36.99 ID:i51Tyjoe.net]
>894
MOUSERで買えるんだな。知らなかった。
俺が知ってるのはこっち。
shop.trenz-electronic.de/catalog/product_info.php?products_id=801




909 名前:login:Penguin mailto:sage [2011/09/09(金) 08:48:41.83 ID:RO54tTej.net]
PCIってバスマスタ機能ついてないと強烈に遅いからなぁ
ターゲットアクセスONLYだったらUSBの方が全然マシ

910 名前:login:Penguin mailto:sage [2011/09/09(金) 12:22:55.91 ID:c/CggDIE.net]
USBはターゲット側から割り込みかけられんのがなあ
3.0が一般的になれば解決しそうだが


911 名前:login:Penguin mailto:sage [2011/09/16(金) 20:45:13.24 ID:sbRt/b8G.net]
page2.auctions.yahoo.co.jp/jp/auction/b124613538
旦那、アナライザが出てきましたぜ

912 名前:login:Penguin mailto:sage [2011/09/17(土) 13:18:09.75 ID:1xn24TfS.net]
>>898
一瞬安いと思ってしまったが、いまさら使い道ないよなぁ

913 名前:login:Penguin mailto:sage [2011/10/01(土) 08:26:06.16 ID:PYdveQ5P.net]
create_workqueueでカーネルスレッドいっぱい作るドライバが多いな
core-i7とか12個もできたりする

914 名前:login:Penguin mailto:sage [2012/04/10(火) 20:10:51.64 ID:K9bAsJRY.net]
NICレジスタのとあるフィールドを、MMIOを使って書き換えようとしています。

1.pci_get_device()でデバイス情報取得
2.pci_resource_start()で物理アドレス取得
3.ここで、一応request_mem_region()をコールしますが、既にベンダー提供の
デバイスドライバでrequest_mem_region()されているので、0が返ってきます。
が、構わず続けて、
4.ioremap_nocache()でマッピングされたアドレスを取得

4.の結果を以ってレジスタのREADはできた(ethtool -dとの比較結果が一致)のですが、
writeb()を使って書き込んでも反映されていません(ethtool -dで確認)。

そこで質問なのですが、既にrequest_mem_region()されているレジスタについては、
READはできてもWRITEは不可といったことなんでしょうか?
それとも、他にフラグ操作等足らない操作があるのでしょうか?


915 名前:login:Penguin mailto:sage [2012/04/10(火) 20:13:57.19 ID:TjB2iYHy.net]
同じリソースに2ヶ所(個別の管理している?)からアクセス(書き込み)したら、どうなるかわかってる?

916 名前:login:Penguin mailto:sage [2012/04/11(水) 07:08:07.09 ID:Ov29jEBq.net]
>>902
実際にはある条件を満たすパケットを捨てる/捨てないを担う1bitの書き換えなのですが、
それでも横から弄られたら破綻するかなと思います。

そもそも、ベンダー側ドライバがこのbitを操作するioctl()なりEXPORT関数なりを用意
してないので、サポート外動作というのは理解しています。
一応、この辺はベンダー側にNDAでもいいんで提供してもらえるように依頼しています。

今回は、それまでに時間がかかるのでとりあえずでも弄ることができないかとあれこれ
やっています。
最悪は、このbitをドライバロード時に設定しているドライバソースを弄ればなんとか
なりそうなんですが、ソースを弄ることなく外から設定できるといいな、と。

917 名前:login:Penguin [2012/04/11(水) 07:42:58.51 ID:k8CqWmKf.net]
ioremap()の場合ですが、こんな事書いてる人もいますね。
ttp://0x74.blogspot.jp/2009/05/linuxrequestmemregionio.html

その後バージョンが上がって変わってるかもしれません。

918 名前:login:Penguin mailto:sage [2012/04/11(水) 14:34:19.38 ID:idMu7gyr.net]
>実際にはある条件を満たすパケットを捨てる/捨てないを担う1bitの書き換えなのですが、
スレタイに通りに、NDAドライバをハックして
バイナリパッチのほうが早くね



919 名前:login:Penguin mailto:sage [2012/04/11(水) 19:39:13.21 ID:Ov29jEBq.net]
>>904
今回、MMIO使って書き換えてみようと考えたのが、そこのページを見たためでした。
結局まだうまくいってませんが…

>>905
とりあえず、ドライバソースを弄る方で先にやってみようと思います。

920 名前:906 mailto:sage [2012/04/12(木) 20:02:46.16 ID:lbSIQeJF.net]
結局、ドライバソースを弄って無事目的を果たせました。

921 名前:login:Penguin mailto:sage [2012/10/08(月) 17:33:01.99 ID:Z+p5tcDI.net]
kernel技術者の需要ってどんなもんでしょう?
技術者が不足している分野と、
待遇の目安など教えてもらえると嬉しいです。

922 名前:login:Penguin mailto:sage [2012/10/09(火) 10:23:13.53 ID:fG1BPWH9.net]
今それが見えてない時点でアウトだと思うよ

923 名前:login:Penguin mailto:sage [2012/10/09(火) 10:46:20.92 ID:HshUGVwS.net]
いや、なら他を当たるまでなので別によいです
webなりDBなり頑張ります

924 名前:login:Penguin mailto:sage [2012/10/09(火) 11:24:00.87 ID:fG1BPWH9.net]
ジャンルには関係ないとは思うが、まあいいか

925 名前:login:Penguin mailto:sage [2012/10/09(火) 12:26:59.26 ID:sI4/BkKw.net]
>>910
まだ選択の余地があるなら他に進んだ方がいいと思う。プログラム業なんて、>>909みたいなカスしかいないから。

926 名前:login:Penguin mailto:sage [2012/10/09(火) 13:10:40.17 ID:GPpGUb7J.net]
プログラム業

927 名前:login:Penguin [2013/03/26(火) 08:51:30.75 ID:CLzKF3Up.net]
age

928 名前:login:Penguin [2014/02/13(木) 19:42:26.30 ID:StvXlIag.net]
/dev/input で
type=EV_MSC code=MSC_SCAN って
なにを意味してんの?



929 名前:login:Penguin [2014/02/23(日) 12:43:47.37 ID:ytOaVGS4.net]
ecb ってなにドライバー?

930 名前:login:Penguin [2014/02/26(水) 10:47:34.06 ID:w6lQvC2s.net]
キン肉ドライバー!

931 名前:login:Penguin mailto:sage [2014/04/02(水) 15:13:48.18 ID:rDv+tjOg.net]
ドバイスデライバァ!

932 名前:login:Penguin mailto:sage [2014/04/09(水) 11:07:29.91 ID:MFnWvffb.net]
奇跡、神秘、真実、夢

933 名前:login:Penguin [2014/10/30(木) 21:21:48.26 ID:xfEc1Jae.net]
ユーザーランドで動作するデバイスドライバ
って作れる?

934 名前:login:Penguin mailto:sage [2014/10/31(金) 07:35:14.24 ID:tkZ1h6qo.net]
>>920
User Space I/O (uio)のこと?

935 名前:login:Penguin mailto:sage [2015/09/06(日) 01:15:03.40 ID:M4p9U028.net]
923

936 名前:login:Penguin mailto:age [2015/09/19(土) 22:49:35.27 ID:wUZ4n7AX.net]
ハック?

937 名前:login:Penguin mailto:sage [2015/09/20(日) 05:44:26.94 ID:Y/A9fOOn.net]
啓発

938 名前:login:Penguin mailto:sage [2015/09/20(日) 16:39:17.03 ID:Y/A9fOOn.net]
deviceは接続しただけで、大手デイストリやその系列は自動認識の時代だろ



939 名前:login:Penguin [2016/03/14(月) 02:03:02.13 ID:wYUVNjV4.net]
>>46
懐かしい。もう14年経ったか。この人いまどうしてるだろう?
私はこの話の元ネタであるコメンテーターというお笑いネタをマ板に書いた者。
当時は想像もしなかったが、今じゃ私もLinux使いになってしまった。
私が書いたのはお笑いネタだけど、>>46みたいに、実際のコードを
面白おかしく解説してくれる記事があったらもっと読みたかったな。
記念に書きのこしておく。スレ汚しごめんよ。

940 名前:過去ログ ★ [[過去ログ]]
■ このスレッドは過去ログ倉庫に格納されています






[ 新着レスの取得/表示 (agate) ] / [ 携帯版 ]

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

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