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解决办法相关推荐

  1. linux 内核调试 booting the kernel.,Linux无法启动解决 booting the kernel.

    使用mini2440带的Linux2.6.32 使用u-boot 1.3.4引导时候无法启动内核,一直停留在以下这地方: done Bytes transferred = 2286856 (22e50 ...

  2. Linux Kernel - Debug Guide (Linux内核调试指南 )

    linux内核调试指南 一些前言 作者前言 知识从哪里来 为什么撰写本文档 为什么需要汇编级调试 ***第一部分:基础知识*** 总纲:内核世界的陷阱 源码阅读的陷阱 代码调试的陷阱 原理理解的陷阱 ...

  3. linux内核调试指南

    Hunnad的专栏 * 条新通知 * 登录 * 注册 * 欢迎 * 退出 * 我的博客 * 配置 * 写文章 * 文章管理 * 博客首页 * * * * 空间 * 博客 * 好友 * 相册 * 留言 ...

  4. linux下jtag命令,[转载]LINUX内核调试过程(使用OpenJtag + OpenOCD)

    [转载]LINUX内核调试过程(使用OpenJtag + OpenOCD) (2012-04-12 02:02:27) 标签: 杂谈 [转载]LINUX内核调试过程(使用OpenJtag + Open ...

  5. Linux内核调试技术指南

    前两天,完成了ucos在2440上的移植,以及boot的修改.今天突然想到,我在linux下,该如何来编写,调试比较复杂的驱动.我想这个问题应该从如何调试内核入手,先转载两个文字,待西西看来. 系统搭 ...

  6. 开源项目-基于Intel VT技术的Linux内核调试器

    本开源项目将硬件虚拟化技术应用在内核调试器上,使内核调试器成为VMM,将操作系统置于虚拟机中运行,即操作系统成为GuestOS,以这样的一种形式进行调试,最主要的好处就是调试器对操作系统完全透明.如下 ...

  7. Linux内核调试 - 一般人儿我都不告诉他(一)【转】

    转自:http://www.cnblogs.com/armlinux/archive/2011/04/14/2396821.html 悄悄地进入Linux内核调试(一) 本文基址:http://blo ...

  8. Linux 内核调试器 调试指南

    Linux 内核调试器内幕 KDB 入门指南 Hariprasad Nellitheertha (nharipra@in.ibm.com), 软件工程师, IBM 简介: 调试内核问题时,能够跟踪内核 ...

  9. Linux内核调试的方式以及工具集锦

    Linux内核调试的方式以及工具集锦 CSDN GitHub Linux内核调试的方式以及工具集锦 LDD-LinuxDeviceDrivers/study/debug  本作品采用知识共享署名-非商 ...

  10. Linux内核调试原理和工具介绍--理解静态插装/动态插装、tracepoint、ftrace、kprobe、SystemTap、Perf、eBPF

    可以将linux跟踪系统分成Tracer(跟踪数据来自哪里),数据收集分析(如"ftrace")和跟踪前端(更方便的用户态工具). 1. 数据源(Tracers) printk 是 ...

最新文章

  1. A - Wireless Network POJ - 2236
  2. Java 继承 执行顺序
  3. 中国矿业大学考研计算机技术,中国矿业大学(北京)(专业学位)计算机技术考研难吗...
  4. Ubuntu16.04上安装kitti2bag
  5. 电脑知识:BIOS和UEFI的对比介绍!
  6. linux命令创建硬链接,Linux终端命令接口(十一)硬链接与软连接
  7. 计算机的屏幕约是16平方分米吗,小明的卧室有16平方分米对不对
  8. oracle查看序列数据语法,oracle查询各种数据字典的语法
  9. 清华学霸被Facebook开除了
  10. Java String源码解析
  11. ios xcode文件前缀_关于ios8:Xcode 6错误:“嵌入式二进制文件的包标识符未以父应用程序的包标识符为前缀。”...
  12. 华为内部发文宣布部分部门停止社招,外包可成为新常态
  13. 免费版本的mysql与收费版本的区别
  14. 机械专业怎么学matlab,MATLAB在机械类专业课教学中的应用
  15. NOIP2016普及组复赛 解题分析
  16. 医院电子病历系统HIS、LIS、PACS、CIS源码
  17. 并列关系表合集PPT模板
  18. 联通沃云 服务器使用点滴
  19. 什么是linux系统管理指令,Linux必学的系统管理命令
  20. 自控力如何改善了我的生活

热门文章

  1. Linux虚拟文件系统简介
  2. Excel的合并解析
  3. 比较顺序表和链表的优缺点
  4. 【Paddy】数据库监控系列(一) - 监控理念
  5. AIX 系统迁移安装
  6. 装完sql后修改计算机名后不能进行发布的订阅的解决办法
  7. Qt Creator 常用快捷键
  8. centos 调整系统时间
  9. IT项目管理课程培训
  10. shell编程入门步步高(八、函数)