Trang 1 của 13 12311 ... CuốiCuối
Kết quả 1 đến 10 của 121
  1. #1
    Ngày tham gia
    Mar 2014
    Bài viết
    0

    Build kernel LTE2 from source

    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!




    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
    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.
    ");
    }
     
    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.
    ",
          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

  2. #2
    Ngày tham gia
    Jun 2014
    Bài viết
    0
    Cập nhật source lên github
    Hướng dẫn sd

    Patch mới cập nhật
    Undervolt+ overclock
    Link: http://lgviet.com/forum/threads/build-kernel-lte2-from-source.2674/page-3#post-102654

  3. #3
    Ngày tham gia
    Feb 2015
    Bài viết
    0
    Các câu hỏi thường gặp

  4. #4
    Ngày tham gia
    Apr 2015
    Bài viết
    0
    Gạch thôi, chờ tính sau :alien:

  5. #5
    Ngày tham gia
    Apr 2015
    Bài viết
    0
    chờ hơi bị lâu đó nha hehe, bắt tay vào build thôi

  6. #6
    Ngày tham gia
    Jan 2015
    Bài viết
    0
    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. #7
    Ngày tham gia
    Jan 2015
    Bài viết
    0
    zcop

  8. #8
    Ngày tham gia
    Feb 2015
    Bài viết
    0
    Tut này hại não kinh

  9. #9
    Ngày tham gia
    May 2014
    Bài viết
    0
    Trích dẫn Gửi bởi hoangnova
    Cho mình hỏi chút, nếu là cài trên Ubuntu, thì cắm điện thoại nó có nhận driver ko? Hay mình phải cài driver LG trên Ubuntu
    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. #10
    Ngày tham gia
    Nov 2014
    Bài viết
    0
    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

Trang 1 của 13 12311 ... CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •