Chinaunix首页 | 论坛 | 博客
  • 博客访问: 2278558
  • 博文数量: 668
  • 博客积分: 10016
  • 博客等级: 上将
  • 技术积分: 8588
  • 用 户 组: 普通用户
  • 注册时间: 2008-05-29 19:22
文章分类

全部博文(668)

文章存档

2011年(1)

2010年(2)

2009年(273)

2008年(392)

分类:

2008-10-24 15:07:09

解决方法1

     在为S3C2410或其他平台编译运行busybox的时候,可能会遇到 can't access tty; job control turned off 的警告,网上关于这个错误的文章很多,完全照搬网上的方法是行不通的,需要找到解决问题的真正方法。

    其实这个问题的实质是busybox系统没有使用真正的串口设备,而是使用虚拟控制台。所以我们可以按照以下步骤来解决:(s3c2410为例)

1. cd busybox; makemenuconfig; init菜单里选择Support running commands with a controlling-tty,是busybox在真实的串口设备中运行命令行;

2. 启动嵌入式系统,修改/etc/inittab文件,使命令行运行在真实的串口设备中,

/etc/inittab写入

console::sysinit:-/etc/rcS

ttySAC0::respawn:/sbin/getty -L ttyS0 115200 vt100

3. 设置好上面的信息后,需要创建串口设备文件(当然你可以使用devfs,不推荐), 在命令行输入: cat /proc/devices

显示如下:

Character devices:

1 mem

2 pty

3 ttyp

204 S3C2410 tty

10 misc

108 ppp

180 usb

Block devices:

8 sd

31 mtdblock

找到主设备好为204的设备,然后创建设备文件mknod -m 666 /dev/ttySAC0 c 204 64

重新启动系统后,问题就解决了。

使用busybox建立嵌入式linux时遇到如题问题,解决如下:

解决方法2

根据说明,这个问题是shell运行在/dev/console上造成的,可以让shell运行在/dev/tty1/dev/ttyS0上解决。

我是这样解决的:

1、删除原有/dev/console这个设备节点

          rm /dev/console

2、用tty1代替

          mknod -m 600 tty1 c 4 1

         ln -s /dev/tty1 /dev/console

==========================

busybox提示can't access tty.job control turned off 解决方法
/etc/inittab写法如下
对于X86:
tty1::respawn:/sbin/getty 38400 tty1
tty2::respawn:/sbin/getty 38400 tty2
对于ARM:
首先确保在/dev/ttyS0存在,否则自己在/linuxrc或/etc/rcS或/urs/local/rc.local中加入
ln -s /dev/tts/0 /dev/ttyS0
ln -s /dev/vc/0 /dev/tty0
ln -s /dev/vc/1 /dev/tty1
ln -s /dev/vc/2 /dev/tty2
注意:确保在执行下面的语句前在/dev下建立ttyS0
方法1:
/etc/inittab写入
console::sysinit:-/etc/rcS
ttyS0::respawn:/sbin/getty -L ttyS0 115200 vt100
方法2:
/etc/inittab写入
console::sysinit:-/etc/rcS
ttyS0::respawn:-/bin/sh
前者需要登陆验证,会出现提示输入用户名和密码,后者不会
方法3:
修改内核源码
在内核源码drivers/char/tty_io.c中将
noctty = 1
改为
noctty = 0
然后
/etc/inittab可以使用默认的,也可以写成:
console::sysinit:-/etc/rcS
console::respawn:/sbin/getty console 115200 ttyS0
阅读(3101) | 评论(0) | 转发(2) |
给主人留下些什么吧!~~