如何解决W / art:无法使用图像文件创建图像空间' /system/framework/boot.art'试图在Arndale Board上移植Android棒棒糖?

时间:2015-07-03 15:16:49

标签: android linux multithreading linux-kernel

Iam试图在arndale主板上移植Android Lollipop,我正面临关于ART崩溃的问题(AndroidRunTime)。

> I/art ( 2264): RelocateImage: /system/bin/patchoat
> --input-image-location=/system/framework/boot.art --output-image-file=/data/dalvik-cach6 F/libc ( 2443): No [stack] line found in "/proc/self/task/2443/maps"! F/libc ( 2443): Fatal signal 6
> (SIGABRT), code -6 in tid 2443 (patchoat) W/art ( 2702): Could not
> create image space with image file >/system/framework/boot.art.
> Attempting to fall back to imageless running

输入后的步骤

1.从下面的链接下载vexpress android L 32位代码。 http://releases.linaro.org/15.05/android

2.从http://releases.linaro.org/14.08/android/arndale

下载带有3.9内核的arndale android KK 32位源代码

3.使用从步骤2下载的arndale KK 3.9内核源替换步骤1中代码下载的Vexpress内核源代码。

4.用Arndale HAL(device / linaro / arndale)替换Vexpress HAL(device / linaro / vexpress)。

5.解决与仿生和构建环境相关的轻微恭维问题。

在闪烁图像并打开电路板后,我陷入了android徽标和内核崩溃

> >37.790000] Internal error: Oops: 5 [#1] PREEMPT SMP ARM Modules linked in: CPU: 0    Tainted: G        W     (3.9.1 #8) [   37.790000]
> CPU: 0    Tainted: G        W     (3.9.1 #8) PC is at
> __copy_to_user_std+0x4c/0x3a8 [   37.790000] PC is at __copy_to_user_std+0x4c/0x3a8 LR is at 0x6c000000
> >[   37.790000] LR is at 0x6c000000

和logcat给出

> >I/art ( 2264): RelocateImage: /system/bin/patchoat --input-image-location=/system/framework/boot.art --output-image-file=/data/dalvik-cach6 F/libc ( 2443): No [stack] line found in "/proc/self/task/2443/maps"! F/libc ( 2443): Fatal signal 6
> (SIGABRT), code -6 in tid 2443 (patchoat) W/art ( 2702): Could not
> create image space with image file >/system/framework/boot.art.
> Attempting to fall back to imageless running.

确实失败的要点

1.ART从art / runtime / thread.cc调用Thread :: InitStackHwm。

2.上面的调用在bionic / libc / bionic / pthread_attr.cpp中触发__pthread_attr_getstack_main_thread(stack_base,stack_size),返回此处的输入代码中找不到[stack]行/ proc / self / task / 2443 / maps!和ART崩溃给SIG_ABORT,似乎没有为2443线程创建堆栈,但如何解决这个问题?

如果有人能帮助我解决这个问题,那就太好了。

谢谢, Devarsh

0 个答案:

没有答案