九鼎创展论坛中文版English
登录 | 立即注册 设为首页收藏本站 切换到宽版
查看: 5191|回复: 11
打印 上一主题 下一主题

根据x4418的最新资料,编译内核成功,启动内核报错?

[复制链接]
跳转到指定楼层
楼主
发表于 2015-8-30 15:52:27 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 duwu891229 于 2015-8-30 16:10 编辑

采用的交叉工具链是:gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux(buildroot下载的)

编译脚本片段:
  1. toolchain_dir=/home/duwu/arm-linux/x4418/buildroot-2015.05/output/host/usr/bin
  2. PATH=$PATH:$toolchain_dir
  3. cross_compile=arm-linux-gnueabihf-

  4. kernel_config=x4418_defconfig
  5. make_kernel(){
  6.         cd ${kernel_dir} || return 1

  7.         make clean
  8.         make ${kernel_config}
  9.         make uImage ARCH=arm CROSS_COMPILE=${cross_compile}

  10.         echo "finish make kernel"
  11.         return 0
  12. }
复制代码


打包脚本片段:
  1. x4418_dir=/home/duwu/arm-linux/x4418
  2. prod_dir=$x4418_dir/camera_prod
  3. #
  4. tool_dir=$prod_dir/tool
  5. PATH=$tool_dir:$PATH
  6. output_dir=$prod_dir/output
  7. kernel_dir=$x4418_dir/kernel
  8. #
  9. cp $kernel_dir/arch/arm/boot/uImage $output_dir/boot || return 1
  10. mkuserimg.sh -s ${output_dir}/boot ${output_dir}/boot.img ext4 boot 67108864
复制代码


使用fastboot烧写内核,启动信息:
[    0.179000] PTP clock support registered
[    0.180000] ###################### x4418 board #######################
[    0.182000] web:www.9tripod.com
[    0.183000] bbs:www.bbs.9tripod.com
[    0.184000] tel:0755-33133436 0755-33121205
[    0.185000] Baoan District City,Shenzhen Industrial Road Internet inductry base 3003B District B
[    0.186000] Shen Zhen 9tripod innovation and development co.,ltd
[    0.187000] ##########################################################
[    0.193000] axp_mfd 3-0034: AXP (CHIP ID: 0x06) detected
[    0.198000] [x4418] axp22_ldo1: 3000 mV
[    0.201000] [x4418] axp22_aldo1: 700 <--> 3300 mV at 3300 mV
[    0.204000] [x4418] axp22_aldo2: 700 <--> 3300 mV at 1800 mV
[    0.207000] [x4418] axp22_aldo3: 700 <--> 3300 mV at 1000 mV
[    0.210000] [x4418] axp22_dldo1: 700 <--> 3300 mV at 3300 mV
[    0.213000] [x4418] axp22_dldo2: 700 <--> 3300 mV at 1800 mV
[    0.217000] [x4418] axp22_dldo3: 700 <--> 3300 mV at 700 mV
[    0.220000] [x4418] axp22_dldo4: 700 <--> 3300 mV at 700 mV
[    0.223000] [x4418] axp22_eldo1: 700 <--> 3300 mV at 1800 mV
[    0.226000] [x4418] axp22_eldo2: 700 <--> 3300 mV at 3300 mV
[    0.229000] [x4418] axp22_eldo3: 700 <--> 3300 mV at 700 mV
[    0.232000] [x4418] axp22_dc5ldo: 700 <--> 1400 mV at 1200 mV
[    0.235000] [x4418] axp22_dcdc1: 1600 <--> 3400 mV at 3300 mV
[    0.238000] [x4418] axp22_dcdc2: 600 <--> 1540 mV at 1100 mV
[    0.241000] [x4418] axp22_dcdc3: 600 <--> 1860 mV at 1100 mV
[    0.244000] [x4418] axp22_dcdc4: 600 <--> 1540 mV at 1500 mV
[    0.247000] [x4418] axp22_dcdc5: 1000 <--> 2550 mV at 1500 mV
[    0.250000] [x4418] axp22_ldoio0: 700 <--> 3300 mV at 3800 mV
[    0.253000] [x4418] axp22_ldoio1: 700 <--> 3300 mV at 3800 mV
[    0.255000] axp22-supplyer axp22-supplyer.19:  AXP228_BATTERY_VERSION2015.02.15:modify)
[    0.256000] axp charger not limit now
[    0.271000] now_rest_vol = 100
[    0.273000] Advanced Linux Sound Architecture Driver Version 1.0.25.
[    0.274000] Bluetooth: Core ver 2.16
[    0.275000] NET: Registered protocol family 31
[    0.276000] Bluetooth: HCI device and connection manager initialized
[    0.277000] Bluetooth: HCI socket layer initialized
[    0.278000] Bluetooth: L2CAP socket layer initialized
[    0.279000] Bluetooth: SCO socket layer initialized
[    0.281000] cfg80211: Calling CRDA to update world regulatory domain
[    0.283000] Switching to clocksource source timer
[    0.305000] Unable to handle kernel NULL pointer dereference at virtual address 00000001
[    0.313000] pgd = 80004000
[    0.316000] [00000001] *pgd=00000000
[    0.320000] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[    0.320000] Modules linked in:
[    0.320000] CPU: 0    Not tainted  (3.4.39 #3)
[    0.320000] PC is at kmem_cache_alloc_trace+0x6c/0x1f4
[    0.320000] LR is at kmem_cache_alloc_trace+0xfc/0x1f4
[    0.320000] pc : [<8011a068>]    lr : [<8011a0f8>]    psr: 20000013
[    0.320000] sp : b3843ec8  ip : 000020c4  fp : 00000001
[    0.320000] r10: b3842008  r9 : 80900cbe  r8 : b3802200
[    0.320000] r7 : 00000080  r6 : 802b545c  r5 : 000000d0  r4 : 00000001
[    0.320000] r3 : 808dd0c8  r2 : 00000000  r1 : b3842000  r0 : 00b65000
[    0.320000] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment kernel
[    0.320000] Control: 10c5387d  Table: 4000404a  DAC: 00000015
回复

使用道具 举报

沙发
发表于 2015-8-31 09:11:50 | 只看该作者
下载最新的光盘编译,用我们配置好的,脚本什么的全做好了。
回复 支持 反对

使用道具 举报

板凳
 楼主| 发表于 2015-8-31 10:10:43 | 只看该作者
本帖最后由 duwu891229 于 2015-8-31 10:22 编辑

我下的是你们8/28/2015给的链接。

交叉工具链使用的是gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux,因为使用buildroot构建的根文件系统,用的也是这个工具链。

编译内核脚本也就这两句:
make x4418_defconfig
make uImage ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

我单独提取你们源码包中kernel和prototype文件夹,编译不报错,说明不缺少文件。

打包内核为boot.img的脚本:
是没有问题的,因为我使用你们提供的uImage单独打包,启动内核没问题。

我使用linux,不大可能完全照搬你们的android脚本去编译内核,因为太大,许多问题一步到位,出了问题没法分割。
我只能多尝试几次。
回复 支持 反对

使用道具 举报

地板
发表于 2015-8-31 10:59:27 | 只看该作者
内核不在这里编译的,内核是在android源码中编译
回复 支持 反对

使用道具 举报

5#
发表于 2015-8-31 10:59:47 | 只看该作者
不需要你改任何东西,直接把android源码包解压,./mk -k就可以了
回复 支持 反对

使用道具 举报

6#
 楼主| 发表于 2015-8-31 11:37:31 | 只看该作者
本帖最后由 duwu891229 于 2015-8-31 11:44 编辑

linux内核源码文件:使用你们发布的源码包中kernel和prototype文件夹。

linux内核编译脚本:交叉工具链配置可以自主选择,配置好环境,2句话就结了。
make x4418_defconfig
make uImage ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf-

目前按上面2条,可以成功生成uImage但内核启动报错。启动报错与是否使用你们脚本根本无关,
要么是工具链选取的问题,要么是内核中有些一些奇怪的东西。

如果按上面2条都没得到一个正常启动的的内核,那么4418的Linux开发,对于内核的任何修改,都没法保障是对的。
回复 支持 反对

使用道具 举报

7#
发表于 2015-9-1 08:49:13 | 只看该作者
用我们的方式是没有任何问题的
回复 支持 反对

使用道具 举报

8#
发表于 2015-9-1 08:50:02 | 只看该作者
linux和android的内核本身是不能兼容的,我们做了兼容性处理,会根据环境变量自动判断
回复 支持 反对

使用道具 举报

9#
 楼主| 发表于 2015-9-1 09:30:40 | 只看该作者
本帖最后由 duwu891229 于 2015-9-1 09:43 编辑

把工具链(buildroot生成的)
#toolchain_dir=/home/duwu/arm-linux/x4418/buildroot-2015.05/output/host/usr/bin
#PATH=$PATHtoolchain_dir
#cross_compile=arm-linux-gnueabihf-

更换为(原来210使用的)
toolchain_dir=/home/duwu/arm-linux/x210/arm-linux-gcc-4.4.1/bin
PATH=$PATHtoolchain_dir
cross_compile=arm-linux-

内核可以正常启动,这个结果与你们的兼容性处理有关系吗?

你们的兼容性处理,在mk脚本中内核生成部分中是没有的。唯一能看到也就是内核代码树中android文件夹和外部的prototype文件夹。

我觉得目前的结果表明,内核启动失败与工具链选取有关,感觉和“浮点配置”有关。

你们能尝试使用gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux(linux文档中buildroot所选取的工具链),

编译内核,问题就能重现

回复 支持 反对

使用道具 举报

10#
发表于 2015-9-1 10:11:10 | 只看该作者
我们并没有用gcc-linaro-arm-linux-gnueabihf-4.9-2014.09_linux去尝试编译内核,只是用它编译了buildroot和QT,内核仍然是用的android默认的
回复 支持 反对

使用道具 举报

11#
发表于 2015-9-1 10:11:25 | 只看该作者
不建议换其他工具链编译,除非你对这个相当熟悉
回复 支持 反对

使用道具 举报

12#
 楼主| 发表于 2015-9-1 10:22:25 | 只看该作者
好吧,结贴了。
水平不够只能使用两套工具链开发。
高玩任意。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|深圳市九鼎创展科技官方论坛 ( 粤ICP备11028681号-2  

GMT+8, 2024-6-17 20:45 , Processed in 0.034675 second(s), 16 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表