在u-boot和kernel中都会有一个机器码(即:MACH_TYPE),只有这两个机器码一致时才能引导内核,否则就会出现如下mach的错误信息:

Error: unrecognized/unsupported machine ID (r1 = 0x0000270f).

Available machine support:

ID (hex)   NAME

0000016a SMDK2440

Please check your kernel config and/or bootloader.

这是因为在uboot中的机器码是0x0000270f,即9999,跟linux内核机器码不一致造成的。下面我们来查看一下uboot的机器码:

a.打开uboot目录下的board/GT2440/GT2440.c文件,找到如下语句:

gd->bd->bi_arch_number = MACH_TYPE_GT2440;

这里的MACH_TYPE_GT2440就是uboot的机器码,我们查看一下这个码值。

b.打开uboot目录下的include/asm-arm/mach_types.h文件,在头文件里面找到:

#define MACH_TYPE_GT2440  9999

下面我们对uboot和linux内核的机器码作更改使其保持一致。

1.打开uboot目录下的board/GT2440/GT2440.c文件,将“gd->bd->bi_arch_number = MACH_TYPE_GT2440;”更改为“gd->bd->bi_arch_number = MACH_TYPE_S3C2440;”,此处的机器码值为362;

2.打开linux内核目录下的arch/arm/mach-s3c2440/mach_smdk2440.c文件,将其“MACHINE_START(S3C2440, "SMDK2440")”中的第一项改为与uboot码值对应的宏,在这里是S3C2440。

经过上述更改,重新编译后运行就不再出现机器码不匹配的问题了。

linux内核 机器码,uboot 与 linux 内核机器码相关推荐

  1. linux内核 机器码,u-boot与Linux内核机器码问题

    在<>一文中,执行完第6步的操作后,启动u-boot后,用bootm 命令来引导内核(执行bootm 0x30008000),但是执行后,卡住了,无法启动内核,现象如下: Starting ...

  2. uboot移植——启动内核

    文章目录 1. uboot和内核到底是什么 1.1 uboot是一个裸机程序 1.2内核本身也是一个"裸机程序" 1.3部署在SD卡中特定分区内 1.4运行时必须先加载到DDR中链 ...

  3. uboot如何启动内核

    一.uboot和内核到底是什么 1.uboot和内核就是一个裸机程序 (1)uboot的本质就是就是一个复杂点的裸机程序,和ARM部分写的裸机程序没有本质区别. (2)内核本身也是一个裸机程序,和ub ...

  4. uboot引导linux内核,u-boot启动内核的几种方式

    1.uboot启动内核的代码缩减如下: s = getenv ("bootcmd"); debug ("### main_loop: bootcmd=\"%s\ ...

  5. uboot和Linux内核移植

    这篇文章是一个读者昨晚发给我的,文章很长,里面的细节也比较多,但是微信公众号只能发 50000 字的文章,如果想阅读全文. 请发送「 uboot和Linux内核移植 」到公众号后台获取下载链接. 这篇 ...

  6. u-boot与linux内核间的参数传递过程分析

     转自:http://blog.csdn.net/u012075739/article/details/52252991 http://www.nishizawa23.com/ http://li ...

  7. Linux系统从uboot到内核启动流程

    1. BROM引导: ARM CPU刚上电时,它的PC寄存器指针指向IC内嵌的一片ROM的起始位置处,这片ROM称之为BROM(boot rom),系统就是通过这片BROM引导起来的.BROM的空间比 ...

  8. uboot linux内核传递参数,Uboot与Linux之间的参数传递详解

    原标题:Uboot与Linux之间的参数传递详解 U-boot会给Linux Kernel传递很多参数,如:串口,RAM,videofb等.而Linux kernel也会读取和处理这些参数.两者之间通 ...

  9. uboot和linux内核移植,Uboot与kernel移植总结

    设置uimage入口:由于一个可执行的Image必须有一个入口点,并且只能有一个全局入口,通常这个入口放在ROM(Flash)的0x0地址,因此,必须通知编译器以使其知道这个入口,该工作可通过修改连接 ...

最新文章

  1. 92.芯片组 93.北桥 94.南桥
  2. h3c GR5200路由器上如何设置公网ip可以访问
  3. [USACO1.4]母亲的牛奶 Mother's Milk
  4. mysql实用管理器添加外键_MySQL 添加外键
  5. [leetcod] Clone Graph
  6. python自动生成表格_Python自动整理 Excel 表格
  7. html cols跨两列,html – CSS奇怪,甚至有2个cols
  8. vue 引入qunee_Vue页面中js引入的问题
  9. java怎么让遮罩层下面滚动_vue项目弹出层后禁止body底层的滚动事件
  10. 澳大利推出NB-IOT网络 加速物联网应用
  11. 深入浅出妙用 Javascript 中 apply、call、bind
  12. The (Near) Future of Database | TiDB DevCon 2019
  13. 用Python模拟同步时钟
  14. JDBC学习笔记(动力节点+附代码分析)
  15. 七日杀服务器技能点修改,七日杀技能点修改方法 七日杀技能点怎么调
  16. qq登录无法连接服务器未响应,win7登录qq提示腾讯qq未响应的解决方法
  17. Python多进程和多线程的使用场景
  18. 基于PyQt5、metpy和matplotlib的探空资料可视化界面
  19. Ubuntu 18.04 run方式安装Cuda9.0 惠普Z6工作站
  20. 微软输入法的m图标怎么设置_如何在Microsoft Word中获取“ L”形的格式设置图标?...

热门文章

  1. 【msvcp110.dll下载】msvcp110.dll丢失修复
  2. 讲座学习: 4th WQF Blanka Horvath_Deep Hedging under Rough Volatility(一)
  3. 谷歌浏览器table不规则表格使用rowspan/colspan导致线条粗细不同
  4. ISIS-ISIS高级特性—05
  5. 演讲稿丨傅小兰 Simon与认知科学研究
  6. 程序员一定要明白的架构:三地五中心(1)
  7. 微信和支付宝对我们生活产生翻天覆地的改变
  8. 初识数据结构:链表实现图书信息管理系统(C语言,仅供参考)
  9. 怎样做好局域网带宽管理
  10. 李迟2022年7月工作生活总结