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개의 디렉토리가 있습니다. 하나는 있고 다른 하나는 없습니다 -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>

이는 매력처럼 작동하며 높은 권한 모드에서 실행할 필요가 없습니다.

답변2

설치 linux-source패키지:

sudo apt-get install linux-source

uClibc는 꽤 오래되었습니다. uClibc-ng를 설치하는 것이 좋습니다.

관련 정보