android
chen245250566
这个作者很懒,什么都没留下…
展开
-
mtk平台dmesg配置
mtk平台dmesg log buffer设置CONFIG_LOG_BUF_SHIFT原创 2021-02-09 13:53:27 · 452 阅读 · 1 评论 -
linux内核模块加载的优先级
问题linux的driver模块在执行的时候,需要使用dts创建的device设备,如果driver模块的初始化早于device设备的初始化,这样driver初始化的时候可能就没有对应的device设备,就会造成probe函数不能执行或者对应的dts配置为空解决办法确保driver的初始化晚于device的初始化模块初始化函数的优先级对应的接口在kernel-4.14/include/linux/init.h文件,0的优先级最高,7s的优先级最低#define pure_init...原创 2021-02-01 13:17:09 · 531 阅读 · 0 评论 -
Android系统下打印函数调用栈信息(c++部分)
一般需要添加3部分1、依赖的库libutilscallstack.soAndroid.mk下添加LOCAL_SHARED_LIBRARIES := libdl libdisplaydebug libsdmutils libutilscallstack如果不添加对libutilscallstack.so的引用,出现以下错误hardware/qcom/display/sdm/libs/core/display_base.cpp:41:10: fatal error: 'uti...原创 2020-12-29 14:39:44 · 5203 阅读 · 1 评论 -
gota升级网络问题
提示连不上gms的网络 unbindService is called for service : com.google.android.gms/.lockbox.service.LockboxBrokerService and for client com.google.android.gms.persistent,首先确保网络可以访问正常的是11-16 15:42:56.195 I//vendor/bin/hw/vendor.qti.hardware.servicetracker@1.1-servi原创 2020-11-16 15:45:30 · 1151 阅读 · 0 评论 -
linux驱动设备节点的创建以及write
创建设备节点/sys/class/drm/card0-DSI-1/disp_param static ssize_t disp_param_store(struct device *device, struct device_attribute *attr, const char *buf, size_t count) { struct drm_connector *connector = to_drm_connector(device); struc.原创 2020-11-12 14:27:08 · 1116 阅读 · 0 评论 -
oled屏HBM功能开启关闭
1,HBM功能开启adb shell "echo 0x1D20000 > /sys/class/drm/card0-DSI-1/disp_param"2,HBM功能关闭adb shell "echo 0x20F0000 > /sys/class/drm/card0-DSI-1/disp_param"[ 2491.899303] [<1>][12818, sh][drm] disp_param_store: buf = 0x1D20000\x0a, param ..原创 2020-11-10 16:06:01 · 3291 阅读 · 0 评论 -
android系统logcat日志重定向到kernel,可以通过串口来输出
chmod 0660 /sys/power/wake_lock chmod 0660 /sys/power/wake_unlock+ chmod 0660 /proc/kmsg # Start logd before any other services run to ensure we capture all of their logs. start logd+ start logota # Start lmkd before any other...原创 2020-11-07 18:14:12 · 1904 阅读 · 3 评论 -
查看linux在手机上的CONFIG配置项
在设备中的配置/proc/config.gz查看方式zcat /proc/config.gz原创 2020-11-07 14:54:18 · 808 阅读 · 0 评论 -
高通平台背光设置
qcom,mdss-dsi-bl-min-level = <1>; qcom,mdss-dsi-bl-max-level = <4095>;//如果为4095说明屏支持的背光位数为12bit为屏支持的背光范围qcom,mdss-brightness-max-level = <255>;//可以为4095为用户的设置范围cat /sys/class/backlight/panel0-backlight/max_brightness...原创 2020-08-05 14:50:21 · 1874 阅读 · 0 评论 -
linux解析dts失败原因
static int check_dt(struct device_node *np){ int i = 0; int count = 0; struct device_node *node = NULL; struct drm_panel *panel = NULL; int itrycount = 0; NVT_LOG("chenwenmin \n"); count = of_count_phandle_with_args(np,...原创 2020-07-21 23:16:58 · 1970 阅读 · 9 评论 -
UFEI上报的lcd屏在kernel找不到,系统挂掉
https://download.csdn.net/download/chen245250566/12641557原创 2020-07-20 09:01:28 · 161 阅读 · 0 评论 -
android获取当前系统语言
getprop中的配置字段为persist.sys.locale[persist.sys.locale]: [zh-Hans-CN]为汉语[persist.sys.locale]: [en-US]为美式英语原创 2020-07-03 14:46:00 · 1578 阅读 · 0 评论 -
android fastboot模式刷写文件
单刷img:fastboot flash sbl1 sbl1.mbnfastboot flash aboot emmc_appsboot.mbn //开机logo和slb2阶段, 开机检测按键进入何种模式,downlaod模式或者recovery模式或者启动android,logo更改单刷生效// make abootfastboot flash sec sec.datfastboot flash tz tz.mbnfastboot flash rpm rpm.mbnfastboot原创 2020-06-23 11:32:14 · 1467 阅读 · 0 评论 -
mtk下添加关机充电图片流程,以及与kernel通信
mtk平台下的关机充电有两种情况1、充电只启动bootloader程序,即启动lk,不启动kernel2、充电启动bootloader、kernel、kernel上层的应用程序以第2种为例说明1、添加图片资源(1)通过vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/rules.mk里面的$(BOOT_LOGO_DIR) $(BASE_LOGO)来获取当前所用的图片位置,可以在rules.mk对应的位置来添加调试信息.原创 2020-06-22 20:12:20 · 1768 阅读 · 0 评论 -
mtk平台修改开机、关机、充电图片
图片格式要求bmp在路径下vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo的update文件负责把bmp格式的文件转换为raw格式的原创 2020-06-17 13:10:18 · 824 阅读 · 0 评论 -
手机触摸屏问题排查所需信息
1.setting-->System-->Advanced-->Developer options-->Show touches/Pointer location2.adb shell getevent -lt >> getevent.txt3.adb shell watch cat /proc/interrupts >> interrupts.txt原创 2020-06-11 11:54:42 · 277 阅读 · 0 评论 -
andori触摸时间B协议上报问题,造成同一水平、垂直的按键在键盘上显示一条线
问题现象:快速的交叉点击同一行或同一列上的两个按键,键盘上两个按键之间会显示连线原因分析:android驱动层在使用TP的B协议上报点时,上报错误说明:1、android的TP点上报分A、B两个协议,目前大都使用B协议,区分A B协议的关键是B协议有ABS_MT_TRACKING_ID、ABS_MT_SLOT两个事件2、B协议每个相关点都有唯一的ABS_MT_TRACKING_ID,加入在点击按键L,坐标值的上报规则为a、每次触摸会上报点ABS_MT_SLOT 0 开始、ABS_MT_SLOT 1原创 2020-06-06 18:05:30 · 1467 阅读 · 0 评论 -
高通平台lcm tp模块睡眠唤醒流程
睡眠、唤醒栈信息[ 7241.760924] [<c0113bcc>] (unwind_backtrace) from [<c010ed50>] (show_stack+0x1c/0x20)[ 7241.760939] [<c010ed50>] (show_stack) from [<c0575f54>] (dump_stack+0xc8/0xf4)[ 7241.760955] [<c0575f54>] (dump_stack) from原创 2020-06-04 12:02:24 · 1438 阅读 · 0 评论 -
android下函数符号的查找
1、进入out/target/product/eh15/obj/KERNEL_OBJ/drivers/input/touchscreen/lge2、执行arm-linux-androideabi-readelf -a touch_core.o | grep touch_core_inittouch_core_init有编译进去,在查lge的上层目录touchscreen下的built-...原创 2020-05-07 09:52:20 · 284 阅读 · 0 评论 -
android下显示函数调用关系
通过dump_stack()的调用可以获取当前的函数调用关系原创 2020-05-07 09:16:32 · 930 阅读 · 0 评论 -
android 宏定义,生成结果确认
android编译宏的最终确认vendor/mediatek/proprietary/bootable下定义的宏,生成在ut/target/product/eh15/obj/BOOTLOADER_OBJ/build-eh15目录下的config.h文件原创 2020-05-06 14:20:52 · 978 阅读 · 0 评论 -
android系统下mtk平台对应lcd tp睡眠唤醒流程
下图为android系统下mtk平台对应lcd、tp两个模块的唤醒流程对应的函数调用关系图中的向下箭头,代表的是串行执行的,如标号1、2、3;向右箭头代表的是并行执行的(代表一个分支)标号1、2、3对应的函数,在fb_blank中通知链表fb_notifier_call_chain调用两次,是为了在底层可以自由的控制lcd tp的睡眠 唤醒顺序例如睡眠 tp->l...原创 2020-04-23 14:59:50 · 2120 阅读 · 0 评论 -
linux中制定所用的dts文件
1、device/lge/eh15/vnd_eh15.mk 下KERNEL_DEFCONFIG用于编译内核时所用的配置KERNEL_DEFCONFIG ?= eh15_defconfig2、eh15_defconfig文件下定义kernel-4.9/arch/arm/configs/eh15_defconfigCONFIG_BUILD_ARM_DTB_OVERLAY_IMAGE_NA...原创 2020-04-20 15:58:51 · 1464 阅读 · 0 评论 -
mtk交叉编译工具链
mtk平台编译工具链所在目录prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin使用方法export PATH=$PATH:~/mount/code/prebuilts/gcc/linux-x86/arm/arm-linux-androideabi-4.9/bin原创 2020-04-17 13:42:42 · 887 阅读 · 0 评论 -
mtk android compile log
mtk android compile log原创 2020-04-09 18:17:05 · 364 阅读 · 0 评论 -
MTKLogger
MTKLogger 是 MediaTek 开发的一个 target 端 Logging 工具,它由几个 daemon 以及一个 UI Application 构成。其中 daemon 负责不断的将 Log Buffer 里面的新 Log 复制到 sdcard 上面,而 UI Application 则可以控制 Daemon 的打开和关闭,占用 sdcard 空间的大小,某一种 Log 的抓取...原创 2020-04-08 10:55:49 · 8064 阅读 · 0 评论 -
DDMS
DDMS (Dalvik Debug Monitor Server) 是 Android SDK 中的一个 debug 工具,提供了 UI 窗口,可以在 eclipse 中打开,也可以单独使用。详情请参考下面的链接:http://developer.android.com/tools/debugging/ddms.htmlhttp://developer.android.com/...原创 2020-04-08 10:50:43 · 469 阅读 · 0 评论 -
Logcat
Logcat 是 Android SDK 里面提供的命令行下的 Logging 工具,用法简单,使用方便,相关的介绍可以参考 Android Developer 链接: http://developer.android.com/tools/help/logcat.html用法命令格式如下,在<option>可以指定一些选项,比如输出格式,指定 buffer 等;而在<fi...原创 2020-04-08 10:46:07 · 1282 阅读 · 0 评论 -
last_kmsg
讲 last_kmsg 首先就要再讲 RAM Console。在 Kernel Log 章节我们有讲过 Kernel Log 除了输出到 Kernel Log Buffer 以外还会输出到 Console,在 MTK Turnkey 方案里面 Log Console 有两个,一个是 UART Console,一个是RAM Console。RAM Console 设备驱动同样在 RAM 里面实现...原创 2020-04-08 10:13:01 · 2605 阅读 · 0 评论 -
UART Log
/proc/kmsg 文件节点映射 Kernel Log Buffer,或者 dmesg dump Kernel Log Buffer 实际都是直接从 Buffer 里面获取 Log。在 Kernel Log 章节有讲过,所有的 Kernel Log 都会一字不漏的全部写入的 Buffer 中,所以通过访问 Log Buffer 的方式获取的 Kernel Log 是最完整的。在 Ker...原创 2020-04-07 17:08:58 · 3122 阅读 · 0 评论 -
dmesg
前面 kmsg 的章节讲述了通过 /proc/kmsg 访问 Kernel log buffer 的方式,其主要限制是不能有多读者,即不能多个程序同时访问 Kernel Log Buffer,否则每一个访问程序得到的结果都是不完整的。但有些时候我们可能并不知道系统里面有哪些后台进程在读取 Kernel Log Buffer,这个时候我们如何获取到可信的 Kernel Log呢?系统(...原创 2020-04-07 16:33:44 · 1719 阅读 · 0 评论 -
kmsg
在前面 Kernel Log 章节我们有讲过,所有的 Kernel Log 都会输出到 Kernel 里面的一个循环的缓冲区 'log_buf',为了能够方便的在 user space 读取 Kernel log,Kernel driver 里面将这个 buffer 映射到了 /proc 目录下的文件节点 /proc/kmsg。所以读取 /proc/kmsg 文件其实就是在访问 Kern...原创 2020-04-07 16:26:25 · 2831 阅读 · 0 评论 -
Kernel Log
在开发Linux device Driver或者跟踪调试内核行为的时候经常要通过Log API来trace整个过程,Kernel API printk() 是整个Kernel Log机制的基础API,几乎所有的Log方式都是基于printk来实现的。利用printk,我们可以像开发C应用中printf接口一样印log,最简单的方式,我们只要把需要打印的内容传给printk函数就可以了,如下:...原创 2020-04-07 16:20:05 · 1899 阅读 · 0 评论 -
linux下repo init失败,gpg: 无法检查签名:没有公钥
执行repo init时出现以下错误gpg: 签名建立于 2018年09月10日 星期一 14时46分39秒 CSTgpg: 使用 DSA 密钥 D98043DB3E7FC8C0gpg: 无法检查签名:没有公钥原因是所使用的repo命令程序发生了变化,造成变化前后两个repo的版本信息不一致解决办法:1、cd ~ 进入到家目录2、rm ...原创 2020-03-19 17:23:23 · 3267 阅读 · 1 评论 -
视频画面显示单位fps与Hz的区别
30fps代表每秒能产生30帧的画面,从摄像头获取画面后视频编码的帧数,到framebuf送画面的次数30Hz代表LCD控制器发送显示数据到LCD驱动器上每秒的频率,一般是固定值cpu--30fps--->lcd控制器---30Hz-->lcd驱动器fps的值一般小于等于Hz的值,如果大于画面就会丢失画面如果内存速度(总线频率)跟不上,而LCD配置的刷新率太快,也...原创 2020-02-28 17:24:18 · 4994 阅读 · 0 评论 -
android编译错误FCM
android编译报错ed_vendor_manifest.xml"Error: The following instances are in the device manifest but not specified in framework compatibility matrix: com.fingerprints.extension@2.0::IFingerprintAu...原创 2020-01-09 14:36:51 · 13733 阅读 · 3 评论 -
android image文件编译
1.打开build/core/main.mk文件.PHONY: ramdisk为其中一个的编译目标.PHONY: ramdiskramdisk: $(INSTALLED_RAMDISK_TARGET).PHONY: ramdisk_debugramdisk_debug: $(INSTALLED_DEBUG_RAMDISK_TARGET).PHONY: systemtarba...原创 2019-12-24 13:39:41 · 863 阅读 · 0 评论 -
获取git的远程路径并拉取代码
情况一,如果只有git仓库查看git的远程路径1.cat .git/config[core] repositoryformatversion = 0 filemode = true[remote "caf"] url = ssh://chenwm1127@192.168.129.100:29418/qc-repository/kernel/lk re...原创 2019-12-17 19:10:16 · 2118 阅读 · 0 评论 -
android 编译步骤分析之envsetup.sh
1. cd AP 进入AP目录,如果已经进入到了A目录,可以忽略2. source build/envsetup.sh 初始编译环境,envsetup.sh里面是一些编译命令,类似于linxu自带的ls cd等指令 cwm@cwm-OptiPlex-7060:~/work/project/gm/android_p/AP$ source build/envsetup...原创 2019-12-13 12:05:20 · 1127 阅读 · 0 评论 -
ubuntu修改交换分区swap方法
1. 切换为root用户su输入密码2. 查看当前swap分区信息 free -hroot@cwm-OptiPlex-7060:/home/cwm/work/project/gm/tool/cp_envtools/pkg# free -h 总计 已用 空闲 共享 缓冲/缓存 可用内存: ...原创 2019-12-11 15:27:35 · 1652 阅读 · 0 评论