1

ユーザー モード Linux のモジュールで「make」を実行して、単純なメイクファイルをインストールしようとしています。これが私のメイクファイルです:

obj-m    := hello.o

KDIR    := /lib/modules/$(shell uname -r)/build
PWD    := $(shell pwd)

default:
    $(MAKE) -C $(KDIR) SUBDIRS=$(PWD) modules

これをユーザー モードの Linux で実行すると、次のエラーが表示されます。

make[1]: ディレクトリ `/lib/modules/2.6.28/build' に入ります
make[1]: *** 対象の「モジュール」を作成する規則はありません。止まる。
make[1]: ディレクトリ `/lib/modules/2.6.28/build' を離れます
make: *** [デフォルト] エラー 2

問題は、 の下にファイルが存在しないことです/lib/modules/。2.6.28 またはビルド用のディレクトリはありません。私が読んだことから、これらは へのシンボリックリンクである必要がありますが、 の下には/usr/src、その下/usr/srcにファイルも表示されません。

4

2 に答える 2

1

モジュールをコンパイルするには、UML カーネルのソースとヘッダーを使用する必要があります。

UML 内またはメイン システムのみでコンパイルできますが、UML のカーネルのヘッ​​ダーとビルド スクリプトを使用する必要があります。

于 2010-03-22T00:45:33.567 に答える
0

コンパイルするカーネルのバージョンをビルドしてインストールする必要があります。kernel.orgからソースを取得し、構成 (make menuconfig実行中のカーネルから構成を取得すると思います)、ビルド、およびインストールします。通常のユーザーの下でホームディレクトリでビルドを実行できます。もちろん、インストールするにはルートが必要です。

編集:

これを見逃した場合に備えて、User Mode Linux HOWTOを参照してください。カーネルとモジュールをビルドおよびインストールするための特定の項目が含まれています。お役に立てれば。

于 2010-03-21T20:55:09.930 に答える