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. 烦死调参数-想设计一个自动调参机制
  2. REM重复制造的冲销
  3. 修改选择文件按钮,变成自己设置的样式
  4. Cassandra Gossip协议的二三事儿
  5. Python编程常见出错信息及原因分析(3)
  6. pythonfor循环输入_python的for循环
  7. 【转】js获取当前日期时间“yyyy-MM-dd HH:MM:SS”
  8. java金字塔显示_java控制台输出数字金字塔示例分享
  9. Project Euler Problem 14 Longest Collatz sequence
  10. 计算机二级C语言题库(60套真题+刷题软件)2022年9月份新题第二套
  11. 免费模板 | 高颜值超实用,这套财务分析模版自带BUFF加成
  12. react梳理之redux
  13. MaNGOS工程概介
  14. 快被95后新人整疯:啥都不会,情商低,乱怼人!
  15. vue视频播放 切换视频地址后还播放之前的路径视频
  16. java.lang.OutOfMemoryError
  17. 什么是软件测试,软件测试的目的?
  18. fieldOfView
  19. 2020美国纽约大学计算机科学排名,纽约大学计算机科学与工程世界排名2020年最新排名第27(ARWU世界排名)...
  20. 经销商转型为什么要选择移动订货平台?

热门文章

  1. Android之利用JSBridge库实现Html,JavaScript与Android的所有交互
  2. MYSQL外键(Foreign Key)的使用
  3. 竟然是它:# vi /etc/resolv.conf
  4. visual Studio 2010 自带报表RDLC动态生成
  5. java 和 flash socket通信封装
  6. 比特币分叉两年记:聊聊当年为什么要分叉?
  7. web与APP之间的交互---WebViewJavascriptBridge
  8. centos 6.5下KVM环境搭建
  9. 学习linux决心书
  10. nginx服务器安全,要注意的地方