core: 完善 tty 检测
This commit is contained in:
parent
67a2bee31c
commit
2a7c24bee4
@ -1008,13 +1008,7 @@ build_extra_cmdline() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
echo_tmp_ttys() {
|
echo_tmp_ttys() {
|
||||||
# 由于 windows 下无法测试各tty是否有效
|
|
||||||
# 这里的 tty 只临时使用,非最终系统的 tty
|
|
||||||
if is_in_windows; then
|
|
||||||
echo "console=ttyS0,115200n8 console=tty0"
|
|
||||||
else
|
|
||||||
curl -L $confhome/ttys.sh | sh -s "console="
|
curl -L $confhome/ttys.sh | sh -s "console="
|
||||||
fi
|
|
||||||
}
|
}
|
||||||
|
|
||||||
# shellcheck disable=SC2154
|
# shellcheck disable=SC2154
|
||||||
|
25
ttys.sh
25
ttys.sh
@ -1,25 +1,22 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
prefix=$1
|
prefix=$1
|
||||||
|
|
||||||
# 最后一个 tty 是主 tty,显示的信息最全
|
is_in_windows() {
|
||||||
# 有些平台例如 aws/gcp 后台vnc只能截图,不能输入,用有没有鼠标判断
|
[ "$(uname -o)" = Cygwin ] || [ "$(uname -o)" = Msys ]
|
||||||
# 因此如果有显示器且有鼠标,tty0 放最后面,否则 tty0 放前面
|
}
|
||||||
ttys="ttyS0 ttyAMA0"
|
|
||||||
if [ -e /dev/fb0 ] && [ -e /dev/input/mouse0 ]; then
|
|
||||||
ttys="$ttys tty0"
|
|
||||||
else
|
|
||||||
ttys="tty0 $ttys"
|
|
||||||
fi
|
|
||||||
|
|
||||||
|
# 最后一个 tty 是主 tty,显示的信息最全
|
||||||
is_first=true
|
is_first=true
|
||||||
for tty in $ttys; do
|
for tty in tty0 ttyS0 ttyAMA0; do
|
||||||
if [ -e /dev/$tty ] && echo >/dev/$tty 2>/dev/null; then
|
# hytron 有ttyS0 但无法写入
|
||||||
if ! $is_first; then
|
# cygwin 没有 tty0,所以 windows 下 tty0 免检
|
||||||
|
if { [ "$tty" = tty0 ] && is_in_windows; } || stty -g -F "/dev/$tty" >/dev/null 2>&1; then
|
||||||
|
if $is_first; then
|
||||||
|
is_first=false
|
||||||
|
else
|
||||||
printf " "
|
printf " "
|
||||||
fi
|
fi
|
||||||
|
|
||||||
is_first=false
|
|
||||||
|
|
||||||
printf "%s" "$prefix$tty"
|
printf "%s" "$prefix$tty"
|
||||||
|
|
||||||
if [ "$prefix" = "console=" ] && [ "$tty" = ttyS0 ]; then
|
if [ "$prefix" = "console=" ] && [ "$tty" = ttyS0 ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user