分类: 嵌入式
2010-10-20 08:57:38
主机系统:fedora8 + vmware
目标板:utu2440 / linux-
交叉编译器:arm-linux-gcc-3.4.1
软件资源:busybox-1.10.1
在根文件系统制作成功的基础上就可以移植telnetd到开发板,这样可以在同一局域网的任一台主机上通过telnet远程登录到开发板上,而不仅是只能通过串口连接开发板,当然telnet采用明文密码,安全性不如sshd,这是它的局限性。以下是详细移植步骤:
1.Busybox配置
Busybox中已集成了telnet client和telnetd, 以下是busybox中关于telnet的配置选项:
Networking Utilities --->
[*] telnet
[*] telnetd
[*] Support standalone telnetd (not inetd only)
2.修改etc/init.d/rcS
telnet client功能只要选中配置选项就可以了,而telnetd需要devpts,因此要在启动脚本中开启devpts支持及启动telnetd。修改后的etc/init.d/rcS如下所示:
#!/bin/sh
PATH=/sbin:/bin:/usr/sbin:/usr/bin
runlevel=S
prevlevel=N
umask 022
export PATH runlevel prevlevel
mount -a
mkdir /dev/pts
/bin/mknod /dev/pts/0 c 136 0
/bin/mknod /dev/pts/1 c 136 1
/bin/mknod /dev/pts/2 c 136 2
/bin/mknod /dev/pts/3 c 136 3
/bin/mknod /dev/pts/4 c 136 4
/bin/mknod /dev/pts/5 c 136 5
/bin/mount -t devpts devpts /dev/pts
echo /sbin/mdev>/proc/sys/kernel/hotplug
mdev -s
/bin/hostname -F /etc/sysconfig/HOSTNAME
/sbin/ifconfig lo 127.0.0.1
/sbin/ifconfig eth0 192.168.1.168
/sbin/route add default gw 192.168.1.1
/etc/init.d/ts.sh
/usr/sbin/telnetd
重新启动开发板后,在主机上telnet连接开发板,但login登陆时出现如下错误提示:
login: cannot run /bin/bash: No such file or directory
Connection closed by foreign host.
在目标板上ls -l /bin/*sh发现只有ash和sh,
ln -s /bin/sh /bin/bash创建一个指向sh的软链接bash,重启开发板后,再在主机上telnet连接开发板,login时又出现如下错误:
bash: applet not found
Connection closed by foreign host.
后来发现是/etc/passwd中指定了用户的shell为bash, 而busybox只有ash和sh, 将/etc/passwd中的/bin/bash都改为/bin/sh后问题解决。
telnet登陆时串口终端显示:
[root@liuzg]# login[966]: root login on 'pts/0'
原文链接:
http://hi.baidu.com/brave_gen/blog/item/59aecf0e4b3cf01294ca6b7a.html