İngilizceFransızcaİspanyolca

Ad


OnWorks favicon'u

bbvirt - Bulutta Çevrimiçi

Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü üzerinden OnWorks ücretsiz barındırma sağlayıcısında bbvirt çalıştırın

Bu, Ubuntu Online, Fedora Online, Windows çevrimiçi emülatörü veya MAC OS çevrimiçi emülatörü gibi birden fazla ücretsiz çevrimiçi iş istasyonumuzdan birini kullanarak OnWorks ücretsiz barındırma sağlayıcısında çalıştırılabilen bbvirt komutudur.

Program:

ADI


bbvirt - BitBabbler cihazlarını libvirt tarafından yönetilen etki alanlarına hotplug

SİNOPSİS


bbvirt aksiyon [seçenekleri]

bbvirt iliştirmek|DETACH cihaz [seçenekleri]

bbvirt hepsini ekle|hepsini ayır [domain] [seçenekleri]

TANIM


The bbvirt program, şu anda olanın acısının bir kısmını giderme girişimidir.
ana bilgisayar ve konuk sanal makineleri arasında birden çok USB aygıtı dağıtmak için gereklidir.
Bunun yapılandırılabileceği ve yönetilebileceği birkaç yol olsa da, şu anda hiçbiri
bunların çoğu aslında kendi başlarına eksiksiz ve tutarlı bir çözüm sağlar, hepsi düşer
bazı önemli ve can sıkıcı bir şekilde işareti kısa. Burada amaç birleştirmek
o zamana kadar istediğimiz tüm işlevselliği elde etmek için bu hacklerden yeterince
Bunun için libvirt yerel desteği, artık buna ihtiyaç duymayacak kadar iyileşir.

Şu anda bu, libvirt tarafından yönetilen QEMU/KVM sanal makineleriyle ilgilidir.

Ne do we istemek?
Buradaki ideal davranış oldukça basittir. Rastgele sayıda BitBabbler verildiğinde
cihazlar, onları ana makineye veya misafir VM'ye atayabilmeliyiz
üzerinde çalışıyor ve bir kez bunu yaptığımızda, herhangi birinden beklenen normal şekilde davranmalılar.
USB aleti.

- Konuk makine çalıştırıldığında fişe takılı iseler o tarafından görülmelidir.
makine, ana bilgisayar tarafından olacağı gibi.

- Makine başlatıldıktan sonra takılırlarsa, buna çalışırken takılmalıdırlar.
makinede olduğu gibi makine.

- Makine çalışırken fişten çekilirlerse temiz bir şekilde prizden çıkarılmalıdırlar.
o, ana bilgisayarda olacakları gibi.

Niye ya olamaz we var bunu?
Şu anda, libvirt bize USB aygıtlarını ana bilgisayardan bir bilgisayara atayabilmemiz için iki yol sunuyor.
misafir etki alanı.

- Bunları USB satıcısına ve ürün kimliğine göre atayabiliriz. Ama bu sadece oradayken işe yarar
ana bilgisayardaki bu türden yalnızca tek bir cihazdır. Çoğunda oldukça işe yaramaz olan
burada önemsediğimiz, ev sahibinin ve konukların her birinin muhtemel olduğu durumlar
kendilerine atanmış bir veya daha fazla BitBabbler cihazına sahip olmak.

- USB bus üzerindeki mantıksal adreslerine göre atayabiliriz. Ama bu bir sabit değil
etki alanı için statik olarak yapılandırabileceğimiz. Bir cihaz her takıldığında veya
yeniden takıldı veya sıfırlandı veya ana makine yeniden başlatıldı, bu adresin değişmesi muhtemel
cihaz veri yolunda numaralandırıldığında dinamik olarak tahsis edildiğinden.

Üçüncü bir yol daha var, ancak bunu yapmak için normal libvirt yapılandırmasını atlamaya dayanıyor.
veri yolu üzerindeki fiziksel adresine göre bir cihaz atamak için QEMU yeteneğinin doğrudan kullanımı.
Hangisi daha iyi, ama yine de tam olarak aynı şeyi takmaya dayandığından sihirli bir kurşun değil
cihazları her seferinde tam olarak aynı bağlantı noktalarına (ve bu bağlantı noktalarının
aynı şekilde, her yeniden başlatmada ana bilgisayar tarafından da garanti edilmez). Aynı zamanda zorlar
diğer çemberlerden atlamak için, çünkü o zaman durumu yönetmek için ek karmaşıklığa ihtiyacımız var.
cihazın erişim izinlerine libvirt dışında manuel olarak, ancak yine de koordinasyon halinde
onunla.

Tüm bu yöntemlerin ortak noktası olan daha da büyük başarısızlık, hepsinin
misafir başlatılmadan önce cihaz zaten takılı. sonra takılırsa
konuk çalıştırılırken başlatılır veya kaldırılır ve yeniden takılırsa veya ev sahibi
veri yolu veya hub zıplayarak yeniden bağlanmaya neden olur, ardından cihaz (yeniden)
misafir. Bunu düzeltmenin tek yolu, cihazı manuel olarak bir
XML'de gizli büyü (cihazın yeni adresini bilmenize bağlıdır) veya
tamamen kapatmak ve konuğu yeniden başlatmak için. Kullanıcı dostu olmanın zirvesi değil
burada aradığımız operasyon.

Ne yapabilmek we do hakkında bunu?
Birkaç yıl önce libvirt'e gönderilen ve bir cihaza izin verecek bir yama vardı.
hem USB ürün kimliği hem de seri numarası ile belirtilmelidir, ancak bu biraz zorlandı-
geri ve şimdiye kadar hala yukarı yönde uygulanmadı. Bu uzun bir yol kat etmiş olurdu
Bunu hem kolay hem de temiz hale getirmeye yönelik, bizi yalnızca başa çıkmamız gereken hotplug yönü ile baş başa bırakıyor.
ile. Okuyucu için bir alıştırma olarak bununla ilgili huysuz bir snark bırakacağız ...

Başka bir alternatif, cihazın mantıksal adresini bulmayı bir hotplug'a devredebiliriz.
yönetici gibi udev(7). Bu, adresin ne zaman olduğunu bilmemiz açısından çekicidir.
bir cihazın değiştiği ve neye dönüştüğü, ancak udev kendisi için çok arkadaş canlısı değil
yerel yönetici özelleştirme fikri (yapmak mümkün olsa da,
giderek daha fazla cesareti kırılıyor) ve onu kullanmak için hala bir miktar harici yapıştırıcı gerekiyor
olaylarını, konuğu yapılandırmak için libvirt'in harekete geçebileceği bir şeye çevirin
makinesi.

The bbvirt program bu yapıştırıcıyı ve hangisini atamak için kullanıcı dostu bir yöntem sağlar.
cihazlar hangi konuk etki alanlarına ve manuel olarak çağrılabilen bir kullanıcı arabirimine ait olmalıdır
veya BitBabbler cihazlarını hızlı ve kolay bir şekilde eklemek veya kaldırmak için diğer yönetici kontrollü görevler tarafından
çalışan konuk makinelerinden herhangi birinden.

Ancak bu yaklaşımın sınırlaması, bir konuk makinenin ne zaman çalıştığını kolayca bilememesidir.
zaten takılı olan cihazların eklenmiş olması gereken başlatıldı. teoride biz
onları kalıcı etki alanı tanımına ekleyebilir, ancak bunun kendi sorunları vardır çünkü
aygıtları yalnızca geçici mantıksal adreslerine göre ekleyebiliriz ve
bu adres geçersiz hale geldiğinde onları alan adından kaldırmak için çağrılır
(örneğin, ana bilgisayar aniden kapatılırsa veya başka türlü temiz bir şekilde kapatılmazsa), bu nedenle
kalıcı etki alanı yapılandırmasında biriken birçok eski girişle sonuçlanabilir,
bu daha sonra eklemek istediğimizden tamamen farklı bir cihazla eşleşebilir
o. Bu, bir şekilde düzeltilene kadar, onları canlı bir konuğa eklemek yalnızca güvenli demektir.
etki alanı, böylece durdurulduğunda, nasıl olursa olsun, her zaman tekrar kaldırılacaklar.
durdurularak sona erdi.

Açıkçası burada idealimize ulaşmak için daha gidecek yolumuz var.

Ne if we vurmak it ile *XNUMX* çekiçler?
Bir misafir makinenin mevcut olduğundan haberdar olmamızın yalnızca iki yolu var gibi görünüyor.
anda başladı. Biri, başka bir arka plan programı sürecini çalıştırmayı içerir;
Bize söyleyebilmesi için oturup birinin misafir başlatmasını beklemekten biraz daha fazlası
bunun hakkında. Ama sonra yapılandırmamız gereken başka bir şey daha olurdu, yine başka bir süreç
koşuyor ve ne zaman bir yarışı kaybetmeyeceğimizden nasıl emin olacağımızı bulmakla ilgili daha fazla sorun
ana bilgisayar, cihaz olaylarının ilk kümesinin alınması arasında önyüklenir, bu işlem
hazır ve etkin ve açılışta otomatik olarak başlatılacak olan tüm konuklar aslında başlıyor.

Diğer yol ise bir libvirt kancası kullanmaktır. Hangi sırayla aslında değil sorunu var
eklemek için yapmamız gereken herhangi bir libvirt işlevini çalıştırmamıza izin veriyor.
cihazı ana bilgisayara. Ve varsayılan olarak yükleyebileceğimizi garanti edemeyiz,
çünkü sistemde yerel yöneticinin zaten sahip olabileceği böyle bir kanca olabilir.
kullanıyor olmak...

Üçüncü bir yol var, ancak bu, yerel yöneticinin tüm konukları başlatmasını gerektirmeyi içerir.
makineleri, zaten bildikleri herhangi bir mekanizma yerine, kendi ambalajımız aracılığıyla
ve kullan. Aynı durumdaki diğer USB cihazlarını desteklemek için ölçeklenmeyen, aralarında
insanlara dayatmak için korkunç bir çözüm olacak birçok yol.

Ama yararlanabileceğimiz bir boşluk var. Bir tetiklemek için libvirt qemu kancasını kullanabiliriz
için olayı değiştir udev, hangi sırayla çağırabilir bbvirt hemen hemen aynı şekilde
cihaz gerçekten çalışırken takılıysa olur, bu da bize ekstra bir dolaylı katman sağlar
bunu kancadan güvenli bir şekilde yapabilmemiz gerekiyor. Rube Goldberg gurur duyardı ve
Bazı parçalar elle montaj gerektirebilir, ancak bunların hepsi yerinde olduğunda,
konuk makinelerde normal USB işlevselliğine benzeyen bir şey.

Güzel değil, ama çalışmamız gereken şeyle çalışacak.

Tamam, sadece söylemek me nerede için vurmak bunu.
Bunu bir araya getirmek için aşağıdakilerin tümünü sağlamanız gerekir:

- udev(7) bit-babbler paketinden kurallar kurulur. Bunu yüklediyseniz
zaten yapılması gereken Debian paketlerinden. Eğer yapmadıysan, yapman gerekecek
içinde bulunan kuralları yükleyin debian/bit-babbler.udev kaynak paketten bir
sisteminizde uygun bir yer (muhtemelen /etc/udev/rules.d).

- bbvirt(1) komut dosyası, udev kurallar onu bulacaktır. Eğer sen
bunu Debian paketlerinden yüklemedi ve içinde değil / Usr / bin, o zaman ihtiyacınız olacak
ince ayar yapmak udev uyması gereken kurallar.

- Misafir makinelerinde kullanmak istediğiniz cihazlar ve kullanmak istediğiniz makineler,
içinde belirtilmiştir bbvirt yapılandırma dosyası. Bunun için varsayılan konum
/etc/bit-babbler/vm.conf. Farklı bir dosya kullanmak istiyorsanız, onu geçmeniz gerekecektir.
ile konum --yapılandırma seçeneği udev kurallar ve kanca komut dosyasını güncelleyin, bunu kullanın
dosya da. Bu dosyaya ne koyabileceğinizin ayrıntıları aşağıdaki bölümde açıklanmıştır.
YAPILANDIRMA SEÇENEKLER aşağıdaki bölüm.

- libvirt kanca dosyası yüklenir. Yukarıdakilerin tümü yapılırsa, cihazlar
Konuk çalışırken takılırlarsa çalışan konuk makinelere eklenir.
Bu son adım, halihazırda takılı olan cihazların yeni cihazlara eklenmesini sağlar.
başlatılmış misafirler de (ev sahibi
makine çizmeleri).

Bunu, çakışmadan veya üzerine yazmadan kurabileceğimiz güvenli bir yol olana kadar
mevcut bir kanca, herkesin bu adımı manuel olarak yapması gerekecek. yüklediyseniz
Debian paketleri, ardından bunun için sağladığımız örnek kanca betiği
içinde bulunan /usr/share/doc/bit-babbler/examples/qemu-hook. Eğer yapmadıysan bulunabilir
in libvirt/qemu kancası kaynak paketin.

Bu dosyayı şu şekilde yüklemeniz gerekecek /etc/libvirt/hooks/qemuveya içeriğini şununla birleştir
var olan Qemu zaten o kanca setine sahipseniz orada dosyalayın. Eğer o dosya olmasaydı
önceden var, yeniden başlatmanız gerekecek libvirtd(8) kullanmaya başlamak için.

Bu, gerekli tüm otomasyonu kapsamalıdır, ancak aygıtları takıp çıkarabilirsiniz.
herhangi bir zamanda manuel olarak da. Bunu yapmanın ayrıntıları aşağıda açıklanacaktır.
Bölüm. Aksi takdirde, yukarıdakilerin tümü yapıldıktan sonra, çağırmak için başka bir neden yoktur.
bbvirt direkt olarak.

SEÇENEKLER


için iki ana çalışma modu vardır. bbvirt başlangıç ​​tarafından seçilenler
eylem seçeneği. Gerçekleştirilecek eylem ise iliştirmek or DETACH o zaman sadece tek bir cihaz
uygulanacağı ve hangi cihazın kullanılması gerektiği açıkça belirtilmelidir.
o anda ana bilgisayarda yalnızca bir cihaz var. Çağırırken bbvirt elle,
the cihaz seri numarası, veri yolu üzerindeki mantıksal adresi ile belirtilebilir (
Airdrop Formu işkembe:Devnum, ondalık tamsayılar olarak verilir) veya veri yolu üzerindeki fiziksel adresi (
Airdrop Formu işkembe-Liman[.Liman ...]).

Gerçekleştirilecek eylem ise hepsini ekle or hepsini ayır, ardından işlem yapılacak cihaz(lar)
tarafından seçildi domain yerine dernek. Eğer bir domain açıkça belirtilirse, tüm
yapılandırma dosyasında o konuk etki alanına atanan cihazlar harekete geçirilecektir.
sanki aynı şekilde bbvirt ile her biri için ayrı ayrı çağrıldı.
iliştirmek or DETACH eylem. Eğer hayırsa domain sağlanır, ardından yapılandırılmış tüm misafir
Alan adları bu şekilde işlem görecektir.

Aşağıdaki ek seçenekler mevcuttur:

-C, --yapılandırma
Cihaz atamalarının içe aktarılacağı alternatif bir yapılandırma dosyası belirtin.
Dosyanın yolu açıkça belirtilmemişse, içinde aranacaktır.
the /etc/bit-gevezelikçi dizin (bir .conf son ek).

-C, --bağlantı=URI
belirtmek Virş(1) bağlantı URI kullanmak. Bu, bir DOMAIN_URI set
yapılandırma dosyasındaki etki alanı için. Bu, bunlardan herhangi biri kullanılarak ayarlanmazsa
yöntemler daha sonra Virş çalışan kullanıcı için varsayılan bbvirt kullanılacaktır.

-NS, --etki alanı=isim
Üzerinde işlem yapılacak libvirt etki alanını belirtin. Bu, cihazı geçersiz kılmak için kullanılabilir
yapılandırma dosyasından tahsis edildiğinde bbvirt manuel olarak veya harekete geçmek için çağrılır
şu anda yapılandırma dosyasında belirtilmeyen bir cihazda veya etki alanında.

-B, --bütün sayısı=num
Aygıtın bağlı olduğu USB veri yolu numarasını belirtin. Bu seçenek çoğunlukla
kaçınmak için kullanılır bbvirt Bunu zaten bilindiğinde (örneğin ne zaman
bir'den çağrılır udev kural). Bunu geçmek için genellikle fazla bir neden yoktur, eğer
çağıran bbvirt manuel olarak, cihazı mantıksal veya
bunun yerine fiziksel adres.

-NS, --devnum=num
Aygıtın şu anda atanmış olduğu USB aygıt numarasını belirtin. Birlikte
veri yolu numarası, bu, cihazın mantıksal adresini oluşturur. Bu seçenek
çoğunlukla kaçınmak için kullanılır bbvirt zaten bilindiği zaman buna bakma ihtiyacı (örneğin
bir yerden çağrıldığında olduğu gibi udev kural). Genellikle geçmek için fazla bir neden yoktur
bu çağrılırsa bbvirt manuel olarak, çünkü cihazı sadece onun tarafından belirtebilirsiniz.
bunun yerine mantıksal adres.

-N, --kuru çalışma
Herhangi bir cihazı takmayın veya çıkarmayın, sadece bu bir cihaz olsaydı ne yapılmaya çalışılacağını gösterin.
canlı koşu. Bu seçenek, minimum düzeyde --ayrıntılı, ancak ayrıntı olabilir
bu seçeneği de açıkça geçerek daha da artırılabilir.

-içinde, --ayrıntılı
Gerçekten neler olup bittiği hakkında daha fazla gürültü yapın. Birden çok kez geçirilebilir
ayrıntıyı daha da artırın.

-?, --yardım et
Mevcut seçeneklerin kısa bir özetini gösterin.

YAPILANDIRMA SEÇENEKLER


The bbvirt yapılandırma dosyası, aşağıdakileri kullanan değişken atamaları içerir: darbe(1) kabuk
sözdizimi. Bir kabuk parçacığı olarak sağlanır, bu nedenle prensipte
her etki alanı için dinamik olarak yapılandırma, ancak en tipik olarak basit bir statik atama
cihazların etki alanlarına yeterli olacaktır. İçinde kod çalıştırmayı seçerseniz, çok
Kullandığınız diğer değişkenleri veya diğer yan etkileri adlandırma konusunda savunmacı
olmasına neden olabilir. İçinde herhangi bir sayıda konuk etki alanı yapılandırılabilir.

Her konuk etki alanı için, iki değişkenin davranışını kontrol eder. bbvirt:

DOMAIN_URI_domain=URI
Bu değişken isteğe bağlıdır ve Virş(1) bağlantı URI ne zaman kullanmak
verilen aygıtları takmak veya çıkarmak domain. Eğer --bağlamak seçenektir
açıkça geçti bbvirt burada ayarlanmış olanı geçersiz kılar. eğer bağlantı
URI bu yöntemlerden herhangi biri kullanılarak ayarlanmazsa Virş kullanıcı için varsayılan
koşu bbvirt kullanılacak (eğer çalıştırılırsa normalde root olur) udev).

DOMAIN_RNG_domain=( cihaz seri sayılar ... )
Cihazların bir etki alanına otomatik geçişi varsa bu değişken gereklidir.
İstenilen. Tüm öğelerin boşlukla ayrılmış bir listesiyle doldurulmuş bir bash dizisidir.
atanmasını istediğiniz cihaz seri numaraları domain. için bir hata değil
Şu anda takılı olmayan cihazlar burada listelenecek.
aygıtların yalnızca birine atandığından emin olun domain yine de, ve bu cihazlar
konuk etki alanlarına atanan bir kişi tarafından kullanılmayacaktır. tohumlanmış(1) üzerinde çalışan örnek
ana bilgisayar (yani tohumlanmış yapılandırmanın açık bir listesini iletilmesi gerekiyor
kullanabileceği cihazlar).

Cihaz seri numarası her zaman burada kullanılmalıdır. tarafından bir cihaz belirtemezsiniz.
otobüsteki mantıksal veya fiziksel adresi (diğer birçok yerde yapabileceğiniz gibi)
bir cihaz kimliği alıyoruz).

onworks.net hizmetlerini kullanarak bbvirt'i çevrimiçi kullanın


Ücretsiz Sunucular ve İş İstasyonları

Windows ve Linux uygulamalarını indirin

  • 1
    wxPython
    wxPython
    sağlayan bir dizi Python genişletme modülü
    platformlar arası GUI sınıflarını sarın
    wxWidgets.. Kitle: Geliştiriciler. kullanıcı
    arayüz: X Pencere Sistemi (X11), Win32 ...
    wxPython'u indirin
  • 2
    paket dosya yöneticisi
    paket dosya yöneticisi
    Bu, Total War paketi dosya yöneticisidir.
    proje, sürüm 1.7'den başlayarak. A
    Warscape'e kısa bir giriş
    modlama: ...
    packfilemanager'ı indirin
  • 3
    IPerf2
    IPerf2
    Ölçmek için bir ağ trafiği aracı
    Metriklerle TCP ve UDP performansı
    hem verim hem de gecikme süresi civarında. NS
    hedefler aktif bir şekilde sürdürmeyi içerir
    iperf kodu...
    IPerf2'yi indirin
  • 4
    fre:ac - ücretsiz ses dönüştürücü
    fre:ac - ücretsiz ses dönüştürücü
    fre:ac ücretsiz bir ses dönüştürücü ve CD'dir
    çeşitli formatlar ve kodlayıcılar için ripper.
    MP3, MP4/M4A, WMA, Ogg özelliklerine sahiptir
    Vorbis, FLAC, AAC ve Bonk biçimi
    destek, ...
    fre:ac indir - ücretsiz ses dönüştürücü
  • 5
    matplotlib
    matplotlib
    Matplotlib kapsamlı bir kütüphanedir
    statik, hareketli ve
    Python'da etkileşimli görselleştirmeler.
    Matplotlib kolay şeyleri kolaylaştırır ve
    zor şey...
    Matplotlib'i indirin
  • 6
    Bot Adam
    Bot Adam
    Chatbot mantığınızı bir kez yazın ve
    mevcut olanlardan birine bağlayın
    Amazon dahil mesajlaşma servisleri
    Alexa, Facebook Messenger, Slack,
    Telgraf, hatta sen...
    BotMan'i indirin
  • Daha fazla »

Linux komutları

Ad