2009-09-01 12 views
1

マシン上のlinuxソースをコンパイルするための手順は次のとおりです。
1./boot /usr/src/kernels/2.6.29.4に設定ファイルをコピーします。 -167.fc11.i586 /ディレクトリ
2.メイクoldconfig
3.ステップ3は次のエラーで失敗したメイク
カーネルコンパイル中に `missing-syscalls 'エラーが発生しました

: メイクは、[1]:***ルールが `ターゲットを作らないために不足している、システムコール'やめる。

x86ボックスでのコンパイル。 提案がありますか? ここに属していない場合は、この質問を終了してください。

答えて

0

このエラーがなぜ発生するのか答えられませんでした。
手順3は次のエラーで失敗します。make [1]:***ターゲット `missing-syscalls 'を作成するルールがありません。やめる。

しかし、私はバニラバージョンを上記のエラーなしでコンパイルすることができました。 私はserverfaultについても同様の質問をしました。これは取られたステップの詳細な説明を持っています:https://serverfault.com/questions/61354/missing-syscalls-error-during-kernel-compilation

0

新しい設定ファイルを作成します。多分古いものは動作していませんか?

+0

ことにもしようとしました。新しい設定ファイルで同じエラーが表示されます。 – vivekian2

2

システム上でカーネルソースを取得するには、手動で行う必要があります必要なソースを選択します。人々は以前と同じくらい頻繁にカーネルを構築しないと思いますが、実行しているバージョンと一致しないカーネルを開発したいかもしれません。

たとえば、私はVBoxを私のCentOS 6.2のボックスとほとんどのカーネルモジュールは完全なソースなしでコンパイルできますが、このアップデートは失敗しました。 http://wiki.centos.org/HowTos/I_need_the_Kernel_Source

それは6.2をリストしていないと命名規則は、最終的なディレクトリ名に変更されているので、あなたがhttp://vault.centos.org/6.2/updates/Source/に行く6.2カーネルソースを取得するために、あなたをバージョンを選択:

は、だから私はこのwikiページを見つけました欲しいです。異なるバージョンのソースをご希望の場合は http://vault.centos.org/に移動し、そこからナビゲートしてください。

カーネルソースでrpm-buildを実行することを推奨していません。

0

カーネル3.x.xこのメッセージは、単一のメークファイルのみを準備している外部モジュールをビルドしようとすると表示されます。

代わり、this manualに従って

分割Kbuild(すべてのソースファイルがリストされ、一例)へ:

obj-m := module_source.c

と単純のMakefile(有するのみデフォルトメイクディレクティブ、例):

default: $(MAKE) -C $(KDIR) M=$$PWD

この問題を解決します。

念のために、外部モジュールのビルドディレクティブは、次のようになります。

make -C <kernel source path> -M=<module source folder>

例:make -C . -M=extra/

関連する問題