headers_install が期待どおりに動作しません。

headers_install が期待どおりに動作しません。

Ubuntu 16.04 LTSをインストールし、linux-headersをインストールしました。 Linuxヘッダファイルが必要なuClibc-ngを構築しようとしています。したがって、linux-headersディレクトリで次のコマンドを実行すると、次のエラーメッセージが表示されます。どのステップを見逃していますか?

sudo make INSALL_HDR_PATH=/tmp/linux-headers headers_install
  CHK      include/generated/uapi/linux/version.h
  UPD      include/generated/uapi/linux/version.h
make[1]: *** No rule to make target 'arch/x86/entry/syscalls/syscall_32.tbl'
 needed by 'arch/x86/entry/syscalls/../include/generated/asm/syscalls_32.h'.
  Stop.
arc/x86/Makefile:216: recipe for target 'archheaders' failed.
make: *** [archheaders] Error 2

使用する新しい仮想マシンを作成しましたuname -a

Linux ubuntu 4.15.0-46-generic #49~16.04.1-Ubuntu SMP Tue Feb 12 17:45:24 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

いくつかの問題:

  1. linux-headers-4.15.0-46これらとそしての違いは何ですかlinux-headers-4.15.0-46-generic
  2. linux-header私の仮想マシンには2つのディレクトリセットがあります。一つと4.14.0-29一つと4.14.0-46。各コレクションには2つのディレクトリがあります。 1つはあり、もう1つはありません-generic。両方のセットを維持する必要がありますか?
  3. Linuxヘッダーを取得するには、新しい16.04 Ubuntuイメージでどのような手順を実行する必要があるかについての指示を知っている人はいますか?

ベストアンサー1

私はついにそれを見つけた。 GitHubにアクセスして、私が実行しているUbuntuのバージョンに関連するLinuxソースコードを入手しました。私は実行できます:

make \
  ARCH=<arch-name> O=. -C <path-to-linux-sources> \
  headers_install INSTALL_HDR_PATH=<output-directory>

これは魅力のように機能し、高い特権モードで実行する必要はありません。

おすすめ記事