1 名前:login:Penguin [02/01/31 01:14 ID:t3s191ys.net] ディバイスドライバの改造、製作にまつわる情報交換、質問、 噂話、ぐち、政治、経済に関するスレです。できる限り生産的にいきましょーや。
34 名前:login:Penguin mailto:sage [02/02/01 10:21 ID:RSGobFLl.net] >>31 あんた自分の理解力にコンプレックスでもあるの? まあ気の弱い犬ほどよく吠えると言うが・・・
35 名前:login:Penguin mailto:sage [02/02/01 10:35 ID:a6zdq5Rc.net] >>34 オマエガナー 赤の他人に理解力について 罵られるいわれもコンプレックスを持つ必要性も 無いと思われ。 28は上司に尻叩かれて性格が曲がっちゃった 職業プログラマに3ガバス
36 名前:login:Penguin [02/02/01 10:51 ID:Oxc8LS21.net] 喧嘩は〜やめて〜争わ〜ないで〜 >>33 承認 モジュールをつくる www.mechatronics.mech.tohoku.ac.jp/~kumagai/linux/drivers/module.html デバイスドライバ開発入門 www.net-newbie.com/linux/driver/ Linux 拡張ボードデバイスドライバの作り方 www.mechatronics.mech.tohoku.ac.jp/~kumagai/research/library/drivers/make_dd.html >>10 へ www.linux.or.jp/JF/JFdocs/kernel-docs-2.2/ioctl-number.txt.html
37 名前:login:Penguin [02/02/01 10:53 ID:Oxc8LS21.net] お馬さん 2ndEdition タダで読めますよ www.xml.com/ldd/chapter/book/index.html
38 名前:login:Penguin mailto:sage [02/02/01 11:02 ID:0zxTeFbY.net] >>37 サンクスコ ちなみに23の説明は楽しかった。
39 名前:login:Penguin mailto:sage [02/02/01 11:35 ID:0DxQaaOu.net] >3ガバス ガバスって、ファミ通だっけ?デバイスと関係なのでsage
40 名前:login:Penguin mailto:sage [02/02/01 13:40 ID:fvbQ/5zX.net] >>25 お前はまだ仮想アドレスについても学ばなければならない。 >自分のレベルに合ってない本を買ってしまったときのむなしさ レベル上がってから読みなよ。
41 名前:25 mailto:sage [02/02/01 14:20 ID:LgazE6G1.net] >>40 うむ、了解。 じゃあまず仮想アドレスについてから勉強するよ。 なんかこのスレでブックマークが一杯になってしまったなあ
42 名前:login:Penguin mailto:sage [02/02/01 14:38 ID:
] [ここ壊れてます]
43 名前:HC9Yhxcp.net mailto: デバイスドライバーだけじゃないけどさ ソフトバンクからでてるLinuxのプログラム本と 詳細なKernel(2.2系)の本はあった方がいいかなぁ・・・ [] [ここ壊れてます]
44 名前:login:Penguin [02/02/01 15:00 ID:OYnwkLox.net] とりあえず、ここまでのレスは全部読んで なんとなく概要は理解できた気がするのですが、、。 お仕事でドライバの事少し勉強しなければいけませんので、 ソースから学ぼうと思ってるんですが。 Linux2.4系のKernelソースの中で 全く、ドライバをやった事の無い初心者にも わかりやすいソースってどれでしょうか? どなたか有識者で知ってらっしゃる方はいらっしゃいませんか? 「お馬さん」は2.2系の日本語を読んでますけど、 非常に難解です、、。 Kernelが2.4系なので、 文献も英語しかなく、 読解力のないわたしは苦しんでいます。(^^;) ここを良スレと見込んでよろしくお願いしますm(_ _)m
45 名前:login:Penguin [02/02/01 15:14 ID:4diOANaQ.net] >>43 Interface2、3月号あたりにLinuxのデバドラに関する記事がありました。 なかなか良かったですよ。
46 名前:login:Penguin mailto:sage [02/02/01 17:42 ID:Oxc8LS21.net] >>43 なんでもいいからキャラクタ型デバイスのソースをみるとよろし。 基本がみっしり詰まってて勉強になるっす。
47 名前:login:Penguin mailto:sage [02/02/01 22:46 ID:Pc1hsWFQ.net] /* * $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ということは、いつものコメンテーターと作者が違うようですね。 // そうそう。pc.2ch.net/test/read.cgi/prog/1011188426/215-281 とは // 作者がちがうんで、私も心配しちょる。 // また煽られて逆上しませんか? // 本人も、O<^Z=6:\Y2と思ったようだから大丈夫でしょう。 // むしろ、途中で飽きるんじゃないかな? // そのあたり、読者の応援の声が欲しいところ。 // ところで作者は、joydev.cのGPLの表記を消してしまったようですが、 // 大丈夫でしょうか? // まぁCopyright (c)は残したから、いいんじゃないかね。 // ともあれ、Linuxドライバーコメント2002 Round1 joydev.c // いよいよスタートです。 // この放送は等幅フォント対応で、2chよりお伝えします!
48 名前:login:Penguin mailto:sage [02/02/01 22:52 ID:c8Ppl2p2.net] #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> // どうやらインクルードも無 事終了しました。
49 名前:login:Penguin mailto:sage [02/02/01 22:53 ID:c8Ppl2p2.net] // さて、始めは定義の類が続きます #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]; // それでは聞いてみましょう。ヤブナ カさーん? };
50 名前:login:Penguin mailto:sage [02/02/01 22:56 ID:c8Ppl2p2.net] /************************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です。
51 名前:login:Penguin mailto:sage [02/02/01 22:57 ID:c8Ppl2p2.net] げ、ぶち切れてる。鬱死....
52 名前:login:Penguin mailto:sage [02/02/01 23:02 ID:Oxc8LS21.net] 改行が挟まらなければ 相当おもしろい企画になる・・・ マジ良スレの予感
53 名前:CMまで前半 mailto:sage [02/02/01 23:46 ID:bMJKgu48.net] begin 644 2ch_joydev1.txt.bz2 M0EIH.3%!629360A%+XT``+9_G[JP``#,=_]U/[?;,+__WV`_?O_____OS___ MF?=@!.[NS<^WM;=[S4>SGN[5R&IH1H"GHIY-JC:30VB>FI^I/U3-0/4&FGIJ M!Z@VC:4]3:@``!H'J``!M0,FTC0`-$28@P*>"9"GAHH&AZ(>IHT`]0,C0T:' MJ``````#0```-#0:()II3QJ4_4VIZH\H9#TT31H-I`&U!H8AB#0#(:,0!IH: M``#0#0T`TT#$A0:4]I--3T31H/4]0TR:-/U1ZFFF30T-``8@````:&F@9``` M`:`08!#1B:`R:83)ID`&$:-,`F`)A!H9`Q,@#``"8F3`3`30))$1IE,4\2/4 M_4T@T-&GJ>HR&@S2&@:``:#0```````````8'",1C"&^9*JG'[T9$HI(&-7K M<R2UW8LHB7RW@PNGZ,5R,@F?`X:]]6?*@\AA1!+]AMG$$R$%Z#6BI@;I8)E$ M#0V\R67$M!!1MI'``(8.#?;]9*3"CC/04GY[9,")-38J#5@$!*1`,$)",DF" M,!#ER=#/F.P!LPJ^\UD.DIML@*/A="L4E\"0*:`6CDL4ZLB'(N0K)R`2<S"" M26E3JSLO9#`O-\18TZ]PLT!16$^#A*9UI<SJM15`%.>PJ4F#PGPK,H%5JO)J MGV@WNIA6V-^.(2KFCM43JQCZ4/(%H`86<FJ4'``3``&WJ0K&6-L(C'Q:Q4Z9 MDH1%=5`FDN8.BJZ,<9(R#9"JHQ#Q9-@FDA]<QPHS;$?AF/=[C;PK,Q&D+UTS MHC$U/L;$)=$`1@MA("$:&1U24`PU>ZD,5?PWSR6A'J+P`<HKN*J_%O#>*5+` ME%%>\*`3EL814Y2G.F*-2D%,``VX*\2%)C"PT3HA``;O`'/-HX%017@EU]Z* M@4D\+3S@$%\4>-,B)N-T_&1W!-9(=EI$!-ISE-E9.I41`UHX*9;.<R+2/'O` M`?,.,+.6+U<&5+>N6D`7YW:]"`6S<(/$\1@YX43%3*P)X3Y$5SXH$=900NO@ M*P53)YAM,.::9X6ECZ!6M;)1(`AI5)U)$@!B40HIBG1GB5AC802!GY%0>8A. M88%M9MGB96$2;)_KVD6EEK!VONC\W"$J0AQG0MI<Y7-MD?H$I&@CJ+'RWB>? MT<E-8XTLT4I8C'B&+2]CZZ)!?'W5T0$$`1.7=3!$`D!!,JJA+AC858TE3(R0 MW<XHBH"D.=,[GGGIM-U0R"#AA)D$`#[2`R2B80==-3WHHVE,EFS"LU*_"4LZ M,ZL>3+V%DI'57CLV@]G8OK\_EF0MQY$P/R]6($`$#9S,X9A"]P6,R7>>XO3; MOK\!N2S:AE#E<PN#!@!Q%%`G2`?C!>)-)=?"^4-19*JGMNJ4<`E#7OW"$'<+ M_0/AJ_(^I+V?B;R90$LIN#HX6GE:A5F%$_=X:K6!."L^0*`Q-5:N=8'-)@?+ M->J+1X5"YC%MKS2^ARBZ'&/[18EM_'1PY/750@QJ3K:;K>B"-O+N>S>E\WY/ M[<V088<WQW#YI((A`6>%Z$-&I*/IJ?(/^S@$L)#14I1&%H0>R=JTJU(SHD!, MV[94*SBH*IX$B&@W;5ER`]M$:B"V$X:%-R&16KN)6E_4V<`9F\@A96NE1RIN MC%-\@UC&,?/3;`7Q*CZ0[BY_*=L\E`6,P.>+DA)9%L0Y>=+,RO57L'-DS;7& M9Q8]%(-E9G34[^*]A'`U3MV``_*!2N"=CP,\XO`2"5^S`/!")2),:$C@6`1$ M^PPLI,^5M+P;G*R76:WE`F8#!LWEP84Q?JNX"(1+!9H76'0B!9!D*NP1FCM; M^M"D0F#,&8,*J15U;H75]L_`<K[QZ2DT@3C_I6ING0@9RX=;%-G]7K1-$XC+ M^&"1$C-:Q"F!_4UC%$03&(Y5UHHT(Q1(UAJ,05-<WLY`*D7]L02X[?7=S<P3 M%&PI\#K<LC@1",MHX<AF2C0]84!)%^8!P;+"Q!EK$0JFN`:ZZ"%8Q$Y'COU+ M6A7(,,:;)38Y@KYDBW+#D4F$LBRX3(D"%Q=5D/S6!,*]5RRXA.>P?%9-:E.) 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
54 名前:CMまで後半 mailto:sage [02/02/01 23:47 ID:bMJKgu48.net] 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
55 名前:login:Penguin mailto:sage [02/02/01 23:49 ID:bMJKgu48.net] 只今、続き作成中です。それまで>>52-53 の美しい映像(?)でお楽しみ下さい。 m(__)m
56 名前:login:Penguin mailto:sage [02/02/02 00:16 ID:81i4zM55.net] 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ですからねぇ...
57 名前:login:Penguin mailto:sage [02/02/02 01:11 ID:O2jPWcD7.net] // ついに関数が来ました! // 名前からすると、データ補正かな? static int joydev_correct(int value, struct js_corr *corr)
58 名前:{ // あれ、見慣れない構造体が... //*モモナイさん!モモナイさん! // なにやら「値」が来てるなぁ //*モモナイさん! // はいはい、ヤブナカさん? //*今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がどういう物か理解してないからねぇ [] [ここ壊れてます]
59 名前:本日のシメにageます mailto:age [02/02/02 01:14 ID:O2jPWcD7.net] 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でお送りいたしております。 // まだ続ける気かねぇ
60 名前:login:Penguin mailto:sage [02/02/02 09:46 ID:whMMNTAJ.net] おもしろい!(w
61 名前:login:Penguin [02/02/02 23:09 ID:OVfU0W3z.net] うえ
62 名前:login:Penguin [02/02/03 00:07 ID:zajX165D.net] ちなみに、元祖モモナイさん達は pc.2ch.net/test/read.cgi/prog/1011188426/201-300 このあたりにいらっしゃいます。 キャラ貸してくれたコメンテータさん、ありがとう! # つーか事後承諾だったけど...
63 名前:login:Penguin [02/02/03 00:09 ID:BzrcOmdf.net] もういいよ。 sunは倒産。 SGIも倒産。 HPもWSから撤退。 IBMもWSから撤退。 NECもWSから撤退。 世界にはPCしかなくなりました。 OSもLinuxしかなくなりました。 犬厨の望む世界になりました。 終了。
64 名前:23 mailto:sage [02/02/03 02:51 ID:KGnsKyPB.net] そうか、もういいのか....(鬱
65 名前:login:Penguin [02/02/03 14:14 ID:P0SAPnI+.net] >>61 その時、マイクロソフトのドライバ開発者は… (続く)
66 名前:login:Penguin [02/02/04 18:52 ID:NNgCZ8vd.net] >>63 >>61 その頃、マイクロソフトのドライバ開発者@新橋ガード下は、 「ってやんでぇバーカヤローゥ! Linuxがなんだってんだっ、ヒック、ゥィー!」
67 名前:login:Penguin [02/02/04 23:07 ID:2sAhIg4J.net] >57 いいぞ!続きを!
68 名前:login:Penguin [02/02/05 15:21 ID:iaI23jTt.net] >65 同感。 でも、もう少し読みやすい(見やすい)とうれしんだけどな。
69 名前:login:Penguin [02/02/05 18:54 ID:F3yqU4bD.net] 「予想される近未来」 ・Linuxに市場を荒らされ全ての商用UNIXが撤退。 ・Windowsは順調に売れて市場を拡大。 ・エンタープライズ用途でのLinuxの駄目さ加減が発覚してみんな困る。 ・みんなしょうがなくWindowsに移行する。 ・Linuxはカーネルの分裂により大混乱。商用用途で使い物にならなくなる。 ・Windowsしかなくなる。
70 名前:login:Penguin mailto:sage [02/02/05 19:58 ID:EBSnoi/G.net] >>67 BeOSのような第3の勢力が突発的に出現して Gates帝国もUNIX連合も一夜にして淘汰される。に一票
71 名前:login:Penguin mailto:sage [02/02/05 20:26 ID:YUE4G5dx.net] サーバはどうか知らんが 結局ごちゃごちゃでも便利なものから離れられない。windowsは無くならんのは当然だが linuxもWindowsがGPLにでもならん限り無くならんと思うなあ。 そのうち良くなるだろ。 もしBeOSみたいなのがでてきても、よっぽど革新的でFreeでないと、また往っちゃうよ
72 名前:login:Penguin mailto:sage [02/02/05 20:59 ID:UUxecaUS.net] コピペにマジレスカコワルイ
73 名前:login:Penguin [02/02/05 21:21 ID:JQSzVmkT.net] 5年程度のスパンで見ると、Linuxは産業用の組み込み系のOSと して活躍するでしょう。 また、IBM系のリナックスも順調にシェアを伸ばしていくでしょう。 PCではWindowsが制覇するでしょう。
74 名前:login:Penguin [02/02/13 10:11 ID:Ocy9V5oG.net] モジュールを組み込むとき、変数が渡せるものもいくつかあるけど そのときに どの変数が渡されているかあとで知る手段ってない? 例えば sb.o とかなら irqとかいろいろ渡せるよね。 insmodしたその後で irqいくつだったか忘れたときとか 知る手段無いよね。 あと、ついでに どの変数が渡せるかを事前に知りたい。 ソースみりゃわかるけど面倒くさいじゃん。
75 名前:login:Penguin [02/02/13 11:37 ID:QvFCkM3Q.net] /proc以下のファイルで確認すればいんじゃないの?
76 名前:名無しさん@Emacs mailto:sage [02/02/14 02:48 ID:z04c7JYX.net] ディバイスドライバをファックしよう!
77 名前:BERO [02/04/02 18:12 ID:zlzOuE7v.net] デバイスドライバの解説って 「デバイスにはchar型とblock型があって・・charデバイスの実装サンプル」 で終わってるのが多いんだけど、 実際はソレを生で使ってることは少なくて、サウンドデバイス、CD-ROMデバイス、FlashROMデバイス、ビデオデバイスとか デバイスごとのフレームワークがあって、実際のハードウェアドライバはその下にくるようになってる。 実験機器や自作ハードで生のI/Oポートをたたけるだけでいい、ていうのならともかく、 (フレームワークが存在するような)一般的なハードウェアでは、このテのデバドラ解説ってのは参考にならない。 ファイルシステムドライバとかもこの範疇に入らないし。 みたところ各フレームワークの解説ってのはみあたんなくて、結局ソースにあたるしかない。 ところが既存のソースも、古いコードが残ってたり、そこからのコピペと思しき不要なコードが紛れ込んでたりして、 どれをリファレンス実装として参考にしたらいいのやら、って感じでアタマいたくなる。
78 名前:login:Penguin [02/04/05 22:06 ID:swoFd
] [ここ壊れてます]
79 名前:SIN.net mailto: >>75 本物? [] [ここ壊れてます]
80 名前:login:Penguin mailto:sage [02/04/05 22:15 ID:CU/0IjiI.net] まぁ、アゲられついでに75さんにLinux界に伝わる格言を一つ。 「動けば正義」
81 名前:login:Penguin mailto:sage [02/05/08 17:01 ID:kXDZWtdP.net] >77 VBプログラマに通ずるものがある(w
82 名前:login:Penguin mailto:sage [02/05/12 06:02 ID:i/O/fiuU.net] >>77 イイ言葉だ....
83 名前:login:Penguin mailto:sage [02/06/25 11:32 ID:h8q+RUm7.net] お馬さん本買ってきて、サンプルコードをftp.ora.comからダウンロード しようと思ったのに、ftp.ora.comがつながんねーYO! どなたかftp.ora.com/pub/examples/linux/drivers/の中身を ミラーしていただけないでしょうか?
84 名前:login:Penguin mailto:sage [02/06/26 10:26 ID:MG8jc7TY.net] すみません。ftp.ora.comにつながりましたので、>>80 はなしにしてください。 これだけではなんなので、同じ壁に突き当たるかもしれない人へ: お馬さん本のサンプルソースは、筆者のサイト ftp://ar.linux.it/pub/ldd2/ からもダウンロードできます。
85 名前:login:Penguin [02/08/14 00:47 ID:2q+/MEDi.net] age
86 名前:login:Penguin mailto:sage [02/08/14 00:52 ID:udiJKVSV.net] あがりついでに... >>78 >>77 >VBプログラマに通ずるものがある(w 「クソコードを見付けたら、書き直すチャンス!」ってのが VBとの違いだな。
87 名前:login:Penguin mailto:sage [02/08/16 07:53 ID:c0C09J9f.net] 糞コードをハケーン!! じっとガマンして保守に付き合うのはプロ とっとと書き直すのはアマ
88 名前:login:Penguin [02/08/16 14:43 ID:S24KMUAB.net] >>84 じゃあオレはアマチュアの方がいいや。 プロっていってもピンキリだし。
89 名前:login:Penguin mailto:sage [02/08/17 02:23 ID:D5BAubdc.net] たとえ糞コードでも動いているものであれば余計なことをしないのが当然だろ。 元と全く同じ動作をしれば何事も無く済むが僅かでも挙動が変わったりバグが入ったりしたら 周囲に迷惑をかけることになるのだから、 勝手に書き直すようなまねをしでかすのはアマチュアか怖いもの知らずの無分別な若造。
90 名前:login:Penguin mailto:sage [02/08/17 03:47 ID:L76cjPXx.net] サン電子U-cableP5のドライバはいずこ? IOのケーブルはLinux対応してまっか?DDIに聞いたら Linuxは独自のOSですので当社では判りかねます。 つーかWinはMS独自のOSだしMacもMac独自のOSでは? 製作者及び団体の数ではWinの方が独自性が強いと思うのですが 先生方!教えてくだはい
91 名前:login:Penguin mailto:sage [02/08/17 16:48 ID:OXP9X1ng.net] おお、こんなスレがあったのか。 ちょっと感動……と思ったら >>87 だから、自分でドライバを書けよ。
92 名前:login:Penguin mailto:sage [02/08/17 16:55 ID:OXP9X1ng.net] 仕事としてソース非公開なLinux用ドライバ開発なんぞをやってます。 >>75 の言ってる事は同感。 drivers/char/serial.cなんかを見てると情けなくて泣きたくなってくる。 「動けば正義」は否定しないけど、「動いたら放置」ってのはちょっと なぁ。 Linuxだと、なら「ならお前が書き直せ」ってことになるんだけど、正直 どこから手をつければいいのか、途方にくれるようなドライバが多すぎ る。
93 名前:login:Penguin mailto:sage [02/08/17 17:21 ID:MTVVTQyw.net] 88>書ければWinでネットしません!
94 名前:login:Penguin mailto:sage [02/08/17 20:48 ID:Zdf5lEt8.net] サン電子は「ドライバ書くので情報くれ」といってもくれない会社だから どうしようもない。
95 名前:login:Penguin mailto:sage [02/08/17 23:46 ID:IR8qSaOk.net] じゃIO・DATAさんでも良いよ。 H"用のUSBケーブルで32kパケット通信(つなぎ放題)対応って2つしか無いのね! 9月にサンデンシから新しい奴が出るけどWinとMacのみ対応だし・・・・
96 名前:login:Penguin mailto:sage [02/08/18 19:29 ID:XonFUm75.net] >>90 書けるけどWindowsで繋いでますがなにか。 >>91 いや、情報のない状態からつついて解析していくのも、なかなか 面白いものだよ。 必要性と興味が持続しないとやっとれんけどな。
97 名前:login:Penguin mailto:sage [02/08/20 04:33 ID:EFxDYaWg.net] U-cableP5ならどっかにドライバ落ちてなかったか?
98 名前:login:Penguin mailto:sage [02/08/21 02:27 ID:++pf5YT/.net] 94>落ちてたけどウチのPCはFDも無いしCD−Rも無いから意味無し それ以前にturboLinux7でドライバの入れ方知らんから無意味 Turboじゃなくても知らないが・・・ 完全マスターTurboLinux読んで頑張ってみます。 お騒がせしました。
99 名前:login:Penguin [02/08/22 00:52 ID:hok07Wzb.net] 昔DOS3.1の時代に、プリンターのデバイスドライバーをひとつ一機種に ついて書くたびに50万円もらっていた友達をしっている。 非常においしい商売だったようだ。
100 名前:login:Penguin [02/09/17 02:52 ID:uJTVD8V1.net] 今さらあげてしまいますが、オライリーのドライバの本に書いてある。 file構造体がなにをやっているのかよくわかりません。というかその存在自体が疑問です。file_operation構造体はinit_moduleによって登録されるってのはわかるんですが、file構造体はどんなときに使われるとかよくわかりません。 デバイスドライバで2番目に重要な構造体と書いてあったのでかなり意味があると思うのですが、 くだ質できく内容でないと判断したので、ここで聞かせて下さい。
101 名前:login:Penguin mailto:sage [02/09/17 22:14 ID:2Yzp0rLg.net] >>97 Linux のドライバは(一部除いて)ファイルで表されてるわけです。 /dev/配下にいっぱいありますよね? そのファイルをopen すればfile_operations 構造体のopen メソッドが呼ばれる。 そのファイルをread すればfile_operations 構造体のread メソッドが以下略。 多分システムコールかデバイスファイルについて知識不足なんだと思われ。 なぜ存在自体が疑問なのか書いてる途中でわけわかんなくなってきたよヽ(`Д´)ノウワァァン ちなみにここでつまずいてたらその本絶対読めないから教えてくれる人探した方がいい。。。
102 名前:login:Penguin [02/09/18 03:24 ID:AWtWYegc.net] ありがとうございました。 どうやらfile_operations構造体の次にでてきたので、 デバイスドライバ特有の構造体かと勘違いしてしまったようですが、 低水準システムコールのときのfile構造体と同じだったんですね。 わかったみたいです。 一応半分位まで読みました。なんとなくですがわかったきがするので、 音なるやつでも書いてみることにします。
103 名前:login:Penguin mailto:sage [02/09/19 00:16 ID:YeCer3VV.net] >>99 あう。。。file 構造体の方でしたか。file_operations 構造体と間違えた。。。 ごめんなさい。でもわかったんならいいよね。。。
104 名前:login:Penguin mailto:sage [02/09/19 01:00 ID:Zca/tfIP.net] デバイスドライバで、file構造体って見ることあります? 漏れ、見たことないんですが。
105 名前:login:Penguin mailto:age [02/09/24 08:38 ID:jDkNy+Lt.net] age
106 名前:login:Penguin mailto:sage [02/09/24 10:47 ID:oRAD0jRL.net] 久々に上がってたりして...で亀レス >>101 一つのドライバで複数のデバイスを制御(特に割り込み)する時に 使わない? (private_data) static な領域にデータ置いといてベタで検索でもいいけど...
107 名前:ねここねこ mailto:age [02/09/24 12:11 ID:jDkNy+Lt.net] デバイスドライバを書くときに使う各種マクロや関数などが 詳しく&解りやすく載っている資料とか無いでしょうか? 謎の関数が多くて、、、、
108 名前:login:Penguin mailto:sage [02/09/24 16:20 ID:oRAD0jRL.net] >>104 >37 にある Linux DeviceDriver 2nd Edition これを wget で落して(いいのか?) grep で検索しる。 あとはお決まりのソース drivers/char 以下を検索かな?
109 名前:101 mailto:sage [02/09/24 18:33 ID:YwjfORCG.net] >>103 おお、なるほど。 そういうドライバは書いた事無いからなー。
110 名前:ねここねこ mailto:age [02/09/26 16:00 ID:3O4ltuCq.net] >105 やっぱり、それしかないですか、、、 馬の本見てがんばります さらに質問 ハードを直接叩く(?)デバイスドライバを作っているのですが 良いサンプルとか無いでしょうか? とりあえずは、 linux/drivers/char/qpmouse.c あたりを参考にしてるのですが、、、
111 名前:login:Penguin mailto:sage [02/09/26 17:52 ID:l3dRzYLM.net] >>107 お馬さんで充分かと... > ハードを直接叩く(?)デバイスドライバを作っているのですが これだけでサンプルないかって言われてもなぁ。 誰もレス出来ないんじゃぁ? マウスドライバでも作ってんの? レス出来ないかも知んないけど。
112 名前:login:Penguin mailto:sage [02/09/26 18:12 ID:7zzSbQve.net] >>107 ターゲットと同じ種類のドライバ or 似たような構造のハードを制御するドライバ が一番いいサンプルなんだが。 目的のハードがどんな物かわからんので誰も答えられんと思う。 物によって微妙に作りが違うし。
113 名前:ねここねこ [02/09/27 09:39 ID:2CKrLbeR.net] >108&109 確かに、物が不明だとわからないですね 物はFPGAというチップ経由で データがやってくるハードのようです 外部のチップからFPGAにある程度データが貯まると IRQをキックして(?)まとめてデータをCPUに対して送ってくるとか 言ってたな、、、 実はハードがまだ出来ていなかったり〜
114 名前:login:Penguin mailto:sage [02/09/27 12:01 ID:Bk3J3OAM.net] >>110 > 実はハードがまだ出来ていなかったり〜 よくある話。 まだ漠然としているが、画像処理か計測系だね? 割り込み関係と poll、 DMA or mmap? 、PCI?。 まず、このあたりをお馬さんで理解すればよろしいかと。
115 名前:ねここねこ [02/09/30 09:38 ID:ILjZfqgw.net] >111 >まだ漠然としているが、画像処理か計測系だね? だいたいそんな感じです お馬さん本見てがんばります
116 名前:login:Penguin mailto:sage [02/10/03 20:49 ID:XOS3kDwu.net] FPGAというチップってあーた
117 名前:ねここねこ [02/10/04 10:18 ID:reYTaTWA.net] >113 なんか呼び方が変なのでしょうか? FPGAというICが有ると効いたのですが、、、
118 名前:ねここねこ [02/10/04 10:18 ID:reYTaTWA.net] あと、デバイスドライバ製作の資料になるようなページ Linux PCI デバイスドライバ www.hemamu.com/dev/linux/pci/index.html Programmed I/O (PIO)を用いた簡単なPCIデバイスドライバ www-online.kek.jp/~yasu/Kenshu/pci-device-driver.html Linux Module-HOWTO www.linux.or.jp/JF/JFdocs/Module-HOWTO.html Linuxデバイスドライバ開発ノート www2s.biglobe.ne.jp/~nunokawa/Linux/DD/ Linuxによるロボット制御・デバイスドライバ開発 www.mechatronics.mech.tohoku.ac.jp/~kumagai/linux/ Linux用デバイスドライバの作成 ap.fukushima-iri.go.jp/LinuxDeviceDriver/LinuxDeviceDriveMAIN.htm LinuxデバイスドライバFAQ www-online.kek.jp/~yasu/Kenshu/faq.html エンジニアリングLinux応用技法 カーネル/デバイスドライバ/ポーティング/リアルタイム www.cqpub.co.jp/hanbai/books/522070.htm 色々調べると ロボット系の人が多いような気がします SFに出てくるガレージでオリジナル2足歩行ロボットを作る 時代が来たのかな?
119 名前:login:Penguin [02/10/06 18:35 ID:URuHDkGy.net] hack! age
120 名前:login:Penguin [02/10/17 21:17 ID:RGYfSOtJ.net] age
121 名前:login:Penguin [02/12/13 10:20 ID:NJ02XiJx.net] うおータコがドライバ書くのってやっぱ無理があるなー でも仕事だしがんばるぞーちくしょー
122 名前:IP記録実験 mailto:IP記録実験 [03/01/08 22:12 ID:KwFqEkll.net] IP記録実験 qb.2ch.net/test/read.cgi/accuse/1042013605/ 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を提出することがある。
123 名前:login:Penguin mailto:sage [03/01/09 01:09 ID:kgNvzzS1.net] なんとか頑張って下さい>ひろゆき お金は持ってないけど応援します。
124 名前:login:Penguin mailto:sage [03/01/09 01:23 ID:kgNvzzS1.net] ひろゆきは早起きのし過ぎでちょっと壊れてるな。
125 名前:login:Penguin mailto:sage [03/01/09 01:33 ID:kgNvzzS1.net] >>532 プ
126 名前:IP記録実験 mailto:IP記録実験 [03/01/09 01:55 ID:AmicprCv.net] IP記録実験 qb.2ch.net/test/read.cgi/accuse/1042013605/ 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を提出することがある。
127 名前:login:Penguin mailto:sage [03/01/09 02:06 ID:0uJfVOg+.net] 名スレの予感
128 名前:login:Penguin mailto:sage [03/01/09 02:50 ID:yayiRGlu.net] 福島もキタ━━━━━━(゚∀゚)━━━━━━ !!!!
129 名前:login:Penguin mailto:sage [03/01/09 03:34 ID:TPkK0Va9.net] >>81 まぁそういうところでよしゆきはすごいわな。
130 名前:山崎渉 mailto:(^^)sage [03/01/15 11:31 ID:m6zO97qQ.net] (^^)
131 名前:ドライバー [03/01/15 13:09 ID:I5ofFU+k.net] いまLynxEMのドライバいじってるんだけど、 マルチディスプレイに成功した人います? もう何年も放置されてる問題だから無理なのかな…?
132 名前:login:Penguin mailto:sage [03/01/15 18:11 ID:nk4F1IDO.net] >>128 Windows2000でも放置されてた問題だし あきらめよう
133 名前:login:Penguin [03/02/05 19:41 ID:YQeAwX++.net] 保守age
134 名前:login:Penguin [03/02/07 19:54 ID:jVRQXDIx.net] 1ms以下のタイミングでポーリングを監視する方法って何かないですか? やっぱ割り込み使わんと無理?
135 名前:login:Penguin mailto:sage [03/02/07 20:36 ID:0UoE11AV.net] >>131 HZいじってタイマの周期を1ms以下にすればなんとかなると思うけど。 割り込み使うのが正攻法じゃないかなー。
136 名前: [03/02/07 21:50 ID:VKdRg4g7.net] ftpfs きぼんぬ modprobe ftpfs login=ftp password=hoge@2ch.net host=ftp.ring.gr.jp とかすんの
137 名前:login:Penguin mailto:sage [03/02/07 22:07 ID:nu9G29ZI.net] >>133 www.google.co.jp/ # gnutellafsなんてのもあるのか...
138 名前:133 mailto:sage [03/02/11 02:29 ID:/akGZqt4.net] ftpfs.sourceforge.net/ がーん・・・ 寝る!
139 名前:login:Penguin [03/02/11 03:04 ID:bsSBCYyf.net] >>17 > モジュールアンロード > # rmmod hello.o 正しくは、rmmod hello 気になったんで...
140 名前:login:Penguin [03/02/14 03:21 ID:vgGnuLAo.net] お馬さんの本にspinlockにぎったままsleepしちゃいかん、 って書いてあるんですがどんな困ったことが起こるのか教えて欲しい 今日この頃…
141 名前:login:Penguin mailto:sage [03/02/16 03:44 ID:tbT/WrCe.net] >>137 スピンしっぱなしになる ちなみに超電磁スピンはこれの応用
142 名前:login:Penguin mailto:sage [03/02/16 23:53 ID:7J4Y8mCH.net] >>138 ああ、そっか。てことは攻撃中にspin_unlock()されるとマズー?
143 名前:login:Penguin [03/02/20 22:11 ID:+wCEK+nh.net] >>137 デッドロックが起きる。 spinlock を獲得したままスリープすると、そのプロセスが目覚めるまで 同じ spinlock を獲得しようとするプロセスがビジーウェイトし続ける。
144 名前:137 [03/02/21 03:18 ID:qmT4Thn5.net] >> 140 どうもです。 自作基板に載っているPCIバスブリッジのDMAを叩くのに、複数プロセスからDMA転送を 同時に行うことはできないのでspinlockにぎらせてwait_event_interruptibleか何かを コールしようとたくらんでました。 DMA転送が終われば必ず割り込みで叩き起こされるのでそこでspin_unlockすれば 問題ないかなと思ったのですが、間違いですか? その間ビジーウェイトし続けるのがもったいないということであればsemaphoreで ブロックするべきでしょうか。
145 名前:login:Penguin mailto:sage [03/02/21 05:38 ID:wCxVa5I1.net] >>141 だめ。 プロセスAのカーネル内: 獲得 -> sleep プロセスBのカーネル内: 獲得に失敗してビジーウェイト なのだけど、カーネル内では、ページフォルトとか明示的にschedule()呼ぶと かしないとスイッチはおこらないので、単一プロセッサシステムだと絶対死亡。 SMPだとか、2.5のプリエンプションカーネルだと、大丈夫かもね。 終了割込みで起こされる処理なら、sleep と wakeupを使うのが普通じゃない?
146 名前:bluehat [03/02/27 02:47 ID:2xZ0HU3V.net] デバドラをアクセス(介する?)することで、ファイルを暗号化して保存& ファイルを複号化して取得、ってな事ってできんのか? おめーだったらどうやって実現するよ?教えろ!ゴルァ!
147 名前:login:Penguin mailto:sage [03/02/27 03:04 ID:1e6KPqQp.net] 普通loopだろう。
148 名前:bluehat [03/02/28 03:17 ID:5YDI7es3.net] >>144 却下。普通じゃだめぽ。デバドラで実現しる!
149 名前:login:Penguin mailto:sage [03/02/28 07:13 ID:0bshxi8O.net] >>145 んー、何をもってデバドラというのかよーわからんが、狭義な, ハードウェアを制御するドライバのことなら 「オマエラ、おつむ悪すぎなので出直して下さい。」
150 名前:login:Penguin mailto:sage [03/02/28 12:21 ID:oFO1qwF8.net] >>145 んと、loopは広義のデバドラですよ。メジャー番号7のブロックデバイスです。
151 名前:login:Penguin mailto:age [03/03/06 14:51 ID:NOJmB8ay.net] kernel-2.5 でデバドラのインターフェースが大幅に変わるという話を きいたがおまえら知っているか?
152 名前:login:Penguin mailto:sage [03/03/06 22:23 ID:33Ph63nv.net] >>148 プリエンプティブカーネルになるってのはどっかで見たが・・・ I/F というと、エントリーポイントの仕様でも変わるのか? それとも、カーネルがエクスポートするルーチンの仕様変更?
153 名前:login:Penguin mailto:sage [03/03/06 23:24 ID:gj2ir03d.net] >>148 モジュールまわりの仕様が変わるというのはあるが、 モジュール自体に影響ないはずだし… 構造体とかカーネル側の関数が変更されるのはよくあることだし… その話の出所はどこよ?
154 名前:148 mailto:age [03/03/07 00:48 ID:2S2Wvrkx.net] struct file_operations つくって register_chrdrv()するだろ。 そのやりかたが変わるとか聞いたんだが。
155 名前:login:Penguin mailto:sage [03/03/07 04:37 ID:2ohbwA9F.net] >>151 (゚∀゚)んなこたーない
156 名前:148 [03/03/07 13:38 ID:2S2Wvrkx.net] >>152 安心したよ >>149 カーネルプリエンプションに関しては大問題だ。 ドライバかなり書き直さなくてはいかんのぉ。
157 名前:login:Penguin mailto:sage [03/03/08 00:05 ID:l6jbsomd.net] 2.5のソース読んでからまた来い
158 名前:login:Penguin mailto:sage [03/03/08 00:53 ID:dd9ui0La.net] >>153 その様子では 2.5のカーネルプリエンプションを理解するのが先です。 名前から想像するものとはちょっと違うものです。
159 名前:login:Penguin [03/03/17 00:55 ID:POpqK4+0.net] デバイスドライバを書いてる人って 日本に何人いるんだろう hello.o くらいだったら1万人くらいいるのかな?
160 名前:login:Penguin [03/03/21 01:19 ID:4f4NMJji.net] 3000人くらい
161 名前:LINUX初心者 [03/03/22 00:33 ID:c2EgVY2O.net] ご質問があります。 IDEのDVD-ROMから、暗号無しのDVDデータを取り出すソフトが必要になり まして、MT.FUJIの仕様書とcdrom.cを読んでいます。どうやら、DVDの 情報はIOCTLを通して取り出せるみたいなのですが、データ(2Kバイト)の データの取り出しは、IOCTL経由では出来ないように見えます。その割には CD-ROMのモード1と2、CDオーディオのデータはIOCTLで読み出せます。 フリーのソフトを見るとpf_readで実行しているようですが、どうやれば 良いのでしょうか? 出来たらIOCTLを使いたいのですが・・・・ よろしくお願いします。
162 名前:名無しさん@Emacs mailto:sage [03/03/22 11:15 ID:j2wJcuTQ.net] >158 www.linuxvideo.org/docs/Linux-DVD-HOWTO/ja/DVD-Playing-HOWTO-Nihongo.html ここを読んだだけだけど、、、 DVDでioctlを使うには、カーネルで、それようの設定をして コンパイルが必要みたい?
163 名前:login:Penguin [03/04/13 20:50 ID:Z3+MYXr2.net] USBドライバの開発の参考って何かないですか?
164 名前:あぼーん mailto:あぼーん [03/04/13 20:51 ID:fhD9Fsc5.net] ______________ /:\.____\ |: ̄\(∩´∀`) \ <先生!こんなのがありました! |:在 |: ̄ ̄ U ̄:| ttp://saitama.gasuki.com/wara/
165 名前:login:Penguin [03/04/13 22:03 ID:Z3+MYXr2.net] kill -9 161
166 名前:login:Penguin mailto:sage [03/04/13 22:08 ID:ecu8jjet.net] >>160 定番は、似たようなのを見る だろ。なお、クラス(ってかベンダ)ドライバな ら、一番簡単なのは、scanner.c 。バグありだけどね。
167 名前:login:Penguin [03/04/13 22:16 ID:Z3+MYXr2.net] >>163 ありがとうございます。 ところで、カーネルに組み込まれているデバイスドライバのソースをモジュール化するのに定番の手法とかって ないでしょうか? カーネルがROM化されているので、モジュールにする必要があるもので。
168 名前:login:Penguin mailto:sage [03/04/13 22:25 ID:ecu8jjet.net] >>164 手法って、なにも特別なことはないとおもうんだけど... make modules 以外でコンパイルするっていみ? それなら -DMODULE がみそ。 カーネル関連のソース内部でも、ドライバでも、これを ifdef とかで見る。 それともmodule対応じゃないドライバを対応に書き直す方法? こっちなら、 適当な初期化/後かたづけ処理を module_init()とmodule_exit()で登録すればいい。
169 名前:login:Penguin [03/04/13 22:33 ID:Z3+MYXr2.net] >>165 >module対応じゃないドライバを対応に書き直す方法 こちらの方です。ありがとうございます。意外と簡単なんですね。 早速、明日試してみます。 デスクトップで動いているドライバを組み込みLinuxに移植しようとしてるんですが、 ドライバを作るのははじめてなので、馬本で勉強してます。まだ2章目ですが
170 名前:開発メモ mailto:sage [03/04/14 14:29 ID:Y6l/xCVk.net] Warning: loading module.o will taint the kernel: no license がでたときは、 #include <linux/module.h> MODULE_LICENSE("GPL"); printk の出力はdmesgで見ることができる。
171 名前:login:Penguin mailto:sage [03/04/14 22:12 ID:ktmIntrh.net] >>160 こんなんが参考になるかも・・・ www-online.kek.jp/~yasu/Kenshu/usb-driver.html >>167 > printk の出力はdmesgで見ることができる。 cat /proc/kmsg としても見れます。 カーネルバッファにメッセージが追加される度にコンソールに表示されます。 でも表示内容の文頭に <4> というようなログレベルが付いてまうけど・・・
172 名前:login:Penguin mailto:sage [03/04/16 10:03 ID:Rj9RiWI4.net] #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 というメッセージがでます。 カーネルのバージョン管理だと小間生のですが、カーネルの再構築をせずにすり抜ける ことは不可能でしょうか?
173 名前:山崎渉 mailto:(^^) [03/04/17 11:54 ID:KRn99/cy.net] (^^)
174 名前:login:Penguin mailto:sage [03/04/18 01:19 ID:HcWYqirI.net] >>169 >>167 ?
175 名前:山崎渉 mailto:(^^)sage [03/04/20 06:14 ID:xFRXxEWb.net] ∧_∧ ( ^^ )< ぬるぽ(^^)
176 名前:login:Penguin [03/04/21 11:26 ID:dxqbEfvS.net] 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
177 名前:login:Penguin mailto:sage [03/04/21 11:35 ID:TzNUZhnB.net] >>173 カーネルのバージョンとtest.cがわからないとちゃんと答えられない
178 名前:login:Penguin mailto:sage [03/04/21 11:37 ID:65INoG+s.net] >>173 find ライブラリのありそうなパス -exec grep -l "remap_page_range" {} \; とかやってみるとか?
179 名前:login:Penguin mailto:sage [03/04/21 12:03 ID:UyUiMYQq.net] >>173 MODVERSIONSでせう。 test.cコンパイルするときに-DMODVERSIONSつけてみ。 当然includeはカーネルと同じものを使うこと。
180 名前:173 [03/04/21 12:48 ID:dxqbEfvS.net] カーネルは、2.4.20 です。 ソースはこれです。usbカメラのドライバです。 www.smcc.demon.nl/webcam/pwc-8.10.tar.gz このソースの *.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カメラを使えるようにしようと思ったのですが・・・ ちなみに、同じソースをカーネルに組みこめば動作するのは確認しました。
181 名前:login:Penguin mailto:sage [03/04/21 19:06 ID:UyUiMYQq.net] >>177 そのカーネルの.configは? CONFIG_MODVERSIONS=nのときに-DMODVERSIONS付けても同じ事になったような気がするが。
182 名前:うまうま mailto:sage [03/04/22 01:26 ID:0SpJ1zOH.net] >>177 お馬さん本2巻目の 「11.3.1 モジュールでバージョンサポートを使う」 「11.3.2 バージョン付きシンボルのエクスポート」 あたりをみたらどうよ? サンプルコードもあったよ 健闘を祈る!
183 名前:177 [03/04/23 19:22 ID:TY1i8cop.net] みなさん、ありがとうございます。 --static を外したら、うまく出来ました。 >>178 組込みのLinuxなんですが、開発元がソースをよこしてくれないので不明です。 GPL的にいいのだろうか・・・
184 名前:login:Penguin [03/04/23 21:19 ID:DUkd9IIg.net] linkあげ ・カーネル2.6のドライバ・モデル ttp://japan.linux.com/kernel/03/04/14/0833230.shtml
185 名前:login:Penguin [03/04/24 12:36 ID:LW5TaSjX.net] Linux で USB制御とかを学ぶのに便利な電子工作キットのおすすめってありません? できるだけ安いの。
186 名前:うまうま [03/04/25 12:03 ID:HCQr+NWK.net] >>182 モルフィー企画のUSBキットはいかが? www.morphyplanning.co.jp/ 確かLinuxドライバを開発しているサイトがあった気がする。
187 名前:bloom [03/04/25 12:26 ID:1KQi+Ees.net] homepage.mac.com/ayaya16/
188 名前:login:Penguin [03/05/02 11:48 ID:LZsBxbHZ.net] USB デバイスを/dev 以下のデバイスノードに割りあてるにはどうすればいいのでしょうか? 馬本を見ながら、 devfs = devfs_mk_dir(NULL, "matsu", NULL); if(!devfs) return -EBUSY; devfs_register(devfs, "nt401", DEVFS_FL_AUTO_DEVNUM, 0, 0, S_IFCHR | S_IRUGO | S_IWUGO, &scull_fops, sampleDevice ); とやっているのですが、indmod すると Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters IOやIRQはどこからとってくればいいのでしょうか?
189 名前:login:Penguin mailto:sage [03/05/02 12:21 ID:5kcklCyp.net] >>183 モルフィー企画は、5/1 千葉地裁に破産申し立てを行った模様。 やっと終わったようですね、夢が・・・
190 名前:login:Penguin mailto:sage [03/05/02 13:17 ID:8SKdq5Sf.net] >>185 それはモジュールの初期化に失敗した時のメッセージでつ。 だまされないように。
191 名前:login:Penguin mailto:sage [03/05/02 14:02 ID:fxkN+fN8.net] >>185 それは、init_moduleがretun 0;以外で終了した場合のメッセージですよ。 普通、デバイスが見付からないときは -ENODEVとかでかえすでしょ? 返り値を確認汁。 ISAのデバイスでは、IOとかIRQの設定が違うと見付からないことが多いので、 insmodが、ヒントのために、IOとかIRQはどうよ? って書くことになってるだけ。
192 名前:185 [03/05/02 14:12 ID:LZsBxbHZ.net] >>187 >>188 ありがとうございます。 probe の処理のところへ devfs 関係の処理を移したらinsmod できるようになりました。
193 名前:login:Penguin mailto:sage [03/05/02 14:25 ID:fxkN+fN8.net] あぁ、すまん。よく読まずに答えた。USBなのね。 USBの場合は、usb_driver.probe() が NULL で帰った時がそのエラーですね。 で、probeのところでdevfs関係やるので正解です。
194 名前:login:Penguin [03/05/02 15:56 ID:gUkzFRNW.net] モニタのドライバディスクってい
195 名前:、のはあるんでしょうか? 当方モニタを認識できないのですが・・・。 [] [ここ壊れてます]
196 名前:login:Penguin mailto:sage [03/05/02 17:25 ID:MBGKHtnA.net] >>191 周波数や解像度を設定すれば済むだろ。
197 名前:185 [03/05/02 18:18 ID:LZsBxbHZ.net] >>190 insmod はできるようになったのですが、devfs関係の処理がうまくいきません。 devfs_mk_dir と devfs_register がNULL しか返さないのですが・・・
198 名前:login:Penguin mailto:sage [03/05/02 18:33 ID:ntJpWIhT.net] >>193 カーネルがまずい
199 名前:185 [03/05/02 19:13 ID:LZsBxbHZ.net] >>194 了解っす。さっそく、カーネルを再コンパイルします。
200 名前:ドライバ初心者 [03/05/07 14:44 ID:8SxzL6UK.net] ううう、USB器機との通信方法がよくわからん。 0x07 を送ると 0x1f を返すというUSB器機との通信でどうやるの? キャラクタデバイス作って、それをread, write するでいいの?
201 名前:bloom [03/05/07 15:13 ID:dAUH81mE.net] homepage.mac.com/ayaya16/
202 名前:login:Penguin mailto:sage [03/05/07 18:18 ID:xHs+a1Ja.net] >>196 ??? どのレベルでわからないんだろう。ユーザアプリから機器を操作するのは、 すべからくデバイスドライバを通してopen/close/read/write/ioctl 等です。 でも、0x07 を送ると 0x1fを返すとうUSB機器なら、デバドラいらないじゃん。っ ていうか、機器もいらないじゃん。「0x07を送ると0x1fを返す」ダミーの関数 かませればいいじゃん。たぶん、その質問はなにか省略しすぎで返事がしにくい。
203 名前:ドライバ初心者 mailto:sage [03/05/07 23:02 ID:Sh0BeBWS.net] >>198 分かりにくくてすいません。 USB機器に、データ確認コマンド(0x07のバイト列)を送る。 USB機器にデータがあるなら、(0x01)が返ってくる。 (0x01)が返ってきたのを確認したら、データ取得コマンド(0x0a)を送る。 USB機器からデータ(20バイト)が返ってくる。 上記の仕様で、USB機器にバイト列を送ったり、USB機器が返すバイト列を受け取るにはどうすればいいのかが分からないのです。 urb構造体を使うのでしょうか?
204 名前:login:Penguin mailto:sage [03/05/07 23:47 ID:ppjtoJvG.net] >>199 USBのドライバは書いた事ないのでアドバイス出来んが、 ttp://www.narimatsu.net/nari_page/musbio.html にあるドライバが多分近いので、読んで見ると参考になるかも。
205 名前:login:Penguin mailto:sage [03/05/08 02:33 ID:XzMiCqqd.net] >>199 なんか、道が遠いな。がんばれー。 > urb構造体を使うのでしょうか? まぁ、正解なんだけど。なにしろ最終的には全部usb_submit_urb()だから... 実際には usb_bulk_msg()とか、その類を使うの。 その前に基本設計。ハンドシェイクのようなものがあるのよね。それをどうする? ドライバを一番簡単にするなら、ドライバは、ただデータの横流しをするだけにして、 ハンドシェイクをアプリにさせたらいい。 アプリが /dev/それ をopenして アプリが 0x07をwriteして アプリが readでまって、0x01がかえったら アプリが 0x0aをwriteして アプリが readする これが一番簡単だろ。ドライバのデバッグより、アプリのデバッグのほうが簡 単だから、ドライバを簡単にするのは意味がある。 もし、これにするなら、カーネルに標準でついてるdrivers/usb/scanner.c を 参考にしたらいい。はっきりいって、本当に横流ししかしないドライバなので、 参考にして書き直す必要スラなくて、idさえ指定すればスキャナじゃなくても ナンデモ操作できます。おすすめ。 あ、でもclose/unloadあたりでのリソースの解放順序にバグがあるので、気を つけてね。
206 名前:ドライバ初心者 [03/05/08 18:46 ID:01Q6DwzH.net] >>200 >>201 アドバイスありがとうございます。 非常に助かりました。 とりあえず、morphy と scanner の両方をコンパイルして試してみました。 morphy の方は、何とかデバイスをopenできるように改造できました。 scannerの方は。 カーネルがdevfsを使えないのと、今回のUSB器機からendpoint の取得がうまくできないようです。 /dev/usb のスペシャルファイルの取得はmorphy を参考に、read write はscanner を参考に、 ハンドシェイクは >>201 の方法でやってみます。
207 名前:ドライバ初心者 [03/05/09 19:55 ID:ye3nMZo+.net] open,close,probe,disconnect はうまく動くようになりました。 read の実装に入ったのですが、 usb_bulk_msg で #define RD_NAK_TIMEOUT (10*HZ) usb_bulk_msg(dev, usb_rcvbulkpipe(dev, endpoint), buffer, 20, &partial, RD_NAK_TIMEOUT); usb_rcvbulkpipe へ渡すパラメータの endpoint にはどんな値を渡せばいいのでしょうか? lsusb で以下のように表示されている 2 とかでいいのでしょうか? bEndpointAddress 0x02 EP 2 OUT scanner.c のソースを読むと、1,2,3, のどれかの値が入るようなのですが・・・
208 名前:login:Penguin mailto:sage [03/05/09 23:43 ID:ZjYTJvxM.net] >>203 相手側の仕様にあわせてください。 仕様書ぐらいあるよね?
209 名前:ドライバ初心者 mailto:age [03/05/10 00:57 ID:5c13M/Uv.net] >>204 それが、>>201 に書いたようなコマンドのやりとりのはしご図しかありません。
210 名前:login:Penguin mailto:sage [03/05/10 18:30 ID:+67eyGUg.net] >>205 たぶん、1にかいて、2を読むんだとおもうけど、そんな状態でコーディングを すすめちゃだめです。仕様書をもらって、それをもとに設計してから書くの。
211 名前:うまうま mailto:sage [03/05/11 02:10 ID:sP9foAmw.net] >>203 ひょっとして未公開プロトコルをハックしてlinux用にドライバ 作ってんの? lsusbの表示について デバイスからデータを読むためのエンドポイントは IN になって いるはずだよ。そのようなエンドポイントがひとつしかないなら その番号でOKだと思う。 逆に、デバイスへデータを書き込むためのエンドポイントは OUT そのターゲットデバイスにはエンドポイントが複数あるっぽいけど、 それだったらコマンドやりとり時、どのエンドポイントが使われて いるのか調べる必要がある。
212 名前:206 mailto:sage [03/05/11 02:28 ID:+b1ggx7/.net] あう。よく読まず1,2を逆にかいてしまいました。つことで>>206 に惑わされないで2がOUTね。>>205
213 名前:ドライバ初心者 mailto:age [03/05/12 22:03 ID:fBjjjcco.net] >>206 組み込み用のLinuxにUSB機器をつなげてアレコレしようという計画がありまして。 ところが、社内でC言語の経験があるのは私だけ。とりあえず研究開発名目で、USBドライバを 作ってみろと白羽の矢が立ちました。 うまうまさんのアドバイスでwriteができるようになりました。ありがとうございました。 あとはreadだけです。
214 名前:ドライバ初心者 [03/05/15 18:21 ID:QUGfuS7s.net] read するとタイムアップになってしまう・・・。何が悪いのでしょうか。 キューのクリアとか必要ですか?
215 名前:login:Penguin mailto:sage [03/05/16 16:21 ID:yZKduc9i.net] 初歩的な質問ですみませんが、導師のみなさま、お導きを。 write()されたデータを一時的に保持して、次のread()で保持した値を返す ようなキャラクタデバドラがあるとします。 アクセスする側が単独のプロセスの場合、実装は簡単ですが、複数のプロセスが 上記デバドラにアクセスする場合はセマフォを使っての排他制御が必要となります。 これをアクセス側にセマフォを設けないで、上記デバドラ側で同等の機構を 実現するにはどのように実装すればいいのでしょうか?
216 名前:login:Penguin mailto:sage [03/05/16 16:44 ID:0mzALYCZ.net] >>211 プロセス別にキューを持てばいいんでは? openされたら新しいキューを割り当てて、 closeされたら開放。
217 名前:211 mailto:sage [03/05/16 18:32 ID:g3wElzO+.net] >>212 では、同一プロセスの複数スレッドまで考慮しなければならない場合、 どうすればいいのでしょうか?
218 名前:212 mailto:sage [03/05/16 19:18 ID:0mzALYCZ.net] >>213 スレッドじゃなくても、二つ以上開いたら破綻しますな。 →お手軽コース:1回だけオープンできるようにする。 →まじめに作る:複数キューを持てるようにする。file.private_dataにキューのポインタ入れるのが簡単かな? というところで。
219 名前:うまうま mailto:sage [03/05/17 03:23 ID:WAKxeCTB.net] >>210 readしたとき、とりあえず何バイトか読み出してる? デバイスが返しうるバイト数よりも多く読み出そうとして待ち 続けているという可能性はない?
220 名前:ドライバ初心者 mailto:age [03/05/18 01:04 ID:2usiGwhL.net] >>215 >readしたとき、とりあえず何バイトか読み出してる? その通りです! すっと、返されるはずのバイト数よりも多いバイト数で読み出していました! 今はハードが手元に無いので月曜日に試してみます。ありがとうございました。
221 名前:動画直リン [03/05/18 01:11 ID:pMLvChGr.net] homepage.mac.com/hitomi18/
222 名前:login:Penguin mailto:sage [03/05/18 21:07 ID:sDNMC/v5.net] 猿でもわかるように書かれたデバドラ作成解説ページってある?
223 名前:ドライバ初心者 mailto:sage [03/05/19 19:00 ID:r7lftq4x.net] >>215 タイムアウトは無くなりましたが、こんどはusb-uhci.c 内でエラーになってしまいました。 /proc/kmsg の出力は usb-uhci.c: ENXIO c0010200, flags 0, urb de96cbe0, burb de96cbe0 usb_bulk_msg の使い方がまずいのでしょうか・・・ usb_bulk_msg(scn->dev, usb_rcvbulkpipe(scn->dev, M_READ), ibuf, count, &partial, RD_NAK_TIMEOUT); USBデバドラ開発に役立ちそうなページ usb.c File Reference www.atomised.org/docs/linux-2.4.19-drivers/usb_8c.html
224 名前:login:Penguin mailto:sage [03/05/19 19:13 ID:Q6lDTR8l.net] >>218 デバドラの前に、まずはRFC2795から行ってみよう。
225 名前:login:Penguin mailto:sage [03/05/19 22:53 ID:808Vam9H.net] >>220 英語読むのめんどくせ 猿にハムレット歌わせるんだっけ?
226 名前:ドライバ初心者 mailto:sage [03/05/20 18:31 ID:oatjLeiG.net] >>219 は私のバグでした。 しかしながら。タイムアウトは解決しないままです。 Windows用のドライバではちゃんと読みこめているようなのですが・・・ lsusb で 下のようにでているのと関係があるのか・・・ unknown descriptor type: 05 24 00 10 01 unknown descriptor type: 04 24 02 06 unknown descriptor type: 05 24 06 00 01 unknown descriptor type: 05 24 01 03 01
227 名前:山崎渉 mailto:(^^) [03/05/22 01:55 ID:p4opmoqv.net] ━―━―━―━―━―━―━―━―━[JR山崎駅(^^)]━―━―━―━―━―━―━―━―━―
228 名前:ドライバ初心者 mailto:sage [03/05/22 16:32 ID:7jvNN9yz.net] >>222 仕様書のコマンドが入れ換わっていた!というわけで自己解決しますた。 north.hokkai.net/~nsawa/piece-lab/usb/20011231.html ここのソースも参考にして完成です。アドバイスをくれたみなさん、あ りがとうございました。
229 名前:login:Penguin [03/05/27 12:06 ID:VgmJadOg.net] あまりにも便利なので上げさせてください
230 名前:login:Penguin mailto:sage [03/05/28 14:11 ID:2En7vxAz.net] insmod するとこんなエラーが出てきたのですがどうすればいいでしょう? couldn't find the kernel version the module was compiled for
231 名前:山崎渉 mailto:(^^) [03/05/28 16:42 ID:3t6i6zxR.net] ∧_∧ ピュ.ー ( ^^ ) <これからも僕を応援して下さいね(^^)。 =〔~∪ ̄ ̄〕 = ◎――◎ 山崎渉
232 名前:login:Penguin [03/05/28 16:55 ID:3qAfQe3K.net] >>226 そのドライバを今のカーネルでコンパイルし直してください。 もしくは -f オプションで insmod してください。なんちって
233 名前:login:Penguin mailto:sage [03/05/28 23:40 ID:z1beycbb.net] >>226 なにをいれた? 「実はモジュールじゃない」ってときもそれ。
234 名前:226 mailto:sage [03/05/29 18:33 ID:FeUqO3hy.net] >>228 >>229 MIPS で動いているLinux に、Redhat7.2 のUSBデバイスドライバです。 ソースのコンパイルはちゃんと通るのですが。 あと、Hello World を出力するだけのデバドラの動作は確認済。
235 名前:login:Penguin mailto:sage [03/05/29 21:59 ID:5gpS9IGq.net] >>230 archがあってないとか。 $ file vmlinux $ file そのモジュール の結果を見てみたい所ですね。
236 名前:226 mailto:sage [03/05/30 10:13 ID:Mg17snq6.net] >>231 $file vmlinux ./vmlinux: ELF 32-bit LSB mips-2 executable, MIPS R3000_LE [bfd bug], version 1, statically linked, not stripped $file test.o ./test.o: ELF 32-bit LSB mips-2 relocatable, MIPS R3000_LE [bfd bug], version 1, not stripped
237 名前:login:Penguin mailto:sage [03/05/31 15:40 ID:pCrUKetP.net] >>232 あってるねえ。謎だなあ。 init_moduleがエラーを返してるって事はないよね?
238 名前:226 mailto:sage [03/06/02 11:33 ID:O0kbkjww.net] >>233 cc に渡すパラメータに -DCONFIG_MODVERSIONS を付け加えたら無くなりました。 ところが今度は、insmod するとこんなエラーが・・・ ./test.o: unresolved symbol _gp_disp ./test.o: Note: modules without a GPL compatible license cannot use GPLONLY_ symbols _gp_disp はどこのライブラリにあるのでしょうか?
239 名前:login:Penguin mailto:sage [03/06/03 01:50 ID:iocW6lsY.net] >>234 そんな関数見たことないなー。 別なモジュールに依存してるとかないの? カーネル絡みはlibgcc以外のライブラリ使わないよ。
240 名前:コピペ mailto:sage [03/06/03 13:33 ID:9FZ3sCry.net] (゚∀゚) ? Insmod が _gp_disp シンボルが未定義だと文句を言います (゚∀゚) ! _gp_disp は MIPS の PIC コード中で使われているマジックシンボルです。 このエラーは、システムをクラッシュから救ってくれたため、むしろ有り難いものです。 この場合の問題の要点は、カーネル作成時の Makefile のオプションと、 カーネルモジュール作成時のオプションは同じにすべきだということです。 特に、オプション -mno-pic -mno-abicalls -G 0 が重要です。
241 名前:login:Penguin mailto:sage [03/06/03 13:34 ID:9FZ3sCry.net] まあなんか知らんけどgoogleって便利ってのはわかった 意味まではわかんないけど
242 名前:login:Penguin mailto:sage [03/06/03 14:40 ID:iocW6lsY.net] >>236 へぇ、MIPSのPICは変わっていると聞いたことがあるが… そんな事もやってるのか。 ひとつ賢くなったような気がする。
243 名前:() mailto:sage [03/06/03 18:52 ID:U5Cecnio.net] Windowsで動いているUSBデバイスドライバを、Linux へ移植しようとしています。デバイスの認識、open, write, close はうまく出来ているようなのですがreadがうまく行きません。 -75 のエラーが usb_bulk_msg() から返って来ます。-EOVERFLOW のエラーのようです。 ところが、一度、Windowsに認識させてから、そのデバイスをLinux につなぎ直してreadするとうまく行きます。 何らかの初期化をしているようなのですが、Linux ではどのようにすればいいのでしょうか? sniffer Tool の出力には 0000027510:31:13>>>>>>> URB 4 going down... 0000027610:31:13-- URB_FUNCTION_CLASS_INTERFACE: 0000027710:31:13 TransferFlags = 00000000 (USBD_TRANSFER_DIRECTION_OUT, ~USBD_SHORT_TRANSFER_OK) 0000027810:31:13 TransferBufferLength = 00000008 0000027910:31:13 TransferBuffer = 81406fd0 0000028010:31:13 TransferBufferMDL = 00000000 0000028110:31:13 0000028210:31:13 0000: 0000028310:31:13 80 0000028410:31:13 25 0000028510:31:13 00 0000028610:31:13 00 0000028710:31:13 00 0000028810:31:13 02 0000028910:31:13 08 0000029010:31:13 00 0000029110:31:13 0000029210:31:13 UrbLink = 00000000 0000029310:31:13 RequestTypeReservedBits = 00 0000029410:31:13 Request = 20 0000029510:31:13 Value = 0000 0000029610:31:13 Index = 0000 とでていたので、usb_ctrl_msg()を使うのかと思ったのですが。 #define EPIPE32/* Broken pipe */ のエラーを返してしまいます。どうやればいいのでしょうか? ちなみにチップは、日立の38K0です。
244 名前:login:Penguin [03/06/04 10:07 ID:RzUG7kJc.net] デバドラ開発超初心者です。 誰か教えてちょーだい!! カーネルモジュールでぬるぽ等による例外が起きてoopsが出た後って リブートしなくちゃいけないの? rmmodするとリソースbusyと言われて出来ないし。 簡単にやり直せる方法はないのでしょうか? kdbとかを使うと出来るのでしょうか? 小さなドライバなので出来ればprintkだけでデバッグ 済ませてしまいたいです。
245 名前:login:Penguin mailto:sage [03/06/04 15:22 ID:miGkoc0u.net] >>240 su して、 reboot これが最速。
246 名前:login:Penguin mailto:sage [03/06/04 15:58 ID:YRPx8Qpb.net] >>240 MOD_INC_USE_COUNTしなければ、rmmodできるはず。 Oops食らったまま動かし続けるのは気持ち悪すぎるが。
247 名前:240 [03/06/04 18:14 ID:RzUG7kJc.net] >>241 >>242 さん、ありがとうございます。 MOD_INC_USE_COUNT、MOD_DEC_USE_COUNTを空に 再定義してみました、単純なミスとかで他のメモリ 領域に影響なさそうであれば、これで切り抜けよう と思います。 危なそうな場合は、やっぱりrebootですね。
248 名前:うまうま mailto:sage [03/06/04 23:56 ID:yoK8ZXbv.net] >>239 ドライバの移植?なかなかおもしろそうだね read, writeのコマンドシーケンスは合ってる? ひょっとして、readする前にデバイスに対し的確なコマンドを writeしてあげないといけないのでは? そのsnifferログは、OSから8バイトのデータをデバイスに送っている 点や、URB番号が若い点からして、USBデバイスからディスクリプタを 読み出そうとしているところと見た。それはWindowsでもLinuxでもデバイスを 繋いだらUSBホスト側が自動的に行う部分。いわゆる初期化処理。 今回のreadできない問題に関係あるとは思えないな。
249 名前:239 mailto:sage [03/06/09 11:05 ID:FPzn7DZy.net] >>244 write シーケンスの前にあるこの処理が妖しいとは思うのですが、Linux でどうやって実現したらいいのか・・・ 0000037010:31:29>>>>>>> URB 7 going down... 0000037110:31:29-- URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER: 0000037210:31:29 PipeHandle = 814d7b1c 0000037310:31:29 TransferFlags = 00000003 (USBD_TRANSFER_DIRECTION_IN, USBD_SHORT_TRANSFER_OK) 0000037410:31:29 TransferBufferLength = 00001000 0000037510:31:29 TransferBuffer = 8140c000 0000037610:31:29 TransferBufferMDL = 00000000 0000037710:31:29 UrbLink = 00000000 0000037810:31:29B133TN: m_Endpoint1IN.SubmitUrb status ==> 0000037910:31:290x00000103 0000038010:31:29 0000038110:31:29B133TN: B133TNDevice::Create Status 0000038210:31:290x00000000 0000038310:31:29 0000038410:31:29B133TN: Entering B133TNDevice::Device Control, 0000038510:31:29IRP: Major=0xe 0000038610:31:29 Minor=0x0 Flags=0x30 0000038710:31:29B133TN: Code=0x222000 InputSize=0x4 OutputSize=0x0 0000038810:31:29B133TN: 0000038910:31:29B133TN: Entering B133TNDevice::IOCTL_B133TN_COMMAND_OUT_Handler, 0000039010:31:29IRP: Major=0xe 0000039110:31:29 Minor=0x0 Flags=0x30 0000039210:31:29B133TN: Code=0x222000 InputSize=0x4 OutputSize=0x0 0000039310:31:29B133TN: 0000039410:31:29B133TN: FIFO ReservedDataSize=> 0000039510:31:290x00000000 0000039610:31:29 0000039710:31:29UsbSnoop - IRP_MJ_INTERNAL_DEVICE_CONTROL, IOCTL_INTERNAL_USB_SUBMIT_URB 0000039810:31:29
250 名前:239 mailto:sage [03/06/10 11:06 ID:3w0EVlGb.net] ttp://www.xlsoft.com/jp/products/windriver/windriver.html ここにある、winDrive の体験版でハードを調査したところ、インターフェースが活性化されていないのが原因のようです。 usb_set_interface() を使えばいいのだろうけど、パラメータがよくわからない。
251 名前:login:Penguin mailto:sage [03/06/13 16:03 ID:pewsS0ej.net] cat /proc/bus/usb/devices で表示されるインターフェースの中から C:* #Ifs= 2 Cfg#= 1 Atr=c0 MxPwr=100mA I: If#= 0 Alt= 0 #EPs= 1 Cls=02(comm.) Sub=02 Prot=01 Driver=
252 名前:piece E: Ad=83(I) Atr=03(Int.) MxPS= 16 Ivl= 16ms I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=piece E: Ad=02(O) Atr=02(Bulk) MxPS= 64 Ivl= 0ms E: Ad=81(I) Atr=02(Bulk) MxPS= 64 Ivl= 0ms I: If#= 1 Alt= 0 #EPs= 2 Cls=0a(data ) Sub=00 Prot=00 Driver=piece のデバイスを活性化するにはどうすればいいのでしょうか? [] [ここ壊れてます]
253 名前:247 mailto:sage [03/06/13 18:44 ID:pewsS0ej.net] ここを読んだら自己解決しますた。 USB通信プログラミングテクニック ttp://www.picfun.com/usb00.html
254 名前:うまうま mailto:sage [03/06/13 22:20 ID:EYuB3skO.net] >>248 こりゃ使えるサイトだ。日本語でUSBの仕様をここまで説明したサイトって、 他にはないよきっと >>247 に質問! 「活性化」というのがよくわからないから教えてほしい。 cat /proc/bus/usb/devices で >>247 のような表示がされたってことは、 すべてのPIPEがオープンされているものと思ったけど。 結局、このデバイスにはInterfaceが二つあって、USBバス上に 接続したときは Interface 0しか初期化されなかった。その状態で Interface 1のEndpoint 0x81からread()しようとしたが、 まだPIPEがオープンされてないためできなかったということ?
255 名前:login:Penguin [03/06/14 17:46 ID:G+Mtao/F.net] オイラGPLライセンスだよ〜 と表明するときに書くマクロって どういうやつだっけ?
256 名前:login:Penguin mailto:sage [03/06/14 18:11 ID:1HDS5RSe.net] MODULE_LICENSE("GPL"); のことかにゃ。
257 名前:login:Penguin mailto:sage [03/06/14 18:13 ID:G+Mtao/F.net] >>251 (゚∀゚)サンクスコ
258 名前:247 [03/06/16 12:53 ID:bzsTHCID.net] >>249 そのとおりです。 えーと、いま作成中のドライバを試してみたら解決していませんでした。 Interface 1の初期化ってどうやるのでしょう?
259 名前:247 [03/06/16 17:13 ID:bzsTHCID.net] 追記:cat /proc/bus/usb/devices の表示は >>247 なのですが、なぜかread が出来ないのです。writeは出来るのですが
260 名前: [03/06/19 18:39 ID:L1S32rBn.net] 質問です。USB のpipe を reset するにはどうすればいいのでしょうか?
261 名前:中年ハード屋 [03/06/20 00:46 ID:GdrpjdbN.net] DVDのCSS回路を設計するために、そのCSSの方法を理解するために、 LINUXのide-cdを利用したソフトを書いています。(ライセンス済みです) それで、DVDのディスクキーや内部情報、そして、認証などは出来るのですが、 タイトルキーの取得が出来なくて困っています。 atapiを通したイトルキーの取得で何かしらのトリックがあるのでしょうか? このようなソフトを書く場合に、通常のアプリソフトのように(いまの やりかた)書けば動作するのですか、それともドライバーソフトのように 特殊な方法が必要なのでしょうか? よろしくお願いします
262 名前:login:Penguin [03/06/20 12:05 ID:w5824KTx.net]
263 名前:login:Penguin [03/07/02 02:02 ID:VujfXoME.net] (・∀・)renice!
264 名前:login:Penguin [03/07/06 23:29 ID:lEtq+gmE.net] (・∀・)renice!
265 名前:login:Penguin [03/07/08 15:11 ID:nDf4bQ70.net] (・∀・)renice!
266 名前:linuxer [03/07/09 01:17 ID:W4/RwfEH.net] 僕はLinux のethernet のドライバを改造したいデス ふつは通信用途に最適化されてると効きました それはぺケットをみる目的につかいます なにかアイディアはありますか??
267 名前:login:Penguin mailto:sage [03/07/09 01:22 ID:9Ead9bym.net] tcpdump等の既存のものより詳細にみれなければ意味がない気がするけど大丈 夫なのかしら。
268 名前:_ mailto:sage [03/07/09 01:29 ID:RRaEUYou.net] homepage.mac.com/hiroyuki44/hankaku09.html
269 名前:login:Penguin mailto:sage [03/07/09 01:48 ID:FD/eKW7A.net] >>262 石にもよるでしょうねえ。 最近の利口な奴はいろいろ手を入れてくれるし。
270 名前:login:Penguin mailto:sage [03/07/09 13:47 ID:GtKhiIZ8.net] >>261 現行ドライバだと、どの点が不満なのか言ってもらわないと助言しようがないよ パケットモニタリングはNICチップのpromiscuousモードの仕様に依存する話だ
271 名前:login:Penguin mailto:sage [03/07/10 07:33 ID:sMbuqqa1.net] >>265 現行のドライバならpromiscuousモードで動かしたときに パフォーマンスがわるいな感じです それでぺケットを取りこぼすことになってしまうので キャプチャ用途に最適化できたらいいなと考えましたです
272 名前:login:Penguin mailto:sage [03/07/10 07:41 ID:oOmBMqv3.net] >>266 promiscuousモードだと全パケットをホストPCに転送するから 通常モードに比べて取りこぼす可能性は増える。対象のNICチップは何? 素直にintelなり3comを買えば済むだけの話かもよ。 ちなみにリアルテック(蟹)の性能がよくないのは特許を避けてるから。 現状でいいパフォーマンスのNICが欲しけりゃIntel(or元DEC)、3comの ちょっと値が張るNICを買うしかないよ。 ドライバでどうこうできる話ではない
273 名前:login:Penguin mailto:sagee [03/07/10 23:13 ID:TravPTn9.net] >>267 リアルテクです。3COMも使ってますが、スイッチと相性が悪いな感じで 無反応になってしまう(壊れているのかもしれない)こともありますで リアルテクでペルフォマンスがよくならないかなと想いました ちなみに特許って具体的にはどんな特許ですか?
274 名前:login:Penguin mailto:sage [03/07/10 23:46 ID:bBVT4pXs.net] >>268 261と268で目的が変化してるぞ。
275 名前:login:Penguin mailto:sage [03/07/11 13:32 ID:CtoBVZIQ.net] >>268 そもそもパケットモニタリングするのにスイッチングハブを使ってる時点でアウト リピータハブ(ダムハプ)を使わないと他ホストの通信は傍受できないよ 結論 ・RealtekのNICは捨てて、Intelか3Comを使え ・スイッチングハブではなく、リピータハブを使え 全然デバドラと関係ないや スレ違いどころか板違い?
276 名前:login:Penguin mailto:sage [03/07/13 22:55 ID:UrPfG9sV.net] >>267 >promiscuousモードだと全パケットをホストPCに転送するから 違うよ。promiscuousモードって言うのは、リンク層で受信したデータが 自ホストの物理アドレスでなくても受信すること。 >>270 が正しい事を言っている。
277 名前:login:Penguin [03/07/14 02:37 ID:imGWjqw6.net] age
278 名前:267=270 mailto:sage [03/07/14 15:12 ID:E/Ns9e+C.net] >>271 すまん 267=270 なのだが 何か矛盾したこと言ったかな? MAC層(データリンク層)の処理はNICチップで行われる。 ホストPCはMAC層の処理にはまったく関与しない。 MAC層の処理後、必要なデータだけPCIバスを介してホストPCにDMA転送する。 つまり、通常モードだと自ホスト宛かブロードキャストのパケットデータだけを ホストPCに転送すればいいのに対し、promiscuousモードだとすべての パケットデータを転送しなくてはならず、転送量が膨大になる。 そのため、バッファがあふれる(=データを取りこぼす)ことになりやすい。
279 名前:268 mailto:sage [03/07/15 03:30 ID:Yac3cQfq.net] スイッチはL3スイッチでポトミラリング機能がありますよ ただ3COMのNICでも限界があるとですがぎりぎりまでぺケットの モニタ用に最適化したいと思いましたです リアルテクの話は忘れてください ふつはバッファも通信用に チュニングすれて確保してると思ったけどぺケットをモニタするときは 受け取るだけだから ドライバで受信用のバッファを多めに できたらいいなと思ったよ でもどうやったらいいか分らないよ ヘルプしてください
280 名前:山崎 渉 mailto:(^^) [03/07/15 11:17 ID:2JhhXBQM.net] __∧_∧_ |( ^^ )| <寝るぽ(^^) |\⌒⌒⌒\ \ |⌒⌒⌒~| 山崎渉 ~ ̄ ̄ ̄ ̄
281 名前:login:Penguin [03/07/15 12:07 ID:Fo16Kpwc.net] (・∀・)renice!
282 名前:login:Penguin [03/07/22 11:30 ID:6WQ9WMDa.net] (・∀・)renice!
283 名前:login:Penguin [03/07/25 12:52 ID:NH3LXVfX.net] (・∀・)renice!
284 名前:login:Penguin [03/07/30 12:07 ID:cPdgkLk2.net] (・∀・)renice!
285 名前:ぼるじょあ ◆yBEncckFOU mailto:(^^) [03/08/02 05:04 ID:GfRe8vK7.net] ∧_∧ ∧_∧ ピュ.ー ( ・3・) ( ^^ ) <これからも僕たちを応援して下さいね(^^)。 =〔~∪ ̄ ̄ ̄∪ ̄ ̄〕 = ◎――――――◎ 山崎渉&ぼるじょあ
286 名前:login:Penguin [03/08/02 10:27 ID:2rmp9gin.net] (・∀・)renice!
287 名前:login:Penguin [03/08/08 11:54 ID:mg5o8ebS.net] (・∀・)renice!
288 名前:login:Penguin [03/08/13 12:30 ID:pfCYHBFY.net] (・∀・)renice!
289 名前:login:Penguin mailto:sage [03/08/14 22:31 ID:EZZe4dzO.net] $> cd /pub $> more beer
290 名前:login:Penguin mailto:sage [03/08/14 22:44 ID:EZZe4dzO.net] $> man woman $> Segmentaion fault (core dumped)
291 名前:山崎 渉 mailto:(^^) [03/08/15 22:51 ID:dil3w4kp.net] (⌒V⌒) │ ^ ^ │<これからも僕を応援して下さいね(^^)。 ⊂| |つ (_)(_) 山崎パン
292 名前:login:Penguin [03/08/15 23:47 ID:GfNK1qbf.net] (・∀・)renice!
293 名前:login:Penguin [03/08/16 15:04 ID:rNtMNMvg.net] (・∀・)renice!
294 名前:login:Penguin [03/08/25 09:46 ID:+hXUD3jL.net] (・∀・)renice!
295 名前:login:Penguin [03/09/02 21:16 ID:1mo12GKS.net] insmod xxx.oってことはドライバのソースはどんなに大きくてもxxx.cの1っこだけじゃないとだめなの?
296 名前:login:Penguin mailto:sage [03/09/02 21:20 ID:88sqYoXe.net] >>1 は、ママンでもファックしてろや!hahahahahahaaaaaaaaaaaaaa!
297 名前:login:Penguin mailto:sage ああウソだぜ [03/09/02 22:18 ID:qo69XMHR.net] >>290 完全なるカーネルモジュールにヘッダやリンカはいらない。 ソースは常にひとつ。
298 名前:login:Penguin mailto:sage [03/09/03 08:04 ID:CuYcG2U3.net] >>290 Cファイルをインクルードすればいいだろ。
299 名前:login:Penguin mailto:sage [03/09/03 11:30 ID:4cm8kGPF.net] >>293 よりによって一番最悪な答えですね先生
300 名前:login:Penguin mailto:sage [03/09/03 16:47 ID:iWz7WMbL.net] >>290 info ld -rの説明読め。
301 名前:login:Penguin mailto:sage [04/01/07 22:36 ID:ui3n7e6w.net] だいぶ下がってますが、 2.6 と 2.4 のドライバ記述って何か変りました? 2.6 まだインストしてないので報告キボンヌ・・・ 2.2 -> 2.4 程は変ってないのかなー?
302 名前:login:Penguin [04/01/16 18:02 ID:ZUOtu/O9.net] PCIのデバイスドライバを作成していますが、 全くできません。 less /proc/iomemで書かれているアドレスで read、write関数を使って書いたり、読んだりしてもだめです。 何がいけないんでしょうか?
303 名前:login:Penguin mailto:sage [04/01/16 19:15 ID:JS8EwlnL.net] とりあえず、lspci -vvv を晒してみたらどうでしょう。 もちろんデバイス指定でね。 それを見て私が答えられるかどうかはまた別の話ですけど。
304 名前:login:Penguin [04/01/16 19:52 ID:ZUOtu/O9.net] lspci -vvvで次のような表示になりました。 00:11.0 Class ff00: Altera Corporation: Unknown device 1998 (rev 07) Control: I/O- Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- Status: Cap- 66Mhz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- <TAbort- <MAbort- >SERR- <PERR- Interrupt: pin A routed to IRQ 16 Region 0: Memory at dffe0000 (32-bit, non-prefetchable) [size=64K]
305 名前:298 mailto:sage [04/01/16 20:57 ID:JS8EwlnL.net] FPGAですね。 私もそんなに知っているわけではないので、 あまりあてにはしないで欲しいのですけれど… lspciの結果は特に変なところは無いと思います。 Class ff00はどのクラスにも属さないと言うことだと思うのでちょっと気にはなりますが、 読み書きぐらいはできるでしょうね、きっと。 だとすると、あとはドライバのソースでチョンボがあるか FPGAの中で書きこみ禁止になっているとかですかね。 FPGAにどんなipが載っているのか分からないので、あくまで推測ですけど。 あんまり力になれなくてごめんね。
306 名前:login:Penguin mailto:sage [04/01/18 02:27 ID:+zT3hNOG.net] >>298 read/writeのかわりに ioremap_nocache()で対象アドレスのページを取得して、 ポインタで直接参照してみたら? よみたい物理アドレスが (unsigned int) p_adr だとしたら unsigned char p_read(unsigned int p_adr){ unsigned int v_page,v_offset; unsigned char ret; v_offset=p_adr&0x0fff; v_page=ioremap_nocache(p_adr&0xfffff000, 0x1000); ret=*((unsigned char *)(v_page + v_offset)); iounmap(v_page); return (ret); } 適当だけどこんな感じで。ページサイズが4K決め打ちだけど。
307 名前:login:Penguin [04/01/18 02:28 ID:+zT3hNOG.net] あ>>299 のマチガイだ。
308 名前:login:Penguin mailto:sage [04/01/19 07:32 ID:kPFQP2Tn.net] PCIバスアナライザで観測しながらアクセスしてみそ
309 名前:login:Penguin mailto:sage [04/01/22 14:27 ID:O8v9hJ5s.net] >>303 持っているならいい方法だけどね。 買おうとすると激しく高い。 レンタルでも中古でも激しく高い。 でも、欲しいね。
310 名前:login:Penguin [04/01/28 10:42 ID:N5b+GE5n.net] マジレスすれば ロジアナでPCIバスを観測するか、PCIバスアナライザを使うか どっちかしないと、PCIデバイス/ドライバの開発は無理だろう
311 名前:login:Penguin mailto:sage [04/01/28 12:46 ID:OnT2yC/X.net] んなこたーない! 297 が FPGA開発を同時にやってるならまだしも・・・ あったほうが楽なのは確かだが、無理ではない。 ハード屋さんはバスレベルで確認して提出するはず。 read/write 出来ないのはドライバの不具合。 >>297 は pci_find_device 関数など、基本から勉強したほうがよさそう。
312 名前:305 mailto:sage [04/01/28 15:27 ID:N5b+GE5n.net] 無理ではないって言っても、そんなマゾプレイみたいなコトしたくないよ 目隠しして半田付けしろっていうのに近いな PCIのロジックって複雑だから、実機でバグが露呈するのはよくあること 430FXで動いたからって 875Pでは動かないとか余裕であるよ 市場に流通してるチップセットすべてで確認しないと市販は無理 名の通った枯れてるチップならまだしも、実機の動作チェックもしてない FPGAの回路をつかったPCIカードなら、最初から疑ってかからなきゃダメだと思います > ハード屋さんはバスレベルで確認して提出するはず。 PCIバスの全パターンをシミュレーションできる検証ツールってすごく高いよ 特にFPGAの開発のために検証環境買うのはコストにあわない PCIバスアナライザがある環境で実機試験して、少しずつ直すほうが早くて安い
313 名前:login:Penguin mailto:sage [04/01/28 18:36 ID:XM3JMqvR.net] >>307 そーゆーのはハード屋さんの仕事じゃないかと。 PCIブリッジの違いで動かないなんてのは設定云々じゃない限りドライバじゃ直せん。
314 名前:login:Penguin mailto:sage [04/01/28 19:09 ID:ceOaOw14.net] > そーゆーのはハード屋さんの仕事じゃないかと。 おれもそう思う。 でも、実際はソフト組み込んだらなんかおかしくて、 実は結局、微妙にハードが悪かったなんて事は良くある話だね。 きっと >>305 は苦い思いをしたんだろうよ。
315 名前:login:Penguin mailto:sage [04/01/29 18:47 ID:ci1wDtTm.net] >実は結局、微妙にハードが悪かったなんて事は良くある話だね。 ハード絡みやってりゃ必ずあるね。 慣れてくればハード、ソフトどっちが悪いか
316 名前:スとなくわかるようになるけど。 制御チップ動かす時なんかはオシロ、ロジアナの出番が増える。 さすがに PCI制御用FPGAまで計測器突っ込んだ亊はないけどね・・・ そこまで行くと スレ違いですね >> 307 [] [ここ壊れてます]
317 名前:307 mailto:sage [04/01/30 07:19 ID:tIkj6Ynv.net] 私はPWBAからASIC/FPGA デバイスドライバ アプリ まで全部自分で開発する ある意味何でも屋です FPGAの検証を実機でやるときにデバイスドライバを作ってるはずだから バスレベルで動作検証済なら、そのとき使ったドライバをハード屋さんから もらってくればいいんだと思います もちろんLinuxじゃない別のOSで検証してる場合もあるだろうけど 今の時代はLinuxでやってるケースがほとんどではないかなぁ Linuxは 1. ソースが公開されてて、ドキュメントも多くドライバ書くのが楽 2. CDからブートしてRAMDISKだけで動くシステムを簡単に作れる 等の利点があって、特に2が重要 PCIバスのハードのデバッグだとしばしばフリーズするので 正しくshutdownしないままリセットすることが頻発する。 winだろうがlinuxだろうがHDDにOSが入ってるシステムだと、 リセット連発していると、次の起動時に時間がかかるし そのうちHDDの内容が不整合を起こしてくる。 1CD ramdiskオンリー システムだと、気軽にリセットできて楽なんだ。 まぁlinuxじゃなくてFreeBSDでもいいんだけど。 私は5〜6年くらい前はFreeBSD(2.x/3.xの時代)でPCIカードのハードのデバグ やってたけど、今世紀に入ってからLinux(2.2の頃から)でやるようになった。 時代の流れで、商品としてlinuxへの対応が必要ってことになったので 最初からlinux用のドライバ書いておけば後が楽になるからね。 スレ違いだったかな 駄文失礼
318 名前:login:Penguin mailto:sage [04/02/03 23:12 ID:j9rA+N1w.net] >駄文失礼 気にしなくていいぜ。(w
319 名前:login:Penguin [04/02/09 07:11 ID:7h6uvjnn.net] すいません、どうしようもない質問なんですが、 実験的にカーネルパニックを発生させるドライバを作るのには どうすればよいでしょうか? カーネル関数panic()を使っても ハングするだけでパニックしないんです。。。 どうか教えてください。
320 名前:login:Penguin mailto:sage [04/02/09 20:13 ID:oe9mNV77.net] このスレは俺に勇気をくれた。
321 名前:login:Penguin mailto:sage [04/02/10 00:02 ID:0xm4A1oM.net] >>313 コンソールに"Kernel panic: …"って出てないの?
322 名前:login:Penguin mailto:sage [04/02/10 00:52 ID:4iNUE3rF.net] >>313 ->panic();
323 名前:login:Penguin [04/02/10 21:13 ID:WwFCucZO.net] >>315 −316 返信ありがとうございます! 単純にパニックするよりoops画面が表示するようにしたいのです。 mmapあたりをいじくるドライバを作れば、 oops画面を表示させることは可能ですか?
324 名前:殴られそうだが mailto:sage [04/02/10 23:35 ID:0xm4A1oM.net] >>317 試してないけど、 *(unsigned long)0 = 0; とか。
325 名前:login:Penguin [04/02/11 00:21 ID:QfDGoor4.net] >>318 似たようなので、 x=0; x=x/x; ってのをやってみたのですがダメですた。 やっぱLinuxって頑強だと思いますた。 mmapも見てみたらカーネル空間でなく補助記憶空間に マップするだけのようですし・・・ アドレス例外でoopsできるような方法とかあるのですかね??
326 名前:login:Penguin mailto:sage [04/02/11 17:17 ID:ViS2X9Xm.net] Oopsとpanicを混同しているような気がしないでもない。
327 名前:login:Penguin [04/02/12 00:21 ID:9Bh5Rhh+.net] >>320 すみません。。。 パニックとシステムフォルト(oops)と勘違いしていたようです。。。 ドライバからシステムフォルト(oops) させるような方法ってあるのでしょうか?
328 名前:login:Penguin mailto:sage [04/02/14 07:34 ID:kX0ZpYOB.net] linuxはsolarisみたいにクラッシュダンプ取れますか??
329 名前:login:Penguin mailto:sage [04/02/16 00:01 ID:dUYGf/LZ.net] >>322 ttp://lkcd.sourceforge.net/
330 名前:login:Penguin mailto:sage [04/02/19 02:35 ID:tYIYueC9.net] Linuxでのデバイス・ノード管理は現在 従来の/dev以下のデバイス・ノードファイル、devfs、udevが 存在しているようですが、デバイスドライバを書くような デバドラ開発者にはこの状態は影響するのでしょうか?
331 名前:login:Penguin [04/02/19 10:34 ID:iwEBqmwA.net] 私は従来の/dev以下のデバイス・ノードファイルを使ってます devfsに対応するのも簡単だけど優先度低いから先送り
332 名前:login:Penguin mailto:sage [04/02/24 22:37 ID:BGHqYIMS.net] modpostについて詳しく解説している文書をご存知でしたら教えて下さい。
333 名前:login:Penguin mailto:sage [04/03/17 23:57 ID:P4QfZyWd.net] データシートをどうやって手に入れるか それが問題だ
334 名前:login:Penguin mailto:sage [04/03/18 10:56 ID:WBeyRceU.net] 何のデータシート?
335 名前:login:Penguin [04/04/08 16:25 ID:E32BiKCa.net] mmapについて質問させてください。 メモリデバイスをmmapするとき、ページサイズを4096Byteとした場合、 mmapされたデバイスの先頭からの"物理アドレス"と mmapしたプロセスのデバイスに割り当てられた"仮想アドレス"の 下位12bit(2^12 = 4096)は一致するのでしょうか? mmapではプロセスの仮想空間にページサイズ単位で ファイルやデバイスを割り当てることが出来るわけですよね。 ページサイズが関係してくると言うことはMMUのようなものが 作用して、この割り当てを管理しているのですよね。 (あるいはMMUそのものなんですか?そこが分かってないのですが) もしも、MMUの管理下にあるならば、実空間と仮想空間のアドレスの 下位12bitは一致するはずです。 MMUはページサイズ以下のアドレスを知らないはずですから。 ここまでは私の理解に間違えはないですよね。 でも、mmapが実際にどんな風に動いているか良く分からないので、 上のような疑問が沸いてしまったのです。 どなたかお分かりいになる方がいましたら教えてください。
336 名前:login:Penguin mailto:sage [04/04/08 17:57 ID:/VjqMrH1.net] >>329 つ[ mmap.c ]
337 名前:login:Penguin [04/04/09 00:53 ID:E9wQ2At3.net] いいなこのスレ
338 名前:login:Penguin mailto:sage [04/04/09 00:58 ID:ImS0ZAox.net] >>330 ha?
339 名前:login:Penguin mailto:sage [04/04/09 00:59 ID:ImS0ZAox.net] あぁソース嫁ってことかw
340 名前:login:Penguin mailto:sage [04/04/09 14:52 ID:8RpqlllW.net] >>329 CPU/MMUアーキテクチャに依存する話だね。 IA32に限っていえばその理解でいいと思うよ。 他archでもまずそうなってるだろう。 そうなってないMMUなんて見たことない。
341 名前:login:Penguin mailto:sage [04/04/09 15:39 ID:dsP5+/oo.net] 2次キャッシュを UBS mem に格納して使いたし。可能?
342 名前:login:Penguin mailto:sage [04/04/09 21:34 ID:/keZpBhh.net] >>335 CPUの2次キャッシュをUSBメモリにやらせるってこと?
343 名前:login:Penguin [04/04/10 01:41 ID:04yJkWho.net] AGE
344 名前:login:Penguin [04/04/13 23:49 ID:bzoEXS/o.net] USBのデバイスドライバ作る時のTIPSを教えてください
345 名前:login:Penguin mailto:sage [04/04/14 15:26 ID:XimV19c+.net] デバイスを破壊出来るデバイスドライバーの作り方教えてください
346 名前:login:Penguin mailto:sage [04/04/14 23:18 ID:QKI6oVKA.net] >>339 1.どこからかゴルフのドライバーを手に入れる。 2.ドライバーのフェイスにデバイスを貼り付ける(ガムテープでも可) しかる後にドライバーを振りかぶり、路面、ブロック塀etc.にぶつけること。
347 名前:login:Penguin mailto:sage [04/04/15 10:49 ID:D/fT1Zhi.net] >>340 ( ´д)ヒソ(´д`)ヒソ(д` )
348 名前:login:Penguin mailto:sage [04/04/19 20:10 ID:TjHP8JDs.net] >>340 ( ´д)チョメ(´д`)チョメ(д` )
349 名前:login:Penguin mailto:age [04/04/27 21:12 ID:ftQXOuAJ.net] v2.6.x 用の module (.ko) の作り方ってどっかに落ちてませんか? v2.4.x だと gcc -c するだけで insmod できるイメージができましたが、 v2.6.x だとなんか後工程があるんですよね?
350 名前:login:Penguin [04/04/27 21:18 ID:VEIU93yI.net] >>339 FDDにアクセスして、その音で音楽を鳴らす。 CDDのトレイを頻繁に出し入れする。 ってトレイは入れられたっけ?
351 名前:login:Penguin mailto:sage [04/04/28 09:36 ID:r7A4ZD5z.net] >>344 出し入れ可能だけど、作り方は教えられないのでは? もう既に完成してしまっているし ソース嫁としか言えないと思う
352 名前:login:Penguin mailto:sage [04/04/29 22:03 ID:ugZV/Avt.net] >>344 CDDのトレイを開け閉めする位ならioctlで……
353 名前:login:Penguin [04/05/05 09:59 ID:IcDQ6/Fz.net] v2.4でUSBキーボードドライバにRAWレベルアクセスする方法知りませんか? usb/usbkbd.cを単品でモジュール化してみたけど、プログラムからのアクセス 方法がわからない・・・ usb_register時にマイナーバージョンの情報を登録してないみたいだけど デバイスファイルでアクセスしようと思うと無理なのかな〜・・・
354 名前:login:Penguin [04/07/17 17:55 ID:z93SFsgN.net] 落ちそう・・・見込みなさそうだけど上げ
355 名前:login:Penguin [04/07/18 17:33 ID:qhsm/Ia2.net] >>343 linuxdevices.com/articles/AT4389927951.html とか lwn.net/Articles/driver-porting/ とかではどう?
356 名前:login:Penguin [04/07/27 03:02 ID:AwmCdxXP.net] Moz2chで見てると レスがだんだん右にずれていくます。
357 名前:login:Penguin [04/07/27 03:08 ID:AwmCdxXP.net] USBに2台のWebカメラをつなげてまちゅが May 30 08:31:05 localhost kernel: usb-uhci.c: interrupt,status 3, frame# 1728 しばらく動いた後に/var/log/messageに出力されてカメラがハングしてちまいます。 USBのデバイスドライバは何を言ったのでしょうか?おちえてください。
358 名前:login:Penguin mailto:sage [04/07/27 03:23 ID:7ve9Hskt.net] >>351 要はエラーが起きたのですね。それ以上あまり解析のタシにはなりません。 status 3 ってのは、割り込みが起きて、IOC と Error が立っていたんです。 # IOCの方は、割り込みを発生する機能なので、エラーじゃないですが。
359 名前:login:Penguin [04/08/02 14:39 ID:QD1yhPkc.net] チップセットのドライバって具体的にはどんなことやってるの?
360 名前:login:Penguin [04/08/02 16:42 ID:4u8OC/CN.net] すごく恥かしいあんなことやこんなこと
361 名前:login:Penguin [04/08/02 17:48 ID:Wbtl3uph.net] >>354 激しく気になります。
362 名前:login:Penguin mailto:sage [04/08/03 23:29 ID:HnnAhZGX.net] 突然ですが、デバドラのioctlからpollやselectって呼べるかどなたか知ってますか? pollやselectの引数の構造体に何を入れていいのかわかりません。
363 名前:login:Penguin mailto:sage [04/08/03 23:47 ID:0P3Qaw2+.net] >>356 ioctlのハンドラからsys_selectとか呼びたいって事ですか? 呼べないことはないと思うけど… なんでそんな変な事をする必要があるのか興味がありますな。 引数は普通にselectに食わせているものを同じように渡せば良いはず。
364 名前:login:Penguin mailto:sage [04/08/04 09:37 ID:NoJQortH.net] >>357 3つのCPUおよびOSがある組込み系のデバドラを考えてます。 普通はioctlやselectをモジュール側に個別に書くのでしょうが、 それだとダメみたいです。デバドラ側で一括して処理を行うようにしないといけません。 ioctlをモジュール側から呼びだして、デバイス側ではそのioctl処理からpoll(割り込み処理)を 考えてます。なぜioctlかと言うと、ユーザデータをデバドラに渡したい(アドレスのチェック)からです。
365 名前:login:Penguin mailto:sage [04/08/04 10:00 ID:H7hK0Jjq.net] >>358 >ioctlをモジュール側から呼びだして、デバイス側ではそのioctl処理からpoll(割り込み処理)を考えてます。 ちょっと待てよ、そこで言ってるモジュール側とデバイス側の区別がわからないのだが?
366 名前:login:Penguin mailto:sage [04/08/04 10:24 ID:AG/Dol7k.net] 一般に、デバドラ内部からシステムコールやライブラリ関数は呼べないよ。 書いてあることだけじゃいまいち要領を得ないが、taskletなりtask_queueなりを 自分で管理して、カーネルのスケジューラに登録するのが常套手段だ。 カーネルスケジューラはは2.2系 2.4系 2.6系で大きく異なるから 各バージョンすべてで動作する共通コードを書くのは結構大変 泣ける マジで
367 名前:login:Penguin mailto:sage [04/08/04 14:21 ID:NoJQortH.net] >>359 モジュール側とはライブラリのソースで、デバイス側とはデバイスドライバのソースです。 表現が下手ですね。文章もあまりうまくないのでごめんなさい。 ライブラリ側では、whileループでバッファの中身をチェックしています。 バッファが空になるまで、プロセスを眠らすことがそもそもの目的です。
368 名前:login:Penguin mailto:sage [04/08/04 14:35 ID:NoJQortH.net] >>360 ありがとうございます。げえ、かなり大変そうですね。。。かなり萎えてきました。 今いろいろいじくり回してて、デバドラのioctlのfile構造体のメンバf_opを、 poll(select)の関数を指すようにしてやっています。 そのために、ioctlとは別のfile_operation構造体をつくってそこでpollを宣言しました。
369 名前:login:Penguin mailto:sage [04/08/04 14:40 ID:+wO9AS9w.net] >>356 の言う「モジュール」=「ライブラリのソース」は「ユーザランドの アプリケーションが使うライブラリ」かな?
370 名前:login:Penguin mailto:sage [04/08/04 15:22 ID:NoJQortH.net] はい。そうです。 わかりにくくてすいません。
371 名前:login:Penguin mailto:sage [04/08/05 00:11 ID:UYjeE7ll.net] >>362 なんか、あさっての方向に走ってないか? - poll() したいなら poll() を実装する - イベント待ちをしたいread()だろうがioctl()だろうがかまわず待て やりたいことを確認したほうがいいぞ。 - なにをどう待ちたい? - 付加的にやりたいことは何? 後者は、 > なぜioctlかと言うと、ユーザデータをデバドラに渡したい(アドレスのチェック)からです。 がわからんかったって話。
372 名前:login:Penguin mailto:sage [04/08/05 00:11 ID:UYjeE7ll.net] あうあ - - イベント待ちをしたいread()だろうがioctl()だろうがかまわず待て + - イベント待ちをしたいなら、read()だろうがioctl()だろうがかまわず待て
373 名前:login:Penguin mailto:sage [04/08/05 00:45 ID:CMe3HEND.net] 大丈夫か!? >>364 よ!! がんばれよ! 見守ってるからさ!
374 名前:login:Penguin [04/08/05 12:51 ID:dMydmJ+4.net] 書いてあることだけじゃいまいち要領を得ないが アクセス待ち、アクセス完了まで時間がかかる、排他処理が必要である ようなデバイスで ・ノンブロックでアクセス処理したい ・複数のプロセスから同時にアクセスされる状況に対応したい ・複数のデバイスを一元的に管理したい (リソース管理など) こんな条件だと勝手に仮定すると たしかに大きいデバイスドライバを書いて、そこですべて管理するのも ひとつの解決法ではある。 でもユーザランドでスレッド/子プロセスを使って、ノンブロック処理を 実装することも出来るし、唯一の解でもない。 まぁ、情報が出せないというよりは、状況を理解してないので うまく説明できないって感じなので、もうちょっと頭を使って 問題を整理してから、もう一回質問するがよかろう
375 名前:login:Penguin [04/10/29 11:01:48 ID:rDkd0V/P.net] lsusbだとデバイス名が把握できてるということは、 個々のドライバ部分に問題があって動かないという風に考えてもいいでしょうか? linux-2.6において usbcore uhci_hcd cdc_acm という三つのドライバにより動かしたいハードウェアがあるんですが、 cdc_acmをロードしてもうんともすんとも言いません
376 名前:login:Penguin mailto:sage [04/10/31 20:53:26 ID:fFX2rhTr.net] .netとかjavaみたいなバイトコードなドライバーでハードウェア を制御する環境を作るって可能ですか?
377 名前:login:Penguin mailto:sage [04/10/31 21:36:34 ID:uzVMAm7i.net] >>369 まあそうでしょうな。 lsusbはハード的につながっていれば見えるし。 >>370 そりゃ作れん事は無いが… 速度が厳しくないかい?
378 名前:login:Penguin mailto:思っただけで、実現する技術が無いので sage [04/11/01 02:36:54 ID:dfNRJQ4+.net] >>371 JITなりリコンパイラーなり方法はあるだろうし、全てのドライバーが 速度を必要とするわけじゃないと考えたわけで。部分的にでも・・・と 何にしてもバイナリの非互換性がどうにかならんかなぁと。 カーネル毎にコンパイルはダリ
379 名前:login:Penguin mailto:sage [04/11/01 06:48:36 ID:IqBdvM7D.net] >>370 Kernelから呼び出すような仕組みにしても、 Javaで言うnativeなのが無いと駄目じゃない? レジスタとかメモリ領域さわれないし。 結局そこ(nativeなモジュール)で非互換性が出る気がする。
380 名前:login:Penguin mailto:sage [04/11/01 15:55:17 ID:lkrLxjNC.net] >>373 そのへんはバイトコードインタプリタで抽象化すればいいのではないかと。 PCIあたりならかなりの所まで出来そうな気がするなあ。 そういやOpenFirmwareなんてのがあったのう…あれはForthだっけ?
381 名前:login:Penguin mailto:sage [04/11/01 22:34:23 ID:dfNRJQ4+.net] 成るほど・・・ >>373 やっぱりそういうところで不備が出てきますか。。。言語拡張で・・・となると Javaじゃなくなるし、コンパイラーも自前に用意しなきゃならなくなるし。。。 >>374 漏れもそんな感じの考えでいたんだけど、やっぱそれが難しいんでしょうね。 とはいえ、可能性があることはわかりました。ありがとうございます。 >>OpenFirmware 調べてみましたが上の考えのBIOS版みたいなもんでしょうか? とりあえず、神が現れることを祈りつつ作れる作れない、作る作らないは別として 自分でも調べてみようと思います。厨の妄想に付き合っていただきありがとうございました。
382 名前:login:Penguin mailto:sage [04/11/02 12:28:29 ID:lgEgFui9.net] カーネルのバージョンによってカーネルが持つ構造体が微妙に違うことがよくある。 (メンパが増えてるとか) 現状のinsmodによるデバイスドライバのダイナミックリンクは その手の構造体の違いを解決してくれないので、原則的に カーネルバージョンに依存したドライバしかリンクできない。 強制的に違うバージョンのドライバをinsmodすることも可能だが 正常に動く保証はない。たまたま動くことはあるけれども。
383 名前:login:Penguin mailto:sage [04/11/02 18:53:41 ID:chaRCRYs.net] まあソース見て「あーこれなら動くな」と思ったら 迷わず-f
384 名前:login:Penguin mailto:sage [04/11/03 13:41:27 ID:1PHyje+L.net] ドライバのソースがあるならリビルドする方がいいような気がするのう。 いっぱいコンパイラに怒られたりすると直す気が失せるが…
385 名前:login:Penguin mailto:sage いやしかし勉強になる。。。 [04/11/06 23:30:41 ID:9J0OxvoL.net] >>376 なるほど。JAVA云々無しにしてもやっぱカーネルとは別離すべきなのかも。 いや、マイクロ・モノリシックの話じゃなくて仕様的なものを。moduleの管理も こんなんでいいの?って気もするし。Xもドライバー持ってるってのがよくわから んし(嫌味とかじゃなくて本当にわからんのです。) って偉そうな事言っててもしょうがないな・・・たまにはソースぐらい読もう・・・
386 名前:login:Penguin mailto:sage [04/11/07 08:11:19 ID:/P0s9FI4.net] >>636 > 昨日Linuxにふれたものですから であり、(非常に一般的なやりかたにもかかわらず)やりかたがわからないとい う人が tamagoをいれたい理由はなにかしら? 特に強い理由がないなら、「いれるな」が正しいガイドだと思うのですよ。 >>635 つかいかたは man xmodmap でみるといい。 キーコードは xev で調べられます。使いかたは man xev でみるといい。
387 名前:login:Penguin mailto:sage [04/11/08 12:46:18 ID:ir5Tmuq8.net] Xサーバはroot権限のユーザランドプロセスで /dev/ioとか /dev/memに 直接アクセスしてビデオチップを制御する。 Xのドライバといわゆるデバイスドライバとは動作メカニズムがまったく違う。
388 名前:login:Penguin mailto:sage [04/11/09 23:51:44 ID:+nDFjkMc.net] ユーザ空間からmmapでマッピングしてデバイスいじくるときって、 アプリがマッピング先のメモリに書き込む動作と同時に デバイスにデータって書きこまれるんでしょうか? バッファリングみたいのって気にしなくてもいいの?
389 名前:login:Penguin mailto:sage [04/11/10 01:00:51 ID:8UeNJl+2.net] >>382 デバイスをmmapしてアクセスするときは、単にMMUがそこを指しているだけで、 ディスク上のファイルをmmapしたときのようなバッファリングはありませんよ。 類似のがある場合はあって、それはキャッシュなのです。 /dev/fb* は通常キャッシュが抑止されています。 /dev/mem は O_SYNCでopenしてやるとキャッシュを抑止します。
390 名前:login:Penguin mailto:sage [04/11/10 07:34:29 ID:WP1ExQ+t.net] PCIデバイスの場合 各共有メモリ空間ごとにprefetchableビットが定義されている ほとんどのPCIカードはprefetchableがdisableになっておりキャッシュ無効になってる
391 名前:login:Penguin mailto:sage [04/11/10 14:40:19 ID:OHaab6bm.net] >>383 >>384 CPUキャッシュですか。 環境にもよるのでしょうけど、基本的にはあまり気にしなくてもいいのですね。 実は、drivers/char/mem.c みたんですけど、mmap システムコールを呼んだときと、 そこにアクセスした時のコードの流れがよくわからないのでちょっと???でした。 あとは、コンパイラのオプティマイズも気にしておいたほうがいいのでしょうね。
392 名前:login:Penguin mailto:sage [04/11/10 18:01:50 ID:MrVsce1+.net] >>385 CPUキャッシュはユーザー空間から叩く手段がないので、 カーネルとハードウエア側の制御にお任せするしかないです。 最適化の方はvolatile付けておけば大丈夫でしょう。 なにもしないと最近のコンパイラは賢すぎてとんでもないことをやってくれますからな。
393 名前:login:Penguin mailto:sage [04/11/10 23:54:53 ID:8UeNJl+2.net] >>385 キャッシュは気にしてください。キャッシュがあると . 書き込みがキャッシュが溢れるまでなされない。 . 読みだしも同様。 . 同一ラインにのる近隣のレジスタがいっしょにアクセスされちゃう という、デバイスの制御にとっては致命的な
394 名前:アとがいろいろ。 [] [ここ壊れてます]
395 名前:382 385 mailto:sage [04/11/11 00:27:04 ID:95L6p31P.net] すみません。 キャッシュを気にししなくてもよいと書いたのは、 キャッシュが働かないので、気にしなくても良いという意味で 書いていました。 387さんのおっしゃるとおり、デバイスアクセスでキャッシュが 働いてしまうと、ひどい目にあいますね。 ところで、mmapのキャッシュ無効化ってmem.cの noncached_address を修正すれば有効無効をユーザで 任意に操作可能になるんですかね? ハードやBIOSでキャッシュ関係の細工が何かあったりしたらだめなのかもしれませんが。
396 名前:login:Penguin mailto:sage [04/11/12 00:12:24 ID:nxDtrzpb.net] >>388 抑止の方は O_SYNC でできますよ。その行の後半の条件がそうでしょ?
397 名前:login:Penguin [04/11/14 11:26:16 ID:ZhMJfRu+.net] USBサブシステムを読んでいるんですが、 デバイス、バス、ドライバの三つの関係のイメージを 教えてください。なんだかソース読んでいてもよく分かりません。 またxxx_probeという関数に渡ってくるstruct usb_interfaceとは どこで確保されいてる構造体なんでしょうか?
398 名前:login:Penguin [04/11/21 11:06:40 ID:RzBM8DsM.net] technokitのUSB-IOをFedora Core 3に接続したら、/dev/hiddev0が勝手にできたので、 これに対しCでプログラムを作って、 fd = open("/dev/hiddev0", O_WRONLY); して、 write(fd, command, 8); した。commandは0x01FF00000000。けど全然反応が無い。 USB-IOのエンドポイント0には、0x01FFを送ったら、ポート0が反転するはずなんだけどなあ。 hid使わずに、ちゃんと専用ドライバ使わないとだめなの?
399 名前:login:Penguin mailto:sage [04/11/21 17:22:45 ID:fkgrUhvM.net] デバイスドライバはカーネルメモリを消費するらしいのですが、 現在のカーネルメモリーの残量を知るにはどうしたらよいですか?
400 名前:391 [04/11/21 17:37:11 ID:RzBM8DsM.net] >390 /usr/include/usb.h
401 名前:login:Penguin mailto:age [04/12/12 18:20:03 ID:fch5Qtg6.net] Linuxデバイスドライバの勉強を始めました。 がまずは、オライリーの本で解説してる、 サンプルコードから入ろうと思ったんですが、 asm/system.hをincludeしているコードは、 /usr/src/linux/include/asm/system.h: 関数 `__set_64bit_var' 内: /usr/src/linux/include/asm/system.h:190: 警告: dereferencing type-punned pointer will break strict-aliasing rules と警告を出されてしまいます。 同じ現象に遭遇した香具師いませんか? コンパイラはgcc3.3、kernel2.4.26。 ちなみに、警告された部分は、 #define ll_low(x) *(((unsigned int*)&(x))+0) #define ll_high(x) *(((unsigned int*)&(x))+1) static inline void __set_64bit_var (unsigned long long *ptr, unsigned long long value) { __set_64bit(ptr,ll_low(value), ll_high(value)); //190行目 }
402 名前:394 mailto:sage [04/12/12 18:22:17 ID:fch5Qtg6.net] あ、マシンは i686です。
403 名前:login:Penguin mailto:sage [04/12/14 01:02:15 ID:bnBNd/cw.net] たしか-fno-strict-aliasingだったかな。それつけれ。 より詳細が知りたいときはググれ。
404 名前:394 mailto:sage [04/12/14 02:47:39 ID:iNH7gUWs.net] 産休です>>396 小細工ですが、 (unsigned int*)&(x)を、(unsigned int*)(void*)&(x)に書き換えると、 警告を封じることができますた。 勉強がんばります。
405 名前:login:Penguin [04/12/14 11:29:27 ID:HO3MDnt+.net] モジュールでmallocを使うと implicit declaration of function `malloc' なる警告が出ました。 正直、うまくいくとも思っていなかったのですが、ためしにやってみた感じです。 何かヘッダをincludeすればいいのでしょうか。
406 名前:login:Penguin mailto:sage [04/12/14 11:44:22 ID:vlh4D4yl.net] >>398 kmalloc() or vmalloc()
407 名前:login:Penguin mailto:sage [04/12/14 11:54:53 ID:HO3MDnt+.net] >>399 感謝.あとは調べます.
408 名前:login:Penguin [04/12/14 15:55:34 ID:ScDxM3L+.net] 【序 論】 オウム事件とは、「オウム、創価、統一が共同でやっていた覚醒剤密造などの不法行為がばれそうになり、全ての罪をオウムに押付けた。」事件であると理解しています。 統一教会は、その起源から考えて、KCIA及びCIAの影響下にあると考えるべきです。 日本側のCIA専属のお爺さんたち、つまり、笹川さん、児玉さん、中曽根さんたちが、統一とつるんでいたのも、CIAの犬同士という絆があったわけです。 一方で、創価は創価で、笹川一派を通じて、統一と繋がりがありますし、それ以前に創価内部に深く入り込んでいる暴力団、 後藤組のもつ北朝鮮コネクションから、オウムの麻薬ビジネスに関わっていたわけです。 もちろん、日本社会に創価マフィアのネットワークをはりめぐらした学会を、CIAが放っておくわけがなく、マネーロンダリングなどに、しっかり利用されています。 宗教法人の財務の閉鎖性をCIAが利用しないと考える方が異常です。 そして、CIAお得意の麻薬ビジネスの日本支部が、オウムだったわけで、その収益が北朝鮮に還元されていたのも当然のことであり、 北の現体制を維持するための、CIAの有難い配慮だったわけです。 なにしろ北の体制が崩壊すると、一番困るのは、CIAのスポンサーである軍産複合体と国際金融資本であり、極東の緊張は、彼らの飯の種なわけですから。 麻薬王にして、CIAの帝王である大ブッシュさんが、統一の文と仲良しなのも、アッタリマエなわけですね。 今度の米大統領選でも、随分と統一のカネが小ブッシュ陣営に流れたようですね。 尚、本件の主たる議論は、2チャンネル、警察板の「告発します 第3部」スレッドにて、進めています。 mentai.2ch.net/test/read.cgi?bbs=police&key=985780338&ls=100
409 名前:login:Penguin mailto:sage [04/12/14 17:02:39 ID:WBCZfumK.net] 国際金融資本と無関係な人はいません。ここが大事なところです。 国際金融資本とダーティーな勢力になんらかの関係があるというのなら、 全ての人間がダーティーな勢力と関係があるということです。
410 名前:login:Penguin [04/12/16 00:42:54 ID:HSUTNn3s.net] <linux/errno.h>をincludeしているのに、errnoが宣言されていないとエラーが出ます。 なぜですか?
411 名前:login:Penguin [04/12/16 00:52:12 ID:fnG8qWZe.net] #include <asm/errno.h>
412 名前:login:Penguin mailto:sage [04/12/16 03:08:53 ID:L4JhEJTY.net] デバイスドライバーをイジルとハードが壊れます
413 名前:login:Penguin mailto:sage [05/01/13 20:25:56 ID:5Qhjx5GH.net] jiffies の質問です。jiffies がオーバーフローする時の挙動を確かめ たく、下記のようなモジュールを作成してロードしたのですが、モジュー ルのロードに非常に時間がかかります。 #define __KERNEL__ #define MODULE #include <linux/module.h> #include <linux/sched.h> #include <linux/delay.h> MODULE_LICENSE("GPL"); int init_module(void) { jiffies = 4294961296UL; return 0; } void cleanup_module(void) { return; } 即座に jiffies 値を変更するためには、何か工夫が必要なのでしょう か?
414 名前:login:Penguin mailto:sage [05/01/13 21:59:07 ID:b26g+4JK.net] >>406 jiffesの値が飛ぶせいじゃないの? 初期値をいじる方がいいと思うが。
415 名前:login:Penguin mailto:sage [05/01/13 22:21:10 ID:5Qhjx5GH.net] やっぱりそれしか方法ないでしょうかね。カーネルコンパイルが億劫で まだ試していませんでした。 例えば、jiffies += 8640000; だとそれほど時間はかからないのですが、 jiffies += 8640000; にすると、より多くの時間がかかるようです。仮 想マシン環境で実験しているのですが、その間、仮想マシンのプロセス の CPU 使用率は高いままでした。
416 名前:login:Penguin mailto:sage [05/01/14 02:03:54 ID:PSu0RjKD.net] ん? 何書いてたんだ、俺 >408 は、正しくは以下です。 例えば、jiffies += 8640000; だとそれほど時間はかからないのですが、 jiffies += 864000000; にすると、より多くの時間がかかるようです。
417 名前:login:Penguin [05/02/06 11:19:02 ID:+OMlHKxZ.net] mmapによるデバイスアクセスについてご教授ください。 16bitアクセス限定のデバイスに対して、 mmapによるアクセスを試行しているのですが、 どうも挙動が怪しくて困っています。 アプリ側からmmap(/dev/memをO_SYNCでopen)してshortアクセスをしても、 そのままshort幅でデバイスにアクセスが行くとは限らないのでしょうか? なにか考慮が不足してるのでしょうか。
418 名前:login:Penguin mailto:sage [05/02/06 14:33:57 ID:JfjjYGk4.net] >>410 アーキテクチャわかんないので、過去の経験より。 ・D cache ・コンパイラが勝手に最適化 そういう制限がある場合は、おとなしく専用ドライバ書くのが 近道のような気がしますな。
419 名前:login:Penguin [05/02/10 21:10:10 ID:oT40ukFS.net] gcc 3.3.5(gentoo) で作成したモジュールを gcc 3.4.2(FC3) のPCへ 組み込もうとするとエラーで組み込めません。 どちらも kernel-2.6.10 です。 insmod: error inserting 'hoge.ko' : -1 Invalid module format kernel config (General setup, Loadable module) は同じにしてあります。 同じバージョンの gcc で作成したシステムでないと無理なのでしょうか。
420 名前:login:Penguin mailto:sage [05/02/12 01:22:07 ID:QcR6E3eX.net] >>410 >>411 の言うとおりアーキテクチャが分からないのでなんともいえないけど・・・ /dev/memをmmapでshortアクセスしたら、普通はshortで触ってくれるでしょう。 でも、触ってるデバイスが * 例えば32bit PCI * にぶら下がってたりしたら 32bit で触りに行っちゃうこともありますよ。 っていうか、PCIの向こうにいるデバイスに届くまでに余計な16bitが増えてたりする。 それでも、読みにいくときには多分shortで行っても多分大丈夫。 書き込みをshortでやったりすると、残りの16bitにゴミが乗っかっちゃうとか、 そんなんじゃないでしょうか? そうならば、shortで書きに行くときには、最初にデバイスから32bit分持ってきて、 それに16bit分上書きして、32bit書き戻すとかするしかないのでは。 (16bitアクセス限定でも、読みに行くときは16bit×2で32bit分をうまく返してくれることを かってに期待して書いてますけど) それから、32bitでアクセスするときにも触りに行くアドレスに注意が必要ですよ、多分。 32bitアラインメントじゃないとダメな予感がします。 もしそうならば、アラインメントの境界をまたいじゃうような16bitの書き込みをする場合、 両側の32×2 = 64bit分を持ってきて16bit書いて戻す、とかしないとダメですよね。 もちろんこれは、PCI上でうまく振舞うように作られていないデバイスの話で、 たとえ16bitアクセス限定デバイスでもそうならないようにつくることは可能だと思います。 ところどころ言ってるかもしれませんけどね・・・
421 名前:413 mailto:sage [05/02/12 01:24:29 ID:QcR6E3eX.net] 早速、間違えてました(w >ところどころ言ってるかもしれませんけどね・・・ ところどころ * うそ * 言ってるかもしれませんけどね・・・
422 名前:410 mailto:sage [05/02/16 00:46:02 ID:E/KjMwKc.net] いろいろ情報ありがとうございます。 もともとドライバ経由でアクセスしていたのですが、 パフォーマンス的な問題でmmapでを使用したかったという経緯があります。 ですが、mmapだとどうもうまくいかなくて試行錯誤していた次第です。 ですので、単純にmmapでの処理の問題かと思っていました。 時間はあるので、勉強も兼ねてもうちょっと情報収集をしたいと思います。
423 名前:login:Penguin [05/02/16 22:28:50 ID:mypLuczy.net] www.netfort.gr.jp/~matsu/lcd_pc/lcd_pc.html これカコイイ
424 名前:login:Penguin mailto:sage [05/02/20 21:06:04 ID:0sjUjbHi.net] 現在、デバイスドライバ作成(とりあえずキャラクタ型)の勉強しているのですが、 2.4.30-pre1上で作成したテストドライバでモジュールのロードは成功したと思われる のですが(lsmodで存在を確認)、実際にドライバを使用する為に作成したテストツールから 呼び出す(ioctlを使用する箇所で)と失敗しました。 $ ls -l /dev/testdev crw-rw-rw- 1 root root 60, 0 2月 20日 20:11 /dev/testdev $ ./testtool ioctl: Inappropriate ioctl for device <-- perrorで表示させてみたところ
425 名前:417 mailto:sage [05/02/20 21:09:12 ID:0sjUjbHi.net] つづき そこで、さらに詳細に状況を確認するためにstraceを使用してみました。 $ strace ./testtool execve("./testtool", ["./testtool"], [/* 52 vars */]) = 0 brk(0) = 0x8049a6c open("/etc/ld.so.preload", O_RDONLY) = -1 ENOENT (No such file or directory) open("/etc/ld.so.cache", O_RDONLY) = 3 fstat64(3, {st_mode=S_IFREG|0644, st_size=62075, ...}) = 0 old_mmap(NULL, 62075, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40013000 close(3) = 0 open("/lib/libc.so.6", O_RDONLY) = 3 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0DU\1\000"..., 1024) = 1024 fstat64(3, {st_mode=S_IFREG|0755, st_size=1333605, ...}) = 0 old_mmap(NULL, 1145796, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40023000 mprotect(0x40134000, 27588, PROT_NONE) = 0 old_mmap(0x40134000, 20480, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x110000) = 0x40134000 old_mmap(0x40139000, 7108, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x40139000 close(3) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4013b000 munmap(0x40013000, 62075) = 0 open("/dev/testdev", O_RDWR) = 3 ioctl(3, FIBMAP, 0xbffff1d8) = -1 ENOTTY (Inappropriate ioctl for device) fstat64(1, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40013000 write(1, "errno = 25\n", 11errno = 25 ) = 11
426 名前:417 mailto:sage [05/02/20 21:10:12 ID:0sjUjbHi.net] つづき dup(2) = 4 fcntl64(4, F_GETFL) = 0x2 (flags O_RDWR) brk(0) = 0x8049a6c brk(0x804aa6c) = 0x804aa6c brk(0) = 0x804aa6c brk(0x804b000) = 0x804b000 fstat64(4, {st_mode=S_IFCHR|0620, st_rdev=makedev(136, 2), ...}) = 0 old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40014000 _llseek(4, 0, 0xbfffef50, SEEK_CUR) = -1 ESPIPE (Illegal seek) write(4, "ioctl: Inappropriate io"..., 47ioctl: Inappropriate ioctl for device ) = 38 close(4) = 0 munmap(0x40014000, 4096) = 0 close(3) = 0 munmap(0x40013000, 4096) = 0 exit_group(1) = ? $ 結果を見ていると実行したおぼえのない以下の行がありました。 ioctl(3, FIBMAP, 0xbffff1d8) = -1 ENOTTY (Inappropriate ioctl for device) この現象はどこにエラーがある場合におこり得ますか? 知ってる方お願いします。m(_ _)m
427 名前:login:Penguin mailto:sage [05/02/20 21:38:19 ID:uvzGFsyf.net] 結果じゃなくてソースだそうよ
428 名前:417 mailto:sage [05/02/20 21:48:59 ID:0sjUjbHi.net] >>420 Please wait for a moment...
429 名前:417 mailto:sage [05/02/20 22:06:08 ID:0sjUjbHi.net] #define MODULE #define __KERNEL__ #include <linux/module.h> #include <linux/kernel.h> #include <linux/sched.h> #include <linux/fs.h> #include <linux/string.h> static int devmajor=60; static char *devname="testdev"; MODULE_PARM(devmajor, "i"); MODULE_PARM(devname, "s"); #include <asm/uaccess.h> static int devtest_open(struct inode * inode, struct file * file){ MOD_INC_USE_COUNT; return 0; } static int devtest_close(struct inode * inode, struct file * file){ MOD_DEC_USE_COUNT; return 0; } static int devtest_ioctl(struct inode *inode, struct file *file,unsigned int cmd, unsigned long arg){ int i; printk("testdev: ioctl: cmd=%04X\n",cmd); switch(cmd) { case 1: printk("Driver testing\n"); return 0; } return -EINVAL; }
430 名前:417 mailto:sage [05/02/20 22:07:26 ID:0sjUjbHi.net] つづき static struct file_operations devtest_fops = { ioctl: devtest_ioctl, open: devtest_open, release: devtest_close, }; int init_module(void){ printk("install '%s' into major %d\n",devname,devmajor); if(register_chrdev(devmajor,devname,
431 名前:&devtest_fops)){ printk("device registration error\n"); return -EBUSY; } return 0; } void cleanup_module(void){ printk("remove '%s' from major %d\n",devname,devmajor); if (unregister_chrdev(devmajor,devname)) { printk ("unregister_chrdev failed\n"); } }; [] [ここ壊れてます]
432 名前:417 mailto:sage [05/02/20 22:10:07 ID:0sjUjbHi.net] デバドラ呼び出し部 #include <stdio.h> #include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> #include <sys/ioctl.h> #include <string.h> #include <unistd.h> #include <errno.h> extern int errno; int main(void){ int fd, ret; fd=open("/dev/testdev",O_RDWR); if(fd<0){ fprintf(stderr,"cannot open device\n"); return 1; } errno = 0; ret = ioctl(fd,1); if(ret == -1){ printf("errno = %d\n", errno); perror("ioctl"); } close(fd); return 0; }
433 名前:417 mailto:sage [05/02/20 22:11:43 ID:0sjUjbHi.net] 以上で全部です。
434 名前:login:Penguin mailto:sage [05/02/20 23:44:25 ID:Ia/OzVXx.net] >>417 コピペしたら動いたぞ。 2.6.10 でだけど・・・ カキコしたソースで動かしてみそ。
435 名前:417 mailto:sage [05/02/21 00:06:03 ID:bwxnTums.net] >>426 マジ?しかも、2.6? このソースでコンパイル通った? そして実行結果キボンヌ
436 名前:login:Penguin mailto:sage [05/02/21 00:25:27 ID:PN7I+gvx.net] >>427 # uname -r 2.6.10-gentoo-r6 /var/log/messages より Feb 20 23:41:06 XXXXX testdev: ioctl: cmd=0001 Feb 20 23:41:06 XXXXX Driver testing 変更点は /dev/wrkdev にしただけ。
437 名前:417 mailto:sage [05/02/21 00:37:25 ID:bwxnTums.net] >>428 Thanks! こちらもたった今2.6で動作確認したところです。 う〜む、何故2.4ではエラーなんだろ。 もうちょっと自分で調べてみます。 テストしてくれてありがとう >>426 & >>428
438 名前:login:Penguin mailto:sage [05/03/06 13:19:22 ID:PjCVkwmZ.net] 何気に良スレ みんな頑張れ お気に入りに追加しますた。
439 名前:login:Penguin mailto:sage [2005/03/29(火) 16:05:44 ID:lbUCJwgD.net] ドライバのread、write関数でminor番号取得する方法ってないんですか? 2.6用に、LIRCの仮想ドライバで、デバイスファイル2つ作って、 片方にキーコード書き込んだらLIRCに送られるやつ書いてるんだけど。 まあ、LIRC側はIOCTLとreadだけだし、キーコード送るほうはwriteだけだから今のとこ何とかなってるんだけど、気持ち悪いし。
440 名前:login:Penguin mailto:sage [2005/03/29(火) 23:34:47 ID:ChOvrjsk.net] private_data を使う、かな?
441 名前:login:Penguin mailto:sage [2005/03/30(水) 11:17:39 ID:tWHa73x6.net] >>432 サンクス! open時に file->private_data にポインタ突っ込んでおくってことですね。 取得することばかり調べてて、あらかじめ持たせておくことを考えてませんでした。 修行が足りぬ…orz
442 名前:login:Penguin mailto:sage [2005/04/16(土) 06:28:18 ID:R/hasO1P.net] usb-hid についての質問です. usb 接続の joypad を,hid-input 経由ではなく, (drivers/usb/usb-skeleton.c のような) usb のデバイスドライバで処理したいと考えています. 問題は,joypad の挿入時に hid-core の probe 関数が呼ばれてしまい, 自作 usb デバイスドライバの probe 関数が呼ばれないことです. 上記の解決策はあるのでしょうか. 自作 usb デバイスドライバ内では, joybad のベンダーID,プロダクトIDを usb_device_id 構造体に設定しています. kernel は 2.6.10 です. よろしくお願いします.
443 名前:434 mailto:sage [2005/04/16(土) 08:17:16 ID:R/hasO1P.net] 自己レスです. 解決法を見付けたので,書き込みます. drivers/usb/input/hid-core.c 内の,hid_blacklist 構造体に, joypad のベンダIDとプロダクトIDを加えることで,解決しそうです. スレ汚し失礼しました.
444 名前:login:Penguin mailto:sage [2005/05/17(火) 18:53:06 ID:CbytfkQn.net] 2.6 kernel(2.6.11.x)上でデバドラ書く場合、 MOD_INC_USE_COUNT MOD_DEC_USE_COUNT を使用する事ってobsolete?
445 名前:login:Penguin [2005/05/18(水) 01:07:17 ID:2baf1QgQ.net] >>436 れがし
446 名前:login:Penguin mailto:sage [2005/05/19(木) 23:52:14 ID:m1yq1rQI.net] カーネル2.6.8(turbolinux10Server)でデバイスドライバを開発しています。 ドライバAでエクスポートしたシンボルをドライバBでコールしたいのですが、 ドライバBのinsmod時に"Unknown symbol"エラーが出てしまいます。 そこで、単純なソースで確認してみたのですが、同様の状態でした。 同様のソースをカーネル2.4.18(turbolinux8Server)でコンパイルしてinsmod したところ上手く動作したのですが、カーネル2.6では何か手続きが必要 なのでしょうか? 確認したソースは以下の通りです ==ドライバA== #include <linux/module.h> #include <linux/kernel.h> #include <linux/version.h> int __init test_init_module (void) { printk("test : init_module\n"); s_print(); return 0; } void __exit test_cleanup_module (void) { printk("test : cleanup_module\n"); return 0; } void s_print(void) { printk("Hello, World!\n"); } module_init(test_init_module) module_exit(test_cleanup_module)
447 名前:login:Penguin [2005/05/19(木) 23:52:48 ID:m1yq1rQI.net] ==ドライバB== #include <linux/module.h> #include <linux/kernel.h> extern void s_print(); int __init test2_init_module (void) { printk("test2 : init_module\n"); s_print(); return 0; } void __exit test2_cleanup_module (void) { printk("test2 : cleanup_module\n"); return 0; } module_init(test2_init_module) module_exit(test2_cleanup_module)
448 名前:login:Penguin [2005/05/19(木) 23:57:30 ID:m1yq1rQI.net] ==コンパイル手順== cc -c -w -O -I/usr/src/linux/include -I/usr/include -D__KERNEL__ -DMODULE -DKBUILD_MODNAME=test initial.c /usr/src/linux/scripts/mod/modpost initial.o cc -c -w -O -I/usr/src/linux/include -I/usr/include -D__KERNEL__-DMODULE -DKBUILD_MODNAME=test -c -o initial.mod.o initial.mod.c ld -r -o test.ko initial.o initial.mod.o ==動作確認== # insmod test.ko // シンボルのエクスポートを確認 # cat /proc/kallsyms | grep s_print f8xxxxxx T s_print [test] # insmod test2.ko test2 : Unknown symbol in module 's_print' となります。実機が側にないので出力メッセージは大体こんな感じということで。 よろしくお願いします。
449 名前:login:Penguin mailto:sage [2005/05/20(金) 03:04:35 ID:Ds9MyJAI.net] >>440 カーネルソースんとこでs_printグレップしようぜ 具烈婦 レップってすごいなコレ。どういう意味だ
450 名前:login:Penguin [2005/05/20(金) 08:58:08 ID:zG+tsX8i.net] >>441 烈婦ワロタ レスありがとうございます。 s_printでgrepしてみたのですが、同名のシンボルは無いようでした。 念のため、ドライバAに EXPORT_SYMBOL(s_print); を追加しても'Unknown symbol'になってしまいます。 ドライバ間の依存関係をどこかで明示する必要があるのでしょうか?
451 名前:login:Penguin mailto:sage [2005/06/07(火) 10:17:39 ID:6uaL4exB.net] 普通はそんなことはできないんじゃない? 誰かができると言ったのかな? デバイスファイル開いてioctlをコールが普通じゃねぇの?
452 名前:login:Penguin mailto:sage [2005/06/17(金) 18:54:11 ID:9kSGojSd.net] www.oreilly.com/catalog/linuxdrive3/book/index.csp Linux Device Drivers, Third Edition
453 名前:login:Penguin mailto:sage [2005/06/18(土) 19:13:08 ID:Uc6V46BE.net] >>444 chapter1まで読んだ。 Policy-free driversの意味がまったく分からない。 うえーん
454 名前:login:Penguin mailto:sage [2005/06/19(日) 15:13:18 ID:f3bsYXGy.net] the role of a device driver is providing mechanism, not policy. これが、policy-free
455 名前:login:Penguin mailto:sage [2005/06/19(日) 15:19:24 ID:f3bsYXGy.net] ここでのfreeはduty freeのfreeと同じ使われ方。 policyがないdriver
456 名前:login:Penguin [2005/06/29(水) 18:33:32 ID:hcN+gVRw.net] カーネル2.4.28を使用して、EZ USB FX2のドライバを作成しています。 USBを4つさし、ここに、デバイスドライバを作成します。デバイスドライバは、 カーネルにあるusb-skelton.cを使って作成しました。3つまでさして、制御した場合、 動作したのですが、4つさし、アプリを動かずとドライバが死にます。 4つとも、ここにドライバを作成し、メジャー番号180 で、それぞれ、 マイナー番号を100 120 140 160としました。 open / closeのみを行うプログラムを作成し、何回か行いました。 何回かおこなうと、ドライバが死にます。 ドライバソースを追っていったのですが、open時に dev = minor_table[minor] という行でdevが0になっていました。 minor_tableは、probe関数で取得しているのですが、なぜNULLになったのか なぞです。どなたかわかる方いらっしゃいますか?
457 名前:login:Penguin [2005/06/29(水) 18:42:20 ID:Cc/icRgl.net] Linux のドライバのプログラミングの 良い入門書があったらおしえてください
458 名前:login:Penguin mailto:sage [2005/06/29(水) 22:17:33 ID:OM3Tds/i.net] >>448 Kernel2.4.27のソースしか見てないので違ったら失礼。 >マイナー番号を100 120 140 160としました。 これがよくわからん。デフォでは192から16個を順番に割り当てるようになってるが、それをわざわざいじったってことか? そうなると、スケルトンをあちこち変更してあるのだろうから、さすがにソース無いとなんも判らん。
459 名前:login:Penguin [2005/06/29(水) 22:32:06 ID:rSbPN/4/.net] >>449 アレ買え。馬の絵の描いてあるヤツ。 高くても我慢しろ。読めば安いと思うようになる。 絶対買え。とにかく買え。12冊買え。たくさん買え。
460 名前:login:Penguin mailto:sage [2005/06/30(木) 09:52:01 ID:6k+4MtMc.net] 12冊=たくさん 納得した
461 名前:login:Penguin mailto:sage [2005/06/30(木) 11:24:58 ID:9CZUZn2O.net] なぜ12冊なのかちっとも納得いかないんだが
462 名前:login:Penguin mailto:sage [2005/06/30(木) 11:25:42 ID:J4A9ru3W.net] たくさんだからだろう
463 名前:Artane. ◆o6gE1yuDGM [2005/07/04(月) 07:22:47 ID:Y9u/GUb1.net] 2.6.13で又モジュール周りのAPIが変わりそうな悪寒… drivers/base/class_simple.cがまるごとなくなってる…そこのAPIを使ってる ttp://www.linuxant.com/ のx86_64用のHSFモデムドライバがそのままでは動かない状況に(;´Д`) その前はACPI絡みでデッドロックがかーねるにあって動かなかったし、どうなってるんだろうヽ(`ー´)ノ しかもライセンスがプロプラなのでどーすりゃいいのか頭が痛いです。
464 名前:login:Penguin mailto:sage [2005/07/07(木) 22:10:08 ID:DftqFJii.net] 2.4はcc -o hoge.o -c hoge.cするだけでokだったけど 2.6はmakeファイルを書かないとダメになった。 はぁ、マンドクセ
465 名前:login:Penguin mailto:sage [2005/07/07(木) 22:51:04 ID:Hy9t4ICF.net] ttp://japan.linux.com/kernel/03/10/26/1026229.shtml ここの一番下に書いてあるのなら楽だろ。簡単に再利用できるし。
466 名前:login:Penguin mailto:sage [2005/07/08(金) 11:00:44 ID:9KK2lDyF.net] obj-m := unko.o の1行でよくね?
467 名前:login:Penguin [2005/07/24(日) 15:33:14 ID:02p0TYUx.net] USBのドライバ書いたことアルヤツいる?
468 名前:login:Penguin mailto:sage [2005/07/28(木) 21:47:52 ID:3ylo+PR7.net] >>459 2.4.0testカーネルの時やってたなぁ ストレージ関係がクラスドライバでないときは動かすのに苦労したよ USB Snoopyで解析したりして
469 名前:login:Penguin mailto:sega [2005/07/31(日) 16:37:19 ID:0Amwd3lA.net] カーネル2.6.xのSMPの wait_event_interruptible でしつもんです。 起こされる要因をビットであらわすようにして 起こされたあとに flag &= ~FLAG; として 起床要因をクリアしたいです。そこで、 wait_event_interruptible(wq, !(flag & FLAG) ); tmpflag = flag; // ◆1 // ★ flag &= ~FLAG; // ◆2 if( tmpflag & ・・・ としていたのですが、割込が運悪く★のところに来たときに 次回起床要因flagを割込ルーチンで設定された直後にクリアしてしまいます。 ◆1と◆2をアトミックに処理するのに割禁使うのも大げさな気がします。 どうしたらよいでしょうか? (><)教えて!
470 名前:login:Penguin [2005/08/18(木) 13:31:44 ID:wsNIgIg1.net] ご存知の方がいたら教えて頂けないでしょうか? printk の動作に関してなのですが、たとえば、ドライバの登録の際に int init_module (void) /* Loads a module in the kernel */ { printk("Hello kernel \n"); return 0; } などと printk を使い、(X-Window は起動しないで)コンソールで # insmod filename.o を実行すると Hello kernel とコンソールに表示されるはずなのですが、 表示される場合と表示されない場合があります。実際には、 ほとんどの場合は表示されず、表示されるのは数十回に1回程度です。 そもそも 「printk はコンソールに *必ず* 出力するわけではない」 のでしょうか?どうなのでしょう?
471 名前:login:Penguin mailto:sage [2005/08/18(木) 14:45:51 ID:AA5MGziJ.net] >>462 ほんとうに\nを入れたのか
472 名前:login:Penguin [2005/08/18(木) 14:47:24 ID:zqtjM++q.net] >>462 ほんとうにコンソールなのか Xterm とかじゃないだろうな。
473 名前:login:Penguin [2005/08/18(木) 14:54:07 ID:zqtjM++q.net] X-Window は起動せずにって書いてあったな。 すまそ。 printk() は中で register_console() されたドライバの ->write() を 直接呼んでるから必ず出力されるよ。 出ないとするとログレベルの設定かな。 頭に "<1>" とかつけるといいのでは?
474 名前:462 [2005/08/18(木) 18:10:38 ID:wsNIgIg1.net] レスありがとうございます。 >>463 \n は入れてあります。 \n を入れるのと入れないのでは違いがあるんですか? >>465 出力されるときと出力されないときがあるんですよ。 でも、起動のたびにログレベルが変更されるというのは考えにくいし…
475 名前:login:Penguin mailto:sage [2005/08/18(木) 18:35:47 ID:spRqn48O.net] flushされていない or 同じメッセージなので纏められているのでは?(この場合、last message repeated xxx times とでる。)
476 名前:login:Penguin mailto:sage [2005/08/18(木) 20:41:10 ID:cWStGfHc.net] >>466 ログファイルに吐かれていればメッセージレベル。 出てなかったら改行だろう。 >>467 コンソールに出る方はまとめてくれない。
477 名前:462 mailto:sage [2005/08/19(金) 09:09:08 ID:qyuoI/lN.net] >>467 , 468 /var/log/message には出てます。 改行もしてるんだけどなぁ。 どうもよくわからないので、あきらめることにしました。(^^; お忙しいところ、レスありがとうございました!
478 名前:login:Penguin [2005/08/19(金) 22:08:36 ID:ZOCJz/g6.net] /etc/syslog.conf に kern.* /dev/console とか書いてあるか?
479 名前:462 mailto:sage [2005/08/22(月) 13:16:52 ID:nvUzxFpI.net] >>470 を! /etc/syslog.conf の kern.* /dev/console が コメントアウトされています! なるほど、これを有効にすると確実に表示されそう ですねぇ。 今、ハードが客先に行ってしまったので 確認できないんですけど、ハードが戻ってきたら 試してみます。 ありがとうございます!
480 名前:login:Penguin [2005/10/22(土) 01:07:43 ID:EmofMJka.net] やべえ、カッコイイ......デバイスドライバ自分で書いてる人たち......。 Cは一通り入門程度のことは覚えたけど、遊びでstdio.h使うことばっかりで入門の領域出てないんですよね、僕。 Linuxにも入って間もないからシェルスクリプトの使い方もまともに知らないからLinuxプログラミングなんてまだまだ....。 お馬さんの本、大学の図書館にありましたねー、ぱらっと見たけどさっぱり......。
481 名前:login:Penguin mailto:sage [2005/10/22(土) 17:23:49 ID:0rh+z8HN.net] デバドラ本第3版の和訳もう出てるのね。 洋書を見つけてレジに持っていこうとするも、ふと横を見ると書棚にありました
482 名前:login:Penguin mailto:sage [2005/10/23(日) 03:10:35 ID:JQc1kDtY.net] >>472 努力でどうとでもなる まぁ頑張れ
483 名前:login:Penguin mailto:sega [2005/10/23(日) 06:34:02 ID:TRsS2wCF.net] SMPな環境で、あるAという区間とBという区間があるとき そこを走行するCPUをひとつだけにして、 かつAとBを同時に走らないようにしたい。 最速で処理できる区間ではspin_lock_irqsaveを使ってもいいけど ちょっと時間を食いたい処理のときには割り禁にしたくない/出来ない。 こういうときってセマフォを使うんだっけ? あと、誰かがそこを走行してたら、待たずにあきらめる処理も どうやるのかいまいちわからんです。
484 名前:login:Penguin mailto:sage [2005/10/23(日) 07:17:36 ID:TyUzTsLn.net] っ[MUTEX]
485 名前:login:Penguin mailto:sage [2005/10/24(月) 11:41:52 ID:y/bnKz7N.net] futex
486 名前:login:Penguin [2005/10/24(月) 21:00:03 ID:qab5z916.net] insmod hello.o が出来ません.... bash: insmod: command not found と出てしょっぱなから弾かれました....。 FC4を入れているのですが、ぐぐったところKernelのバージョンが 上ってからサポートされなくなった(?)のようなことがかいてありましたが... ちょっとわからないです..。
487 名前:login:Penguin mailto:sage [2005/10/24(月) 21:41:23 ID:nHBdU4lq.net] >>478 module-init-toolsが入っていない。 なんて事はまずありえないので、パス通っていないだけだろう。
488 名前:login:Penguin mailto:sage [2005/10/25(火) 01:26:16 ID:boXSHzJM.net] っ[/sbin/insmod]
489 名前:login:Penguin mailto:sage [2005/10/25(火) 01:50:35 ID:mHOxbI49.net] $ su - passwd: #
490 名前:login:Penguin mailto:sage [2005/10/25(火) 07:29:46 ID:gtGeQ0F/.net] モジュールに挑戦する前にやるべきことがあるだろう。
491 名前:login:Penguin mailto:sage [2005/10/27(木) 22:32:36 ID:5z/EqZNh.net] みなさん、返事が遅れてすみません....。 何日ものぞいていませんでした。 どうやら、おっしゃる通りパスが通っていないようでして、 あれから、/sbin/insmod [filename] を試してみましたがなんだか、だめだ!のようなメッセージが表示されて しまい、無理でした。Linuxのデバイスドライバのプログラミングは BIOSレベルでのデバイスドライバを書くときの参考にもなるかと 思ったのですが、やっぱりLinuxを初めてあまりたっていないのに 背伸びをしすぎたようです。出直してきます。 御回答いただいた方々、ほんとうにありがとうございました。:-)
492 名前:login:Penguin mailto:sage [2005/10/28(金) 05:51:31 ID:gqZeSigl.net] │ │ J ∩_∩ ∩_∩ ( ・(ェ)・) (・(ェ)・ ) エサクマか? 違うクマよ、 あわてて食いつくと面倒なことになるクマ。
493 名前:login:Penguin mailto:sage [2005/10/28(金) 08:53:26 ID:iWNW3bFs.net] >>483 いえいえ是非また来て下さいね>< 御町して檻ます><
494 名前:483 mailto:sage [2005/10/30(日) 22:20:06 ID:kv9dDPbi.net] やっとできました! >>167 さんのレスのようにお馬さん初版第二章の一番最初のなーんにもしない モジュールのソースに追加することでロードすることができました。 試しにカーネルソースのmodule.hを見てみるとメッセージでライセンスが無いといわれた経緯から MODULE_LICENSE (license)の定義をみつけ、それをキーワードにぐぐったらこれを追加するような 記述をみつけることができました。 カーネルバージョンが2.4.1以降からこうなったようなことがinsmodのmanページにあったので一気に解決しました。 たぶん、insmodが認識されなかったのはKterm上からやろうとしたからですね.... 嬉しい!
495 名前:login:Penguin mailto:sage [2005/10/30(日) 22:27:05 ID:dxIdqW+o.net] >>486 よくやった! とりあえず、今の状態を登山に例えるなら 登山用品店の自動ドアが開いたあたりだな。
496 名前:login:Penguin mailto:sage [2005/11/19(土) 17:12:54 ID:mr3HUTh9.net] 2.4から2.6へポーティングしててkoができるまで行きました。 chrdevなんですけどudevの仲間に入る方法がわかりません。 2.4のころのように直接的にmknodしてinsmodするものなのでしょうか。
497 名前:login:Penguin [2005/11/24(木) 19:13:51 ID:tUhrvxEF.net] ageようよ。
498 名前:login:Penguin mailto:sage [2005/11/25(金) 02:45:31 ID:Y8mPXznM.net] 質問なのですが、回路の方は勉強しておられますでしょうか?
499 名前:login:Penguin mailto:sage [2005/12/08(木) 03:07:19 ID:B0ejvBgu.net] ちょっと質問させて下さい。 ノートパソコンを使っているんですが、マイクとスピーカーの位置が近いのでサウンドドライバの 読み込み時からサウンドミキサーが起動して音量設定するまでの間にハウリングしたりするんです。 そこで、サウンドドライバ読み込み時にマイクをミュートにしたいと考えたのですが、 例えばドライバの中にマイクの初期音量を0にするコードを追加したりするようなことは可能なんでしょうか? # スレ違いでしたら誘導お願いします。
500 名前:login:Penguin [2005/12/08(木) 10:11:04 ID:j53o+rA9.net] ageようよ。
501 名前:login:Penguin [2005/12/11(日) 18:47:51 ID:rh+AeURO.net] はじめまして。 Windows対応のRS232C->USB変換ケーブルを使って、スイッチャを LINUXのPCで制御しようとしているんですが、そもそもドライバを 自分で作る必要があるのでしょうか? LINUXの環境はOSがRED HAT 9でカーネルは2.4です。 もしくは必要かどうかを確認する方法ってあるのでしょうか? ご存知の方がいらっしゃいましたら、答えていただけないでしょうか? よろしくお願いします。
502 名前:login:Penguin [2005/12/11(日) 21:37:52 ID:ZmBeQHZx.net] >>493 自動認識されないか?? suse10だと自動で使えた けどBreak信号遅れなくてヒデブだった
503 名前:493 [2005/12/13(火) 02:44:01 ID:bCmTAm2t.net] >>494 お返事ありがとうございます。 /var/log/messagesでログを見たら、新しいUSBデバイスが認識できている っぽいことが書かれてました。 たぶんRS232C->USB変換ケーブルは認識できてると思います。 で、早速プログラム組んでスイッチャに信号を送ってみたんですが、 これがうんともスンとも言わなくて。 もしかして変換ケーブルだけ認識しててスイッチャは認識していないかも って考えたのですが、シリアル通信だから信号を送るだけなら送れますよね?
504 名前:login:Penguin mailto:sage [2005/12/13(火) 21:07:28 ID:sg6goQTn.net] /dev/ttyUSBの読み書き許可がなかったよ
505 名前:色情前世鑑定士 mailto:sage [2005/12/13(火) 23:49:52 ID:xAfc4hOf.net] >>495 ボーレートとかあってますよね? sttyとか使って動作中のUSBシリアルの各設定を 観察・設定してみるといいかもしれません
506 名前:login:Penguin [2005/12/17(土) 23:06:34 ID:oosooT9i.net] >>496 ,497 助言ありがとうございます。 パーミッションに関してはchmod 666を実行したので、大丈夫だと思います。 ボーレート他の初期設定は、少し自信がないのですが、他のシリアル通信 のプログラムを参考にして一通りプログラム内で設定しています。 sttyで確認するというのは知らなかったので、早速やってみたいと思います。 ありがとうございます。
507 名前:login:Penguin mailto:sage [2006/01/28(土) 02:19:52 ID:eIqcEw8I.net] 馬本買った記念age
508 名前:login:Penguin [2006/01/28(土) 02:22:46 ID:eIqcEw8I.net] ageて無かった…orz
509 名前::login:Penguin [2006/01/28(土) 13:24:51 ID:z02En7Mn.net] tky007lip10.iij.net [210.130.172.193]
510 名前:login:Penguin [2006/02/06(月) 00:56:30 ID:gxgsnq8Z.net] age
511 名前:login:Penguin mailto:sage [2006/03/19(日) 20:02:53 ID:wmRM5297.net] www.doodoo.ru/image-2006/03-16-yeticrab.jpg
512 名前:login:Penguin mailto:sage [2006/03/21(火) 02:41:04 ID:wxAXo3DG.net] SMPプログラミングの入門ページとかありませんかね? どちらかというとAの処理をCPU0に割り当ててBの処理を1に って感じで分けながら処理するタイプのプログラミングなので ASMPのほうがよいのですがこのような話題はどこで聞けばよいのでしょうか
513 名前:login:Penguin [2006/03/30(木) 20:19:25 ID:P2MixPUa.net] なんか誰も見てないような気もするけどちょっと質問 Redhat ES4(kernel 2.6..9-11 x86-64) CPU Xeon 2.8G(HT-on EM64T) メモリ4GB な環境で、SCSI Low level driverを書いてるんですが、 物理メモリ4GBしかないのに、SCSI Mid levle driverから 渡されてくる転送アドレス(物理アドレス)が4GBを超えた アドレスが渡されて来ます。 当然メモリ未実装エリアのアドレスなので転送しようにも 出来ない訳でSCSIカードが転送しようとしてエラーとなり ます。 pci_set_dma_msakに指定している値は、SCSIカードがサ ポートしてるアドレス範囲の40bitを指定しています。 これを32bitマスクにすると4GBを超えるアドレスは来な くなるんですけど、もしかしてpci_set_dma_msakて実装メ モリ量も気にしなければいけないんでしょうか? 馬本見てもそんな事書いてないし。たんにハードウェアの アドレス範囲を宣言するだけと認識してるんですけど。 何方かご存知の方居られたらご教授願います。
514 名前:login:Penguin mailto:sage [2006/03/31(金) 11:41:12 ID:zMWwd0XE.net] 適当に書いてみる。 他のドライバ見たらわかるけど、実装メモリは気にしない。 pci_dma_syncなんたらが失敗するの?
515 名前:login:Penguin [2006/03/31(金) 21:18:57 ID:OpI/WZIP.net] おお見てる人がw 実装メモリはカーネルが握ってるから本来気にする必要が無いのは 分かってるんですが、そのカーネルから来るアドレスが実装容量を超 えたアドレスを通知してくるので悩んで降ります。 pci_dma_syncでなくpci_map_sgで作られたスキャッタ/ギャザーリスト の中の物理アドレスが未実装領域のアドレスを指してる感じですね。 pci_set_dma_maskで32bitマスク(0xffffffff)してやればpci_map_sgで 作られたスキャッタ/ギャザーリスト内のアドレスは4GB未満のアドレ ス範囲で収まる感じです。(当然といえば当然) それを40bitマスク(0xffffffffff)にすると、実メモリ4GBしか無いにも 関わらず32bit以上、40bit未満のアドレスがスキャッタ/ギャザーリス トに含まれてしまいます。 カーネルのバグを疑い出して、カーネルソース追い始めた所でなの で実際にアドレス作り出す所まではまだ追いきれて無い状態です。 ご指摘の通り他のSCSI系ドライバのソースも参考にしてますが、実 装メモリなんて気にして無いしなんとも不可解…。 元々Solarisのドライバ作ってたんだけど、Linuxは今回初でかなり困っ てる状態ですorz
516 名前:login:Penguin mailto:sage [2006/03/32(土) 02:19:11 ID:9G03KeUN.net] また別の人が適当に書いてみる。 hugemem使ってみては?
517 名前:login:Penguin mailto:sage [2006/03/32(土) 10:42:43 ID:afhcBPMx.net] hugememってi386じゃなかったっけ? x86_64で4G載ってるって事は、IOMMUとか関係あるのかな。 結局virt_to_bus(pci-nommu.c)かvirt_to_phys(pci-gart.c)呼んでるから、 scatterlistのpageが期待しない値なんでしょうけど、そこら辺調べたらいいのかな。 ドライバいじったことはあるけど、書いたこと無いので適当です。
518 名前:login:Penguin mailto:sage [2006/03/32(土) 10:47:55 ID:shKEnT0S.net] 似たようなドライバの中身を調べてみればすぐわかりそうなものだが
519 名前:login:Penguin mailto:sage [2006/03/32(土) 15:12:47 ID:afhcBPMx.net] >>510 俺もそう思って、見たけどわからなかったw SCSI側からと、PCI側から見たら、よくわからなくなった。。 bioがよくわからん。 pci_set_dma_maskって要するにbounceするかどうかなのか? あとは、ページ確保するときのDMA/DMA32の切り分け。
520 名前:login:Penguin [2006/03/32(土) 16:46:33 ID:p6EHT8/a.net] うぉレスが増えてる。 >>508 hugemem は、>>509 が指摘の通り、x86_64では無いですね。 ただこのドライバは、一つのソースでRedhat ES4の 32bit Uni-processer/ SMP/hugemem kernelとx86-64 kernelの4種類サポートでして、実装メモリ 12GBのマシンでhugememカーネル使ってる分にはアドレスは正常な値が 返って来てます。 hugemem kernelとx86-64 kernelではDMAアドレスは64bit幅で来るのでこ の二つのカーネルの時は処理(アドレス計算とか)は共通にしてます。 >>509 正にそうです。scatterlistに入ってるpageが明後日の所を指し示してるので、 そのままSCSIカードに送るとカード上のIOPのファームがアクセスに行くとメ モリが無いのでメモリアクセスエラーを検出します。 >>510 SCSIカードと言うか実はRAIDコントローラでして、カード上にPCI-PCIブリッ ジが乗っかっててIOPとSCSIコントローラが載ってるカードです。 カード−ドライバ間はI2Oで通信してて、近い奴としてはmagariadとかqla1280 当たりなんですよね。他にも色々見てるんですが違いはそうは無い感じ。 >>511 bioはいまいち良く分からないですね。 ページ確保の時のDMA/DMA32て、GFP_DMA/GFP_DMA32フラグの事でし ょうか? 今使ってるカーネルをみるとGFP_DMA32が未定義でして、kernl-2.6.14とか 2.6.15とか見ると定義されてるんですよね。 なんかその辺も絡んでるのかなと気にはなってはいました。 皆さんアドバイスありがとうです。 もう少しカーネルソース見て来ます。
521 名前:login:Penguin mailto:sage [2006/04/04(火) 08:20:23 ID:0xn4pI8o.net] 気になるから、どうなったか知りたいです。
522 名前:login:Penguin mailto:sage [2006/04/04(火) 13:11:55 ID:p7vmOtaT.net] >>504 sched_setaffinity(2)
523 名前:login:Penguin mailto:sage [2006/04/06(木) 22:28:49 ID:Mnqgo3eJ.net] >>513 まだ色々と追っかけてる途中です。 とりあえずPCIドライバ周りから追っかけ中です。 PCIドライバを見た限りでは、pci_map_sgすると中でdma_map_sg 呼び出しててその中見てもあんまり大したことしてなさそうですね。 やはりbio周りも見ないと駄目なのかも。 もうちとかかりそうですが、わかり次第、結果をお知らせします。
524 名前:505 mailto:sage [2006/04/08(土) 14:24:03 ID:+mDmSXuo.net] 原因わかりました。 結論から言うと、pci_map_sg()で作られるSGリストのアドレスは正常でした。 問題なのはpci_map_single()で出てくるアドレスが、低位メモリだとカーネル 論理アドレスを返し、高位メモリだとカーネル仮想アドレスを返してるのが、 原因でした。 高位メモリだとページをダイナミックに確保されるため、物理アドレスとペー ジが1:1でマッピングされないので、pci_map_single()だとvirt_to_physしてる だけなので使えませんね。 なのでpci_map_pageで確保してやれば問題は消えました。 SGリストに変なアドレスが入ると言ってましたが、カードのファーム側で受 け取ったリストを見てたのですが、カード内でドライバから受けた転送アドレ スをカード内部のバッファに結びつける為にファームが独自にSGリストを 再構成しており、そのリストがpci_map_sg()で作られた物と勘違いしてまし た。OTL 色々アドバイスありがとうございました。
525 名前:login:Penguin mailto:sage [2006/04/08(土) 16:09:33 ID:MBAxFSYD.net] >>516 解決おめでとうございます。 一般的に使えそうなものならまたどこかで公開してくださいな。
526 名前:login:Penguin mailto:sage [2006/04/10(月) 22:36:55 ID:C69QC/MM.net] >>516 よかったよかった。 私もソース読んで少し勉強になったよ。 ネットワーク系しかいじったこと無かったから。
527 名前:505 mailto:sage [2006/04/10(月) 23:00:56 ID:9eFrvNz6.net] >>517 >>518 ありがとうございます。 馬鹿高な価格の独自のカード用のドライバで有用性はかな り低いです。。。一応GPLなんですが、カード買わないと非 公開という阿保な方針らしいので、一般公開は難しそうです。 Linuxでの初開発で手探り状態でしたが、お蔭様で何とか目 処が立ってきた感じです。まだ細かな問題がありますが…。 Linuxでの開発はカーネルや他のドライバソース読まなけば 資料が少
528 名前:ない所がキツイですね。 まぁコード上のテクニックとか色々勉強になる部分は多いけ ど、納期のある仕事でやるのは大変ですね。 流石UNIX板だけあって、建設的なスレで助かりました。 [] [ここ壊れてます]
529 名前:login:Penguin mailto:sage [2006/04/10(月) 23:42:28 ID:Cs5Rh9+Y.net] >>519 > Linuxでの開発はカーネルや他のドライバソース読まなけば > 資料が少ない所がキツイですね。 ちょっと教えてください。 Linuxより資料が多いOSってなんのことを指してますか? 自分は主にLinuxの開発に携わってますが、いつもオープンソースのありがたみを 感じながらやっているので、Linuxが資料が少ない、というのは意外です。
530 名前:login:Penguin mailto:sage [2006/04/11(火) 00:42:17 ID:KjDgNH9L.net] OSによっては中身がさっぱりわからないままドライバ開発しなきゃいけない事もあるしな。 つーか、そっちのほうが多そう。
531 名前:login:Penguin mailto:sage [2006/04/11(火) 00:47:03 ID:rZUiZ4e7.net] >>520 NetBSDはそういう部分のmanpageが充実してるとか聞きますな。 linuxはmanpage書き上げたら実装が別物になってたなんて笑えん状況がありそうだなあ…
532 名前:login:Penguin mailto:sage [2006/04/11(火) 00:57:41 ID:9nKANwAS.net] そこでmain treeにマージですよ。 main tree内の変更はたいていは面倒をみてくれる。
533 名前:login:Penguin [2006/05/11(木) 18:07:51 ID:PmwpTb/Y.net] ある内蔵デバイスのドライバでPCの機種毎に処理を変えなければいけない部分が あり、ユーザ負担を減らすためにドライバ側で自動判別したいと思っています。 機種は違うのにSubvendorIDやSubdeviceIDまで何故か一致しているので、SMBIOS のDMI情報を参照して機種を判別したいのですが、これって可能なんでしょうか? そんなやり方は行儀が悪いとか、他にもっとまともなやり方があるとか何でも 構いませんので、どうかご教示をよろしくお願いします。m(__)m
534 名前:好色少年のススメ mailto:sage [2006/05/11(木) 23:43:06 ID:Uu/mTCgT.net] 確かに行儀はよくないかも 新しいハードが出るたびにパッチ提供とか考えたら面倒だし たとえそれが自社ハードだとしてもバージョンアップあるだろうし 判別はユーザランドで行う方が気分も楽だし処理も楽だしバグも少ない
535 名前:login:Penguin mailto:sage [2006/05/26(金) 20:11:11 ID:YiUMorw/.net] ttp://lkml.org/lkml/2006/5/24/238
536 名前:login:Penguin [2006/08/20(日) 01:06:14 ID:BobpEKad.net] カーネル層のモジュールのテストプログラム を作ってるんですが、カーネル層でinit_moduleや ioctlからスレッドを起こして daemonのように 動作させることってできるんでしょうか? Linuxデバイスドライバを読んでもスレッドを 起こすような処理は載っていないようなので 参考書籍だけでも教えていただけるとありがたいです。
537 名前:login:Penguin mailto:sage [2006/08/20(日) 11:29:13 ID:EWXtKjUy.net] >>5
538 名前:27 kernel_thread daemonize [] [ここ壊れてます]
539 名前:login:Penguin mailto:sage [2006/08/20(日) 20:55:18 ID:bg2sTV9e.net] というか、普通に載ってるよね
540 名前:login:Penguin [2006/08/24(木) 12:55:11 ID:6WITQjoc.net] そいや、最近のノートPCには指紋センサーがあるけど あれはハックできるものなの?
541 名前:login:Penguin mailto:sage [2006/08/24(木) 13:34:05 ID:wKY4BjAS.net] >>530 OSM 8月号に記事載ってたよ。 shop.sbcr.jp/bm_detail.asp?sku=1016200604
542 名前:login:Penguin mailto:sage [2006/08/25(金) 00:34:04 ID:CPHGcnDi.net] >>531 せんきゅー!
543 名前:login:Penguin mailto:sage [2006/08/26(土) 07:37:08 ID:F4NpQAPn.net] >>529 すみません。ページご存知でしたら教えてください。 第3版持ってます。
544 名前:login:Penguin mailto:sage [2006/10/04(水) 21:49:48 ID:EGTQjLn1.net] すみません、どなたかわかる方教えてください。 現在、XFree86でグラフィックドライバを作ってます。チップは独自のものです。 バス等に接続されておらず、メモリマップドI/Oでアクセスします。 一応画面は出たのですが、1024*768だと縦が半分しか表示されず、 (縦に圧縮される感じ。マウスカーソルが縦につぶれている) 1280*1024だと画面が横に5個くらい表示されてしまいます。 使用しているチップは1ライン4096byte固定なので、解像度に応じて次のラインを 描画するアドレスを更新しなくてはなりません。 カーネルのFBドライバだとline_lengthとかの変数に設定してあげればうまいこと 描画してくれるのですが、XFree86の構造体にはそういった変数が見当たりません。 カーネルFBドライバのline_lengthとかに相当するものはどれでしょうか? 縦に圧縮されるのと画面が5個くらい表示されるのは、別問題な気がしてます。 今、手元にソースがないんですが、InitをするときにvirtualYを*2してやると縦が一見 正常っぽく表示されました。カーソルとかが縦につぶれたままなので、根本対策には なっていません。
545 名前:Mr.名無しさん [2006/10/09(月) 16:36:24 ID:OGKR436u.net] ■■■■■■■■■■■■■■■■ ■ ■ 違う板にコピペすると、四角の枠の中に ■ ■ メッセージとURLが現れる不思議な絵。 ■ ■ ■ ■ (その仕組みがリンク先に書いてある) ■ ■ ■ ■ この原理を応用すると、まったく新しい ■ ■ コピペが作れる予感。 ■■■■■■■■■■■■■■■■
546 名前:login:Penguin mailto:sage [2006/11/05(日) 18:18:15 ID:j6ZWju7f.net] >>534 グラフィックチップのモード設定を間違えている予感
547 名前:login:Penguin mailto:sage [2006/12/14(木) 22:35:16 ID:JyAlagq8.net] すみません どなたか助けて下さる方はいらっしゃらないでしょうか? 当方PCIデバイスのドライバをLinuxデバイスドライバ読みながら 作成しております。 今DMAを用いてread,writeさせようと思っているのですが、 うまく転送ができておりません。 DMA転送の関数としては dma_buff = kmalloc( count, GFP_KERNEL | __GFP_DMA) bus_addr = pci_map_single( pci_dev, dma_buff, count, direction ); flags = claim_dma_lock(); disable_dma(channel); clear_dma_ff(channel); set_dma_mode(channel, mode); set_dma_addr(channel, bus_addr); set_dma_count(channel, count); enable_dma(channel); release_dma_lock(flags); てな感じです。 get_dma_residueで転送できてるかどうかみてるのですが まったく転送されてないみたいです。 DMAコントローラのレジスタの設定とかは ほかに何かいるのでしょうか。 ちなみにターゲットのPCはPen3 800MHZ チップセットは815です。 どなたかお知りの方いらっしゃったら お願いします。
548 名前:login:Penguin mailto:sage [2006/12/15(金) 11:02:30 ID:Qc0JIFW5.net] >>537 見ているものがまったく違っているような気がしますが。 PCIでbus master転送したいんじゃないの?
549 名前:537 mailto:sage [2006/12/15(金) 15:20:46 ID:NJleqqJR.net] おお、早速のレスありがとうございます。 DMA転送するにはチップセットの中の8237DMAコントローラをいじればいいって思ってました。バスマスタについて少し調べましたが、IDEのDMAもバスマスタになるんですね、知りませんでした。 となるとこのバスマスタはどうやればいいのでしょうか?参考になるものでもいいので、教えてください、お願いします。
550 名前:login:Penguin mailto:sage [2006/12/15(金) 23:40:00 ID:72pQobUh.net] ターゲットとなるPCIデバイスの仕様がわからなきゃデバイスドライバは書けないよ せめて型番だけでも出してくれ
551 名前:login:Penguin mailto:sage [2006/12/16(土) 18:42:01 ID:wkeveW0d.net] ドライバというか、モジュールの話なんですけど スレッドを使ったせい?なのか、psすると 3635 pts/0 R 0:00 modprobe hoge と残るんですが、これは出ないようには出来ないものなんでしょうか? 勿論 rmmod hoge すると消えるんですけど。
552 名前:537 mailto:sage [2006/12/17(日) 19:34:20 ID:BtOAund7.net] ターゲットのデバイスは内製のボードなのですよ orz となると やっぱボード自体を作った人に聞いたほうがいいのかな?
553 名前:login:Penguin mailto:sage [2006/12/17(日) 19:50:10 ID:pl1Ns6BC.net] チップのレジスタ仕様と、制御のシーケンスがわからないとドライバは書けないよ。
554 名前:login:Penguin mailto:sage [2006/12/17(日) 20:36:37 ID:6E+xGodr.net] >>542 当然聞くべきなのですよ
555 名前:login:Penguin mailto:sage [2006/12/17(日) 22:08:40 ID:SVqrrgVr.net] チップも内製なのか? だったらデバイスドライバもチップ開発チームが書くものだよな 少なくともサンプルコードの類は書くはずだ そうでなくて市販のチップを使ってPWBAだけ内製したのなら 使用したチップのデータシートなりプログラマーズガイドなりを読めばいいだけの話
556 名前:537 mailto:sage [2006/12/18(月) 01:17:23 ID:5wopQO2S.net] ほぼ内製だったと思います。 ちょっと月曜日会社いったら、聞いてみようと思います。 大変参考になりました、ありがとうございました。 ところで、これは単なる質問ですが、 マザボのチップセットにある8237とかの DMAコントローラは古いし遅いみたいだから PCIとかIDEとかに使われてないみたいだけど、 Pen3 800MHzとかでも PIOのが早いの?
557 名前:login:Penguin mailto:sage [2006/12/18(月) 07:35:08 ID:a8xYea1H.net] 最近のデバイスで言うDMAはバスマスタDMAのことだよ。 バスマスタってのはデバイス側が主導権とってバスを制御して CPUの頭越しにメインメモリにデータ出し入れすることだ。 そのためにはデバイスにバスをのっとってデータ転送しろって命令を CPUからデバイスに発行する必要がある。 その手続きを知るためにレジスタなりデータシートなりを調べろって みなさん言ってるんだよ。
558 名前:537 mailto:sage [2006/12/19(火) 00:01:59 ID:2Sv0wv+g.net] なるほろ、大変勉強になりました。 ハード屋さんからマニュアルゲットして がんばってみます。
559 名前:login:Penguin [2006/12/19(火) 23:53:27 ID:g20RCuxU.net] >>537 つ ttp://www.oreilly.co.jp/books/4873112532/
560 名前:login:Penguin mailto:sage [2006/12/27(水) 05:38:58 ID:krfJbXj5.net] すみません ドライバでDMA転送するための連続したメモリ領域(64MB)を確保したいのです。 kmallocで確保可能な連続したDMA領域は最大128kB ということはネットで検索すると出て来たのですが、 どうすればドライバのDMA転送で利用可能な128kBを超えるの連続領域を確保出来るでしょうか? OSはlinuxカーネル2.6です。 ご存じの方おられましたら御教示戴きたくよろしくお願い致します。
561 名前:login:Penguin mailto:sage [2006/12/27(水) 10:51:31 ID:mQ5aQPBa.net] >>550 とりあえずそのふざけた石を投げ捨てれ。 やるならalloc_pagesだろうなあ。そのサイズで連続領域を
562 名前:ネ単に確保できるとは思えんが。 ついでに書いておくと128KByte制限は8237の呪いなのでPCIならそんなものはない。 [] [ここ壊れてます]
563 名前:login:Penguin mailto:sage [2006/12/27(水) 12:43:43 ID:krfJbXj5.net] 投げ捨てぇー…れないorz >>551 早速ありがとうございます。 検索してても思ったのですが、 なんか連続領域"64MB"っていうのは常識外れっぽいのですね… とはいえ組込み系で使った独自ロケットI/OのPC向け転用の必要があり、 石を投げ捨てる訳にもいかず今回の質問とあいなりました。 alloc_pages、試してみます!! 回答感謝いたします。 センキュー!!!!
564 名前:login:Penguin mailto:sage [2006/12/28(木) 02:29:39 ID:4Oi09t3r.net] かなり強引だけど、カーネルオプションで使用メモリ量に制限かけといて、 未使用領域を作った上でそこ使っちゃえば?
565 名前:login:Penguin mailto:sage [2006/12/28(木) 12:33:40 ID:vc2Jrznf.net] >>553 MMUの面倒は誰が見るですか? 面倒な世の中になったのう… 物理アドレスで完結してりゃなにも考えなくていいのに。
566 名前:login:Penguin mailto:sage [2006/12/29(金) 09:28:41 ID:JbqPlaTm.net] >>553 アドバイスありがとうございます。 ちょっと恐いですが、検討してみます。 >>554 MMU…よく判ってません…勉強してきます。 ご指摘ありがとうございます。 いろいろレスありがとうございました。 スレの皆様が良い年越しを迎えられますように!! それでは、また来年!!
567 名前:login:Penguin mailto:sage [2006/12/29(金) 10:44:35 ID:PkRb73AX.net] RocketIOってことはXilinxのFPGAだよな だったら128KBのブロックのアドレスポインタリストを渡すと 自動的にリスト通りブロックをたどって転送するように FPGA回路を再設計するのがまっとうな手段だろうな デバイスドライバやOS設定の変更ではどうにもならんと思う
568 名前:login:Penguin mailto:sage [2006/12/30(土) 00:07:40 ID:SZb58Bld.net] カーネル組込みで、ドライバ初期化のときなら確保できそうな気もするな。 開放したら二度と確保できなくなりそうだが。
569 名前:login:Penguin mailto:sage [2007/01/01(月) 22:05:23 ID:uXbHjsPd.net] 明けましておめでとうございます。 さらにレス&アドバイスありがとうございます。 うー勉強不足。知らないこと多過ぎますね!ハードル高いです orz 安定化まで考えると更にハードル上がりそうですが、ハード側とも相談してみます。 それでは本年もよろしくお願いいたします!!
570 名前:login:Penguin mailto:sage [2007/01/19(金) 00:41:46 ID:xhnZtOc/.net] 皆様に聞きたいのですが 当方Linux 2.6カーネルの元でドライバの開発を行っています。 起動してからinsmodでインサートするタイプのモジュールを作っています。 カーネルをフリーズさせたりして固まらせてしまって、やむなくリセットボタンを 押す事が多々あるのですが、その際にファイルシステムのチェックが 強制的に行われてしまい、これでかなりの時間をロスしてしまいます。 何とかこのファイルチェックを飛ばして時間の短縮を行う方法はないでしょうか? VMwareとかの仮想マシンを使えばいいのかもしれませんが、 特殊命令を使っておりますので、仮想マシンがその命令をサポートしていないために 導入できません。
571 名前:login:Penguin mailto:sage [2007/01/19(金) 02:15:30 ID:VcfRHkiI.net] >>559 mount -o remount,ro / とかやって、書き込み不可にしてから遊べばよくね?
572 名前:login:Penguin mailto:sage [2007/01/19(金) 08:04:16 ID:/YcMJPuk.net] /etc/fstabの6番目のフィールドの値を0にする。man fstabしてみそ。 tune2fsで-c 0とかもしておいたほうがいいかも。
573 名前:login:Penguin mailto:sage [2007/01/19(金) 20:24:37 ID:xhnZtOc/.net] >>560 でもそれをやると、kmallocをGFP_KERNELで使ったときに メモリがスワップアウトしたらまずいことになりませんか? >>561 やってみました なんかファイルチェックをしなくなったことで壊れそうでもありますが やっぱり我慢してチェックしたほうがいいでしょうか...
574 名前:login:Penguin mailto:sage [2007/01/20(土) 19:48:34 ID:3aq4dRUa.net] >>562 /だけ守ればいいので、なりません。
575 名前:login:Penguin mailto:sage [2007/01/21(日) 01:23:20 ID:QaYT7DDq.net] >>563 ああそうか、swapファイルはswapパーティションですもんね ありがとうございます
576 名前:login:Penguin mailto:sage [2007/01/27(土) 11:05:03 ID:4J9B+fMX.net] 評価機はネットブートさせてNFSroot稼動させればいつ飛んでも 大丈夫な環境にできるんじゃない?
577 名前:login:Penguin [2007/02/05(月) 06:03:38 ID:9i1Bwf6u.net] 通常、Linuxのドライバをインストールする時はカーネルにパッチを当ててカーネルごと コンパイルしなければいけないけど、Windowsのようにカーネルソース無しでドライバを コンパイルしてインストールできるようにする方法ってあるの?
578 名前:login:Penguin [2007/02/05(月) 06:26:04 ID:9i1Bwf6u.net] ja.wikipedia.org/wiki/%E3%83%A2%E3%83%8E%E3%83%AA%E3%82%B7%E3%83%83%E3%82%AF%E3%82%AB%E3%83%BC%E3%83%8D%E3%83%AB には 現在のカーネルではモジュールをカーネルの構築状態に依存する事なく追加できると 書いてあるけど、カーネル側でインターフェースが変更になった場合は旧ドライバは 使用できなくなるんじゃないの?それとも、カーネル側で旧インターフェースが温存されるの? あと、「カーネル側に受け皿となるインターフェースがモジュール毎に用意されている必要がある」 Linuxはどのバージョンまでなの?
579 名前:login:Penguin mailto:sage [2007/02/05(月) 06:56:37 ID:Zi/ATtvA.net] >>566 いまはそんなことしなくていいよ insmod rmmodで動的にドライバを挿入したり削除したりできる
580 名前:login:Penguin mailto:sage [2007/02/06(火) 01:26:43 ID:j3mwrUGC.net] いやぁソースはいるだろ。
581 名前:login:Penguin mailto:sage [2007/02/06(火) 08:59:25 ID:jQKQh5/W.net] ソースはいるけどカーネルのリビルドはいらない
582 名前:login:Penguin mailto:sage [2007/02/06(火) 10:27:34 ID:Rm04tDsq.net] いやぁリビルドは途中までいるだろ。
583 名前:login:Penguin [2007/02/10(土) 16:03:43 ID:XWBlzb1u.net] 初歩的な質問ですがよろしいでしょうか 私はlinuxカーネル2.6.13のモジュールでhello worldのプログラムを組込みたいのですが上手くいきません gcc -c module.c -Wall -Wstrict-prototypes -O -pipe -m486 この様にコンパイルしたのですがカーネルのソースコードに構文エラーがあるようでコンパイルが通りません カーネルのソースコードを見てみても構文エラーらしき物はみられませんでした どうすればコンパイルが通るでしょうか エラーメッセージとソースコードを書いておきます ソースコード sakuratan.ddo.jp/uploader/source/date32474.c エラーメッセージ sakuratan.ddo.jp/uploader/source/date32475.txt
584 名前:login:Penguin mailto:sage [2007/02/10(土) 17:14:52 ID:d+hexa9D.net] >>572 普通はMakefile書くわな
585 名前:login:Penguin mailto:sage [2007/02/10(土) 17:47:20 ID:a+8l3AD+.net] Makefileに obj-m += module.o って書いて make -C /usr/src/linux M=$PWD modules
586 名前:login:Penguin [2007/02/10(土) 19:18:09 ID:XWBlzb1u.net] >>543 そうみたいですね 私のみた資料では、そうコンパイルする様に書いてあったのですが結構古い奴だった のでしょうか >>574 本当にありがとうございました。 その方法で無事にモジュールを作れました 感謝感謝
587 名前:542 [2007/02/10(土) 19:55:09 ID:XWBlzb1u.net] .koってファイルが出てきたらからinsmodにかけてみたら insmod: error inserting 'module.ko': -1 Invalid module format って言われワラタ turbo linuxなんて微妙なの使ってるせいなんですかねこれは.....
588 名前:542 mailto:sage [2007/02/10(土) 20:03:22 ID:XWBlzb1u.net] 今までsage忘れてたごめん
589 名前:login:Penguin mailto:sage [2007/02/10(土) 20:06:01 ID:791EznrY.net] 話題提供時はage、その後はsage ってのが一番角が立たない。 正直、どうでもいいけど。
590 名前:login:Penguin mailto:sage [2007/02/10(土) 20:14:38 ID:a+8l3AD+.net] /usr/src/linux が今動いてるカーネルソースじゃないとか
591 名前:542 mailto:sage [2007/02/10(土) 21:33:23 ID:XWBlzb1u.net] >>579 そうですね 元からあったソースでコンパイルしようとすると必要なMakefileがないとかで無理 でしたから、kernel.orgから同じバージョンのコード落してきてまた設定しなし いた訳ですがそれが原因ですかね。 ディストリとかは独自の変更を加えているらしいし、また変更が加えられていない 純粋なカーネルインストールしてから出直してきます
592 名前:login:Penguin [2007/02/18(日) 23:17:11 ID:PxJoV1oA.net] すみません。kmallocで確保したメモリ領域をDMA転送するために、__paで変換して 渡してやるのと、dma_map_singleで変換して渡すのと、違いはあるのでしょうか? たとえば性能(処理効率)が違うとか? どう使い分けているのでしょうか?
593 名前:login:Penguin mailto:sage [2007/02/19(月) 10:56:01 ID:QHwPPpDN.net] UNIXTIMEを日付文字列に変換するのに なんかAPI用意されてないの? "2007/02/19 12:34:56" とかその程度のでいいんだけど。
594 名前:login:Penguin mailto:sage [2007/02/19(月) 11:19:53 ID:I/jMKPR3.net] strftime
595 名前:login:Penguin mailto:sage [2007/02/19(月) 13:52:20 ID:QHwPPpDN.net] >>583 いや、デバイスドライバ内でなんだけど、あったっけ? いや、ない。
596 名前:login:Penguin [2007/02/21(水) 07:53:48 ID:Wuryqsb6.net] Linux 2.6.16用のパッチとe2comprを同時に使いたいのだが、e2comprは2.6.10用まで しかない。カーネルとドライバが完全に分離され、カーネルバージョンが上がっても カーネル側の旧インターフェースが温存されるようになれば、ドライバの開発が停滞しても 最新のカーネルでそのドライバを使い続ける事ができる。
597 名前:login:Penguin mailto:sage [2007/02/22(木) 01:34:45 ID:I6i5DnCh.net] そのカーネル側のABI決めようぜ話はLinusに一蹴されてるんじゃなかったけ?
598 名前:login:Penguin [2007/02/22(木) 09:14:42 ID:y9d4aAAQ.net] >>586 カーネル側のドライバとして旧バージョンのカーネルのモジュールをロードできる ラッパーを作成して、カーネル側インターフェースが変更されるたびにラッパーを 更新していく手もあるべ。
599 名前:login:Penguin [2007/02/22(木) 09:16:48 ID:y9d4aAAQ.net] ラッパーにx86エミュレーションを追加するとザウルスでWindowsのドライバを読み込めたりもする。
600 名前:login:Penguin mailto:sage [2007/02/22(木) 22:34:24 ID:I6i5DnCh.net] つ NDISwrapper
601 名前:login:Penguin mailto:sage [2007/02/23(金) 00:44:11 ID:cxn/yRhr.net] つcapative ntfs
602 名前:login:Penguin [2007/04/03(火) 00:09:41 ID:3ycIJVku.net] <linux/module.h>が無いんだけど、 デバドラ開発するには、なにかパッケージ追加しなきゃいけないの? 使ってるのはfedora6
603 名前:login:Penguin [2007/04/03(火) 00:24:35 ID:3ycIJVku.net] yum install kernel-devel してもダメだな。何が足りない?
604 名前:login:Penguin mailto:sage [2007/04/03(火) 00:41:11 ID:xSB1c0Df.net] >>591 カーネルソースそのものじゃね?
605 名前:login:Penguin [2007/04/03(火) 01:00:14 ID:3ycIJVku.net] >>593 あ、カーネルソースに有った。ありがとう。 普通、/usr/includeには入らないの?
606 名前:login:Penguin [2007/04/03(火) 01:08:21 ID:3ycIJVku.net] あと、 man printk って出ないの?
607 名前:login:Penguin mailto:sage [2007/04/03(火) 02:25:43 ID:xSB1c0Df.net] >>595 出ないんじゃよ
608 名前:login:Penguin mailto:sage [2007/04/03(火) 02:43:03 ID:GYgStP3Z.net] >>594 カーネル用ヘッダと、ユーザプログラム用ヘッダは まざるとまずいから分離されてる。だから/usr/includeにカーネル用ヘッダはふつうは無い。
609 名前:login:Penguin mailto:sage [2007/04/04(水) 00:07:01 ID:NkZt7NAi.net] /usr/include/linux に入ってないか?鳥にもよるけど。
610 名前:login:Penguin [2007/04/04(水) 00:15:23 ID:wyW6RdvI.net] カーネル用ヘッダと、ユーザプログラム用ヘッダがまざると、何でとまずいだろ。
611 名前:login:Penguin [2007/04/04(水) 00:23:08 ID:ICf0Aql0.net] 爆発しても知りません。
612 名前:login:Penguin mailto:sage [2007/04/04(水) 00:42:58 ID:IK0cizpI.net] >>598 ,>>599 /usr/include/linuxにあるのは確かにカーネルのヘッダだが、glibcをビルドするときに使った アーキテクチャ依存部分とかのカーネルヘッダ、 /usr/src/linux/includeにあるのは「現在使用中のカーネル」のヘッダファイル だよね。(間違ってたらスマソ) これらが同じだとちょっとカーネルに変更があったときとかまずくない? 最悪glibc動かなくなるときもあるかと。
613 名前:login:Penguin [2007/04/08(日) 00:07:55 ID:gmHS+Fdj.net] >>17 をコンパイルするとエラーがたくさん出るんだけど何が悪いの?? エラーの一部 ↓ /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/asm/bitops.h:244: error: expected ‘=’, ‘,’’, ‘asm’ or ‘__attribute__’ before ‘int’ from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/thread_info.h: 20, from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/preempt.h:9, from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/spinlock.h:49, from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/module.h:9,
614 名前:login:Penguin mailto:sage [2007/04/08(日) 00:09:38 ID:2aPQfsMY.net] 脳?
615 名前:login:Penguin [2007/04/08(日) 00:10:46 ID:gmHS+Fdj.net] >>603 いや、たぶん違うと思う。 こんなのも出てる。 ↓ /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/asm/system.h:346: error: expected declarat ion specifiers or ‘...’ before ‘u8’ /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/asm/system.h:346: error: expected declarat ion specifiers or ‘...’ before ‘u8’
616 名前:login:Penguin mailto:sage [2007/04/08(日) 00:11:42 ID:2aPQfsMY.net] じゃ、頭?
617 名前:login:Penguin [2007/04/08(日) 00:12:08 ID:gmHS+Fdj.net] NGID ID:2aPQfsMY
618 名前:login:Penguin mailto:sage [2007/04/08(日) 00:15:19 ID:2aPQfsMY.net] マジレスすると、読み込むヘッダーファイルが足りないんだよ。
619 名前:602 [2007/04/08(日) 00:19:06 ID:gmHS+Fdj.net] 環境はVMWare上でfedora 6を動かしてる。 こんなのも。 ↓ /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/bitmap.h:149: error: ‘BITS_PER_LONG’ undeclared (first use in this function)
620 名前:login:Penguin mailto:sage [2007/04/08(日) 00:20:46 ID:2aPQfsMY.net] BITS_PER_LONGを定義しているファイルをさがすことだね。
621 名前:login:Penguin mailto:sage [2007/04/08(日) 00:29:38 ID:nSKp4d9I.net] なんだこのキチガイ
622 名前:login:Penguin mailto:sage [2007/04/08(日) 00:31:56 ID:2aPQfsMY.net] また、きちがいあつかいですか?
623 名前:login:Penguin mailto:sage [2007/04/08(日) 00:36:41 ID:nSKp4d9I.net] ほう「また」なんだ
624 名前:login:Penguin mailto:sage [2007/04/08(日) 00:37:31 ID:2aPQfsMY.net] で?
625 名前:login:Penguin mailto:sage [2007/04/08(日) 00:46:02 ID:nSKp4d9I.net] あらら
626 名前:login:Penguin mailto:sage [2007/04/08(日) 00:48:10 ID:2aPQfsMY.net] なにがあららなの?
627 名前:login:Penguin mailto:sage [2007/04/08(日) 00:49:12 ID:nSKp4d9I.net] 脳?
628 名前:login:Penguin mailto:sage [2007/04/08(日) 00:49:55 ID:2aPQfsMY.net] それはお互い様だろ?
629 名前:login:Penguin mailto:sage [2007/04/08(日) 00:51:34 ID:nSKp4d9I.net] 俺はその質問者じゃないんだけどねえ
630 名前:login:Penguin mailto:sage [2007/04/08(日) 00:56:35 ID:2aPQfsMY.net] お友達?
631 名前:602 [2007/04/08(日) 00:58:54 ID:gmHS+Fdj.net] もういちど、しきりなおし。 >>17 をコンパイルするとエラーがたくさん出るんだけど何が悪いの?? エラーの一部 ↓ /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/asm/bitops.h:244: error: expected ‘=’, ‘,’’, ‘asm’ or ‘__attribute__’ before ‘int’ from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/thread_info.h: 20, from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/preempt.h:9, from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/spinlock.h:49, from /usr/src/kernels/2.6.20-1.2933.fc6-i586/include/linux/module.h:9,
632 名前:login:Penguin mailto:sage [2007/04/08(日) 01:03:19 ID:z/motjJL.net] >>620 ヒント:>>17 のかかれた日付に注目。
633 名前:login:Penguin mailto:sage [2007/04/08(日) 01:11:57 ID:nSKp4d9I.net] 2.6以降はモジュールのフォーマットが変わって、 .oじゃなくて.koになってるからね。 ビルドの仕方も面倒になって...俺もよくしらない。
634 名前:login:Penguin mailto:sage [2007/04/08(日) 01:12:30 ID:2aPQfsMY.net] linux/compiler.hかな?
635 名前:login:Penguin [2007/04/08(日) 02:07:26 ID:gmHS+Fdj.net] >>621-622 情報が古いのか。。 でも、ウェブにあるサンプルは大体同じような感じなんだけど。 2.6用モジュールhello worldってないのかな。
636 名前:login:Penguin mailto:sage [2007/04/08(日) 02:24:54 ID:z/motjJL.net] >>624 2.6 kernel hello world でぐぐればすぐ出てくるぞ。
637 名前:login:Penguin [2007/04/08(日) 02:28:17 ID:gmHS+Fdj.net] >>625 なかなか無いよ。たとえばどこ? すぐ出てきたなら、ここに貼って。
638 名前:login:Penguin mailto:sage [2007/04/08(日) 02:34:41 ID:n+CzrFXh.net] #include <linux/init.h> がいるみたいね
639 名前:login:Penguin [2007/04/08(日) 02:41:10 ID:gmHS+Fdj.net] Makefileの書き方も変わってるみたいだね。 uguisu.skr.jp/algo/device.html のやり方でうまくいった。
640 名前:login:Penguin mailto:sage [2007/04/08(日) 03:09:43 ID:z/motjJL.net] こことかな。 www.si-linux.co.jp/wiki/silinux/index.php?Linux-2.6%A5%C7%A5%D0%A5%A4%A5%B9%A5%C9%A5%E9%A5%A4%A5%D0
641 名前:login:Penguin [2007/04/12(木) 01:42:14 ID:MCdnGupN.net] aio_write()でユーザ空間の登録だけして、後からハードウェア割り込みでその登録したユーザ空間にアクセスすることってできる? やり方教えて。
642 名前:login:Penguin mailto:sage [2007/04/12(木) 02:34:41 ID:HoyZz9hB.net] >>626 自分はこれが良かった。 www.freesoftwaremagazine.com/articles/drivers_linux
643 名前:login:Penguin [2007/04/15(日) 01:56:51 ID:YIKahQqf.net] タスクレットの中でcopy_to_user()、copy_from_user()を使えますか?
644 名前:login:Penguin mailto:sage [2007/04/17(火) 02:52:55 ID:IoB9zeVk.net] 試してみろ!! callした瞬間ぼくの丸太のような足蹴りが君の股間をつぶす それでもいいのなら!
645 名前:login:Penguin [2007/04/27(金) 00:53:37 ID:6m6QKylD.net] プログラムで確保したメモリの物理アドレスを知る方法と、その物理アドレスを使ってメモリにアクセスする方法を教えて。
646 名前:login:Penguin mailto:sage [2007/04/27(金) 06:02:05 ID:DTYmU0pC.net] www.linux.or.jp/JF/JFdocs/kernel-docs-2.2/IO-mapping.txt.html
647 名前:login:Penguin mailto:sage [2007/04/27(金) 06:03:05 ID:DTYmU0pC.net] www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-4.html
648 名前:login:Penguin [2007/04/27(金) 08:23:06 ID:6m6QKylD.net] ユーザプログラムで確保したメモリの物理アドレスを知る方法と、その物理アドレスを使ってメモリにアクセスする方法を教えて。
649 名前:login:Penguin [2007/04/27(金) 08:26:29 ID:6m6QKylD.net] (1)ユーザプログラムで確保したメモリの物理アドレスを知る方法と、 (2)その物理アドレスにアクセスする方法を教えて。 >>634-635 そこの記述では不十分だよ。
650 名前:login:Penguin mailto:sage [2007/04/27(金) 10:46:58 ID:cjUqO3s+.net] >>638 つ 馬本 なんで物理アドレスが必要なのかよくわからんが、virt_to_pyhsかのう。
651 名前:login:Penguin [2007/04/27(金) 21:21:47 ID:6NURgk06.net] >>639 virt_to_phys()で本当にユーザプログラムで確保したメモリの物理アドレスが求められる? 質問はカーネルの仮想アドレスを物理アドレスに変換したいのではないよ。 ユーザプログラムで確保したメモリのアドレスの物理アドレスだよ。 あと>>638 の(2)については、知ってる人いないの?
652 名前:login:Penguin mailto:sage [2007/04/27(金) 21:40:17 ID:67IsA5dw.net] 痛い人現る
653 名前:login:Penguin mailto:sage [2007/04/27(金) 23:10:53 ID:EZ45sIxG.net] cr3レジスタからたどれば
654 名前:login:Penguin [2007/04/27(金) 23:27:03 ID:6NURgk06.net] >>642 で、そのcr3レジスタの値はどこから持ってくるの? cr3レジスタの値はあくまでも現在のプロセスの仮想アドレスのページテーブルだよね。 カーネルプロセスからユーザプログラムのページテーブルを取得するにはどうするの? mm_structを保存しておけば、任意のユーザプロセスのメモリ空間にアクセスできる?
655 名前:login:Penguin mailto:sage [2007/04/28(土) 04:22:35 ID:+D3gS6jR.net] カーネル書き直せば?w
656 名前:login:Penguin [2007/04/28(土) 07:44:33 ID:oKLKreO7.net] カーネルを書きなおしてもいいよ。どこをどうすればいいの?その方法を教えて。 (1)カーネルから任意のユーザプログラムで確保したメモリの物理アドレスを知る方法と、 (2)その物理アドレスにアクセスする方法を教えて。
657 名前:login:Penguin mailto:sage [2007/04/28(土) 07:47:13 ID:dRSGn50m.net] カーネルからだとページテーブルがページアウトしている可能性もあるから めんどくさい
658 名前:login:Penguin [2007/04/28(土) 08:04:23 ID:oKLKreO7.net] ページアウトはしていないと仮定していいよ。それなら簡単?
659 名前:login:Penguin mailto:sage [2007/04/28(土) 11:40:13 ID:Fr2ol1ef.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 満腹になった>>843 Bが最初にすべきは、@の処理か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 名前:過去ログ ★ [[過去ログ]] ■ このスレッドは過去ログ倉庫に格納されています