全志A133 android10 调试vibrator震动马达

一,前提条件

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

二,适配步骤

1. dts中增加马达配置

motor_para {
        compatible = "allwinner,sunxi-vibrator";		// 对应驱动中的 .compatible
        motor_used = <1>;								// 标示使用motor
        motor_shake = <0>;
        status = "okay";								// 标示使能motor
        motor-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 boot
      insmod /vendor/lib/modules/sunxi-vibrator.ko
      chown system system /sys/class/vibrator/on
      chmod 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/on

1.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

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

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值