首页 > 其他分享 >(原创)解决串口上无登录提示符,无法登录的问题

(原创)解决串口上无登录提示符,无法登录的问题

时间:2023-08-29 09:02:39浏览次数:51  
标签:sbin 登录 rc etc init 登入 串口 提示符 wait

问题描述:

       制作好rootfs后,kernel能够引导rootfs进入到系统,但是串口上最终却没有登入提示符。使用SSH或者Telnet可以登入系统。无法使用串口进行登录系统,使用起来不方便。

问题分析:

       对照启动流程梳理,发现所设置的运行级别为3下的所有启动脚本均已执行(rc3.d),仅仅是最后没有提示登入符login:,从其他地方可以登入系统(ssh/telnet),说明系统的login程序已经执行,因此,可以大胆怀疑是在串口上的登入提示被重定向了,它应该是重定向和内核打印信息一样的位置,因此需要修改inittab文件,将登录进行重定向修正。

问题解决:

      下面是原版的inittab文件:


# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $

# The default runlevel.
id:5:initdefault:

# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

# What to do in single-user mode.
~~:S:wait:/sbin/sulogin

# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.

l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
PS0:12345:respawn:/bin/start_getty 115200 ttyPS0 vt102
# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
#  <id>:<runlevels>:<action>:<process>
#

1:12345:respawn:/sbin/getty 38400 tty1


X0:12345:respawn:/sbin/getty-wrapper 115200 hvc0

上述文件说明,引导系统进入运行级别5,在串口上登入重定向到ttyPS0。

当前适配的系统需要运行级别设置为3,在串口上登入重定向到ttyAMA1,因此需要修改The default runlevel和PS0选项,修正后的inittab文件如下:

# /etc/inittab: init(8) configuration.
# $Id: inittab,v 1.91 2002/01/25 13:35:21 miquels Exp $

# The default runlevel.
id:3:initdefault:

# Boot-time system configuration/initialization script.
# This is run first except when booting in emergency (-b) mode.
si::sysinit:/etc/init.d/rcS

# What to do in single-user mode.
~~:S:wait:/sbin/sulogin

# /etc/init.d executes the S and K scripts upon change
# of runlevel.
#
# Runlevel 0 is halt.
# Runlevel 1 is single-user.
# Runlevels 2-5 are multi-user.
# Runlevel 6 is reboot.

l0:0:wait:/etc/init.d/rc 0
l1:1:wait:/etc/init.d/rc 1
l2:2:wait:/etc/init.d/rc 2
l3:3:wait:/etc/init.d/rc 3
l4:4:wait:/etc/init.d/rc 4
l5:5:wait:/etc/init.d/rc 5
l6:6:wait:/etc/init.d/rc 6
# Normally not reached, but fallthrough in case of emergency.
z6:6:respawn:/sbin/sulogin
PS0:12345:respawn:/bin/start_getty 115200 ttyAMA1 vt102
# /sbin/getty invocations for the runlevels.
#
# The "id" field MUST be the same as the last
# characters of the device (after "tty").
#
# Format:
#  <id>:<runlevels>:<action>:<process>
#

1:12345:respawn:/sbin/getty 38400 tty1


X0:12345:respawn:/sbin/getty-wrapper 115200 hvc0

       将修改项合入到新的rootfs中,再次重启系统,串口上出现了久违而熟悉的login:登入提示符。

总结:

      initab文件是引导系统进行配置的重要文件,它设定系统的运行级别、登入前的自启动运行程序,以及登入时的重定向,文件很简短。

标签:sbin,登录,rc,etc,init,登入,串口,提示符,wait
From: https://www.cnblogs.com/hechengfei/p/17663806.html

相关文章

  • 金蝶云星空启用第三方系统登录授权配置
    背景     点击获取应用ID: 金蝶云苍穹应用市场_管理软件_SaaS软件_软件商城_企业上云_企业应用_开放平台_ERP_EBC_API-金蝶云(kingdee.com)  选择你的企业信息,用途然后提交,会返回应用信息。 将应用信息拷贝到你的账套,然后确定。 点击查看密钥, ......
  • 【STM32】5_1 串口通信 printf映射
    串口通信配置完成后,在主函数中添加stdio.h的头文件#include"stdio.h" 在主函数main()之前添加一下函数#ifdef__GNUC__#definePUTCHAR_PROTOTYPEint__io_putchar(intch)#else#definePUTCHAR_PROTOTYPEintfputc(intch,FILE*f)#endifPUTCHAR_PROTOTYPE{......
  • 嵌入式串口应用编程
    1.串口概述常见的数据通信的基本方式可分为并行通信与串行通信两种。并行通信是指利用多条数据传输线将一个字数据的各比特位同时传送。它的特点是传输速度快,适用于传输距离短且传输速度较高的通信。串行通信是指利用一条传输线将数据以比特位为单位顺序传送。特点是通信线路......
  • 封装Modbus串口通讯之SerialPort类
    前言C#为我们更好的与设备进行通讯,提供了SerialPort类于我们进行设备通讯,我们只需要将参数给与这个类并且实例化该类就可以通讯1usingSystem;2usingSystem.Collections.Generic;3usingSystem.Data;4usingSystem.IO.Ports;5usingSystem.Linq;6usingSys......
  • Python爬虫实战 - 模拟登录采集数据
    在进行数据采集时,有些网站需要进行登录才能获取到所需的数据。本文将介绍如何使用Python爬虫进行模拟登录,以便采集网站的数据。我们提供了完善的方案和代码示例,让你能够轻松操作并获取所需的数据。使用Python爬虫模拟登录网站采集数据价值:数据获取:通过模拟登录,你可以通过网站的登录......
  • 在XShell中的提示符(prompt)没有颜色
    涉及的Linux知识包括1.loginshell与non-loginshell2.TERM变量的作用:终端的类型3.PS1变量的作用:设置提示符(prompt)的颜色一、loginshell与nonloginshell1.通过xshell这个软件登录ubuntu然后打开的shell的是non-loginshell2.通过ubuntuCLI登录然后打开的shell的是n......
  • C# 验证码的简单生成,登录实现校验验证码
    登录实现校验验证码1、思路:首先写一个生成验证码的接口,接口传出就是验证码的唯一id和验证码图片的base64,把验证码的id当做缓存的key,再把生成的验证码code当做值存到缓存中。2、登录:输入用户名、密码、验证码唯一id和用户输入的验证码值。用验证码唯一id获取到缓存中的验证码值,......
  • 如何在 Linux 中设置 SSH 无密码登录
    SSH(SecureSHELL)是一种开源且可信的网络协议,用于登录远程服务器以执行命令和程序。它还用于使用安全复制(SCP)命令和rsync命令通过网络将文件从一台计算机传输到另一台计算机。在本文中,我们将向您展示如何在基于RHEL的Linux发行版(例如CentOS、Fedora、RockyLinux和A......
  • RS232串口专题
    启动串口调试助手项目运行截图基础类封装数据类型转换类usingSystem;usingSystem.Text;namespaceSerialPortHelperDemo{///<summary>///16进制使用的隔离符枚举///</summary>publicenumEnum16Hex{None,//无Blank,/......
  • 基于RS232的VGA图像显示(串口+ram)
    第40章、基于RS232的VGA图像显示(串口+ram)【实战】使用PC机通过UART串口传输图片像素数据(txt文件)给FPGA,FPGA将图片数据缓存到内部RAM中,再利用vga控制模块读取,在VGA显示器中心位置显示缓存到RAM中的图片。VGA显示模式为640x480@60;图片大小为100x100。基于RS232的VGA图......