现在的位置: 首页 > 综合 > 正文

Nand Flash本地加载根文件系统后telnet不能登录

2013年10月09日 ⁄ 综合 ⁄ 共 1398字 ⁄ 字号 评论关闭

问题:

目标板中的bootstrap、U-Boot、根文件系统和内核都升级到新的版本中,并且已经通过Nand Flash本地成功加载根文件系统。

但是,在主机的terminal窗口中,不能通过telnet方式登录目标板,而目标板中已经把telnet服务启动了。

dingq@dingq-u1204:~$ telnet 192.168.37.244
Trying 192.168.37.244...
Connected to 192.168.37.244.
Escape character is '^]'.
Connection closed by foreign host.
dingq@dingq-u1204:~$

提示无法通过telnet连接到目标板。

解决办法:

1. google这段时间老是抽风,一天当中没有多少时间能用的。没办法,只好放狗去搜了。

首先有高手说,使用命令

telnet localhost
或
telnet 127.0.0.1

来验证一下telnet服务安装是否正确,如果本机上telnet自己能正常连接,说明telnet服务的安装正确。

2. 在不能telnet登录的目标板上使用命令

telnet 127.0.0.1

出现如下提示:

/ # telnet 127.0.0.1
telnet: cannot connect to remote host (127.0.0.1): Connection refused
/ #

3. 找一台使用原来内核的目标板,通过Nand Flash本地加载根文件系统进入shell界面后,使用命令

telnet 127.0.0.1

可以成功跳出登录界面,登录成功后使用exit命令退回到console界面。
4. 两相对比,说明烧写新的内核的目标板上的telnetd工作不正常。

《构建嵌入式linux系统》一书中,设置网络服务->使用Telnet进行网络登录->常犯的错误一节中提到,如果已经执行了telnet监控程序并且可以网络运行正常(可以ping到其他主机),需要确认以下操作:

××××存在/dev/ptmx,而且ptmx是以主编号为5、次编号为2的字符设备;如果不是,使用命令

mknod /dev/ptmx c 5 2

来建立它。
××××内核已经启用对devpts虚拟文件系统的支持(也就是/proc/filesystems文件中存在devpts的项目);如果不是,需要启用CONFIG_UNIX98_PTYS这个内核构建选项;

××××存在/dev/pts目录,而且devpts虚拟文件系统被正确挂载(检查mount命令的执行结果);如果不是,使用如下命令来挂载它:

mkdir /dev/pts && mount -t devpts none /dev/pts

5. 根据4中所述,检查/dev目录下的文件,发现没有ptmx文件,所以,在rcS启动脚本中加入下面一行

/bin/mknod /dev/ptmx c 5 2

再次重启目标板,使用命令telnet来登录自己就可以跳出登录界面了。

但是,还有问题。使用root登录时,用空输入作为密码来登录总是不能进入。

6. 到烧写原来内核的目标板中查了以下,发现/etc目录下有这么几个文件,passwd、shadow和group。

将这三个文件通过tftp上传到/tftpboot,然后再下载到新的目标板中的/etc目录,重启新目标板,能够成功使用telnet登录自己。

在开发主机的terminal窗口能成功登录进目标板。

至此,问题解决。


【上篇】
【下篇】

抱歉!评论已关闭.