免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4001 | 回复: 4
打印 上一主题 下一主题

[BootLoader] 内核移植 求救 ,关于 MACHINE ID [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2014-04-29 20:02 |只看该作者 |倒序浏览
原先我用的KERNEL是3.4的版本,能正常启动使用,最近换成3.10的内核,出现以下问题,启动如下:
U-Boot 2011.09-rc1-00050-g7cd8f2a (Apr 03 2013 - 21:47:14) Allwinner Technology

CPU:   SUNXI Family
Board: A10-EVB
DRAM:  1 GiB
boot type: 2
NAND:  3896 MiB
MMC:   SUNXI SD/MMC: 0
In:    serial
Out:   serial
Err:   serial
--------fastboot partitions--------
-total partitions:4-
-name-        -start-       -size-
bootloader  : 100000        4000000
env         : 4100000       200000
rootfs      : 4300000       ef850000
UDISK       : f3b50000      ffcb0000
-----------------------------------
no misc partition is found
Hit any key to stop autoboot:  0
reading /uImage

1816600 bytes read
## Booting kernel from Legacy Image at 48000000 ...
   Image Name:   Linux-3.10.25-sunxi-dirty
   Image Type:   ARM Linux Kernel Image (uncompressed)
   Data Size:    1816536 Bytes = 1.7 MiB
   Load Address: 40008000
   Entry Point:  40008000
   Verifying Checksum ... OK
   Loading Kernel Image ... OK
OK

Starting kernel ...

Uncompressing Linux... done, booting the kernel.
6Booting Linux on physical CPU 0x0
5Linux version 3.10.25-sunxi-dirty (root@ubuntu) (gcc version 4.7.2 (Ubuntu/Linaro 4.7.2-1ubuntu1) ) #3 SMP Tue Apr 29 04:29:19 PDT 2014
CPU: ARMv7 Processor [413fc082] revision 2 (ARMv7), cr=10c5387d
CPU: PIPT / VIPT nonaliasing data cache, VIPT aliasing instruction cache

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


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

Available machine support:

ID (hex)        NAME
Available machine support:

ID (hex)        NAME
ffffffff        Generic DT based system
ffffffff        Generic DT based system
ffffffff        Dummy Virtual Machine
ffffffff        Dummy Virtual Machine
ffffffff        Allwinner A1X123 (Device Tree)
ffffffff        Allwinner A1X123 (Device Tree)

Please check your kernel config and/or bootloader.

////////////////////////////



从UBOOT传递过来的 machine ID (r1 = 0x0000100.是对的。我也查了LINUX/ARCH/ARM/TOOLS/mach-types,我对应的 machine ID 是4104,换成16进制,就是0x00001008
,因为之前UBOOT都是正常的。所以现在应该是内核的问题,而最棘手的是现在这里 显示内核都是 FFFFFFFF这些,无从查找原因啊。
困扰我两天了,求达人解答,或者告诉思路也行。

论坛徽章:
0
2 [报告]
发表于 2014-04-30 08:02 |只看该作者
内核编译之前要修改machine ID吧!

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
3 [报告]
发表于 2014-04-30 10:24 |只看该作者
找到打印这段话的地方,看看调用处都在干了什么。

论坛徽章:
22
丑牛
日期:2014-08-15 14:32:0015-16赛季CBA联赛之同曦
日期:2017-12-14 15:28:14黑曼巴
日期:2017-08-10 08:14:342017金鸡报晓
日期:2017-02-08 10:39:42黑曼巴
日期:2016-11-15 15:48:38CU十四周年纪念徽章
日期:2016-11-09 13:19:1015-16赛季CBA联赛之同曦
日期:2016-04-08 18:00:03平安夜徽章
日期:2015-12-26 00:06:30程序设计版块每日发帖之星
日期:2015-12-03 06:20:002015七夕节徽章
日期:2015-08-21 11:06:17IT运维版块每日发帖之星
日期:2015-08-09 06:20:002015亚冠之吉达阿赫利
日期:2015-07-03 08:39:42
4 [报告]
发表于 2014-04-30 10:24 |只看该作者
cd kernel
grep 'Available machine support' -RI *

论坛徽章:
3
射手座
日期:2014-08-18 12:15:53戌狗
日期:2014-08-22 09:53:36寅虎
日期:2014-08-22 14:15:29
5 [报告]
发表于 2014-04-30 10:47 |只看该作者
回复 1# eleserve


一个linux内核可以支持多个不同型号的板子, 每种型号板子回应一个MACHINE_ID, uboot在启动内核的时候会把机器的MACHINE_ID传递给linux内核,然后内核根据MACHINE_ID来找到相应的入口启动,你这个问题应该是内核编译的时候没有把相应型号板子的内核代码编译进去, 估计几个配置参数就可以了,但首先你要知道你板子的型号是什么。

另外uboot有个命令可以查看板子的MACHINE_ID, 叫boardinfo之类的名字,具体不记得了, 手上也没有环境没法试, 你可以先找到这个MACHINE_ID, 然后再看应该打开哪个内核配置项
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP