启动u-boot后,用bootm命令来引导内核(执行bootm 0x30008000),但是执行后,卡住了,无法启动内核,现象如下:

Starting kernel ...

Uncompressing Linux.............................................................

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

Available machine support:

ID (hex)        NAME

000000**        ****

从这里的提示信息可知,是u-boot的机器码和linux的不相同造成的,u-boot是0x000000c1(193),内核是0x000000**。大多数都是修改的linux内核的机器码,让它们一致即可。

先看u-boot的机器码和linux的机器码是在什么地方决定的。

1、 u-boot的机器码是在u-boot的board/fs2410/fs2410.c文件里决定的:

/* arch number of SMDK2410-Board */

gd->bd->bi_arch_number = MACH_TYPE_SMDK2410;

参照查看u-boot的include/asm-arm/mach-types.h文件,有:

#define MACH_TYPE_SMDK2410          193这就是我们上面看到r1 = 0x000000c1(193)的原因。

2、 而linux内核的机器码是由arch/arm/mach-s3c2410/mach-smdk2410.c下面的MACHINE_START(SMDK2410, "SMDK2440")中的第一个参数SMDK2410(关键字)决定的:

MACHINE_START(SMDK2410, "SMDK2410") /* @TODO: request a new identifier and switch

* to SMDK2410 */

/* Maintainer: Jonas Dietsche */

.phys_io        = S3C2410_PA_UART,

.io_pg_offst    = (((u32)S3C24XX_VA_UART) >> 18) & 0xfffc,

.boot_params    = S3C2410_SDRAM_PA + 0x100,

.map_io         = smdk2410_map_io,

.init_irq       = s3c24xx_init_irq,

.init_machine   = smdk2410_init,

.timer          = &s3c24xx_timer,

MACHINE_END

参照查看内核目录下的arch/arm/tools/mach-types.h文件,有:

smdk2410        ARCH_SMDK2410       SMDK2410        193

Linux机器码可以修改么,u-boot和linux的机器码相关推荐

  1. linux root密码修改失败,【转】Linux root修改密码失败

    问题: 当使用root修改密码时,报错passwd:Authentication token manipulation error 解决: 1.查看是否权限问题, /etc/passwd /etc/s ...

  2. 修改linux引导文件系统,修改/etc/fstab文件加快Linux系统的启动速度

    Linux系统的启动速度有点慢!我们可以修改/etc/fstab文件来加快启动速度. 就是把NTFS和FAT的分区检测功能关闭就行了.下面以fstab文件内容为例: # /etc/fstab: sta ...

  3. linux 用chomd修改权限时报:只读文件系统,linux下修改文件夹权限提示chmod: 更改xx 的权限: 只读文件系统...

    1.当前用户权限是否正确2.当前分区是否可读写3.是否设置权限遮罩4.是不是RP有问题,那需要看你修改的文件在什么位置,是怎么mount上来的如果是cdrom一类的路径的话,那肯定就是只读的还有就是m ...

  4. linux显卡内核修改,iTOP-4412开发板-驱动-linux显卡驱动的修改方法

    本文档介绍迅为4412开发板的显卡分辨率修改方法. iTOP-4412 开发板支持 4.3 寸.7 寸和 9.7 寸等 lcd 显示屏.其中 4.3 寸屏是用的 cpu 直接出来的 RGB 信号,7  ...

  5. linux mysql配置修改_【Mysql】linux下mysql的配置修改

    1.mysql启动和停止等操作 # /etc/init.d/mysqld start:# service mysqld start:#service mysqld stop :#/etc/init.d ...

  6. linux查找指定修改时间的文件夹,linux 查找某个日期以后修改过哪些文件 shell脚本...

    今天有一个需求,就是程序在 2019-10-16以后有哪些文件被修改过,在百度也找了好久,可以使用find的方式去搞定,但是需要使用-newermt的参数,也是第一次使用该参数.并在此记录一下.分享出 ...

  7. 【OS】Linux和AIX修改主机名的方法

    [OS]Linux和AIX修改主机名的方法 linux修改主机名的方法 用hostname命令可以临时修改机器名,但机器重新启动之后就会恢复原来的值. #hostname   //查看机器名 #hos ...

  8. linux 批量更换文件名,Linux下批量修改文件名的方法

    Linux下批量修改文件名的方法 在Linux环境下修改文件名可以有不同的命令方式,比如rename.mv都可以进行修改,如果用户正在了解这方面的知识,可以阅读下文了解Linux修改文件名以及批量修改 ...

  9. linux终端更改bashrc文件,linux .bashrc文件修改和生效

    linux .bashrc文件修改和生效 cd  home  ==>选择用户文件夹=>ll -la  .bashrc 使用man bash命令查看到的联机帮助文件中的相关解释如下: .ba ...

  10. 【Linux】批量修改文件名

    [Linux]批量修改文件名 文章目录 [Linux]批量修改文件名 1. 介绍 2. rename命令 3. 示例 1. 介绍 在Linux中,当你想要改变一个文件名,使用mv命令就好了. 然而mv ...

最新文章

  1. C#(WPF)去除事件中注册的事件处理方法!
  2. string和json转换的简单应用
  3. OA软件实施中三个不能做的
  4. 校办研修之计算机培训简报,“2018校本研修培训”第二期学习简报
  5. stm32中的延时函数
  6. django models
  7. php curl get post请求
  8. 二维数组循环赋值c语言,C/C++ 定义并赋值二维数组
  9. 独家干货|基于大数据的人体组织微结构的解析与构建
  10. 8.7.1. Declaration of Enumerated Types
  11. UCOSIII---工程移植
  12. 嵌入式分享合集106
  13. 【帝国CMS】灵动标签循环调用广告
  14. Java进阶之路~适配器设计模式amp;字符串方法
  15. 思科警告:旗下某些产品可能存在无法修补的WannaCrypt漏洞
  16. 如何保存window10锁屏壁纸
  17. rovisional headers are shown Learn more 报错
  18. 项目上线前出Bug,测试人该如何调整心态
  19. SQL编写:表A{id, name},表B{id, course, score}。求每名学生的 id 和 name 和平均成绩
  20. Android原生集成MUI框架进行混合开发

热门文章

  1. 母亲节礼物之wifi共享精灵
  2. 高精度乘法(高精×低精)
  3. ligerui列表显示
  4. 百度竞价中的精确匹配,短语匹配,广泛匹配有什么区别。
  5. 第七章文件与数据维度
  6. 十年老程序:当破解版Navicat不能再用了,来体验一下这款免费又好用的SQL工具吧
  7. 类加载器(ClassLoader)
  8. SQL分组获取记录的第一条数据——PARTITION BY
  9. 英语总结和摘要怎样写?
  10. 很漂亮的css英文字体