转自:http://blog.sina.com.cn/u/1704849371
问题现象:
移植完busybox后开机启动,在终端中打印出一条:/bin/sh: can't access tty; job controlturned off信息
问题分析:
如果存在/etc/inittable文件,Busybox init程序解析它,然后按照他的指示创建各种子进程,否则使用默认的配置创建子进程.
/etc/inittable文件中每个条目用来定义一个子进程,并确定它的启动方法,格式定义如下:
<id>:<runlevels>:<action>:<process>
例如:
ttySAC0::askfirst:-/bin/sh
对于Busybox init进程,上述各个字段作用如下:
<id>:
<runlevels>:对于busyboxinit程序,这个字段没有意思,可以省略。
<action>:表示init进程如何控制这个子进程。
<process>:要执行的程序,它可以只可执行程序,也可以是脚本
如果<process>字段前有“-”字符,这个程序被称为“交互的”
所以:::sysinit:/bin/sh 使用的是和init进程一样的控制台
而我们的console使用的是ttySAC0,所以就报错了。
问题解决办法:
修改/etc/inittable
::sysinit:/etc/init.d/rcS
::sysinit:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
修改如下:
#System initialization by xiongjinfei
::sysinit:/etc/init.d/rcS
ttySAC0::sysinit:/bin/sh
::ctrlaltdel:/sbin/reboot
::shutdown:/bin/umount -a -r
转自:http://486198.blog.51cto.com
可能原因:
1、 busybox核心配置过程中
shells-->[ ]Job control 不选择
[*]cttyhack 必须选择,否则sh无法工作
2、网上有部分说该提示是由于dma通道问题,换光驱启动即可。