LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1156|回复: 14

在单片机上无法加载init,何故?

[复制链接]
发表于 2006-5-17 10:02:00 | 显示全部楼层 |阅读模式
单片机CPU为RDC3210,频率270MHZ,x86指令集,无协处理器。
我在编译内核时将CPU设置为386,并选择了协处理器模拟。
在PC以及虚拟机中测试均正常,但是在该单片机中测试内核能顺利加载,但是加载完之后却不继续运行init了,停在

Freeing unused kernel memory: 120k freed
input: ImPS/2 Generic Wheel Mouse as /class/input/input1

无论等多久都不再继续往下走,这时候键盘能输入字符。


现象就是这样,请大家帮我分析分析,谢谢。
发表于 2006-5-17 11:21:58 | 显示全部楼层
你的init放在那里了? 是flash芯片吗? 如果加载kenerl的时候没有指定root设备, kernel没办法找到init程序. init程序必须在root设备的/bin下或者/sbin下.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-17 12:02:13 | 显示全部楼层
init在/sbin下,系统是装在硬盘里的,用这块硬盘挂到PC上都能正常启动
回复 支持 反对

使用道具 举报

发表于 2006-5-17 12:37:33 | 显示全部楼层
我觉得好象还没有到init这步,有点像是内核中某个驱动的问题.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-17 14:34:21 | 显示全部楼层
到这一步应该跟驱动无关了吧,所有驱动都已经加载完成了,驱动是直接编译到内核中的,没有选择动态模块加载支持。
我在PC上仔细观察过系统启动的步骤,到这之后立即就是init
回复 支持 反对

使用道具 举报

发表于 2006-5-17 16:57:59 | 显示全部楼层
试试直接指定 init=/bin/bash 看看是什么结果?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-17 17:26:49 | 显示全部楼层
之前就试过了,直接指定init=/bin/bash在PC上没有问题能进入shell提示符界面,在单片机上涛声依旧 >_<
回复 支持 反对

使用道具 举报

发表于 2006-5-17 23:02:22 | 显示全部楼层
你的单片机和硬盘是怎么接的, 在kernel启动的message里有hda, sda之类的硬盘信息吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2006-5-18 08:31:49 | 显示全部楼层
用PCI-IDE卡接的硬盘,启动的时候检测硬盘设备为hda.
内核已经编译了PCI-IDE支持
回复 支持 反对

使用道具 举报

发表于 2006-5-18 10:36:46 | 显示全部楼层
如果能监测到硬盘hda, 应该能读出分区表, 你是用PC机连接串口显示kenerl信息, 还是单片机连接上了显卡之类的设备.
init默认的输出信息到/dev/tty0, 而console口是ttyS0, 如果是用console的话, 将/dev/tty0 和 /dev/ttyS0使用相同的设备号.
回复 支持 反对

使用道具 举报

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

本版积分规则

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