Android——4.2 - 3G移植之路之libusb (一)

本文档详细记录了3G模块在智能电视(SmartTV)系统中的移植过程,包括设备识别转换、libusb及libusb-compat的编译等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

   前段时间往smart TV上移植3G模块,发现移植3G的百度谷歌一搜,基本全是linux开发板上的,

我在这里记录一下 我移植 的全过程,让他人少走弯路,有什么建议或者不对的欢迎留言~


                                                                  撰写不易,转载请注明出处:http://blog.youkuaiyun.com/jscese/article/details/39057033

一.设备识别

目前的3G模块都是usb接口的,插在android系统中都会默认识别为usb storage 设备,会尝试通过Vold 挂载为usb 存储设备!

所以必须要把设备类型转掉,转换成Modem类型设备,只有这样才能实现主机与模块之间的正常通信,这里就需要一个转换驱动了,

usb-modeswitch 开源驱动,网上下载:http://www.draisberghof.de/usb_modeswitch/#download

其中还需要支持的API库,源码下载:http://www.libusb.org/

只有通过模式转换才算是正确的识别到了3G设备, 这里先解析 usb-modeswitch 所需要的 API 的移植。



二.编译libusb/libusb-compat

从上面的网址上面可以下载最新的 libusb-1.0.9 libusb-compat-0.1.4 (对久版本的兼容),

解压到我们android源码的 external 中,这两个lib 是为后面的usb_modeswitch服务的动态库,可以直接在linux上进行交叉编译,最后也能得到libusb.so libusb-compat.so,编译方法网上有很多!

我想竟然是往android平台移植,那么我就放到external中用android的编译机制去编译!

往两个文件夹下面添加Android.mk

先看libusb的Android.mk:


#jscese add this android.mk to compile libusb.so for usb_modelswitch 140819
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

common_src :=\
	libusb/core.c \
	libusb/descriptor.c \
	libusb/io.c \
	libusb/sync.c \
	libusb/os/linux_usbfs.c \
	
common_include :=\
	$(LOCAL_PATH)/ \
	$(LOCAL_PATH)/libusb \
	$(LOCAL_PATH)/libusb/os
	
LOCAL_MODULE := libusb
LOCAL_SRC_FILES :=$(common_src)

LOCAL_C_INCLUDES +=$(common_include)
include $(BUILD_SHARED_LIBRARY)

可以看到编译的.c源文件只要5个就OK 了,我们下载的libusb包里面有的不需要,需要进行一些修改和配置,

我的libusb源码下载:http://download.youkuaiyun.com/detail/jscese/7868431


libusb-compat的Android.mk:


#jscese add this android.mk to compile libusb-compat.so for usb_modelswitch 140819
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)

LIBUSB_DIR :=external/libusb

common_src :=\
	libusb/core.c \

	
common_include :=\
	$(LOCAL_PATH)/ \
	$(LOCAL_PATH)/libusb \
	$(LIBUSB_DIR)/libusb


LOCAL_MODULE := libusb-compat
LOCAL_SRC_FILES :=$(common_src)
LOCAL_C_INCLUDES +=$(common_include)
LOCAL_SHARED_LIBRARIES := libusb

include $(BUILD_SHARED_LIBRARY)

可以看到libusb-compat 引入libusb

我的libusb-compat源码下载:http://download.youkuaiyun.com/detail/jscese/7868445


可在源码下 通过:

mmm external/libusb

单独编译对应的.so


这里先记录libusb的移植,一步一步来。。



评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值