亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問(wèn)板塊 發(fā)新帖
查看: 1861 | 回復(fù): 0
打印 上一主題 下一主題

Android ROM開(kāi)發(fā)(12) 編譯HTC G8 內(nèi)核 [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2011-12-23 03:35 |只看該作者 |倒序?yàn)g覽
Andrew Huang <bluedrum@163.com>  轉(zhuǎn)載請(qǐng)注明作者及出處



一.準(zhǔn)備工作
 

  內(nèi)核下載 
  現(xiàn)在HTC將開(kāi)發(fā)網(wǎng)站由 http://developer.htc.com 從定向到http://htcdev.com/ 了。
  內(nèi)核下載在 http://htcdev.com/devcenter/downloads
  對(duì)于HTC G8可以選擇HTC Wildfire – Froyo MR – 2.6.32 kernel source code ,最終下載的文件是
  http://dl4.htc.com/RomCode/Source_and_Binaries/buzz-MR-2.6.32-g8f75634.tar.gz 

  關(guān)于編譯器,從原理上講一般的eabi的ARM 編譯器應(yīng)該都可以。我先用我的arm-linux-gcc 4.2.2 先試一下。
 
 解壓內(nèi)核
   tar xvf buzz-MR-2.6.32-g8f75634.tar.gz
   mv buzz-MR-2.6.32-g8f75634 g8-buzz-2.6.32

 取配置文件
 這個(gè)內(nèi)核是沒(méi)有配置好的內(nèi)核文件備份,因此必須要從一臺(tái)激活的HTC G8手機(jī)取得配置文件。
  
  直接用如下命令 
     adb pull /proc/config.gz 

   取得當(dāng)前內(nèi)核配置,將其解壓
    gunzip config.gz

    cp config g8-buzz-2.6.32/.config

二.編譯內(nèi)核

  修改內(nèi)核編譯器,即內(nèi)核的Makefile
   原來(lái)是  CROSS_COMPILE  ?= arm-eabi- 將其修改成我當(dāng)前的編譯器
    CROSS_COMPILE   ?= arm-linux-
  


  make menuconfig 可以查看其CPU的的類型
   
 
export LANG=en_US.UTF-8
make
第一次編譯報(bào)錯(cuò)
  1. arch/arm/kernel/unwind.c:34:2: error: #warning Your compiler is too buggy; it is known to not compile ARM unwind support.
  2. arch/arm/kernel/unwind.c:35:2: error: #warning Change compiler or disable ARM _UNWIND option.

因此準(zhǔn)備換一個(gè)編譯版本較高的編譯器,換成4.5.1
有編譯錯(cuò)誤

  1. cc1: warnings being treated as errors
  2. init/main.c: In function 'do_one_initcall':
  3. init/main.c:706:10: error: 'calltime.tv64' may be used uninitialized in this function
 
這是未初始化三個(gè)變量
         ktime_t calltime, delta, rettime;
參考這里說(shuō)明
 將代碼更新成
  
  1. /* ktime_t calltime, delta, rettime;*/
  2.     707 DEFINE_KTIME(calltime);
  3.     708 DEFINE_KTIME(delta);
  4.     709 DEFINE_KTIME(rettime);

修正后又碰如下錯(cuò)誤
  1. arch/arm/mm/alignment.c:716:21: error: 'offset.un' may be used uninitialized in this function
  union offset_union offset; 
將其修改為
  716         union offset_union offset = { .un = 0};   

結(jié)果又碰到

  1. kernel/async.c: In function 'async_thread':
  2. kernel/async.c:126:10: error: 'calltime.tv64' may be used uninitialized in this function
  3. kernel/async.c:126:10: note: 'calltime.tv64' was declared here
  4. kernel/async.c: In function 'async_synchronize_cookie_domain':
  5. kernel/async.c:282:10: error: 'starttime.tv64' may be used uninitialized in this function
原因同前,一樣修改

又碰到leds
  1. drivers/leds/leds-microp.c: In function 'microp_led_jogball_brightness_set':
  2. drivers/leds/leds-microp.c:117:2: error: case value '1' not in enumerated type 'enum led_brightness'
  3. drivers/leds/leds-microp.c:121:2: error: case value '3' not in enumerated type 'enum led_brightness'
  4. drivers/leds/leds-microp.c:125:2: error: case value '7' not in enumerated type 'enum led_brightness'
  5. drivers/leds/leds-microp.c: In function 'microp_led_wimax_brightness_set':
  6. drivers/leds/leds-microp.c:163:2: error: case value '1' not in enumerated type 'enum led_brightness'
  7. drivers/leds/leds-microp.c:164:2: error: case value '2' not in enumerated type 'enum led_brightness'
  8. drivers/leds/leds-microp.c:165:2: error: case value '3' not in enumerated type 'enum led_brightness'
  9. drivers/leds/leds-microp.c:166:2: error: case value '4' not in enumerated type 'enum led_brightness'
  10. drivers/leds/leds-microp.c:167:2: error: case value '5' not in enumerated type 'enum led_brightness'
  11. drivers/leds/leds-microp.c:168:2: error: case value '129' not in enumerated type 'enum led_brightness'
  12. drivers/leds/leds-microp.c:169:2: error: case value '130' not in enumerated type 'enum led_brightness'
  13. drivers/leds/leds-microp.c:170:2: error: case value '131' not in enumerated type 'enum led_brightness'

查看include/linux/leds.h 只有如下定義
  1. enum led_brightness {
  2.     LED_OFF        = 0,
  3.     LED_HALF    = 127,
  4.     LED_FULL    = 255,
  5. };

增加定義

又碰到
  1. cc1: warnings being treated as errors
  2. drivers/md/dm.c: In function 'split_bvec':
  3. drivers/md/dm.c:1032:3: error: statement with no effect
  4. drivers/md/dm.c: In function 'clone_bio':
  5. drivers/md/dm.c:1060:3: error: statement with no effect
錯(cuò)誤實(shí)在太多了,沒(méi)辦法只能將-Werror 選項(xiàng)去掉,
即將.config中的 注釋掉
   CONFIG_FORCE_WARNING_AS_ERROR=y

  1. LD vmlinux
  2. SYSMAP System.map
  3. SYSMAP .tmp_System.map
  4. OBJCOPY arch/arm/boot/Image
  5. Kernel: arch/arm/boot/Image is ready
  6. AS arch/arm/boot/compressed/head.o
  7. GZIP arch/arm/boot/compressed/piggy.gz
  8. AS arch/arm/boot/compressed/piggy.o
  9. CC arch/arm/boot/compressed/misc.o
  10. LD arch/arm/boot/compressed/vmlinux
  11. OBJCOPY arch/arm/boot/zImage
  12. Kernel: arch/arm/boot/zImage is ready
  13. Building modules, stage 2.
  14. MODPOST 1 modules
  15. CC drivers/net/wireless/bcm4329_204/bcm4329.mod.o
  16. LD [M] drivers/net/wireless/bcm4329_204/bcm4329.ko
  17. [root@gz g8-buzz-2.6.32]# vi .config
  18. [root@gz g8-buzz-2.6.32]# vim Makefile
  19. [root@gz g8-buzz-2.6.32]# vim .config
  20. [root@gz g8-buzz-2.6.32]# vim Makefile
 
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過(guò)ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP