Firefly开源社区

12
发表新贴
打印 上一主题 下一主题

RK3288的内核烧录不生效,请各位帮忙看看什么原因?

45

积分

0

威望

0

贡献

游客

积分
45

RK3288的内核烧录不生效,请各位帮忙看看什么原因?

发表于 2016-10-10 22:56:36      浏览:18376 | 回复:12        打印      只看该作者   [复制链接] 楼主
本帖最后由 frankseu 于 2016-10-10 22:59 编辑

1 编译RK3288的Android4.4的内核,提示编译成功,正常生成kernel.img,我在内核中增加了一些打印日志;
内核img大小如图片所示, 6.3M不到一点:2 使用AndroidTool_Release_v2.35工具烧写内核,烧写时先默认烧写在0x0000E000的位置,提示如图2,“下载成功”,应该就是烧写内核成功了吧?
3 重启后发现,并没有我加入的打印日志,而且编译日期等信息也没有改变,因此确认新内核没有生效;
4 查日志显示:RK3288 Android4.4板子分区如下:
[    1.757367] mmcblk0: mmc0:0001 AGND3R 14.5 GiB
[    1.757684]      uboot: 0x000400000 -- 0x000800000 (4 MB)
[    1.757697]       misc: 0x000800000 -- 0x000c00000 (4 MB)
[    1.757707]   resource: 0x000c00000 -- 0x001c00000 (16 MB)
[    1.757717]     kernel: 0x001c00000 -- 0x002c00000 (16 MB)
[    1.757726]       boot: 0x002c00000 -- 0x004c00000 (32 MB)
[    1.757734]   recovery: 0x004c00000 -- 0x006c00000 (32 MB)
[    1.757743]     backup: 0x006c00000 -- 0x00a000000 (52 MB)
[    1.757752]      cache: 0x00a000000 -- 0x012000000 (128 MB)
[    1.757760]     kpanic: 0x012000000 -- 0x012400000 (4 MB)
[    1.757769]     system: 0x012400000 -- 0x042400000 (768 MB)
[    1.757778]   metadata: 0x042400000 -- 0x042800000 (4 MB)
[    1.757786]   userdata: 0x042800000 -- 0x082800000 (1024 MB)
[    1.757795] radical_update: 0x082800000 -- 0x086800000 (64 MB)
[    1.757804]       user: 0x086800000 -- 0x3a3a00000 (12754 MB)
[    1.757833]  mmcblk0: p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p141381..dw_mci_set_ios:  no card. [mmc1]
[    1.764603] 1381..dw_mci_set_ios:  no card. [mmc2]
[    1.784302] 1381..dw_mci_set_ios:  no card. [mmc2]

因此将Flashtool烧写工具中的内核起始地址修改为:0x01C00000,烧写仍然提示正常。重启后还是没有我加入的打印日志,编译时间等仍然是公版的。
shell@rk3288:/ $ cat /proc/version
Linux version 3.10.0 (firefly@tchip-server) (gcc version 4.6.x-google 20120106 (prerelease) (GCC) ) #104 SMP PREEMPT Thu Feb 25 14:48:49 CST 2016

5 看打印日志, [    0.000000] Built 1 zonelists in Zone order, mobility grouping on.  Total pages: 522768[    0.000000] Kernel command line: console=ttyFIQ0 earlyprintk androidboot.hardware=rk30board androidboot.console=ttyFIQ0 board.ap_has_alsa=0 init=/init  mtdparts=rk29xxnand:0x00002000@0x00002000(uboot),0x00002000@0x00004000(misc),0x00008000@0x00006000(resource),0x00008000@0x0000e000(kernel),0x00010000@0x00016000(boot),0x00010000@0x00026000(recovery),0x0001a000@0x00036000(backup),0x00040000@0x00050000(cache),0x00002000@0x00090000(kpanic),0x00180000@0x00092000(system),0x00002000@0x00212000(metadata),0x00200000@0x00214000(userdata),0x00020000@0x00414000(radical_update),-@0x00434000(user) storagemedia=emmc loader.timestamp=2015-11-13_10:22:31 hdmi.vic=-1
[    0.000000] PID hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Dentry cache hash table entries: 131072 (order: 7, 524288 bytes)

其中内核命令行中有内核地址是:0x00008000@0x0000e000(kernel),在Flashtool中将内核烧写地址修改为0x00008000,烧写仍然提示成功,但是仍然没有我加的打印日志。可见烧写内核没有生效。


请各位帮忙看看原因大概出在哪儿?折腾了几天时间。多谢了。






1.png (29.53 KB, 下载次数: 815)

1.png

2.png (23.18 KB, 下载次数: 744)

2.png
回复

使用道具 举报

45

积分

0

威望

0

贡献

游客

积分
45
发表于 2016-10-10 23:07:42        只看该作者  沙发
firefly的RK3288的板子,内核地址到底是从哪儿开始的呢?
回复

使用道具 举报

89

积分

0

威望

0

贡献

技术小白

积分
89
发表于 2016-10-10 23:28:02        只看该作者  板凳
本帖最后由 guoke5 于 2016-10-10 23:29 编辑

默认编译生成的boot.img是包含kernel的(boot.img大概12M),如果boot.img包含kernel,系统则会优先使用boot.img里面的kernel,因此你单独烧kernel.img是没有生效的。要想单独调试kernel,只刷kernel.img使你的代码生效,方法如下 :
使用./mkimage.sh withoutkernel 生成不带kernel的boot.img (boot.img大概2M), 先烧写不带kernel的boot.img, 之后就可以只烧kernel.img也能使你的代码生效了。
回复

使用道具 举报

89

积分

0

威望

0

贡献

技术小白

积分
89
发表于 2016-10-10 23:29:06        只看该作者  地板
不需要修改内核地址,跟这个没关
回复

使用道具 举报

45

积分

0

威望

0

贡献

游客

积分
45
发表于 2016-10-11 21:16:17        只看该作者  5#
那烧写通过mkimage制作的内核和boot版本,都不需要在FlashTool工具中修改烧录的起始地址吗?原因是系统启动时自动去寻找到boot和内核的吗?
回复

使用道具 举报

45

积分

0

威望

0

贡献

游客

积分
45
发表于 2016-10-13 22:01:56        只看该作者  6#
这种方法已经可以了。
感谢!
回复

使用道具 举报

89

积分

0

威望

0

贡献

技术小白

积分
89
发表于 2016-10-13 23:32:06        只看该作者  7#
frankseu 发表于 2016-10-11 21:16
那烧写通过mkimage制作的内核和boot版本,都不需要在FlashTool工具中修改烧录的起始地址吗?原因是系统启动 ...

各分区地址是由 parameter文件指定的,刷机的时候需要刷写parameter
回复

使用道具 举报

16

积分

0

威望

0

贡献

游客

积分
16
发表于 2016-10-14 11:07:54        只看该作者  8#
frankseu 发表于 2016-10-11 21:16
那烧写通过mkimage制作的内核和boot版本,都不需要在FlashTool工具中修改烧录的起始地址吗?原因是系统启动 ...

请问你是怎么处理的呢?我在烧录boot.img出现同样的问题。请指教。谢谢。
回复

使用道具 举报

45

积分

0

威望

0

贡献

游客

积分
45
发表于 2016-10-14 22:04:34        只看该作者  9#
我烧写这个boot.img的时候没有修改地址,就默认FlashTool工具上的。按照上面人说的是有parameter文件指定的,那就跟此处没有关系了。
回复

使用道具 举报

61

积分

0

威望

0

贡献

技术小白

积分
61
发表于 2019-6-21 11:51:15        只看该作者  10#
guoke5 发表于 2016-10-10 23:28
默认编译生成的boot.img是包含kernel的(boot.img大概12M),如果boot.img包含kernel,系统则会优先使用boo ...

烧写boot.img之后,RK3288无法正常启动,您有没有遇见同样的问题?
回复

使用道具 举报

返回列表
12
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

友情链接 : 爱板网 电子发烧友论坛 云汉电子社区 粤ICP备14022046号-2
快速回复 返回顶部 返回列表