[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Pocket PostPet
はやし@東工大です。
From: Atsushi Onoe <onoe@sm.sony.co.jp>
Subject: Re: Pocket PostPet
Date: Wed, 5 Jul 2000 10:53:47 +0900 (JST)
> ただ、NetBSD の lkm は primitive な機能しかないようなので、例えば autoload
> みたいなことはできないんじゃないかと思います。明示的に modload/modunload
> すれば、少なくとも i386 では動きます。
記憶があいまいだったので、チラっとソースを見直してみましたが
lkm 自体は、kernel内にモジュール用のメモリを確保したり、
そこにコードを書きこんだり、その中のエントリを呼ばせるという
ioctl しか無いです。
以前の ip_filter とかは module にすると、ロード時には、kernel内に予め
用意したhookを書き変えるというかなり荒技を使っていた筈。
(今は、pfil hook を使っている)。
普通のデバイスにはもっとましな方法も用意されていますけど、基本はテーブル
書き変え。( cdevsw[] の中を書きかえるとか )
で、mipsel or eb でも出来ない事は無いと思うのですが、今試せません。
#どうも、R500 で kernel が load 出きなくなってしまって、、、。
ちなみに, sys/lkm の下は lkm の module 側で、kernel側の受け口は
sys/kern/kern_lkm.c です。
もしかしたら、受け口の方は動いたりするんじゃないでしょうか?
余談ですが、
> major 番号などは load 時に決まるので、
> device file 等は modload の postinstall script で作成する必要があります。
major 番号に関しては、自動割り当てで、LKM用の予約スロットを使わずに
kernel 構築時から予約しておけば固定できるみたいです。
-----
yuki@is.titech.ac.jp
林 幸弘@柴山研.数理計算科学専攻.情報理工学研究科.東京工業大学