Cachy OS는 Arch기반으로 게이밍에 최적화된 운영체제입니다.
사실 커널말고도 각종 프로그램을 최신 CPU에 맞춰서 싹 컴파일 해놓았지요. 다른것보다 게이밍에 초점을 맞춰서 상당한 성능향상을 본것으로 유명합니다.
사실 비슷한 것으로 이미 SteamOS가 있습니다. 특정 기기에 맞춰서 최적화를 해놓은 운영체제지요.
그런데 문제는 아시다시피 Arch리눅스를 쓰는 경우에는 그냥 CachyOS의 것을 그대로 적용 가능하지만 데비안/우분투는 적용이 안 됩니다. Pacman과 DEB(APT)의 차이지요. 대신 CachyOS가 사용한 패치를 적용해서 직접 커널을 컴파일한다면 얼마든지 사용이 가능할겁니다.
그러기 위한 저장소가 존재합니다.
https://github.com/CachyOS/linux-cachyos-deb
GitHub - CachyOS/linux-cachyos-deb: CachyOS cli kernel builder for deb based distros
CachyOS cli kernel builder for deb based distros. Contribute to CachyOS/linux-cachyos-deb development by creating an account on GitHub.
github.com
해당 스크립트는 사용자의 CPU를 확인해서 거기에 맞는 커널을 직접 컴파일 해주는 스크립트 입니다. 다만 해당 커널은 인증받은 커널이 아니므로 기본적으로 SecureBoot를 꺼주셔야 부팅이 가능합니다. 몇몇 대기업의 PC는 SecureBoot를 끌 수 없으므로 어쩔수 없이 인증받은 커널을 쓰셔야 합니다.
방법은
git과 curl을 우선 설치하고 해당 git을 클론해옵니다.
sudo apt git curl
git clone https://github.com/CachyOS/linux-cachyos-deb.git
cd linux-cachyos-deb
그리고 안에 있는 스크립트를 실행 가능하게 해줍니다.
sudo chmod +x cachyos-deb.sh
./cachyos-deb.sh
그러면 필요한 패키지를 모두 설치하고 이것저것 물어보는데 CPU 아키텍처가 맞는지 SecureBoot를 껐는지 등등을 물어봅니다.
그리고 모든 것을 마치면 메뉴가 뜹니다.



여기서 다른 것보다 LLVM LTO부분이 신경 쓰이는데 본래 CachyOS는 LLVM LTO의 옵션이 THIN으로 되어 있습니다. 그런데 문제는 Nvidia드라이버와 충돌 일어납니다. 최신 버전에서는 충돌이 해결되었다고 하는데 저는 최신드라이버를 못 쓰는 그래픽카드기에 어쩔 수 없이 None으로 했습니다.(애초에 그래서 저는 CachyOS를 쓸 수 없습니다.)
그외는 그냥 기본값 그대로 하면 거의 맞습니다. 그리고 11 COMPILE KERNEL로 바로 커널 컴파일을 시도하면 gcc나 clang으로 커널 컴파일을 시도합니다. 한참 걸릴테니 그냥 켜놓고 주무시면 됩니다.
컴파일이 완료 되면 deb 파일이 덩그라니 나오니 이걸 설치하면 됩니다. 참고로 데비안의 경우는 현재 데비안 소스보다 더 최신의 커널을 올리게 되어 있으므로 이걸 설치하면 이후로는 해당 커스텀 커널을 이용해서 부팅하게 됩니다. VirtualBox같은거 쓸 때 커널버전 문제가 있을 수 있으므로 주의해주세요.

컴파일이 다 되었다면 linux-x.x.xx 폴더에 custom-kernel-header~~.deb과 custom-kernel-~~.deb두가지가 생성되었을 겁니다. 이걸 그냥 설치하면 됩니다.
sudo dpkg -i custom-kernel*.deb
sudo update-grub
sudo update-initramfs -u -k 커널버전
커널버전은 update-grub을 했을 때 뜨는 버전명을 적어주시면 됩니다.

저 같은 경우에는 7.0.10이네요.
dkms에 의한 모듈이 작동되지 않을 텐데 이것도 추가로 해줍시다. deb 만들때 해주면 좋을 텐데 이것까지 수동이네요.
sudo dkms autoinstall -k 커널버전
만약 반응이 없다면 dkms를 이용해서 다시 모듈을 빌드해야 합니다.
sudo dpkg-reconfigure $(dpkg -l | awk '/-dkms/ {print $2}')
이렇게 하면 모든 모듈을 다시 빌드합니다. gcc버전을 바꾸거나 더 최적화를 시키려고 하신다면 유용하게 쓰실 수 있습니다.
이제 재부팅 해봅시다.
uname -r을 쳤을 때 해당 버전이 뜨면 성공입니다.
=============================2026 5. 31======================
쓰다보니 커널을 수정해야 하는 경우가 생겼습니다.
그래서 빌드 스크립트의 일부를 수정해서 쓰고 있습니다.
cachyos-deb.sh파일을 열어서 일부분을 수정해서 써야 어느정도 되겠더군요. 아무래도 아직 테스트 버전이라 이래저래 문제가 많은 거 같습니다.
1. 442번째 줄에 SCHED_EXT+BORE 스케줄러(일명 cachyos 스케줄러)를 적용하려고 하니 SCHED_EXT패치가 어느순간부터 사라져서 패치적용이 안 되는 문제가 있었습니다.
그래서 기본 스케줄러를 bore+cachy 패치로 교체하기 위해서

아래 bore와 동일한 패치로 내용을 교체하였습니다. 스크립트에선 bore 스케줄러 단독만 적용되는 메뉴가 아에 없더군요.
두번째로 initramfs의 크기가 너무 커져서 부팅속도가 엄청 느려지더군요. 그래서 알아봤더니 모듈에 디버그 심볼이 들어가서 그렇답니다.

그래서 381번째 줄 make modules_install 사이에 https://unix.stackexchange.com/questions/30345/why-is-my-initial-ramdisk-so-big
Why is my initial ramdisk so big?
I'm running Ubuntu 11.10, which came with kernel version 3.0.0-14. I downloaded and built a kernel from the 3.1.0 branch. After installing the new kernel, I see that my /boot/initrd.img-3.1.0 file is
unix.stackexchange.com
여기 나온 것처럼 INSTALL_MOD_STRIP=1 을 적어서 모듈에 디버그 심볼을 제거 해야 했습니다.
세번째는 특정 버전 커널이 필요할 때 입니다.
전 낡은 하드웨어라 개인적으로 7.0에서 문제가 많이 발생해서 6.12버전으로 다시 낮춰야 했습니다.
그런데 이 스크립트는 무조건 최신 커널을 사용하더군요.
그래서

565번째 줄 _kv_url 부분을 제가 필요한 리눅스 커널 소스 타르볼로 강제 지정했습니다.
기존 코드를 앞에 #을 붙여 주석처리 한다음
_kv_url = "내가 원하는 리눅스커널 소스"
해당 소스코드는 kernel.org에서 링크를 직접 복사해서 붙여 넣어주시면 됩니다.
더 정확한 특정 버전을 원한다면
https://www.kernel.org/pub/linux/kernel/
Index of /pub/linux/kernel/
www.kernel.org
여기에서 직접 특정 버전의 tar.gz 파일의 링크를 복사해서 넣어주시면 됩니다.
예를 들어 6.6.1버전이면 v6.x 폴더로 들어간다음 리스트를 쭉 내려서

linux-6.6.1.tar.gz 파일의 링크를 복사해서 해당 위치에 복사하면 됩니다.
그러면 이후 스크립트에선 강제로 해당 버전을 지정해서 사용하게됩니다.
그 다음에 똑같이 스크립트에서 이리저리 손을 댄다음 빌드하면 됩니다.
'우분투 분투기' 카테고리의 다른 글
| 리눅스에서 RP2040 Raspberry Pi Pico 빌드 시스템 갖추기 (0) | 2026.06.03 |
|---|---|
| 지금보니 우분투 sudo-rs로 또 사고쳤군요 (1) | 2026.01.11 |
| 2025년 이후 Docker build 할 때 오류 날 때 (0) | 2025.11.04 |
| 2025년 리눅스를 쓰려면 라데온을 써라 (2) | 2025.08.30 |
| lsfg-vk 리눅스에 포팅된 버전 설치기 (10) | 2025.08.04 |