2012-10-02 20 views
5

Ben ben için Libusb kullanıyorumbir sürücü linux dönüştürme

(duruma benzer Here, ancak farklı bir cihaz açıklanmıştır) pencereleri sürücüye sahip bir cihaza linux sürücüsü yazmaya çalışıyorum linux tarafında haberleşme ve USB hırsızı olarak SourceUSB (windows makinesinde). Şimdi kontrolleri ve yığınları düzgün şekilde çoğalttığımı düşünüyorum, ancak linux log'unu pencerelere karşı test edemiyorum. VM'ye Ubuntu 12.04 koşuyorum.

Yani benim sorular şunlardır:

  1. multiplatform logger var mı? Bu, günlük karşılaştırma sürecini basitleştirebilir.
  2. USB aygıtını VM'ye bağladığımda - Windows'ta VM sürücüsünü alıyorum. Bu aygıtı koklamak bana cihazın tam olarak ne gördüğünü gösteriyor, değil mi? Demek istediğim, burnumu çekmek istediğim yer burası mı?

DÜZENLEME: Ben pencerelerde başvurum derledik - ve benim uygulama düzgün çalıştı (Libusb çapraz platform olacak şekilde iyi bir iş yaptı geliştiriciler LibUSB Büyük bir teşekkür).

Uygulamamı linux üzerinde çalıştırırken VM sürücüsünü kokladığında, CONTROL_TRANSFER ve BULK_OR_INTERRUPT yerine USB için istekleri VENDOR_DEVICE olarak görüyorum. Bu doğru bir şekilde anladığımda sorun olur, çünkü bu aygıtın gördüğü şeydir.

Sanırım sorunum şu ki, Linux neden taleplerimi satıcı olarak gönderiyor?

BAŞKA DÜZENLEME: Sorun çözüldü:

  1. VM sürücüye Dinleme beni yanlış istekleri (istediğim gibi ben değil, VM sürücü trafiğe benim USB linux sürücüsü trafik dinleyen verdi
  2. libUSB mükemmel çoklu platform olduğunu. Bu pencerelerin altında derlemek için kodumu almak için bana birkaç dakika sürdü ve oradan hata ayıklamak oldukça kolay oldu ve USB trafiği yakalamak için Wireshark'ı kullanabilirsiniz günlükleri

cevap

5

karşılaştırın. Bu sayfa Linux ve Wi için nasıl yapılacağını açıklıyor ndows: CaptureSetup/USB