android 死机调试

在调试Android设备死机问题时,最初认为可能是硬件故障,但发现部分设备正常运行。通过对比旧内核,确认问题出在软件上。经过分析,错误发生在电压调节器的相关代码被屏蔽,导致死机。通过对linux内核中regulator模块的源码比较,发现相关函数#if 0被错误地更改为#if 1,从而禁用了电压设置和获取的功能,修正后解决了问题。

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

最近调试了一个死机问题,错误打印如下,刚开始怀疑是硬件问题,因为有40%的机器是正常工作的,剩下的60%机器死机时长也是不尽相同。后来发现更换到旧的内核去编译就是正常的,所以确认是软件问题

Starting kernel ...

 
[    0.643128] aw_pm_init: not support super standby.  
[    0.872894] sw_ahci sw_ahci.0: SATA power enable do not exist!!
[    0.883294] can't get item for emac_power gpio !
[    1.408658] rtc_hw_init(416) err: set clksrc to external losc failed! rtc time will be wrong
[    1.418207] sunxi_rtc_gettime(34): err, losc_err_flag is 1
[    1.476700] [hdmi]hdmi module init
[    1.482292] ##fb init:w=1280,h=720,fbmode=3
[    1.504666] sunxi_rtc_gettime(34): err, losc_err_flag is 1
[    1.510793] sunxi-rtc sunxi-rtc: hctosys: unable to read the hardware clock
[    3.670941] init: HDMI status = 0, try 40 times!TV status = 0
[    3.883660] init: start e2fsck listening...
[    4.373635] init: do_umount: /data  
[    4.704422] init: do_umount: /cache  
[    4.802597] init: dont need format /dev/block/UDISK
[    4.808538] init: dont need format /dev/block/private
[    4.829357] init: do_umount: /databk  
[    4.888299] init: C_IN_START
[    4.891325] init: path = /dev/block/data
[    4.895761] init: C_IN_START
[    4.899207] init: path = /dev/block/cache
[    5.358460] init: untracked pid 1124 exited
[    5.379911] init: using deprecated syntax for specifying property 'sys.usb.config', use ${name} instead
[    5.397403] init: using deprecated syntax for specifying property 'sys.usb.config', use ${name} instead
[    5.824463] usb 4-1.1: device descriptor read/all, error -71
[    6.163865] usb 4-1.1: device descriptor read/all, error -71
[    6.364122] usb 4-1.1: device descriptor read/8, error -71
[    7.753425] init: untracked pid 1441 exited
[    7.758217] init: untracked pid 1443 exited
[    9.073282] init: untracked pid 1618 exited
[   12.426753] sunxi_rtc_gettime(34): err, losc_err_flag is 1
[   24.351300] sunxi_rtc_gettime(34): err, losc_err_flag is 1
[   24.360635] init: sys_prop: permission denied uid:1003  name:service.bootanim.exit
[  204.410660] Unable to handle kernel paging request at virtual address 00d1d086
[  204.419177] pgd = ecf28000
[  204.422282] [00d1d086] *pgd=00000000
[  204.426491] Internal error: Oops: 5 [#1] PREEMPT SMP ARM
[  204.432468] Modules linked in: gpio_sunxi 8188eu rtl8150 uvcvideo videobuf_dma_contig videobuf_core utiusb(O) usb_simple(O) UTi1203(O) fe(O) fd650(O) mali(O) ump(O) sun7i_ir nand(O) [last unloaded: gpio_sunxi]
[  204.453623] CPU: 1    Tainted: G        W  O  (3.4.39 #6)
[  204.459739] PC is at lock_hrtimer_base+0x18/0x48
[  204.464956] LR is at hrtimer_try_to_cancel+0x10/0x88
[  204.470565] pc : [<c006ba7c>]    lr : [<c006bc98>]    psr: 20000013
[  204.470583] sp : ecfefdd8  ip : ecfefe70  fp : 00000000
[  204.483499] r10: ffffff92  r9 : 5c160190  r8 : 00000000
[  204.489395] r7 : ecfefe80  r6 : 00d1d086  r5 : ecfefdec  r4 : ecfefe29
[  204.496740] r3 : 00000000  r2 : ecfefe08  r1 : ecfefdec  r0 : ecfefe29
[  204.504112] Flags: nzCv  IRQs on  FIQs on  Mode SVC_32  ISA ARM  Segment user
[  204.512165] Control: 10c5387d  Table: 6cf2806a  DAC: 00000015
[  204.518653]  
[  204.518663] PC: 0xc006b9fc:
[  204.523480] b9fc  e5922008 e2941008 30d11002 33a02000 e3520000 13e0000d 1a000006 e1a00004
[  204.532801] ba1c  e1a01003 e3a02008 eb066105 e3500000 03a00001 13e0000d e28dd01c e8bd80f0
[  204.542121] ba3c  e92d4008 e3a02000 e5903030 e5802030 e1530002 0a000001 e1a00003 eb001f14
[  204.551438] ba5c  e3a00000 e8bd8008 e92d4070 e1a04000 e1a05001 e5946024 e3560000 0a00000a
[  204.560629] ba7c  e5960000 eb120278 e5850000 e1a01000 e5943024 e1560003 1a000001 e1a00006
[  204.569816] ba9c  e8bd8070 e5960000 eb12013a eafffff0 e92d40f0 e24dd014 e1a04001 e1a05000
[  204.578998] babc  e1a00001 e28d100c ebffffe6 e5943024 e1a0000d e1c461d0 e5933020 e12fff33
[  204.588181] badc  e1cd20d0 e59d100c e0566002 e0c77003 e5943024 e5930000 eb120126 e1c560f0
[  204.597376]  
[  204.597381] LR: 0xc006bc18:
[  204.602153] bc18  e7922101 e7933002 e3530000 0a00000a e1c423d0 e1c581d0 e5940000 e0588002
[  204.611334] bc38  e0c99003 e1c021d0 e1530009 01520008 1a000001 e3a01001 ebffffac e5943010
[  204.620521] bc58  e3530000 1a000005 e5943000 e3a00001 e5942004 e5931008 e1c12210 e5832008
[  204.629704] bc78  e5856028 e8bd83f8 c071e618 c0730480 e92d40f7 e1a04000 e28d1004 ebffff72
[  204.638884] bc98  e5945028 e1a07000 e3150002 13e05000 1a000010 e2155001 0a00000e e5905000
[  204.648069] bcb8  eb06a2dc e59f3044 e1a01007 e5942028 e59f603c e7933100 e1a00004 e2022002
[  204.657253] bcd8  e0863003 e063c005 e3a05001 e27c3000 e0a3300c ebffffb3 e5943024 e59d1004
[  204.666436] bcf8  e5930000 eb1200a4 e1a00005 e8bd80fe c0730480 c071e600 e92d4010 e1a04000
[  204.675621]  
[  204.675624] SP: 0xecfefd58:
[  204.680393] fd58  d1d091d0 00000000 00000000 ee8ea340 c0008f3c c0720000 00000002 c006d5a0
[  204.689582] fd78  ffffffff c006ba7c 20000013 ffffffff ecfefdc4 c000d498 ecfefe29 ecfefdec
[  204.698768] fd98  ecfefe08 00000000 ecfefe29 ecfefdec 00d1d086 ecfefe80 00000000 5c160190
[  204.707950] fdb8  ffffff92 00000000 ecfefe70 ecfefdd8 c006bc98 c006ba7c 20000013 ffffffff
[  204.717132] fdd8  ecfefe29 ecfefe29 ecfeff78 c006bc98 ecfefe29 ecfefe70 ecfefe08 ecfefe29
[  204.726315] fdf8  ecfefe29 ecfeff78 ecfefe80 c006bd20 ecfee000 c00879ec ecfefe9c 00000000
[  204.735499] fe18  e6e21c40 00000001 972365a3 0000002f ecfefe29 00000000 00000000 00000000
[  204.744678] fe38  972365a3 0000002f 9722a253 0000002f c006ba3c d1d08638 00000000 00000000
[  204.753860]  
[  204.753863] IP: 0xecfefdf0:
[  204.758633] fdf0  ecfefe08 ecfefe29 ecfefe29 ecfeff78 ecfefe80 c006bd20 ecfee000 c00879ec
[  204.767816] fe10  ecfefe9c 00000000 e6e21c40 00000001 972365a3 0000002f ecfefe29 00000000
[  204.776999] fe30  00000000 00000000 972365a3 0000002f 9722a253 0000002f c006ba3c d1d08638
[  204.786183] fe50  00000000 00000000 00000000
[  204.790720] qtaguid: ctrl_tag(t 52 18446742978492891136 10027): insufficient priv from pid=2454 tgid=2144 uid=10010
[  204.802626]  ecfee000
[  204.803010] qtaguid: ctrl_tag(t 50 18446742978492891136 10007): insufficient priv from pid=2464 tgid=2144 uid=10010
[  204.809902] qtaguid: ctrl_tag(t 51 18446742978492891136 10027): insufficient priv from pid=2435 tgid=2144 uid=10010
[  204.828493]  59f670c0 00000064 ecfefe68 ecfefe68
[  204.833672] fe70  ecfefe70 ecfefe70 ef38b140 c079cb38 5c160000 ecdc1e40 00000190 00000000
[  204.842854] fe90  00000000 00000000 ffffffff c079cb38 ef38b140 00000000 5c160190 5c160190
[  204.852036] feb0  00000000 00000000 ecfee000 5c160190 00000000 c0088d34 ffffffff 00000000
[  204.861220] fed0  5de0cab0 c0386534 ecfefef8 00000000 0000e001 00000000 00000000 00000000
[  204.870400]  
[  204.870404] R0: 0xecfefda9:
[  204.875174] fda8  00d1d086 ecfefe80 00000000 5c160190 ffffff92 00000000 ecfefe70 ecfefdd8
[  204.884359] fdc8  c006bc98 c006ba7c 20000013 ffffffff ecfefe29 ecfefe29 ecfeff78 c006bc98
[  204.893544] fde8  ecfefe29 ecfefe70 ecfefe08 ecfefe29 ecfefe29 ecfeff78 ecfefe80 c006bd20
[  204.902729] fe08  ecfee000 c00879ec ecfefe9c 00000000 e6e21c40 00000001 972365a3 0000002f
[  204.911910] fe28  ecfefe29 00000000 00000000 00000000 972365a3 0000002f 9722a253 0000002f
[  204.921088] fe48  c006ba3c d1d08638 00000000 00000000 00000000 ecfee000 59f670c0 00000064
[  204.930274] fe68  ecfefe68 ecfefe68 ecfefe70 ecfefe70 ef38b140 c079cb38 5c160000 ecdc1e40
[  204.939462] fe88  00000190 00000000 00000000 00000000 ffffffff c079cb38 ef38b140 00000000
[  204.948643] fea8  5c160190 5c160190 00000000 00000000 ecfee000 5c160190 00000000 c0088d34
[  204.957829]  
[  204.957832] R1: 0xecfefd6c:
[  204.962604] fd6c  c0720000 00000002 c006d5a0 ffffffff c006ba7c 20000013 ffffffff ecfefdc4
[  204.971785] fd8c  c000d498 ecfefe29 ecfefdec ecfefe08 00000000 ecfefe29 ecfefdec 00d1d086
[  204.980969] fdac  ecfefe80 00000000 5c160190 ffffff92 00000000 ecfefe70 ecfefdd8 c006bc98
[  204.990157] fdcc  c006ba7c 20000013 ffffffff ecfefe29 ecfefe29 ecfeff78 c006bc98 ecfefe29
[  204.999338] fdec  ecfefe70 ecfefe08 ecfefe29 ecfefe29 ecfeff78 ecfefe80 c006bd20 ecfee000
[  205.008522] fe0c  c00879ec ecfefe9c 00000000 e6e21c40 00000001 972365a3 0000002f ecfefe29
[  205.017701] fe2c  00000000 00000000 00000000 972365a3 0000002f 9722a253 0000002f c006ba3c
[  205.026882] fe4c  d1d08638 00000000 00000000 00000000 ecfee000 59f670c0 00000064 ecfefe68
[  205.036066]  
[  205.036070] R2: 0xecfefd88:
[  205.040841] fd88  ecfefdc4 c000d498 ecfefe29 ecfefdec ecfefe08 00000000 ecfefe29 ecfefdec
[  205.050021] fda8  00d1d086 ecfefe80 00000000 5c160190 ffffff92 00000000 ecfefe70 ecfefdd8
[  205.059206] fdc8  c006bc98 c006ba7c 20000013 ffffffff ecfefe29 ecfefe29 ecfeff78 c006bc98
[  205.068389] fde8  ecfefe29 ecfefe70 ecfefe08 ecfefe29 ecfefe29 ecfeff78 ecfefe80 c006bd20
[  205.077571] fe08  ecfee000 c00879ec ecfefe9c 00000000 e6e21c40 00000001 972365a3 0000002f
[  205.086751] fe28  ecfefe29 00000000 00000000 00000000 972365a3 0000002f 9722a253 0000002f
[  205.095931] fe48  c006ba3c d1d08638 00000000 00000000 00000000 ecfee000 59f670c0 00000064
[  205.105116] fe68  ecfefe68 ecfefe68 ecfefe70 ecfefe70 ef38b140 c079cb38 5c160000 ecdc1e40
[  205.114302]  
[  205.114306] R4: 0xecfefda9:
[  205.119077] fda8  00d1d086 ecfefe80 00000000 5c160190 ffffff92 00000000 ecfefe70 ecfefdd8
[  205.128264] fdc8  c006bc98 c006ba7c 20000013 ffffffff ecfefe29 ecfefe29 ecfeff78 c006bc98
[  205.137451] fde8  ecfefe29 ecfefe70 ecfefe08 ecfefe29 ecfefe29 ecfeff78 ecfefe80 c006bd20
[  205.146640] fe08  ecfee000 c00879ec ecfefe9c 00000000 e6e21c40 00000001 972365a3 0000002f
[  205.155825] fe28  ecfefe29 00000000 00000000 00000000 972365a3 0000002f 9722a253 0000002f
[  205.165006] fe48  c006ba3c d1d08638 00000000 00000000 00000000 ecfee000 59f670c0 00000064
[  205.174186] fe68  ecfefe68 ecfefe68 ecfefe70 ecfefe70 ef38b140 c079cb38 5c160000 ecdc1e40
[  205.183370] fe88  00000190 00000000 00000000 00000000 ffffffff c079cb38 ef38b140 00000000
[  205.192551] fea8  5c160190 5c160190 00000000 00000000 ecfee000 5c160190 00000000 c0088d34
[  205.201738]  
[  205.201741] R5: 0xecfefd6c:
[  205.206512] fd6c  c0720000 00000002 c006d5a0 ffffffff c006ba7c 20000013 ffffffff ecfefdc4
[  205.215694] fd8c  c000d498 ecfefe29 ecfefdec ecfefe08 00000000 ecfefe29 ecfefdec 00d1d086
[  205.224877] fdac  ecfefe80 00000000 5c160190 ffffff92 00000000 ecfefe70 ecfefdd8 c006bc98
[  205.234059] fdcc  c006ba7c 20000013 ffffffff ecfefe29 ecfefe29 ecfeff78 c006bc98 ecfefe29
[  205.243247] fdec  ecfefe70 ecfefe08 ecfefe29 ecfefe29 ecfeff78 ecfefe80 c006bd20 ecfee000
[  205.252428] fe0c  c00879ec ecfefe9c 00000000 e6e21c40 00000001 972365a3 0000002f ecfefe29
[  205.261605] fe2c  00000000 00000000 00000000 972365a3 0000002f 9722a253 0000002f c006ba3c
[  205.270784] fe4c  d1d08638 00000000 00000000 00000000 ecfee000 59f670c0 00000064 ecfefe68
[  205.279963]  
[  205.279966] R7: 0xecfefe00:
[  205.284737] fe00  ecfefe80 c006bd20 ecfee000 c00879ec ecfefe9c 00000000 e6e21c40 00000001
[  205.293922] fe20  972365a3 0000002f ecfefe29 00000000 00000000 00000000 972365a3 0000002f
[  205.303110] fe40  9722a253 0000002f c006ba3c d1d08638 00000000 00000000 00000000 ecfee000
[  205.312296] fe60  59f670c0 00000064 ecfefe68 ecfefe68 ecfefe70 ecfefe70 ef38b140 c079cb38
[  205.321478] fe80  5c160000 ecdc1e40 00000190 00000000 00000000 00000000 ffffffff c079cb38
[  205.330659] fea0  ef38b140 00000000 5c160190 5c160190 00000000 00000000 ecfee000 5c160190
[  205.339842] fec0  00000000 c0088d34 ffffffff 00000000 5de0cab0 c0386534 ecfefef8 00000000
[  205.349022] fee0  0000e001 00000000 00000000 00000000 59f68a78 00000100 00000030 59f670c0
[  205.358213] Process DisplayManagerP (pid: 1996, stack limit = 0xecfee2f8)
[  205.365803] Stack: (0xecfefdd8 to 0xecff0000)
[  205.370675] fdc0:                                                       ecfefe29 ecfefe29
[  205.379824] fde0: ecfeff78 c006bc98 ecfefe29 ecfefe70 ecfefe08 ecfefe29 ecfefe29 ecfeff78
[  205.388973] fe00: ecfefe80 c006bd20 ecfee000 c00879ec ecfefe9c 00000000 e6e21c40 00000001
[  205.398122] fe20: 972365a3 0000002f ecfefe29 00000000 00000000 00000000 972365a3 0000002f
[  205.407271] fe40: 9722a253 0000002f c006ba3c d1d08638 00000000 00000000 00000000 ecfee000
[  205.416423] fe60: 59f670c0 00000064 ecfefe68 ecfefe68 ecfefe70 ecfefe70 ef38b140 c079cb38
[  205.425572] fe80: 5c160000 ecdc1e40 00000190 00000000 00000000 00000000 ffffffff c079cb38
[  205.434720] fea0: ef38b140 00000000 5c160190 5c160190 00000000 00000000 ecfee000 5c160190
[  205.443870] fec0: 00000000 c0088d34 ffffffff 00000000 5de0cab0 c0386534 ecfefef8 00000000
[  205.453019] fee0: 0000e001 00000000 00000000 00000000 59f68a78 00000100 00000030 59f670c0
[  205.462172] ff00: eeb71070 5de0cab0 ef0b72c0 0000000a c000daa8 ecfee000 00000000 c00d94dc
[  205.471321] ff20: 00000000 00000000 c0727bc0 ecfeff70 34ff2b0c 00000000 0003a64c 00000000
[  205.480472] ff40: 00000000 00000080 00000001 00000000 ecfee000 5c160190 00000000 c0089760
[  205.489620] ff60: 5c160190 00000000 ffffffff 00000001 9722a253 0000002f 9722a253 0000002f
[  205.498770] ff80: 00000000 1dcd383e 5de0cd40 5c160190 5c160180 00000000 000000f0 c000daa8
[  205.507922] ffa0: 00000000 c000d900 5c160190 5c160180 5c160190 00000080 00000000 5de0cd40
[  205.517070] ffc0: 5c160190 5c160180 00000000 000000f0 00000000 00000000 00000001 00000000
[  205.526220] ffe0: 00000000 5de0cd20 400be420 400c8108 60000010 5c160190 00000000 00000000
[  205.535398] [<c006ba7c>] (lock_hrtimer_base+0x18/0x48) from [<c006bc98>] (hrtimer_try_to_cancel+0x10/0x88)
[  205.546204] [<c006bc98>] (hrtimer_try_to_cancel+0x10/0x88) from [<c006bd20>] (hrtimer_cancel+0x10/0x20)
[  205.556722] [<c006bd20>] (hrtimer_cancel+0x10/0x20) from [<c00879ec>] (futex_wait+0x1dc/0x1fc)
[  205.566361] [<c00879ec>] (futex_wait+0x1dc/0x1fc) from [<c0088d34>] (do_futex+0xc4/0x9cc)
[  205.575516] [<c0088d34>] (do_futex+0xc4/0x9cc) from [<c0089760>] (sys_futex+0x124/0x168)
[  205.584574] [<c0089760>] (sys_futex+0x124/0x168) from [<c000d900>] (ret_fast_syscall+0x0/0x30)
[  205.594214] Code: e1a05001 e5946024 e3560000 0a00000a (e5960000)  
[  205.602175] ---[ end trace 42a35a83d6714e08 ]---
[  205.607393] Kernel panic - not syncing: Fatal exception
[  205.613302] CPU0: stopping
[  205.616364] [<c00142a8>] (unwind_backtrace+0x0/0xe0) from [<c0012818>] (handle_IPI+0xf8/0x1d4)
[  205.626011] [<c0012818>] (handle_IPI+0xf8/0x1d4) from [<c00084e0>] (gic_handle_irq+0x50/0x58)
[  205.635563] [<c00084e0>] (gic_handle_irq+0x50/0x58) from [<c000d500>] (__irq_svc+0x40/0x70)
[  205.644910] Exception stack(0xeb3f7e08 to 0xeb3f7e50)
[  205.650566] 7e00:                   ecaf9e90 5da99000 5da9a000 eb3f6000 eb3f7efc 00000000
[  205.659723] 7e20: 00000000 00000000 ecaf9e90 e981176c 5da9a000 5da9a000 ecaf9e90 eb3f7e50
[  205.668877] 7e40: c00b980c c0012d10 20000013 ffffffff
[  205.674535] [<c000d500>] (__irq_svc+0x40/0x70) from [<c0012d10>] (flush_tlb_range+0x8/0x7c)
[  205.683889] [<c0012d10>] (flush_tlb_range+0x8/0x7c) from [<c00b980c>] (unmap_single_vma+0x4ec/0x508)
[  205.694118] [<c00b980c>] (unmap_single_vma+0x4ec/0x508) from [<c00ba030>] (unmap_vmas+0x38/0x54)
[  205.703958] [<c00ba030>] (unmap_vmas+0x38/0x54) from [<c00bd11c>] (unmap_region+0xa4/0x198)
[  205.713311] [<c00bd11c>] (unmap_region+0xa4/0x198) from [<c00be064>] (do_munmap+0x218/0x27c)
[  205.722761] [<c00be064>] (do_munmap+0x218/0x27c) from [<c00be104>] (vm_munmap+0x3c/0x50)
[  205.731824] [<c00be104>] (vm_munmap+0x3c/0x50) from [<c000d900>] (ret_fast_syscall+0x0/0x30)

[  205.741268] [hotplug]: try to kill cpu:0 failed!





经查,是电压调节器部分代码被屏蔽导致

--- linux-3.4/drivers/regulator/core.c    (版本 246)
+++ linux-3.4/drivers/regulator/core.c    (版本 247)
@@ -1948,7 +1948,7 @@
  */
 int regulator_set_voltage(struct regulator *regulator, int min_uV, int max_uV)
 {
-#if 0
+#if 1
     struct regulator_dev *rdev = regulator->rdev;
     int ret = 0;
 
@@ -1984,8 +1984,9 @@
 out:
     mutex_unlock(&rdev->mutex);
     return ret;
+#else
+return 0;
 #endif
-return 0;
 }
 EXPORT_SYMBOL_GPL(regulator_set_voltage);
 
@@ -2083,7 +2084,7 @@
 
 static int _regulator_get_voltage(struct regulator_dev *rdev)
 {
-#if 0
+#if 1
     int sel, ret;
 
     if (rdev->desc->ops->get_voltage_sel) {
@@ -2100,8 +2101,10 @@
     if (ret < 0)
         return ret;
     return ret - rdev->constraints->uV_offset;
+#else
+
+return 0;
 #endif
-return 0;
 }
 
 /**
@@ -2115,7 +2118,7 @@
  */
 int regulator_get_voltage(struct regulator *regulator)
 {
-   /*
+#if 1
     int ret;
 
     mutex_lock(&regulator->rdev->mutex);
@@ -2125,9 +2128,10 @@
     mutex_unlock(&regulator->rdev->mutex);
 
     return ret;
-    */
+#else
 
    return 0;
+#endif
 }
 EXPORT_SYMBOL_GPL(regulator_get_voltage);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值