免费注册 查看新帖 |

Chinaunix

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

利用busybox制作ramdisk时,启动后无法使用退格键,tab键等! [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-07-08 09:24 |只看该作者 |倒序浏览
5可用积分
我用的是busybox-1.13.4,交叉编译工具是powerpc-linux-gcc-4.1
对于busybox-1.13.0的编译,我做了以下操作:
1.选择静态编译
2.不使用/usr目录
3.加入交叉编译工具链 完整路径/powerpc-linux-
就这样然后make make install
其中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 ttyS0::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 9600 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

使用这样生成的ramdisk启动后,中段将不断打印如下信息:
# 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


后来我在getty源码文件loginutil/getty.c中打开宏定义#define DEBUGGING后,这个错误就不见了,但是后来出现了退格键和tab键都不能使用的情况,退格键以^H显示,tab键不能自动补齐,只是8个空格,而且每输入一个命令,则它首先打印该命令,再执行命令,如下:
#####find init and run it######44k i?

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
  
#  


这个问题是不是因为我打开DEBUG宏的原因?如果不是,那要怎样消除以上的问题?请大家多提供些意见,非常感谢!

最佳答案

查看完整内容

在shell里头先执行stty erase ^H即可解决...

论坛徽章:
0
2 [报告]
发表于 2009-07-08 09:24 |只看该作者
在shell里头先执行stty erase ^H即可解决...

论坛徽章:
0
3 [报告]
发表于 2009-07-14 17:00 |只看该作者
其实这个问题并不是根本问题,我把getty.c文件中宏打开是不对的,这不是解决问题的办法,后来我修改了getty.c的源码,解决了TCGETS:Invalid argument的错误后,这个问题也就没有了。
另外,补充一下,对于TAB键,自动补齐等功能在busybox编译时有选择,需要将其编译进去。

现在使用busybox-1.13.4制作的ramdisk已经完全可以使用了。

其实没有最佳答案,不过只有你一个回答,那就给你好了,谢谢回复!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP