영어프랑스어스페인어

Ad


온웍스 파비콘

bbvirt - 클라우드 온라인

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터를 통해 OnWorks 무료 호스팅 제공업체에서 bbvirt 실행

Ubuntu Online, Fedora Online, Windows 온라인 에뮬레이터 또는 MAC OS 온라인 에뮬레이터와 같은 여러 무료 온라인 워크스테이션 중 하나를 사용하여 OnWorks 무료 호스팅 공급자에서 실행할 수 있는 bbvirt 명령입니다.

프로그램:

이름


bbvirt - BitBabbler 장치를 libvirt 관리 도메인으로 핫플러그

개요


bbvirt 동작 [옵션]

bbvirt 붙이다|분리하다 장치 [옵션]

bbvirt 첨부 파일|모두 분리 [도메인] [옵션]

기술


XNUMXD덴탈의 bbvirt 프로그램은 현재 존재하는 것에서 고통의 일부를 제거하려는 시도입니다.
호스트와 게스트 가상 머신 간에 여러 USB 장치를 배포하는 데 필요합니다.
이를 구성하고 관리할 수 있는 여러 가지 방법이 있지만 현재로서는 없습니다.
그들 중 실제로 자체적으로 완전하고 일관된 솔루션을 제공합니다.
중요하고 성가신 방식으로 표시가 부족합니다. 여기서 목표는 함께 조각하는 것입니다
우리가 지금 원하는 모든 기능을 실제로 얻을 수 있을 만큼의 해킹이
이에 대한 libvirt 기본 지원은 더 이상 필요하지 않을 정도로 향상됩니다.

현재 이것은 libvirt 관리 QEMU/KVM 가상 머신을 다루고 있습니다.

do we 필요?
여기서 이상적인 동작은 매우 간단합니다. 임의의 수의 BitBabbler가 주어지면
장치를 호스트 시스템이나 게스트 VM에 할당할 수 있어야 합니다.
실행하고 일단 그렇게 하면 모든 시스템에서 예상되는 정상적인 방식으로 작동해야 합니다.
USB 장치.

- 게스트 머신이 시작될 때 연결되어 있으면 게스트 머신에서 볼 수 있어야 합니다.
호스트에 의한 것처럼 기계.

- 머신이 시작된 후 플러그가 꽂혀 있으면 핫플러그되어야 합니다.
호스트에 있는 것과 같은 시스템입니다.

- 기계가 작동하는 동안 플러그를 빼면 기기에서 깨끗이 제거해야 합니다.
그들은 호스트에 있을 것입니다.

수 없습니다 we 있다 이것?
현재 libvirt는 호스트에서 호스트로 USB 장치를 할당할 수 있는 두 가지 방법을 제공합니다.
게스트 도메인.

- USB 공급업체 및 제품 ID로 할당할 수 있습니다. 그러나 그것은 있을 때만 작동합니다.
호스트에서 해당 유형의 단일 장치일 뿐입니다. 대부분의 경우 꽤 쓸모가 없습니다.
호스트와 게스트 각각이
하나 이상의 BitBabbler 장치가 할당되어 있습니다.

- USB 버스의 논리 주소로 할당할 수 있습니다. 그러나 그것은 일정하지 않습니다
도메인에 대해 정적으로 구성할 수 있습니다. 장치가 연결될 때마다 또는
다시 연결되거나 재설정되거나 호스트 시스템이 재부팅되면 해당 주소가 변경될 수 있습니다.
장치가 버스에서 열거될 때 동적으로 할당되기 때문입니다.

세 번째 방법이 있지만 일반적인 libvirt 구성을 우회하여
QEMU 기능을 직접 사용하여 버스의 물리적 주소로 장치를 할당합니다.
어느 것이 더 낫지만 정확히 동일한 연결에 의존하기 때문에 여전히 마법의 탄환은 아닙니다.
장치를 매번 정확히 동일한 포트에 연결(그리고 해당 포트가
재부팅할 때마다 호스트에 의해 동일한 방식으로 보장되지 않음). 그것은 또한 강제
우리는 다른 고리를 뛰어 넘을 수 있습니다.
libvirt 외부에서 수동으로 장치의 권한에 액세스하지만 여전히 조정 중입니다.
그것에.

이 모든 방법이 공통적으로 가지고 있는 더 큰 실패는 모두 의존한다는 것입니다.
게스트가 시작되기 전에 장치가 이미 연결되어 있습니다. 뒤에 삽입하면
게스트가 시작되거나 게스트가 실행되는 동안 제거되고 다시 연결되거나 호스트가
버스 또는 허브가 바운스되어 다시 연결되면 장치가
손님. 이 문제를 해결하는 유일한 방법은 장치를 수동으로 다시 연결하는 것입니다.
XML의 난해한 주문(장치의 새 주소를 알고 있어야 함) 또는
게스트의 전원을 완전히 끄고 다시 시작합니다. 유저 프렌들리의 정점은 아니다
여기서 찾고 있는 작업입니다.

we do about 이것?
몇 년 전에 libvirt에 제출된 패치가 있었습니다.
USB 제품 ID와 일련 번호로 지정해야 하지만
뒤로, 지금까지 아직 업스트림에 적용되지 않았습니다. 그것은 먼 길을 갔을 것입니다
이 작업을 쉽고 깔끔하게 만들기 위해 처리할 핫플러그 측면만 남깁니다.
와 함께. 우리는 독자를 위한 연습으로 그것에 대해 심술궂은 비웃음을 남길 것입니다 ...

또 다른 대안은 장치의 논리 주소 찾기를 핫플러그에 위임할 수 있다는 것입니다.
매니저 같은 유데브(7). 이것은 주소가 언제인지 알 수 있다는 점에서 매력적입니다.
장치의 변경 사항 및 변경 사항, 그러나 유데브 그 자체로는 그다지 우호적이지 않다.
로컬 관리자 사용자 지정에 대한 아이디어(가능하지만
점점 더 권장하지 않음) 그리고 그것을 사용하려면 여전히 외부 접착제가 필요합니다.
해당 이벤트를 libvirt가 게스트를 구성하기 위해 작동할 수 있는 것으로 변환합니다.
기계.

XNUMXD덴탈의 bbvirt 프로그램은 그 접착제와 사용자에게 친숙한 할당 방법을 제공합니다.
장치는 게스트 도메인과 수동으로 호출할 수 있는 프런트 엔드에 속해야 합니다.
또는 다른 관리자가 제어하는 ​​작업을 통해 BitBabbler 장치를 빠르고 쉽게 추가하거나 제거할 수 있습니다.
실행 중인 게스트 머신에서.

하지만 이 접근 방식의 한계는 게스트 머신이 언제 작동하는지 쉽게 알 수 없다는 것입니다.
이미 연결되어 있는 장치가 추가되어 있어야 합니다. 이론적으로 우리는
영구 도메인 정의에 추가할 수 있지만 자체 문제가 있습니다.
일시적인 논리 주소로만 장치를 추가할 수 있으며
해당 주소가 유효하지 않게 되면 도메인에서 다시 제거하도록 호출됩니다.
(호스트의 전원이 갑자기 꺼지거나 완전히 종료되지 않은 경우)
영구 도메인 구성에 많은 부실 항목이 누적될 수 있습니다.
나중에 우리가 부착하고 싶었던 것과 완전히 다른 장치를 일치시킬 수 있습니다.
그것. 즉, 문제가 해결될 때까지 라이브 게스트에 추가하는 것이 안전합니다.
도메인이 중단되면 어떻게 되든 항상 다시 제거됩니다.
결국 중단되었습니다.

분명히 우리는 여기에서 우리의 이상에 도달하기 위해 아직 갈 길이 있습니다.

if we it *둘* 망치?
게스트 머신에 대한 알림을 받을 수 있는 방법은 두 가지뿐인 것 같습니다.
현재 시작했습니다. 하나는 또 다른 데몬 프로세스를 실행하는 것과 관련이 있습니다.
누군가가 손님을 시작하기를 기다리는 것보다 조금 더 많은 것이 우리에게 말할 수 있습니다.
그것에 대해. 그러나 구성해야 할 또 다른 항목이 있으면 또 다른 프로세스가 있습니다.
달리고 있을 때 경주에서 지지 않도록 보장하는 방법을 알아내는 데 더 많은 문제가 있습니다.
장치 이벤트의 초기 집합을 가져오는 사이에 호스트가 부팅됩니다.
준비 및 활성화, 부팅 시 자동 시작되는 모든 게스트가 실제로 시작됩니다.

다른 방법은 libvirt 후크를 사용하는 것입니다. 실제로는 그렇지 않다는 문제가 있습니다.
첨부하기 위해 수행해야 하는 모든 libvirt 기능을 실행할 수 있습니다.
장치를 호스트로. 기본적으로 설치할 수 있다고 보장할 수는 없지만
시스템에는 이러한 후크가 하나만 있을 수 있기 때문에 로컬 관리자가 이미 할 수 있습니다.
...을 사용하다

세 번째 방법이 있지만 로컬 관리자가 모든 게스트를 시작해야 합니다.
기계가 이미 알고 있는 메커니즘 대신 자체 래퍼를 통해
그리고 사용. 동일한 상황에서 다른 USB 장치를 지원하도록 확장되지 않습니다.
사람들에게 가하는 끔찍한 해결책이 될 여러 가지 방법.

그러나 우리가 이용할 수 있는 허점이 있습니다. libvirt qemu 후크를 사용하여
이벤트 변경 유데브, 차례로 호출할 수 있습니다. bbvirt 거의 같은 방식으로
장치가 실제로 핫플러그된 경우 발생하여 추가 간접 계층을 제공합니다.
후크에서 안전하게 수행할 수 있어야 합니다. 루브 골드버그는 자랑스러워할 것이고,
일부 부품은 손으로 조립해야 할 수도 있지만 이 모든 것이 제자리에 있으면
게스트 머신의 일반적인 USB 기능과 유사한 것.

예쁘지는 않지만 우리가 작업해야 하는 것과 함께 작동할 것입니다.

좋아요, 다만 이야기 me 어디에 그것.
이것을 하나로 묶으려면 다음을 모두 확인해야 합니다.

- 유데브(7) bit-babbler 패키지의 규칙이 설치됩니다. 이렇게 설치했다면
이미 완료되어야 하는 데비안 패키지에서. 그렇지 않은 경우 다음을 수행해야 합니다.
에 있는 규칙을 설치합니다. 데비안/bit-babbler.udev 소스 패키지에서
시스템의 적절한 위치(아마도 /etc/udev/rules.d).

- bbvirt(1) 스크립트는 다음 위치에 설치됩니다. 유데브 규칙이 찾을 것입니다. 만약 너라면
데비안 패키지에서 설치하지 않았으며 / usr / bin, 다음이 필요합니다
조정하기 위해 유데브 적합한 규칙.

- 게스트 머신에서 사용하려는 장치 및 사용하려는 머신,
에 지정되어 있습니다. bbvirt 구성 파일. 그 기본 위치는
/etc/bit-babbler/vm.conf. 다른 파일을 사용하려면 해당 파일을 전달해야 합니다.
위치 --구성 에서 옵션 유데브 규칙을 사용하여 후크 스크립트를 업데이트합니다.
파일도. 해당 파일에 넣을 수 있는 항목에 대한 자세한 내용은
구성 옵션 섹션을 참조하십시오.

- libvirt 후크 파일이 설치되었습니다. 위의 모든 작업이 완료되면 장치가
게스트가 실행되는 동안 연결되면 실행 중인 게스트 컴퓨터에 추가됩니다.
이 마지막 단계는 이미 연결된 장치가 새로 추가되도록 합니다.
게스트도 시작됨(호스트가 시작되면 자동으로 시작되는 게스트 포함)
기계 부츠).

충돌하거나 덮어쓰지 않고 설치할 수 있는 안전한 방법이 있을 때까지
기존 후크를 사용하는 경우 모두가 이 단계를 수동으로 수행해야 합니다. 설치한 경우
데비안 패키지, 우리가 제공한 예제 후크 스크립트는 다음과 같을 수 있습니다.
발견 된 /usr/share/doc/bit-babbler/examples/qemu-hook. 없다면 찾을 수 있다.
in libvirt/qemu-hook 소스 패키지의 .

해당 파일을 다음과 같이 설치해야 합니다. /etc/libvirt/후크/qemu, 또는 해당 내용을 다음과 병합
기존의 케무 해당 후크가 이미 설정되어 있으면 거기에 파일을 저장하십시오. 해당 파일이 없다면
이전에 존재하는 경우 다시 시작해야 합니다. libvirtd(8) 사용을 시작합니다.

여기에는 필요한 모든 자동화가 포함되어야 하지만 장치를 연결하고 분리할 수도 있습니다.
수동으로도 언제든지. 이에 대한 자세한 내용은 다음에서 설명합니다.
부분. 그렇지 않으면 위의 모든 작업이 완료되었으므로 호출해야 할 다른 이유가 없습니다.
bbvirt 직접.

옵션


에 대한 두 가지 기본 작동 모드가 있습니다. bbvirt 초기에 의해 선택된
액션 옵션. 수행할 작업이 다음과 같은 경우 붙이다 or 분리하다 그런 다음 단일 장치
어떤 장치가 작동해야 하는지 명시적으로 지정해야 합니다.
당시 호스트에는 하나의 장치만 존재합니다. 호출할 때 bbvirt 수동으로
전에, 장치 일련 번호, 버스의 논리 주소(에서
형태 버스넘:데브넘, XNUMX진수 정수로 제공됨) 또는 버스의 물리적 주소(
형태 버스넘-포트[.포트 ...]).

수행할 작업이 다음과 같은 경우 첨부 파일 or 모두 분리, 작동할 장치는 다음과 같습니다.
선정자 도메인 대신 협회. 만약 도메인 명시적으로 지정된 경우 모든
구성 파일에서 해당 게스트 도메인에 할당된 장치가 작동합니다.
마치 같은 방식으로 bbvirt 각각에 대해 개별적으로 호출되었습니다.
붙이다 or 분리하다 행동. 아니오인 경우 도메인 제공되면 구성된 모든 게스트
도메인은 이러한 방식으로 작동합니다.

다음 추가 옵션을 사용할 수 있습니다.

-씨, --구성
장치 할당을 가져올 대체 구성 파일을 지정합니다.
파일에 대한 경로가 명시적으로 제공되지 않으면 다음에서 찾습니다.
전에, /etc/bit-babbler 디렉토리( .conf 접미사).

-씨, --연결=URI
지정 버쉬(1) 연결 URI 사용. 이것은 DOMAIN_URI 세트
구성 파일의 도메인에 대해. 이 중 하나를 사용하여 설정되지 않은 경우
방법 다음 버쉬 실행 중인 사용자의 기본값 bbvirt 사용하게 될 것이다.

-NS, --도메인=name
작동할 libvirt 도메인을 지정합니다. 장치를 재정의하는 데 사용할 수 있습니다.
구성 파일에서 할당할 때 bbvirt 수동으로 호출하거나 조치를 취하기 위해
구성 파일에 현재 지정되지 않은 장치 또는 도메인에서.

-NS, --버스 번호=NUM
장치가 연결된 USB 버스 번호를 지정합니다. 이 옵션은 대부분
피하기 위해 사용 bbvirt 이미 알려진 경우 이를 조회해야 함(예:
그것은 a에서 호출됩니다 유데브 규칙). 일반적으로 다음과 같은 경우 통과할 이유가 많지 않습니다.
호출 bbvirt 논리적 또는
대신 물리적 주소.

-NS, --devnum=NUM
장치가 현재 할당된 USB 장치 번호를 지정합니다. 함께
버스 번호는 장치의 논리 주소를 형성합니다. 이 옵션은
피하기 위해 주로 사용 bbvirt 이미 알려진 경우 이를 조회해야 함(예:
a에서 호출될 때처럼 유데브 규칙). 일반적으로 통과할 이유가 많지 않습니다.
이것은 호출하는 경우 bbvirt 수동으로 장치를 지정할 수 있기 때문입니다.
대신 논리 주소.

-N, -건조
어떤 장치도 연결하거나 분리하지 마십시오.
라이브 실행. 이 옵션은 최소 수준의 --말 수가 많은, 그러나 장황함은
해당 옵션을 명시적으로 전달하여 더 늘릴 수 있습니다.

-V, --말 수가 많은
실제로 무슨 일이 일어나고 있는지 더 많은 소음을 내십시오. 에게 여러 번 전달될 수 있습니다.
자세한 정보를 더 높이십시오.

-?, --도움
사용 가능한 옵션에 대한 간략한 요약을 표시합니다.

구성 옵션


XNUMXD덴탈의 bbvirt 구성 파일에는 세게 때리다(1) 쉘
통사론. 쉘 스니펫으로 제공되므로 원칙적으로 다음을 구성할 수 있습니다.
동적으로 각 도메인에 대한 구성이지만 가장 일반적으로 간단한 정적 할당
도메인에 대한 장치 수로 충분합니다. 그 안에서 코드를 실행하기로 선택했다면 매우
사용하는 다른 변수나 기타 부작용에 대해 방어적입니다.
발생시킬 수 있습니다. 원하는 수의 게스트 도메인을 구성할 수 있습니다.

각 게스트 도메인에 대해 두 개의 변수가 다음의 동작을 제어합니다. bbvirt:

DOMAIN_URI_도메인=URI
이 변수는 선택 사항이며 다음을 설정합니다. 버쉬(1) 연결 URI 언제 사용
주어진 장치에서 장치를 부착하거나 분리 도메인. 경우 --연결하다 옵션은
명시적으로 전달 bbvirt 여기에 설정된 것을 무시합니다. 만약 연결
URI 이러한 방법 중 하나를 사용하여 설정되지 않은 경우 버쉬 사용자의 기본값
달리는 bbvirt 사용됩니다(일반적으로 루트에서 실행하는 경우 유데브).

DOMAIN_RNG_도메인=( 장치 일련의 숫자 ... )
이 변수는 도메인에 대한 장치의 자동 패스스루가
원하는. 공백으로 구분된 모든 목록으로 채워진 bash 배열입니다.
할당하려는 장치 일련 번호 도메인. 에 대한 오류가 아닙니다.
현재 연결되어 있지 않은 장치가 여기에 나열됩니다.
장치가 하나에만 할당되도록 합니다. 도메인 하지만 그 장치
게스트 도메인에 할당된 도메인은 시드(1) 다음에서 실행 중인 인스턴스
호스트(즉, 시드 구성은 다음의 명시적 목록을 전달해야 합니다.
사용할 수 있는 장치).

여기서는 장치 일련 번호를 항상 사용해야 합니다. 장치를 지정할 수 없습니다.
버스의 논리적 또는 물리적 주소(대부분의 다른 위치에서 할 수 있는 것처럼
장치 ID를 받습니다).

onworks.net 서비스를 사용하여 온라인으로 bbvirt 사용


무료 서버 및 워크스테이션

Windows 및 Linux 앱 다운로드

  • 1
    wx파이썬
    wx파이썬
    Python 확장 모듈 세트
    크로스 플랫폼 GUI 클래스를 래핑합니다.
    wxWidgets.. 청중: 개발자. 사용자
    인터페이스: X 윈도우 시스템(X11), Win32 ...
    wxPython 다운로드
  • 2
    팩 파일 관리자
    팩 파일 관리자
    Total War 팩 파일 관리자입니다.
    버전 1.7부터 프로젝트. ㅏ
    Warscape에 대한 짧은 소개
    모딩: ...
    팩파일매니저 다운로드
  • 3
    IPerf2
    IPerf2
    측정을 위한 네트워크 트래픽 도구
    메트릭을 사용한 TCP 및 UDP 성능
    처리량과 대기 시간 모두에 대해. 그만큼
    목표에는 활성 유지가 포함됩니다.
    iperf 대구...
    IPerf2 다운로드
  • 4
    fre:ac - 무료 오디오 변환기
    fre:ac - 무료 오디오 변환기
    fre:ac는 무료 오디오 변환기이자 CD입니다.
    다양한 포맷과 인코더를 위한 리퍼.
    그것은 MP3, MP4/M4A, WMA, Ogg 기능
    Vorbis, FLAC, AAC 및 Bonk 형식
    지원하다, ...
    다운로드 fre:ac - 무료 오디오 변환기
  • 5
    매트플롯립
    매트플롯립
    Matplotlib는 포괄적인 라이브러리입니다.
    정적, 애니메이션 및
    Python의 대화형 시각화.
    Matplotlib은 쉬운 일을 쉽고
    어려운 것...
    Matplotlib 다운로드
  • 6
    봇맨
    봇맨
    챗봇 로직을 한 번 작성하고
    사용 가능한 것 중 하나에 연결
    Amazon을 포함한 메시징 서비스
    알렉사, 페이스북 메신저, 슬랙,
    텔레그램이나 요...
    봇맨 다운로드
  • 더»

Linux 명령

Ad