АнглийскийФранцузскийИспанский

Ad


Значок OnWorks

bbvirt - Интернет в облаке

Запустите bbvirt в бесплатном хостинг-провайдере OnWorks через Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS

Это команда bbvirt, которую можно запустить в бесплатном хостинг-провайдере OnWorks, используя одну из наших многочисленных бесплатных онлайн-рабочих станций, таких как Ubuntu Online, Fedora Online, онлайн-эмулятор Windows или онлайн-эмулятор MAC OS.

ПРОГРАММА:

ИМЯ


bbvirt - горячее подключение устройств BitBabbler к доменам, управляемым libvirt

СИНТАКСИС


ббвирт действие [кредита]

ббвирт прикреплять|DETACH устройство [кредита]

ббвирт прикрепить все|отделить все [домен] [кредита]

ОПИСАНИЕ


Ассоциация ббвирт программа - это попытка снять часть боли из того, что в настоящее время
требуется для распределения нескольких USB-устройств между хостом и гостевыми виртуальными машинами.
Хотя есть несколько способов, которыми это можно настроить и управлять, в настоящее время ни один
из них на самом деле обеспечивают полное и последовательное решение сами по себе, все они падают
не попадая в цель каким-то значительным и раздражающим образом. Цель здесь - собрать воедино
достаточно этих хаков, чтобы получить все функции, которые мы хотим сейчас, до тех пор, пока
Встроенная поддержка libvirt для этого улучшена настолько, что она больше не нужна.

В настоящее время это касается виртуальных машин QEMU / KVM, управляемых libvirt.

Что do we хотеть?
Идеальное поведение здесь довольно простое. Учитывая произвольное количество BitBabbler
устройств, мы должны иметь возможность назначать их либо на хост-машину, либо на гостевую виртуальную машину.
работают на нем, и как только мы это сделаем, они должны вести себя так, как ожидается от любого
USB-устройство.

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

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

- Если они отключены от сети во время работы машины, их следует аккуратно вынуть из
это, как бы они были на хосте.

почему не может we иметь Это?
Прямо сейчас libvirt дает нам два способа назначить USB-устройства с хоста на
гостевой домен.

- Мы можем назначить их по поставщику USB-устройств и идентификатору продукта. Но это работает только тогда, когда есть
это всего лишь одно устройство этого типа на хосте. Что довольно бесполезно в большинстве
случаи, которые нас волнуют здесь, где хозяин и каждый из гостей, скорее всего,
назначить им одно или несколько собственных устройств BitBabbler.

- Мы можем назначить их по логическому адресу на шине USB. Но это не константа
что мы можем статически настроить для домена. Каждый раз, когда устройство подключено, или
повторно подключен, или перезагружен, или хост-компьютер перезагружен, этот адрес, вероятно, изменится
поскольку он выделяется динамически при перечислении устройства на шине.

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

Еще более серьезный недостаток, который объединяет все эти методы, заключается в том, что все они зависят от
устройство уже подключено до запуска гостя. Если он вставлен после
гость запускается, или удаляется, и снова подключается, пока гость работает, или если хост
шина или концентратор отскакивает, вызывая повторное подключение, то устройство не будет (повторно) подключено к
гость. Единственный способ исправить это, если это произойдет, - это вручную повторно подключить устройство с помощью
загадочное заклинание в XML (которое полагается на то, что вы знаете новый адрес устройства), или
чтобы полностью выключить и перезапустить гостя. Не вершина удобства в использовании
операция, которую мы здесь ищем.

Что может we do в отношении Это?
Несколько лет назад в libvirt был отправлен патч, который позволил бы устройству
должен быть указан как идентификатором продукта USB, так и серийным номером, но это получило некоторую поддержку
назад, и до сих пор не применялся вверх по течению. Это могло бы пройти долгий путь
сделать это простым и понятным, оставив нам решать только аспект горячего подключения.
с участием. Мы оставим сварливую шутку по этому поводу в качестве упражнения для читателя ...

Другая альтернатива - мы можем делегировать поиск логического адреса устройства на горячее подключение.
менеджер как Udev(7). Это привлекательно в том смысле, что мы можем знать, когда адрес
изменения устройства и во что оно меняется, но Udev сам по себе не очень дружелюбен к
идея настройки локального администратора (хотя это возможно, кажется,
настоятельно не рекомендуется), и его использование все еще требует некоторого внешнего клея для
преобразовать свои события во что-то, на что libvirt может воздействовать для настройки гостя
машина.

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

Но ограничение этого подхода заключается в том, что он не может легко узнать, когда гостевая машина
start, к которому должны быть добавлены уже подключенные устройства. Теоретически мы
может добавить их в свое постоянное определение домена, но у этого есть свои проблемы, потому что
мы можем добавлять устройства только по их временным логическим адресам и не можем гарантировать, что
будет вызван, чтобы снова удалить их из домена, когда этот адрес станет недействительным
(например, если хост внезапно выключился или он не выключился должным образом), поэтому мы
может привести к накоплению множества устаревших записей в конфигурации постоянного домена,
который позже может соответствовать совершенно другому устройству, к тому, что мы хотели прикрепить к
Это. Это означает, что пока это как-то не будет исправлено, их можно безопасно добавлять только в живого гостя.
домен, так что они всегда будут снова удалены, когда он будет остановлен, независимо от того, как это
закончилось тем, что его остановили.

Очевидно, что нам еще предстоит кое-что сделать, чтобы достичь здесь нашего идеала.

Что if we удар it *два* молотки?
Похоже, есть только два способа получить уведомление о том, что гостевая машина
началось в настоящее время. Один включает в себя запуск еще одного процесса демона, который будет делать
немного больше, чем просто сидеть и ждать, пока кто-то заведет гостя, чтобы он мог сказать нам
об этом. Но тогда нам нужно было бы настроить еще одну вещь, еще один процесс.
бега, и еще больше проблем с выяснением, как гарантировать, что мы не проиграем гонку, когда
хост загружается, между получением начального набора событий устройства, этот процесс
готов и активен, и все гости, которые будут автоматически запускаться при загрузке, фактически запускаются.

Другой способ - использовать ловушку libvirt. Что, в свою очередь, имеет проблему не на самом деле
позволяя нам запускать из него любые функции libvirt, что нам нужно сделать, чтобы прикрепить
устройство к хосту. И мы не можем гарантировать, что можем просто установить по умолчанию,
потому что в системе может быть только один такой перехватчик, который локальный администратор уже может
использовать ...

Есть третий способ, но он потребует от локального администратора запуска всех гостевых систем.
машины через нашу собственную оболочку, а не через какой-либо механизм, который они уже знают
и пользуйся. Что не масштабируется для поддержки других USB-устройств в той же ситуации, среди
множество способов, которые были бы ужасным решением для навязывания людям.

Но есть лазейка, которую мы можем использовать. Мы можем использовать ловушку libvirt qemu для запуска
изменить мероприятие для Udev, который, в свою очередь, может вызывать ббвирт примерно так же, как
произойдет, если устройство действительно подключено к сети, что дает нам дополнительный уровень косвенности
мы должны иметь возможность безопасно делать это с крючка. Руби Голдберг гордился бы и
некоторые детали могут потребовать ручной сборки, но, имея все это на месте, мы можем
что-то похожее на обычные функции USB на гостевых машинах.

Это некрасиво, но будет работать с тем, с чем нам придется работать.

В порядке, всего сказать me в котором в удар его.
Чтобы связать это вместе, вам необходимо обеспечить все следующее:

- Udev(7) устанавливаются правила из пакета bit-babbler. Если вы установили это
из пакетов Debian, что уже должно быть сделано. Если вы этого не сделали, вам нужно будет
установить правила, которые можно найти в debian / bit-babbler.udev из исходного пакета в
подходящее место в вашей системе (возможно /etc/udev/rules.d).

- ббвирт(1) скрипт установлен в месте, где Udev правила найдут это. если ты
не устанавливал это из пакетов Debian, и его нет в / USR / бен, тогда вам понадобится
подправить Udev правила, которые подходят.

- Устройства, которые вы хотите использовать в гостевых машинах, и машины, на которых вы хотите их использовать,
указаны в ббвирт конфигурационный файл. Местоположение по умолчанию для этого
/etc/бит-бабблер/vm.conf. Если вы хотите использовать другой файл, вам нужно будет передать его
место с --config вариант в Udev rules, и обновите скрипт перехвата, используя это
файл тоже. Подробности того, что вы можете поместить в этот файл, описаны в
КОНФИГУРАЦИЯ ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ раздел ниже.

- Установлен файл ловушки libvirt. Если все вышеперечисленное будет выполнено, то устройства будут
добавляется к работающим гостевым машинам, если они подключаются во время работы гостя.
Этот последний шаг гарантирует, что устройства, которые уже подключены, будут добавлены к новым
также запустили гостей (включая гостей, которые запускаются автоматически, когда хост
машина загружается).

Пока не будет безопасного способа установить это, не конфликтуя и не перезаписывая
существующий хук, каждый должен будет проделать этот шаг вручную. Если вы установили
пакеты Debian, то пример скрипта перехвата, который мы для этого предоставили, может быть
найти в / usr / share / doc / бит-бабблер / примеры / qemu-hook. Если вы этого не сделали, его можно найти
in libvirt / qemu-хук исходного пакета.

Вам нужно будет установить этот файл как / и т.д. / libvirt / крючки / qemu, или объединить его содержание с
существующий кему файл там, если у вас уже есть этот набор ловушек. Если этот файл не
ранее существовали, вам нужно будет перезапустить libvirtd(8) заставить его начать его использовать.

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

ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


Есть два основных режима работы для ббвирт которые выбираются начальными
вариант действия. Если действие, которое нужно выполнить, прикреплять or DETACH тогда только одно устройство
будут действовать, и какое устройство должно быть указано явно, даже если
в данный момент на хосте присутствует только одно устройство. При вызове ббвирт вручную,
домен устройство может быть указан его серийным номером, его логическим адресом на шине (в
форма бушнум:девнум, заданный как десятичные целые числа), или его физический адрес на шине (в
форма бушнум-порт[.port ...]).

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

Доступны следующие дополнительные опции:

-С, --config
Укажите альтернативный файл конфигурации, из которого будут импортированы назначения устройств.
Если путь к файлу не указан явно, то он будет искать в
домен / и т. д. / бит-лепет каталог (с .conf суффикс).

-с, --connect =URI
Укажите вирш(1) соединение URI использовать. Это переопределит ДОМЕН_URI набор
для домена в конфигурационном файле. Если это не установлено с помощью любого из этих
методы, то вирш по умолчанию для пользователя, работающего ббвирт будет использоваться.

-Д, --domain =имя
Укажите домен libvirt, над которым нужно действовать. Это может быть использовано для переопределения устройства.
выделение из файла конфигурации, когда ббвирт вызывается вручную, или действовать
на устройстве или домене, которые в данный момент не указаны в файле конфигурации.

-б, --busnum =Num
Укажите номер шины USB, к которой подключено устройство. Этот вариант в основном
используется, чтобы избежать ббвирт необходимость найти это, когда он уже известен (например, когда
он вызван из Udev правило). Обычно нет особых причин пропускать это, если
ссылающееся ббвирт вручную, так как вы можете просто указать устройство по его логическому или
физический адрес.

-д, --devnum =Num
Укажите номер USB-устройства, назначенного устройству в данный момент. Вместе с
номер шины, он образует логический адрес устройства. Этот вариант
в основном используется, чтобы избежать ббвирт нужно найти это, когда он уже известен (например,
как когда он вызывается из Udev правило). Обычно не так много причин сдавать
это при вызове ббвирт вручную, так как вы можете просто указать устройство по его
вместо этого логический адрес.

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

-в, --подробный
Больше шумите о том, что на самом деле происходит. Его можно передавать несколько раз в
еще больше увеличивайте многословность.

- ?, --Помогите
Показать краткую сводку доступных опций.

КОНФИГУРАЦИЯ ДОПОЛНИТЕЛЬНЫЕ УСЛУГИ, НЕ ВКЛЮЧЕННЫЕ В ПАКЕТ


Ассоциация ббвирт файл конфигурации содержит назначения переменных с использованием колотить(1) оболочка
синтаксис. Он получен как фрагмент оболочки, поэтому вы, в принципе, можете построить
конфигурация для каждого домена динамически, но чаще всего это простое статическое назначение
устройств к доменам хватит. Если вы решите запускать в нем код, вы должны быть очень
защита пространства имен любых других переменных, которые вы используете, или любых других побочных эффектов, которые вы
может произойти. В нем можно настроить любое количество гостевых доменов.

Для каждого гостевого домена две переменные управляют поведением ббвирт:

ДОМЕН_URI_домен=URI
Эта переменная не является обязательной и устанавливает вирш(1) соединение URI использовать когда
присоединение или отсоединение устройств от данного домен, Если --соединять опция
явно передан ббвирт он переопределит то, что здесь установлено. Если подключение
URI не устанавливается ни одним из этих методов, то вирш по умолчанию для пользователя
Бег ббвирт будет использоваться (обычно это root, если запускается из Udev).

ДОМЕН_RNG_домен=( устройство последовательный номера ... )
Эта переменная требуется, если автоматическая передача устройств в домен
желанный. Это массив bash, заполненный разделенным пробелами списком всех
серийные номера устройств, которым вы хотите присвоить домен. Это не ошибка для
здесь будут перечислены устройства, которые в настоящее время не подключены. Важно
убедитесь, что устройства назначены только одному домен хотя и что устройства
назначенные гостевым доменам не будут использоваться посевной(1) экземпляр, работающий на
хост (что означает посевной конфигурации необходимо передать явный список
устройства, которые он также может использовать).

Здесь всегда должен использоваться серийный номер устройства. Вы не можете указать устройство
свой логический или физический адрес на шине (как и в большинстве других мест, где
берем ID устройства).

Используйте bbvirt онлайн с помощью сервисов onworks.net


Бесплатные серверы и рабочие станции

Скачать приложения для Windows и Linux

  • 1
    WxPython
    WxPython
    Набор модулей расширения Python, которые
    оберните классы кросс-платформенного графического интерфейса из
    wxWidgets.. Аудитория: Разработчики. Пользователь
    интерфейс: X Window System (X11), Win32...
    Скачать wxPython
  • 2
    пакетный файловый менеджер
    пакетный файловый менеджер
    Это файловый менеджер пакета Total War.
    проект, начиная с версии 1.7. А
    краткое введение в Warscape
    моддинг: ...
    Скачать пакетный файловый менеджер
  • 3
    IPerf2
    IPerf2
    Инструмент для измерения сетевого трафика
    Производительность TCP и UDP с метриками
    вокруг пропускной способности и задержки. В
    цели включают поддержание активного
    iperf треска ...
    Скачать IPerf2
  • 4
    fre: ac - бесплатный аудио конвертер
    fre: ac - бесплатный аудио конвертер
    fre:ac — бесплатный аудио конвертер и компакт-диск
    риппер для различных форматов и кодировщиков.
    Он поддерживает форматы MP3, MP4/M4A, WMA, Ogg.
    Форматы Vorbis, FLAC, AAC и Bonk
    служба поддержки, ...
    Скачать fre:ac - бесплатный аудио конвертер
  • 5
    Матплотлиб
    Матплотлиб
    Matplotlib - обширная библиотека
    для создания статических, анимированных и
    интерактивные визуализации на Python.
    Matplotlib упрощает простые вещи и
    трудная вещь ...
    Скачать Matplotlib
  • 6
    БотМан
    БотМан
    Напишите логику чат-бота один раз и
    подключите его к одному из доступных
    службы обмена сообщениями, включая Amazon
    Alexa, Facebook Messenger, Slack,
    Telegram или даже йо...
    Скачать BotMan
  • Больше »

Команды Linux

Ad