当前位置: 首页 > 工具软件 > fb-adb > 使用案例 >

MTK 驱动---ADB 调试相关命令

薛俊美
2023-12-01
  1. 一、通用

  2. adb root // user版本adb root之后就可以cat节点

  3. adb shell

  4. adb reboot // 重启

  5. reboot

  6. reboot -p // 关机

  7. adb remount

  8. adb pull /data/media/0/mtklog e:mtklog/

  9. adb push e:mtklog/ /data/media/0/mtklog // push之前需要adb remount

  10. rm -r /data/media/0/mtklog

  11. git add --all && git commit -m "before modify" // 保存调试现场

  12. adb stop // 仅重启android,不重启kernel

  13. adb start

  14. 二、调试

  15. 1. 查看内核log

  16. cat /proc/kmsg | grep "tp|lcm" // 容易断

  17. cat /dev/kmsg | grep "tp|lcm" // row不会断

  18. 导出:adb shell cat /proc/kmsg > e:kernel.log

  19. 2. 查看上层log

  20. 查看:

  21. logcat | grep "FingerprintHal"

  22. 导出:

  23. logcat | grep "FingerprintHal" > log.txt

  24. adb logcat > d:\log.txt

  25. 3.dmesg充当串口log -- 但是无preloader与lk的log

  26. 增大内核缓冲区 - 修改kernel-3.18\kernel\printk\printk.c

  27. -332 #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT)

  28. +332 #define __LOG_BUF_LEN (1 << CONFIG_LOG_BUF_SHIFT << 5)

  29. adb shell dmesg > log.log //查看内核缓冲区log(包括开机log,同串口log)

  30. 4. 查看input上报信息: tp,keypad,sensor

  31. getevent -i

  32. getevent -t /dev/input/eventX

  33. 4.1 getevent -l /dev/input/eventX // 可以查看键值坐标,如:

  34. // =========虚拟按键按下所报键值===========

  35. EV_ABS ABS_MT_TOUCH_MAJOR 00000014

  36. EV_ABS ABS_MT_TRACKING_ID 00000000

  37. EV_KEY BTN_TOUCH DOWN

  38. EV_ABS ABS_MT_POSITION_X 0000003c // 换成十进制为(60,2100)

  39. EV_ABS ABS_MT_POSITION_Y 00000640 // 换成十进制为(60,2100)

  40. EV_SYN SYN_MT_REPORT 00000000

  41. EV_SYN SYN_REPORT 00000000

  42. EV_KEY BTN_TOUCH UP

  43. EV_SYN SYN_MT_REPORT 00000000

  44. EV_SYN SYN_REPORT 00000000

  45. 5. 查看pin脚模式- 特别注意:输入输出 dir:0-in 1-out

  46. cat /sys/class/misc/mtgpio/pin

  47. PIN:MODE,PULL_SEL,DIN,DOUT,PULL EN,DIR,IES,SMT

  48. 0: 1 1 1 0 1 0 1 0

  49. 1: 0 0 0 0 1 0 1 0

  50. 写值

  51. echo \"-w=99:0 1 0 0 0 0 0 1\" > /sys/class/misc/mygpio/pin

  52. 6. 查看中断

  53. 1. 查看中断是否注册成功

  54. cat /proc/interrupts

  55. CPU0 CPU1

  56. 29: 0 0 GIC 29 arch_timer

  57. ...

  58. 196 0 0 GIC 196 mtk-tpd

  59. ...

  60. 298: 376 mt-eint 10 TOUCH_PANEL-eint

  61. 2. 查看是否有中断计数是否增加

  62. cat /proc/interrupts | grep " TOUCH_PANEL-eint"

  63. 298: 376 mt-eint 10 TOUCH_PANEL-eint // 376

  64. cat /proc/interrupts | grep " TOUCH_PANEL-eint"

  65. 298: 387 341 301 mt-eint 10 TOUCH_PANEL-eint // 387

  66. cat /proc/interrupts | grep " TOUCH_PANEL-eint"

  67. 298: 399 355 309 mt-eint 10 TOUCH_PANEL-eint // 399

  68. cat /proc/interrupts | grep " TOUCH_PANEL-eint"

  69. 298: 401 362 316 mt-eint 10 TOUCH_PANEL-eint // 401

  70. 7. 查看进程

  71. root@Z PLAY:/system/bin # ps | grep mem // 查看进程

  72. system 256 1 1184 384 c0051864 b6fb1310 S /system/bin/memsicp

  73. root@Z PLAY:/system/bin # kill 256 // 杀死进程

  74. // eng版本才能手动启动进程

  75. 1) adb remount

  76. 2) adb push

  77. 3) xxx &

  78. root@Z PLAY:/system/bin # memsicp // 手动启动进程,不会退出

  79. root@Z PLAY:/system/bin # memsicp & // 后台运行

  80. 8. 串口设置 - 板子上的TXD

  81. 波特率 : 921600

  82. data bits : 8

  83. stop bits : 1

  84. parity : None

  85. flow control: None

  86. 三、lcm

  87. 1. 查看机器中lcm型号:

  88. cat /proc/cmdline // 包含lcm的型号(6.0有,7.0没有-需要可以自己加)

  89. 1.1 自己加:

  90. alps/vendor/mediatek/proprietary/bootable/bootloader/lk/app/mt_boot/mt_boot.c

  91. - //#define SERIAL_NUM_FROM_BARCODE

  92. + #define SERIAL_NUM_FROM_BARCODE

  93. int boot_linux_from_storage(void)

  94. + snprintf(cmdline_tmpbuf, CMDLINE_TMP_CONCAT_SIZE, "lcm=%1d-%s", DISP_IsLcmFound(), mt_disp_get_lcm_id());

  95. + cmdline_append(cmdline_tmpbuf);

  96. + snprintf(cmdline_tmpbuf, CMDLINE_TMP_CONCAT_SIZE, "fps=%1d", mt_disp_get_lcd_time());

  97. + cmdline_append(cmdline_tmpbuf);

  98. + snprintf(cmdline_tmpbuf, CMDLINE_TMP_CONCAT_SIZE, "vram=%1d", DISP_GetVRamSize());

  99. + cmdline_append(cmdline_tmpbuf);

  100. 2. 查看系统分辨率

  101. cat /system/build.prop | grep lcd_density // 得“240”

  102. 四、tp

  103. 1. 在tp还不通的时候/frameworks/base/include/ui/KeycodeLabels.h中定义了很多keyevent

  104. inut keyevent 3 //home

  105. inut keyevent 4 //back

  106. inut keyevent 26 //power

  107. 2 通过sys节点读取

  108. cat /sys/board_properties/virtualkeys.mtk-tpd // 获取软件中虚拟按键坐标

  109. 五、camera

  110. 1 查看是否读到id

  111. cat /proc/driver/camera_info // 查看已经读到ID的camera

  112. 2 后副摄调试节点 - microhand公司自己实现

  113. cat /proc/driver/dualcam_brightness // 1 -- 光线强 0 -- 光线弱 有变化说明驱动通了,但是没有虚化效果,是因为上层的宏没配

  114. cat /sys/bus/platform/drivers/image_sensor/yuv_shutter // 可以获得亮度值

  115. 六、sensor

  116. 1.架构实现 - 两个路径的节点是一样的,cat出来也是相同的,hal层走class

  117. /sys/class/misc/m_acc_misc/***

  118. /sys/devices/virtual/misc/m_acc_misc/*** 有若干属性,可以读写操作

  119. cat /sys/.../accenablenodata -- 不支持 echo 0/1 > 无作用

  120. cat /sys/.../accactive -- 1(使能) echo 0 > /sys/.../accactive -- disable

  121. cat /sys/.../accdelay(不常用)

  122. cat /sys/.../accbatch(不常用)

  123. cat /sys/.../accflush(不常用)

  124. cat /sys/.../accdevnum -- 4(/dev/input/event4)

  125. 2.驱动实现

  126. /sys/bus/platform/drivers/gsensor/*** 有若干属性,可以读写操作

  127. * cat /sys/.../chipinfo -- MC3XXX Chip -- 直接打印MC3XXX Chip

  128. * cat /sys/.../sensordata -- 1758 0695 1b88 -- 读地址0x00

  129. cat /sys/.../cali -- 三组校准数据 -- 第二组为校准系数,上层未下发就为0

  130. cat /sys/.../selftest -- 空(未设置)

  131. cat /sys/.../firlen -- 0 -- 滤波长度 - 从dts获得 - 全部为0

  132. cat /sys/.../trace -- 0x0000 -- mc3xxx_i2c_probe()把它设置为0

  133. cat /sys/.../status -- CUST: 2 7 <-1 0> -- i2c_num direction <power_id power_vol> - 从dts获取

  134. cat /sys/.../power -- 亮屏0x0041,灭屏0x0043 -- 读地址0x07

  135. cat /sys/.../version -- 2.1.6 -- 打印驱动的宏

  136. * cat /sys/.../chipid -- 7C-5F-5E-46 -- 读地址0x3C

  137. cat /sys/.../virtualz -- 不支持

  138. * cat /sys/.../regmap -- 打印所有寄存器的值

  139. * cat /sys/.../orientation -- 方向 -- 从dts获取 echo 7 > /sys/.../orientation

  140. cat /sys/.../accuracy -- 2(精度 - 宏设置)

  141. cat /sys/.../selfcheck -- 乱码

  142. cat /sys/.../validate -- 0(验证成功) -- 从0x3b读出pcode - 匹配mc3***系列芯片 - 验证成功返回0

  143. 七、马达

  144. 1.调试马达震动时间 1000毫秒=1秒:

  145. echo 1000 > /sys/class/timed_output/vibrator/enable (节点)

 类似资料: