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
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.
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
Yorum Gönder