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

个性网站设计站长推荐

个性网站设计,站长推荐,注册公司的具体步骤,南宁建设工程造价信息网目录 libusb-1.0 > 1.0.9) were not met: libusb编译 配置及编译 安装 (libudev > 196) were not met: libudev的使用 names的修改 configure的修改 usb-utils的配置编译 总结 本文介绍usb-utils的编译。 libusb-1.0 > 1.0.9) were not met: …

   

目录

libusb-1.0 >= 1.0.9) were not met:       

libusb编译

配置及编译

安装

(libudev >= 196) were not met:

libudev的使用

names的修改

configure的修改

usb-utils的配置编译

总结


本文介绍usb-utils的编译。

libusb-1.0 >= 1.0.9) were not met:       

Index of /pub/linux/utils/usb/usbutils/

版本下载,此处以010版本为例子 usbutils-010/

./configure \--host=aarch64-linux-gnu \--enable-static \--disable-shared \--prefix=$PWD/install \--disable-system-libusb \  # 强制使用内置实现CC=aarch64-linux-gnu-gcc \CFLAGS="-static" \LDFLAGS="-static -lpthread "   

 报错误:

configure: error: Package requirements (libusb-1.0 >= 1.0.9) were not met:

libusb编译

配置及编译

Release v1.0.24: libusb 1.0.24 · libusb/libusb · GitHub

这里下载1.0.24版本

./configure --host=aarch64-linux-gnu \--prefix=/opt/libusb-aarch64-static \--enable-static \--disable-shared  --disable-udev

 readelf -h ./libusb/.libs/libusb-1.0.a  确认编译出的库为我们需要的aarch64

安装

 安装比较简单,通过make install即可,关键是记录安装的路径

 /bin/bash ../libtool   --mode=install /usr/bin/install -c   libusb-1.0.la '/opt/libusb-aarch64-static/lib'

这里安装路径包括了编译usb-utils需要的头文件和库

ls /opt/libusb-aarch64-static
include  lib
 

(libudev >= 196) were not met:

这个是最麻烦的。新版本的libudev集成到了systemd里面,而systemd的编译异常啰嗦。

libudev的使用

usbutils-010/names.c 使用libudev库,其他的代码没有使用libudev,此文件的作用如下:

  1. USB 标识符到名称的转换

    • 将 USB 规范中的各种数字代码转换为可读字符串:

      • 厂商ID → 厂商名称(如 0x0781 → "SanDisk")

      • 产品ID → 产品名称(如 0x5581 → "Ultra Fit USB 3.0")

      • 设备类/子类/协议 → 描述(如 Class 0x08 → "Mass Storage")

      • HID 描述符、国家代码、语言ID等

  2. 硬件数据库查询

    • 通过 libudev 的硬件数据库(hwdb)获取最新设备信息

    • 支持通过 modalias 模式匹配(如 usb:v0781p5581*

names的修改

 

注释掉和udev相关接口。

 

configure的修改

注释掉udev  libudev的检测

4758-4847 之间的全部删除掉。

usb-utils的配置编译

 

./configure \--host=aarch64-linux-gnu \--enable-static \--disable-udev \--disable-shared \--prefix=/opt/usbutils-aarch64-static \LIBUSB_CFLAGS="-I/opt/libusb-aarch64-static/include/libusb-1.0" \LIBUSB_LIBS="-L/opt/libusb-aarch64-static/lib -lusb-1.0" \CC=aarch64-linux-gnu-gcc \CFLAGS="-static " \LDFLAGS="-static -lpthread"

注意两个/opt/路径的设置,设置了编译usb-utils时需要的libusb的库文件和头文件。

至此,我们可以正常make出lsusb的命令,仅仅是看不到设备的解释,用于查询是否设备是否存在等都可以正常使用。

file lsusb
lsusb: ELF 64-bit LSB executable, ARM aarch64, version 1 (GNU/Linux), statically linked, BuildID[sha1]=558daf18e6f482378496e70ca08d5bbb8ab1caa2, for GNU/Linux 3.7.0, with debug_info, not stripped

总结

       相比较于前面i2cutils集成了依赖库源码,usb-utils并没有集成源码,导致交叉编译的工作量增加。同时依赖于libudev,而此库新版本集成到systemd中,导致编译异常麻烦。本文通过分析usb utils的功能,屏蔽掉不需要的部分。

       另外一种方式就是找libudev已经编译好的二进制文件。

http://www.dtcms.com/wzjs/23962.html

相关文章:

  • 昆明排名seo公司洛阳网站seo
  • 青海省网站建设哪家公司比较靠谱seo运营经理
  • 做调研有哪些网站小时seo百度关键词点击器
  • phpmysql网站开发项目式教程阳泉seo
  • 做前端网站考虑兼容分辨率西安网络推广营销公司
  • 湛江专业雷剧全集seo网络优化软件
  • 自己有网站 做app百度最新版app下载安装
  • 做传销一般是不是有网站做一个公司网站需要多少钱
  • 购物商城网站开发广州品牌营销策划公司排名
  • 个人域名做邮箱网站知乎seo排名的搜软件
  • 地方门户网站开发百度投诉中心24人工 客服电话
  • 台州seo快速排名长沙优化网站厂家
  • 北京软件app开发志鸿优化设计
  • 做网站哪种域名好记百度官网认证价格
  • 武汉百度推广狼雨的seo教程
  • 大连模板网站制作公司电话每日新闻简报
  • 如何攻击织梦做的网站方法线下推广
  • 上饶公司网站建设搜索引擎seo是什么意思
  • nba最新消息seo案例分析
  • 邮票上的化学史网站开发西安seo排名扣费
  • 旅游电商网站开发网络广告策划书案例
  • 专业网站建设哪里好百度pc端入口
  • 深圳企业做网站公seo优化便宜
  • 网站怎么做透明导航网页链接制作生成
  • 微信网站建设外包网站有哪些
  • wordpress 显示页码seo教程优化
  • 全平台响应式网站建设百度网站如何优化排名
  • 附近做网站的公司私域流量运营管理
  • 小程序模板与定制开发的区别seo技巧分享
  • 网站数字证书怎么做网络优化师