|
sobota, 16 sierpieñ 2008 |
Sorry there is no translation available yet. Please let me know if You want this article translated :-) P: Chciałbym podejrzeć ruch na magistrali USB pod linuksem, jak to zrobić?
O: Kernel daje taką możliwość przez modułu USBMON oraz funkcjonalności KERNEL DEBUG. W większości prypadków trzeba będzie przekompilować jądro. Tutaj kilka uwag:
- USBMON może być modułem, ale wymaga wkompilowanego KERNEL DEBUG. Pomimo, że usbmon jest w domyślnym konfigu kernela zaznaczony jako modul, to kernel debug nie jest zaznaczony wogóle. Brawo kowboje ;-)
- Pomimo usilnych prób nie udało mi się uruchomić kernela 2.6.25.* ani 2.6.26.* na laptopie. Wszystko wkompilowane, a nie dziala. Do tego domyślnie wyłączona jest obsługa IDE. Bez komentarza :-(
Kiedy posiadamy już właściwy kernel oraz załadowany moduł usbmon (modprobe usbmon), należy zammontować debugfs - ręcznie lub dodając wpis do /etc/fstab:
none_debugfs /sys/kernel/debug debugfs defaults 0 0
(po dodaniu wpisu do fstab wykonaj mount -a)
Od tej chwili dostępny jest katalog /sys/kernel/debug/usbmon w którym możemy podglądać ruch na magistrali USB. Przydatny będzie minimalistyczny program usbmon (nie mylić z modułem kernela) lub bardziej rozbudowany i znany WireShark, analizujący zawartość w/w plików. Więcej informacji można znaleźć w dokumentacji źródeł kernela: /usr/src/linux/Documentation/usb/usbmon.txt
Źródło: quietearth / usb snoop in linux
|