TUT Build kernel LTE2 from source

Thảo luận trong 'LG Optimus LTE 2' bắt đầu bởi zcop, 29 Tháng tám 2013.

  1. zcop

    zcop Member

    Tham gia ngày:
    30 Tháng bảy 2013
    Bài viết:
    39
    Đã được thích:
    82
    Mục đích của topic là mỗi người sẽ tự sướng với kernel made by "tự tui"
    Sẽ bổ sung các thành phần khác sau( undervolt, overclock..v..v.)

    Tôi không chịu trách nhiệm về bất cứ chuyện gì xảy ra với chiếc phone của bạn khi làm theo tut này
    DO IT AT YOUR OWN RISK!:mad:




    Yêu cầu:
    * Laptop, Desktop...
    * OS: Ubuntu, Debian.. Khuyên dùng Ubuntu 12.04
    * Kĩ năng copy paste
    * 1 chút tiếng anh

    Bước 1: Cài ubuntu - Google thần chưởng

    Bước 2: Download kernel source của L,S,K đều nằm ở đây hết - Nhớ chọn kernel của android 4.1
    Link: https://www.lg.com/global/support/o...tegoryId=CAT00000001&osCategoryId=CAT00000002
    File có dạng LGF160*(Optimus LTE 2)_Android_JB_F160*20*.zip

    Bước 3: Download Toolchain gcc 4.6
    Link: https://docs.google.com/file/d/0BzQ7rwgF_0h0bnRhazB3ZkZRckU/edit?usp=sharing

    Bước 4: Download dsixda kitchen
    Link: https://docs.google.com/file/d/0BzQ7rwgF_0h0ZHlMRkZMV3NLQ2M/edit?usp=sharing

    Bước 5: download Android SDK
    Link: http://developer.android.com/sdk/index.html

    Bước 6: Giải nén adt-bundle-linux-x86_64-********.zip ra /home/your_username/
    Ấn chuột phải vào thư mục vừa giải nén chọn rename, đổi sang tên ngắn gọn là android

    Bước 7: Giải nén LGF160*(Optimus LTE 2)_Android_JB_F160*20*.zip được 2 file nén nữa có dạng
    LGF160*_JB_android.tar.gz
    LGF160*_JB_kernel.tar.gz
    Tiếp tục giải nén LGF160*_JB_kernel.tar.gz được 1 thư mục tên là "kernel"
    Di chuyển thư mục này đến /home/your_username/android/

    Bước 8: Giải nén Toolchain ra /home/your_username/android/

    Bước 9: Giải nén Android-Kitchen-0.224.tar.gz ra /home/your_username/android/
    Sửa lại tên thư mục là kitchen

    Bước 8: Ctrl+Alt+T, cửa sổ Terminal sẽ mở ra copy lệnh sau paste rồi enter
    sudo gedit .bashrc
    Một cửa sổ khác mở ra, thêm các dòng sau vào cuối file
    export PATH=~/bin:$PATH
    export PATH=$PATH:~/android/arm-eabi-4.6/bin
    export PATH=$PATH:~/android/sdk/platform-tools
    export CROSS_COMPILE=arm-eabi-
    Save và close gedit, không đóng cửa sổ Terminal đâu nhé. Copy paste lệnh dưới
    source ~/.bashrc
    sudo apt-get install ia32-libs

    Bước 10 : Cắm điện thoại vào máy tính để chế độ Change only
    adb devices
    Nếu ra kết quả
    List of devices attached
    LG-F160S-10a6d25device
    Goood :cool:
    Nếu hiện ra toàn dấu ???????? thì
    adb kill-server
    sudo ~/android/sdk/platform-tools/adb devices

    Bước 11: Lấy config file từ máy đang chạy
    adb pull /proc/config.gz
    Giải nén được file text tên là config, đổi tên sang f160_defconfig

    Mã:
    Outdate/không còn đc dùng nữa( thay = bước khác)
    Lấy local version
    adb shell cat /proc/version
    Kết quả
    Linux version 3.4.0-perf-g0688679 (seungman.shin@LGEARND2B3) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #1 SMP PREEMPT Wed Jun 5 10:41:58 KST 2013
     
    Mỗi máy khác nhau có thể sẽ có phần màu đỏ khác nhau
     
    mở file f160_defconfig
    tìm dòng
    CONFIG_LOCALVERSION="-perf"
    sửa lại
    CONFIG_LOCALVERSION="-perf-g0688679"
    
    Tìm và thay tất cả =m sang thành =y để build module vào trong kernel luôn( chức năng replace thì nhanh hơn)
    Save và exit
    Copy f160_defconfig vào android/kernel/arch/arm/configs/

    Hiện nay đã fix kernel source để bỏ qua bước check vermagic, kernel sẽ load tất cả các thể loại module không trùng version

    mở file android/kernel/kernel/module.c
    Tìm và thay 0 sang 1 như bên dưới
    Mã:
    static inline int check_version(Elf_Shdr *sechdrs,
    unsigned int versindex,
    const char *symname,
    struct module *mod,
    const unsigned long *crc,
    const struct module *crc_owner)
    {
    return 1;
    }
     
    static inline int check_modstruct_version(Elf_Shdr *sechdrs,
    unsigned int versindex,
    struct module *mod)
    {
    return 1;
    }
    
    Tìm và sửa lại như bên dưới
    Mã:
    static int check_modinfo(struct module *mod, struct load_info *info)
    {
    const char *modmagic = get_modinfo(info, "vermagic");
    int err;
     
    /* This is allowed: modprobe --force will invalidate it. */
    if (!modmagic) {
    err = try_to_force_load(mod, "bad vermagic");
    if (err)
    return err;
    } else if (!same_magic(modmagic, vermagic, info->index.vers)) {
    printk(KERN_WARNING "Bad module detected, ignore the check."
    "I'm not responsible for any dubious code from this module.\n");
    }
     
    if (!get_modinfo(info, "intree"))
    add_taint_module(mod, TAINT_OOT_MODULE);
     
    if (get_modinfo(info, "staging")) {
    add_taint_module(mod, TAINT_CRAP);
    printk(KERN_WARNING "%s: module is from the staging directory,"
          " the quality is unknown, you have been warned.\n",
          mod->name);
    }
     
    /* Set up license info based on the info section */
    set_license(mod, get_modinfo(info, "license"));
     
    return 0;
    }
    
    Bước 12:
    cd ~/android/kernel
    make f160_defconfig
    make -jn
    Với n= số cpu thread. VD Core i3 n=2, i5 n=4, i7 n=8
    Càng nhiều thì càng nhanh

    Sau khi báo chạy lâu lâu tầm 1 cốc cafe tùy vào CPU, khi hoàn thành thì dòng cuối trong Terminal sẽ như vậy
    OBJCOPY arch/arm/boot/zImage
    Kernel: arch/arm/boot/zImage is ready
    Kernel nằm ở android/kernel/arch/arm/boot/
    Tên là zImage
    Vậy là bạn đã có kernel
    Việc tiếp theo là phải xử lí anh boot image

    Bước 13: Download fake-rom.zip về để xài với kitchen
    Link: https://docs.google.com/file/d/0BzQ7rwgF_0h0ZGJqekZsdll2dUU/edit?usp=sharing
    Copy fake-rom.zip vào android/kitchen/original_update
    Trên Terminal copy paste
    cd ~/android/kitchen
    ./menu
    Chọn option: 1 - Set up working folder from ROM, enter. Enter tiếp lần nữa. ra như sau
    Available ROMs:

    (1) fake-rom.zip

    Enter selection number (default=1, cancel=0, r=refresh):
    Chọn 1, enter, sau đó nó hỏi đổi tên thư mục không, chọn y/n gì cũng đc
    Nó hổi tiếp có chuyển updater-script sang update-script không chọn 2
    Enter, Enter...

    Quay lại Menu chọn 0 - ADVANCED OPTIONS
    12 - Tools for boot image (unpack/re-pack/etc.)
    Chọn w = Extract kernel+ramdisk from boot.img

    Đến đây ta copy zImage của chúng ta trong thư mục android đã copy lúc nãy ghi đè vào android/kitchen/BOOT-EXTRACTED/ bằng cách:
    Mở 1 cửa sổ Terminal mới
    cp ~/android/kernel/arch/arm/boot/zImage ~/android/kitchen/BOOT-EXTRACTED/zImage
    Đóng cửa sổ Terminal này lại
    Quay về cửa sổ Terminal đang chạy DSIXDA KITCHEN chọn
    b = Build boot.img from BOOT-EXTRACTED folder (for working folder)
    Nó chạy xong xuôi thì exit thôi. Ta đã đc boot image mới tên là boot.img nằ trong thư mục
    android/kitchen/WORKING_******_******/boot.img
    ĐóngTerminal đi cũng đc

    Bước 14: Download loki tool về giúp boot image vượt qua đc bootloader checksum
    Link: https://docs.google.com/file/d/0BzQ7rwgF_0h0SS1ISVBSeUlPMkE/edit?usp=sharing
    Giải nén ra /home/your_username/android/
    Ctrl+Alt+T mở Terminal mới để build loki từ mã nguồn
    cd ~/android/loki
    gcc loki_patch.c -o loki_patch

    Vào đây tải bản stock boot của máy
    http://lgviet.com/forum/threads/kernel-stock-cho-f160k.2432/
    Giải nén lấy file aboot copy vào android/loki
    Copy boot image sang thư mục loki = lệnh
    cp ~/android/kitchen/WORKING*/boot.img ~/android/loki/boot.img
    Chạy lệnh sau để patch boot.img
    cd ~/android/loki
    ./loki_patch boot aboot boot.img boot-new.img

    boot.img mới sau khi patch là boot-new.img
    Vào đây tải file zip kernel của TQ
    http://lgviet.com/forum/threads/kernel-new-cho-4-1-2.2254/
    Thay boot-new.img trong file zip = boot-new.img của chúng ta( kéo boot-new.img thả vào file zip là đc)

    Copy qua phone và flash = recovery

    Các điều cần chú ý:
    Phải có recovery vĩnh viễn
    Phải có bản phục hồi stock boot


    Bonus cho cái hình
    [​IMG]
     
  2. zcop

    zcop Member

    Tham gia ngày:
    30 Tháng bảy 2013
    Bài viết:
    39
    Đã được thích:
    82
  3. zcop

    zcop Member

    Tham gia ngày:
    30 Tháng bảy 2013
    Bài viết:
    39
    Đã được thích:
    82
    Các câu hỏi thường gặp
     
    MobileCity_Support thích bài này.
  4. zcop

    zcop Member

    Tham gia ngày:
    30 Tháng bảy 2013
    Bài viết:
    39
    Đã được thích:
    82
    Gạch thôi, chờ tính sau :alien:
     
    MobileCity_Support thích bài này.
  5. binnguyen

    binnguyen Member

    Tham gia ngày:
    20 Tháng tám 2013
    Bài viết:
    33
    Đã được thích:
    5
    chờ hơi bị lâu đó nha hehe, bắt tay vào build thôi :cool:
     
  6. hunghv1413

    hunghv1413 New Member

    Tham gia ngày:
    21 Tháng tám 2013
    Bài viết:
    29
    Đã được thích:
    10
    Bác cho mình hỏi chút.Đã có thể build kernel 3.4.0 từ source, sao các rom cm và miui vẫn phải dùng kernel 3.0.8 nhỉ?
    Cảm ơn bác.

    Gửi từ LG-F160 của tôi bằng cách sử dụng Tapatalk 2
     
  7. trolllgviet

    trolllgviet Well-Known Member

    Tham gia ngày:
    24 Tháng sáu 2013
    Bài viết:
    4,940
    Đã được thích:
    1,123
  8. xuantunt

    xuantunt Never give up! Staff Member

    Tham gia ngày:
    21 Tháng sáu 2013
    Bài viết:
    2,074
    Đã được thích:
    3,370
    Tut này hại não kinh
     
  9. binnguyen

    binnguyen Member

    Tham gia ngày:
    20 Tháng tám 2013
    Bài viết:
    33
    Đã được thích:
    5
    Chỉ cần bác để usb debugging là ok bác ah, với cái build from source thì không khó lắm, khó ở chỗ create device tree thôi, phải config lâu lắm
     
  10. binnguyen

    binnguyen Member

    Tham gia ngày:
    20 Tháng tám 2013
    Bài viết:
    33
    Đã được thích:
    5
    Hình nhuư toolchain bị lỗi, unzip ko dc, dug terminal cũng không được, báo lỗi trog thư mục .git bác ơi
     
  11. binnguyen

    binnguyen Member

    Tham gia ngày:
    20 Tháng tám 2013
    Bài viết:
    33
    Đã được thích:
    5
    Build from source nên cài ubuntu luôn, chứ đến khi chạy lênh brunch để compile rom là tèo luôn, chắc chạy cả tháng ko xog qúa
     
    Trung SGN thích bài này.
  12. gts8003

    gts8003 Quản lý là phụ - chém gió là chính Staff Member

    Tham gia ngày:
    10 Tháng sáu 2013
    Bài viết:
    8,057
    Đã được thích:
    3,851
    Toolchain này cũ rồi, bản mới v4.7 7/2013 kìa :eek:
     
  13. zucdragon

    zucdragon Active Member

    Tham gia ngày:
    24 Tháng bảy 2013
    Bài viết:
    657
    Đã được thích:
    170
    Tut good quá, phải chi window có thể làm đc .... :D
     
  14. zcop

    zcop Member

    Tham gia ngày:
    30 Tháng bảy 2013
    Bài viết:
    39
    Đã được thích:
    82
    binnguyen để mình up lại.
    gts8003 dùng 4.7 đc,chỉ phải patch lại 1file để có thể tương thích vs 4.7 thôi. Mình build cm10.2 = toolchain 4.7 mà, build =4.6 báo lỗi tùm lum
    hoangnova Có thể compile 1 phần cuar android source = cách download d1lu device tree trên github về.
    . build/envsetup.sh
    lunch
    chọn device d1lu(gõ số tương ứng)
    mmm /đường dẫn đến project/
    VD
    . build/envsetup.sh
    lunch
    12
    mmm /packages/apps/CMUpdater
     
    Trung SGN and nguyenanh07 like this.
  15. great_bn

    great_bn Active Member

    Tham gia ngày:
    3 Tháng tám 2013
    Bài viết:
    438
    Đã được thích:
    57
    phải làm trên ubuntu sao.
     
  16. Tbkhanh

    Tbkhanh Well-Known Member

    Tham gia ngày:
    8 Tháng sáu 2013
    Bài viết:
    2,070
    Đã được thích:
    858
    LTE 2 ngon r :D ngày càng nhiều cao thủ
     
  17. cocconden

    cocconden Member

    Tham gia ngày:
    11 Tháng sáu 2013
    Bài viết:
    63
    Đã được thích:
    10
    Nhìn thì ko phức tạp nhưng mình cũng ko dám thực hiện..sợ tèo qá

    Sent from my LG-F160S using Tapatalk 2
     
  18. hoangnova

    hoangnova Captain Staff Member

    Tham gia ngày:
    20 Tháng năm 2013
    Bài viết:
    6,738
    Đã được thích:
    15,888

    LGF160*_JB_android.tar.gz <-- cái này theo hướng dẫn của họ là merge với code của android rồi build. Tuy nhiên là nếu có tut của người có kinh nghiệm từng làm rồi thì tốt nhất.
     
  19. gts8003

    gts8003 Quản lý là phụ - chém gió là chính Staff Member

    Tham gia ngày:
    10 Tháng sáu 2013
    Bài viết:
    8,057
    Đã được thích:
    3,851
    Rất nhiều bước có thể làm ngay trên điện thoại :D
    Muốn build quá @@
     
  20. hoangnova

    hoangnova Captain Staff Member

    Tham gia ngày:
    20 Tháng năm 2013
    Bài viết:
    6,738
    Đã được thích:
    15,888
    Kolàm đc trên đt.
     

Chia sẻ trang này