嵌入式linux开发,启用busybox的telnetd服务
Telnet协议是TCP/IP协议族中的一员,是Internet远程登录服务的标准协议和主要方式。它为用户提供了在本地计算机上完成远程主机工作的能力。在终端使用者的电脑上使用telnet程序,用它连接到服务器。终端使用者可以在telnet程序中输入命令,这些命令会在服务器上运行,就像直接在服务器的控制台上输入一样。可以在本地就能控制服务器。要开始一个telnet会话,必须输入用户名和密码来登录服务器。Telnet是常用的远程控制Web服务器的方法。
一、启用用户登录
https://blog.csdn.net/weixin_43782998/article/details/121285658
二、busybox
telnet需要一个交互的登录界面,须要有getty、login和passwd程序。如果没有,无法实现telnet。此三个程序可由busybox生成。
1、telnet、telnetd
Networking Utilities --->[*] telnet[*] Pass TERM type to remote host{*} Pass USER type to remote host[*] telnetd[*] Support standalone telnetd (not innetd only)[*] Support -w SEC option (inetd wati mode)
2、 inetd
Networking Utilities --->[*] inetd
3、mdev
Linux System Utilities --->[*] mdev[*] Support /etc/mdev.conf[*] Support subdirs/symlinks[*] Support regular expressions substitutions when renaming device[*] Support command executiong at device addition/removal[*] Support loading of firmwares
三、kernel
修改内核配置,启用Legacy (BSD) PTY support。
Device Drivers --->Character devices --->-*- Unix98 PTY support[] Support multiple instances of devpts[*] Legacy (BSD) PTY support(256) Maximum number of legacy PTY in use
四、rootfs
1、/etc/services
直接拷贝Ubuntu下的对应文件。
2、/etc/inetd.conf
# /etc/inetd.conf: see inetd(8) for further informations.
#
# Internet server configuration database
#
# If you want to disable an entry so it isn't touched during
# package updates just comment it out with a single '#' character.
#
# <service_name> <sock_type> <proto> <flags> <user> <server_path> <args>
#
#:INTERNAL: Internal services
#echo stream tcp nowait root internal
#echo dgram udp wait root internal
#chargen stream tcp nowait root internal
#chargen dgram udp wait root internal
#discard stream tcp nowait root internal
#discard dgram udp wait root internal
#daytime stream tcp nowait root internal
#daytime dgram udp wait root internal
#time stream tcp nowait root internal
#time dgram udp wait root internali# These are standard services.
#telnet stream tcp nowait root /usr/sbin/telnetd telnetd -i
tftp dgram udp wait nobody /bin/tftpd
ftp stream tcp nowait root /usr/sbin/ftpd bftpd
3、/etc/rc.d/netd
须追加执行权限。
#!/bin/shbase=inetd# See how we were called.
case "$1" instart)/usr/sbin/$base;;stop)pid=`/bin/pidof $base`if [ -n "$pid" ]; thenkill -9 $pidfi;;
esacexit 0
4、/etc/hostname
moshui
5、/etc/fstab
proc /proc proc defaults 0 0
none /var/shm shm defaults 0 0
sysfs /sys sysfs defaults 0 0
none /tmp ramfs defaults 0 0
none /mnt ramfs defaults 0 0
6、/etc/mdev.conf
sd[a-z][0-9] 0:0 666 @/etc/hotplug/usb/usb_insert
sd[a-z] 0:0 666 $/etc/hotplug/usb/usb_remove
mmcblk[0-9]p[0-9] 0:0 660 @/etc/hotplug/sd/sd_insert
mmcblk[0-9] 0:0 660 $/etc/hotplug/sd/sd_remove
或
mmcblk([0-9]+)p([0-9]+) 0:0 660 */sbin/automount.sh $MDEV X${ACTION}
mmcblk([0-9]+) 0:0 660 */sbin/automount.sh $MDEV X${ACTION}
sd([a-z]+)([0-9]+) 0:0 660 */sbin/automount.sh $MDEV X${ACTION}
sd([a-z]+) 0:0 660 */sbin/automount.sh $MDEV X${ACTION}
#mtdblock([0-9]+) 0:0 660 */sbin/automount.sh $MDEV X${ACTION}
/sbin/automount.sh,须追加执行权限。
#! /bin/sh# debugging message
#echo "MDEV=$1 : ACTION=$2 : SUBSYSTEM=$SUBSYSTEM : DEVPATH=$DEVPATH : DEVNAME=$DEVNAME" >> /dev/consoleif [ "$1" == "" ]; thenecho "parameter is none" > /tmp/error.txtexit 1
fiMNT=$1
#if [ $(echo $1 | grep mmcblk) ]; then
# if [ $(echo $1 | grep p[25]) ]; then
# MNT=sdcard2
# else
# MNT=sdcard
# fi
#elif [ $(echo $1 | grep sd) ]; then
# if [ $(echo $1 | grep p[25]) ]; then
# MNT=nandcard2
# else
# MNT=nandcard
# fi
#fi# there is no ACTION, it is for initial population
if [ "$2" = "X" ]; thenmounted=`mount | grep $1 | wc -l`if [ $mounted -ge 1 ]; then# mounted, assume the ACTION is remove#ACT=Xremove# only set add for initial populationACT=Xaddelse# not mounted, assume the ACTION is addACT=Xaddfi
elseACT=$2
fiif [ "$ACT" = "Xremove" ]; then# umount the deviceecho "$ACT /mnt/$1" >> /tmp/mdev.logif ! umount -l "/mnt/$1"; thenexit 1elserm -f "/mnt/$MNT"echo "[Umount FS]: /dev/$1 -X-> /mnt/$MNT" > /dev/consolefiif ! rmdir "/mnt/$1"; thenexit 1fi
else# mount the devicemounted=`mount | grep $1 | wc -l`#echo "par=$1,mounted=$mounted,MNT=$MNT" > /dev/consoleif [ $mounted -ge 1 ]; then#echo "device $1 is already mounted" > /dev/consoleexit 0fiif ! mkdir -p "/mnt/$1"; thenexit 1fiif [ $(echo $1 | grep mtd) ]; thenif mount -t jffs2 "/dev/$1" "/mnt/$1"; thenecho "[Mount JFFS2]: /dev/$1 --> /mnt/$MNT" > /dev/consoleecho "$ACT /mnt/$1" >> /tmp/mdev.logelif mount -t yaffs2 -o"inband-tags" "/dev/$1" "/mnt/$1"; thenecho "[Mount YAFFS2]: /dev/$1 --> /mnt/$MNT" > /dev/consoleecho "$ACT /mnt/$1" >> /tmp/mdev.logelif mount -t ubifs "/dev/$1" "/mnt/$1"; thenecho "[Mount UBIFS]: /dev/$1 --> /mnt/$MNT" > /dev/consoleecho "$ACT /mnt/$1" >> /tmp/mdev.logelse# failed to mount, clean up mountpointif ! rmdir "/mnt/$1"; thenexit 1fifielse# try vfat onlyif mount -t vfat -o noatime,shortname=mixed,utf8 "/dev/$1" "/mnt/$1"; thenln -s /mnt/$1 /mnt/$MNTecho "[Mount VFAT]: /dev/$1 --> /mnt/$MNT" > /dev/consoleecho "$ACT /mnt/$1" >> /tmp/mdev.logelse# failed to mount, clean up mountpointif ! rmdir "/mnt/$1"; thenexit 1fiexit 1fifi
fi
7、/etc/init.d/rcS
hostname -F /etc/hostnameecho /sbin/mdev > /proc/sys/kernel/hotplug
/sbin/mdev -smkdir -p /dev/pts
mount -t devpts devpts /dev/pts
或
mount -n -t devpts none /dev/pts -o mode=0622mkdir /dev/pts
mount devpts -t devpts /dev/pts //加载devpts文件系统inetd
或
/etc/rc.d/netd start
嵌入式linux开发,启用busybox的telnetd服务相关推荐
- 嵌入式linux开发,telnet,telnetd服务移植
简介 Telnet是传输控制协议/因特网协议(TCP/IP)网络(例如Internet)的登录和仿真程序.它最初是由ARPANET开发的,但是现在它主要用于Internet会话.它的基本功能是,允许用 ...
- 嵌入式Linux开发——解决uboot无法使用nfs服务从ubuntu中下载文件(TTT、cannot mount等错误)
前言: 最近在学习正点原子嵌入式Linux开发板uboot的移植实验,移植完之后想测试网络部分的驱动能否工作正常.最后经过测试发现tftp可以正常下载,nfs却一直报错无法下载文件,最后也是折磨了两天 ...
- 北京迅为i.mx6ull终结者开发板使用手册+嵌入式Linux开发指南+裸机手册下载地址
i.MX6ULL终结者三大手册,加速学习和开发速度,一秒化无形! <嵌入式Linux开发指南>+<开发板使用手册>+<裸机使用手册> 详细手册点击链接下载:http ...
- i.MX8MM嵌入式linux开发指南+全覆盖开发资料
01教程主题 根据多年工作经验总结框架学习法,先掌握整体的开发流程,然后再逐一击破,综合大量工作中的实战案例,在实践中检验理论知识,强化所学知识点,从而掌握Linux的核心技术. 02教学方式 教程由 ...
- 嵌入式linux/鸿蒙开发板(IMX6ULL)开发(一) 嵌入式Linux开发基本概念以及开发流程介绍
文章目录 1.linux开发初了解 1.1 嵌入式Linux开发的基本概念 1.1.1关于Git的背景介绍 1.1.2关于repo的背景介绍 1.1 3 一些关于此背景知识的介绍 1.1.4关于Lin ...
- 使用qemu搭建arm嵌入式linux开发环境
qemu搭建arm虚拟嵌入式linux开发环境 1.前言 1.安装qemu与arm交叉编译工具 2.Linux内核与设备树编译 3.busybox根文件系统制作 4.使用u-boot加载Linux内核 ...
- 嵌入式linux编译环境搭建,嵌入式Linux开发环境搭建
整理下嵌入式Linux开发环境搭建过程笔记. 一.制作u-boot.bin文件: tar xjf u-boot-1.1.6.tar.bz2 cd u-boot-1.1.6 patch -p1 < ...
- 嵌入式linux开发环境搭建——VirtualBox虚拟机网络环境解析
嵌入式linux开发环境搭建--VirtualBox虚拟机网络环境解析 本博文转自:Pandoras Box http://blog.csdn.net/yxc135/article/details/8 ...
- linux 嵌入式 交叉 环境搭建 实验原理,实验三 嵌入式Linux开发环境的搭建
南京邮电大学通达学院 实 验 报 告 实验 实验三题目 嵌入式Linux开发环境的搭建 课程名称 嵌入式驱动开发实验 学院 专业 班 实验者学号同做者学号 08002210 姓名 毛骏超 同做者学号 ...
最新文章
- C++ STL: 分配器allocators 源码分析
- 嫦娥“挖土”归来有多难?看看中国首颗返回式卫星的故事
- LSTM模型在问答系统中的应用 2017-06-27 21:03 在问答系统的应用中,用户输入一个问题,系统需要根据问题去寻找最合适的答案。 1:采用句子相似度的方式。根据问题的字面相似度选择相似度最
- 这些.Net的细节(面试秘笈),你都知道了吗?
- 最简单红米手机如何没root激活XPOSED框架
- 什么程度才算精通 Linux?
- 毕啸南专栏 | 对话周鸿祎:打好人工智能时代安全攻防战
- python用时间戳给文件命名-在Python中每小时将时间戳记写入文件
- dspq值多少最好_蜂蜜纯度42的意思?蜂蜜纯度多少度好?
- linux mysql外网连接不成功的可能原因
- BetaFlight开源代码框架简介
- 聚类分析上证50成分股
- 如何在IPv6下观看网络电视直播
- 手机版wps怎么制作折线图_PPT制作必修课下载-PPT制作必修课app官方版v1.0手机版下载...
- [每日一氵] openCV resize函数直接按比例缩放
- [Mysql] LEFT函数 | RIGHT函数
- OSChina 周五乱弹 —— 埃塞俄比亚的远房大表姐
- scp 传目录_scp拷贝文件及文件夹
- 超容易获得星球大战信息
- php mysql 占位符_PDO中预处理语句占位符的使用