linux 内核调试 booting the kernel.,Uncompressing Linux...done, booting the kernel解决办法
u-boot是好的,是刚移植成功的,用其他的内核跑过没问题。所以皇莡-boot传参有问题,问题就是出在我移植的内核上面。
我用的是mini2440的配置,linux2.6.35的内核。网上找了很多资料试了都没有,开了CONFIG_DEBUG_LL(这个选项是在Kernel hacking里面,需要你打开Kernel low-level debugging functions & Kernel Low-level debugging message via S3C UART)本来想看下出错信息的,加了之后连Uncompressing Linux...done, booting the kernel都没有了。悲剧。
后来没办法,只能设死循环调试。后来发现在 bl __lookup_machine_type 这条语句(在arch/arm/kernel/head.S中) 执行之后返回的r5寄存器一直是0. 由此可以推测我的MACHINE_TYPE肯定出问题了。
去arch/arm/mach-s3c2440/mach-mini2440.c 查看下面这个结构体:
MACHINE_START(MINI2440, "MINI2440")
/* Maintainer: Michel Pollet */
.phys_io = S3C2410_PA_UART,
.io_pg_offst = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,
.boot_params = S3C2410_SDRAM_PA + 0x100,
.map_io = mini2440_map_io,
.init_machine = mini2440_init,
.init_irq = s3c24xx_init_irq,
.timer = &s3c24xx_timer,
MACHINE_END
问题就是出在第一行的MINI2440,因为这个宏定义扩展之后的machine type 就成了 MACHINE_TYPE_MINI2440, 而我在u-boot定义的是MACHINE_TYPE_S3C2440,因此不匹配导致内核不识别死在这里了。
将MINI2440改成S3C2440后内核成功起来。诶,浪费了好几个小时,脑子转太慢了。
linux 内核调试 booting the kernel.,Uncompressing Linux...done, booting the kernel解决办法相关推荐
- linux 内核调试 booting the kernel.,Linux无法启动解决 booting the kernel.
使用mini2440带的Linux2.6.32 使用u-boot 1.3.4引导时候无法启动内核,一直停留在以下这地方: done Bytes transferred = 2286856 (22e50 ...
- Linux Kernel - Debug Guide (Linux内核调试指南 )
linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 ...
- linux内核调试指南
Hunnad的专栏 * 条新通知 * 登录 * 注册 * 欢迎 * 退出 * 我的博客 * 配置 * 写文章 * 文章管理 * 博客首页 * * * * 空间 * 博客 * 好友 * 相册 * 留言 ...
- linux下jtag命令,[转载]LINUX内核调试过程(使用OpenJtag + OpenOCD)
[转载]LINUX内核调试过程(使用OpenJtag + OpenOCD) (2012-04-12 02:02:27) 标签: 杂谈 [转载]LINUX内核调试过程(使用OpenJtag + Open ...
- Linux内核调试技术指南
前两天,完成了ucos在2440上的移植,以及boot的修改.今天突然想到,我在linux下,该如何来编写,调试比较复杂的驱动.我想这个问题应该从如何调试内核入手,先转载两个文字,待西西看来. 系统搭 ...
- 开源项目-基于Intel VT技术的Linux内核调试器
本开源项目将硬件虚拟化技术应用在内核调试器上,使内核调试器成为VMM,将操作系统置于虚拟机中运行,即操作系统成为GuestOS,以这样的一种形式进行调试,最主要的好处就是调试器对操作系统完全透明.如下 ...
- Linux内核调试 - 一般人儿我都不告诉他(一)【转】
转自:http://www.cnblogs.com/armlinux/archive/2011/04/14/2396821.html 悄悄地进入Linux内核调试(一) 本文基址:http://blo ...
- Linux 内核调试器 调试指南
Linux 内核调试器内幕 KDB 入门指南 Hariprasad Nellitheertha (nharipra@in.ibm.com), 软件工程师, IBM 简介: 调试内核问题时,能够跟踪内核 ...
- Linux内核调试的方式以及工具集锦
Linux内核调试的方式以及工具集锦 CSDN GitHub Linux内核调试的方式以及工具集锦 LDD-LinuxDeviceDrivers/study/debug 本作品采用知识共享署名-非商 ...
- Linux内核调试原理和工具介绍--理解静态插装/动态插装、tracepoint、ftrace、kprobe、SystemTap、Perf、eBPF
可以将linux跟踪系统分成Tracer(跟踪数据来自哪里),数据收集分析(如"ftrace")和跟踪前端(更方便的用户态工具). 1. 数据源(Tracers) printk 是 ...
最新文章
- 烦死调参数-想设计一个自动调参机制
- REM重复制造的冲销
- 修改选择文件按钮,变成自己设置的样式
- Cassandra Gossip协议的二三事儿
- Python编程常见出错信息及原因分析(3)
- pythonfor循环输入_python的for循环
- 【转】js获取当前日期时间“yyyy-MM-dd HH:MM:SS”
- java金字塔显示_java控制台输出数字金字塔示例分享
- Project Euler Problem 14 Longest Collatz sequence
- 计算机二级C语言题库(60套真题+刷题软件)2022年9月份新题第二套
- 免费模板 | 高颜值超实用,这套财务分析模版自带BUFF加成
- react梳理之redux
- MaNGOS工程概介
- 快被95后新人整疯:啥都不会,情商低,乱怼人!
- vue视频播放 切换视频地址后还播放之前的路径视频
- java.lang.OutOfMemoryError
- 什么是软件测试,软件测试的目的?
- fieldOfView
- 2020美国纽约大学计算机科学排名,纽约大学计算机科学与工程世界排名2020年最新排名第27(ARWU世界排名)...
- 经销商转型为什么要选择移动订货平台?
热门文章
- Android之利用JSBridge库实现Html,JavaScript与Android的所有交互
- MYSQL外键(Foreign Key)的使用
- 竟然是它:# vi /etc/resolv.conf
- visual Studio 2010 自带报表RDLC动态生成
- java 和 flash socket通信封装
- 比特币分叉两年记:聊聊当年为什么要分叉?
- web与APP之间的交互---WebViewJavascriptBridge
- centos 6.5下KVM环境搭建
- 学习linux决心书
- nginx服务器安全,要注意的地方