Единственное место, где я видел эту информацию, это в virt-manager
и в XML-файле ВМ, когда вы их сбрасываете.
выдержка - Источник: x86 Virtualization
Ранее носивший кодовое название "Vanderpool", VT-x представляет собой технологию Intel для виртуализации на платформе x86. 13 ноября 2005 года Intel выпустила две модели Pentium 4 (модели 662 и 672) в качестве первых процессоров Intel с поддержкой VT-x. Флаг процессора для VT-x - "vmx"; в Linux это можно проверить через /proc/cpuinfo, а в Mac OS X - через sysctl machdep.cpu.features.[19]
Итак, искомый флаг - vmx.
Пример
$ sudo virsh dumpxml visualstudio | grep -A 10 cpu
2
hvm
Итак, в приведенном выше выводе вы ищете функцию под названием vmx. Если ее нет, значит она отключена и/или не поддерживается.
Пример
Обратите особое внимание на вашу конкретную версию KVM/virsh, поскольку многие функции доступны только в определенных версиях. Дополнительные сведения см. в этом руководстве под названием: Возможности гипервизора.
ПРИМЕЧАНИЕ: В приведенном выше выводе, если функция обозначена как off, то она не отключена, если написано on, то она включена.
Единственное, что я думаю сделать с этим сценарием (, который я не тестировал, поскольку я не работаю в системе Unix с X, и у меня нет монитора HDMI ), кроме его запуска каждую секунду (, что звучит как излишество ), заключается в применении к ней принципа DRY . Это означало бы рефакторинг, чтобы он вызывал только xrandr
и pactl
в одном месте цикла (, за исключением дополнительного вызова xrandr
в тесте ):
#!/bin/sh
intern=eDP1
extern=DP1
while true; do
if xrandr | grep -q -F -e "$extern disconnected"; then
output_on=$intern
output_off=$extern
profile=analog
else
output_on=$extern
output_off=$intern
profile=hdmi
fi
if [ "$previous_profile" != "$profile" ]; then
xrandr --output "$output_off" --off \
--output "$output_on" --auto
pactl set-card-profile 0 "output:$profile-stereo+input:analog-stereo"
previous_profile=$profile
fi
sleep 1
done
Таким образом, вам нужно только изменить параметры вызовов xrandr
и pactl
в одном месте, и вам не нужно помнить об обновлении нескольких строк кода.
Поскольку скрипт не использует никакихbash
-специфических функций, я также изменил оболочку на /bin/sh
, которая может быть более легкой -по весу, чем bash
.Вы можете явно указать его на исполняемый файл оболочки dash
.
Вызов grep
исправлен таким образом, что он не производит никаких выходных данных(-q
)и так что он выполняет сравнение строк, а не сопоставление с регулярным выражением(-F
). -e
сообщает grep
, что следующее в командной строке — шаблон поиска. Как правило, хорошо использовать -e
, если первая вещь в шаблоне — расширение переменной, так как значение, начинающееся с -
, может запутать утилиту.
Я также убедился, что вызовы xrandr
и pactl
выполняются а не , если значение переменной profile
не изменяется между итерациями.