linux 内核调试 booting the kernel.,booting the kernel后无内核启动信息的调试方法
移植内核经常会出现
Uncompressing Linux................................................................ done, booting the kernel.
后无启动信息的状况,此时有下面调试方法:
一. 使用low level debug
1. 内核编译时要打开:kernel hacking->kernel debuging->low level debug(这时要确认下arch/arm/kernel/debug.S(2.6),或debug-armv.S(2.4)里是否有相应MCU的UART实现,没有就移植别的,主要是正确设置UART发送寄存器地址)
示例代码:
1 #if defined(CONFIG_ARCH_MX2ADS)
2 #warning CONFIG_ARCH_IMX21 defined
3 .macro addruart,rx
4 mrc p15, 0, \rx, c1, c0
5 tst \rx, #1 @ MMU enabled?
6 moveq \rx, #0x10000000 @ Physical
7 movne \rx, #0xe4000000 @ Virtual
8 orr \rx, \rx, #0xa000
9 orr \rx, \rx, #0x40
10 .endm
11 .macro senduart,rd,rx
12 str \rd, [\rx] @ TXDATA
13 .endm
14 .macro waituart,rd,rx
15 .endm
16 .macro busyuart,rd,rx
17 1002: ldrb \rd, [\rx, #0x54]
18 @ Check TRDY in USR1_1 (phys=0x1000a094)
19 and \rd, \rd, #0x2000
20 cmp \rd, #0x2000
21 bne 1002b
22 .endm
23 #endif
然后在要调试的地方加上printascii("XXX")进行调试。
二。使用printk buffer
当内核刚启动时,printk还不能将信息输出到串口或LCD,只是将它们记录到log buffer,启始地址为__log_buf(可从System.map得到),然后重启进到uboot,使用md查看buf里的信息。
例如:
System.map
c0363bac b printk_time
c0363bb0 b __log_buf
c0373bb0 b console_cmdline
1 u-boot #md 0xc0363bb02 c0363bb0: 4c3a353c 78756e69 72657620 6e6f6973 <5:Linux version
3 c0363bc0: 362e3220 2e35332e 620d3231 682d3174 2.6.35.12.bt1-h
4 c0363bd0: 30353369 30317635 72282030 40746f6f i3505v100 (root@
5 c0363be0: 61636f68 736f686c 6f6c2e74 646c6163 hocalhost.locald
6 c0363bf0: 69614d6f 2820296e 20636167 73726576 oMain) (gac vers
7 c0363c00: 206e6969 2e352e34 53282032 58694e4f iin 4.5.2 (SONiX
8 c0363c10: 43434520 352e342d 5220122e 61656c65 ECC-4.5.. Relea
9 c0363c20: 12206573 2d313130 300d1231 29202936 se .011-1..06) )
10 c0363c30: 32312320 64655720 63654420 20383220 #12 Wed Dec 2811 c0363c40: 352a3930 38353a33 54520320 31303220 09*53:58 .RT 201
12 c0363c50: 343c0a31 5550433e 5241203a 3632394d 1.<4>CPU: ARM926
13 c0363c60: 532d4a45 31345b20 32393630 205d3536 EJ-S [41069265]
14 c0363c70: 68766572 6e6f6973 28203520 764d5241 revhsion 5 (ARMv
15 c0363c80: 4a415435 63202c29 30303d72 31333530 5TAJ), cr=000531
16 c0363c90: 3c0a3737 50433e34 56003a55 20545649 77.<4>CPU:.VIVT
17 c0363ca0: 61746164 63616320 202c6168 54564956 data cacha, VIVT
linux 内核调试 booting the kernel.,booting the kernel后无内核启动信息的调试方法相关推荐
- linux mysql端口启动失败怎么办,Linux下apache mysql等服务修改默认端口后无法正常启动解决办法...
Linux下apache mysql等服务修改默认端口后无法正常启动解决办法 linux下 apache 等服务修改默认端口后无法正常启动解决办法 服务器上装了两个webserver,一个是nginx ...
- linux分区合并不损坏系统,更改磁盘分区后修复GRUB启动
上次为了通过硬盘引导安装Linux(见上一篇文章 http://www.linuxidc.com/Linux/2015-01/111190.htm),专门分了一个1GB的FAT32分区.今天回到Win ...
- xp下添加linux启动项,grub.cfg--XP+ Ubuntu10.04双系统安装后无XP启动项
问题描述: Ubuntu 10.04发布了,随即裸机安装了Windows XP ,然后用U盘启动盘安装了Ubuntu 10.04,安装速度飞快(不到10分钟吧),但是装上后发现在grub启动项里没有X ...
- 一种解决 【Jupyter Notebook 由于超时无法打开kernel】与【Pycharm 卡在启动界面】的方法
目录 问题描述 解决方案 原因探究 问题描述 今儿打开Jupyter Notebook(vscode配置),刚运行就给我报一错.问题界面如下: 关键在于这条信息是立即报出的,并不是常见的timeout ...
- linux镜像文件没有gho,使用OneKey备份系统后找不到GHO系统文件解决方法
备份系统后当我们系统出现无法解决的故障问题或系统运行不流畅等问题时,那么就可以轻松的使用一键还原工具来恢复备份时的系统.有用户在使用OneKey一键还原备份系统之后,在原来保存的GHO系统文件的磁盘路 ...
- linux内核跳转到文件系统,Uboot到Kernel到文件系统(Cortex_A9)移植详细文档
处理器:Exynos4412 Cortex_A9 四核 一: 4412 uboot 目录: uboot基本配置编译 make xxx_config 编译结果如上图. Uboot启动第一阶段分析: 1 ...
- Linux Kernel 5.8 发布,华为内核代码贡献全球持续领先
近日, Linux Kernel 5.8 版本正式发布,Linus 表示 Linux Kernel 5.8 是"有史以来最大的发行版之一".Linux Kernel 5.8 在 A ...
- 【Linux系统移植】NXP 官方开发板 kernel内核 编译与烧录
1.下载 NXP 官方 I.MX6ULL EVK 开发板的kernel :linux-imx-rel_imx_4.1.15_2.1.0_ga.tar.bz2 2.使用 FileZilla Client ...
- pe修复linux驱动,【CTF习题】BrokenDrivers(驱动修复及内核调试)
初步分析 本题是驱动的修复及调试--(:з」∠) 拿到sys文件,发现是PE格式,于是直接IDA反编译 沿着DriverEntry向里查找,发现这里 这里创建了硬件设备对象和符号链接并传入Driver ...
最新文章
- 适合初学者的数据结构_数据结构101:数组-初学者的直观介绍
- Hibernate generator
- 智能推荐算法在直播场景中的应用
- php安全配置总结,php安全配置详细说明(1/2)_PHP教程
- 北京大学2016年高等代数与解析几何考研试题
- 最全总结,GitHub Action自动化部署
- Fiddler-学习笔记-远程抓包
- ES6新特性_ES6生成器函数声明与调用---JavaScript_ECMAScript_ES6-ES11新特性工作笔记020
- 天池学习赛:工业蒸汽量预测1——数据探索
- 5. soapui 测试
- 外螺纹对照表_常用螺纹规范对照表
- java用正则表达式大全_Java 正则表达式 大全
- 神舟linux装win7教程,神舟战神G70装win7系统及bios设置教程(神舟G70台式机win10改win7)...
- FPS游戏的方框透视+自瞄原理
- 什么表示计算机的存储容量,存储容量
- word文档下面有红色波浪线如何解决
- Compilation is not supported for following modules
- HTML中svg的作用,html中的svg可以用来干什么
- 当在jup里面更新了数据源之后就 帅选不了数据 ,代码运行不了
- Sui改进提案(SIPs)及其审核流程
热门文章
- IBM ThinkPad F11系统恢复完全技巧
- Cordova app 检查更新 ----JS进行调用(二)
- 关于ROHDESCHWARZ公司电流探头EZ-17系数修正的说明 1
- 华为云访问密钥AK\SK获取
- 2021年初oracle最新版本是多少_Oracle升级该怎么选版本
- Java基本语法(初学者必看,值得收藏)
- 显卡刷bios变砖怎么办--关于矿卡,一些惊呆我的骚操作
- redis统计用户日活量_使用redis统计用户日活、月活(实践版)
- GFW 三定律,太有创意了,太真实了,胆太大,竟敢光天化日下说实话!
- oracle数据库存储管理--ASM