I.MX6 android shutdown 内核崩溃

/****************************************************************************
 *                  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;
        ......
    }

 

时间: 2024-10-24 10:08:23

I.MX6 android shutdown 内核崩溃的相关文章

I.MX6 Android shutdown shell command

/******************************************************************************* * I.MX6 Android shutdown shell command * 说明: * 想在I.MX6上执行shell关机命令,不过效果貌似不是很好,开关键多按两下又亮了. * * 2016-7-25 深圳 南山平山村 曾剑锋 ****************************************************

I.MX6 android 移除shutdown功能

/************************************************************************ * I.MX6 android 移除shutdown功能 * 说明: * 有时候,我们可能会只是不需要android中的shutdown功能. * * 2016-3-17 深圳 南山平山村 曾剑锋 ***********************************************************************/ cat

I.MX6 Android 5.1 快速合成系统

/**************************************************************************** * I.MX6 Android 5.1 快速合成系统 * 说明: * Android源代码编译系统是一件很痛苦的事,主要是在修改了一些很小的东西,但 * 要重新编译,要等很久才能编译完,如使用了mmm编译完,只是要打包一下system.img * 就行了,没必要去做那么多检查编译工作,所以这里跟一下系统合成原来,再精简 * 一下,做一个快速合

I.MX6 Android i2c-tools porting

/************************************************************************** * I.MX6 Android i2c-tools porting * 说明: * 判断I2C总线设备是否存在,每次都去查dmesg,实在是烦了,于是还是移植 * 一个i2c-tools比较好,不用翻那长长内核信息. * * 2016-3-31 深圳 南山平山村 曾剑锋 **************************************

I.MX6 Android 5.1 纯Linux、U-Boot编译

/***************************************************************************** * I.MX6 Android 5.1 纯Linux.U-Boot编译 * 说明: * 单纯编译一下Linux内核和U-Boot这部分代码,用于测试用. * * 2017-5-12 台湾 中和区 曾剑锋 *********************************************************************

I.MX6 android 禁止低电量自动关机

/************************************************************************ * I.MX6 android 禁止低电量自动关机 * 说明: * 记录如何禁止Android低电量自动关机的功能. * * 2016-3-18 深圳 南山平山村 曾剑锋 ***********************************************************************/ 一.参考文章: android低电

在Ubuntu上编译 emulat Android avd内核源代码(Linux Kernel)

因为我没有真机的环境  所以需要在模拟器中进行模拟进行,所以要下载支持模拟器的源代码版本,而goldfish这个源代码版本就是专门为模拟器环境而提供的. The goldfish project contains the kernel sources for the emulated platforms. 一.首先,到 git clone https://android.googlesource.com/kernel/goldfish.git下载Linux Kernel for Android

root技术背后android手机内核提取及逆向分析

root技术背后android手机内核提取及逆向分析       安卓ROOT技术背景:      Android手机获得Root权限,可以让/system和/data分区获得读写的权限.这两个分区的权限配置,一般在根分区的init.rc文件中,修改这个文件可永久获得root权限.众所周知,市面上绝大部分的Android手机文件系统有三个分区,分别是/,/system,/data.根分区(/)是打包为ramdisk.img后,再与kernel的zImage打包为boot.img. boot.im

使用Kdump检查Linux内核崩溃

让我们先看一下 kdump 的基本使用方法,和 kdump/kexec 在内核中是如何实现. kdump 是获取崩溃的 Linux 内核转储的一种方法,但是想找到解释其使用和内部结构的文档可能有点困难.在本文中,我将研究 kdump 的基本使用方法,和 kdump/kexec 在内核中是如何实现. kexec 是一个 Linux 内核到内核的引导加载程序,可以帮助从第一个内核的上下文引导到第二个内核.kexec 会关闭第一个内核,绕过 BIOS 或固件阶段,并跳转到第二个内核.因此,在没有 BI