如何在busybox的inittab中设置console自动登录?

如何在busybox的inittab中设置console自动登录?

我正在开发一个嵌入式 Linux 系统(kernel-5.10.24),使用 busybox 作为init.

内核日志在串行控制台中被禁用,无需console=在内核命令行中进行设置。由 启动的 init 脚本的日志也是如此/etc/init.d/rcS

现在/etc/inittab设置如下,我想启用root自动登录系统。

# /etc/inittab
#
# Copyright (C) 2001 Erik Andersen <[email protected]>
#
# Note: BusyBox init doesn't support runlevels.  The runlevels field is
# completely ignored by BusyBox init. If you want runlevels, use
# sysvinit.
#
# Format for each entry: <id>:<runlevels>:<action>:<process>
#
# id        == tty to run on, or empty for /dev/console
# runlevels == ignored
# action    == one of sysinit, respawn, askfirst, wait, and once
# process   == program to run

# now run any rc scripts
::sysinit:/etc/init.d/rcS

# Put a getty on the serial port
##OK##::respawn:/sbin/getty -L ttyS0 115200 vt100
ttyS0::respawn:-/bin/login -f root
#no login
#::respawn:-/bin/sh

# Stuff to do for the 3-finger salute
::ctrlaltdel:/sbin/reboot

# Stuff to do before rebooting
null::shutdown:/etc/init.d/rcK
null::shutdown:/bin/umount -a -r
null::shutdown:/sbin/swapoff -a

ttyS0::respawn:-/bin/login -f root我在 中设置了行/etc/inittab,但在串行控制台中看不到登录提示。

那么在内核命令行没有设置有效控制台的情况下,如何在正确的串行控制台上自动登录系统呢?

或者有没有办法在用户空间中动态设置系统控制台(不使用getty -L)?

答案1

经过谷歌和测试的多次搜索,我终于从这个链接中找到了第一个问题的答案https://www.vjiot.net/typecho/index.php/archives/50/, 它来了。

在 中/etc/inittab,使用以下行

ttyS0::respawn:/sbin/getty -L ttyS0 115200 -n -l /bin/autologin

并创建/bin/autologin如下,

#!/bin/sh
/bin/login -f root

通过这些更改,root 自动登录就完成了!

现在,我仍然需要找出第二个问题的答案:“busybox 的 init 是如何设置/使用控制台的,是否可以在用户空间中动态设置控制台?”

相关内容