免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1711 | 回复: 2
打印 上一主题 下一主题

自己制作的嵌入式linux,调试程序报错!attempt to access beyond end of device [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-08-12 15:40 |只看该作者 |倒序浏览
各位朋友好,小弟初学嵌入式linux不久,在移植应用程序后,调试运行时遇到如下问题,
attempt to access beyond end of device
01:00 rw=0 want=4259 limit=4096
input/output error

程序就是那个简单的hellloworld程序。我先给大家介绍一下我的嵌入式linux背景:
1 内核是裁剪的linux-2.4.20,最后是压缩成bzImage映像,大小1.3M 左右;
2 根文件系统是用busybox-1.5.1制作的,编译busybox时选择的静态库编译,并且自己编写了inittab, fstab, 以及 rcS文件,文件系统是initrd.img格式,压缩后大小1.2M左右;
3 bootloader是grub。
需要说明的是我的嵌入式linux没有跨平台编译,这个系统仍然是运行在i386 PC机子上的系统,我将上面的内核,根文件系统,Grub, 制作在我的一个分区大小为540M 硬盘里面,并在我的台式机上启动,能正常启动进入命令行界面,ls,cd,vi等命令皆运行正常。
4 再说helloworld程序的问题,我在RH9下,编辑,编译(gcc-3.2.2),运行正常。然后将这个可执行文件hello放在根文件系统的/usr/bin下,并且将hello运行所需的动态库(用ldd hello 命令得到运行hello所依赖的两个动态库)放在了/lib下,然后重新编译这个根文件系统,并将这个根文件系统移植到硬盘里。
再次启动运行,一切正常,进入到 /usr/bin下,有可执行文件hello,然后使用运行命令
./hello
则出现上面所显示的问题   
attempt to access beyond end of device
01:00 rw=0 want=4259 limit=4096
input/output error
请大家不吝赐教,这是什么问题所引起的,该如何解决。谢谢!!!
另:另有一个疑问就是,我在编译busybox的时候选择了静态库编译,那么我在移植应用程序的时候是否还必须要用ldd 命令查出hello运行依赖的动态库,并添加到/lib下面去啊???起初的时候我是没有做这一步的,只是添加了hello到/usr/bin下,但是重新制作了系统后运行没有成功,后查资料,做了这一步 , 出现了上述问题。

论坛徽章:
0
2 [报告]
发表于 2010-08-12 15:42 |只看该作者
大家帮小弟 分析一下啊 不胜感激!
也查了一些资料,有的说“如果用了ramdisk, 在启动配置文件里,增大ramdisk_size!!”,也有的说可能是“硬盘问题”
但我自己感觉可能是根文件系统的原因,毕竟是自己裁剪了内核,制作了根文件系统(ramdisk盘),根据资料修改了 /etc/inittab /etc/fstab /etc/profile /etc/init.d/rcS等文件的内容。系统是能正常启动的,就是加了这个hello(已经在pc上面 用gcc3.2.2编译好了的可执行文件),再进入到这个系统中,用./hello 运行时出错。
请大家 做嵌入式linux裁剪 移植的 不吝赐教。小弟会根据已经重新做实验的。谢谢!!!!!

论坛徽章:
0
3 [报告]
发表于 2010-08-16 14:58 |只看该作者
helloworld代码贴出来看看.
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP