Android2.3/4.0 USB tethering为什么不工作了?

本文介绍了在Android 2.3及4.0系统中遇到的USB Tethering问题及解决方案,包括检查driver安装、配置文件调整等内容,并对比了两个版本间的架构差异。

1.需要检查PC端的driver是否安装正确.

2.需要检查USB tethering的设置,比如我碰到的问题如下: Android2.3上把wifi不作为tethering 的upstream. Android4.0的确将wifi作为tethering的upstream.device/samsung/smdkc110/overlay_ulmo-ics-gmk/frameworks/base/core/res/res/values/config.xml
    <!-- Array of allowable ConnectivityManager network types for tethering -->
    <!-- Common options are [1, 4] for wifi and dun or [0,1,5,7] for -->
    <!-- mobile, wifi, hipri and bluetooth -->
    <integer-array translatable="false" name="config_tether_upstream_types">
        <item>0</item>
        <item>1</item>
        <item>5</item>
        <item>7</item>
    </integer-array>

3.需要了解USB tethering 的代码通路.
比如:Android4.0 BSP切换不同的usb gadget功能的入口函数functions_store, 
那这个入口函数如何和Framework层联系起来的? 请看下面的文件中的内容:
device/samsung/smdkc110/init.smdkc110.usb.rc
on property:sys.usb.config=rndis,adb
    write /sys/class/android_usb/android0/enable 0
    write /sys/class/android_usb/android0/idVendor 04e8
    write /sys/class/android_usb/android0/idProduct 6864
    write /sys/class/android_usb/android0/functions $sys.usb.config
    write /sys/class/android_usb/android0/bDeviceClass 224 
    write /sys/class/android_usb/android0/enable 1
    start adbd
    setprop sys.usb.state $sys.usb.config
终于弄明白Framework的UsbService.java和BSP的USB gadget function之间的联系。


4. Reference:
http://www.dzsc.com/data/html/2009-8-11/78192.html
http://www.doc88.com/p-468115456611.html
http://fgsink.blog.163.com/blog/static/1671699702012112429589/
http://blog.youkuaiyun.com/wangyunqian6/article/details/7162636
http://blog.youkuaiyun.com/hongjiujing/article/details/4508105
http://armbedded.eu/node/193
http://www.cnblogs.com/cute/archive/2011/04/21/2023365.html
http://blog.youkuaiyun.com/yaozhenguo2006/article/details/7748896
http://blog.youkuaiyun.com/spark_fountain/article/details/7616001
http://blog.21ic.com/user1/1536/archives/2006/30783.html
http://blog.youkuaiyun.com/mcgrady_tracy/article/details/8164587
http://www.cnblogs.com/xidongs/archive/2011/11/26/2264229.html
http://blog.youkuaiyun.com/lidong_zhou/article/details/7677602
http://my.oschina.net/u/147624?disp=2&p=3


5. Android2.3/4.0 USB tethering archetecture comparation:

                  


USB TetheringUSB共享网络)和 USB Modem(USB调制解调器)是两种通过USB接口共享或建立网络连接的方式,常用于将手机或其他设备的互联网连接共享给电脑使用。在路由器中配置这些功能,可以让路由器通过USB接口共享设备的网络连接。 ### 1. **USB TetheringUSB共享网络)** USB Tethering 是一种直接通过USB线缆将设备(如手机)的互联网连接共享给电脑或路由器的技术。当启用USB Tethering时,设备会模拟成一个以太网适配器,为连接的设备提供网络访问。 #### 路由器配置 USB Tethering 的步骤: - **确保设备支持 USB Tethering**:例如 Android 手机可以在“设置 > 网络和互联网 > 热点和网络共享”中启用 USB Tethering。 - **将设备通过 USB 连接到路由器**:部分支持 USB 接口的路由器(如一些 OpenWRT 路由器)可以识别 USB Tethering。 - **路由器系统识别网络接口**:路由器会识别到一个新的以太网接口(如 `usb0`)。 - **配置网络接口**:在路由器的网络配置中(如 `/etc/config/network`),配置该接口为 WAN 口,自动获取 IP 地址(DHCP)。 - **重启网络服务**:完成配置后重启网络服务即可使用。 ### 2. **USB Modem(USB 调制解调器)** USB Modem 是指通过 USB 接口连接的 4G/5G 上网卡或数据卡,它们内置了蜂窝网络模块,可以通过运营商网络拨号上网。 #### 路由器配置 USB Modem 的步骤: - **插入 USB Modem**:将 USB Modem 插入路由器的 USB 接口。 - **安装驱动和拨号软件**:部分路由器(如 OpenWRT)需要安装 `kmod-usb-serial`、`ppp`、`comgt` 或 `qmi-utils` 等驱动和拨号工具。 - **识别设备**:使用 `dmesg` 或 `lsusb` 查看设备是否被识别。 - **配置拨号脚本**: - 对于 PPP 拨号(如大多数 4G USB Modem): ```bash uci set network.wan=interface uci set network.wan.proto=&#39;ppp&#39; uci set network.wan.device=&#39;/dev/ttyUSB0&#39; uci set network.wan.username=&#39;your_username&#39; uci set network.wan.password=&#39;your_password&#39; ``` - 对于 QMI 拨号(如 5G USB Modem): 使用 `qmi_wwan` 驱动和 `qmicli` 工具进行拨号。 - **应用配置并重启网络**: ```bash uci commit network /etc/init.d/network restart ``` ### 总结: - **USB Tethering** 是将手机等设备的网络共享给路由器,依赖于手机的网络连接。 - **USB Modem** 是独立的蜂窝网络设备,直接通过运营商网络拨号上网。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值