给嵌入式linux串口添加密码的一些总结

要添加串口登录密码就需要修改 /etc/inittab 文件的配置 但是不同的开发板情况不一样,有的是没有这个文件的,BusyBox会检查/etc/inittab文件是否存在, 如果此文件不存在, BusyBox会使用缺省的inittab的配置。它主要会为系统重引导,系统挂起以及init重启动设置缺省的动作。此外, 它还会为头四个虚拟控制台(/dev/tty1到/dev/tty4)设置启动shell的动作。如果并未建立这些设备文件, BusyBox将会报错。 如果存在/etc/inittab文件, BusyBox会予以剖析, 并将其中的命令记录在内部的数据结构中, 以便适时执行。 BusyBox能
够识别的inittab文件格式, 在BusyBox套件附带的文档中有很好的说明。
inittab里面的内容有一定的格式,具体格式网上很多,这里就不再细说了。
一、
如果是有这个文件 vi /etc/inittab 打开
修改/etc/inittab文件

::askfirst:-/bin/sh
tty2::askfirst:-/bin/sh
等全部注掉
增加一行
::respawn:/sbin/getty -L ttyS0 115200 vt100
这个ttyS0是串口设备的设备文件但是不同的系统,设备文件名由于串口驱动的不同而不同,那么如何确认自己的串口设备是哪一个呢
方法是 :
cd /dev //打开显示设备文件的文件夹 dev
ls ttyS* //显示所有前四个字母是ttyS的设备文件
我的系统里出现的是 ttySAC0 、ttySAC1、ttySAC2、ttySAC3、ttySAC4
用来确定是哪个串口设备的方法是 echo qqqqqqq > /dev/ttySAC0我把上面5个设备全试了一遍发现只有ttySAC0可以打印出 qqqqqqq 说明ttySAC0就是我要找的串口设备文件。
然后 我将::respawn:/sbin/getty -L ttyS0 115200 vt100中的ttyS0替换为 ttySAC0
然后保存退出
然后在命令行下敲入passwd
这时系统会提示你给root设置一个密码,设定密码并确认密码后
reboot重新启动
重启后就会需要用户名跟密码。
xxxxxx login: //root
passwd:// 输入之前设定的密码
但是每次退出时必须用exit命令退出终端,如果直接拔掉串口线,下次插上则可以直接进入系统,不需要输入密码。
有的文章说终端设置中流控要选择XON/XOFF,不然没有办法输入用户名密码。但我尝试了流控选择 “无” 输入用户名和密码也是可以进入的。
有必要提一下的是 sbin下的getty是Linux下的一个开启和设置终端的命令,进行终端的开启、终端初始化、设置终端。
二、
如果/etc下没有 inittab 这个文件,BusyBox会使用缺省的inittab的配置
也就是说默认的启动脚本将会被启动,如果想要设置一个串口登录密码,需要在/etc下创建一个inittab文件,文件的内容是
::sysinit:/etc/init.d/rcS //sysinit后面的路径是系统启动所需要的启动脚本,系统的不同路径也不一样,可以根据自己的需要进行添加
::respawn:/sbin/getty -L ttyS0 115200 vt100 // ttyS0根据( 一、)中的方法填写
然后设置密码,重启 就OK了

时间: 2024-10-29 19:10:34

给嵌入式linux串口添加密码的一些总结的相关文章

嵌入式linux串口设置(一)

在linux中,所有的设备文件一般都位于“/dev”下,串口1和串口2对应的设备名依次为“/dev/ttyS0”, “/dev/ttyS1”,而且USB转串口的设备名通常为“/dev/ttyUSB0”,在linux下对设备的操作方法与对文件的操作方法一样. 串口开发步骤: 串口的设置主要是设置struct termios结构体的各成员值 #include<termios> struct termios { Unsigned short c_iflag;            /*输入模式标志*

嵌入式linux串口编程(二)

/*com_writer.c*/#include "uart_api.h" int main(void){ int fd; char buff[BUFFER_SIZE]; if((fd=open_port(HOST_COM_PORT))<0)  /*打开串口*/ {  perror("open serial error");  return 1; } if(set_com_config(fd,115200,8,'N',1)<0) /*配置串口*/ {  

嵌入式linux串口通信自发自收测试程序

/*串口自收自发程序主函数*/#include"uart_api.h"int main(){ int fd; char buff[BUFFER_SIZE]; char buff2[]="Hello NUAA2440!\n"; int nread,nwrite; if((fd=open_port(TARGET_COM_PORT))<0) {  perror("open serial error");  return 1; } printf(&

嵌入式linux和pc机的linux对比

linux本身具备的很大优点就是稳定,内核精悍,运行时需要的资源少.嵌入式linux和普通linux并无本质区别. 在嵌入式系统上运行linux的一个缺点就是其核心架构没有重新设计过,而是直接从桌面linux精简过来,一次虽然具有抢占式多任务的能力,但是在实时反映性能上有时会表现的较为逊色.所以,为了提供实时性能,嵌入式linux需要添加实时软件模块.而这些模块运行的内核空间正是操作系统实现调度策略,硬件中断异常和执行程序的部分.由于这些实时软件模块是在内核空间运行的,所以代码错误可能会破坏操作

嵌入式Linux裸机开发(七)——UART串口通信

嵌入式Linux裸机开发(七)--UART串口通信 一.UART串口通信简介 通用异步收发器简称UART,即UNIVERSAL ASYNCHRONOUS RECEIVER AND TRANSMITTER, 它用来传输串行数据.发送数据时, CPU 将并行数据写入UART,UAR按照一定的格式在一根电线上串 行发出:接收数据时, UART检测另一根电线的信号,将串行收集在缓冲区中, CPU 即可读取 UART 获得这些数据. 在 S5PV210中, UART提供了 4 对独立的异步串口I/O端口,

ARM 开发板嵌入式linux系统与主机PC通过串口传输文件

本文转载自http://useless20.blog.163.com/blog/static/237409982010227127576/ 嵌入式linux系统与主机通过串口传输文件 我想如果要从PC机下载东西到开发板的嵌入式linux系统里面,很多人首先会想到用tftp sftp等网络工具从网口下载.但如果网络用不了,只能通过串口下载怎么办呢?这个时候有两个工具能帮到你:一个是zmrx.zmtx,另外一个是lsz.lrz.个人觉得zmrx/zmtx没有lsz/lrz稳定,建议还是用后者.下面介

[添加用户]解决useradd 用户后没有添加用户Home目录的情况,Linux改变文件或目录的访问权限命令,linux修改用户密码,usermod的ysuum安装包。飞

usermod的yum安装包: shadow-utils 将nobody用户添加到nogroup 组: usermod -g nogroup nobody cat /etc/passwd|grep nobody nobody:x:65534:65534:nobody:/var/lib/nobody:/bin/bash 第3个字段是65534:意思就是,UID(用户的ID)是500. 第4个字段是65534:意思就是.GID(用户的组ID)的500. 使用usermod -g nogroup no

嵌入式linux驱动开发之给你的linux系统添加温度传感器模块

忙了几天,终于可以让ds18b20在自己的开发板的linux系统上跑了!虽然ds18b20不是什么新鲜玩意,但是想想知己可以给linux系统添加模块了还是有点小鸡冻呢! 虽然说现在硬件的资源非常丰富而且剩余很多,可以用软件资源来代替硬件资源,比如说可以用视频编解码软件取代硬件来工作.但有很多模块需要实时的采集数据这都是软件永远无法代替的,而且随着互联网的进一步发展,智能化也是一个必然的趋势,因此大量的传感器和控制芯片将被应用到生产生活中,所以个人觉得驱动开发还是个不错的方向.同时,作为学习者,再

linux下添加用户到sudo组 并禁止sudo用户修改密码

linux下添加用户到sudo组 创建用户  useradd hanli 为新用户设置密码  passwd hanli 创建用户组  groupadd  op 将用户添加到用户组  usermod -G op hanli 查看用户属于哪个组  groups hanli 查看用户组成员    groupmems -g wheel -l  (wheel是组名) 查看所有用户组   cat /etc/group   cat /etc/gshadow 查看所有用户       cat /etc/pass