Kaynak Kod Nasıl Derlenir ?

Kaynak Kod Nasıl Derlenir ?

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. 
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şilyerleri 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.



Yorumlar

Bu blogdaki popüler yayınlar

GCC (GNU COMPİLER COLLECTİON) NEDİR ?

Process ve Thread Arasındaki Farklar

String Fonksiyonlarının Kullanımı