Обновить

Комментарии 32

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

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

Ядро - это ядро. Оно не 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...

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

Я рад что у Вас 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 , и закрывает рынок десктопов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Чем Oracle linux кривой? Какой линейкой проверяете кривизну среди over 600 дистрибутивов

Кривизну оракла я проверил именно вашей статьёй. В коментах для масштаба были приведены примеры убунты.

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

не знаю как сейчас, но лет так 5 назад гонял тесты для одного проекта, и на одной и той же железки под нагрузкой постгря показывала производительность под linux (насколько я помню это была centos, хотя возможно и opensuse, но точно что-то rpm based) немного выше (точных цифр не помню, но в среднем по палате немногим выше 10% при большом кол-ве соединений и множественных запросов), хотел бы я поделиться самими тестами и их результатами, но увы они остались у клиента как и вся прочая оверсекретная (по его мнению) документация по так и не случившемуся проекту.

и к слову для 1с тесты тоже гонялись мной, правда ещё раньше и для другого клиента, тогда производительность распределилась так (от худшей к лучшей):
1) 1с на винде и пг на винде
2) 1с на винде, пг на линуксе
3) 1с на линуксе и пг на линуксе
все тесты в режиме тонкого клиента, все тесты когда сервер 1с и база пг на разных железках, все тесты одни и те же две железки, все тесты без тонкого тюнинга ос под задачу, хотя можно было поигравшись sysctl выиграть ещё немного производительности, но задача была не в этом.

Postgres если ее сравнивать по тестам с MS SQl или Oracle дает результаты лучше за счет повышенной нагрузке на процессор. При этом результаты такие не только у меня PostgresSQL - бесплатный сыр для 1С или ступенька к Enterprise версии? | 1CUnlimited | Дзен

Возможно в Linux поэтому и быстрее. Но это и проблема, поскольку Postgres как правило используют как один Instance и в итоге процессор съедается и СУБД становится узким местом (сервера 1С можно наращивать как угодно, а субд одна)

Если посмотрите на знаменитый тест

Как мы успешно прошли тест на 30 000 одновременных пользователей в 1C:ERP (и что мы подкрутили в PostgreSQL) / Хабр

То там использовани ARM аж на 96 ядер как раз потому что пулинг не использовали, а распределять нагрузку как то надо

https://habr.com/ru/companies/1c/articles/930588/#comment_28628454

MS SQL уложился бы в нужные ресурсы лучше

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

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

Косты - дело такое...

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

На чем написан Хром, на qt, Gtk, XM? Вам это интересно? Скорее всего нет, вы просто запускаете Хром.

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

Библиотеки важны именно для единообразия "DE", а сам этот DE - просто дань традиции восприятия Виндовс: когда все окошки в одном стиле, и все вместе это единый продукт.

А это все не нужно. Нужно единообразие поведения - копировать, открыть файл, создать новый, однотипные или настраиваемые хоткеи - и в общем всё. Браузер не обязан быть похож на Фотошоп.

На чем написан Хром, на qt, Gtk, XM? Вам это интересно? Скорее всего нет, вы просто запускаете Хром.

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

Виндовс: когда все окошки в одном стиле

ах если бы это было так. к сожалению большинство разработчиков под винду (включая тех что работает в майкрософте) не в состоянии следовать какому либо общему стилю, в самой винде порядка 12 разных оформлений сосуществуют в ужасном симбиозе, а сторонние разработчики только добавляют в эту вакханалью ещё пару десятков. в линуксе к слову есть такие же наркоманы, они даже пытаются продвигать эту идею как хорошую (я конечно же про переход гнома на CSD и про это в том числе) забывая про потребности пользователей для которых они собственно и пишут свой софт.

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

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

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

не развалится, kernel default поддерживается ровно так же как и kernel uek.

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

Где это "стандарт ядра"? Вот берем доку по Oracle linux

Oracle Linux 9 Kernel Reference

Там только два типа ядра можно использовать

UEK - Unbreakable Enterprise Kernel , где как раз оптимизации для Enterpise

и  Red Hat Compatible Kernel (RHCK)

То что гдето собирают исходники со стандартом ядра, не холодно не жарко поскольку важно скомпилированное и протестированное ядро

Они оба "скомпилированное и протестированое", а rhck и есть kernel default, не надо путать с kernel vanila. Не придумывайте проблему там где её нет. Uek ядро нужно только в специфических кейсах и только для тех кто знает его особенности и ограничения, при установке oracle linux вам следовало выбрать шаблон с классическим ядром, а не ставить uek и потом жаловаться что на урезанном ядре у вас не получается сделать что-то.

Как нибудь поэксперементирую с rhck, но что то мне подсказывает что даже с usbip все кончится компиляцией . Поскольку у меня именно сервер СУБД и приложений я полагал, что UEK логичный выбор.

но что то мне подсказывает что даже с usbip все кончится компиляцией

В вашем случае скорее всего да, но дело не в линуксе, не в дистрибутиве и не в ядре, просто вам так хочется. Ибо самый простой путь вам уже писали: https://habr.com/ru/articles/969664/comments/#comment_29161674

у меня именно сервер СУБД и приложений я полагал, что UEK логичный выбор.

Простите, не уловил связи

Если что - нужные вам модули ядра идут в стандартном пакете kernel-uek-modules-extra.

И сам обычный usbip - в пакете usbip-utils в репозитории дополнительного софта elrepo.

Я попробовал воспользоваться elrepo для Oracle linux 8 . Это какой то междусобойчик а не публичный репозиторий

1) На сайте elrepo.org все только по логину, и непонятно как зарегистрироваться

2) Публичные инструкции по подключению только на каких то других сайтах

3) но ладно, подключил и всеравно он не работает. И это из за границы. Поэтому вопрос где брать собранный USBip остается открытым

dnf --enablerepo='*' search usbip
ELRepo.org Community Enterprise Linux Repository - el8 0.0 B/s | 0 B 00:10
Errors during downloading metadata for repository 'elrepo':

Кажется, у вас какие-то проблемы с интернетом на этой машине. Файл по ссылке http://elrepo.org/linux/elrepo/el8/x86_64/repodata/repomd.xml вполне доступен с разных провайдеров - я проверил.

А где его официальные инструкции по подключению? Я нашел только на сторонних. У них какой то сайт закрытый, такое впечатление что для узкого круга

Ещё недавно были прямо на стартовой странице. На всякий случай - ссылка в архив. start [ELRepo Wiki]

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

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

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

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

Приемлемы, но способ не нашёл. Плохо искал. Ещё интереснее, используют ли российские производители usb-ip именно этот способ лицензирования.

Приемлемы, но способ не нашёл. Плохо искал

https://4pda.to/forum/index.php?showtopic=913362

Где-то там есть не только для андроида. На второй страничке инструкция.

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

какой жирный но совершенно безсмысленный наброс..

Прочитал первые параграф и плюнул. Какое то нытье: то низя, это не хочу. Фу!

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации