Xrdp-usb: различия между версиями

Материал из ALT Linux Wiki
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
Краткая схема работы подключения usb устройств через Xrdp.
Схема работы подключения usb-устройств через xfreerdp.
'''Все действия выполняются под рутом, т.е. после команды su-'''
В этой статье действия будут выполняться как со стороны сервера '''(server1)''', так и со стороны клиента '''(client1)'''


Для начала, установим необходимую инфраструктуру:
Перед началом работы, необходимо обновить систему. Обновить систему необходимо как на терминальном сервере (Альт 8 СП), так и на клиентском сервере (в моем случае это Альт Образование)
apt-get update


'''server1'''
На терминальном сервере (Альт 8 СП) устанавливаем xrdp-usb-session:
  apt-repo test 285162 xrdp-usb-session
apt-repo test 285162 xrdp-usb-session


'''client1'''
xrdp-usb-session для сеанса xrdp-sesman добавляет запуск автоподключения всех USB-устройств с клиента.
Далее, после установки xrdp-usb-session необходимо перезапустить службу xrdp-sesman.
 
[[Файл:Systemctl restart.png]]
 
Теперь, переходим к терминальному клиенту (В моем случае, Альт Образование). Устанавливаем xrdp-usb-terminal:
  apt-repo test 285162 xrdp-usb-terminal
  apt-repo test 285162 xrdp-usb-terminal
apt-repo test 285162 openuds-client


Так же, нам необходимо добавить устройства, которые мы хотим пробросить. Для этого нам необходимо знать идентификатор устройства 14d3:56c9 или только с первой частью 14d3:* (как пример), а так же добавить этот идентификатор
А так же, после установки xrdp-usb-terminal, нам необходимо добавить нашего пользователя в группу disk:
в файл /etc/xrdp-usb
usermod -a -G disk alt-1      (там где alt-1, необходимо ваше имя пользователя)
 
Далее, после успешной установки xrdp-usb-terminal и после того, как мы добавили нашего пользователя в группу disk, нам необходимо перезагрузить систему (чтобы все модули загрузились) и служба usbipd запустилась. По умолчанию никакие устройства не передаются.  Чтобы они передавались, в терминале запускается lsusb и смотрятся идентификаторы.


Далее, нам необходимо внести пользователя в группу 'disk'
  usermod -a -G disk alt-1          (alt-1 - здесь необходим ваше имя пользователя)
[[Файл:Lsusb.png]]


Теперь, устанавливаем usbip
apt-get install usbip
Так же, ставим kernel модуль:
modprobe vhci-hcd


Чтобы модуль загружался автоматически, когда вы запускаете систему необходимо добавить его в /etc/modules
Необходимые для нас данные на скриншоте сверху это идентификатор (в нашем случае это ID 13fe:4300). Теперь нам нужно отредактировать файл в /etc/xrdp-usb
  nano /etc/modules
  vim /etc/xrdp-usb
vhci-hcd


Далее, нам необходимо присоединиться к usbip серверу через команду:
[[Файл:Etc-xrdp-usb.png]]
usbip list -l 192.168.0.100            (192.168.0.100 является адресом usbip сервера)


После выполнения последней команды, вы должны увидеть те USB устройства, которые у вас имеются (устройства ниже, являются примером. У вас устройства будут отличаться):
Указывать можно сколько угодно идентификаторов, но необходимо быть осторожным с идентификаторами мыши и клавиатуры. Если они будут проброшены, то локально они не будут доступны.
- busid 3-1 (80ee:0021)
  VirtualBox : USB Tablet (80ee:0021)


Чтобы подсоединиться к устройству необходимо ввести команду:
Далее, необходимо установить openuds-client на терминальный сервер (Альт 8 СП). Openuds при подключение самостоятельно экспортирует указанные устройства.
usbip attach -r 192.168.0.100 -b 3-1        (-r - Remote, -b busid)


Далее, необходимо ввести команду lsusb, чтобы найти удаленное USB-устройство в выводе на клиенте:
Для того, чтобы обратиться к терминальному серверу (через Remmina или xfreerdp), то перед подключением необходимо запустить программу usbip-export (на клиенте).
lsusb
Далее, со стороны клиента подключаемся к терминальному серверу:


'''server1'''
  usbip attach -r 192.168.0.1 -b 3-2
Нам необходимо забиндить, но уже со стороны сервера usbid:
  usbip bind -b 3-1


-r Является ip адресом терминального сервера
-b Является идентификатор устройства, который мы отредактировали в файле /etc/xrdp-usb , а так же, который был подтвержден посредством команды usbip-export


   
   

Версия от 13:01, 27 сентября 2021

Схема работы подключения usb-устройств через xfreerdp.

Перед началом работы, необходимо обновить систему. Обновить систему необходимо как на терминальном сервере (Альт 8 СП), так и на клиентском сервере (в моем случае это Альт Образование)

apt-get update

На терминальном сервере (Альт 8 СП) устанавливаем xrdp-usb-session:

apt-repo test 285162 xrdp-usb-session

xrdp-usb-session для сеанса xrdp-sesman добавляет запуск автоподключения всех USB-устройств с клиента. Далее, после установки xrdp-usb-session необходимо перезапустить службу xrdp-sesman.

Systemctl restart.png

Теперь, переходим к терминальному клиенту (В моем случае, Альт Образование). Устанавливаем xrdp-usb-terminal:

apt-repo test 285162 xrdp-usb-terminal

А так же, после установки xrdp-usb-terminal, нам необходимо добавить нашего пользователя в группу disk:

usermod -a -G disk alt-1       (там где alt-1, необходимо ваше имя пользователя)

Далее, после успешной установки xrdp-usb-terminal и после того, как мы добавили нашего пользователя в группу disk, нам необходимо перезагрузить систему (чтобы все модули загрузились) и служба usbipd запустилась. По умолчанию никакие устройства не передаются. Чтобы они передавались, в терминале запускается lsusb и смотрятся идентификаторы.


Lsusb.png


Необходимые для нас данные на скриншоте сверху это идентификатор (в нашем случае это ID 13fe:4300). Теперь нам нужно отредактировать файл в /etc/xrdp-usb

vim /etc/xrdp-usb

Etc-xrdp-usb.png

Указывать можно сколько угодно идентификаторов, но необходимо быть осторожным с идентификаторами мыши и клавиатуры. Если они будут проброшены, то локально они не будут доступны.

Далее, необходимо установить openuds-client на терминальный сервер (Альт 8 СП). Openuds при подключение самостоятельно экспортирует указанные устройства.

Для того, чтобы обратиться к терминальному серверу (через Remmina или xfreerdp), то перед подключением необходимо запустить программу usbip-export (на клиенте). Далее, со стороны клиента подключаемся к терминальному серверу:

usbip attach -r 192.168.0.1 -b 3-2

-r Является ip адресом терминального сервера -b Является идентификатор устройства, который мы отредактировали в файле /etc/xrdp-usb , а так же, который был подтвержден посредством команды usbip-export