1 名前:login:Penguin [02/01/31 01:14 ID:t3s191ys] ディバイスドライバの改造、製作にまつわる情報交換、質問、 噂話、ぐち、政治、経済に関するスレです。できる限り生産的にいきましょーや。
580 名前:542 mailto:sage [2007/02/10(土) 21:33:23 ID:XWBlzb1u] >>579 そうですね 元からあったソースでコンパイルしようとすると必要なMakefileがないとかで無理 でしたから、kernel.orgから同じバージョンのコード落してきてまた設定しなし いた訳ですがそれが原因ですかね。 ディストリとかは独自の変更を加えているらしいし、また変更が加えられていない 純粋なカーネルインストールしてから出直してきます
581 名前:login:Penguin [2007/02/18(日) 23:17:11 ID:PxJoV1oA] すみません。kmallocで確保したメモリ領域をDMA転送するために、__paで変換して 渡してやるのと、dma_map_singleで変換して渡すのと、違いはあるのでしょうか? たとえば性能(処理効率)が違うとか? どう使い分けているのでしょうか?
582 名前:login:Penguin mailto:sage [2007/02/19(月) 10:56:01 ID:QHwPPpDN] UNIXTIMEを日付文字列に変換するのに なんかAPI用意されてないの? "2007/02/19 12:34:56" とかその程度のでいいんだけど。
583 名前:login:Penguin mailto:sage [2007/02/19(月) 11:19:53 ID:I/jMKPR3] strftime
584 名前:login:Penguin mailto:sage [2007/02/19(月) 13:52:20 ID:QHwPPpDN] >>583 いや、デバイスドライバ内でなんだけど、あったっけ? いや、ない。
585 名前:login:Penguin [2007/02/21(水) 07:53:48 ID:Wuryqsb6] Linux 2.6.16用のパッチとe2comprを同時に使いたいのだが、e2comprは2.6.10用まで しかない。カーネルとドライバが完全に分離され、カーネルバージョンが上がっても カーネル側の旧インターフェースが温存されるようになれば、ドライバの開発が停滞しても 最新のカーネルでそのドライバを使い続ける事ができる。
586 名前:login:Penguin mailto:sage [2007/02/22(木) 01:34:45 ID:I6i5DnCh] そのカーネル側のABI決めようぜ話はLinusに一蹴されてるんじゃなかったけ?
587 名前:login:Penguin [2007/02/22(木) 09:14:42 ID:y9d4aAAQ] >>586 カーネル側のドライバとして旧バージョンのカーネルのモジュールをロードできる ラッパーを作成して、カーネル側インターフェースが変更されるたびにラッパーを 更新していく手もあるべ。
588 名前:login:Penguin [2007/02/22(木) 09:16:48 ID:y9d4aAAQ] ラッパーにx86エミュレーションを追加するとザウルスでWindowsのドライバを読み込めたりもする。
589 名前:login:Penguin mailto:sage [2007/02/22(木) 22:34:24 ID:I6i5DnCh] つ NDISwrapper
590 名前:login:Penguin mailto:sage [2007/02/23(金) 00:44:11 ID:cxn/yRhr] つcapative ntfs
591 名前:login:Penguin [2007/04/03(火) 00:09:41 ID:3ycIJVku] <linux/module.h>が無いんだけど、 デバドラ開発するには、なにかパッケージ追加しなきゃいけないの? 使ってるのはfedora6
592 名前:login:Penguin [2007/04/03(火) 00:24:35 ID:3ycIJVku] yum install kernel-devel してもダメだな。何が足りない?
593 名前:login:Penguin mailto:sage [2007/04/03(火) 00:41:11 ID:xSB1c0Df] >>591 カーネルソースそのものじゃね?
594 名前:login:Penguin [2007/04/03(火) 01:00:14 ID:3ycIJVku] >>593 あ、カーネルソースに有った。ありがとう。 普通、/usr/includeには入らないの?
595 名前:login:Penguin [2007/04/03(火) 01:08:21 ID:3ycIJVku] あと、 man printk って出ないの?
596 名前:login:Penguin mailto:sage [2007/04/03(火) 02:25:43 ID:xSB1c0Df] >>595 出ないんじゃよ
597 名前:login:Penguin mailto:sage [2007/04/03(火) 02:43:03 ID:GYgStP3Z] >>594 カーネル用ヘッダと、ユーザプログラム用ヘッダは まざるとまずいから分離されてる。だから/usr/includeにカーネル用ヘッダはふつうは無い。
598 名前:login:Penguin mailto:sage [2007/04/04(水) 00:07:01 ID:NkZt7NAi] /usr/include/linux に入ってないか?鳥にもよるけど。
599 名前:login:Penguin [2007/04/04(水) 00:15:23 ID:wyW6RdvI] カーネル用ヘッダと、ユーザプログラム用ヘッダがまざると、何でとまずいだろ。
600 名前:login:Penguin [2007/04/04(水) 00:23:08 ID:ICf0Aql0] 爆発しても知りません。
601 名前:login:Penguin mailto:sage [2007/04/04(水) 00:42:58 ID:IK0cizpI] >>598 ,>>599 /usr/include/linuxにあるのは確かにカーネルのヘッダだが、glibcをビルドするときに使った アーキテクチャ依存部分とかのカーネルヘッダ、 /usr/src/linux/includeにあるのは「現在使用中のカーネル」のヘッダファイル だよね。(間違ってたらスマソ) これらが同じだとちょっとカーネルに変更があったときとかまずくない? 最悪glibc動かなくなるときもあるかと。
602 名前:login:Penguin [2007/04/08(日) 00:07:55 ID:gmHS+Fdj] >>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,
603 名前:login:Penguin mailto:sage [2007/04/08(日) 00:09:38 ID:2aPQfsMY] 脳?
604 名前:login:Penguin [2007/04/08(日) 00:10:46 ID:gmHS+Fdj] >>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’
605 名前:login:Penguin mailto:sage [2007/04/08(日) 00:11:42 ID:2aPQfsMY] じゃ、頭?
606 名前:login:Penguin [2007/04/08(日) 00:12:08 ID:gmHS+Fdj] NGID ID:2aPQfsMY
607 名前:login:Penguin mailto:sage [2007/04/08(日) 00:15:19 ID:2aPQfsMY] マジレスすると、読み込むヘッダーファイルが足りないんだよ。
608 名前:602 [2007/04/08(日) 00:19:06 ID:gmHS+Fdj] 環境は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)
609 名前:login:Penguin mailto:sage [2007/04/08(日) 00:20:46 ID:2aPQfsMY] BITS_PER_LONGを定義しているファイルをさがすことだね。
610 名前:login:Penguin mailto:sage [2007/04/08(日) 00:29:38 ID:nSKp4d9I] なんだこのキチガイ
611 名前:login:Penguin mailto:sage [2007/04/08(日) 00:31:56 ID:2aPQfsMY] また、きちがいあつかいですか?
612 名前:login:Penguin mailto:sage [2007/04/08(日) 00:36:41 ID:nSKp4d9I] ほう「また」なんだ
613 名前:login:Penguin mailto:sage [2007/04/08(日) 00:37:31 ID:2aPQfsMY] で?
614 名前:login:Penguin mailto:sage [2007/04/08(日) 00:46:02 ID:nSKp4d9I] あらら
615 名前:login:Penguin mailto:sage [2007/04/08(日) 00:48:10 ID:2aPQfsMY] なにがあららなの?
616 名前:login:Penguin mailto:sage [2007/04/08(日) 00:49:12 ID:nSKp4d9I] 脳?
617 名前:login:Penguin mailto:sage [2007/04/08(日) 00:49:55 ID:2aPQfsMY] それはお互い様だろ?
618 名前:login:Penguin mailto:sage [2007/04/08(日) 00:51:34 ID:nSKp4d9I] 俺はその質問者じゃないんだけどねえ
619 名前:login:Penguin mailto:sage [2007/04/08(日) 00:56:35 ID:2aPQfsMY] お友達?
620 名前:602 [2007/04/08(日) 00:58:54 ID:gmHS+Fdj] もういちど、しきりなおし。 >>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,
621 名前:login:Penguin mailto:sage [2007/04/08(日) 01:03:19 ID:z/motjJL] >>620 ヒント:>>17 のかかれた日付に注目。
622 名前:login:Penguin mailto:sage [2007/04/08(日) 01:11:57 ID:nSKp4d9I] 2.6以降はモジュールのフォーマットが変わって、 .oじゃなくて.koになってるからね。 ビルドの仕方も面倒になって...俺もよくしらない。
623 名前:login:Penguin mailto:sage [2007/04/08(日) 01:12:30 ID:2aPQfsMY] linux/compiler.hかな?
624 名前:login:Penguin [2007/04/08(日) 02:07:26 ID:gmHS+Fdj] >>621-622 情報が古いのか。。 でも、ウェブにあるサンプルは大体同じような感じなんだけど。 2.6用モジュールhello worldってないのかな。
625 名前:login:Penguin mailto:sage [2007/04/08(日) 02:24:54 ID:z/motjJL] >>624 2.6 kernel hello world でぐぐればすぐ出てくるぞ。
626 名前:login:Penguin [2007/04/08(日) 02:28:17 ID:gmHS+Fdj] >>625 なかなか無いよ。たとえばどこ? すぐ出てきたなら、ここに貼って。
627 名前:login:Penguin mailto:sage [2007/04/08(日) 02:34:41 ID:n+CzrFXh] #include <linux/init.h> がいるみたいね
628 名前:login:Penguin [2007/04/08(日) 02:41:10 ID:gmHS+Fdj] Makefileの書き方も変わってるみたいだね。 uguisu.skr.jp/algo/device.html のやり方でうまくいった。
629 名前:login:Penguin mailto:sage [2007/04/08(日) 03:09:43 ID:z/motjJL] こことかな。 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
630 名前:login:Penguin [2007/04/12(木) 01:42:14 ID:MCdnGupN] aio_write()でユーザ空間の登録だけして、後からハードウェア割り込みでその登録したユーザ空間にアクセスすることってできる? やり方教えて。
631 名前:login:Penguin mailto:sage [2007/04/12(木) 02:34:41 ID:HoyZz9hB] >>626 自分はこれが良かった。 www.freesoftwaremagazine.com/articles/drivers_linux
632 名前:login:Penguin [2007/04/15(日) 01:56:51 ID:YIKahQqf] タスクレットの中でcopy_to_user()、copy_from_user()を使えますか?
633 名前:login:Penguin mailto:sage [2007/04/17(火) 02:52:55 ID:IoB9zeVk] 試してみろ!! callした瞬間ぼくの丸太のような足蹴りが君の股間をつぶす それでもいいのなら!
634 名前:login:Penguin [2007/04/27(金) 00:53:37 ID:6m6QKylD] プログラムで確保したメモリの物理アドレスを知る方法と、その物理アドレスを使ってメモリにアクセスする方法を教えて。
635 名前:login:Penguin mailto:sage [2007/04/27(金) 06:02:05 ID:DTYmU0pC] www.linux.or.jp/JF/JFdocs/kernel-docs-2.2/IO-mapping.txt.html
636 名前:login:Penguin mailto:sage [2007/04/27(金) 06:03:05 ID:DTYmU0pC] www.linux.or.jp/JF/JFdocs/The-Linux-Kernel-4.html
637 名前:login:Penguin [2007/04/27(金) 08:23:06 ID:6m6QKylD] ユーザプログラムで確保したメモリの物理アドレスを知る方法と、その物理アドレスを使ってメモリにアクセスする方法を教えて。
638 名前:login:Penguin [2007/04/27(金) 08:26:29 ID:6m6QKylD] (1)ユーザプログラムで確保したメモリの物理アドレスを知る方法と、 (2)その物理アドレスにアクセスする方法を教えて。 >>634-635 そこの記述では不十分だよ。
639 名前:login:Penguin mailto:sage [2007/04/27(金) 10:46:58 ID:cjUqO3s+] >>638 つ 馬本 なんで物理アドレスが必要なのかよくわからんが、virt_to_pyhsかのう。
640 名前:login:Penguin [2007/04/27(金) 21:21:47 ID:6NURgk06] >>639 virt_to_phys()で本当にユーザプログラムで確保したメモリの物理アドレスが求められる? 質問はカーネルの仮想アドレスを物理アドレスに変換したいのではないよ。 ユーザプログラムで確保したメモリのアドレスの物理アドレスだよ。 あと>>638 の(2)については、知ってる人いないの?
641 名前:login:Penguin mailto:sage [2007/04/27(金) 21:40:17 ID:67IsA5dw] 痛い人現る
642 名前:login:Penguin mailto:sage [2007/04/27(金) 23:10:53 ID:EZ45sIxG] cr3レジスタからたどれば
643 名前:login:Penguin [2007/04/27(金) 23:27:03 ID:6NURgk06] >>642 で、そのcr3レジスタの値はどこから持ってくるの? cr3レジスタの値はあくまでも現在のプロセスの仮想アドレスのページテーブルだよね。 カーネルプロセスからユーザプログラムのページテーブルを取得するにはどうするの? mm_structを保存しておけば、任意のユーザプロセスのメモリ空間にアクセスできる?
644 名前:login:Penguin mailto:sage [2007/04/28(土) 04:22:35 ID:+D3gS6jR] カーネル書き直せば?w
645 名前:login:Penguin [2007/04/28(土) 07:44:33 ID:oKLKreO7] カーネルを書きなおしてもいいよ。どこをどうすればいいの?その方法を教えて。 (1)カーネルから任意のユーザプログラムで確保したメモリの物理アドレスを知る方法と、 (2)その物理アドレスにアクセスする方法を教えて。
646 名前:login:Penguin mailto:sage [2007/04/28(土) 07:47:13 ID:dRSGn50m] カーネルからだとページテーブルがページアウトしている可能性もあるから めんどくさい
647 名前:login:Penguin [2007/04/28(土) 08:04:23 ID:oKLKreO7] ページアウトはしていないと仮定していいよ。それなら簡単?
648 名前:login:Penguin mailto:sage [2007/04/28(土) 11:40:13 ID:Fr2ol1ef] ザワザワ… ザワザワ…
649 名前:login:Penguin mailto:sage [2007/04/28(土) 23:24:32 ID:ZU2q9XRX] >>639 ttp://d.hatena.ne.jp/Newmarket/20060828/1156705255
650 名前:login:Penguin mailto:sage [2007/04/28(土) 23:42:14 ID:o6o1fGCI] 馬の多さにワロタ
651 名前:login:Penguin [2007/05/03(木) 23:34:15 ID:ErpReMz0] カーネルのソースツリーの一部分だけ、お試しでコンパイル したいときってどのようにすればいいですか? たとえば、lib/ の下だけすこしいじって、syntaxのチェック だけしたいときとか。2.6.21です。
652 名前:login:Penguin mailto:sage [2007/05/04(金) 00:08:49 ID:9yQs8D1Y] >>651 なんだかんだいっても、一度全体コンパイルしておくのが一番早い。
653 名前:login:Penguin [2007/05/04(金) 00:18:46 ID:yYLKnQ2E] >>652 thx.でも、 一度全体をコンパイルしておいて、lib/以下をちょっと(.cのみ)いじって、 全体をmake bzImageすると、それだけで5分以上かかるんすよ... わたしのへぼマシンだと。
654 名前:login:Penguin mailto:sage [2007/05/04(金) 00:23:00 ID:gFGVYRPM] やっぱりCPU速くするのが一番
655 名前:login:Penguin mailto:sage [2007/05/04(金) 00:24:14 ID:yYLKnQ2E] そこをなんとか。
656 名前:login:Penguin mailto:sage [2007/05/04(金) 00:35:21 ID:n4WASQRt] >>653 2.6だったらトップディレクトリから $ make lib/cmdline.o CC lib/cmdline.o とか出来る。
657 名前:login:Penguin mailto:sage [2007/05/04(金) 00:38:41 ID:yYLKnQ2E] できました。ありがとうございました。
658 名前:login:Penguin mailto:sage [2007/05/04(金) 01:24:26 ID:ulT/mofy] >>576 カーネルをコンパイルしたgccでモジュールをコンパイルしないとinsmod時にそのエラーが出るよ。
659 名前:login:Penguin mailto:sage [2007/05/13(日) 23:53:14 ID:EYFP+J0v] 質問です。 >>620 さんと同じ状況です。 ただ>>628 >>629 の方法を試したのですが 解決しませんでした。 いまだに>>620 さんが書かれてるエラーがでてしまいます。 考えられる原因はありますでしょうか? ubuntu 7.04、gcc version 4.1.2 (Ubuntu 4.1.2-0ubuntu4) を使っています。
660 名前:login:Penguin mailto:sage [2007/05/26(土) 11:11:39 ID:XoKsvVbX] >>15 IPLで使いたい分のメモリを確保すればいいって聞いたことがある。 カーネルのブートパラメータでから使いたい分を引く感じ。
661 名前:login:Penguin mailto:sage [2007/05/26(土) 16:19:33 ID:olOYm4ED] >>660 それで短くなるの? ならないと思うけど。
662 名前:login:Penguin mailto:sage [2007/05/26(土) 23:30:58 ID:XoKsvVbX] >>661 あれ?なんかぜんぜん違う話へのレスになってる…。 スマソ、なんか誤爆っぽい…orz
663 名前:login:Penguin [2007/06/03(日) 15:06:38 ID:W8zh9WHI] ドライバ内での 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
664 名前:login:Penguin mailto:sage [2007/06/03(日) 15:14:36 ID:1QJRDZ5d] >>663 ドライバで浮動小数点の計算はしない方がいいと思う。
665 名前:login:Penguin mailto:sage [2007/06/03(日) 15:35:59 ID:W8zh9WHI] proc_fs で表示するために使いたいのですが,駄目なんでしょうか...?
666 名前:login:Penguin mailto:sage [2007/06/03(日) 16:53:58 ID:KH63vIBs] 浮動小数点演算はFPUを使う可能性があるから カーネルモードでは可能な限り避けるべき きちんと対応すれば使えないことはないけど、 速度的な利点はほとんどなくなる
667 名前:login:Penguin mailto:sage [2007/06/03(日) 23:23:42 ID:/hAY1VOO] 「速度的な利点」って何に対する何の利点?
668 名前:login:Penguin mailto:sage [2007/06/03(日) 23:31:28 ID:5NVvB11p] きっと >>666 の CPU は浮動小数点演算を使うと割り込み禁止になるんだろう
669 名前:login:Penguin mailto:sage [2007/06/04(月) 00:46:42 ID:CXn8XPVL] nVidiaのドライバの解析って3年ぐらいまでやってる人間 いたけど今どうなってるの?
670 名前:webmaster@気まぐれアナスイ mailto:192.168.0.1 [2007/06/04(月) 12:11:48 ID:RaTjYNE+] !(-_Φ+){ ... }
671 名前:663 mailto:sage [2007/06/05(火) 02:17:22 ID:aHzmfEHS] とりあえず固定小数点もどきをつかって回避して,こんなのできました. お時間があれば添削などしていただけると嬉しいです. acapulco.dyndns.org/usbrh/
672 名前:login:Penguin mailto:sage [2007/06/05(火) 10:49:22 ID:qhZ8Q9LN] >>665 固定小数点じゃだめか? 値が必ず正値と仮定、valに本当の値の100倍を入れるとすると unsigned int val; sprintf(str, "%d.%02d", val/100, val%100) みたいな感じ 負値だと剰余の扱いがちょっと面倒になる
673 名前:login:Penguin [2007/07/16(月) 18:26:19 ID:h1/eDBu5] はck
674 名前:login:Penguin [2007/08/06(月) 00:29:52 ID:E6mK6Nbx] ドライバ書くときってCPUの事は知っておいた方がいいのでしょうか?
675 名前:login:Penguin mailto:sage [2007/08/06(月) 01:55:04 ID:Taq1zrH7] どうでもいいよ タマゴがどっち向きかだけ知っとけば
676 名前:login:Penguin [2007/08/28(火) 23:24:19 ID:aUO2fWSH] あげ
677 名前:login:Penguin mailto:sage [2007/08/29(水) 01:23:49 ID:bmM5qB+B] >>675 俺はとんがったほうから食べるのが好きだ。
678 名前:login:Penguin mailto:sage [2007/08/29(水) 23:50:22 ID:E1JDVS03] どちらから割るのが正しいかが問題だ。大きいほうか、尖った方か。 16bit時代以降、中には大きい方から割って、尖った方から食べるという 両刀使いが出てきてさらにややこしくなった。
679 名前:login:Penguin mailto:sage [2007/08/30(木) 12:40:15 ID:pmmgZB5J] そんな両刀使いがいたのか 具体的にはドレ?
680 名前:login:Penguin mailto:sage [2007/08/31(金) 00:43:34 ID:pR6eg2ir] NUXIとかmixed endianでggr。1234じゃなくて2143並びになったりするらしい。 実は漏れも知らなかったが、最近でも某腕プロセッサはデータ型によってはまさにミックスになるそうな。