I.MX6 android shutdown 内核崩溃

简介: /**************************************************************************** * I.MX6 android shutdown 内核崩溃 * 说明: * 本文主要是记录解决I.MX6的关机会进入halt模式,导致内核崩溃。
/****************************************************************************
 *                  I.MX6 android shutdown 内核崩溃
 * 说明:
 *     本文主要是记录解决I.MX6的关机会进入halt模式,导致内核崩溃。
 *
 *                                        2016-3-24 深圳 南山平山村 曾剑锋
 ***************************************************************************/

一、参考文章:
    android 关机 流程分析 
        http://blog.chinaunix.net/uid-24227137-id-3248111.html

二、 现象:
    SysRq : Emergency Remount R/O
    EXT4-fs (mmcblk0p4): re-mounted. Opts: (null)
    EXT4-fs (mmcblk0p6): re-mounted. Opts: (null)
    Emergency Remount complete
    System halted.
    BUG: soft lockup - CPU#1 stuck for 23s! [Thread-88:3327]
    Modules linked in:
    
    Pid: 3327, comm:            Thread-88
    CPU: 1    Not tainted  (3.0.35 #617)
    PC is at machine_halt+0x8/0xc
    LR is at smp_send_stop+0x9c/0xc4
    pc : [<c004d7dc>]    lr : [<c0052f98>]    psr: 60000013
    sp : d0e53e88  ip : 00000000  fp : 78393c6c
    r10: 00000000  r9 : d0e52000  r8 : c004ca84
    r7 : 00000000  r6 : 4321fedc  r5 : 28121969  r4 : 4321fedc
    r3 : 00000001  r2 : 00000001  r1 : 00000000  r0 : 00000001
    Flags: nZCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
    Control: 10c53c7d  Table: 24fa804a  DAC: 00000015
    
    PC: 0xc004d75c:
    d75c  e5843004 eaffffda eb01b99d e3500000 1affffed e5973004 e12fff33 e10f3000
    d77c  e3130080 1a000003 f1080080 eaffffd4 eb19c101 eaffffe0 e59f0018 e3a010fa
    d79c  eb0101fd f1080080 eaffffcd c06dccf4 c0a0ce64 c09886b4 c085477c e1a0200d

三、 解决方法:
    cat kernel/sys.c
    /*
     * Reboot system call: for obvious reasons only root may call it,
     * and even root needs to set up some magic numbers in the registers
     * so that some mistake won't make this reboot the whole machine.
     * You can also set the meaning of the ctrl-alt-del-key here.
     *
     * reboot doesn't sync: do that yourself before calling this.
     */
    SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
            void __user *, arg)
    {
        ......
        //if ((cmd == LINUX_REBOOT_CMD_POWER_OFF) && !pm_power_off)
        //    cmd = LINUX_REBOOT_CMD_HALT;
        ......
    }

 

目录
相关文章
|
7月前
|
Web App开发 小程序 前端开发
【产品上新】小程序新内核来了!提升安卓浏览器性能,支持WebRTC
【产品上新】小程序新内核来了!提升安卓浏览器性能,支持WebRTC
128 10
|
7月前
|
Linux Android开发
Android 正常运行所需的一系列 Linux 内核接口
Android 正常运行所需的一系列 Linux 内核接口
97 0
|
15天前
|
存储 Linux API
深入探索Android系统架构:从内核到应用层的全面解析
本文旨在为读者提供一份详尽的Android系统架构分析,从底层的Linux内核到顶层的应用程序框架。我们将探讨Android系统的模块化设计、各层之间的交互机制以及它们如何共同协作以支持丰富多样的应用生态。通过本篇文章,开发者和爱好者可以更深入理解Android平台的工作原理,从而优化开发流程和提升应用性能。
|
1月前
|
Java Linux Android开发
深入探索Android系统架构:从Linux内核到应用层
本文将带领读者深入了解Android操作系统的复杂架构,从其基于Linux的内核到丰富多彩的应用层。我们将探讨Android的各个关键组件,包括硬件抽象层(HAL)、运行时环境、以及核心库等,揭示它们如何协同工作以支持广泛的设备和应用。通过本文,您将对Android系统的工作原理有一个全面的认识,理解其如何平衡开放性与安全性,以及如何在多样化的设备上提供一致的用户体验。
|
6月前
|
开发工具 Android开发 开发者
Android Studio中两个让初学者崩溃菜单
Android Studio中两个让初学者崩溃菜单
58 0
|
7月前
|
Linux 编译器 开发工具
Android内核的编译过程
Android内核的编译过程
87 0
|
存储 Linux Shell
【Android 逆向】Android 系统文件分析 ( /system/ 系统命令和系统应用数据目录 | /system/app/ 系统应用目录 | sys Linux 系统内核文件目录 )
【Android 逆向】Android 系统文件分析 ( /system/ 系统命令和系统应用数据目录 | /system/app/ 系统应用目录 | sys Linux 系统内核文件目录 )
443 0
【Android 逆向】Android 系统文件分析 ( /system/ 系统命令和系统应用数据目录 | /system/app/ 系统应用目录 | sys Linux 系统内核文件目录 )
|
5月前
|
消息中间件 Android开发 开发者
🔍深度剖析Android内存泄漏,让你的App远离崩溃边缘,稳如老狗!🐶
【7月更文挑战第28天】在 Android 开发中,内存管理至关重要。内存泄漏可悄无声息地累积,最终导致应用崩溃或性能下滑。它通常由不正确地持有 Activity 或 Fragment 的引用引起。常见原因包括静态变量持有组件引用、非静态内部类误用、Handler 使用不当、资源未关闭及集合对象未清理。使用 Android Studio Profiler 和 LeakCanary 可检测泄漏,修复方法涉及使用弱引用、改用静态内部类、妥善管理 Handler 和及时释放资源。良好的内存管理是保证应用稳定性的基石。
96 4
|
7月前
|
缓存 算法 Java
Linux内核新特性年终大盘点-安卓杀后台现象减少的背后功臣MGLRU算法简介
MGLRU是一种新型内存管理算法,它的出现是为了弥补传统LRU(Least Recently Used)和LFU(Least Frequently Used)算法在缓存替换选择上的不足,LRU和LFU的共同缺点就是在做内存页面替换时,只考虑内存页面在最近一段时间内被访问的次数和最后一次的访问时间,但是一个页面的最近访问次数少或者最近一次的访问时间较早,可能仅仅是因为这个内存页面新近才被创建,属于刚刚完成初始化的年代代页面,它的频繁访问往往会出现在初始化之后的一段时间里,那么这时候就把这种年轻代的页面迁移出去
|
7月前
|
Linux Android开发
Android 内核关闭CAN 串口设备回显功能
Android 内核关闭CAN 串口设备回显功能
54 0