探検


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

■ このスレッドは過去ログ倉庫に格納されています
1login:Penguin
垢版 |
02/01/31 01:14ID:t3s191ys
ディバイスドライバの改造、製作にまつわる情報交換、質問、
噂話、ぐち、政治、経済に関するスレです。できる限り生産的にいきましょーや。
2login:Penguin
垢版 |
02/01/31 01:15ID:t3s191ys
とりあえず、オライリーのお馬さん本2杯目へのリンク。
http://www.xml.com/ldd/chapter/book/bookindexpdf.html
3login:Penguin
垢版 |
02/01/31 01:30ID:o+EauUH6
イーサネットドライバの仕組みが知りたいですわ。

02/01/31 01:32ID:WoiBhbQB
何故?Kernel仕組みスレのリンクを張らないの?

☆Linux カーネルの仕組みを勉強するスレ☆
http://pc.2ch.net/test/read.cgi/linux/1002012247/
51
垢版 |
02/01/31 01:44ID:R8TIzJku
あー、スマソ。ぼけてたです。

ついでに最新カーネル表示スレ
http://pc.2ch.net/test/read.cgi/linux/999618082/l50
USB総合スレ
http://pc.2ch.net/test/read.cgi/linux/1002630729/l50
最適NICスレ
http://pc.2ch.net/test/read.cgi/linux/986761860/l50
02/01/31 01:47ID:WoiBhbQB
是非とも、このスレを優スレにしたいなぁ・・・

公開されているいい関係資料を漁ってみよう。
71
垢版 |
02/01/31 01:47ID:R8TIzJku
JFドライバ関係
http://www.linux.or.jp/JF/JFdocs/INDEX-hardware.html
おなじくカーネル関係
http://www.linux.or.jp/JF/JFdocs/INDEX-kernel.html

ちょっとネタスレだけどLinuxプログラミングスレ
http://www.linux.or.jp/JF/JFdocs/INDEX-kernel.html
8login:Penguin
垢版 |
02/01/31 02:02ID:igUBIfwm
YAMAHA AC-XGをハクってください。
9login:Penguin
垢版 |
02/01/31 02:32ID:+4ZZMVcM
>>8
YAMAHAって、マイクロコードを
ドライバーがロードさせるタイプじゃないかな?
もしそうだと、YAMAHAが出さないと難しいかも。
02/01/31 10:02ID:+yS2cLhP
_IO マクロってみんな使ってる?
11login:Penguin
垢版 |
02/01/31 15:08ID:o+EauUH6
イーサネットドライバって、使われているチップに対してバスのメモリを解して
read/writeすればいいのかな?
12login:Penguin
垢版 |
02/01/31 18:55ID:igUBIfwm
>>9
まったくの阿呆なのでおっしゃってる意味がよくわかりませんが、
無理なのですか…。
残念…。
13login:Penguin
垢版 |
02/01/31 23:21ID:o+EauUH6
やっぱ人気ねぇかなぁ。このスレ。

それともレヴェルが低いかなぁ。(アオリ
02/01/31 23:21ID:ZFCCqGEW
正直、こういう技術的なネタはここでは盛り上がらない。
02/02/01 00:30ID:Hb4Obm1B
じふぃーず ってどこまで短くしたことある?
みんなの体験談キボーン

とりあえずCPUクロックと併記よろしこ
02/02/01 00:45ID:0DxQaaOu
んじゃ、適当なソースでも引っ張って解説つけていくとか・・・

おもしろくないねぇ・・2chデストリ用に何かつくるとか・・・
17login:Penguin
垢版 |
02/02/01 04:33ID:Dg5fN5Aj
どうやってドライバを書くのかという英文をひらったぞ(゚Д゚)ゴルァ

一番単純なモジュール抜粋じゃー
#define MODULE
#include <linux/module.h>

int init_module (void) /* Loads a module in the kernel */
{
printk("Hello kernel \n");
return 0;
}

void cleanup_module(void) /* Removes module from kernel */
{
printk("GoodBye Kernel\n");
}

モジュールコンパイルしろや
# gcc -c hello.c
モジュールロードだ
# insmod hello.o

出力は
Hello kernel
モジュールアンロード
# rmmod hello.o
02/02/01 04:56ID:Dg5fN5Aj
モジュールに引数わたしたけりゃ
static int baka;
MODULE_PARM(baka,'i');
int init_module (void) /* Loads a module in the kernel */
{
printk("Hello kernel \nMODULE_PARM=%d\n",baka);
return 0;
}
insmod hello.o 1
とかしろ、
この{マ,チ}ンカスどもめ
02/02/01 05:17ID:Dg5fN5Aj
デバイスドライバには2種類ある
ブロックドライバとキャラクタドライバ

ブロックデバイスは塊単位としてしかアクセスできんデバイス
普通は1kごととかで
お前らの使ってるディスク装置とかがこれだ

キャラクタデバイスはファイルみたいにアクセスできてそういう世話
をするのが実装されとる。オープン・クローズ・リード・ライトシステム
コールが実装されていてコンソールとかパラレルポートとかが
これらしい。

ほんとかよ。お前ら間違ってたら教えろよ。
02/02/01 05:38ID:Dg5fN5Aj
順番むちゃくちゃに訳してたら、何で最初にシンプルなモジュール
の書き方が書いてあるのか説明してなかった。
linuxではデバイスドライバはinsmodをつかって
動的にカーネルに読みこんだりできるモジュールなんだそうな

>>17のinit_moduleは何をするんかつーとリロケートされたモジュールイメージ
がカーネルスペースにロードしてモジュールの初期化ファンクション
を走らすらしい

ところで、なあ、リロケート再配置ってなんじゃこりゃ
init_module loads the relocated module image into kernel space and runs
the module's init function.

英語だけでなく日本語も不自由なんじゃ(゚Д゚)ゴルァ
21スマソ
垢版 |
02/02/01 05:45ID:Dg5fN5Aj
>>18
s/insmod hello.o 1/insmod hello.o baka=1/

02/02/01 06:29ID:Dg5fN5Aj
20 のモジュールイメージっつうのは具体的に何かっつーと
モジュール構造体で始まって、適切にコードとデータが連なった
もんらしい。
モジュール構造体は
struct module
{
unsigned long size_of_struct;
struct module *next;
const char *name;
unsigned long size;
long usecount;
unsigned long flags;
unsigned int nsyms;
unsigned int ndeps;
struct module_symbol *syms;
struct module_ref *deps;
struct module_ref *refs;
int (*init)(void);
void (*cleanup)(void);
const struct exception_table_entry *ex_table_start;
const struct exception_table_entry *ex_table_end;
#ifdef __alpha__
unsigned long gp;
#endif
};

nextとrefsを除く全部のポインタはモジュールのボディを指すように
期待されていてカーネルスペースのために適切に初期化される
例えば残りのモジュールなんかを再配置したりとかなあ。

日本語だけでなくコンピュータも不自由なんじゃ(゚Д゚)ゴルァ
意味わかんねえし

init_moduleと
cleanup_moduleの戻値は0が成功-1は失敗
-1のときはerrnoがセットされる。
...ズラズラとエラーコードの説明

一般的なドライバのコンパイルオプションは
-D__KERNEL__ _DMODULE -O -Wall -I$(INCLUDEDIR)
らしい

読み終わりました。
この文書だけでドライバが書ける奴は
居ないと思いました。終始モジュールの説明でした。

真面目にKHGを読もうかと思います。
http://www.linuxdoc.org/LDP/khg/HyperNews/get/khg.html
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況