【问题标题】:No USB bus file even after enabling usbmon in Android kernel?即使在 Android 内核中启用 usbmon 后也没有 USB 总线文件?
【发布时间】:2015-09-23 13:05:07
【问题描述】:

我已经在具有 USB 主机的设备(Rooted Nexus 7、2012、WiFi、Android 版本 5.0.2)上启用了适用于 Android 的 linux 内核中的 usbmon。从新内核启动后,tcpdump -D 显示:

1.any (Pseudo-device that captures on all interfaces) [Up, Running]
2.lo [Up, Running, Loopback]
3.p2p0 [Up]
4.wlan0 [Up] 
5.nflog (Linux netfilter log (NFLOG) interface)
6.nfqueue (Linux netfilter queue (NFQUEUE) interface)
7.usbmon1 (USB bus number 1)

但运行 tcpdump -i usbmon1 会导致

tcpdump: Can't open USB bus file /sys/kernel/debug/usbmon/1t: No such file or directory

实际上该位置没有 usbmon 文件夹。我错过了什么吗?

【问题讨论】:

  • 你有/sys/kernel/debug/-文件夹吗?
  • 是的,它包含usb/devices但不包含usbmon。
  • 你是如何“激活”usbmon的?内置 [M] 模块还是 [Y]?
  • 它是内置的,(不是通过模块)。
  • 在我的系统上,debugfs 中的 usbmon 实际上位于 /sys/kernel/debug/usb/usbmon/ 而不是 /sys/kernel/debug/usbmon/ tcpdump 似乎在寻找它.也许你的 tcpdump-version 太旧或太新。

标签: android linux linux-kernel usb tcpdump


【解决方案1】:

要访问 debugfs 组件,它需要被挂载。这可能不会在您的系统上自动完成。如果是这样试试:

mount -t debugfs nodev /sys/kernel/debug

如果您将 usbmon 编译为模块,则必须手动加载它。

modprobe usbmon

【讨论】:

    【解决方案2】:

    我没有用新编译的内核刷机,但我只是用 fastboot 启动它,所以如果有什么问题,我可以关闭它并使用原始启动映像重新启动。 即使加载了新内核,正如“内核版本”部分中所验证的那样,没有创建 usbmon 的系统文件夹,直到我用新内核刷新了设备。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-07
      • 2017-05-27
      • 1970-01-01
      • 2020-02-17
      • 1970-01-01
      相关资源
      最近更新 更多