Makefileを使用したLKMの生成

Makefileを使用したLKMの生成

最近、私はオペレーティングシステムのカーネルについて学ぶことにしましたし、学習プロセスに役立ついくつかのリソースを見つけました。チュートリアルに従ってロード可能なカーネルモジュールとMakefileを設定しましたが、コマンドを実行するとmake次の結果が表示されます。 Makefile:5: *** missing separator. Stop.

メイクファイルの内容 -

KMOD=   hello   #Name of KLD build.
SRCS=   hello.c # List of source files.
include <bsd.kmod.mk>

LKMソース -

#include <sys/param.h>
#include <sys/module.h>
#include <sys/kernel.h>
#include <sys/systm.h>

/*The function called at load/unload. */
static int
load(struct module *module, int cmd, void *arg)
{
    int error = 0;

    switch (cmd) {
    case MOD_LOAD:
        uprintf("Hello, world!\n");
        break;
        
    case MOD_UNLOAD:
        uprintf("Good-bye, cruel world!\n");
        break;
        
    default:
        error = EOPNOTSUPP;
        break;
    }
}

/* The second argument of DECLARE_MODULE. */
static moduledata_t hello_mod = {
    "hello",    /*module name */
    load,       /* event handler */
    NULL        /* extra data */
};

DECLARE_MODULE(hello, hello_mod, SI_SUB_DRIVERS, SI_ORDER_MIDDLE);

私が読んでいる本は、カーネルを変更するためにUbuntuシステムに移植したFreeBSDカーネルモジュールに焦点を当てています。

助けてください! !

ベストアンサー1

私が読んでいる本は、カーネルを変更するためにUbuntuシステムに移植したFreeBSDカーネルモジュールに焦点を当てています。

2つのカーネルが非常に異なり、ビルドインフラストラクチャも異なるため、すぐに役に立つ結果を生成する可能性が低くなります。代わりに、次のLinux関連チュートリアルに従ってください。これ

おすすめ記事