나는 busybox를 사용하여 임베디드 Linux 시스템(kernel-5.10.24)을 개발 중입니다 init
.
커널 로깅은 직렬 콘솔에서 비활성화되며 console=
커널 명령줄에서 설정할 필요가 없습니다. init 스크립트에 의해 시작된 로그도 마찬가지입니다 /etc/init.d/rcS
.
이제 /etc/inittab
설정은 다음과 같습니다. 시스템에 대한 자동 루트 로그인을 활성화하고 싶습니다.
# /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
Google에서 여러 번 검색하고 테스트한 끝에 마침내 이 링크에서 첫 번째 질문에 대한 답을 찾았습니다.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
이렇게 변경하면 루트 자동 로그인이 완료됩니다!
이제 두 번째 질문인 "Busybox의 init가 콘솔을 어떻게 설정/사용하며, 사용자 공간에서 콘솔을 동적으로 설정할 수 있습니까?"에 대한 답을 찾아야 합니다.