在我的 QEMU 虚拟机(以 开头qemu-kvm -boot d arch-freebsd.img -m 4096
)中,我想访问一个 Agetty 终端,我通常使用Ctrl+ Alt+访问它F2(或者F3如果我需要 tty3,F4如果 tty4,ETC。),不幸的是,按下这些键只是将我更改为主机上的agetty终端(而不是我试图进入tty2的客户系统)。如果这是一个 VirtualBox VM,我会按Ctrl+ F2(特别是Ctrl键盘中央的,即我的右键Ctrl)来访问 tty2,但这不适用于 QEMU。如果您建议我按Ctrl+ Alt+G让虚拟机获取我所有的键盘和鼠标输入,然后按按键访问agetty 终端,我已经尝试过这样做,但它不起作用。
编辑:建议的重复链接没有列出解决我的问题的内容,请按Alt+ Fx。我已经尝试过Ctrl++这似乎是那里建议的(尽管我很难理解它的含义,因为 VNC 是什么,对我来说是一个谜),这就是这里的问题Alt。Fx
答案1
我想访问一个
agetty
终端,通常使用⎈ Control+ ⎇ Alt+访问该终端F2
其中有两个错误,其中之一指向一个答案,几个可能的答案之一。
第一个错误是 FreeBSD不具有Wietse Venema 的agetty
(“另类盖蒂”)。它有普通的BSD getty
。所以这个命名法是错误的。事实上,不一定getty
在每个内核虚拟终端上运行,这取决于/etc/ttys
.
第二个错误是正常访问多个内核虚拟终端在 FreeBSD 上只有简单的⎇ Alt和一个功能键。这⎈ Control是多余的,并且仅当 X 服务器位于前台时才需要。 X 服务器只识别同时具有⎈ Control+的和弦⎇ Alt,但键盘映射给内核本身,这就是当 X 服务器不在前台时处理此问题的方法,实际上只需要⎇ Alt,就像它们在 SCO Multiscreen 上所做的那样(起源于此) :
% sed -n -e '1,4p;/ 068 /p' /usr/share/vt/keymaps/uk.kbd #$FreeBSD$ # 替代 # 扫描 cntrl alt alt cntrl 锁定 # 代码 基本 移位 cntrl 移位 alt 移位 cntrl 移位状态 第068期 %
当然,一能向来宾操作系统发送⎈ Control+和弦,有两种方法可以执行此操作:⎇ Alt
- 打开来宾中的粘滞键。使用粘滞键将⎈ Control修改器粘下来,然后按⎇ Alt+ F2。请注意,粘滞键支持是 GUI 的事情。如果 GUI 会话不在前台,这将无济于事。
- 切换到 QEMU Monitor Console,然后使用该
sendkey
命令。这可以向客户操作系统发送各种和弦。在这种特殊情况下,它会是sendkey ctrl-alt-f2
。然后切换从...回来当然是监视器控制台。
Ubuntu 用户(包括此处的 muru)建议使用该chvt
命令。这就是 Linux 思维。chvt
FreeBSD 中没有命令。我写了一个,并在 nosh 工具集中提供了它;但操作系统并没有附带一个开箱即用的操作系统。
Mychvt
主要用于用户空间虚拟终端,默认为head0
,但它也可以处理内核虚拟终端。为此目的,可以调用它(假设有访问权限/dev/ttyv0
):
chvt 1@ttyv0
开箱即用的工具是vidcontrol
,对于这一特定任务,可以调用该工具(假设有访问权限/dev/ttyv0
):
vidcontrol -s 2 < /dev/ttyv0
进一步阅读
- ”监视器”。QEMU。维基教科书。
- 乔纳森·德博因·波拉德 (2018)。
chvt
。小吃指南。软件。 - 索伦·施密特、萨沙·维尔德纳等人。 (2016-01-19)。
vidcontrol
FreeBSD 通用命令手册。 freebsd.org。 - getty 和 Agetty 和有什么不一样?
- https://unix.stackexchange.com/a/480705/5132