VirtualHere – запуск клиента в качестве службы Ubuntu

В комментариях к статье по настройке сервера VirtualHere была затронута тема настройки клиента Linux. Поэтому я решил в этой небольшой опорной статье разобрать, как выполняется типовой запуск клиента в качестве службы Ubuntu.

Сразу отмечу важный момент – использование клиента в качестве службы доступно только в полнофункциональной версии, т.е. на демо версии проверить не получится. Запуск службы вы настроить сможете, но вот подключить устройство по сети нет.

ВАЖНО: В Linux CentOS 8 и 9 из коробки нет модуля vhci_hcd. Поэтому нужно либо добавлять этот модуль вручную. Либо использовать контейнеры. Признаюсь честно, я потратил около 2-х часов на то, чтобы попробовать реализовать какой-то из этих вариантов, но из этого толком ничего не получилось. Пробовал даже сторонний модуль vhci_hcd от elrepo. Насколько я понял, модуль от elrepo не работает на ядре 4.18.0-394, а рассчитан на работу с более старой версией ядра. Но это только мои догадки – не так много у меня опыта работы с Linux. Если у кого-то получилось запустить клиент на CentOS 8 или 9 – поделитесь в комментариях опытом.

Общая схема

На рисунке ниже привожу общую схему решения.

Это будет достаточно простой типовой пример, но в то же время его будет достаточно для понимания общего принципа настройки. На сервере (10.10.10.37) будет подключен одино USB устройство – флешка на N-нное количество ГБ. На сторонге клиента (10.10.10.38) будет настроен запуск клиента в качестве службы Ubuntu.

Как на стороне сервера, так и на стороне клиента я установил ОС Ubuntu 20.04.4 LTS.

Настройка серверной части

Настройку серверной части я выполню в соответствии со статьей из этого руководства.

На сервер я подключил USB флешку на 64 ГБ.

sudo lsusb
roman@vhsrv:~$ sudo lsusb
[sudo] password for roman: 
Bus 004 Device 002: ID 125f:dd33 A-DATA Technology Co., Ltd. ADATA USB Flash Drive
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 003: ID 0e0f:0002 VMware, Inc. Virtual USB Hub
Bus 002 Device 002: ID 0e0f:0003 VMware, Inc. Virtual Mouse
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub

С этим накопителем мы и будем упражняться.

Настройка клиентской части

Сначала выполним загрузку клиента и настройку его запуска в качестве службы:

sudo su
wget https://www.virtualhere.com/sites/default/files/usbclient/scripts/virtualhereclient.service
wget https://www.virtualhere.com/sites/default/files/usbclient/vhclientx86_64
chmod +x ./vhclientx86_64
sudo mv ./vhclientx86_64 /usr/sbin
sudo mv virtualhereclient.service /etc/systemd/system/virtualhereclient.service
systemctl daemon-reload
systemctl enable virtualhereclient.service
systemctl start virtualhereclient.service

Проверим статус службы:

systemctl status virtualhereclient.service
root@vhclt:/home/roman# systemctl status virtualhereclient.service
● virtualhereclient.service - VirtualHere Client
     Loaded: loaded (/etc/systemd/system/virtualhereclient.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2022-07-01 23:05:48 +07; 57s ago
   Main PID: 3211 (vhclientx86_64)
      Tasks: 9 (limit: 4582)
     Memory: 16.4M
     CGroup: /system.slice/virtualhereclient.service
             └─3211 /usr/sbin/vhclientx86_64 -n

июл 01 23:05:48 vhclt systemd[1]: Starting VirtualHere Client...
июл 01 23:05:48 vhclt vhclientx86_64[3211]: VirtualHere Client: VirtualHere Client 5.3.4 starting (Compiled: Apr 25 2022 19:54:55)
июл 01 23:05:48 vhclt systemd[1]: Started VirtualHere Client.
июл 01 23:05:48 vhclt vhclientx86_64[3211]: VirtualHere Client: Client OS is Linux 5.13.0-52-generic x86_64
июл 01 23:05:48 vhclt vhclientx86_64[3211]: VirtualHere Client: Using config at /root/.vhui
июл 01 23:05:48 vhclt vhclientx86_64[3211]: VirtualHere Client: IPC available at /tmp/vhclient
июл 01 23:05:48 vhclt vhclientx86_64[3211]: VirtualHere Client: VirtualHere Client is running as a service
июл 01 23:05:48 vhclt vhclientx86_64[3211]: VirtualHere Client: Auto-find (Bonjour) on
июл 01 23:05:48 vhclt vhclientx86_64[3211]: VirtualHere Client: Auto-find (Bonjour SSL) on
июл 01 23:05:48 vhclt vhclientx86_64[3211]: VirtualHere Client: VirtualHere USB Server Trial Edition (10.10.10.37:7575)

Как видно из листинга выше – служба запустилась и работает коррректно.

Расширенно руководство по командам клиента доступно вот тут.

Укажем расположение сервера:

vhclientx86_64 -t "MANUAL HUB ADD,10.10.10.37:7575"
root@vhclt:/home/roman# vhclientx86_64 -t "MANUAL HUB ADD,10.10.10.37:7575"
OK
root@vhclt:/home/roman#

Теперь клиент должен увидеть наш сервер. Проверим:

vhclientx86_64 -t "LIST"
root@vhclt:/home/roman# vhclientx86_64 -t "LIST"
VirtualHere Client IPC, below are the available devices:
(Value in brackets = address, * = Auto-Use)

Desktop Hub (vhsrv:7575) 
   --> ADATA USB Flash Drive (vhsrv.41) 
   --> VMware Virtual USB Mouse (vhsrv.31) 

Auto-Find currently on
Auto-Use All currently off
Reverse Lookup currently off
Reverse SSL Lookup currently off
VirtualHere Client is running as a service
root@vhclt:/home/roman# 

Как видно из листинга выше клиент видит сервер (vhsrv:7575) и два USB устройства – наш USB накопитель и мышку.

Подключение устройства выполняется следующей командой (где vhsrv.41 – это внутренее имя устройства из листинга выше):

vhclientx86_64 -t "USE,vhsrv.41"

Повторюсь – использование консольного клиента доступно только в полнофункциональной версии.

Если у вас нет лицензии, то вы получите следующую ошибку в журнале:

root@vhclt:/home/roman# tail /var/log/syslog 
Jul  1 23:34:27 vhclt VirtualHere Client: You need to purchase a license for your Server (10.10.10.37:7575) to enable access via a VirtualHere Client running as a service

Для того, чтобы устройство подключалось автоматически даже после перезагрузки системы используйте следующую комбинацию команд (где vhsrv.41 – это внутренее имя устройства из листинга выше):

vhclientx86_64 -t "USE,vhsrv.41"
vhclientx86_64 -t "AUTO USE DEVICE PORT,vhsrv.41"

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *