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

刷业务网站怎么做/手机百度网页版 入口

刷业务网站怎么做,手机百度网页版 入口,广告制作公司简介怎么写,中国装修网官方网站对于libusb库 的交叉编译,该项目难度并不大,但也有一些坑点。该文章目标是编译一套aarch64 Linux Debian嵌入式版本上可以运行的版本库,会用一些技巧来绕过正常的交叉编译,你问我为啥?因为交叉编译的时候有难解的问题&…

对于libusb库 的交叉编译,该项目难度并不大,但也有一些坑点。该文章目标是编译一套aarch64 Linux Debian嵌入式版本上可以运行的版本库,会用一些技巧来绕过正常的交叉编译,你问我为啥?因为交叉编译的时候有难解的问题,不是不能解决,而是代价相对qemu代价显得略大。老套路,先把linux桌面版搞好,然后 移植到嵌入式Linux Debian 板子上。

1 libusb简介

@1 why,为什么要搞一个libusb出来呢?

最开始的时候 是只有usb内核层的驱动的,但是随着 应用和linux 内核之间 兼容性的矛盾不断升级,慢慢衍生出了libusb这么个东西。接下来我们详细讲讲这是咋回事儿~。

当使用我们产品的客户有多个linux内核平台,有2.4的、2.6的、3.2的,4.9的,随着平台数量的增加,你的工作量线性的增加,而且最为蛋疼的是还有好多客户自定义的版本,每一次新环境,新平台你就增加一次工作量,天天不用干别的了,就编译吧。但这可不行,一个优秀的工程师怎么会把大把时间放在无意义的事情上呢,于是呢,就搞了libusb,以后大家都用这个,都兼容这个,这样就不用干那些没啥卵用的活儿了。就这样一个标准库诞生了。

@2 what,libusb是啥?

libusb是给应用软件开发和usb驱动协同操作(在底层读取usb内容)的功能时提供的库。它设计了一系列的外部API 为应用程序所调用,通过这些API应用程序可以操作硬件,这些API 调用了内核的底层接口,和kernel driver中所用到的函数所实现的功能相差不大,只是libusb更加接近USB规范。使得libusb的使用也比开发内核驱动相对容易的多。

@3 how,libusb怎么用?

直接在github上下载项目:GitHub - libusb/libusb library

然后 跟着下面的步骤 编译后生成libusb的静态库和动态库,用户层库,根据需要使用即可。

2 Linux 本地编译 & 交叉编译

2.1 Linux(ubuntu20.04)上libusb的编译

首先确保环境没有问题,需要提前安装:

sudo apt install -y make dh-autoreconf libudev-dev

之后在libusb项目当前目录下执行:

./autogen.sh
./configure
make
make DESTDIR=$PWD/out_x86_64 install

 这样就编译完了。生成文件内容为:

└── usr└── local├── include│   └── libusb-1.0│       └── libusb.h└── lib├── libusb-1.0.a├── libusb-1.0.la├── libusb-1.0.so -> libusb-1.0.so.0.3.0├── libusb-1.0.so.0 -> libusb-1.0.so.0.3.0├── libusb-1.0.so.0.3.0└── pkgconfig└── libusb-1.0.pc

2.2 aarch64交叉编译与移植

说明:这里分享两种方法,交叉编译和虚拟机编译,这种方式也适用于大部分的交叉编译项目。

@1 交叉编译方法

需要先安装交叉编译器,如下所示:

sudo apt install binutils-aarch64-linux-gnu-dbg binutils-aarch64-linux-gnu cpp-aarch64-linux-gnu \
g++-10-aarch64-linux-gnu g++-9-aarch64-linux-gnu g++-aarch64-linux-gnu g++ \
gcc-10-aarch64-linux-gnu-base gcc-9-aarch64-linux-gnu-base gcc-aarch64-linux-gnu \
pkg-config-aarch64-linux-gnu qemu-efi-aarch64 gcc arch-test

之后执行以下命令:

./configure --host=aarch64-linux-gnu --prefix=$PWD/out_aarch64/ \ 
CC=aarch64-linux-gnu-gcc CXX=aarch64-linux-gnu-g++ --disable-udev
make 
make install

 生成文件除了格式外和PC端都一样,搞定~~。

@qemu虚拟机编译方法

交叉编译器aarch64走了一遍,不通的原因在于缺少 libudev的支持,而再搞一个aarch64版本的libudev库比较麻烦,还要再下载源码编译啥的,省点事儿,咱直接就上虚拟机,搞一个aarch64的虚拟机,流程如下:

#创建一个虚拟fs文件系统
$sudo qemu-debootstrap --arch arm64 bullseye /mnt/data/arm64 http://deb.debian.org/debian/
#进入到文件系统
$sudo chroot /mnt/data/arm64/
#退出文件系统
$exit

之后 执行 $sudo chroot /mnt/data/arm64/,进入到 虚拟机中,接下来执行和ubuntu PC端一样的流程,详细 如下所示:

./autogen.sh
./configure
make
make DESTDIR=$PWD/out_aarch64 install

 生成文件除了格式外和PC端都一样,搞定~~。

3 usb设备节点无root读写权限问题

使用lsusb找到对应的设备,如下所示:

XXX/etc/udev/rules.d$ lsusb
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 038: ID 093a:2510 Pixart Imaging, Inc. Optical Mouse
Bus 001 Device 039: ID 413c:2113 Dell Computer Corp. Dell KB216 Wired Keyboard
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

记录下对应的idVendor和idProduct,比如第一行的idVendor和idProduct分别为:1d6b和0003。

Linux修改USB设备节点权限

cd /etc/udev/rules.d/
vim XXX.rules

内容如下:

SUBSYSTEM=="usb",ATTRS{idVendor}=="1d6b", ATTRS{idProduct}=="0003",MODE="0666"

之后执行命令:

udevadm control --reload-rules
udevadm trigger

否则不生效。

http://www.lbrq.cn/news/1090927.html

相关文章:

  • 免费影视网站建设/舆情分析网站
  • 南京做网站优化的企业排名/seo 重庆
  • 网站上传wordpress/游戏推广员是做什么的
  • p2p理财网站开发框架/一站式软文发布推广平台
  • 天津建站平台/湖北网站建设制作
  • 宁夏住房和建设厅官方网站/新app推广去哪里找
  • 那个网站专门做婚纱相册/网络推广自学
  • python做网站缺点/seo课堂
  • 长沙个人做网站排名/优化防控措施
  • 网站建设入门/如何做好一个网站
  • 劳力士手表价格及图片 官方网站/亚马逊跨境电商
  • 特效素材网站/什么样的人适合做策划
  • 网站单子/找索引擎seo
  • 中职网站建设与管理/网络营销介绍
  • 广州网站建设广州网络推广公司好/国外网站推广平台有哪些?
  • 找别人做网站/如何做谷歌seo推广
  • 深圳外包网站制作公司/网络推广推广外包服务
  • 长沙网站开发湖南微联讯点不错/做公司网站
  • 自己如何做公司网站/潍坊seo外包平台
  • 网站建设哪个部门管理/百度搜索引擎下载
  • 事业单位建设网站/百度seo关键词工具
  • 网站 网络架构/seo课程排行榜
  • 百度资料怎么做网站/电子商务网站建设教程
  • 做漫画网站/互联网推广引流公司
  • 如何做网站优化推广/百度手机浏览器下载
  • 可靠的政府网站建设公司/销售crm客户管理系统
  • 怎么做提高网站排名/电商培训班一般多少钱一个月
  • 凌云网招聘信息/免费seo快速排名工具
  • 100个最好的微信小程序/西安seo优化推广
  • 做一家视频网站/免费html网站制作成品
  • 2025年7月26日训练日志
  • GIS地理信息系统建设:高精度3D建模
  • 图解网络-小林coding笔记(持续更新)
  • golang实现一个定时引擎,功能包括按照corntab的时间任务实时增加、修改、删除定时任务
  • 全球化2.0 | 云轴科技ZStack亮相阿里云印尼国有企业CXO专家活动
  • Android 修改系统时间源码阅读