Τετάρτη, 30 Μαρτίου 2011

Virtual USB Analyzer


Για όσους γράφουν ή φιλοδοξούν να γράψουν USB drivers για το Linux, ένα από τα βασικά εργαλεία είναι το usbmon, δηλαδή το υποσύστημα του πυρήνα που παρακολουθεί τα πακέτα που μεταφέρονται μεταξύ drivers και controller. Με αυτό μπορούμε να υλοποιήσουμε το αντίστοιχο του tcpdump για usb, αλλά μόλις πάρουμε ένα τεράστιο log τι γίνεται;

Τα τελευταία 2-3 χρόνια η VMWare έχει δωρίσει στην κοινότητα ένα μικρό εργαλείο που ονομάζεται Virtual USB Analyzer και που στην ίδια τη VMWare το χρησιμοποίησαν στη συγγραφή του δικών τους emulated USB controllers.

Παρά το μικρό του μέγεθος (είναι γραμμένο σε python/Gtk) το εργαλείο αυτό ήδη παρέχει υποστήριξη για την ανάλυση logs από
  • Debug builds του VMWare Player ή Fusion
  • XML logs από τον Ellisys USB Explorer 200 (hardware usb analyzer)
  • usbmon raw text format (*.mon)
Άλλα ενδιαφέροντα χαρακτηριστικά είναι η υποστήριξη transparent gzip decompression των logs (χρήσιμο καθώς μιλάμε συνήθως για δεκάδες ή εκατοντάδες MB από ascii text) και η υποστήριξη του να γίνεται append σε ένα log παράλληλα με την επεξεργασία (tail-like mode).

Επίσης πολύ χρήσιμο είναι το diff mode στο οποίο μπορούμε να δούμε δίπλα-δίπλα 2 log files και να δούμε διαφορές π.χ., ενός πραγματικού με ένα εικονικό controller ή ενός windows με ένα linux driver στην αρχικοποίηση της συσκευής.

Δυστυχώς το vusb-analyzer δεν υπάρχει ακόμα στα επίσημα αποθετήρια του ubuntu αλλά μπορείτε να το βρείτε στο ppa μου για maverick.

Για περισσότερες λεπτομέρειες δείτε το σχετικό tutorial καθώς και τα samples.


Δεν υπάρχουν σχόλια:

Δημοσίευση σχολίου