关于 RKloader, parameter 与 uboot 分区的疑问

本来想修改 boot 参数CMDLINE, 查看 android tools 带的 rockdev 下的 rk3288-3.10-uboot-data1G.parameter, 发现没有 指定root, 这个文件应该与双系统的那个parameter 不一致的, 于是进入rk3288的ubuntu系统查看,结果发现

root@firefly:/dev/block/mtd/by-name# cat /proc/cmdline
console=ttyFIQ0 androidboot.hardware=rk30board androidboot.console=ttyFIQ0 board.ap_has_alsa=0 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init  mtdparts=rk29xxnand:0x00002000@0x00000000(parameter),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),0x00620000@0x00414000(linuxroot),-@0x00a34000(user) storagemedia=emmc loader.timestamp=2014-10-30_09:27:41 androidboot.serialno=1006110001000026 androidboot.mode=emmc

可见 cmdline中指定了 root 及 rootfstype, mtdparts 中第一个分区是 parameter
然后查看 parameter, uboot 分区内容, 不明白为什么这两个分区内容为什么差不多, dd 出来一比较, 只有很少的不同
先看 paramter

root@firefly:/dev/block/mtd/by-name# hexdump -C -n 1024 parameter
00000000  50 41 52 4d 78 03 00 00  46 49 52 4d 57 41 52 45  |PARMx...FIRMWARE|
00000010  5f 56 45 52 3a 34 2e 34  2e 32 0d 0a 4d 41 43 48  |_VER:4.4.2..MACH|
00000020  49 4e 45 5f 4d 4f 44 45  4c 3a 72 6b 33 30 73 64  |INE_MODEL:rk30sd|
00000030  6b 0d 0a 4d 41 43 48 49  4e 45 5f 49 44 3a 30 30  |k..MACHINE_ID:00|
00000040  37 0d 0a 4d 41 4e 55 46  41 43 54 55 52 45 52 3a  |7..MANUFACTURER:|
00000050  52 4b 33 30 53 44 4b 0d  0a 4d 41 47 49 43 3a 20  |RK30SDK..MAGIC: |
00000060  30 78 35 30 34 31 35 32  34 42 0d 0a 41 54 41 47  |0x5041524B..ATAG|
00000070  3a 20 30 78 36 30 30 30  30 38 30 30 0d 0a 4d 41  |: 0x60000800..MA|
00000080  43 48 49 4e 45 3a 20 33  30 36 36 0d 0a 43 48 45  |CHINE: 3066..CHE|
00000090  43 4b 5f 4d 41 53 4b 3a  20 30 78 38 30 0d 0a 50  |CK_MASK: 0x80..P|
000000a0  57 52 5f 48 4c 44 3a 20  30 2c 30 2c 41 2c 30 2c  |WR_HLD: 0,0,A,0,|
000000b0  31 0d 0a 23 4b 45 52 4e  45 4c 5f 49 4d 47 3a 20  |1..#KERNEL_IMG: |
000000c0  30 78 36 32 30 30 38 30  30 30 0d 0a 23 46 44 54  |0x62008000..#FDT|
000000d0  5f 4e 41 4d 45 3a 20 72  6b 2d 6b 65 72 6e 65 6c  |_NAME: rk-kernel|
000000e0  2e 64 74 62 0d 0a 23 52  45 43 4f 56 45 52 5f 4b  |.dtb..#RECOVER_K|
000000f0  45 59 3a 20 31 2c 31 2c  30 2c 32 30 2c 30 0d 0a  |EY: 1,1,0,20,0..|
00000100  43 4d 44 4c 49 4e 45 3a  63 6f 6e 73 6f 6c 65 3d  |CMDLINE:console=|
00000110  74 74 79 46 49 51 30 20  61 6e 64 72 6f 69 64 62  |ttyFIQ0 androidb|
00000120  6f 6f 74 2e 68 61 72 64  77 61 72 65 3d 72 6b 33  |oot.hardware=rk3|
00000130  30 62 6f 61 72 64 20 61  6e 64 72 6f 69 64 62 6f  |0board androidbo|
00000140  6f 74 2e 63 6f 6e 73 6f  6c 65 3d 74 74 79 46 49  |ot.console=ttyFI|
00000150  51 30 20 62 6f 61 72 64  2e 61 70 5f 68 61 73 5f  |Q0 board.ap_has_|
00000160  61 6c 73 61 3d 30 20 72  6f 6f 74 3d 2f 64 65 76  |alsa=0 root=/dev|
00000170  2f 62 6c 6f 63 6b 2f 6d  74 64 2f 62 79 2d 6e 61  |/block/mtd/by-na|
00000180  6d 65 2f 6c 69 6e 75 78  72 6f 6f 74 20 72 77 20  |me/linuxroot rw |
00000190  72 6f 6f 74 66 73 74 79  70 65 3d 65 78 74 34 20  |rootfstype=ext4 |
000001a0  69 6e 69 74 3d 2f 73 62  69 6e 2f 69 6e 69 74 20  |init=/sbin/init |
000001b0  69 6e 69 74 72 64 3d 30  78 36 32 30 30 30 30 30  |initrd=0x6200000|
000001c0  30 2c 30 78 30 30 38 30  30 30 30 30 20 6d 74 64  |0,0x00800000 mtd|
000001d0  70 61 72 74 73 3d 72 6b  32 39 78 78 6e 61 6e 64  |parts=rk29xxnand|
000001e0  3a 30 78 30 30 30 30 32  30 30 30 40 30 78 30 30  |:0x00002000@0x00|
000001f0  30 30 32 30 30 30 28 75  62 6f 6f 74 29 2c 30 78  |002000(uboot),0x|
00000200  30 30 30 30 32 30 30 30  40 30 78 30 30 30 30 34  |00002000@0x00004|

再看 uboot

root@firefly:/dev/block/mtd/by-name# hexdump -C -n 1024 uboot
00000000  50 41 52 4d 78 03 00 00  46 49 52 4d 57 41 52 45  |PARMx...FIRMWARE|
00000010  5f 56 45 52 3a 34 2e 34  2e 32 0d 0a 4d 41 43 48  |_VER:4.4.2..MACH|
00000020  49 4e 45 5f 4d 4f 44 45  4c 3a 72 6b 33 30 73 64  |INE_MODEL:rk30sd|
00000030  6b 0d 0a 4d 41 43 48 49  4e 45 5f 49 44 3a 30 30  |k..MACHINE_ID:00|
00000040  37 0d 0a 4d 41 4e 55 46  41 43 54 55 52 45 52 3a  |7..MANUFACTURER:|
00000050  52 4b 33 30 53 44 4b 0d  0a 4d 41 47 49 43 3a 20  |RK30SDK..MAGIC: |
00000060  30 78 35 30 34 31 35 32  34 42 0d 0a 41 54 41 47  |0x5041524B..ATAG|
00000070  3a 20 30 78 36 30 30 30  30 38 30 30 0d 0a 4d 41  |: 0x60000800..MA|
00000080  43 48 49 4e 45 3a 20 33  30 36 36 0d 0a 43 48 45  |CHINE: 3066..CHE|
00000090  43 4b 5f 4d 41 53 4b 3a  20 30 78 38 30 0d 0a 50  |CK_MASK: 0x80..P|
000000a0  57 52 5f 48 4c 44 3a 20  30 2c 30 2c 41 2c 30 2c  |WR_HLD: 0,0,A,0,|
000000b0  31 0d 0a 23 4b 45 52 4e  45 4c 5f 49 4d 47 3a 20  |1..#KERNEL_IMG: |
000000c0  30 78 36 32 30 30 38 30  30 30 0d 0a 23 46 44 54  |0x62008000..#FDT|
000000d0  5f 4e 41 4d 45 3a 20 72  6b 2d 6b 65 72 6e 65 6c  |_NAME: rk-kernel|
000000e0  2e 64 74 62 0d 0a 23 52  45 43 4f 56 45 52 5f 4b  |.dtb..#RECOVER_K|
000000f0  45 59 3a 20 31 2c 31 2c  30 2c 32 30 2c 30 0d 0a  |EY: 1,1,0,20,0..|
00000100  43 4d 44 4c 49 4e 45 3a  63 6f 6e 73 6f 6c 65 3d  |CMDLINE:console=|
00000110  74 74 79 46 49 51 30 20  61 6e 64 72 6f 69 64 62  |ttyFIQ0 androidb|
00000120  6f 6f 74 2e 68 61 72 64  77 61 72 65 3d 72 6b 33  |oot.hardware=rk3|
00000130  30 62 6f 61 72 64 20 61  6e 64 72 6f 69 64 62 6f  |0board androidbo|
00000140  6f 74 2e 63 6f 6e 73 6f  6c 65 3d 74 74 79 46 49  |ot.console=ttyFI|
00000150  51 30 20 62 6f 61 72 64  2e 61 70 5f 68 61 73 5f  |Q0 board.ap_has_|
00000160  61 6c 73 61 3d 30 20 72  6f 6f 74 3d 2f 64 65 76  |alsa=0 root=/dev|
00000170  2f 62 6c 6f 63 6b 2f 6d  74 64 2f 62 79 2d 6e 61  |/block/mtd/by-na|
00000180  6d 65 2f 6c 69 6e 75 78  72 6f 6f 74 20 72 77 20  |me/linuxroot rw |
00000190  72 6f 6f 74 66 73 74 79  70 65 3d 65 78 74 34 20  |rootfstype=ext4 |
000001a0  69 6e 69 74 3d 2f 73 62  69 6e 2f 69 6e 69 74 20  |init=/sbin/init |
000001b0  69 6e 69 74 72 64 3d 30  78 36 32 30 30 30 30 30  |initrd=0x6200000|
000001c0  30 2c 30 78 30 30 38 30  30 30 30 30 20 6d 74 64  |0,0x00800000 mtd|
000001d0  70 61 72 74 73 3d 72 6b  32 39 78 78 6e 61 6e 64  |parts=rk29xxnand|
000001e0  3a 30 78 30 30 30 30 32  30 30 30 40 30 78 30 30  |:0x00002000@0x00|
000001f0  30 30 32 30 30 30 28 75  62 6f 6f 74 29 2c 30 78  |002000(uboot),0x|
00000200  30 30 30 30 32 30 30 30  40 30 78 30 30 30 30 34  |00002000@0x00004|
00000210  30 30 30 28 6d 69 73 63  29 2c 30 78 30 30 30 30  |000(misc),0x0000|

问题1, paramter 中没有 root, rootfstype , cmdline 到底从哪里读来的启动参数?
问题2, uboot 分区为什么显示内容和 parameter 差不多?难道这个分区不应该是uboot.bin?
问题3, parameter 分区到底怎么确认是 RKloader 还是 parameter 烧录工具可以看到这两个东西都烧到起始位置0x0?

问题1: 含有 Ubuntu 的 parameter 有指定 root=/dev/block/mtd/by-name/linuxroot rw rootfstype=ext4 init=/sbin/init

问题2:这个 uboot 分区是存放 u-boot 的 second stage loader 的,但在 eMMC flash 中,u-boot 不用分开两个,此 uboot 分区就没有用了。至于为什么存的是 parameter,可能是为了冗余存储,多存了几份。

实际上,在 Linux 下均看不到 u-boot ,因为 u-boot 是物理地址零地址处,而在 Linux 下看到的是逻辑地址,而这个逻辑地址不是从物理地址 0 开始。

问题3, RKloader 是从物理零地址处开始烧录,parameter 是从逻辑零地址开始烧录。

本帖最后由 opjk 于 2015-12-24 01:21 编辑

用 从百度云盘上下载的代码 firefly-rk3288_android5.1_git_20150910.tar
构建生成的文件9个文件,如下:
boot.img kernel.img misc.img pcba_small_misc.img pcba_whole_misc.img recovery.img resource.img RK3288UbootLoader_V2.19.10.bin system.img
我想增加 system分区的大小。如何修改配置文件。

源码 RKTools\windows\AndroidTool\rockdev 目录里面有 rk3288box-3.10-uboot.parameter.txt 和 package-file, 如修改,才能与我编译出来的img文件配套? 需要修改那些地方,修改值是多少。如何烧制成一个 update.img文件?

第二问题,上面的 kernel.img resource.img 两个文件是使用 帖子
http://developer.t-firefly.com/f … &highlight=10.1
提供的驱动程序,和方法 。替换了,firefly-rk3288_android5.1_git_20150910.tar 代码对应的目录下的文件,
重新编译出来的,这样就能支持了10.1寸那个屏幕了么?

本帖最后由 opjk 于 2015-12-24 01:20 编辑

烦请版主 帮忙说明一下。

opjk 发表于 2015-12-24 01:13
烦请版主 帮忙说明一下。

wiki上有相关的说明:http://wiki.t-firefly.com/index.php/首页

本帖最后由 opjk 于 2015-12-24 15:02 编辑

谢谢

zhansb 发表于 2015-12-24 10:48
wiki上有相关的说明:http://wiki.t-firefly.com/index.php/首页

我说的是,在unbuntu 下编译安卓,烧制到板子上,而不是编译linux ,烧制到板子上。能帮我解答以下具体问题么?

opjk 发表于 2015-12-24 16:12
我说的是,在unbuntu 下编译安卓,烧制到板子上,而不是编译linux ,烧制到板子上。能帮我解答以下具体问 …

这个社区几乎没人回答的

学习啦

学习啦