Monday, December 17, 2012

Menambah String Pada Kernel Version [Tutorial] [Kernel]


Halo, jumpa lagi pagi ini bersama saya, sang nubi yang sok tau :D

Kemarin kita sudah membahas tentang S-OFF, silahkan baca untuk menambah referensi :)

Sebelum melanjutkan, ga ada salahnya anda membaca dulu apa itu kernel, di artikel saya yang lain yang berjudul 'Jantung Android' :D


Kalo udah, sekarang mari kita langsung obok-obok kernel untuk merubah version stringnya :)

Buat user Galaxy Young, jangan lupa coba kernel yang saya build :D
http://ian-techno.blogspot.com/2012/12/index-iankernel-kernel-gt-s5360.html

Menurut tutor kernel dari zcop@xda, forum.xda-developers.com/showthread.php?t=1467149
dia nulis secara eksplisit tentang "vermagic", ini poin pentingnya :D

buka file source kernel, common/kernel/module.c
sekitar line 2230
if (!modmagic)
{ err = try_to_force_load(mod, "bad vermagic"); if (err) goto free_hdr; } else if (!same_magic(modmagic, vermagic, versindex))  { printk(KERN_ERR "%s: version magic '%s' should be '%s'\n", mod->name, modmagic, vermagic); err = -ENOEXEC; goto free_hdr; }


dari situ kita tau :
kalo vermagic module yg ada di ramdisk beda sama version kernel, secara default, kernel bakalan ngeksekusi perintah err = -NOEXEC;

nah, gimana caranya biar kernel 'mau' jalanin module dengan vermagic beda?
dipaksa dong :p

hack :
if (!modmagic){
err = try_to_force_load(mod, "bad vermagic");
if (err)
goto free_hdr;
}else if (!same_magic(modmagic, vermagic, versindex))
{
printk(KERN_ERR "%s: version magic '%s' should be '%s'\n", mod->name, modmagic, vermagic);
printk("Alfiyan Ganteng :P");
}

Done! kernel kita udah bisa jalanin module yang punya extra vermagic beda :D
sekarang buka Makefile
Di line EXTRAVERSION tinggal tambahi string2 yg dipengenin, hoho


Tutorial lain :
Nambahin bootsplash logo :
http://ian-techno.blogspot.com/2012/12/add-custom-bootsplash-logo-into-kernel.html
Thanks to :
Official Galaxy Young Indonesia

4 comments:

  1. hi..
    can you teach me how to compile/modify android kernel ??
    i really want to know...
    i already have the ubuntu..

    ReplyDelete
  2. should i change the local version in XXX_defconfig?because when i get uname -a is "Linux localhost 2.6.35.7-GbExTReMe-v.1-perf-CL762444 #1 PREEMPT Sat Jul 20 00:16
    :25 WIT 2013 armv6l GNU/Linux...thanks in advance bro :)

    ReplyDelete
  3. untuk di defconfignya apa perlu dirubah juga CONFIG_LOCAL_VERSION nya masbro?

    ReplyDelete