目的
写本篇文章,一是防止遗忘;二是和大家分享一下完整的让一个开发板在linux环境下支持telnet登陆的方法,因为我的开发板文件系统太精简,完全没有支持telnet的工具,所以过程很曲折,该走的弯路走了个遍;
准备的素材
1、交叉编译inetutils工具,具体下载地址可以百度,我使用的是inetutils-1.9这个最新版。由于我的文件系统里面只有telnet,没有telnetd和inetd这2个工具,所以需要自己重新用busybox做文件系统,这个显然更麻烦;于是我选择交叉编译源码来得到。在开发板上面开启telnet服务需要上面这2个工具;telnetd是由inetd这个服务来启动的;
2、需要在/etc/目录下,有一个inetd.conf的文件,这个文件描述了telnetd监控的端口等信息,具体内容我只是简单了解。
3、需要在/etc/services文件里面增加telnet的相关内容
4、如果需要远程telnet登陆后用root免密登陆,则需要修改/etc/passwd文件。
由于我的板子里面没有telnetd,inetd工具;而且没有/etc/inetd.conf文件,所以我需要自己去准备他们
交叉编译inetutils
1、首先下载inetutils-1.9或者相关版本的文件
2、tar解压缩后进入对应的目录
3、输入指令:CC=arm-linux-gcc LDFLAGS=-static ./configure --disable-clients --disable-ipv6 --disable-ncurses --host=arm --prefix=/
这里prefix不要随意修改,据说文件会自动去搜索/etc下面的文件,修改后就会乱
4、输入指令:make
之后生成了所需的文件,在对应的目录下,可以自行搜索inetd,telnetd
5、不要make install,直接自己拷贝出来后放到开发板里面对应的目录下面,为了方便,我是直接放到了/usr/bin目录下面了。
编译这个很顺利,没有出现任何幺蛾子;
新建inetd.conf文件
直接在开发板的/etc/目录下vi inetd.conf文件,如果你已经有了,就直接打开在后面添加内容:telnet stream tcp nowait root /usr/telnetd in.telnetd
查看/etc/services文件
确保里面会有这样的文件
修改root用户密码确保免密登陆
1、修改/etc/passwd文件,使其root部分如图所示
2、修改/etc/securetty文件,在其中添加如下字样,如果已经有了,则不需要添加
3、修改init.d/rcs文件,确保其中有这样的文字,或者在其他地方有这样的启动项内容
4、最后,在任意启动文件后面添加inetd,启动这个服务即可。
调试
上面全部操作结束后,重启开发板,把你的板子的网络设置好后,和电脑能够正常ping通后,即可在windows下面输入cmd进入调试;
输入telnet xxx.xxx.xxx.xxx后,正常情况就会显示这样的登陆界面
输入root后就可以直接进入系统了。之后可以进行所有操作。
结语
到这里所有流程都已经实现,这就是我走了好多弯路的一个调试过程,遇到精简系统的朋友可以按照这个方法实现,祝你成功。