여러 호스트에 사용자 정의 커널을 배포하는 효율적인 방법

여러 호스트에 사용자 정의 커널을 배포하는 효율적인 방법

나는 최근에 Linux 커널의 소스 코드에서 사용자 정의 빌드를 수행해야 했습니다. 이제 사용자 정의 커널이 제가 빌드하는 데 사용한 컴퓨터에 설치되어 제대로 작동합니다.

이제 다른 사람들도 있습니다유사한 시스템(즉, 하드웨어 측면에서) 동일한 커널을 실행하기를 원합니다. 한 머신이 다른 머신과 유사한 하드웨어를 가지고 있다면 커널을 다시 빌드할 필요가 없다는 것을 아는 한, 나는 특별히 모든 머신에서 커널을 다시 빌드하고 싶지 않습니다.

이 가설이 사실이라면 기존 커널 버전을 유사한 시스템에 배포하는 가장 효율적인 방법은 무엇입니까?

몇 가지 옵션이 떠올랐습니다.

  1. /boot/및에서 사용자 정의 빌드 파일 복사/lib/modules/
  2. 사용자 정의 커널로 rpm을 생성하면 설치된 모든 파일을 추적하면서 쉽게 배포할 수 있습니다(제거도 매우 쉽습니다).

다른 옵션? 누구든지 이것에 대한 경험이 있습니까?

답변1

어떻게 해야할지 모르겠어요비슷한귀하의 컴퓨터는 그렇습니다. 하지만 저는 동일한 시스템 중 다수에 커널을 배포하는 작업을 해왔습니다. 옵션 1은 일반적으로 내가 수행하는 방법입니다. 네트워크를 통해 새 커널과 모듈을 푸시하면 됩니다. 그러나 시스템에 패키지 관리자가 있는 경우 rpm 패키지도 좋은 방법입니다.

시스템에 하드웨어 차이가 있는 경우 커널에 문제가 있을 수 있습니다. 머신에 서로 다른 이더넷 MAC이 있는 것처럼 특정 하드웨어에 대한 지원을 활성화해야 할 수도 있습니다.

기본적으로 커널이 제공하는 모든 것을 활성화하여 모든 시스템을 지원하는 비대해진 커널을 만들 수도 있고, 사용 중인 하드웨어가 무엇인지 정확히 찾아 해당 하드웨어에 대해서만 지원을 활성화하여 더 간결한 커널을 만들 수도 있습니다.

답변2

모든 시스템이 동일한 배포판을 실행한다고 가정하고 RPM을 생성하고(배포판에서 사용하는 패키지 형식이라고 가정) 배포합니다. 여기에는 많은 이점이 있으며 기본적으로 단점은 없습니다.

  • 패키지를 빌드하기 위한 배포판 프로세스를 따르면 커널뿐만 아니라 initramfs(사용된 경우), 모듈, 부트로더 업데이트 스크립트, 문서, 디버깅 및 모듈 빌드 정보 등 모든 것이 제자리에 있는지 확인됩니다.
  • 빌드 패키지를 사용하면 버전 추적을 수행할 수 있습니다. 업그레이드 배포 시 컴퓨터가 종료되거나 디스크가 꽉 찬 경우에도 현재 설치된 내용을 확인할 수 있습니다.
  • 패키지 관리자를 사용하면 커널뿐만 아니라 모든 소프트웨어를 배포할 수 있습니다. 배포하는 모든 소프트웨어에 대해 바퀴를 다시 만들 필요가 없습니다.
  • 배포판에 자체 커널 패키지를 만드는 문서화된 방법이 없으면 선불 비용이 발생합니다. 하지만 그렇게 된다면, 대부분의 사람들이 그렇게 생각하겠지만 초기 비용은 필요한 모든 부분을 수동으로 모으는 것보다 크지 않습니다.

관련 정보