• Nenhum resultado encontrado

Driver VHCI para redirecionamento de USB

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