1. You want that $100.00 in your pocket or an Amazon Fire TV don't you? Well here's the deal. With our new updated look we are in desperate need of an updated logo. The 'old' one has certainly served us well, but it's time. Find all the details here: bit.ly/1q0k6Wa
  2. DroidForums.net is currently undergoing a major software upgrade. If you are experiencing any problems logging in please: Contact Us

help building / install Droid Incredible kernel

Discussion in 'Android Hacks and Help' started by gnychis, Mar 11, 2011.

  1. gnychis
    Offline

    gnychis New Member

    Joined:
    Feb 24, 2011
    Messages:
    42
    Likes Received:
    0
    Trophy Points:
    0
    I want to make some modifications to my Incredible's kernel. However, before I start I would like to at least try to rebuild and replace the stock kernel. That way I know that any issues are related to my changes, and not trouble building/installing the stock kernel.

    So I went to my Incredible's Software Information and found my kernel version to be:
    Code:
    2.6.32.17-g9a2fc16
    htc-kernel@u18000-Build-149 #1
    
    So I went to HTC's android source code page and found the following kernel source code which matches my build:
    HTC - Mobile Phones, Smartphones, Cell Phones, PDAs

    I pulled the kernel configuration from my phone with:
    Code:
    adb pull /proc/config.gz
    gunzip config.gz
    mv config .config
    
    Then I made sure to build with the local version properly set:
    Code:
    make LOCALVERSION=-g9a2fc16
    
    Now, the tricky part to me is actually setting up the proper boot.img. I have done two things to extract the original boot.img to get boot parameters and ramdisk. I found my boot partition here:
    Code:
    gnychis@air:~$ adb shell cat /proc/mtd
    dev:    size   erasesize  name
    mtd0: 000a0000 00020000 "misc"
    mtd1: 00480000 00020000 "recovery"
    mtd2: 00300000 00020000 "boot"
    mtd3: 0f800000 00020000 "system"
    mtd4: 000a0000 00020000 "local"
    mtd5: 02800000 00020000 "cache"
    mtd6: 09500000 00020000 "datadata"
    
    Then I extracted boot.img as follows and split it:
    Code:
    $ adb shell
       $ su
       # cat /dev/mtd/mtd2 > /sdcard/stock_boot.img
       # exit
       $ exit
    $ ./split_bootimg.pl stock_boot.img 
    Page size: 2048 (0x00000800)
    Kernel size: 2274960 (0x0022b690)
    Ramdisk size: 167337 (0x00028da9)
    Second size: 0 (0x00000000)
    Board name: 
    Command line: no_console_suspend=1
    Writing stock_boot.img-kernel ... complete.
    Writing stock_boot.img-ramdisk.gz ... complete.
    
    Then, I combine this ramdisk with my own built version of the kernel as follows:
    Code:
    ./mkbootimg --kernel kernel/arch/arm/boot/zImage --ramdisk stock_boot.img-ramdisk.gz --cmdline "no_console_suspend=1" -o boot.img
    
    Then I pushed it to my sdcard as "mystock_incredible_boot.img" and rebooted my phone to recovery mode. In recovery mode, I did:
    Code:
    # flash_image boot /sdcard/mystock_incredible_boot.img
    flashing boot from /sdcard/mystock_incredible_boot.img
    mtd: successfully wrote block at 0
    mtd: successfully wrote block at 20000
    mtd: successfully wrote block at 40000
    mtd: successfully wrote block at 60000
    mtd: successfully wrote block at 80000
    mtd: successfully wrote block at a0000
    mtd: successfully wrote block at c0000
    mtd: successfully wrote block at e0000
    mtd: successfully wrote block at 100000
    mtd: successfully wrote block at 120000
    mtd: successfully wrote block at 140000
    mtd: successfully wrote block at 160000
    mtd: successfully wrote block at 180000
    mtd: successfully wrote block at 1a0000
    mtd: successfully wrote block at 1c0000
    mtd: successfully wrote block at 1e0000
    mtd: successfully wrote block at 200000
    mtd: successfully wrote block at 220000
    mtd: successfully wrote block at 240000
    mtd: successfully wrote block at 0
    
    Then, I rebooted the phone and it never gets past the "htc Incredible" white screen. So then I tried to do some debugging and despite that the only kernel option found in the stock boot.img was "no_console_suspend=1", I found from dmesg that when the phone boots the stock boot.img there are many more kernel options:
    Code:
    <5>[    0.000000] Kernel command line: board_incrediblec.disable_uart3=0 board_incrediblec.usb_h2w_sw=0 board_incrediblec.disable_sdcard=0 diag.enabled=0 board_incrediblec.debug_uart=0 smisize=0 userdata_sel=1  androidboot.baseband=2.15.00.07.28 androidboot.cid=VZW__001 androidboot.carrier=COMMON androidboot.mid=PB3120000 androidboot.keycaps=qwerty androidboot.mode=normal androidboot.serialno=HT042HJ01678 androidboot.bootloader=0.92.0000 androidboot.hardware=inc no_console_suspend=1
    
    So, then I tried packaging it with all of these boot parameters also, and I still do not get past the "htc Incredible" white screen. I'm not sure what I am missing here. Does anyone see anything wrong with what I have done?
Search tags for this page

android config.gz

,
droid 2 config.gz
,
htc incredible flash image mtd0 vzw 001
,
htc kernel 2.6.32.17-g9a2fc16
,
htc kernel u18000 build 149 1
,
htc-kernel@u18000-build-149#1
,
original /proc/mtd samsung