Chinaunix首页 | 论坛 | 博客
  • 博客访问: 387020
  • 博文数量: 39
  • 博客积分: 1982
  • 博客等级: 上尉
  • 技术积分: 468
  • 用 户 组: 普通用户
  • 注册时间: 2010-01-07 13:47
文章分类

全部博文(39)

文章存档

2012年(5)

2011年(16)

2010年(18)

分类: 嵌入式

2010-08-02 11:17:32

Illegal instruction的解决?2009-02-20 09:25最近捣鼓maemo,发现其下编绎的文件,file一下,提示如下:
busybox: ELF 32-bit LSB executable, ARM, version 1 (SYSV), for GNU/Linux 2.6.8, statically linked, stripped
与普通的编绎下面的对比下:
busybox: ELF 32-bit LSB executable, ARM, version 1 (ARM), for GNU/Linux 2.4.3, statically linked, for GNU/Linux 2.4.3, stripped
试验了下,SYSV格式的busybox(静态的编译的,在文件系统起来之后无法执行),提示:
# ./busybox
Illegal instruction
该问题还得想办法解决,从网上搜到的资料来看,主要有两种可能性:
 1、符点问题
 2、现SYSV相关的问题
 3、内核的问题
附:搜到一些关于 SYSV的解释
sysV是UNIX的两大分支之一,现在的UNIX和类UNIX系统根据其发展分支可以分为sysV分支和BSD分支,这两个分支是最初的UNIX分化出来的最初的AT&T实验室的UNIX系统到了第5版,也是就system V (sysV) 后就分化成了BSD分支和sysV分支, 两者的最大区别就是启动过程的运行等级机制有很大区别. linux是sysV风格的UNIX系统,freeBSD是BSD风格的UNIX系统, 但是现在这个界限也在慢慢模糊掉, 两种分支的系统取长补短,相互渗透.还有一种可能性:  maemo下自带的编译器支持新的嵌入式应用程序二进制接口标准EABI,而kernel,首先并未打开对eabi的支持,其次,kernel编绎使用的是非EABI的编译器。  (实验失败,无法证明是内核问题还是编译器问题,总之和EABI脱不了关系)
又找到一种可能性:  来源:  可能是有busybox引起的
昨天在牛人的帮助下,终于解决了Illegal instruction的问题(PS:重新编译下了交叉工具链)
阅读(7081) | 评论(1) | 转发(0) |
给主人留下些什么吧!~~

nupt_lu_uye2012-02-24 20:11:24

请问一下具体是如何解决的 我也有这个问题 重新编译一下交叉工具指的是重新编译下arm-linux-gcc还是重新编译一下busybox