设备显示在 lsusb + adb 中,但不显示在 ifconfig 中

设备显示在 lsusb + adb 中,但不显示在 ifconfig 中

我在 Windows 7 下的 VMWare Player 中运行 Ubuntu:

root@ubuntu:/# uname -a
Linux ubuntu 3.0.0-17-generic #30-Ubuntu SMP Thu Mar 8 17:34:21 UTC 2012 i686 \
i686 i386 GNU/Linux

我正在尝试通过 USB 建立与 HTC Desire 的网络连接。插入后,输入 lsusb 命令时会显示该设备:

root@ubuntu:/# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 003: ID 0bb4:0c87 High Tech Computer Corp. Desire (debug)

我还可以通过 Android Debug Bridge 与它对话:

root@ubuntu:/# adb devices
List of devices attached 
HT08LPL00400    device

当我运行 ifconfig 时,我希望设备出现在 usb0 下,但没有出现 USB 接口:

root@ubuntu:/# ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0c:29:4f:5a:28  
          inet addr:192.168.159.145  Bcast:192.168.159.255  Mask:255.255.255.0
          inet6 addr: fe80::20c:29ff:fe4f:5a28/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:251857 errors:1 dropped:1 overruns:0 frame:0
          TX packets:147151 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:340675522 (340.6 MB)  TX bytes:12163470 (12.1 MB)
          Interrupt:19 Base address:0x2000 

lo        Link encap:Local Loopback  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:15115 errors:0 dropped:0 overruns:0 frame:0
          TX packets:15115 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0 
          RX bytes:5352740 (5.3 MB)  TX bytes:5352740 (5.3 MB)

有人知道我该怎么办吗?谢谢!

答案1

Adb 通过 USB 工作,它不设置网络接口。ifconfig仅显示网络接口。

如果您想在 Ubuntu 和 Android 手机之间运行命令或复制文件,请使用以下adb命令:

adb shell ls /system
adb push myfile /data/data/myapp.example.com/

一些 Android 设备可以显示为 USB 存储设备,我不知道这是否包括你的。你也可以尝试数据库(据我所知,没有为 Ubuntu 打包,因此您需要自己编译)。

如果你想建立网络连接,例如使用 Android 手机作为互联网网关(这称为共享),告诉adb您通过 USB 建立 PPP 连接。PPP 接口将作为网络接口出现在 中ifconfig。这是一个快速而粗略的网络共享脚本,它试图猜测 Android 设备上的正确网络接口;请以 root 身份运行它,风险自负(它不是为在奇怪的设置中保持稳健而设计的)。

# Interface with the default route on the Android device.
android_gw_if=$(adb shell ip route list 0.0.0.0/0 | sed -n -e 's/^.* dev  *\([^ ]*\).*/\1/p' -e 'T' -e 'q')
adb ppp "shell:pppd nodetach noauth noipdefault /dev/tty" nodetach noauth noipdefault notty 192.168.254.2:192.168.254.1
adb shell "echo 1 >/proc/sys/net/ipv4/ip_forward"
adb shell "iptables -P FORWARD ACCEPT"
adb shell "iptables -t nat -I POSTROUTING -s 192.168.254.2 -j MASQUERADE -o $android_gw_if"
sleep 1 # give the ppp connection time to establish itself
route add -net default gw 192.168.254.1

相关内容