MTK调试记录

adb抓取log

adb wait-for-device && adb logcat >> %USERPROFILE%\Desktop\main.log

设置enforce等级

setenforce 0
getenforce

设置背光等级 0-255

echo  255  >  brightness

关闭串口打印

echo  0  >  /proc/sys/kernel/printk

查看KERNEL 版本

可以在device/Projectconfig.mk 查看
在这里插入图片描述

cherrypick其他分支的commit

git cherry-pick origin/[other branch] [commit id]

uart log ddr容量查看

0:dram_rank_size:20000000

1:dram_rank_size:20000000

0:dram_rank_size:20000000

1:dram_rank_size:20000000

total_dram_size: 0x0000000040000000, max_dram_size: 0xFFFFFFFFFFFFFFFF

将文件还原到某个commit id的状态

git checkout [commit id] +文件

adb查看i2c设备节点

adb shell /sys/bus/devices/i2cX

git commit message修改

git commit --amend 

dts增加vpa定义

+&mt_pmic_vpa_buck_reg {
+        regulator-min-microvolt = <3300000>;
+        regulator-max-microvolt = <3300000>;
+        regulator-boot-on;//开机启动

adb调试 pmic

pmic寄存器查看
每次写完若要查看必须再执行第三步的完整步骤测
1、通过find命令搜索pmic_access的文件路径 (find -name “” ./)
2:用cd命令进入,一般在 /sys/devices/platform/
3:读取操作,比如读取bank0的0x17这个寄存器
输入echo 17 > pmic_access来读取寄存器的值
输入cat pmic_access来显示寄存器的值
4:写操作,比如向bank0的0x17这个寄存器写入0x5a
输入echo 17 5a > pmic_access echo 532 193 > pmic_access
注意:
1:用cat显示的值是十进制的,而输入的寄存器的ID和输入的值都是十六进制的。
也就是说如果写入0b(十六进制的值),读出来是11(十进制的值)
2:每次读取都要输入echo和cat两条命令。
3:在/sys/devices/platform/…目录下用ls命令,可以看到很多LDO的标志。
4:使用cat LDO_VSIM_VOLTAGE可以看到此LDO软件设置的输出电压。
5:使用cat LDO_VSIM_STATUS可以看到此LDO软件设置的输出状态。

access可以查看寄存器状态
find /sys/ -name *access*
#/sys/devices/platform/soc/1000d000.pwrap/1000d000.pwrap:mt6357-pmic/mt-pmic/pmic_access
echo a8e > pmic_access/*先写再读*/
cat pmic_access
echo a8e 0x1356 > pmic_access/*先写再读*/

可以查看当前GPIO供电情况

adb和fastbooot 工具

 adb命令:
        adb devices             :列出adb设备
        adb reboot              :重启设备
        adb reboot bootloader   :重启到fastboot模式
        adb reboot recovery     :重启到recovery模式
        adb reboot edl          :重启到edl模式
 fastboot命令:
        fastboot devices                        :列出fastboot设备
        fastboot reboot                         :重启设备
        fastboot reboot-bootloader              :重启到fastboot模式
        fastboot flash <分区名称> <镜像文件名>  :刷写分区
        fastboot oem reboot-<模式名称>          :重启到相应模式
	 	fastboot oem device-info                :查看解锁状态
-----------------------------------------
 解锁命令:
        adb reboot bootloader
        fastboot flashing unlock
        press volume up key(mic旁边的按键)
        fastboot getvar unlocked
       当显示为 unlocked: yes 时说明解锁成功(如果为no,可以再次执行fastboot flashing unlock并press volume down key试下)
        fastboot reboot
        机器开机时logo上会出现一串字符,说明解锁成功
        adb root
        adb disable-verity
        adb reboot
        adb root
        adb remount
        然后开始push操作
        adb reboot

进入工程者模式

adb root
adb shell am start -n com.mediatek.engineermode/.EngineerMode 

adb gsensor调试方法

:/ # echo 4 > sys/bus/platform/drivers/gsensor/layout
:/ # cat sys/bus/platform/drivers/gsensor/layout

0-15方向数组在

kernel-3.10\drivers\misc\mediatek\hwmon\hwmsen\hwmsen_helper.c
在这里插入图片描述

查看gpio状态

cat /sys/kernel/debug/gpio
console:/ # find /sys -name "mt_gpio"
/sys/devices/platform/soc/1000b000.pinctrl/mt_gpio

新建项目

基于 [OLD PROJECT] 新建[NEW PROJECT]

perl ./vendor/mediatek/proprietary/scripts/project_clone/project_clone.pl -p [SDK PWD] -o [OLD PROJECT] -n [NEW PROJECT]

sysrq命令用法:

Linux Magic System Request Key Hacks — The Linux Kernel documentation

adb gpio调试

查找节点位置:find sys/ -name "mt_gpio"            

一般位于:/sys/devices/platform/soc/1000b000.pinctrl/mt_gpio
sys/devices/platform/soc/1000b000.pinctrl/mt_gpio

查看GPIO状态:
adb输入命令:cat ./sys/devices/platform/soc/1000b000.pinctrl/mt_gpio

PIN: [MODE] [DIR] [DOUT] [DIN] [PULL_EN] [PULL_SEL] [IES] [SMT] [DRIVE] ( [R1] [R0] )
0: 011110100 01
1: 000010100 01
2: 000111100 01
3: 000010100 01
4: 011100100 00
5: 000010100 01
6: 000100110
...

对应的属性基本与DWS配置项一致,这里只对 [DRIVE] ( [R1] [R0] ) 两项进行说明

[DRIVE]:驱动能力,一般可取值0~7

([R1] [R0]):当前GPIO pin的(上下拉)并联电阻的使能状态

1 0表示enable R1,disable R0

0 1表示disable R1,enable R0

1 1表示enable R1, enable R0

不打印出来,表示当前的GPIO pin不支持PUPD状况,即只有一个上拉电阻、一个下拉电阻。

通过对比上面信息我们可以看出GPIO的设置是否生效,如对应属性和驱动中设置不符,则需要检查驱动是否有疏漏,还要检查对应的GPIO是否有其他模块也使用了,我们也可以使用adb将GPIO配置成我们需要的状态,来验证此GPIO是否可控,也可以用此方法来临时满足我们外设的需求,方便调试其他功能。

使用adb设置GPIO属性:
设置模式:echo mode 14 0 > mt_gpio

设置输入/输出:echo dir 14 1  > mt_gpio

输出高/低:echo out 14 1 > mt_gpio

设置pullen:  echo pullen 14 1 > mt_gpio

NOTE:设置pullen时,

For pin with 2 pull resistors, $value can be 0 (R1=0, R0=0), 1 (R1=0, R0=1), 2 (R1=1, R0=0), 3 (R1=1, R0=1)

For pin with 1 pull resistor, $value can be 0 or 1
去掉上拉
echo pullen 107 0 > sys/devices/platform/soc/1000b000.pinctrl/mt_gpio

连接audio turning tool

adb shell am start -n com.mediatek.engineermode/.EngineerMode
打开ATCI enable

adb tinymix调增益

:/ # tinymix 35
Headset_PGAL_GAIN: >8Db 7Db 6Db 5Db 4Db 3Db 2Db 1Db 0Db -1Db -2Db -3Db -4Db -5Db -6Db -7Db -8Db -9Db -10Db -11Db -12Db -13Db -14Db -15Db -16Db -17Db -18Db -19Db -20Db -21Db -22Db -40Db
:/ # tinymix 35 1
:/ # tinymix 35
Headset_PGAL_GAIN: 8Db >7Db 6Db 5Db 4Db 3Db 2Db 1Db 0Db -1Db -2Db -3Db -4Db -5Db -6Db -7Db -8Db -9Db -10Db -11Db -12Db -13Db -14Db -15Db -16Db -17Db -18Db -19Db -20Db -21Db -22Db -40Db

调试i2s
:/ # tinymix -D 1 5
Headset_PGAL_GAIN: 8Db 7Db 6Db 5Db 4Db 3Db 2Db 1Db 0Db -1Db -2Db >-3Db -4Db -5Db -6Db -7Db -8Db -9Db -10Db -11Db -12Db -13Db -14Db -15Db -16Db -17Db -18Db -19Db -20Db -21Db -22Db -40Db
:/ # tinymix -D 1 5 8
:/ # tinymix -D 1 5
Headset_PGAL_GAIN: 8Db 7Db 6Db 5Db 4Db 3Db 2Db 1Db >0Db -1Db -2Db -3Db -4Db -5Db -6Db -7Db -8Db -9Db -10Db -11Db -12Db -13Db -14Db -15Db -16Db -17Db -18Db -19Db -20Db -21Db -22Db -40Db

查看系统属性

adb shell 
:/ # getprop | grep vendor.connsys.formeta.re
[vendor.connsys.formeta.ready]: [yes]

adb截图

:/ # screencap -p /sdcard/fb0.png

EXPORT_SYMBOL函数的使用

Linux驱动编程中EXPORT_SYMBOL介绍

tar使用

tar –cvf jpg.tar *.jpg //将目录里所有jpg文件打包成tar.jpg
tar –xvf file.tar //解压 tar包

打开log

## 打开lk 到 kernel 的log
+++ b/vendor/mediatek/proprietary/bootable/bootloader/lk/app/mt_boot/mt_boot.c
@@ -1341,7 +1341,7 @@ int boot_linux_fdt(void *kernel, unsigned *tags,
 #endif
                                cmdline_append("mtk_printk_ctrl.disable_uart=0");
                        else
-                               cmdline_append("mtk_printk_ctrl.disable_uart=1");
+                               cmdline_append("mtk_printk_ctrl.disable_uart=0");

## 打开kernel 的log
+++ b/kernel-4.14/drivers/misc/mediatek/mtprintk/mtk_printk_ctrl.c
@@ -51,8 +51,8 @@ bool mt_get_uartlog_status(void)
 void mt_disable_uart(void)
 {
        /* uart print not always enable */
-       if (printk_ctrl != 2)
-               printk_ctrl = 1;
+       //if (printk_ctrl != 2)
+       //      printk_ctrl = 1;
 }

查找pc报错

addr2line -f -e out/target/product/[PROJECT]/obj/KERNEL_OBJ/vmlinux ffffff800808b640

查看dpi

:/ # wm size
Physical size: 800x1280
:/ # wm density
Physical density: 160

查看报点率

getevent -r /dev/input/event4

DB文件路径

一. DB的路径
DB的路径只有两种路径:/data/aee_exp或者/sdcard/mtklog/aee_exp。其中/sdcard一般是内置sdcard。DB实际存放路径的规则如下:

(1)ENG版本

ENG版本默认是打开MTKLogger,所以一般情况下DB优先放到在/sdcard/mtklog/aee_exp。但是当发生的是KE重启这类异常,此时MTKLogger还没起来,则aee_exp会生成在/data/aee_exp。

(2)USER版本

USER版本默认是关闭MTKLogger,所以此时DB是生成在/data/aee_exp。但是如果在USER版本将MTKLogger打开,则aee_exp是生成在/sdcard/mtklog/aee_exp。

二. aee_exp下的DB个数
USER版本关闭MTKLogger的情况下,只有发生的是Fatal级别的异常才会抓取DB(包含KE,异常reboot,system_server出现异常的JE和NE以及software WatchDog)。且aee_exp最多保存4个DB文件,名称如db.xx.dbg,其中xx为“00”,“01”,“02”,“03”,再发生异常时依次覆盖“01”,“02”,“03”,会一直保留最老的“00”。
除此之外的其它情况下是会抓取包括Exception级别的异常DB,且aee_exp最多会保存20个DB文件(db.00.dbg,db.01.dbg,…db.19.dbg),再发生异常时依次覆盖“01”,“02”,“03”…“19”,会一直保留最老的“00”。

批量文本替换

sed -i "s/原字符串/新字符串/g" *.c

cctv2 连接

adb root
adb shell setenforce 0 
adb shell chmod -R 777 dev/ttyGS0
adb shell chmod -R 777 dev/block/mmcblk0p1
adb shell start atci_service
adb shell start atcid-daemon-u
adb shell setprop sys.usb.config mass_storage,adb,acm

查看pwm频率

/sys/kernel/debug/pwm

修改gsensor

/sys/bus/platform # cat drivers/gsensor/layout
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值