web-dev-qa-db-ja.com

更新後、MAKEを実行している「ターゲットを構築するルールがありません」というメッセージが表示されます。なぜですか?

Ubuntuを頻繁に実行しますupdates-manager enter image description here
その後、毎回、makeを実行して、TVチューナードライバーを再インストールする必要があります( ここで説明したように

しかし、そのとき、makeはエラーで停止します:
次のエラーメッセージはフランス語から翻訳されます

$ make
make -C /lib/modules/3.2.0-53-generic-pae/build M= modules
make[1]: entering in folder « /usr/src/linux-headers-3.2.0-53-generic-pae »
make[2]: *** No rule to build the target « Arch/x86/tools/relocs.c », needed for « Arch/x86/tools/relocs ». Stop.
make[1]: *** [archscripts] Erreur 2
make[1]: exiting folder « /usr/src/linux-headers-3.2.0-53-generic-pae »
make: *** [all] Erreur 2

このエラーを解決するにはどうすればよいですか?


情報について

  • Ubuntuバージョンは12.04(正確)
  • カーネルLinuxは3.2.0-53-generic-pae
  • /usr/src/linux-headers-3.2.0-53-generic/Arch/x86/のコンテンツ
    /usr/src/linux-headers-3.2.0-52-generic/Arch/x86/に似ています

  • フォルダー/usr/src/linux-source-3.2.0のコンテンツは

    $ ls -la /usr/src/linux-source-3.2.0
    total 78020
    drwxr-xr-x  4 root root     4096 sept. 21 08:44 .
    drwxr-xr-x 74 root root     4096 sept. 21 22:44 ..
    drwxr-xr-x 10 root root     4096 sept. 21 08:44 debian
    drwxr-xr-x  8 root root     4096 sept. 21 08:44 debian.master
    -rw-r--r--  1 root root 79874365 aug.  23 00:11 linux-source-3.2.0.tar.bz2
    

    そして

    $ find /usr/src/linux-source-3.2.0 -name "relocs.c"
    

    何も返さない

2
Boris

この質問の手がかりは、エラーメッセージのこの部分です。

make [2]:*ターゲット"Arch/x86/tools/relocs.c"を構築するルールはありません。"Arch/x86/toolsには必要です/ relocs"。やめる。

メイクファイルは、relocs.cというコードモジュールを探しています。

現在、コードモジュールは通常カーネルヘッダーに存在しません。最初にカーネルソースを抽出する必要があります。その後、Makefileで何かを噛む必要があります。

これをやろう。

カーネルソースフォルダーに移動します。

cd /usr/src/linux-source-[version]

あなたの場合[version]カーネルバージョンは.2.です。

フォルダーの内容をリストします。そこにlinux-source-[version].tar.bz2というファイルが表示されるはずです。 N.B.前と同じように[version]をカーネルのバージョン番号に置き換えます。

そうでない場合は、ソースをインストールします。

Sudo apt-get install linux-source

次にソースを抽出します。

Sudo tar -jxvf linux-source-[version].tar.bz2

その後、コンパイルを完了できるはずです。

2
fossfreedom