ディバイスドライバを ..
40:login:Penguin
02/02/01 13:40 fvbQ/5zX
>>25
お前はまだ仮想アドレスについても学ばなければならない。
>自分のレベルに合ってない本を買ってしまったときのむなしさ
レベル上がってから読みなよ。
41:25
02/02/01 14:20 LgazE6G1
>>40
うむ、了解。
じゃあまず仮想アドレスについてから勉強するよ。
なんかこのスレでブックマークが一杯になってしまったなあ
42:login:Penguin
02/02/01 14:38 HC9Yhxcp
デバイスドライバーだけじゃないけどさ
ソフトバンクからでてるLinuxのプログラム本と
詳細なKernel(2.2系)の本はあった方がいいかなぁ・・・
43:login:Penguin
02/02/01 15:00 OYnwkLox
とりあえず、ここまでのレスは全部読んで
なんとなく概要は理解できた気がするのですが、、。
お仕事でドライバの事少し勉強しなければいけませんので、
ソースから学ぼうと思ってるんですが。
Linux2.4系のKernelソースの中で
全く、ドライバをやった事の無い初心者にも
わかりやすいソースってどれでしょうか?
どなたか有識者で知ってらっしゃる方はいらっしゃいませんか?
「お馬さん」は2.2系の日本語を読んでますけど、
非常に難解です、、。
Kernelが2.4系なので、
文献も英語しかなく、
読解力のないわたしは苦しんでいます。(^^;)
ここを良スレと見込んでよろしくお願いしますm(_ _)m
44:login:Penguin
02/02/01 15:14 4diOANaQ
>>43
Interface2、3月号あたりにLinuxのデバドラに関する記事がありました。
なかなか良かったですよ。
45:login:Penguin
02/02/01 17:42 Oxc8LS21
>>43
なんでもいいからキャラクタ型デバイスのソースをみるとよろし。
基本がみっしり詰まってて勉強になるっす。
46:login:Penguin
02/02/01 22:46 Pc1hsWFQ
/*
* $Id: joydev.c,v 1.19 2001/01/10 19:49:40 voj
tech Exp $
*
* Copyright (c) 1999-2000 Vojtech Pavlik 
;
* Copyright (c) 1999 Colin Van Dyke 
;
*
* Joystick device driver for the input&n
bsp;driver suite.
*
* Sponsored by SuSE and Intel
*/
// さぁ、いよいよはじまりました、Linuxドライバーコメント2002、
// 実況はわたくしモモナイ、解説はおなじみサキサカさんです。
// サキサカさん、今日はよろくお願いします。
// はいはい、よろしく。
// サキサカさん、本日のカードはkernel 2.4.16のdriver/input/joydev.cです
が、
// しょっぱなから、このファイルというのはどうなんでしょうか?
// 単に作者の23が、>>45の言葉どおりキャラクタデバイスから読もうとして、
// 一番手頃なのがこれだったようですよ。
// 23ということは、いつものコメンテーターと作者が違うようですね。
// そうそう。スレリンク(prog板:215-281番)とは
// 作者がちがうんで、私も心配しちょる。
// また煽られて逆上しませんか?
// 本人も、O<^Z=6:\Y2と思ったようだから大丈夫でしょう。
// むしろ、途中で飽きるんじゃないかな?
// そのあたり、読者の応援の声が欲しいところ。
// ところで作者は、joydev.cのGPLの表記を消してしまったようですが、
// 大丈夫でしょうか?
// まぁCopyright (c)は残したから、いいんじゃないかね。
// ともあれ、Linuxドライバーコメント2002 Round1 joydev.c
// いよいよスタートです。
// この放送は等幅フォント対応で、2chよりお伝えします!
47:login:Penguin
02/02/01 22:52 c8Ppl2p2
#include <asm/io.h>  
; // さぁ、ソースのほうは順調に
#include <asm/system.h> // イン
クルードが進んでおります。
#include <asm/segment.h> // 本日は、/u
sr/src/linux/includeには、
#include <linux/delay.h> // grepと共
にレポーターのヤブナカさんが
#include <linux/errno.h> // 逝っており
ます。ヤブナカさ〜ん?
#include <linux/joystick.h> //*はい!ヤブナカです!今日はヘッ
ダが
#include <linux/input.h> //*いっぱいなので
、findも一緒に待機して
#include <linux/kernel.h> //*万全の体制です!
#include <linux/major.h> // 後程、なに
か不明なマクロなどありましたら
#include <linux/slab.h> // お願
いしま〜す
#include <linux/mm.h> //*
はい!了解です!
#include <linux/miscdevice.h> // さてサキサカさん、インクルードも後
半に
#include <linux/module.h> // 来ましたが、std
io.hが無いようですね?
#include <linux/poll.h> // そ
ういうボケはどうでもいいけど、
#include <linux/init.h> // 「
カーネル」って雰囲気は満点だね。
#include <linux/smp_lock.h> // どうやらインクルードも無
事終了しました。
48:login:Penguin
02/02/01 22:53 c8Ppl2p2
// さて、始めは定義の類が続きます
#define JOYDEV_MINOR_BASE 0&nbs
p; // サキサカさん、この_BASEって何でしょうか?
#define JOYDEV_MINORS &nb
sp; 32 // 他のinputデバイスとメジャ
ー番号を共有
#define JOYDEV_BUFFER_SIZE 64&n
bsp;// するための工夫だね
 
; &nbs
p; // でも、input.hで宣言しなくてい
いのかなぁ
struct joydev { // さぁ、ここで構造体の
定義です。
int exist; // サキサカさん、ここで定義というのはど
うでしょう?
int open; // あたりまえだけど、joydev.c内
部向けってことだね。
int minor; // あまり他のドライバに応用が効く部分
じゃないでしょ。
struct input_handle handle; // でも、
wait_queue_head_t wait; //
devfs_handle_t devfs;
struct joydev *next;  
; // あ、リンクの様相です。
struct joydev_list *list; //&nbs
p; 複数デバイスが考えられる時の定番ですね
struct js_corr corr[ABS_MAX]; // このあたりの構造体
は、使い方がはっきり
struct JS_DATA_SAVE_TYPE glue;// した時点で、ヘッダを参
照したいと思います
int nabs;
int nkey;
__u16 keymap[KEY_MAX - BTN_MISC]; // さて、こ
のあたりの定数ですが...
__u16 keypam[KEY_MAX - BTN_MISC]; // キーと
ボタンがごっちゃだね。
__u8 absmap[ABS_MAX]; // ここらのABSってなんでしょ?
__u8 abspam[ABS_MAX]; // うーん、よくわからないなぁ
__s16 abs[ABS_MAX]; // それでは聞いてみましょう。ヤブナ
カさーん?
};
49:login:Penguin
02/02/01 22:56 c8Ppl2p2
/************************input.h*************************************/
#define KEY_PROG4 203
#define KEY_SUSPEND 205 //*はい!ヤブナカです!
#define KEY_CLOSE 206 //*ただいまinput.hの300行付
近にいます!
#define KEY_UNKNOWN 220 //*ここまでがキーボードの番号で
#define BTN_MISC 0x100 //*ここからマウスや他
のコードが
#define BTN_0 0x100 //*ふ
られているいる様子です!
#define BTN_1 0x101 //*こ
こからですね...
#define BTN_2 0x102 //*さ
、カメラさんこっち来て!
// (略)
#define BTN_JOYSTICK 0x120 //*この付近、330行あたりで
#define BTN_TRIGGER 0x120 //*ジョイスティック向けの番号があっ
て、
#define BTN_THUMB 0x121 //*さ、こっちこっち
// (略)
#define BTN_TOUCH 0x14a //*はい、このあたり!
#define BTN_STYLUS 0x14b //*タッチパネルらしき
#define BTN_STYLUS2 0x14c //*定義を最後に
#define KEY_MAX 0x1ff //*全てのキーが
出そろうようです!
//*また、このすぐ後に Relative acesとAbsolute axesというコメントが
//*続くようです!
// input.hからは以上です!
// joydev.cにお返しします!
/********************************************************************/
// はい、ありがとうございました。
// キーボードとその他のボタンで統一的に管理してるけど
// ここではジョイスティックで使うかもしれない分だけにしてるんだね
// ABSはRELと対になって絶対値と相対値。アナログコントローラの話かな。
// とりあえず、CMです。
50:login:Penguin
02/02/01 22:57 c8Ppl2p2
げ、ぶち切れてる。鬱死....
51:login:Penguin
02/02/01 23:02 Oxc8LS21
改行が挟まらなければ 相当おもしろい企画になる・・・
マジ良スレの予感
52:CMまで前半
02/02/01 23:46 bMJKgu48
begin 644 2ch_joydev1.txt.bz2
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
M*$UHT7`(&DP8!4,QM;<7EZX0(P%7B[8@3T`)H21SX0.IL&>`DE08L*`8A
AW#!TY]Z\9@*S`]*GHI*TF5"K@6UJ/_XNY(IPH2`0BE\:
`
end
53:CMまで後半
02/02/01 23:47 bMJKgu48
begin 644 2ch_joydev2.txt.bz2
M0EIH.3%!6293649+3QL``@#_G_40!`!H<_](?O_?ZK___^H_?O____OWQ;_^
MG!-@!$.*+,U@:WVR[<-"F*:8*GFA&D::,:GJ/*'I&U`]/5-&U`T/4`]0T])Z
MFF(#$`T#!```]0`!HD-)II/TAI,RFU,"9I1M$VIZ$T-``&@``9`````#1HT-
M`/U31Y(@9,$9,"-,0TPC$-,`$8$8"#)ID-&0T!B8"8A@)B--,3`F`2)$F33*
MI^TE/R:C4>IZ3`@]0/4;4?J0-/4-H0&]4]0```````R`,$T&@@9,$9,"-,0T
MPC$-,`$8$8"#)ID-&0T!B8"8A@)B--,3`F`:FDD])H,U``--&@```&0R,U&C
M(`````````R8$#1D8@3N:?BL#MGS.7=3&L7Y(,I:K2FCSU8[D>8$R++4E275
MXCRD!AW.?$9;QOZJV(B`HWT^E`+-+=ZZA18(GD$2*OZD)`"6,2P^&PX1&\^1
MNW_`IK&'6X6"X0K$-P#(2#(4E$'J@4,1BSN9Y)30R&4C"2&\DP1N,J2F;DD*
M??N%,@`9JA1ONIE?*U&;M+X"L&`-&O@4-QFD0]1DQI#:;[WH]0;W!UC(57`5
M)F&<"FJ^ZO)$>/Y!%&K>O6CKIHBM!V;O6$L&3PZ$`QM.6+.2N"G"\K@2-Y3M
MN(1<?/2L"F@J.-WVGI3,THXW9O3WZ6?/*OML15<L&&AF0:Z"6T:]Y+0:GM3G
M=8"LVHKVL&.ROZJ<F&TO:"QRKFL&R+;2MD"@@=.S%Q.]0TK5&%+RO,W>^E+9
MV[&]%8K(A0$*+((:KC&@Y//61-0M<Y`.'1;`7CB2*I2AC,;K%":&ZK9@JH58
M(BID&`X"`ERY`:!JED15I6ZUC+!$VWF%E9#Q$3@2[,080$D13N4QGF"=#DX7
MJY6S$DPJ42LC+YT<49[31KES2(HRR`03GG(I*+]=X+.FDV7"EGRNN(5JM
M6RRXMPW[80PC355&1RD\4A4!<+1K\_4"4D7V6FPD5R6-#)W9.$TA@#1]V;96
MS]=UJ-G*5\,F=5ZE@SZJ1_,KL0$3$M/MP&,HP+CURG%\7[$S^;2EIML32;?O
M-"8[BJ:UIZ5OB?FQ?IF\\7'#MX^>;Z-#LOQ.@F8Z`5Z!?AQ<4Z`2^NB6]15\
M':-'1VR%2'HJM&[6^J?CG29$ZZG2H5`A(V@OYX18]2SJ2JK,&$KB^A6&:D'_
ML\_W5OTJGU'X"9.TI98C,C,L(PC.;;_*[0E3""*\9N=HMT@/P+5\'CD?3,M1
ML:O<6#4O$,+6;,+TQD\#N5&5HJZ+FE#8?=JH^QJRE'3ML,ZEW'Z](5)C%:5*
MPM0P)HV7`;PAH2,>F9C5JO0*"HBIQ8J,AR!JFWAQJ&**2V,DU[[+4BX8PW4J
MMK-/PQ3VB!OS&LF,&S_=1,.*)M`-I*A%!)NKA1)$N]J7P.7,P+4`H;X/R61S
ME7>$+U<6.>U2Y%!8QJ\"3"-V(XFBY2KC)DB`I*,D3=N:L&G="[0ACT+H:_
M5'97^OP=K%F[RFM59TF,%Q&MZA?ZXDFDV8QJL:4@"(Q`B(D4SF#'^B45`3(P
M,#@A+HG,9`*P#V((`!80::S4MI(A)-DR,S#,IGB"J$Z0@9<@GXL$T$&BA%Y.
M*[+H4,6@GEW4+3:GOX-9-RZN6+%V)/J,&E27I3W,T%\-<T:MM7!F[>=214/8
M8D1GA+>C<MB00UAK(4D=Y+/OJZ:1@F2A1,L6EB(M5@&S`'E3;.(T"K`R%T&"
M`:-DZ3"@8<2:^&1Q/NV`PQ""P",ZX0()QA`=74[4.A1!8PLB`;38L34?\B)1
=!)C:,L0V)L&C5"05)*J-`)!.&+N2*<*$@C):>-@`
`
end
54:login:Penguin
02/02/01 23:49 bMJKgu48
只今、続き作成中です。それまで>>52-53の美しい映像(?)でお楽しみ下さい。
m(__)m
55:login:Penguin
02/02/02 00:16 81i4zM55
struct joydev_list { // 先程、一部の地域で画像が乱れ、
struct js_event buffer[JOYDEV_BUFFER_SIZE]; // お見苦しい
int head; // 点があったようです。お詫びいたします。
int tail; // まぁ、字下げを1にしたし、文字も減らして
int startup;// どうにかなるかな?
struct fasync_struct *fasync; // お、なにやらsyncできるみたいだ。
struct joydev *joydev; // こちらは、先程の構造体ですね。
struct joydev_list *next; // やはり、ここもリストだね。
};
static struct joydev *joydev_table[JOYDEV_MINORS];
// さぁ、ここで変数定義!
// 一応、外部からはアクセスできないね。
// マイナー分だけ確保してるけど、
// joydev_list.joydevとの関係が気がかりだねぇ
// 配列の値はポインタのようですが?
// 領域を動的に確保することで
// 不必要に肥大化するのを防いでるんだね
MODULE_AUTHOR("Vojtech Pavlik <vojtech@suse.cz>"); // おっと!?
MODULE_DESCRIPTION("Joystick device driver");
MODULE_LICENSE("GPL"); // ここでマクロの登場だ。意味は大体わかりますね。
MODULE_SUPPORTED_DEVICE("input/js"); // suseもちゃんと貢献してるねぇ
// この後いよいよ関数の登場です。
// たのしみだね、モモナイさん
// 私は、23がどこまで理解できるか心配ですが...お願いしますよ
// サキサカさん!
// そう言われても、結局書くのは23ですからねぇ...
56:login:Penguin
02/02/02 01:11 O2jPWcD7
// ついに関数が来ました!
// 名前からすると、データ補正かな?
static int joydev_correct(int value, struct js_corr *corr)
{
// あれ、見慣れない構造体が...
//*モモナイさん!モモナイさん!
// なにやら「値」が来てるなぁ
//*モモナイさん!
// はいはい、ヤブナカさん?
//*今joystick.hに来ているんですが、sturct js_corrについての
//*情報が得られました!
// はい、カメラお渡しします。
/************************joystick.h**********************************/
//*只今、include/linux/jyostick.hの75行目付近に来ています!
/*
* Types and constants for get/set correction
*/
//*どうやら、この付近で補正の為の定数等を定義してるようです!
#define JS_CORR_NONE 0x00 /* returns raw values */
#define JS_CORR_BROKEN 0x01 /* broken line */
//*データがナマの場合と壊れた場合を分けているようです
struct js_corr {
__s32 coef[8]; //*このあたり、coefや
__s16 prec; //*precが何の略なのか
__u16 type; //*全くナゾです。
}; //*こちらからは以上です!
/********************************************************************/
// はい、ありがとうございました。
// なんだかわかったようなわからないような...
// 作者がそもそもjoydev.cがどういう物か理解してないからねぇ
57:本日のシメにageます
02/02/02 01:14 O2jPWcD7
switch (corr->type) {//さぁ、分岐した!
case JS_CORR_NONE: // rawなときだね。
break; // そのまま逝くようです。
case JS_CORR_BROKEN: // こちらは壊れた時のようですが?
value = value > corr->coef[0] ? (value < corr->coef[1] ? 0 :
((corr->coef[3] * (value - corr->coef[1])) >> 14)) :
((corr->coef[2] * (value - corr->coef[0])) >> 14);
// ははぁ、coef[0]-coef[1]の範囲から値がでてるとき、coef[2,3]で
// 適当にあわせつつ値を直しているんだな。
break; // 直してから先に進むようです。
default: // さて、その他。
return 0; // やることが解らんときは、何もしないで帰る、と。
}
if (value < -32767) return -32767; // おーっと、±32767の挟み打ち!
if (value > 32767) return 32767; // signed 16 bitかな。
// この関数も終りにきたぞ!
return value; // BROLENの補正のみやってるね
}
// 関数第一ラウンド、なんとか終了となりました。
// Linuxドライバーコメント2002、/usr/src/linux/driver/input/joydev.cより
// 2chでお送りいたしております。
// まだ続ける気かねぇ
58:login:Penguin
02/02/02 09:46 whMMNTAJ
おもしろい!(w
59:login:Penguin
02/02/02 23:09 OVfU0W3z
うえ
60:login:Penguin
02/02/03 00:07 zajX165D
ちなみに、元祖モモナイさん達は
スレリンク(prog板:201-300番)
このあたりにいらっしゃいます。
キャラ貸してくれたコメンテータさん、ありがとう!
# つーか事後承諾だったけど...
61:login:Penguin
02/02/03 00:09 BzrcOmdf
もういいよ。
sunは倒産。
SGIも倒産。
HPもWSから撤退。
IBMもWSから撤退。
NECもWSから撤退。
世界にはPCしかなくなりました。
OSもLinuxしかなくなりました。
犬厨の望む世界になりました。
終了。
62:23
02/02/03 02:51 KGnsKyPB
そうか、もういいのか....(鬱
63:login:Penguin
02/02/03 14:14 P0SAPnI+
>>61
その時、マイクロソフトのドライバ開発者は…
(続く)
64:login:Penguin
02/02/04 18:52 NNgCZ8vd
>>63 >>61
その頃、マイクロソフトのドライバ開発者@新橋ガード下は、
「ってやんでぇバーカヤローゥ! Linuxがなんだってんだっ、ヒック、ゥィー!」
65:login:Penguin
02/02/04 23:07 2sAhIg4J
>57
いいぞ!続きを!
66:login:Penguin
02/02/05 15:21 iaI23jTt
>65 同感。
でも、もう少し読みやすい(見やすい)とうれしんだけどな。
67:login:Penguin
02/02/05 18:54 F3yqU4bD
「予想される近未来」
・Linuxに市場を荒らされ全ての商用UNIXが撤退。
・Windowsは順調に売れて市場を拡大。
・エンタープライズ用途でのLinuxの駄目さ加減が発覚してみんな困る。
・みんなしょうがなくWindowsに移行する。
・Linuxはカーネルの分裂により大混乱。商用用途で使い物にならなくなる。
・Windowsしかなくなる。
68:login:Penguin
02/02/05 19:58 EBSnoi/G
>>67
BeOSのような第3の勢力が突発的に出現して
Gates帝国もUNIX連合も一夜にして淘汰される。に一票
69:login:Penguin
02/02/05 20:26 YUE4G5dx
サーバはどうか知らんが
結局ごちゃごちゃでも便利なものから離れられない。windowsは無くならんのは当然だが
linuxもWindowsがGPLにでもならん限り無くならんと思うなあ。
そのうち良くなるだろ。
もしBeOSみたいなのがでてきても、よっぽど革新的でFreeでないと、また往っちゃうよ
70:login:Penguin
02/02/05 20:59 UUxecaUS
コピペにマジレスカコワルイ
71:login:Penguin
02/02/05 21:21 JQSzVmkT
5年程度のスパンで見ると、Linuxは産業用の組み込み系のOSと
して活躍するでしょう。
また、IBM系のリナックスも順調にシェアを伸ばしていくでしょう。
PCではWindowsが制覇するでしょう。
72:login:Penguin
02/02/13 10:11 Ocy9V5oG
モジュールを組み込むとき、変数が渡せるものもいくつかあるけど
そのときに どの変数が渡されているかあとで知る手段ってない?
例えば sb.o とかなら irqとかいろいろ渡せるよね。
insmodしたその後で irqいくつだったか忘れたときとか
知る手段無いよね。
あと、ついでに どの変数が渡せるかを事前に知りたい。
ソースみりゃわかるけど面倒くさいじゃん。
73:login:Penguin
02/02/13 11:37 QvFCkM3Q
/proc以下のファイルで確認すればいんじゃないの?
74:名無しさん@Emacs
02/02/14 02:48 z04c7JYX
ディバイスドライバをファックしよう!
75:BERO
02/04/02 18:12 zlzOuE7v
デバイスドライバの解説って
「デバイスにはchar型とblock型があって・・charデバイスの実装サンプル」
で終わってるのが多いんだけど、
実際はソレを生で使ってることは少なくて、サウンドデバイス、CD-ROMデバイス、FlashROMデバイス、ビデオデバイスとか
デバイスごとのフレームワークがあって、実際のハードウェアドライバはその下にくるようになってる。
実験機器や自作ハードで生のI/Oポートをたたけるだけでいい、ていうのならともかく、
(フレームワークが存在するような)一般的なハードウェアでは、このテのデバドラ解説ってのは参考にならない。
ファイルシステムドライバとかもこの範疇に入らないし。
みたところ各フレームワークの解説ってのはみあたんなくて、結局ソースにあたるしかない。
ところが既存のソースも、古いコードが残ってたり、そこからのコピペと思しき不要なコードが紛れ込んでたりして、
どれをリファレンス実装として参考にしたらいいのやら、って感じでアタマいたくなる。
76:login:Penguin
02/04/05 22:06 swoFdSIN
>>75
本物?
77:login:Penguin
02/04/05 22:15 CU/0IjiI
まぁ、アゲられついでに75さんにLinux界に伝わる格言を一つ。
「動けば正義」
78:login:Penguin
02/05/08 17:01 kXDZWtdP
>77
VBプログラマに通ずるものがある(w
79:login:Penguin
02/05/12 06:02 i/O/fiuU
>>77
イイ言葉だ....
80:login:Penguin
02/06/25 11:32 h8q+RUm7
お馬さん本買ってきて、サンプルコードをftp.ora.comからダウンロード
しようと思ったのに、ftp.ora.comがつながんねーYO!
どなたかftp.ora.com/pub/examples/linux/drivers/の中身を
ミラーしていただけないでしょうか?
81:login:Penguin
02/06/26 10:26 MG8jc7TY
すみません。ftp.ora.comにつながりましたので、>>80はなしにしてください。
これだけではなんなので、同じ壁に突き当たるかもしれない人へ:
お馬さん本のサンプルソースは、筆者のサイト
fURLリンク(ar.linux.it) からもダウンロードできます。
82:login:Penguin
02/08/14 00:47 2q+/MEDi
age
83:login:Penguin
02/08/14 00:52 udiJKVSV
あがりついでに...
>>78
>>77
>VBプログラマに通ずるものがある(w
「クソコードを見付けたら、書き直すチャンス!」ってのが
VBとの違いだな。
84:login:Penguin
02/08/16 07:53 c0C09J9f
糞コードをハケーン!!
じっとガマンして保守に付き合うのはプロ
とっとと書き直すのはアマ
85:login:Penguin
02/08/16 14:43 S24KMUAB
>>84
じゃあオレはアマチュアの方がいいや。
プロっていってもピンキリだし。
86:login:Penguin
02/08/17 02:23 D5BAubdc
たとえ糞コードでも動いているものであれば余計なことをしないのが当然だろ。
元と全く同じ動作をしれば何事も無く済むが僅かでも挙動が変わったりバグが入ったりしたら
周囲に迷惑をかけることになるのだから、
勝手に書き直すようなまねをしでかすのはアマチュアか怖いもの知らずの無分別な若造。
87:login:Penguin
02/08/17 03:47 L76cjPXx
サン電子U-cableP5のドライバはいずこ?
IOのケーブルはLinux対応してまっか?DDIに聞いたら
Linuxは独自のOSですので当社では判りかねます。
つーかWinはMS独自のOSだしMacもMac独自のOSでは?
製作者及び団体の数ではWinの方が独自性が強いと思うのですが
先生方!教えてくだはい
88:login:Penguin
02/08/17 16:48 OXP9X1ng
おお、こんなスレがあったのか。
ちょっと感動……と思ったら
>>87
だから、自分でドライバを書けよ。
89:login:Penguin
02/08/17 16:55 OXP9X1ng
仕事としてソース非公開なLinux用ドライバ開発なんぞをやってます。
>>75の言ってる事は同感。
drivers/char/serial.cなんかを見てると情けなくて泣きたくなってくる。
「動けば正義」は否定しないけど、「動いたら放置」ってのはちょっと
なぁ。
Linuxだと、なら「ならお前が書き直せ」ってことになるんだけど、正直
どこから手をつければいいのか、途方にくれるようなドライバが多すぎ
る。
90:login:Penguin
02/08/17 17:21 MTVVTQyw
88>書ければWinでネットしません!
91:login:Penguin
02/08/17 20:48 Zdf5lEt8
サン電子は「ドライバ書くので情報くれ」といってもくれない会社だから
どうしようもない。
92:login:Penguin
02/08/17 23:46 IR8qSaOk
じゃIO・DATAさんでも良いよ。
H"用のUSBケーブルで32kパケット通信(つなぎ放題)対応って2つしか無いのね!
9月にサンデンシから新しい奴が出るけどWinとMacのみ対応だし・・・・
93:login:Penguin
02/08/18 19:29 XonFUm75
>>90
書けるけどWindowsで繋いでますがなにか。
>>91
いや、情報のない状態からつついて解析していくのも、なかなか
面白いものだよ。
必要性と興味が持続しないとやっとれんけどな。
94:login:Penguin
02/08/20 04:33 EFxDYaWg
U-cableP5ならどっかにドライバ落ちてなかったか?
95:login:Penguin
02/08/21 02:27 ++pf5YT/
94>落ちてたけどウチのPCはFDも無いしCD−Rも無いから意味無し
それ以前にturboLinux7でドライバの入れ方知らんから無意味
Turboじゃなくても知らないが・・・
完全マスターTurboLinux読んで頑張ってみます。
お騒がせしました。
96:login:Penguin
02/08/22 00:52 hok07Wzb
昔DOS3.1の時代に、プリンターのデバイスドライバーをひとつ一機種に
ついて書くたびに50万円もらっていた友達をしっている。
非常においしい商売だったようだ。
97:login:Penguin
02/09/17 02:52 uJTVD8V1
今さらあげてしまいますが、オライリーのドライバの本に書いてある。
file構造体がなにをやっているのかよくわかりません。というかその存在自体が疑問です。file_operation構造体はinit_moduleによって登録されるってのはわかるんですが、file構造体はどんなときに使われるとかよくわかりません。
デバイスドライバで2番目に重要な構造体と書いてあったのでかなり意味があると思うのですが、
くだ質できく内容でないと判断したので、ここで聞かせて下さい。
98:login:Penguin
02/09/17 22:14 2Yzp0rLg
>>97
Linux のドライバは(一部除いて)ファイルで表されてるわけです。
/dev/配下にいっぱいありますよね?
そのファイルをopen すればfile_operations 構造体のopen メソッドが呼ばれる。
そのファイルをread すればfile_operations 構造体のread メソッドが以下略。
多分システムコールかデバイスファイルについて知識不足なんだと思われ。
なぜ存在自体が疑問なのか書いてる途中でわけわかんなくなってきたよヽ(`Д´)ノウワァァン
ちなみにここでつまずいてたらその本絶対読めないから教えてくれる人探した方がいい。。。
99:login:Penguin
02/09/18 03:24 AWtWYegc
ありがとうございました。
どうやらfile_operations構造体の次にでてきたので、
デバイスドライバ特有の構造体かと勘違いしてしまったようですが、
低水準システムコールのときのfile構造体と同じだったんですね。
わかったみたいです。
一応半分位まで読みました。なんとなくですがわかったきがするので、
音なるやつでも書いてみることにします。
100:login:Penguin
02/09/19 00:16 YeCer3VV
>>99
あう。。。file 構造体の方でしたか。file_operations 構造体と間違えた。。。
ごめんなさい。でもわかったんならいいよね。。。
101:login:Penguin
02/09/19 01:00 Zca/tfIP
デバイスドライバで、file構造体って見ることあります?
漏れ、見たことないんですが。
102:login:Penguin
02/09/24 08:38 jDkNy+Lt
age
103:login:Penguin
02/09/24 10:47 oRAD0jRL
久々に上がってたりして...で亀レス
>>101
一つのドライバで複数のデバイスを制御(特に割り込み)する時に
使わない? (private_data)
static な領域にデータ置いといてベタで検索でもいいけど...
104:ねここねこ
02/09/24 12:11 jDkNy+Lt
デバイスドライバを書くときに使う各種マクロや関数などが
詳しく&解りやすく載っている資料とか無いでしょうか?
謎の関数が多くて、、、、
105:login:Penguin
02/09/24 16:20 oRAD0jRL
>>104
>37 にある Linux DeviceDriver 2nd Edition
これを wget で落して(いいのか?) grep で検索しる。
あとはお決まりのソース drivers/char 以下を検索かな?
106:101
02/09/24 18:33 YwjfORCG
>>103
おお、なるほど。
そういうドライバは書いた事無いからなー。
107:ねここねこ
02/09/26 16:00 3O4ltuCq
>105
やっぱり、それしかないですか、、、
馬の本見てがんばります
さらに質問
ハードを直接叩く(?)デバイスドライバを作っているのですが
良いサンプルとか無いでしょうか?
とりあえずは、
linux/drivers/char/qpmouse.c
あたりを参考にしてるのですが、、、
108:login:Penguin
02/09/26 17:52 l3dRzYLM
>>107
お馬さんで充分かと...
> ハードを直接叩く(?)デバイスドライバを作っているのですが
これだけでサンプルないかって言われてもなぁ。
誰もレス出来ないんじゃぁ?
マウスドライバでも作ってんの?
レス出来ないかも知んないけど。
109:login:Penguin
02/09/26 18:12 7zzSbQve
>>107
ターゲットと同じ種類のドライバ
or
似たような構造のハードを制御するドライバ
が一番いいサンプルなんだが。
目的のハードがどんな物かわからんので誰も答えられんと思う。
物によって微妙に作りが違うし。
110:ねここねこ
02/09/27 09:39 2CKrLbeR
>108&109
確かに、物が不明だとわからないですね
物はFPGAというチップ経由で
データがやってくるハードのようです
外部のチップからFPGAにある程度データが貯まると
IRQをキックして(?)まとめてデータをCPUに対して送ってくるとか
言ってたな、、、
実はハードがまだ出来ていなかったり〜
111:login:Penguin
02/09/27 12:01 Bk3J3OAM
>>110
> 実はハードがまだ出来ていなかったり〜
よくある話。
まだ漠然としているが、画像処理か計測系だね?
割り込み関係と poll、 DMA or mmap? 、PCI?。
まず、このあたりをお馬さんで理解すればよろしいかと。
112:ねここねこ
02/09/30 09:38 ILjZfqgw
>111
>まだ漠然としているが、画像処理か計測系だね?
だいたいそんな感じです
お馬さん本見てがんばります
113:login:Penguin
02/10/03 20:49 XOS3kDwu
FPGAというチップってあーた
114:ねここねこ
02/10/04 10:18 reYTaTWA
>113
なんか呼び方が変なのでしょうか?
FPGAというICが有ると効いたのですが、、、
115:ねここねこ
02/10/04 10:18 reYTaTWA
あと、デバイスドライバ製作の資料になるようなページ
Linux PCI デバイスドライバ
URLリンク(www.hemamu.com)
Programmed I/O (PIO)を用いた簡単なPCIデバイスドライバ
URLリンク(www-online.kek.jp)
Linux Module-HOWTO
URLリンク(www.linux.or.jp)
Linuxデバイスドライバ開発ノート
URLリンク(www2s.biglobe.ne.jp)
Linuxによるロボット制御・デバイスドライバ開発
URLリンク(www.mechatronics.mech.tohoku.ac.jp)
Linux用デバイスドライバの作成
URLリンク(ap.fukushima-iri.go.jp)
LinuxデバイスドライバFAQ
URLリンク(www-online.kek.jp)
エンジニアリングLinux応用技法
カーネル/デバイスドライバ/ポーティング/リアルタイム
URLリンク(www.cqpub.co.jp)
色々調べると
ロボット系の人が多いような気がします
SFに出てくるガレージでオリジナル2足歩行ロボットを作る
時代が来たのかな?
116:login:Penguin
02/10/06 18:35 URuHDkGy
hack! age
117:login:Penguin
02/10/17 21:17 RGYfSOtJ
age
118:login:Penguin
02/12/13 10:20 NJ02XiJx
うおータコがドライバ書くのってやっぱ無理があるなー
でも仕事だしがんばるぞーちくしょー
119:IP記録実験
03/01/08 22:12 KwFqEkll
IP記録実験
スレリンク(accuse板)
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
120:login:Penguin
03/01/09 01:09 kgNvzzS1
なんとか頑張って下さい>ひろゆき
お金は持ってないけど応援します。
121:login:Penguin
03/01/09 01:23 kgNvzzS1
ひろゆきは早起きのし過ぎでちょっと壊れてるな。
122:login:Penguin
03/01/09 01:33 kgNvzzS1
>>532
プ
123:IP記録実験
03/01/09 01:55 AmicprCv
IP記録実験
スレリンク(accuse板)
1 名前:ひろゆき ◆3SHRUNYAXA @どうやら管理人 ★ 投稿日:03/01/08 17:13 ID:???
そんなわけで、qbサーバでIPの記録実験をはじめましたー。
27 名前:心得をよく読みましょう 投稿日:03/01/08 17:20 ID:yL/kYdMc
SETTING.TXT管轄でないということは全鯖導入を視野に、か?
38 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:22 ID:rLfxQ17l
>>27
鋭いです。
73 名前:ひろゆき ◆3SHRUNYAXA 投稿日:03/01/08 17:27 ID:rLfxQ17l
>ところで、IPが抜かれて何か今までと変わることってあるのでしょうか?
・今までより、サーバが重くなる。
・裁判所や警察からの照会があった場合にはIPを提出することがある。
124:login:Penguin
03/01/09 02:06 0uJfVOg+
名スレの予感
125:login:Penguin
03/01/09 02:50 yayiRGlu
福島もキタ━━━(゚∀゚)━━━ !!!!
126:login:Penguin
03/01/09 03:34 TPkK0Va9
>>81
まぁそういうところでよしゆきはすごいわな。
127:山崎渉
03/01/15 11:31 m6zO97qQ
(^^)
128:ドライバー
03/01/15 13:09 I5ofFU+k
いまLynxEMのドライバいじってるんだけど、
マルチディスプレイに成功した人います?
もう何年も放置されてる問題だから無理なのかな…?
129:login:Penguin
03/01/15 18:11 nk4F1IDO
>>128
Windows2000でも放置されてた問題だし
あきらめよう
130:login:Penguin
03/02/05 19:41 YQeAwX++
保守age
131:login:Penguin
03/02/07 19:54 jVRQXDIx
1ms以下のタイミングでポーリングを監視する方法って何かないですか?
やっぱ割り込み使わんと無理?
132:login:Penguin
03/02/07 20:36 0UoE11AV
>>131
HZいじってタイマの周期を1ms以下にすればなんとかなると思うけど。
割り込み使うのが正攻法じゃないかなー。
133:
03/02/07 21:50 VKdRg4g7
ftpfs きぼんぬ
modprobe ftpfs login=ftp password=hoge@2ch.net host=ftp.ring.gr.jp
とかすんの
134:login:Penguin
03/02/07 22:07 nu9G29ZI
>>133
URLリンク(www.google.co.jp)
# gnutellafsなんてのもあるのか...
135:133
03/02/11 02:29 /akGZqt4
URLリンク(ftpfs.sourceforge.net)
がーん・・・
寝る!
136:login:Penguin
03/02/11 03:04 bsSBCYyf
>>17
> モジュールアンロード
> # rmmod hello.o
正しくは、rmmod hello
気になったんで...
137:login:Penguin
03/02/14 03:21 vgGnuLAo
お馬さんの本にspinlockにぎったままsleepしちゃいかん、
って書いてあるんですがどんな困ったことが起こるのか教えて欲しい
今日この頃…
138:login:Penguin
03/02/16 03:44 tbT/WrCe
>>137
スピンしっぱなしになる
ちなみに超電磁スピンはこれの応用
139:login:Penguin
03/02/16 23:53 7J4Y8mCH
>>138
ああ、そっか。てことは攻撃中にspin_unlock()されるとマズー?
140:login:Penguin
03/02/20 22:11 +wCEK+nh
>>137
デッドロックが起きる。
spinlock を獲得したままスリープすると、そのプロセスが目覚めるまで
同じ spinlock を獲得しようとするプロセスがビジーウェイトし続ける。
141:137
03/02/21 03:18 qmT4Thn5
>> 140
どうもです。
自作基板に載っているPCIバスブリッジのDMAを叩くのに、複数プロセスからDMA転送を
同時に行うことはできないのでspinlockにぎらせてwait_event_interruptibleか何かを
コールしようとたくらんでました。
DMA転送が終われば必ず割り込みで叩き起こされるのでそこでspin_unlockすれば
問題ないかなと思ったのですが、間違いですか?
その間ビジーウェイトし続けるのがもったいないということであればsemaphoreで
ブロックするべきでしょうか。
142:login:Penguin
03/02/21 05:38 wCxVa5I1
>>141
だめ。
プロセスAのカーネル内: 獲得 -> sleep
プロセスBのカーネル内: 獲得に失敗してビジーウェイト
なのだけど、カーネル内では、ページフォルトとか明示的にschedule()呼ぶと
かしないとスイッチはおこらないので、単一プロセッサシステムだと絶対死亡。
SMPだとか、2.5のプリエンプションカーネルだと、大丈夫かもね。
終了割込みで起こされる処理なら、sleep と wakeupを使うのが普通じゃない?
143:bluehat
03/02/27 02:47 2xZ0HU3V
デバドラをアクセス(介する?)することで、ファイルを暗号化して保存&
ファイルを複号化して取得、ってな事ってできんのか?
おめーだったらどうやって実現するよ?教えろ!ゴルァ!
144:login:Penguin
03/02/27 03:04 1e6KPqQp
普通loopだろう。
145:bluehat
03/02/28 03:17 5YDI7es3
>>144
却下。普通じゃだめぽ。デバドラで実現しる!
146:login:Penguin
03/02/28 07:13 0bshxi8O
>>145
んー、何をもってデバドラというのかよーわからんが、狭義な,
ハードウェアを制御するドライバのことなら
「オマエラ、おつむ悪すぎなので出直して下さい。」
147:login:Penguin
03/02/28 12:21 oFO1qwF8
>>145
んと、loopは広義のデバドラですよ。メジャー番号7のブロックデバイスです。
148:login:Penguin
03/03/06 14:51 NOJmB8ay
kernel-2.5 でデバドラのインターフェースが大幅に変わるという話を
きいたがおまえら知っているか?
149:login:Penguin
03/03/06 22:23 33Ph63nv
>>148
プリエンプティブカーネルになるってのはどっかで見たが・・・
I/F というと、エントリーポイントの仕様でも変わるのか?
それとも、カーネルがエクスポートするルーチンの仕様変更?
150:login:Penguin
03/03/06 23:24 gj2ir03d
>>148
モジュールまわりの仕様が変わるというのはあるが、
モジュール自体に影響ないはずだし…
構造体とかカーネル側の関数が変更されるのはよくあることだし…
その話の出所はどこよ?
151:148
03/03/07 00:48 2S2Wvrkx
struct file_operations つくって register_chrdrv()するだろ。
そのやりかたが変わるとか聞いたんだが。
152:login:Penguin
03/03/07 04:37 2ohbwA9F
>>151
(゚∀゚)んなこたーない
153:148
03/03/07 13:38 2S2Wvrkx
>>152
安心したよ
>>149
カーネルプリエンプションに関しては大問題だ。
ドライバかなり書き直さなくてはいかんのぉ。
154:login:Penguin
03/03/08 00:05 l6jbsomd
2.5のソース読んでからまた来い
155:login:Penguin
03/03/08 00:53 dd9ui0La
>>153
その様子では 2.5のカーネルプリエンプションを理解するのが先です。
名前から想像するものとはちょっと違うものです。
156:login:Penguin
03/03/17 00:55 POpqK4+0
デバイスドライバを書いてる人って 日本に何人いるんだろう
hello.o くらいだったら1万人くらいいるのかな?
157:login:Penguin
03/03/21 01:19 4f4NMJji
3000人くらい
158:LINUX初心者
03/03/22 00:33 c2EgVY2O
ご質問があります。
IDEのDVD-ROMから、暗号無しのDVDデータを取り出すソフトが必要になり
まして、MT.FUJIの仕様書とcdrom.cを読んでいます。どうやら、DVDの
情報はIOCTLを通して取り出せるみたいなのですが、データ(2Kバイト)の
データの取り出しは、IOCTL経由では出来ないように見えます。その割には
CD-ROMのモード1と2、CDオーディオのデータはIOCTLで読み出せます。
フリーのソフトを見るとpf_readで実行しているようですが、どうやれば
良いのでしょうか? 出来たらIOCTLを使いたいのですが・・・・
よろしくお願いします。
159:名無しさん@Emacs
03/03/22 11:15 j2wJcuTQ
>158
URLリンク(www.linuxvideo.org)
ここを読んだだけだけど、、、
DVDでioctlを使うには、カーネルで、それようの設定をして
コンパイルが必要みたい?
160:login:Penguin
03/04/13 20:50 Z3+MYXr2
USBドライバの開発の参考って何かないですか?
161:あぼーん
03/04/13 20:51 fhD9Fsc5
______________
/:\.____\
|: ̄\(∩´∀`) \ <先生!こんなのがありました!
|:在 |: ̄ ̄ U ̄:|
URLリンク(saitama.gasuki.com)
162:login:Penguin
03/04/13 22:03 Z3+MYXr2
kill -9 161
163:login:Penguin
03/04/13 22:08 ecu8jjet
>>160
定番は、似たようなのを見る だろ。なお、クラス(ってかベンダ)ドライバな
ら、一番簡単なのは、scanner.c 。バグありだけどね。
164:login:Penguin
03/04/13 22:16 Z3+MYXr2
>>163
ありがとうございます。
ところで、カーネルに組み込まれているデバイスドライバのソースをモジュール化するのに定番の手法とかって
ないでしょうか?
カーネルがROM化されているので、モジュールにする必要があるもので。
165:login:Penguin
03/04/13 22:25 ecu8jjet
>>164
手法って、なにも特別なことはないとおもうんだけど...
make modules 以外でコンパイルするっていみ? それなら -DMODULE がみそ。
カーネル関連のソース内部でも、ドライバでも、これを ifdef とかで見る。
それともmodule対応じゃないドライバを対応に書き直す方法? こっちなら、
適当な初期化/後かたづけ処理を module_init()とmodule_exit()で登録すればいい。
166:login:Penguin
03/04/13 22:33 Z3+MYXr2
>>165
>module対応じゃないドライバを対応に書き直す方法
こちらの方です。ありがとうございます。意外と簡単なんですね。
早速、明日試してみます。
デスクトップで動いているドライバを組み込みLinuxに移植しようとしてるんですが、
ドライバを作るのははじめてなので、馬本で勉強してます。まだ2章目ですが
167:開発メモ
03/04/14 14:29 Y6l/xCVk
Warning: loading module.o will taint the kernel: no license
がでたときは、
#include <linux/module.h>
MODULE_LICENSE("GPL");
printk の出力はdmesgで見ることができる。
168:login:Penguin
03/04/14 22:12 ktmIntrh
>>160
こんなんが参考になるかも・・・
URLリンク(www-online.kek.jp)
>>167
> printk の出力はdmesgで見ることができる。
cat /proc/kmsg
としても見れます。
カーネルバッファにメッセージが追加される度にコンソールに表示されます。
でも表示内容の文頭に <4> というようなログレベルが付いてまうけど・・・
169:login:Penguin
03/04/16 10:03 Rj9RiWI4
#define MODULE
#include <linux/module.h>
int init_module(void){ printk("<1>こんにちは\n"); return 0;}
void cleanup_module(void){ printk("さやうなら\n");}
を gcc -c hello.c でコンパイル
insmod ./hello.o で組みこもうとすると
./hello.o: Note: modules without a GPL compatible license cannot use GPLONLY_ symbols
というメッセージがでます。
カーネルのバージョン管理だと小間生のですが、カーネルの再構築をせずにすり抜ける
ことは不可能でしょうか?
170:山崎渉
03/04/17 11:54 KRn99/cy
(^^)
171:login:Penguin
03/04/18 01:19 HcWYqirI
>>169
>>167 ?
172:山崎渉
03/04/20 06:14 xFRXxEWb
∧_∧
( ^^ )< ぬるぽ(^^)
173:login:Penguin
03/04/21 11:26 dxqbEfvS
insmod test.o をするとこんなエラーがでます。
どんなライブラリをリンクすればいいのでしょうか?
./test.o: unresolved symbol remap_page_range
./test.o: unresolved symbol __wake_up
./test.o: unresolved symbol schedule
./test.o: unresolved symbol kmalloc
./test.o: unresolved symbol vfree
./test.o: unresolved symbol usb_deregister
./test.o: unresolved symbol video_register_device
./test.o: unresolved symbol remove_wait_queue
./test.o: unresolved symbol video_unregister_device
./test.o: unresolved symbol usb_free_urb
./test.o: unresolved symbol usb_alloc_urb
./test.o: unresolved symbol usb_register
./test.o: unresolved symbol __pollwait
./test.o: unresolved symbol kfree
./test.o: unresolved symbol usb_string
./test.o: unresolved symbol add_wait_queue
./test.o: unresolved symbol usb_submit_urb
./test.o: unresolved symbol usb_control_msg
./test.o: unresolved symbol __vmalloc
./test.o: unresolved symbol printk
./test.o: unresolved symbol usb_set_interface
./test.o: unresolved symbol vmalloc_to_page
./test.o: unresolved symbol __generic_copy_to_user
./test.o: unresolved symbol usb_unlink_urb
174:login:Penguin
03/04/21 11:35 TzNUZhnB
>>173
カーネルのバージョンとtest.cがわからないとちゃんと答えられない
175:login:Penguin
03/04/21 11:37 65INoG+s
>>173
find ライブラリのありそうなパス -exec grep -l "remap_page_range" {} \;
とかやってみるとか?
176:login:Penguin
03/04/21 12:03 UyUiMYQq
>>173
MODVERSIONSでせう。
test.cコンパイルするときに-DMODVERSIONSつけてみ。
当然includeはカーネルと同じものを使うこと。
177:173
03/04/21 12:48 dxqbEfvS
カーネルは、2.4.20 です。
ソースはこれです。usbカメラのドライバです。
URLリンク(www.smcc.demon.nl)
このソースの *.c を
INCLUDEDIR = /usr/src/linux/include/
CFLAGS = -O2 -DMODULE -D__KERNEL__ -static -Wall -Wstrict-prototypes -DMODVERSIONS -I$(INCLUDEDIR) -DEXPORT_SYMTAB
でコンパイルしてできた、*.o を、
ld -o test.o -r ./*.o でリンク。insmod test.o で、173のメッセージがでます。
ROM化されたカーネルに、モジュールをいれてusbカメラを使えるようにしようと思ったのですが・・・
ちなみに、同じソースをカーネルに組みこめば動作するのは確認しました。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
5366日前に更新/265 KB
担当:undef