首页
关于
友链
其它
统计
壁纸
Search
1
修改Linux Kernel defconfig的标准方法
6,244 阅读
2
cgroup--(4)cgroup v1和cgroup v2的详细介绍
6,098 阅读
3
Android系统之VINTF(1)manifests&compatibility matrices
5,754 阅读
4
使用git生成patch和应用patch
3,223 阅读
5
c语言的__attribute__
3,135 阅读
默认分类
文章收集
学习总结
算法
环境配置
知识点
入门系列
vim
shell
Git
Make
Android
Linux
Linux命令
内存管理
Linux驱动
Language
C++
C
工具
软件工具
Bug
COMPANY
登录
Search
标签搜索
shell
Linux
c
uboot
Vim
vintf
Linux驱动
Android
device_tree
git
DEBUG
arm64
链表
数据结构
IDR
内核
ELF
gcc
ARM
网址
adtxl
累计撰写
357
篇文章
累计收到
13
条评论
首页
栏目
默认分类
文章收集
学习总结
算法
环境配置
知识点
入门系列
vim
shell
Git
Make
Android
Linux
Linux命令
内存管理
Linux驱动
Language
C++
C
工具
软件工具
Bug
COMPANY
页面
关于
友链
其它
统计
壁纸
搜索到
7
篇与
的结果
2023-08-15
卡在Starting Kernel时如何查看kernel log
1. 简介Android的启动流程中,很多soc厂商在kernel启动前一阶段一般都是uboot。Starting kernel ...一般是默认情况下uboot能打印出的最后一行log.在这行log后面就是kernel的启动log.在开发过程中,我至少遇到两次印象深刻的问题,就是导致卡在Starting kernel...。由于没有kernel的log,导致很难继续debug。这里记录一种方法,可以在uboot中直接查看kernel启动时log的方法。当然,这个方法至少有两个前提:第一,就是kernel确实启动起来了,但可能因为有问题,又没完全启动到console初始化完成,导致无法在串口输出kernel log。因为打印starting kernel ...并不一定代表uboot是正常的,打印完这行log后uboot还是有些其它准备动作的,如何问题是出在uboot中,kernel并未完成启动,那自然也没办法查看kernel log了。第二,就是开发板必须有reset功能。也就是有reset按键,重启时ddr不断掉,数据不会丢失。因为卡在starting kernel后是没有办法再输命令的。只能按开发板中的reset回到uboot,或者有看门狗功能能自动重启。不过我也接触过一种开发板,可能是电源适配器的问题,虽然开发板上没有reset按键,但只要快速的开关电源,ddr上的数据也不会丢失。2.实操2.1 搞清楚kernel在ddr中的地址也就是kernel在ddr中运行的起始地址,我做的是android项目,从log中能直接看出来,如上所示,kernel在ddr中的的运行地址是0x04280000,需要记住这个物理地址。2.2 确定log_buf相对于kernel入口的偏移如下图,查看编译输出文件System.map。在文件中查找如下两个符号,然后再相减,ffff00000a5c9680-ffff000008080000=0x25496802.3 在uboot中使用md命令查看内存信息在上面已知了kernel实际的物理起始地址,以及log_buf相对于起始地址的偏移,因此很容易计算出log_bug在物理内存中的实际地址,即把两者相减即可,0x042800000+0x2549680=0x067c9680.然后在uboot中用md命令查看这段内存的数据,如下所示,通过不断的回车,可以一直显示完整的log内容,可以看下kernel中具体启动到哪里挂掉了,定位问题。
2023年08月15日
319 阅读
0 评论
3 点赞
2023-06-12
Android平台使用kgdb在线调试内核
1. 简介本文介绍的Kgdb调试方法是一种源码级的Linux内核调试器。使用Kgdb调试内核时,需要结合gdb一起使用,使用他们可以对内核进行单步调试,设置断点,观察变量、寄存器的值等。本文仅简单介绍使用串口的Kgbd的流程(kgdboc方式),除此之外还网卡方式即kdgboe方式,不做介绍。2. 步骤2.1 cmdline 传参修改uboot中的bootargs,增加如下console=ttyS0,115200 kgdboc=ttyS0,115200"2.2 kernel kgdboc config打开CONFIG_KGDB=y CONFIG_KGDB_KDB=y2.3 关闭wdt如果板子有打开wdt,需要关闭wdt3. kgdboc host端调试安装agent-proxy 虚拟串口,能够同时吐出log$ git clone http://git.kernel.org/pub/scm/utils/kernel/kgdb/agent-proxy.git $ cd path_to_agent-proxy_Dir $ make绑定串口,启动aget-proxy$ sudo ./agent-proxy 2223^2222 localhost /dev/ttyUSB0,115200 &连接到板子$ telnet localhost 2223 配置KGDBoC# echo ttyS0 > /sys/module/kgdboc/parameters/kgdboc进入kdb 模式# echo g > /proc/sysrq-trigger进入kgdb模式kdb> kgdbhost端另开一个窗口,进行如下操作:$ /opt/gcc-linaro-aarch64-linux-gnu-4.9-2014.09_linux/bin/aarch64-linux-gnu-gdb vmlinux进入gdb(gdb) target remote localhost:2222即可进入kgdb调试了reference linkhttps://docs.windriver.com/bundle/Wind_River_Linux_Tutorial_Kernel_Debugging_with_GDB_and_KGDB_LTS_1/page/hvd1552585247474.htmlhttps://blog.csdn.net/tinylab/article/details/45330771
2023年06月12日
516 阅读
0 评论
0 点赞
2023-05-24
使用gdb离线调试Android coredump文件记录
使用gdb离线调试Android coredump文件步骤1.aosp源码目录执行:./prebuilts/gdb/linux-x86/bin/gdbor 使用本机机器上的gdbgdb-multiarch2.进入gdb后设置symbols路径set solib-absolute-prefix xxx/symbols3.设置在symbols目录中药调试的文件,如果是app,可以选择app_processfile xxx/symbols/system/bin/app_process324.加载coredump文件core-file xxx/COREDUMP问题记录问题1:在ubuntu18上安装gdb在ubuntu上安装gdb-multiarch时,遇到下面的报错,也就是无法访问下面这个网站。从网上找了两个个方案:方案一就是把下面这个网站替换成一个国内的源方案二可以直接把这个源给注释掉由于是在公司内部,换源也是无法访问的,所以这里直接注释掉。修改/etc/apt/sources.list.d/目录里的文件,把有这个源的都注释掉。错误:67 http://ppa.launchpad.net/fcitx-team/nightly/ubuntu bionic InRelease 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::3e) 的连接 - connect (101: 网络不可达) 无法连接上 ppa.launchpad.net:80 (185.125.190.52),连接超时 错误:68 http://ppa.launchpad.net/ubuntu-toolchain-r/test/ubuntu bionic InRelease 无法发起与 ppa.launchpad.net:80 (2620:2d:4000:1::3e) 的连接 - connect (101: 网络不可达) 已下载 44.7 MB,耗时 30秒 (1,474 kB/s) 正在读取软件包列表... 完成问题2:使用aarch64版本的gdb提示 don't know how to handle section `.relr.dyn' [0x 13]?目标平台cpu是arm64的,编译的Android image是arm32,按照道理应该是使用arm版本的gdb调试。不过实际使用开发机gcc-6.3.1-2017这个版本里的gdb调试时,确有问题,bt也无法获取trace信息使用Android自带的这个x86版本的gdb竟然可以,也是不知道为啥。。。。。。./prebuilts/gdb/linux-x86/bin/gdb
2023年05月24日
713 阅读
0 评论
0 点赞
2022-11-17
Android Native调试--lldb on Vscode
暂无简介
2022年11月17日
1,075 阅读
0 评论
0 点赞
2022-04-24
cma的alignment
暂无简介
2022年04月24日
866 阅读
0 评论
0 点赞
2022-02-16
Bug:alloc_contig_range: [c1dab, c1dac) PFNs busy
暂无简介
2022年02月16日
1,399 阅读
0 评论
0 点赞
2021-07-13
编译的kernel 版本号带有-abxxx信息
问题描述:在发布的版本中,Linux kernel version带有-abxxxx信息,而在本地却不能复现,打印信息如下图所示:
2021年07月13日
842 阅读
0 评论
0 点赞