• Почему для Windows платно, а для Linux бесплатно.

  • Где кончается ядро и начинаются проблемы совместимости в Linux

  • Настройка USB Redirector для Linux

  • Пингвин расправил крылья?

Почему для Windows платно, а для Linux бесплатно

В настоящее время USB ключи защиты для 1С становятся антиквариатом, который постоянно растет в цене, поскольку санкции перекрыли их поставки, но за 15 лет их еще огромное количество. USB ключ гораздо удобней программной лицензии, особенно в виртуальной среде, где любые перемещения виртуальной машины приводят к необходимости переактивации лицензии. В конце концов программную лицензию удобно привязать к USB ключу (любого номинала). Минус их нужно пробрасывать.

Проброс USB в Linux можно делать разными способами.

Например, можно через usbip (usbip win) , который позиционируется как стандартный. Попробуйте поставить его на Oracle Linux (Red hat) версии 9. Поиск по всем рекомендованным репозиториям результатов не дает. Изучение вопроса приводит к необходимости компилировать это из исходников под конкретное ядро Linux. Ладно, смотрим дальше.

У меня был положительный опыт эксплуатации USB Redirector для Windows, однако он платный. Посмотрел версию для Linux, здорово — она бесплатная! И клиентская и серверная. Изучение инструкции по установки привело в уныние — нужно тоже компилировать из исходников и еще мирится с этим

If your kernel is updated after USB Redirector installation, you may need to re-install the program to re-compile its kernel module!

This is because kernel modules in Linux are tied to a particular kernel version, thus they need to be re-compiled for each new kernel to work correctly

Ну вы поняли, если в Windows я ставлю USB Redirector, то я могу спокойно ставить обновления и на 99% быть уверенным, что все будет работать. А вот в Linux при обновлении ядра можно быть на 99% уверенным, что это работать не будет. Потому что USB Redirector нужно пересобирать! А как же тогда обновления? А вот Вам

Таким образом мы имеем две проблемы

  • Отсутствие rpm с нужной программой для текущего ядра.

  • Необходимость постоянной перекомпиляции при обновлении.

Причина такой ситуации лежит исключительно в идеологии построения системы Linux. Есть замечательная статья от сообщества Linux, которая отвечает на вопрос: Почему в Linux так? И конечно дорога в этот ад системного администратора, была выстроена исключительно благими намерениями обеспечить рай для разработчиков.

The Linux Driver Model: A Better Way to Support Devices - The Linux Foundation

 Рассмотрим детально на примере развертывания USB Redirector

Где  кончается ядро и начинаются проблемы совместимости в Linux

Итак имеем свежеустановленный Oracle linux с версией ядра

uname -r
5.15.0-302.167.6.el9uek.x86_64

Usb redirector по странному совпадению запрещает доступ на сайт из России, но из-за границы все работает. Поэтому исходные инструкции положил тут

 Инструкции по установки USB Redirector

Распакованный дистрибутив нужно скопировать на сервер Linux  и запустить из каталога дистрибутива команду

sudo ./installer.sh install

В теории клиентская и серверная часть USB Redirector  должна быть скомпилирована, собрана и установлена , но меня конечно поджидал сюрприз

«Kernel sources or kernel headers directory not found»

В инструкции разработчик предлагает установить пакеты. Вот такой командой

yum install make gcc chkconfig kernel-devel-`uname -r`

Но пакета kernel-devel для моей версии ядра найдено не было. И это на свежей инсталляции Oracle Linux!

Это кстати «нормальная» практика распространения софта в Linux через нескомпилированные модули, и как Вы увидите дальше причина не в лени разработчиков софта, а в идеологии ядра.

Чтобы разобраться в этом нужно достичь определенного уровня понимания. Это как в физике, чтобы достичь понимания процессов во вселенной надо сначала изучить процессы в ядрах, элементарных частицах и т.д.

Далее я буду ссылаться на The Linux Driver Model: A Better Way to Support Devices - The Linux Foundation в которой Linux разработчики сравнивают модели драйверов Linux и Windows. Рекомендую прочитать на английском, если хочется понять глубже мотивацию разработчиков Linux.

На данной картинке видно, что в операционной системе (Windows и Linux ) есть понятия

API – application programming interface

ABI – application binary interface

При чем они могут существовать в двух областях Linux kernel to user space, Linux kernel to internal.

Так вот в Windows ABI – application binary interface подразумевает стабильность даже в рамках разных версий Windows.

В Linux стабильности ABI нет даже в разных версий ядра и это сознательная стратегия.

В Linux НЕТ стабильности ни в ABI ни в API при разработке драйверов, но есть стабильность в user space interface. Это позволяет скомпилированным приложениям работать  на разных версиях Linux без особых проблем, а вот скомпилированным драйверам уже нет.

По сути в Linux драйвера это часть ядра. Есть даже понятие драйвер принят в mainline kernel. В Windows драйвера и ядро четко изолированы – разработчики драйверов не видят код ядра, а разработчики кода ядра не видят кода драйверов. В Linux нормально предоставить код драйвера для компиляции пользователем под конкретное ядро.

Итак давайте сравним модели по критериям.

Совместимость скомпилированных драйверов.

  • В Windows совместимость выше.

  • В Linux она никакая, совместимость можно достичь, только скомпилировав драйвер заново.

Кроссплатформенность

  • В Windows она низкая, поскольку ABI может быть стабилен только в рамках платформы.

  • В Linux высокая кроссплатформенность, поскольку сборка дистрибутива подразумевает компиляцию исходников кода под платформу.

Совместимость со старым оборудованием.

  • В Windows драйвер работает пока не наблюдается фатальной несовместимости с новыми версиями ОС.

  • В Linux это решается перекомпиляцией, старые драйвера исключаются, если пользователей становится критически мало. 

Толерантность к обновлениям.

  • У Windows высокая, поскольку подразумевается совместимость интерфейса для драйверов

  • У Linux зависит где обновление: в user space или kernal – internal. Если драйвер является частью репозитория проблем нет, если нет то нужно компилировать драйвер заново. А поскольку делать rpm для каждой версии ядра это неоплачиваемый труд, то Вам дадут исходник для компиляции

Устойчивость модели к ошибкам.

  • В Windows после компиляции, разработчик может покрыть свой драйвер тестами и передать администратору. Исходники распространять нет нужды – ABI разных ядер совместим.

  • В Linux после компиляции, администратор просто не имеет возможности покрыть драйвер тестами. Кто же ему их даст?

Разработчики Linux считают свою модель ABI прогрессивной по следующим причинам:

  • Полностью открытый код ядра и драйвера, позволяет писать его оптимально.

  • Не нужно реализовывать устаревшие спецификации (например для USB), можно сразу реализовывать новые.

  • Включение драйверов в ядро позволяет достичь стабильности ОС, ведь там будет отличный code review с обоих сторон.

  • Высокая кроссплатформенность в том числе для будущих поколений оборудования.

В качестве сравнения с Windows приводится ситуация с драйверами под Windows Vista — переход на 64бит и дальнейшая поддержка. Да — разработчики драйверов под Windows поддерживают драйвера ровно до окончания цикла продаж устройства. Это особенно видно по китайским ноутбукам.

Вот только разработчики Linux почему-то не акцентируют внимание на двух проблемах.

  1. Компиляция драйвера подразумевает тестирование как часть DevOps, а на практике что и как скомпилируется у пользователя никак не тестируется. Т.е. изначально мы внедряем в операционную систему непротестированную сборку драйвера.

  2. Если драйвер часть ядра ОС, мы получим несовместимость при обновлении ОС Linux

  3. Если бы компиляция всегда производилась гладко, как установка rpm пакетов с контролем зависимости,  эту ситуацию можно было бы принять. Но как увидите далее все гораздо хуже.

На самом деле ABI модель определяет и будущее Linux. Будет ли она удобным инструментом ИТ инфраструктуры, или ее нишей будут устройства типа настроил, забыл. Обновления - работает не трогай. Для того чтобы сделать для себя вывод - посмотрим как происходит дальше установка USB Redirector. Напомню, что не был найден kernel-devel подходящий для текущего ядра.

Подключаем выключенные по умолчанию репозитории

dnf repolist
далее можно включить дополнительные репозитории указав в файлах каталога
/etc/yum.repos.d 
Enable=1
подключаем репозиторий epel (extra packages for enterprise linux) – вдруг что то нужное найдется там.
dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm

как подключать репозиторий тут How to add a Yum repository

Если попытаетесь запросить пакет так – вы не найдете kernel-devel, найдете что то другое. Странно да?

dnf list kernel-* | grep 5.15.0-302.167.6
kernel-uek.x86_64                     5.15.0-302.167.6.el9uek   @anaconda
kernel-uek-core.x86_64                5.15.0-302.167.6.el9uek   @anaconda
kernel-uek-modules.x86_64             5.15.0-302.167.6.el9uek   @anaconda

#Попробуйте использовать ключ –showduplicates  — иначе не найдет
dnf list --showduplicates kernel*devel*

#И вот сюрприз, package kernel-devel в Oracle linux имеет другой формат
dnf install <package_name>-<version>-<release>.<architecture>

#Теперь можно выполнить команду, для подтверждения наличия нужно версии пакета
dnf list kernel-uek-devel-5.15.0-302.167.6.el9uek.x86_64
Last metadata expiration check: 0:23:18 ago on Wed 12 Nov 2025 12:13:52 AM +06.
Available Packages
kernel-uek-devel.x86_64            5.15.0-302.167.6.el9uek                                                           ol9_UEKR7

Устанавливаем Package

dnf install kernel-uek-devel-5.15.0-302.167.6.el9uek.x86_64
Last metadata expiration check: 0:23:48 ago on Wed 12 Nov 2025 12:13:52 AM +06.
Dependencies resolved.
==============================
 Package                                    Architecture                     Version                                              Repository                           Size
==============================
Installing:
 kernel-uek-devel                           x86_64                           5.15.0-302.167.6.el9uek                              ol9_UEKR7                            41 M
--- тут я подсократил вывод
Running transaction
  Preparing        :                                                                                                                                                    1/1
  Installing       : kernel-uek-devel-5.15.0-302.167.6.el9uek.x86_64                                                                                                    1/1
  Running scriptlet: kernel-uek-devel-5.15.0-302.167.6.el9uek.x86_64                                                                                                    1/1
  Verifying        : kernel-uek-devel-5.15.0-302.167.6.el9uek.x86_64                                                                                                    1/1

Installed:
  kernel-uek-devel-5.15.0-302.167.6.el9uek.x86_64

Complete!

Попытка запустить скрипт ./installer.sh заново install предлагает установить dkms

Dkms позволяет автоматически перекомпилировать нужные модули, а не весь проект ядра.Лучше установить, иначе придется переходить на следующий  уровень сложности.

Установка dkms

dnf install dkms

Вывод я приводить не буду, но он ставит зависимости с предыдущей версией ядра – выглядит страшно, какие будут side effect время покажет

Повторяем инсталляцию USB Redirector, и ура установилось

./installer.sh install

*** Installing USB Redirector for Linux v3.12
***  Destination dir: /usr/local/usb-redirector
***  Checking installation...
***  Detecting system...
***     distribution: redhat
***     init: systemd
***     kernel: 5.15.0-302.167.6.el9uek.x86_64
***     dkms: dkms-3.2.2
***  Configuring kernel module...
***  Compiling kernel module with dkms...
***  Kernel module successfully compiled
***  Creating directories...
***  Preparing scripts...
***  Copying files...
***  Installing daemon...
***  Starting daemon...
***  Please allow incoming connections on 32032 port for the USB server to be able to accept connections from remote clients.
***  INSTALLATION SUCCESSFUL! To uninstall, run /usr/local/usb-redirector/uninstall.sh

Как видите, происходит процесс «Compiling kernel module with dkms...» , поздравляю Вы выполнили часть функций разработчика, но без покрытия тестами. Надеюсь дальше будет все хорошо.

Настройка USB Redirector для Linux

При настройке подразумеваем, что есть один сервер с ключами, а другой (виртуальная машина) их использует. Usb redirector устанавливается на обе машины — просто на сервере с ключами делает share (сервер ключей), а на сервере с приложением просто подключение (клиент)

Не забудьте проверить наличие порта «32032» на сервере с ключами

firewall-cmd --query-port=32032/tcp
firewall-cmd --zone=public --permanent --add-port=32032/tcp
firewall-cmd --zone=public --permanent --add-port=32032/tcp
firewall-cmd –reload

Сначала проверяем статус установленного софта (на обоих серверах), сервис должен быть в Enable.

systemctl status usbsrvd
● usbsrvd.service - IncentivesPro USB Redirector for Linux
     Loaded: loaded (/usr/lib/systemd/system/usbsrvd.service; enabled; preset: disabled)
     Active: active (running) since Wed 2025-11-12 00:57:35 +06; 16min ago
    Process: 119397 ExecStartPre=/sbin/modprobe usbcore (code=exited, status=0/SUCCESS)
    Process: 119398 ExecStartPre=/bin/sh -c [ -f /usr/local/usb-redirector/bin/tusbd.ko ] && /sbin/insmod /usr/local/usb-redirector/bin/tusbd.ko >/dev/null 2>&1 && exit 0;>
    Process: 119400 ExecStart=/usr/local/usb-redirector/bin/usbsrvd (code=exited, status=0/SUCCESS)
   Main PID: 119401 (usbsrvd)
      Tasks: 8 (limit: 21297)
     Memory: 3.5M
        CPU: 47ms
     CGroup: /system.slice/usbsrvd.service
             └─119401 /usr/local/usb-redirector/bin/usbsrvd

Nov 12 00:57:35 ERP1CUX systemd[1]: Starting IncentivesPro USB Redirector for Linux...
Nov 12 00:57:35 ERP1CUX systemd[1]: Started IncentivesPro USB Redirector for Linux.

Далее из каталога приложения /usr/local/usb-redirector  запускаем добавление адреса сервера, где расположены ключи . Там аналогичным образом должен быть установлен сервер Usb-redirector. Подробное описание настройки сервера Usb-redirector указано в инструкции производителя  Инструкции по установки USB Redirector . Мы же сейчас на клиенте Usb-redirector добавим адрес сервера Usb-redirector (где физически стоят USB ключи).

 ./usbclnt -add-server 192.168.0.157:32032

====================== OPERATION SUCCESSFUL =====================
USB server has been added
===================== ======================= ===================

Проверяем, какие ключи доступны. Предварительно на сервере с ключами нужно сделать share. Мы в данном случае пробрасываем готовые ключи

./usbclnt -list-devices

================== LIST OF REMOTE USB DEVICES ===================

   1: USB server at 192.168.0.157:32032
      Mode: manual-connect   Status: connected
   |
   |-   2: Sentinel HL
   |       Vid: 0529   Pid: 0001   Port: 3-11
   |       Mode: manual-connect   Status: available for connection
   |
   `-   3: Sentinel HL
           Vid: 0529   Pid: 0001   Port: 3-12
           Mode: manual-connect   Status: available for connection

===================== ======================= ===================

Теперь нужно эти ключи пробросить (присоединиться к ним) и они станут доступными на сервере 1С

./usbclnt -connect 1-2

====================== OPERATION SUCCESSFUL =====================
USB device connected
===================== ======================= ===================

./usbclnt -connect 1-3

====================== OPERATION SUCCESSFUL =====================
USB device connected
===================== ======================= ===================

#Посмотрите как изменился статус
./usbclnt -list-devices 

================== LIST OF REMOTE USB DEVICES ===================

   1: USB server at 192.168.0.157:32032
      Mode: manual-connect   Status: connected
   |
   |-   2: Sentinel HL
   |       Vid: 0529   Pid: 0001   Port: 3-11
   |       Mode: manual-connect   Status: connected
   |
   `-   3: Sentinel HL
           Vid: 0529   Pid: 0001   Port: 3-12
           Mode: manual-connect   Status: connected

===================== ======================= ===================

Ну вот видите работает, но до следующего обновления релиза ядра.

Пингвин расправил крылья?

Я думаю пройдя этот путь, возникает понимание, что Linux имеет достаточно высокий порог входа. Так что не удивляйтесь стабильно низким процентам Linux на декстопах, поскольку при таком раскладе установка драйвера приводит пользователя прямо в ядро. Ваша бабушка, которая работает на Linux, сможет сама установить отправленный ей драйвер, по Вашим подсказкам?

Linux Statistics 2025: Desktop, Server, Cloud & Community Trends • SQ Magazine

Очевидно, что при такой архитектуре даже автообновление драйвера возможно только при наличии репозитория с rpm, где все возможные драйверы скомпилированы под текущую версию ядра. Это фантастика, поэтому исходник как дистрибутив будет еще очень долго.

А в результате, как на примере с USB, возникает слишком много неудобных вопросов:

  • Если в Linux распространяется свободный код драйвера как исходник и он же дистрибутив , как тогда обеспечивается его валидация после компиляции?

  • Как, необходимость администратору компилить код из исходников, вообще вписывается в требования DevOps в части автоматизированного тестирования?Откуда у него автотесты?

  • Если компилить драйвера из исходников в Linux это нормально, почему тогда kernel-devel не имеет единой маски, и не присутствует сразу после установки в нужном формате, и в нужной версии?

  • Почему dkms не установлен по умолчанию?

Для меня вообще загадка – есть ли вообще какая то стратегия развития в свободном ПО, или возможность свободно использовать открытый код уже является стратегией?

Понятно, что для разработчиков достаточно удобно видеть открытый код, и иметь возможность скомпилировать все, что нужно.

 Напротив - для спецов, желающих построить серверную инфраструктуру на Linux (Администраторы) это серьезный вызов в надежности. С одной стороны нужно периодически ставить обновления, с другой нужно помнить – что же развалится при обновлении.

 И вот тут мы приходим к главному:

В операционных системах «для человека»: Количество пользователей >>> количества администраторов > количества разработчиков. Потому что такая ОС как минимум, должна быть пластичной для потребителей, удобно обновляемой, простой для кастомизации и т.д.

Но на Linux процент пользователей на Desktop или VDI прямо скажем не радует - 2%. С другой стороны,  когда мы смотрим статистику по Web Servers, Embedded  systems, специализированным серверам приложений - там сразу большие цифры около 70%

А вот если посмотреть, кому доверяют дирижировать ИТ инфраструктурой ( конкуренты Microsoft Active Directory) статистика сразу меняется не в пользу Linux (<20%).

О чем это говорит? Linux в идеологии так и осталась операционной системой для устройств и докеров: Собрал, настроил, работает и не трогай, иначе развалится. В век ИИ и виртуализации это выглядит архаично.

Проблема как всегда, в сообществе. Ну не видят они потребности в выходе Linux на более глобальные задачи. В предыдущей статье про Linux GUI было наглядно продемонстрировано, что неспособность сообщества стандартизировать GUI оставили Linux без нормальной подсистемы GUI Linux дневник импортозамещения. Linux GUI – ложное искушение  . При том  X Window System для UNIX (не путать с Linux) был еще в 80х, и на развитие было 30 лет.

Даже в вопросах безопасности – selinux не включили в ядро, реализовали так, что безопасность нужно устанавливать дважды (в OS и SElinux) и все равно она многих не устраивает, появляются альтернативы  Security-Enhanced Linux против  1С + Apache. Выключить нельзя мучаться / Хабр . Есть еще хорошая статья почему нельзя просто взять selinux за стандарт, несмотря на открытый код Преимущества использования СЗИ в ОС Astra Linux Special Edition / Хабр - многое проясняет

В такой ситуации, видится только один разумный выход импортозамещения на Linux - каждому сервису своя ОС Linux. Каждому конечному - пользователю GUI терминал с ограниченным функционалом. Безопасность  Firewall, SElinux или что нравится. Обновление только переходом на новый образ ОС раз в 5 лет. Вот такое импортозамещение.

До новых встреч на нашем канале t.me/Chat1CUnlimited  

P. S. Если думаете, что прокидывание USB по IP редкое явление и остальное есть в репозитории, вот вам пример с Amnezia VPN для Red hat

dnf copr enable amneziavpn/amneziawg
Enabling a Copr repository. Please note that this repository is not part
of the main distribution, and quality may vary.

The Fedora Project does not exercise any power over the contents of
this repository beyond the rules outlined in the Copr FAQ at
<https://docs.pagure.org/copr.copr/user_documentation.html#what-i-can-build-in-copr>,
and packages are not held to any quality or security level.

Please do not file bug reports about these packages in Fedora
Bugzilla. In case of problems, contact the owner of this repository.

Do you really want to enable copr.fedorainfracloud.org/amneziavpn/amneziawg? [y/N]: y
Repository successfully enabled.
[root@ bin]# dnf list amneziawg-dkms
Copr repo for amneziawg owned by amneziavpn                                                     2.3 kB/s | 5.0 kB     00:02
Available Packages
amneziawg-dkms.noarch                  1:1.0.20241112-1.el9                  copr:copr.fedorainfracloud.org:amneziavpn:amneziawg
amneziawg-dkms.src                     1:1.0.20241112-1.el9                  copr:copr.fedorainfracloud.org:amneziavpn:amneziawg
[root@ bin]# dkms status
tusbd/3.12, 5.15.0-302.167.6.el9uek.x86_64, x86_64: installed

[root@ bin]# dnf list amneziawg-tools
Last metadata expiration check: 0:01:13 ago on Sat 15 Nov 2025 01:17:01 AM +06.
Available Packages
amneziawg-tools.src                     1.0.20240201-1.el9                   copr:copr.fedorainfracloud.org:amneziavpn:amneziawg
amneziawg-tools.x86_64                  1.0.20240201-1.el9                   copr:copr.fedorainfracloud.org:amneziavpn:amneziawg

Комментарии (12)


  1. JBFW
    24.11.2025 11:39

    Смешались в кучу коне-люди...

    А всё потому что у Винды и Линукса в принципе разная идеология построения софта и работы с системой.

    Ядро - это ядро. Оно не GUI, и к GUI вообще никак не относится.
    ОС - набор различных утилит, в том числе таких как X Window или Wayland.
    GUI-софт - это не ОС, и он совершенно не должен быть "стандартизован": если кому-то нравится "графическая оболочка Gnome" - это не должно влиять на тех, кому нравится "графическая оболочка KDE", и тем более на тех, кому они обе даром не нужны.

    И тем более причем тут всё это, если речь идет о пробросе USB по сети?
    Это задача никак не связана с GUI, и по идее даже с конкретным дистрибутивом.

    Это драйвер в ядре. Для работы с ним используется программный пакет usbip.
    Как конкретно его установить - вот это зависит от дистрибутива. У меня так:

    apt install usbip
    modprobe usbip-core
    modprobe usbip-host

    Посмотреть что есть подключенного локально:

    usbip list -l
     - busid 2-1.1 (3151:3000)
       unknown vendor : unknown product (3151:3000)
    
     - busid 2-1.2 (067b:2303)
       Prolific Technology, Inc. : PL2303 Serial Port / Mobile Phone Data Cable (067b:2303)
    
     - busid 2-1.3 (0a12:0001)
       Cambridge Silicon Radio, Ltd : Bluetooth Dongle (HCI mode) (0a12:0001)
    
     - busid 2-1.4 (aaaa:8816)
       MXT : microSD CardReader (aaaa:8816)
    

    Подключу Serial port и запущу раздачу:

    usbip bind -b 2-1.2
    usbipd -D

    На другой машине:

    apt install usbip
    modprobe usbip-core
    modprobe vhci-hcd
    usbip list -r <IP_сервера>
    Exportable USB devices
    ======================
     - <IP_сервера>
          2-1.2: Prolific Technology, Inc. : PL2303 Serial Port / Mobile Phone Data Cable (067b:2303)
               : /sys/devices/platform/soc/5101000.usb/usb2/2-1/2-1.2
               : (Defined at Interface level) (00/00/00)
               :  0 - Vendor Specific Class / unknown subclass / unknown protocol (ff/00/00)
    
    sudo usbip attach -r <IP_сервера> -b 2-1.2

    Смотрим результат:

    lsusb
    Bus 006 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 005 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port / Mobile Phone Data Cable
    Bus 005 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    
    ls /dev/ttyUSB*
    crw-rw---- 1 root dialout 188, 0 Nov 24 11:30 /dev/ttyUSB0
    
    minicom -D /dev/ttyUSB0

    Чудо! Всё работает!

    Отключаю:

    usbip port
    Imported USB devices
    ====================
    Port 00: <Port in Use> at Full Speed(12Mbps)
           Prolific Technology, Inc. : PL2303 Serial Port / Mobile Phone Data Cable (067b:2303)
           5-1 -> usbip://X.X.X.X:3240/2-1.2
               -> remote bus/dev 002/006
    
    usbip detach -p 0

    Всё.

    Никакого GUI, никакой перекомпиляции kernel, ничего не потребовалось.

    Но почему что--то пошло не так:

    Можно было бы взять какой-нибудь дистрибутив MummyPie с выпиленным из ядра драйвером, без установленных в системе модулей для поддержки USB-IP, и даже без исходников и без возможности их установить - наверняка у меня бы ничего не получилось.

    Это потому что Линукс кривой и GUI в нем нестандартизированы, а не потому что кто-то взял за основу MummyPie...

    ЗЫ: вынесу-ка я это в отдельную статью, вдруг еще кому надо...


    1. 1CUnlimited Автор
      24.11.2025 11:39

      Я рад что у Вас debian судя по тому что

      apt install usbip

      У меня Oracle Linux (red hat) , потому что мне нужна проверенная Linux для субд прежде всего и как сервер приложений. А там usbip не считают достойным быть в основных репозиториях, почему не знаю

      Кстати с UsbRedirector на Debian уже это не прокатит

      И тем более причем тут всё это, если речь идет о пробросе USB по сети?

      Это всего лишь пример в заключительной части статьи про отношение в целом к стандартизации в Linux и вопросам совместимости. Странно почему про SELinux такой же вопрос не задали

      GUI-софт - это не ОС, и он совершенно не должен быть "стандартизован":

      Gui софт пишется на каком то API а вот стандартизации GUI API так и не произошло

      Обзор тут Дневник импортозамещения. Linux GUI — ложное искушение / Хабр

      X11 - даже для удаленного администрирования уже не удовлетворяет. Отсуствие стандарта LSB Specifications на GUI API как минимум создает проблемы для переноса приложений с хорошим GUI , и закрывает рынок десктопов


      1. JBFW
        24.11.2025 11:39

        Gui софт пишется на каком то API а вот стандартизации GUI API так и не произошло

        (минус не мой есличо)

        Произошло, и давно - X-window.
        Не произошло стандартизации на уровне UI/UX, как в Windows, потому что у последователей различных "десктопов" совершенно различное представление о прекрасном - и это хорошо, это избавляет меня лично от необходимости следовать их правилам.

        Из-за этого не проиходит стандартизации на уровне API библиотек, где-то GTK, где-то QT, где-то еще что-то иное.
        И вот тогда бедные разработчики, которые хотят написать "самую лучшую программу" сталкиваются с проблемой, что им выбрать.

        X11 - даже для удаленного администрирования уже не удовлетворяет

        Это разве что после привычки в Windows.
        GUI для удаленного администрирования не нужно вообще.
        В это сложно поверить - но это правда, совершенно не нужно.

        Нужно понимание, что хочешь сделать, понимание как это работает, и текстовый редактор для правки конфигов.

        В остальном - нет никакой разницы, править конфиг локально на машине, открыв его в окошке терминала, или править его на удаленной машине, открыв его в таком же точно окошке терминала рядом.
        Можно копировать куски из одного в другое.

        Все GUI-инструменты - надстройка для правки все тех же текстовых конфигов, полезны они в редких случаях, и тогда вопрос сводится либо к копированию конфига к себе, либо к пробросу "локального адреса" оттуда, для веб-конфигуратора.

        потому что мне нужна проверенная Linux для субд прежде всего и как сервер приложений. А там usbip не считают достойным быть в основных репозиториях, почему не знаю

        Проверенная кем?
        Скорее всего, поставщик решения на всякий случай повыпилил всё, в чем не разобрался, по идее должен был еще запретить обновления в обход себя, потому что у него есть перед вами какие-нибудь гарантийные обязательства или техподдержка, и ему нафиг не нужны неожиданности.

        Ну, это известная проблема проприетарщины: вы покупаете услугу в обмен на то, что вендор вам не позволяет его внепланово напрягать. Шаг влево, шаг вправо - "гарантийные условия не предусматривают. блаблабла".


        1. 1CUnlimited Автор
          24.11.2025 11:39

          Проверенная кем?

          Ну там логика простая. Мне нужна Linux для субд без проблем. Я знаю что Oracle пилит бесплатный Oracle linux чтобы продавать на нем свой дорогой Oracle database и другие продукты, дабы покупатель не переплачивал за лицензии враждебной ОС (windows , azure и т.д.) . Работал c oracle мне их подходы нравятся

          Т.е. уже можно быть уверенным что Oracle потестила и собрала Linux для своих продуктов как надо.

          Далее по моим тестам Postgres как предчувствие. Вычисляем процент импортозамещения в режиме Highload от 1С / Хабр

          Что Oracle database , что Postgres работают на Oracle linux примерно также как и на Windows (если железо одинаковое) . Мне этого достаточно чтобы не ловить разные проблемы с производительностью.

          Если брать тот же Debian - то я не вижу ни одного спонсора который продает на ней свои СУБД.


          1. mpa4b
            24.11.2025 11:39

            Мне нужна Linux для субд без проблем. Я знаю что Oracle пилит бесплатный Oracle linux

            То есть вы выбрали один конкретный кривой дистриб и плачете, но виноваты почему-то не клепатели вами выбранного дистриба, а весь "линукс" целиком? Л - логика?


        1. 1CUnlimited Автор
          24.11.2025 11:39

          И вот тогда бедные разработчики, которые хотят написать "самую лучшую программу" сталкиваются с проблемой, что им выбрать.

          И вроде бы Linux бесплатна, а косты на разработку из за этого разнообразия выбора растут. Свобода выбора это такая вещь: Было два гендера, стало больше двух и вот тебе 3 туалет, но ведь можно же всех сразу в один?


      1. navion
        24.11.2025 11:39

        UEK не совсем RHEL и чтобы появился kernel-devel, надо выбрать стандартное ядро в загрузчике Oracle Linux. А лучше взять Rocky или Alma для 98% совместимости без возни (некоторые приложения проверяют redhat-release).


        1. 1CUnlimited Автор
          24.11.2025 11:39

          UEK не совсем RHEL и чтобы появился kernel-devel, надо выбрать стандартное ядро в загрузчике Oracle Linux

          И после этого ничего не развалится? Мне как то страшно, от неведения


  1. gotch
    24.11.2025 11:39

    Единственный известный мне рабочий USB-IP софт - www.virtualhere.com Эта частичка Австралии - сердце и российских "импортозамещенных" аппаратных USB-IP хабов. Всё остальное... в том состоянии, как слог вашей статьи.


    1. 1CUnlimited Автор
      24.11.2025 11:39

      Как нибудь посмотрю на Red hat


      1. mem700
        24.11.2025 11:39

        Там всего 1 бесплатное соединение. Сломать не трудно, если для вас приемлемы кряки.

        У меня в связке Win-Arch прекрасно работает.


    1. Tippy-Tip
      24.11.2025 11:39

      Вот рабочий вариант времен CentOS 7 без перекомпиляций драйверов при смене ядра. Бесплатно. Без регистрации и SMS. Схема должна работать и для CentOS 8/Rocky Linux/Alma Linux. Скажу страшное: оно должно работать и для Oracle Linux.