본문 바로가기
리눅스

Compiling linux kernel with cachyos patches to use scx-sched

by 다움위키 2025. 3. 11.

원문 보기: https://dawoum.duckdns.org/wiki/Linux_kernel/Compiling_linux_kernel_with_cachyos_patches_to_use_scx-sched

 

이전에 커널 컴파일은 메인라인 커널에 Xanmod 커널에서 사용 중인 패치와 데비안에서 제공하는 패치를 추가해서 진행했습니다.

2024년 3월, CachyOS의 몇 가지 소식을 접하면서, scx-sched를 적용해 보려고 시도 중입니다. 이를 위해, 커널 컴파일이 필요하고, 어쨌든, 비록 기존 소스에서도 가능할지라도, CachyOS의 패치를 같이 적용해 보기로 했습니다.

먼저, CachyOS 커널 컴파일은 아래에서 볼 수 있습니다:

기존 커널은 GNU Compiler Collection로 컴파일했지만, 이제는 반드시 Clang을 사용해야 하고, LLVM과 함께 컴파일이 하는 것이 좋습니다. 어쨌든, CC=Clang를 하면, 나머지 옵션이 자동으로 선택되는지 확인하지 않았습니다!

위의 PKGBUILD 파일을 보면, 옵션 선택에 따라서 패치가 추가되도록 되어 있습니다. 이때, NVIDIA GPU가 없고, 스케줄러는 CachyOS 기본값으로 진행하기 위해, 다음 순서로 패치를 진행했습니다:

  • all/0001-cachyos-base-all.patch
  • misc/dkms-clang.patch
  • sched/0001-bore-cachy.patch

선택된 패치 중에서 필요없는 것이나 제외된 패치 중에서 필요한 것이 있는지 확인하지 않았습니다.

그런-다음 Debian on Ryzen CPU에서 사용했든 데비안 패치를 적용했고, 다음에서 오류가 생깁니다:

  • tools/perf/Makefile.config.rej : 내용을 보고 수동으로 처리했습니다.

Kernel Compile

이제 커널 컴파일을 진행해야 하는데, 먼저 커널 옵션 설정을 진행해야 합니다.

Kernel Options

이 부분도 기존의 커널 옵션에 scx-sched를 사용하기 위해 필요한 것들만 추가해 보기로 했습니다. 추가되는 옵션은 다음을 참고했습니다:

Compiling linux kernel

  • make CC=clang LD=ld.lld LLVM=1 LLVM_IAS=1 menuconfig
  • NUM_THREADS=20
  • time make -j $NUM_THREADS CC=clang LD=ld.lld LLVM=1 LLVM_IAS=1 bindeb-pkg
  • cd ..
  • sudo dpkg -i linux-*.deb
  • reboot

GCC로 컴파일할 때, 4~5분 정도 걸리고, 반면에, CLANG으로 8분 정도 걸립니다. LTO를 켜면 14분 정도 걸립니다.