msm8937+android7.1系统播放某个MP4文件在data分区下创建ramdump并生成很多elf文件问题
?
1.????問題描述
設備用系統自帶播放器播放某個MP4文件(15s左右的視頻文件),有時候可以播放通過,有時候播放過程提示“無法播放此視頻”,播放2~3天左右,系統提示存儲空間不足。
?
經確認在/data分區下發現有個新創建的ramdump文件夾,里面有很多ramdump_venu_xx.elf的文件(比如ramdump_venus_2017-09-18_08-40-06.elf),其中提示存儲空間不足的,整個ramdump文件夾大小為9.57GB。
?
2.????問題分析
-------------------------20170922----------------------------------------
高通根據我們提供的內核信息,主要分析結果
from the kernel log, I didn't find mucherror log. do you find any other elf besides venuself?venus is used for video decoder and videoencoder. from the log, h264 decoder is running.if you didn't do anything, that might becaused by mediascan, mediascan try to generate thumbnail, then invoke decoder. from the kernel log, when handle 176x144media file, venus will report a error.-------------------20170929高通給新的venus固件驗證-----------------
Please try the test venus firmware.
You can find origianl venus firmware under/system/etc/firmware/ or /firmware/image/
?
這些文件是放在NON-HLOS.bin中的。
?
You can find origianl venus firmware name.
If you are using venus-v1.xxx, pleaserename the test venus firmware to venus-v1.xxx if the name is not matched.
If you are using venus.xxx, please renamethe test venus firmware to venus.xxx if the name is not matched.
這是方案商提供的相關文件:
但根據這些操作無效,方案商重新提供合并venus*文件的NON-HLOS.bin,測試發現沒有生成elf文件的問題,但播放視頻的時候發現有丟幀問題
?
------------------------------2017.10.12----------------------------
高通重新給新的NON-HLOS.bin才解決了這兩個難問題,但具體怎么解決的,沒有給我們說明。
?
抓kernel的一些信息備忘:
if yes, please share the kernel log foranalysis.adb root adb shell cd /d/msm_vidc echo 0x1015 > debug_level echo 0x3F > fw_level exitadb logcat -c adb logcat -b kernel -v threadtime >logcat.logwait for issue reproduced, share the log.3.????問題的解決
3.1??方法一:當出現這樣異常時不抓dump和轉儲到data目錄下
device\qcom\common\rootdir\etc\init.qcom.rc 定義ramdump服務的代碼 service ss_ramdump /system/bin/subsystem_ramdumpclass mainuser systemgroup system disabled如果enable_ramdumps值被使能那么啟動ss_ramdump服務 onproperty:persist.sys.ssr.enable_ramdumps=1write /sys/module/subsystem_restart/parameters/enable_ramdumps 1mkdir /data/ramdump 770 system systemstart ss_ramdump 如果ss_ramdump被啟動,則會調用到vendor/qcom/proprietary/ss-restart/subsystem_ramdump/subsystem_ramdump.c中的main函數。onproperty:persist.sys.ssr.enable_ramdumps=0 write /sys/module/subsystem_restart/parameters/enable_ramdumps0system\core\rootdir\init.rc 設置使能ramdump的值為1 # [ODM] set modem side SSR setprop persist.sys.ssr.enable_ramdumps 1 echo 1 >/sys/module/subsystem_restart/parameters/enable_ramdumps chmod 664 /dev/ramdump_*setprop persist.sys.ssr.restart_level modemecho related > /sys/bus/msm_subsys/devices/subsys2/restart_levelsubsystem_ramdump :發生SSR的時候會將內存中的東西存儲到其他的位置。注釋掉紅色部分內容可以解決此問題,但這不是根本的解決方法,只是出現問題的時候不抓dump信息,不轉儲到/data分區下而已。
?
3.2??徹底解決,高通通過更新NON-HLOS.bin來解決,但我們不知道具體的解決方法。
?
總結
以上是生活随笔為你收集整理的msm8937+android7.1系统播放某个MP4文件在data分区下创建ramdump并生成很多elf文件问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Service xxx does not
- 下一篇: (android)system ui 内