QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 1804|回复: 13

求助:我在skyeye下运行armlinux出现的问题

[复制链接]
发表于 2006-4-4 20:50:26 | 显示全部楼层 |阅读模式
个位帮帮忙
我将交叉编译好的minigui编写的程序的可执行文件做成了romfs.img的镜像,并修改了skyeye.conf
,引导vmlinux后,在 run之后出现 一下问题 :
VFS: Mounted root (romfs filesystem).
Freeing init memory: 72K
Warning: unable to open an initial console.
Kernel panic: No init found.  Try passing init= option to kernel.
发表于 2006-4-5 08:47:00 | 显示全部楼层
It is very possible that your filesystem have not /dev/console file. Please check your romfs.img
回复

使用道具 举报

 楼主| 发表于 2006-4-5 20:42:29 | 显示全部楼层
多谢版主的回答,
console文件我已经有了
crw-r--r--    1 root     root       5,   1  4月  4 15:17 console
用genromfs工具\制作了ROMFS类型的目标根文件映象,也修改了skyeye.conf文件中的相应选项,使skyeye装载指定的映象\文件.
我是用busybox1.1.1作的文件系统
回复

使用道具 举报

发表于 2006-4-6 18:10:27 | 显示全部楼层
串口驱动是否加进去了
回复

使用道具 举报

 楼主| 发表于 2006-4-7 15:52:16 | 显示全部楼层
多谢ganganwen的解答,串口驱动是不是在编译内核的时候加进去的?能不能说的具体点?
我再仔细看了下加载过程,发现有出现这个错误:Can't allocate major number 31 for Memory Technology Devices.
应该是这个错误导致的:Kernel panic: No init found. Try passing init= option to kernel.
但是我这个错误没找到具体的解决办法,各位高手能否指点下
回复

使用道具 举报

发表于 2006-4-7 16:40:23 | 显示全部楼层
串口驱动是在编译内核的时候加进去的
在Character drivers中serial support之类的选项就是

Can't allocate major number 31 for Memory Technology Devices
就是说你MTD设备没有注册成功,这个应该影响不大
不知道模拟什么板子?信息多给一些
回复

使用道具 举报

 楼主| 发表于 2006-4-11 10:33:12 | 显示全部楼层
再次感谢ganganwen的解答
我是想在redhat9.0下用skyeye下对EP7312的模拟,
我在编译内核的时候选了CLPS711X serial port support 和 support for console on CLPS711X serialport,我的内核用的是linux-2.4.13-patched-for-EP7312
回复

使用道具 举报

发表于 2006-4-11 13:52:01 | 显示全部楼层
那要看你这个驱动是否正确是否已经注册成功
最好就用skyeye来调试一下,跟如sys_open函数
然后看哪里出了问题
回复

使用道具 举报

 楼主| 发表于 2006-4-12 10:56:57 | 显示全部楼层
这位大哥能否说的具体点
回复

使用道具 举报

发表于 2006-4-12 11:42:51 | 显示全部楼层
其实你能够打印出信息 说明你console的驱动程序是好的
然后你又说你有/dev/console文件,我想只有是没有注册console这个设备了
可以先这样 把main.c文件中if (open("/dev/console", O_RDWR, 0) < 0))
改成if (open("/dev/ttyS0", O_RDWR, 0) < 0))看看
回复

使用道具 举报

 楼主| 发表于 2006-4-13 16:26:37 | 显示全部楼层
多谢你一直在回答我的问题
  你上面的方法我试过了,不行啊,
  我是在redhat9下想用skyeye模拟EP7312,内核用的是linux-2.4.13-pached-for-EP7312,文件系统是用busybox1.1.1制作的,运行skyeye后装载内核是出现Kernel panic: No init found. Try passing init= option to kernel.我看了加载过程,发现有出现这个错误:Can't allocate major number 31 for Memory Technology Devices.
  我用Can't allocate major number 31 for Memory Technology Devices. 在google里搜索,发现有有个邮件讲到这个问题,他是通过disable the blkmem driver in the kernel config, and rebuild the kernel. 解决了这个问题,但是我在编译内核的时候一直没找到怎样disable the blkmem driver
回复

使用道具 举报

发表于 2006-4-14 09:37:12 | 显示全部楼层
Can't allocate major number 31 for Memory Technology Devices
是说你注册MTD设备不成功,这是因为MTD中的MTDBLOCK和BLKMEM驱动使用的是相同的主设备号
你要屏蔽这个错误只有在内核中任选一个,或者改变其中一个设备的主设备号就可以了
我不知道你SKYEYE是什么版本,有没有模拟FLASH,支不支持MTD
如果没有FLASH支持的话blkmem就够了,看你用blkmem是成功加载文件系统了的
“Kernel panic: No init found. Try passing init= option to kernel. “
其实就算你没有打开console也应该可以执行用户层的程序的,而不会出现这个提示信息
请确认你的busybox是否静态编译了
回复

使用道具 举报

 楼主| 发表于 2006-4-14 16:00:43 | 显示全部楼层
我的skyeye用的是0.8.6版本,使用的交叉编译工具是arm-linux-cross-2.95.3
busybox已经静态编译了
编译内核时在MTD里我选择了下面几项:
  Direct char device access to MTD divices 和 Caching block device access to MTD devices  以及在RAM/ROM/Flash chip drivers下面选择了Detect flash chiips by Common Flash Interface (CFI)   
probe 和 Support for Intel /Sharp flash chips 在内核中我一直没发现BLKMEM的选项,
对skyeye有没有模拟FLASH,支不支持MTD 不是很清楚
回复

使用道具 举报

发表于 2006-4-14 17:05:24 | 显示全部楼层
把mtd的选项去掉,就可以解决你那个“Can't allocate major number 31 for Memory Technology Devices ”的错误,因为skyeye对它并没有支持

接下来的错误就比较麻烦 建议跟踪调试 才容易解决
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-2 22:32 , Processed in 0.049837 second(s), 15 queries .

© 2021 Powered by Discuz! X3.5.

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