进一步阅读

进一步阅读

在我的 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 是什么,对我来说是一个谜),这就是这里的问题AltFx

答案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 思维。chvtFreeBSD 中没有命令。我写了一个,并在 nosh 工具集中提供了它;但操作系统并没有附带一个开箱即用的操作系统。

Mychvt主要用于用户空间虚拟终端,默认为head0,但它也可以处理内核虚拟终端。为此目的,可以调用它(假设有访问权限/dev/ttyv0):

chvt 1@ttyv0

开箱即用的工具是vidcontrol,对于这一特定任务,可以调用该工具(假设有访问权限/dev/ttyv0):

vidcontrol -s 2 < /dev/ttyv0

进一步阅读

相关内容