全志A133 android10 调试vibrator震动马达

一,前提条件

  1. 全志使用的马达配置为上电震动,下电停止,需测试硬件是否正常。
  2. 马达供电最好为独立供电,避免干扰。

二,适配步骤

1. dts中增加马达配置

motor_para {compatible = "allwinner,sunxi-vibrator";		// 对应驱动中的 .compatiblemotor_used = <1>;								// 标示使用motormotor_shake = <0>;status = "okay";								// 标示使能motormotor-supply = <&reg_ldoio1>;					// 标示motor使用哪路电源motor_ldo_voltage = <3300>;						// 标示motor的供电电压,单位mV};

2. 使能CONFIG_AW_VIBRATOR

在menuconfig中,使能CONFIG_AW_VIBRATOR为m,然后执行./build.sh savecofig,保存配置。
在这里插入图片描述

3. 编译longon

编译完成后,在out目录可以可以找到相对应的马达驱动。

4. 增加驱动加载

Android方案支持,增加驱动加载,在对应方案中的init.input.rc中增加马达驱动的加载,并给予节点权限。

 on bootinsmod /vendor/lib/modules/sunxi-vibrator.kochown system system /sys/class/vibrator/onchmod 0660 /sys/class/vibrator/on

5. 增加vibratorhal编译

在方案对应的mk文件中,增加如下语句:

# vibrator hal
PRODUCT_PACKAGES += \android.aw.hardware.vibrator-service

6. 添加selinux权限

  1. 配置hal服务的权限,在device/softwinner/common/sepolicy/vendor/file_contexts配置,默认已配置;
#vibrator
/vendor/bin/hw/android\.aw\.hardware\.vibrator-service u:object_r:hal_vibrator_default_exec:s0
  1. 配置节点权限类型,在 device/softwinner/common/sepolicy/vendor/genfs_contexts 配置,默认已配置;
#vibrator
genfscon sysfs /class/vibrator/on u:object_r:sysfs_vibrator:s0

三,调试

适配后,无法震动,请参考下列步骤进行调试。

1. 打开震动

在设置–>声音,中选择触摸时震动,打开;

2. 确定是否存在调试节点:

/sys/class/vibrator/on1.adb或者串口,通过手动写值的方式,进行调试,单位为ms,最小值为100,最大值为15000,看是否会震动;
2.如果不震动,检查写入值时,对应的电源配置引脚是否上电,如未上电,请检查配置是否正确,如震动,则说明linux相关是正常的

3. 触摸按钮,正常震动时,可看到logcat中的相关打印:

vibra_on: 200   //如有上述打印,则震动应正常。
//如果是类似下面的报错,则说明为节点权限问题
open /sys/class/vibrator/on failed, errno=%d(%s)\n

4. 解决办法:

  1. 通过ls -lZ查看节点权限是否配置为sysfs_vibrator。
console:/sys/class/vibrator # ls -lZ
total 0
-rw-r--r-- 1 root root u:object_r:sysfs_vibrator:s0  4096 2023-10-31 09:52 on
console:/sys/class/vibrator #
  1. selinux权限正常,则可通过ls -l查看系统权限是否正常,节点权限是否为system类型,660权限;
console:/sys/class/vibrator # ls -l
total 0
-rw-rw-r-- 1 system system 4096 2023-10-31 09:52 on
console:/sys/class/vibrator #
  1. 检查适配步骤中的init.input.rc是否正常修改权限,通过也可通过下列命令修改可访问权限后,再看是否OK。
chown system:system /sys/class/vibrator/on
chmod 660 /sys/class/vibrator/on

一般排查到这里是可以正常使用的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/13430.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java工厂模式示例代码

工厂模式是一种创建型设计模式&#xff0c;它提供了一种将对象的创建与使用分离的方法。在工厂模式中&#xff0c;我们通过工厂类来创建对象&#xff0c;而不是直接在客户端代码中使用 new 关键字来创建对象。以下是一个简单的Java工厂模式示例代码&#xff1a; 产品接口 首先…

BGP实验:联邦和发射器实验

BGP实验&#xff1a;联邦和发射器实验 一、实验拓扑 二、实验要求及分析 实验要求&#xff1a; 1、AS1存在两个环回&#xff0c;一个地址为192.168.1.0/24&#xff0c;该地址不能再任何协议中宣告&#xff1b; ​ AS3存在两个环回&#xff0c;一个地址为192.168.2.0/24&…

解决ModuleNotFoundError: No module named ‘open_clip‘问题

在使用stable diffusion大模型时&#xff0c;添加一些模型后启动df页面报错&#xff1a;ModuleNotFoundError: No module named open_clip 使用 pip install open_clip命令下载失败&#xff0c;报错&#xff1a; Looking in indexes: https://mirrors.aliyun.com/pypi/simple…

Redis【B站面试题】

前言 2023-07-27 22:44:59 出自B站 灰灰的Java面试 Redis Redis为什么快&#xff1f; 1.纯内存KV操作 Redis的操作都是基于内存的&#xff0c;CPU不是 Redis性能瓶颈,&#xff0c;Redis的瓶颈是机器内存和网络带宽。 在计算机的世界中&#xff0c;CPU的速度是远大于内存的速…

Java技术深度解析:高级面试问题与精粹答案(二)

Java 面试问题及答案 1. 什么是Java的垃圾回收机制&#xff1f;它是如何工作的&#xff1f; 答案&#xff1a; Java的垃圾回收机制&#xff08;Garbage Collection&#xff0c;GC&#xff09;是Java运行时环境&#xff08;JRE&#xff09;中的一个功能&#xff0c;用于自动管…

[CocosCreator]Android的增加AndroidX的动态权限

欢迎喜欢或者从事CocosCreator开发的小伙伴请加入我的大家庭CocosCreator游戏开发Q群:26855530 1.首先增加你需要申请的权限,修改:AndroidManifest.xml: <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas…

深度学习之基于TensorFlow人脸表情识别

欢迎大家点赞、收藏、关注、评论啦 &#xff0c;由于篇幅有限&#xff0c;只展示了部分核心代码。 文章目录 一项目简介 二、功能三、系统四. 总结 一项目简介 一、项目背景 人脸表情识别是计算机视觉领域的重要研究方向之一&#xff0c;它在人机交互、情感分析、安全监控等领…

代码随想录35期Day48-Java

Day48题目 LeetCode121买股票的最佳时机1 核心思想:可以使用贪心,选择左边最小的和右边最大的,也可以动态规划,需要保存是否持有股票的状态,dp[i][0]表示第i天,不持有股票,dp[i][1]表示第i天持有 class Solution {public int maxProfit(int[] prices) {int[][] dp new int[…

python中异步io简单样例

目录 一、异步IO简单说明 二、代码样例 一、异步IO简单说明 当进行异步 IO 操作时&#xff0c;程序不会因为等待 IO 操作完成而阻塞&#xff0c;而是可以在等待过程中继续执行其他任务&#xff0c;从而提高了程序的并发性能和响应速度。这是因为异步 IO 操作利用了操作系统底层…

Java 变量和作用域:理解变量的声明、初始化及其作用域

在Java编程语言中&#xff0c;变量和作用域是两个核心概念。理解变量的声明、初始化以及它们的作用域对于编写健壮且高效的代码至关重要。 变量的声明与初始化 变量的声明 在Java中&#xff0c;变量的声明指的是定义变量的名称和类型。在Java中&#xff0c;变量声明的一般语…

ESP32开发——关于ESP32TimerInterrupt库的例程分析

最近在学习嵌入式开发的内容&#xff0c;正好有一个开发任务涉及到对于定时器中断的使用&#xff0c;今天正好找到了这个相关的库&#xff1a;ESP32TimerInterrupt ESP32TimerInterrupt库的下载链接&#xff08;适用于Arduino IDE&#xff09; 进入到这个地址后直接下载该库的…

ubuntu使用记录——如何使用wireshark网络抓包工具进行检测速腾激光雷达的ip和端口号

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言wireshark网络抓包工具1.wireshark的安装2.wireshark的使用3.更改雷达ip 总结 前言 Wireshark是一款备受赞誉的开源网络协议分析软件&#xff0c;其功能之强大…

简述MyBatis中#{}引用和${}引用的区别

各位大佬光临寒舍&#xff0c;希望各位能赏脸给个三连&#xff0c;谢谢各位大佬了&#xff01;&#xff01;&#xff01; 目录 1.有无预编译 优点 缺点 2.SQL执行的快慢 3.能否被SQL注入 4.参数输入方式 5.总结 1.有无预编译 #{}是有预编译的而${}是没有预编译的&…

LiveGBS流媒体平台GB/T28181用户手册-服务器概览:通道信息、负载信息、CPU使用、存储使用、带宽使用(Mbps)、内存使用

LiveGBS用户手册-服务器概览&#xff1a;通道信息、负载信息、CPU使用、存储使用、带宽使用&#xff08;Mbps&#xff09;、内存使用 1、服务器概览1.1、通道信息1.2、负载信息1.2.1、信息说明1.2.2、会话列表 1.3、CPU使用1.4、存储使用1.5、带宽使用&#xff08;Mbps&#xf…

15:00面试,15:08出来,面试问的有点变态。。。。

&#x1f345; 视频学习&#xff1a;文末有免费的配套视频可观看 &#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 从小厂出来&#xff0c;没想到在另一家公司又寄了。 到这家公司开始上班&#xff0c;加班是每天…

C语言查漏补缺学习【精简版】

1.scanf函数 scanf&#xff08;"%d %d"&#xff09;//1 2 scanf("price%d %d") //price1 2 // 意思就是scanf函数中&#xff0c;格式是什么&#xff0c;就要对应的输入什么&#xff0c;不然读取不到输入的变量2.常量&#xff1a;const int AMOUNT 100; …

github下载代码

clone代码 git clone https://<your_token>github.com//.git 设置URL git remote set-url origin https://<your_token>github.com//.git 设置github本地ip https://juejin.cn/post/7350880189836918820?searchId202405191828091DB64DD476DF0AEC7442

掌握Edge浏览器的使用技巧

导言&#xff1a; Edge浏览器是微软推出的一款现代化、高效的网络浏览器。它不仅提供了基本的浏览功能&#xff0c;还具备了许多强大的特性和技巧&#xff0c;可以帮助用户更好地利用浏览器进行工作和娱乐。本文将介绍一些Edge浏览器的使用技巧&#xff0c;帮助读者更好地掌握这…

阿里云数据库 SelectDB 版全面商业化,开启现代化实时数据仓库的全新篇章

2024 年 5 月 21 日&#xff0c;由阿里云联合飞轮科技共同举办的「阿里云数据库 SelectDB 版商业化产品发布会」于线上召开。阿里巴巴集团副总裁、阿里云数据库产品事业部负责人李飞飞宣布&#xff0c;阿里云数据库 SelectDB 版在中国站及国际站全面发布&#xff0c;正式开启商…