Не уверен, что это сработает для вас, но мне удалось подключить карту к виртуальной машине Kali через Vmware Direct I/O passthrough. Я использую Esxi 6.5, на котором работает моя Kali.
Лучший способ решить эту проблему — использовать библиотеку terminfo
. Это намного, намного проще, чем запоминать escape-коды, и, как правило, менее подвержено ошибкам. (Он также не зависит от терминала, но я подозреваю, что в наши дни маловероятно, что вы будете использовать терминальное устройство, не -ANSI.)
# Use reversed colours
tput smso
echo hello, world
tput rmso
Вы даже можете поместить коды в переменные программно, вот так
smso=$(tput smso)
rmso=$(tput rmso)
echo "${smso}Hello again${rmso}"
Также есть элементы управления цветом, использующие tput setf {colour}
и tput setb {colour}
. (Найдите man terminfo
«Обработка цвета». )Они более неудобны, поэтому для их обработки я обычно использую небольшой скрипт
colour blue yellow
echo this is blue on yellow
Вот скрипт
#!/bin/sh
#
# Take a pair of colours and set the foreground and background,
# respectively.
#
########################################################################
#
NULL=/dev/null
fg="$1"
bg="$2"
########################################################################
# Translate a colour name to the corresponding ANSI index value
#
colourNo ()
{
case "$1" in
black|0) echo 0 ;;
blue|1) echo 1 ;;
green|2) echo 2 ;;
cyan|3) echo 3 ;;
red|4) echo 4 ;;
magenta|5) echo 5 ;;
yellow|6) echo 6 ;;
white|7) echo 7 ;;
esac
return
}
########################################################################
# Go
#
if test "X$1" = 'X-?'
then
progname=`basename "$0"`
echo "Usage: $progname [<fg_colour>|- [bg_colour]]" >&2
exit 1
fi
if test -n "$fg" -a "X$fg" != "X-"
then
colour=`colourNo "$fg"`
test -n "$colour" && tput setf "$colour"
fi
if test -n "$bg" -a "X$bg" != "X-"
then
colour=`colourNo "$bg"`
test -n "$colour" && tput setb "$colour"
fi
exit 0
\e[7m
— это код обратного видео (, также часто используемый для режима выделения )в большинстве терминалов. Что это делает, так это заменяет цвет фона на цвет переднего плана, а цвет переднего плана на цвет фона, это не перевернутое -видео, как на фотонегативе.
Для фотонегативов несколько разъемов поддерживают:
\e[38;2;RED;GREEN;BLUEm # for foreground
\e[48;2;RED;GREEN;BLUEm # for background
escape-последовательности, где RED
, GREEN
, BLUE
— десятичное число от 0 до 255. Это указывает терминалу выбрать цвет в своей палитре, наиболее близкий к этой спецификации RGB.
Так что можно было:
straight_color() {
printf '\33[48;2;%s;%s;%sm\33[38;2;%s;%s;%sm' "$@"
}
negative_color() {
for c do
set -- "$@" "$((255 - c))"
shift
done
straightcolor "$@"
}
А потом например:
straight_color 255 0 0 255 255 255
Для ярко-белого переднего плана на ярко-красном фоне и:
negative_color 255 0 0 255 255 255
для негатива (черный на ярком голубом ).