Fedora 20 커널을 수동으로 컴파일하는 방법

Fedora 20 커널을 수동으로 컴파일하는 방법

디버깅 목적으로 환경을 다시 만들려고 합니다. Fedora 20 특정 커널 버전(이 경우 3.17.7-200.fc20.x86_64)이 필요합니다.

나는 tarball에서 바닐라 커널(3.17.7)을 수동으로 컴파일했습니다.

cd /usr/src/kernels/linux-3.17.7
make oldconfig
make
make install
make module_install

Fedora 소스코드로 똑같은 작업을 하고 싶은데, 정확한 소스코드를 구할 수 없어서 상식이 좀 부족한 것 같습니다.

yum 설치 커널을 사용하여 Fedora를 설치했지만 기본 버전을 컴파일한 후(.config를 편집해야 함) 이후에 모든 소스를 제거하고 initrm, systemmap 및 vmlinuz만 남겼습니다.

나는 이전에 시도했습니다:

yum install kernel-devel kernel-headers

특정 F20 버전의 경우.

하지만 내가 갈 때

/usr/src/kernel/<my_desired_kernel_version>/

만들어 봤는데 항상 파일 누락 오류가 뜹니다. 디렉토리와 파일을 면밀히 조사한 결과, 페도라 커널 소스가 있는 디렉토리에는 바닐라 커널 디렉토리에 비해 많은 파일이 누락된 것으로 나타났습니다. 이것은 fedora kernel-devels 파일이 단지 패치라는 뜻인가요?

나의 궁극적인 목표는 .config 파일을 일부 편집하여 특정 Fedora 커널을 컴파일하는 것입니다. 또한 내가 뭘 잘못하고 있는지에 대한 기본적인 배경 지식을 원합니다. 인사

답변1

kernel-devel 패키지에는 전체 커널 소스 코드가 아닌 커널용 추가 모듈을 빌드하는 데 필요한 것만 포함되어 있습니다. 전체 커널을 빌드하려면 소스 rpm을 가져와야 합니다. 당신이 말한 것처럼 기본 커널을 사용할 수 있습니다. 또는 자신만의 커널 rpm을 구축하려면 다음을 참조하세요.이 지침

답변2

Fedora의 빌드 시스템인 Koji에서 특정 소스 RPM을 얻을 수 있습니다. 이 경우 위치https://kojipkgs.fedoraproject.org/packages/kernel/3.17.7/200.fc20/. (찾는 방법은 여러 가지가 있지만, 이 경우에는 "kernel-3.17.7-200.fc20.x86_64 koji"라고 검색했습니다.)

소스 rpm 설치(루트가 아닌 사용자로) - 설치하고 실행하여 rpmdev-setuptree홈 디렉터리에 필요한 환경을 만듭니다(필요한 경우). 그런 다음 소스 코드와 패치를 직접 수정하거나 kernel.spec추가 패치로 파일을 수정하여 원하는 구성을 변경할 수 있습니다.

관련 정보