usb_modeswitch移植到Hi3531D平台

PC宿主机:ubuntu 16.04LTS

板子处理器:Hi3531DV100

4G Dongle:华为随行WiFi 2mini (E8372h-155)

linux内核:3.18

移植简介说明:

该文档详细说明了HUEWEI 4G Dongle(E8372h-155) 在海思Hi3531D上的移植过程包括以下内容

  1. libusb-1.0.6.tar.gz的编译配置//这个是usb_modeswitch生成所需要的依赖库文件。
  2. usb-modeswitch-data-20121109.tar.gz的编译配置//这个是为了支持各个网卡所需要的设备参数文件(可以查找相应的设备的测试文件)可以参考我自己写的配置文件格式
  3. usb-modeswitch-2.2.1.tar.gz的编译配置//这个是生成usb_modeswitch程序的源代码

http://www.draisberghof.de/usb_modeswitch/

内核准备配置

重新编译

make ARCH=arm CROSS_COMPILE=arm-hisiv600-linux- menuconfig

make ARCH=arm CROSS_COMPILE=arm-hisiv600-linux- uImage

libusb移植总结

总结这个阶段中移植libusb到嵌入平台的过程和问题:

libusb提供了一套相对能够屏蔽不同linux版本,减少不同平台的驱动移植困恼的工具,工具提供了1.0版本和0.1版本(旧方式),开发者不建议使用0.1了。本次使用的1.0版本开发.

1.包含文件和下载:

1.0版本有libusb和liusb-compat两个模块,后者用来扩展支持0.1.

我使用的是libusb-1.0.6和liusb-compat-0.1.5。

2.交叉编译:

先编译libusb-1.0.6

解压后在libusb-1.0.6执行mkdir install:

注意config时要添加–disable-udev,否则运行时和编译compat都会出现问题。

<1>./configure--build=i686-linux--host=arm-hisiv600-linux-gnueabi--prefix=/home/wrt/work/libusb-1.0.6/install--disable-shared--enable-static--disable-udev(发现没有设置交叉编译工具的路径编译有问题)

***********************************************************************************

./configure --host=arm-linux--prefix=/home/wrt/testusb/libusb-1.0.6/install CC=/usr/local/arm/arm-hisiv600-linux/bin/arm-hisiv600-linux-gnueabi-gcc//按照这个 编译正常

./configure --host=arm-hisiv500-linux-uclibcgnueabi --prefix=/home/wrt/R8_4GDongle/libusb-1.0.6/install --disable-udev

  1. –build=i686-linux表示该软件在x86平台被编译
  2. –host=arm-linux表示该软件编译完成后在arm平台上运行
  3. –prefix后面为软件安装目录。
  4. CC=,CXX等于指定了交叉编译使用的C,C++交叉编译器

//<2>exportPATH=/usr/local/arm/arm-hisiv600-linux/arm-hisiv600-linux/bin:$PATH

<3>make

<4>make install

设置PKG_CONFIG_PATH环境变量,使后面的编译能够顺利找到libusb库

  1. 设置环境变量export PKG_CONFIG_PATH=/home/wrt/testusb/libusb-1.0.6/install/lib/pkgconfig:$PKG_CONFIG_PATH 
  2. 查看设置是否正确echo $PKG_CONFIG_PATH

再编译liusb-compat-0.1.4

compat依赖于libusb编译结果,config需要指明libusb的install目录

<1>解压后在liusb-compat-0.1.4执行mkdir install:

<2>./configure --build=i686-linux --host=arm-hisiv600-linux-gnueabi --prefix=/home/wrt/testusb/libusb-compat-0.1.4/install

./configure --host=arm-hisiv500-linux-uclibcgnueabi --prefix=/home/wrt/R8_4GDongle/libusb-compat-0.1.4/install

在编译的过程中发现添加—build编译选项 编译不成功 所以去掉这个选项

//<3>exportPKG_CONFIG_PATH=/home/wrt/work/libusb-compat-//0.1.4/install/lib/pkgconfig

<4>make

<5>make install

把对应的so文件放到文件系统的/usr/lib目录就可以了。

编译usb-modeswitch

进入解压目录,cd usb-modeswitch-2.2.1

该文件夹没有提供,./configure工具,因此需要我们自己手动对Makefile文件进行修改。以下几项需要修改。

第一行增加ExportPKG_CONFIG_PATH=/home/wrt/R8_4GDongle/libusb-1.0.6/install/lib/pkgconfig

CC = arm-hisiv600-linux-gnueabi-gcc//使用交叉编译工具

INCLUDEDIR  = /home/wrt/libusb-1.0.6/install/include

LDFLAGS     = /home/wrt/libusb-1.0.6/install/lib

下面这一行是编译命令,添加-I、-L选项

$(CC) -o $(PROG) $(OBJS) $(CFLAGS) $(LIBS) $(LDFLAGS)

$(CC) -o $(PROG) $(OBJS) $(CFLAGS) $(LIBS) -I $(INCLUDEDIR) -L $(LDFLAGS) -static -pthread

下面可以通过make编译文件,但是在编译之前,需要修改一个环境变量。

exportPKG_CONFIG_PATH=/home/wrt/work/libusb-compat-0.1.4/install/lib/pkgconfig   //  修改环境变量

make  // 编译

make install

移植到板子上注意的事项:

usb_modeswitch.conf的配置

#weiNewMode=1

NoDriverLoading=1 Configuration for the usb_modeswitch package, a mode switching tool for

# USB devices providing multiple states or modes

#

# Evaluated by the wrapper script /usr/sbin/usb_modeswitch_dispatcher

#

# To enable an option, set it to "1", "yes" or "true" (case doesn't matter)

# Everything else counts as "disable"

# Disable automatic mode switching globally (e.g. to access the original

# install storage)

DisableSwitching=0

# Enable logging (results in a extensive report file in /var/log, named

# "usb_modeswitch_<interface-name>" and probably others

EnableLogging=0

# Optional increase of "delay_use" for the usb-storage driver; there are hints

# that a recent kernel default change to 1 sec. may lead to problems, particu-

# larly with USB 3.0 ports. Set this to at least 3 (seconds) in that case.

# Does nothing if the current system value is same or higher

#SetStorageDelay=4

# Huawei,E8372h-155

HuaweiAltModeGlobal=0

DefaultVendor= 0x12d1

DefaultProduct= 0x1f01

TargetVendor= 0x12d1

TargetProduct= 0x14dc

HuaweiNewMode=1

NoDriverLoading=1

EnableLogging=1

DetechStorageOnly=0

CheckSuccess=4

40-usb_modeswitch.rules文件末尾添加

ATTR{idVendor}=="12d1",ATTR{idProduct}=="1f01", RUN+="/usr/sbin/usb_modeswitch -W -c /home/app/usb_modeswitch.conf"

usb_modeswitch放在 use/sbin目录下

40-usb_modeswitch.rules该文件放在/etc/udev/rules.d目录下最后添加相应设备的执行。

ATTR{idVendor}=="12d1", ATTR{idProduct}=="1f01", RUN+="/usr/sbin/usb_modeswitch -w -c /home/usb_modeswitch.conf"

路径添加::::::

或者使用usb-modeswitch-data-20150115.tar中对应设备的文件(例如

华为E8372h-155的文件为12d1:1f01)执行下列命令-----

./usb_modeswitch -W -c 12d1\:1f01 &

参考:./usb_modeswitch -W -c 12d1\:1446 &

https://blog.csdn.net/jackjones_008/article/details/41750445

https://www.cnblogs.com/aaronLinux/p/7159660.html

https://www.cnblogs.com/gexin/p/7655056.html

usb_modeswitch移植到海思3531D平台(华为E8372h-155)相关推荐

  1. OpenCV开发笔记(七十四):OpenCV3.4.1+ffmpeg3.4.8交叉编译移植到海思平台Hi35xx平台

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/123696821 各位读者,知识无穷而人力有穷 ...

  2. 海思Hi3559A平台移植 opencv4.0.0

    原文:https://blog.csdn.net/xclshwd/article/details/85257117 海思Hi3559A平台移植 opencv4.0.0 2018年12月26日 09:5 ...

  3. 海思HI35xx平台软件开发快速入门之背景知识

    前言: 安防领域最近几年可谓暗流涌动,作为安防业的双寡头,大华股份与海康威视凭借行业的东风,两家公司的成长速度异常强劲,在国际市场上已经和应用厂家进行厮杀. 2015年两家公司双双晋升"全球 ...

  4. qt4.8.6移植到海思3531

    转载地址 : 1:点击打开链接 2:点击打开链接 3:点击打开链接 按照下面步骤运行,命令一样 刚刚移植完海思.趁新鲜,赶紧写博客记录一下. 刚换新公司,老公司用的平台都是三星的,对Qt等支持都非常好 ...

  5. RT3070驱动移植笔记 海思3515

    今天将rt3070wifi模块安装到海思3515开发板上,需要移植驱动程序.下面就移植过程做一下笔记 首先下载源码,可以到我的资源中下载http://download.csdn.net/detail/ ...

  6. 海思HI35xx平台软件开发快速入门之H264解码实例

    前言 H264视频编码技术诞生于2003年,至今已有十余载,技术相当成熟,它的优势在于有高的视频的压缩率,利用帧间和帧内预测(Estimation).变换(Transform)和反变换.量化(Quan ...

  7. mysql移植海思_live555 交叉编译移植到海思开发板

    1.首先到它的主页下载一个源码包: http://www.live555.com/liveMedia/public/ 我下载的是latest的,具体什么版本还真不清楚 2.放到linux目录下解压: ...

  8. 海思3559A平台4GB LPDDR配置方案

    注: 还有一篇关于 [海思3559av100平台 8GB LPDDR4内存适配 & 分配] https://blog.csdn.net/jzwjzw19900922/article/detai ...

  9. 海思系列平台编译器安装及配置

    海思系列平台编译器安装及配置 针对平台:hisi3559A / hisi3516DV300 / hisi3519A / hisi3531 / hisi3516AD / hisi3516CV300 / ...

最新文章

  1. Windows10~VS2019~OpenCV3.4.6配置
  2. oracle所有的乱码解决方案
  3. springmvc二十一:自定义类型转换器
  4. 天龙八部3d最新服务器,天龙八部3DIOS正版服务器整合互通公告
  5. python画散点图程序实例_【112】用python画散点图和直线图的小例子
  6. python多线程编程(5): 条件变量同步
  7. 手机厂商探路互联网:硬件高利润时代已成历史
  8. Redis高可用方案哨兵机制------ 配置文件sentinel.conf详解
  9. 关于JavaScript中cookie的用法例子
  10. oracle 空间详解,Oracle Spatial空间分析详解 | 学步园
  11. 《高质量程序设计指南---C++/C语言》 下载
  12. hdu4282 A very hard mathematic problem
  13. matlab仿真高尔顿正态分布源码,杂谈 | 正态分布为什么如此常见
  14. 容易的计算机科技核心期刊,计算机类容易中的期刊
  15. Linux系统图形界面,字符界面切换快捷键。启动图形界面服务。
  16. Python获取金山词霸每日一句
  17. TVB西游记2观音的眼泪化作金河送唐僧回长安
  18. 期货反向跟单--其实已经很快了
  19. 七个实用的分布式开源框架
  20. 前端(微信小程序)渐变色

热门文章

  1. android 性格测试 csdn,华为加密状态码查询脚本
  2. python3爬虫之二:爬取网页图片
  3. 平面设计中有哪些视觉引导的方法
  4. 体育馆场地管理系统1.0-2.0
  5. 安装算量选用哪款软件好?免费试用
  6. 微信小程序阶段总结一
  7. 江湖CMS框架改成百度UEditor富文本编辑器
  8. 利用 MSYS2 及osgEarth 构建三维地球模型(2) osgEarth 与 Qt的结合
  9. CAN转串口智能模块/CAN转232 CAN转485
  10. 用户手册 操作手册 区别