
Комментарии 33
Смешались в кучу коне-люди...
А всё потому что у Винды и Линукса в принципе разная идеология построения софта и работы с системой.
Ядро - это ядро. Оно не 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
То есть вы выбрали один конкретный кривой дистриб и плачете, но виноваты почему-то не клепатели вами выбранного дистриба, а весь "линукс" целиком? Л - логика?
Postgres если ее сравнивать по тестам с MS SQl или Oracle дает результаты лучше за счет повышенной нагрузке на процессор. При этом результаты такие не только у меня PostgresSQL - бесплатный сыр для 1С или ступенька к Enterprise версии? | 1CUnlimited | Дзен
Возможно в Linux поэтому и быстрее. Но это и проблема, поскольку Postgres как правило используют как один Instance и в итоге процессор съедается и СУБД становится узким местом (сервера 1С можно наращивать как угодно, а субд одна)
Если посмотрите на знаменитый тест
То там использовани ARM аж на 96 ядер как раз потому что пулинг не использовали, а распределять нагрузку как то надо
https://habr.com/ru/companies/1c/articles/930588/#comment_28628454
MS SQL уложился бы в нужные ресурсы лучше
И вот тогда бедные разработчики, которые хотят написать "самую лучшую программу" сталкиваются с проблемой, что им выбрать.
И вроде бы Linux бесплатна, а косты на разработку из за этого разнообразия выбора растут. Свобода выбора это такая вещь: Было два гендера, стало больше двух и вот тебе 3 туалет, но ведь можно же всех сразу в один?
Косты - дело такое...
Если разобраться - класс GUI программ - это для вполне конкретных применений, ну вот та же графика, кады, браузер, видео редакторы и тому подобное.
На чем написан Хром, на qt, Gtk, XM? Вам это интересно? Скорее всего нет, вы просто запускаете Хром.
В идеале вам должно быть вообще пофиг, какие там у него внутри библиотеки, это проблема разработчика - выбрать удобно для себя.
Библиотеки важны именно для единообразия "DE", а сам этот DE - просто дань традиции восприятия Виндовс: когда все окошки в одном стиле, и все вместе это единый продукт.
А это все не нужно. Нужно единообразие поведения - копировать, открыть файл, создать новый, однотипные или настраиваемые хоткеи - и в общем всё. Браузер не обязан быть похож на Фотошоп.
UEK не совсем RHEL и чтобы появился kernel-devel, надо выбрать стандартное ядро в загрузчике Oracle Linux. А лучше взять Rocky или Alma для 98% совместимости без возни (некоторые приложения проверяют redhat-release).
UEK не совсем RHEL и чтобы появился kernel-devel, надо выбрать стандартное ядро в загрузчике Oracle Linux
И после этого ничего не развалится? Мне как то страшно, от неведения
Где это "стандарт ядра"? Вот берем доку по Oracle linux
Oracle Linux 9 Kernel Reference
Там только два типа ядра можно использовать
UEK - Unbreakable Enterprise Kernel , где как раз оптимизации для Enterpise
и Red Hat Compatible Kernel (RHCK)
То что гдето собирают исходники со стандартом ядра, не холодно не жарко поскольку важно скомпилированное и протестированное ядро
Если что - нужные вам модули ядра идут в стандартном пакете 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':
Curl error (56): Failure when receiving data from the peer for http://elrepo.org/linux/elrepo/el8/x86_64/repodata/repomd.xml [Recv failure: Connection reset by peer]
Curl error (56): Failure when receiving data from the peer for http://mirrors.coreix.net/elrepo/elrepo/el8/x86_64/repodata/repomd.xml [Recv failure: Connection reset by peer]
Curl error (56): Failure when receiving data from the peer for http://mirror.rackspace.com/elrepo/elrepo/el8/x86_64/repodata/repomd.xml [Recv failure: Connection reset by peer]
Curl error (56): Failure when receiving data from the peer for http://mirrors.elrepo.org/mirrors-elrepo.el8 [Recv failure: Connection reset by peer]
Curl error (56): Failure when receiving data from the peer for http://linux-mirrors.fnal.gov/linux/elrepo/elrepo/el8/x86_64/repodata/repomd.xml [Recv failure: Connection reset by peer] Error: Failed to download metadata for repo 'elrepo': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried
Кажется, у вас какие-то проблемы с интернетом на этой машине. Файл по ссылке 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.
Прочитал первые параграф и плюнул. Какое то нытье: то низя, это не хочу. Фу!
так по сети или проброс внутрь виртуалки?
Если виртуалки, то в линуксе в отличие от оракловой вмвари все работает из коробки, готовый дистрибутив какого-нибудь Proxmox-ve решает все вопросы проброса. Воткнул пачку ключей в хост и раскидал куда тебе надо
А по ip есть вполне рабочие версии, опять же если не привязываться к странным дистрибутивам на голое железо.
Самая главная уязвимость Linux в ядре. Простой пример USB over IP