Kaynak Kodlarından Kernel Derleme Rehberi

0
659

Daha önceki yazımızda kaynak kodlarından custom rom derlemeyi anlatmıştık. Bu sefer de sizlere kaynak kodlarından kernel derleme rehberi paylaşalım istedik. Kernel derlemeye merakınız varsa bu yazı tam size göre.

Bu kendi Android kernelinizi derleyebileceğiniz en kolay yöntemdir. Başlamadan önce kaynak kodlarından rom derleme konumuzu incelemek isterseniz buradan ilgili konuya ulaşabilirsiniz.

Adım 1: Gerekli Dosyaların Yüklenmesi

Ctrl+Alt+T tuşları ile bir Uçbirim açtıktan sonra aşağıdaki kodları girin.

mkdir android
cd android
mkdir kernel
cd kernel 

sudo apt-get install -y build-essential kernel-package libncurses5-dev bzip2
Bu kod gerekli olan paketleri indirecektir

Kernel Kaynak Kodunuzu Cihazınızın üreticisine göre aşağıdaki listeden seçerek cihaz modelinize uygun kaynak kodunu indirin (github üzerinde bulunan kaynak kodlarını da kullanabilirsiniz.)

HTC - HTC Kernel Source Code and Binaries
Samsung -  Samsung Opensource Release Center
Google - Binaries for Nexus Devices - Android — Google Developers
LG - OpenSource Code Distribution
Sony - Xperia™ open source archives - Developer World
Motorola - Motorola Home - Motorola USA
Lenovo - Lenovo Support (TR)
ZTE - Tomorrow Never Waits

İndirdiğiniz Kaynak Kodu dosyasını sıkıştırılmış halinden çıkartın ve android/kernel dizininde yeni oluşturacağınız klasöre atın. Geliştiriciler genellikle android/kernel/üretici_adı/cihaz_kod_adı şeklinde kullanırlar yani örnek olarak :

android/kernel/samsung/msm8930-common şeklinde kullanabilirsiniz
(Bu örnek Samsung Galaxy S4 Mini İçin Github Üzerinde kullanılan kaynak kodlarına göredir.)

Derleme Araçlarını indirelim:

Uçbirim Üzerinden;
git clone git://github.com/DooMLoRD/android_prebuilt_toolchains.git toolchains

Adım 2: Düzenlemeler

(Bu Adım İsteğe Bağlıdır)

Overclock/Underclock

Bu işlemler İşlemci hızını arttırma/azaltma ile ilgilidir fakat her cihazın farklı çipseti olduğundan bu anlatımlarda değişecektir bu yüzden bu işlemi kendi cihazınızın çipsetine göre internetten bakmanız daha sağlıklı olur.

Governor Ekleme

Burada Size SmartAss Governorunun yüklenişini anlatacağız

“drivers/cpufreq/Kconfig” yolundaki dosyayı açın

Alttaki satırları diğer governorların arasına ekleyin

config CPU_FREQ_DEFAULT_GOV_SMARTASS
            bool "smartass"
            select CPU_FREQ_GOV_SMARTASS
            select CPU_FREQ_GOV_PERFORMANCE
            help
              Use the CPUFreq governor 'smartass' as default.

 

config CPU_FREQ_GOV_SMARTASS
           tristate "'smartass' cpufreq governor"
           depends on CPU_FREQ
           help
             smartass' - a "smart" optimized governor!
             If in doubt, say N.

“drivers/cpufreq/Makefile” yolundaki dosyayı açın

Alttaki satırı uygun gördüğünüz yere ekleyin

  obj-$(CONFIG_CPU_FREQ_GOV_SMARTASS)     += cpufreq_smartass.o

“drivers/cpufreq” yolunda “cpufreq_smartass.c” adında bir dosya oluşturun

Bu Kodu dosyanın içine ekleyin (Kodu görüntüleyebilmeniz için bir vpn gerekebilir.)

“include/linux/cpufreq.h” yolundaki dosyayı açın

“Cpufreq Default” başlığının altına aşağıdaki kodları ekleyin

#elif defined(CONFIG_CPU_FREQ_DEFAULT_GOV_SMARTASS)
extern struct cpufreq_governor cpufreq_gov_smartass;
#define CPUFREQ_DEFAULT_GOVERNOR (&cpufreq_gov_smartass)

Governor ekleme işlemi bu kadar daha sonraki ekleyeceğiniz governorlarda aynı işlemleri yapabilirsiniz.

Yapılandırma Dosyası Ekleme

1.Yol : Başka Bir Kernelden Yapılandırma Dosyası Alma

Bu yöntem çalışan bir cihazdan çalıştığını bildiğiniz bir kernele ait olan config(yaplındırma) dosyasını almanızı sağlar bu yöntemi kullanarak işlemleri çok kolay bir hale getirebilirsiniz fakat bütün kerneller bu yolu desteklememekte

Bir Uçbirim Açın ve aşağıdaki kodları girin

cd android/kernel/samsung/msm8930-common
adb pull /proc/config.gz
gunzip config.gz
mv config arch/arm/configs/msm8930_serrano_defconfig

Yukarıda dediğimiz gibi bu yöntemi her kernel desteklememektedir ve bu kodlar yine Samsung Galaxy S4 Mini (GT-I9190) için geçerlidir kendi cihazınız için Kırmızı ve Yeşil yerleri değiştirmeniz gerekmektedir.

2.Yol: Cihaz Üreticinizin Yapılandırma Dosyasını Kullanma

Bu yöntemle isterseniz kernelin içinde bulunan defconfig dosyasını kullanabilir ve ya internetten cihazınız için bulduğunuz defconfig dosyasını kullanabilirsiniz.

Adım 3: Derleme

 Hazırlık

Bir Uçbirim açın ve kernel dosyalarınızın ana dizinine gidin
cd android/kernel/samsung/msm8930-common
export ARCH=arm
export CROSS_COMPILE=~/android/kernel/toolchains/arm-eabi-linaro-4.6.2/bin/arm-eabi-
Hazırlık aşamasını her derlemeden önce yapmanız gerekmektedir.

make make msm8930_serrano_defconfig
make menuconfig
make -j#

Yine söylediğimiz gibi bu kodlar Samsung Galaxy S4 Mini (GT-I9190) için geçerlidir kendi cihazınız için değişiklikler yapmanız gerekmektedir.

# sayısını işlemcinizdeki çekirdek sayısına göre değiştirmeniz gerekmektedir, # sayısı bir saniyede yapılacak işlemleri göstermektedir yani ne kadar çok çekirdek o kadar çok iş demektir.

Tekrar Derleme İçin:

make clean
make oldconfig
make -j#

 

Sonuç

Derlemenin bitmesini bekleyin

Derleme Başarılı Değilse:

Hataları Google Üzerinden Arayabilirsiniz

Derleme Başarılıysa:

Bravo, ilk kernelinizi derlediniz demektir. Bu kerneli cihazınızda kullanabilmek için cihazınıza uygun recovery üzerinden yüklenebilir bir .zip dosyası bulmanız gerekmektedir.