O recurso de redirecionamento de USB tem uma dependência no driver de kernel do USB Virtual Host Controller Interface (VHCI). Para oferecer suporte ao USB 3.0 e ao recurso de redirecionamento de USB, você deve realizar as seguintes etapas:
1 Baixe o código-fonte USB VHCI em https://sourceforge.net/projects/usb-vhci/files/
linux%20kernel%20module/.
2 Para compilar o código-fonte do driver VHCI e instalar o binário resultante no seu sistema Linux, use os comandos listados na tabela a seguir.
Por exemplo, se você descompactar o arquivo de instalação VMware -horizonagent-linux-x86_64- YYMM - yyy - xxxxxxx .tar.gz { no diretório / install_tmp / , o full-path_to_patch-file é / install_tmp / VMware -horizonagent-linux-x86_64- YYMM - yyy - xxxxxxx /resources/vhci/patch/vhci.patch and the patch command to use is is
# patch -p1 < /install_tmp/VMware-horizonagent-linux-x86_64-YYMM-y.y.y-xxxxxxxi/resources/
vhci/patch/vhci.patch
Observação A instalação do driver VHCI deve ser feita antes da instalação do Horizon para Linux.
Tabela 1-8. Compilar e instalar o driver VHCI USB
Distribuição
Linux Etapas para compilar e instalar o driver VHCI USB Ubuntu 20.04 /
18.04
1 Instale os pacotes de dependência.
# apt-get install make
# apt-get install gcc
# apt-get install libelf-dev
2 Compile e instale os drivers VHCI.
# tar -xzvf vhci-hcd-1.15.tar.gz
# cd vhci-hcd-1.15
# patch -p1 < full-path_to_patch-file
# make clean && make && make install
Ubuntu 16.04 Compile e instale os drivers VHCI.
# tar -xzvf vhci-hcd-1.15.tar.gz
# cd vhci-hcd-1.15
# patch -p1 < full-path_to_patch-file
# make clean && make && make install
Tabela 1-8. Compilar e instalar o driver VHCI USB (continuação)
Distribuição
Linux Etapas para compilar e instalar o driver VHCI USB RHEL / CentOS
7.x
RHEL / CentOS 8.x
1 Instale os pacotes de dependência.
# yum install gcc-c++
# yum install kernel-devel-$(uname -r)
# yum install kernel-headers-$(uname -r)
# yum install patch
# yum install elfutils-libelf-devel
2 Compile e instale os drivers VHCI.
# tar -xzvf vhci-hcd-1.15.tar.gz
# cd vhci-hcd-1.15
# patch -p1 < full-path_to_patch-file
# make clean && make && make install
3 (RHEL / CentOS 8.x) Para garantir que os drivers VHCI funcionem corretamente com o redirecionamento de USB, defina as configurações de assinatura para o driver USB.
a Crie um par de chaves SSL para o driver USB.
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/" -addext extendedKeyUsage=1.3.6.1.5.5.7.3.3
b Assine o driver USB.
sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./
MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/
usb-vhci-iocifc.ko
sudo /usr/src/kernels/$(uname -r)/scripts/sign-file sha256 ./
MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/drivers/usb/host/
usb-vhci-hcd.ko
c Registre a chave para UEFI Secure Boot.
sudo mokutil --import MOK.der
Observação Esse comando emite uma solicitação para definir uma senha de Chave do Proprietário da Máquina (MOK) para a Inicialização Segura da UEFI.
d Para configurar o UEFI Secure Boot no console do vSphere, reinicie o sistema. Para obter mais informações, consulte https://sourceware.org/systemtap/wiki/SecureBoot .
SLED / SLES 12.x SLED / SLES 15.x
1 Encontre a versão do pacote de kernel atual.
# rpm -qa | grep kernel-default-$(echo $(uname -r) | cut -d '-' -f 1,2) A saída é o nome do pacote do kernel atualmente instalado. Se, por exemplo, o nome do pacote for kernel-default-3.0.101-63.1 , a versão atual do pacote do kernel é 3.0.101-63.1.
2 Instale os pacotes kernel-devel , kernel-default-devel , kernel-macros e patch .
# zypper install --oldpackage kernel-devel-<kernel-package-version> \ kernel-default-devel-<kernel-package-version> kernel-macros-<kernel-package-version> patch
Tabela 1-8. Compilar e instalar o driver VHCI USB (continuação)
Distribuição
Linux Etapas para compilar e instalar o driver VHCI USB
Por exemplo:
# zypper install --oldpackage kernel-devel-4.4.21-90.1 kernel-default-devel-4.4.21-90.1 kernel-macros-4.4.21-90.1 patch
3 Compile e instale os drivers VHCI.
# tar -xzvf vhci-hcd-1.15.tar.gz
# cd vhci-hcd-1.15
# patch -p1 < full-path_to_patch-file
# mkdir -p linux/$(echo $(uname -r) | cut -d '-' -f 1)/drivers/usb/core
# cp /lib/modules/$(uname -r)/source/include/linux/usb/hcd.h linux/$(echo
$(uname -r) | cut -d '-' -f 1)/drivers/usb/core
# make clean && make && make install
4 (SLED / SLES 15.x) Para garantir que os drivers VHCI funcionem corretamente com o redirecionamento de USB, defina as configurações de assinatura para o driver USB.
a Crie um par de chaves SSL para o driver USB.
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=Descriptive name/" -addext extendedKeyUsage=1.3.6.1.5.5.7.3.3
b Encontre o caminho para o arquivo de assinatura do driver USB.
find / -name sign-file
Este comando retorna os caminhos para todos os arquivos de assinatura localizados no sistema. O caminho do arquivo de assinatura para o driver USB é semelhante ao exemplo a seguir.
/usr/src/linux-5.3.18-24.9-obj/x86_64/default/scripts/
c Assine o driver USB. Nos comandos a seguir, <sign-file-path> é o caminho para o arquivo de assinatura que você encontrou anteriormente na etapa 4b.
# sudo /<sign-file-path>/sign-file sha256 ./MOK.priv ./MOK.der /lib/
modules/$(uname -r)/kernel/drivers/usb/host/usb-vhci-iocifc.ko
# sudo /<sign-file-path>/src/kernels/$(uname -r)/scripts/sign-file sha256 ./MOK.priv ./MOK.der /lib/modules/$(uname -r)/kernel/
drivers/usb/host/usb-vhci-hcd.ko
d Registre a chave para UEFI Secure Boot.
# sudo mokutil --import MOK.der
Observação Esse comando emite uma solicitação para definir uma senha de Chave do Proprietário da Máquina (MOK) para a Inicialização Segura da UEFI.
e Para configurar o UEFI Secure Boot no console do vSphere, reinicie o sistema. Para obter mais informações, consulte https://sourceware.org/systemtap/wiki/SecureBoot .
Além disso, siga estas diretrizes:
n Se o kernel do Linux mudar para uma nova versão, você deverá recompilar e reinstalar o driver VHCI, mas não será necessário reinstalar o Horizon for Linux.
n Você também pode adicionar o Suporte ao Módulo de Kernel Dinâmico (DKMS) ao driver VHCI usando etapas semelhantes ao exemplo a seguir para um sistema Ubuntu.
a Instale os cabeçalhos do kernel.
# apt install linux-headers-`uname -r`
b Instale o dkms usando o seguinte comando.
# apt install dkms
c Extraia e corrija o arquivo VHCI TAR.
# tar xzvf vhci-hcd-1.15.tar.gz
# cd vhci-hcd-1.15
# patch -p1 <full-path_to_patch-file>
# cd ..
d Copie os arquivos de origem VHCI extraídos para o diretório / usr / src .
# cp -r vhci-hcd-1.15 /usr/src/usb-vhci-hcd-1.15
e Crie um arquivo chamado dkms.conf e coloque-o no diretório /usr/src/usb-vhci-hcd-1.15 .
# touch /usr/src/usb-vhci-hcd-1.15/dkms.conf
f Adicione o seguinte conteúdo ao arquivo dkms.conf .
PACKAGE_NAME="usb-vhci-hcd"
PACKAGE_VERSION=1.15
MAKE_CMD_TMPL="make KVERSION=$kernelver"
CLEAN="$MAKE_CMD_TMPL clean"
BUILT_MODULE_NAME[0]="usb-vhci-iocifc"
DEST_MODULE_LOCATION[0]="/kernel/drivers/usb/host"
MAKE[0]="$MAKE_CMD_TMPL"
BUILT_MODULE_NAME[1]="usb-vhci-hcd"
DEST_MODULE_LOCATION[1]="/kernel/drivers/usb/host"
MAKE[1]="$MAKE_CMD_TMPL"
AUTOINSTALL="YES"
g Adicione este driver VHCI no dkms .
# dkms add usb-vhci-hcd/1.15
h Compile o driver VHCI.
# dkms build usb-vhci-hcd/1.15
i Instale o driver VHCI.
# dkms install usb-vhci-hcd/1.15