
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
いくつかの問題:
linux-headers-4.15.0-46
これらとそしての違いは何ですかlinux-headers-4.15.0-46-generic
?linux-header
私の仮想マシンには2つのディレクトリセットがあります。一つと4.14.0-29
一つと4.14.0-46
。各コレクションには2つのディレクトリがあります。 1つはあり、もう1つはありません-generic
。両方のセットを維持する必要がありますか?- 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>
これは魅力のように機能し、高い特権モードで実行する必要はありません。
答え2
インストールlinux-source
パッケージ:
sudo apt-get install linux-source
uClibcはかなり古いです。 uClibc-ngをインストールすることをお勧めします。