Rehber Gentoo üzerinde LTO kernel insa etme

Bugün Gentoo uzerinde link zamani optimizasyonlariyla nasıl kernel insa edilir bunu gosterecegim. Ilk olarak sistemimize clang 12.0.1 versiyonunu kuruyoruz.

sudo/doas emerge -av =clang-12.0.1

Ardindan cd /usr/src/linux komutu ile kernel kaynaklarinin bulundugu ana dizine giris yapiyoruz.

su
export LLVM=1 LLVM_IAS=1 CC=clang LD=ld.lld ile derleme isleminde Clang kullanilmasi için gereken direktifleri veriyoruz.
make menuconfig komutu ile menu konfigurasyonunu acip kernelimizi konfigure ediyoruz. / tusuyla arama baslatarak CONFIG_LTO_CLANG satirini aratiyoruz ve belirtilen adreste istegimize gore Thin veya Full olarak secimimizi yapiyoruz. Konfigurasyonumuzu .config ismiyle kaydediyoruz ve cikis yapiyoruz.
Sonrasinda make -j$(nproc) komutuyla kernelimizi ve modulleri derliyoruz, bittikten sonra make modules_install ardindan make install komutlariyla kernelimizi kuruyoruz.

Unutmayin ki Clang ile derlenmis bir kernelin butun modullerinin Clang ile derlenmesi tavsiye edilir. Aksi takdirde sorunlarla karsilasabilirsiniz. Clang 12.0.1 versiyonunda bulunan bir bug sebebiyle NVIDIA-drivers derlenmeyi reddedebilir, bunun için ufak bir workaroundumuz var ancak cozum olarak dusunulmemesini tavsiye ederim cunku pek yakisikli degil.
Bunun için once mkdir -p /etc/portage/env klasorunu yaratiyoruz. nano /etc/portage/env/clang.conf komutunu giriyoruz. Icine alttakini ekliyip kaydedip cikiyoruz.

Kod:
CC="clang"
CXX="clang++"
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

Akabinde nano -w /etc/portage/package.env dosyasini olusturuyoruz ve icine x11-drivers/nvidia-drivers clang.conf satirini ekleyip kaydedip cikiyoruz.

Ardindan yeni bir terminal acip root oluyoruz ve asagidaki komut ile NVIDIA-drivers paketini kuruyoruz.

FEATURES="-sandbox -usersandbox -mount-sandbox" ebuild $(equery which nvidia-drivers) clean merge

Islem tamam. Clang ile derlenmis super riced kerneliniz hayirli olsun. Konuda buldugunuz hatalari belirtirseniz duzeltme yapabilirim.
Bugün Gentoo uzerinde link zamani optimizasyonlariyla nasıl kernel insa edilir bunu gosterecegim. Ilk olarak sistemimize clang 12.0.1 versiyonunu kuruyoruz.

sudo/doas emerge -av =clang-12.0.1

Ardindan cd /usr/src/linux komutu ile kernel kaynaklarinin bulundugu ana dizine giris yapiyoruz.

su
export LLVM=1 LLVM_IAS=1 CC=clang LD=ld.lld ile derleme isleminde Clang kullanilmasi için gereken direktifleri veriyoruz.
make menuconfig komutu ile menu konfigurasyonunu acip kernelimizi konfigure ediyoruz. / tusuyla arama baslatarak CONFIG_LTO_CLANG satirini aratiyoruz ve belirtilen adreste istegimize gore Thin veya Full olarak secimimizi yapiyoruz. Konfigurasyonumuzu .config ismiyle kaydediyoruz ve cikis yapiyoruz.
Sonrasinda make -j$(nproc) komutuyla kernelimizi ve modulleri derliyoruz, bittikten sonra make modules_install ardindan make install komutlariyla kernelimizi kuruyoruz.

Unutmayin ki Clang ile derlenmis bir kernelin butun modullerinin Clang ile derlenmesi tavsiye edilir. Aksi takdirde sorunlarla karsilasabilirsiniz. Clang 12.0.1 versiyonunda bulunan bir bug sebebiyle NVIDIA-drivers derlenmeyi reddedebilir, bunun için ufak bir workaroundumuz var ancak cozum olarak dusunulmemesini tavsiye ederim cunku pek yakisikli degil.
Bunun için once mkdir -p /etc/portage/env klasorunu yaratiyoruz. nano /etc/portage/env/clang.conf komutunu giriyoruz. Icine alttakini ekliyip kaydedip cikiyoruz.

Kod:
CC="clang"
CXX="clang++"
COMMON_FLAGS="-march=native -O2 -pipe"
CFLAGS="${COMMON_FLAGS}"
CXXFLAGS="${COMMON_FLAGS}"
FCFLAGS="${COMMON_FLAGS}"
FFLAGS="${COMMON_FLAGS}"

Akabinde nano -w /etc/portage/package.env dosyasini olusturuyoruz ve icine x11-drivers/nvidia-drivers clang.conf satirini ekleyip kaydedip cikiyoruz.

Ardindan yeni bir terminal acip root oluyoruz ve asagidaki komut ile NVIDIA-drivers paketini kuruyoruz.

FEATURES="-sandbox -usersandbox -mount-sandbox" ebuild $(equery which nvidia-drivers) clean merge

Islem tamam. Clang ile derlenmis super riced kerneliniz hayirli olsun. Konuda buldugunuz hatalari belirtirseniz duzeltme yapabilirim.
Benchmarklara linkten ulasabilirsiniz.

 
Son düzenleme:

Geri
Yukarı