/usr/src가 사용자 정의 커널의 유효한 위치입니까?

/usr/src가 사용자 정의 커널의 유효한 위치입니까?

(커널 해킹을 위한) 사용자 정의 커널을 구축하고 설치하는 방법을 배우던 중 모순되는 문장을 발견했습니다.

이에스택익스체인지 답변, 저자는 다음과 같이 말합니다.

다음 지침에서 소스 트리 내부의 경로는 [src]/whatever 형식을 취합니다. 여기서 [src]는 소스를 설치한 디렉토리입니다(예: /usr/src/linux-3.13.3). 소스 트리는 쓰기 권한 측면에서 안전하게 유지되어야 하기 때문에 루트로 이 작업을 수행하고 싶을 것입니다(루트가 소유해야 함).

그는 참고서에서 다음과 같이 언급했습니다.간단히 말해서 리눅스 커널, Greg Kroah-Hartman은 다음과 같이 말합니다.

이 경고는 이 책의 단계를 진행하는 동안 기억해야 할 가장 중요한 사항입니다. 커널 소스 코드 다운로드, 압축 풀기, 커널 구성 및 빌드 등 이 책의 모든 내용은 컴퓨터에서 일반 사용자로 수행되어야 합니다. 새 커널을 설치하는 데 필요한 두세 가지 명령만 슈퍼유저(루트)로 수행해야 합니다.

그리고

또한 커널 소스 코드는 /usr/src/linux/디렉토리에 배치하면 안 됩니다. 이는 새 사용자 정의 커널이 아니라 시스템 라이브러리가 빌드된 커널의 위치이기 때문입니다. /usr/src/directory 트리 아래에서는 커널 개발을 수행하지 말고 시스템에 아무 문제도 일어나지 않는 로컬 사용자 디렉터리에서만 수행하십시오.

두 소스 모두 꽤 오래되었습니다. 요즘 이에 대한 올바른 접근 방식은 무엇입니까?

답변1

/usr"사용자 정의"에 대한 잘못된 위치입니다.

남자 안녕:

   /usr/src
          Source  files  for different parts of the system, included with some packages for reference purposes.  Don't work
          here with your own projects, as files below /usr should be read-only except when installing software (optional).

   /usr/src/linux
          This was the traditional place for the kernel source.  Some distributions put here the  source  for  the  default
          kernel they ship.  You should probably use another directory when building your own kernel.

man 파일 계층 구조:

   /usr/
       Vendor-supplied operating system resources. Usually read-only, but this is not required. Possibly shared between
       multiple hosts. This directory should not be modified by the administrator, except when installing or removing
       vendor-supplied packages.

/usr/include이전 에 의존하고 있던 것은 /usr/src/linux:

   /usr/include/linux
          This  contains  information which may change from system release to system release and used to be a symbolic link
          to /usr/src/linux/include/linux to get at operating-system-specific information.

/usr/src따라서 커널 소스는 수정이 아닌 참조에만 속합니다 .

이 옵션은 빌드를 읽기 전용으로 전환할 수 있는 옵션을 Documentation/admin-guide/README.rst보여줍니다 .O=/usr/src/linux-VERSION

   cd /usr/src/linux-4.X
   make O=/home/name/build/kernel menuconfig
   make O=/home/name/build/kernel

마찬가지로 .config 파일도 /home 아래에 생성됩니다.

관련 정보