【rk3288】系统插入OTG后不休眠,拔掉会进入深度休眠

本文针对RK3288平台上的Android5.1系统,探讨了深度睡眠功能导致的问题,并提供了修改内核代码的具体方法,即将PM_SUSPEND_MEM改为PM_SUSPEND_STANDBY,以实现earlysuspend而非深度睡眠。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

环境:rk3288

系统:android 5.1.1

/*

说明:在进行cat /sys/power/state的时候只有freeze 和mem ,

其中mem为linux中挂起到内存(深度睡眠),但是内核里面并没有on唤醒功能,

所以建议关掉深度睡眠功能,只进行early suspend,

方法:在kernel/kernel/power/suspend.c 中将PM_SUSPEND_MEM改为PM_SUSPEND_STANDBY

*/

【解决方法】

修改路径:android5.1/kernel/kernel/power/suspend.c

109 int suspend_valid_only_mem(suspend_state_t state)

110 {

111 //start-D01101 set sleep state. 2018-11-09

112 //return state == PM_SUSPEND_MEM;

113 return state == PM_SUSPEND_STANDBY;

114 //end-D01101 set sleep state. 2018-11-09

115 }

【参考】

链接1:http://dev.t-firefly.com/thread-2258-1-1.html

链接2:https://www.linuxidc.com/Linux/2012-07/64353.htm

 

<think>好的,我需要解决用户关于Android 7.1 RK3288系统插入USB设备时触发的广播名称的问题。首先,用户提到系统版本是Android 7.1,芯片是RK3288,所以需要确认这个特定环境下USB设备的广播行为。 根据我的知识,Android系统中USB设备的插拔通常会触发系统广播。常见的广播包括`ACTION_USB_DEVICE_ATTACHED``ACTION_USB_ACCESSORY_ATTACHED`。过,同版本的Android可能会有差异,特别是在定制系统RK3288上,厂商可能有修改。 接下来,我需要查阅相关资料。用户提供的引用中有提到RK3399RK3288的调试笔记,以及Android官方文档。引用[1]提到触摸屏的调试,引用[3]涉及dts配置,可能直接相关。而引用[2]讨论OTG功能导致设备休眠的问题,虽然没有直接回答广播名称,但说明USB设备插入会触发系统行为,可能需要注册广播接收器。 根据Android官方文档,当USB设备连接时,系统会发送`android.hardware.usb.action.USB_DEVICE_ATTACHED`广播。但需要设备支持USB Host模式,并且应用需要在清单文件中声明intent-filter,或者动态注册接收器。对于RK3288这类定制系统,可能存在厂商特定的广播,但通常遵循标准行为。 过,用户的问题特别提到RK3288Android 7.1,是否有特殊处理?可能需要查看Rockchip的文档或内核配置。例如,引用[3]中的dts配置,可能涉及硬件相关的设置,但广播名称一般由Android框架决定,而非内核。 另外,实际测试方法:在应用中注册广播接收器,监听常见的USB相关action,然后插入USB设备查看日志。或者检查系统日志(logcat)当插入USB设备时输出的广播信息。 总结,标准情况下,广播应为`android.hardware.usb.action.USB_DEVICE_ATTACHED`,但需确认是否有厂商自定义的广播,或是否需要权限声明。同时,应用需要声明USB权限或在清单中注册接收器。</think>在Android 7.1 RK3288系统中,插入USB设备时会触发以下系统广播: 1. **标准USB设备插入广播** 系统默认会发送$android.hardware.usb.action.USB\_DEVICE\_ATTACHED$广播[^1]。该广播需要配合USB设备权限声明使用: ```xml <!-- AndroidManifest.xml --> <intent-filter> <action android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED"/> </intent-filter> <meta-data android:name="android.hardware.usb.action.USB_DEVICE_ATTACHED" android:resource="@xml/device_filter"/> ``` 2. **Rockchip平台特有行为** 在RK3288等定制平台上,可能额外触发$android.intent.action.MEDIA\_MOUNTED$广播(适用于存储类设备),但需注意同USB设备类型(如HID、U盘、OTG设备)可能触发同的广播[^3]。 3. **广播接收建议** 建议通过动态注册广播接收器捕获实时事件: ```java // Java代码示例 IntentFilter filter = new IntentFilter(); filter.addAction(UsbManager.ACTION_USB_DEVICE_ATTACHED); filter.addAction(Intent.ACTION_MEDIA_MOUNTED); registerReceiver(usbReceiver, filter); ``` 可通过以下命令实时观察广播: ```bash adb logcat | grep "BroadcastQueue" ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值