免费注册 查看新帖 |

Chinaunix

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

利用busybox制作ramdisk,启动后出现can't open /dev/co...错误! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-03 10:03 |只看该作者 |倒序浏览
8可用积分
昨天利用busybox做了个简单的ramdisk,然后将其放到mpc8315主板上跑,启动信息如下:
............
RAMDISK: Compressed image found at block 0
VFS: Mounted root (ext2 filesystem).
Freeing unused kernel memory: 164k init

Processing /etc/profile... Done

can't open /dev/co: No such file or director
can't open /dev/co: No such file or director
can't open /dev/co: No such file or director
can't open /dev/co: No such file or director
................

然后重复不断出现。
/dev/co中的“co”是我etc/inittab文件中的串口终端的标号,我的etc/inittab文件如下,其中缺失的行号是注释,为方便看将其去掉:
1 # /etc/inittab

     15
     24 null::sysinit:/bin/mount -o remount,rw /
     25 null::sysinit:/bin/mount -t proc proc /proc
     26 null::sysinit:/bin/mount devpts /dev/pts -t devpts
     27 null::sysinit:/bin/mount sysfs sysfs /sys
     28
     29 null::sysinit:/bin/mount -a
     30
     43 ttyS0::respawn:-/bin/sh
     44 # Startup the system

     45 null::sysinit:/etc/init.d/rcS
     46
     65
     66 co:2345:respawn:/sbin/getty ttyS0 115200 vt100
     75
     76 null::shutdown:/bin/umount -a
     77
     78 ::restart:/sbin/init
     79 ::ctrlaltdel:/sbin/reboot
     80 ::shutdown:/bin/umount -a -r
     81 ::shutdown:/sbin/swapoff -a


我排除了一些原因,最终认为是busybox的问题,因为使用很久之前的一个busybox编译得来的_install/{bin,sbin,linuxrc}是没有问题的,而采用我自己重新编译的busybox-1.13.0.tar.gz才会出现这样的问题,之前使用的busybox是v1.1.3,太古老了。我已经从官网上下载了busybox-1.11,busybox-1.12,busybox-1.14等源码进行编译,都不行,也都出现该问题。
对于busybox-1.13.0的编译,我做了以下操作:
1.选择静态编译
2.不使用/usr目录
3.加入交叉编译工具链 完整路径/powerpc-linux-
就这样然后make make install
对于有说要make ARCH=powerpc或者ARCH=ppc我都试过,一样的问题。

所以看看CU上没有人遇到过这种问题,给些参考意见,十分感谢!
PS:我在发帖之前,首先搜索了相关贴,发现所有的使用busybox制作ramdisk的贴都是一模一样的,怪了,这些人转帖都转同一个贴的,呵呵~

[ 本帖最后由 wendy0552 于 2009-7-3 11:01 编辑 ]

最佳答案

查看完整内容

参考 busybox src 下 examples/inittab

论坛徽章:
0
2 [报告]
发表于 2009-07-03 10:03 |只看该作者
参考 busybox src 下 examples/inittab

论坛徽章:
0
3 [报告]
发表于 2009-07-03 13:54 |只看该作者
樓主是什麼問題,拿出來分享下撒

论坛徽章:
0
4 [报告]
发表于 2009-07-03 14:32 |只看该作者
串口名字不对?

论坛徽章:
0
5 [报告]
发表于 2009-07-06 16:50 |只看该作者
不好意思,这两天在忙别的事情,今天一登录吓我一大跳,怎么最佳答案都选出来了,我还没试过呢!
赶紧把busybox下example/inittab复制过去,看起来该文件跟我之前的inittab文件相差不多,我加入了mount部分,其修改后的inittab如下所示:

     57 null::sysinit:/bin/mount -o remount,rw /
     58 null::sysinit:/bin/mount -t proc proc /proc
     59 null::sysinit:/bin/mount devpts /dev/pts -t devpts
     60 null::sysinit:/bin/mount sys sys /sys
     61
     62 null::sysinit:/bin/mount -a
     63 ::sysinit:/etc/init.d/rcS
     64
     72 # Start an "askfirst" shell on the console (whatever that may be)
     73 ::respawn:-/bin/sh
     82
     83 # Example of how to put a getty on a serial line (for a terminal)
     84 ::respawn:/sbin/getty -L ttyS0 115200 vt100
     85 #::respawn:/sbin/getty -L ttyS1 9600 vt100
     86 #
     87 # Example how to put a getty on a modem line.
     88 #::respawn:/sbin/getty 57600 ttyS2
     89
     90 # Stuff to do when restarting the init process
     91 ::restart:/sbin/init
     92
     93 # Stuff to do before rebooting
     94 ::ctrlaltdel:/sbin/reboot
     95 ::shutdown:/bin/umount -a -r
     96 ::shutdown:/sbin/swapoff -a


则原先的错误虽然没有了,但新的问题又来了,进入终端后它不断打印出如下信息:
# getty: ttyS0: TCGETS: Invalid argument
getty: ttyS0: TCGETS: Invalid argument
getty: ttyS0: TCGETS: Invalid argument
getty: ttyS0: TCGETS: Invalid argument
getty: ttyS0: TCGETS: Invalid argument
getty: ttyS0: TCGETS: Invalid argument

就这样一直重复着,所以问题仍然没有解决,另外如果不加上mount部分,也是同样的情况。

PS:uboot传递过来的参数是console=ttyS0,115200。

所以版主赶紧把最佳答案的人找来,继续帮我解决下,嘿嘿。。

论坛徽章:
0
6 [报告]
发表于 2009-07-06 18:23 |只看该作者
系统已经告诉你错误了啊,
用的那个 getty, 看他的源码中 ioctl   TCGETS 的地方的说明。

论坛徽章:
0
7 [报告]
发表于 2009-07-07 10:42 |只看该作者
问题已经解决了!
本来我想按照楼上说的去查看getty的源码,位于loginutils/getty.c,我本来想跟踪一下,于是就把DEBUGGING宏定义打开,谁知道打开这个宏后就搞定了。
然后我想了一下,觉得应该是我把debug信息输出打开后,上面出现的错误就输出到后台去了,所以前面的错误提示就没有了。
好了,不管怎么样,问题解决了,谢谢connet同学,最佳答案给你了,我没有意见。

论坛徽章:
0
8 [报告]
发表于 2009-07-07 16:28 |只看该作者
本来以为已经搞定了,可是不知道怎么回事,当我后来重新引导的时候出现了以下的错误"-/bin/sh: can't access tty; job control turned off",而且退格键都变为^H,TAB键也不能用,另外会重复打印一次命令。
在前次能用和不能用期间,我对这个文件系统没有进行修改,只是加了点其它的命令而已。
另:我搜索了相关的问题,说是要改inittab或者内核,内核我不想修改,所以改了inittab文件,可以让这条信息不显示出来,但是空格键,TAB不能使用的问题还是没有解决,所以恳请各位再帮我出出主意,谢谢!

#####find init and run it######44k i?

Processing /etc/profile... Done

# -/bin/sh: can't access tty; job control turned off

Processing /etc/profile... Done

# ls
ls
bin         home        lost+found  root        tmp         var
dev         lib         mnt         sbin        tools
etc         linuxrc     proc        sys         usr
# ls^H^H^H^H
  
#

论坛徽章:
0
9 [报告]
发表于 2009-07-08 09:05 |只看该作者
看来我得重新开个贴了,这个问题很着急,网上搜索不到相关资料.

论坛徽章:
0
10 [报告]
发表于 2009-07-08 13:56 |只看该作者
shell 的问题或 终端设置的问题。
一般 backspace 都是送 ctrl-H 也就是 ^H
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP