当前位置: 首页 > news >正文

OrangePi Zero 3学习笔记(Android篇)5 - usbutils编译(更新lsusb)

目录

1. Ubuntu中编译

2. AOSP编译

3. 去掉原来的配置

3. 打包

4. 验证lsusb


在Ubuntu中,lsusb的源代码源自usbutils。而OrangePi Zero 3中lsusb的位置可以看文件H618-Android12-Src/external/toybox/Android.bp,

"toys/other/lsusb.c",

1. Ubuntu中编译

  • 安装libudev
sudo apt install libudev-dev
  • 执行autogen
./autogen.sh
  • 执行configure
./configure
  • 执行make和make clean
make
make clean

2. AOSP编译

将usbutils整个文件夹拷贝到H618-Android12-Src/external/内,新建一个android.bp

cc_binary {name: "lsusb",//proprietary: true,//product_specific: true,srcs: ["lsusb.c","lsusb-t.c","desc-defs.c","desc-dump.c","names.c","sysfs.c","usbmisc.c",],include_dirs: [ "external/libusb/include/libusb",],local_include_dirs: ["usbhid-dump",],shared_libs: ["libudev","libusb",],
}

拷贝eudev里面的libudev.h和udev.h到当前文件夹,然后再这个文件夹内新建一个lib文件夹,把上一步生成的libudev.so拷贝到这个文件夹内。

编译这个模块

mmm external/usbutils-017/

错误信息:

  • error: unused parameter 'indent' [-Werror,-Wunused-parameter]

这是因为这些函数的参数没有使用到,分别找到这几个函数,把这个参数利用起来,例如:

static void desc_snowflake_dump_uac2_clk_src_bmattr(unsigned long long value,unsigned int indent)
{printf(" %s clock %s, indent %d\n",uac2_clk_src_bmattr[value & 0x3],(value & 0x4) ? uac3_clk_src_bmattr[3] : "", indent);
}
  • external/usbutils-017/usb-spec.h:91:9: error: missing field 'termt' initializer[-Werror,-Wmissing-field-initializers]

找到对应位置,将{ NULL },改为{ NULL, 0, "" },

这个文件里面其他位置也是这样改。

3. 去掉原来的配置

把external/toybox/Android.bp里面的文件关于lsusb部分去掉,以“lsusb”为关键字搜一下

"toys/other/lsusb.c",//"lsusb",

注意,这里lsusb.c还是要编译,不然会提示错误,找不到lsusb_main

3. 打包

在device/softwinner/apollo/apollo_p2.mk文件中添加

PRODUCT_PACKAGES += lsusb

4. 验证lsusb

console:/ $ lsusb
unable to initialize usb specBus 001 Device 001: ID 1d6b:0002 Linux 5.4.125 ehci_hcd EHCI Host Controller
Bus 002 Device 001: ID 1d6b:0002 Linux 5.4.125 ehci_hcd EHCI Host Controller
Bus 003 Device 001: ID 1d6b:0002 Linux 5.4.125 ehci_hcd EHCI Host Controller
Bus 003 Device 002: ID 0403:6011 FTDI FT4232H MiniModule
Bus 004 Device 001: ID 1d6b:0001 Linux 5.4.125 ohci_hcd OHCI Host Controller
Bus 005 Device 001: ID 1d6b:0001 Linux 5.4.125 ohci_hcd OHCI Host Controller
Bus 006 Device 001: ID 1d6b:0001 Linux 5.4.125 ohci_hcd OHCI Host Controller

相关文章:

  • DVWA靶场Cryptography模块medium不看原码做法
  • kubectl top 查询pod连接数
  • Go基于plugin的热更新初体验
  • 【赵渝强老师】TiDB SQL层的工作机制
  • 数据分析2
  • 物联网、数字化工厂与智能智慧技术未来发展方向
  • 光的本质(以暗物质维度粒子为介质的能量传导)
  • Kubernetes应用发布方式完整流程指南
  • Java代理
  • ERP学习(二):用友软件产品之系统管理
  • 网络原理(Java)
  • 文生视频模型速读:LTX-Video
  • [ctfshow web入门] web67
  • SolidWork-2023 鼠標工程
  • 宝塔服务安装使用的保姆级教程
  • 客户端建立一个连接需要占用客户端的端口吗
  • C++学习-骑士巡游问题
  • 独立按键控制LED
  • C++(6):逻辑运算符
  • 基于C语言的TCP通信测试程序开发指南
  • 德国将不再公布对乌克兰军事支持的细节
  • 乌外长:乌方准备无条件停火至少30天
  • 习近平圆满结束对俄罗斯国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • 央行:当前我国债券市场定价效率、机构债券投资交易和风险管理能力仍有待提升
  • 吉林市马拉松5月18日开赛,奖牌、参赛服公布
  • 比特币价格时隔三个月再度站上10万美元