请选择 进入手机版 | 继续访问电脑版
查看: 6441|回复: 4

orangepi linux启动流程 分区表

[复制链接]

11

主题

44

帖子

1807

积分

金牌会员

Rank: 6Rank: 6

积分
1807
发表于 2016-5-23 11:42:06 来自手机 | 显示全部楼层 |阅读模式
本帖最后由 cazureopi 于 2016-6-2 10:40 编辑

看了一些嵌入式开发的书,感觉千篇一律
总结opi和其它嵌入式的启动流程

启动流程
---> 上电--->
SPL(boot0)-->
u-boot-->
kernel(script.bin uImage)-->
rootfs

分区表(SD TF卡上的)
start             end         
0                     8                        Unused,pratition table
8                   16400              SPL (boot0)
16400       40960              U-boot
40960      124927             pratition1   kernel (vfat filesystem)
124928-                                pratition2   rootfs (ext4 filesystem)



   

11

主题

44

帖子

1807

积分

金牌会员

Rank: 6Rank: 6

积分
1807
 楼主| 发表于 2016-5-25 15:19:50 来自手机 | 显示全部楼层
本帖最后由 cazureopi 于 2016-6-2 10:38 编辑

全志H3有一个特定的引导过程,引导加载程序中描述页面。
BootROM检测板子上的储存设备,检测到sd卡后,从内存卡上16扇区或8kb上的加载boot0.
然后boot0从内存卡32800扇区或者16400kb加载u-boot
   
boot0 uboot这些二进制文件有一个特定的头,其中包括一个神奇的字符串和一个校验和。必须正确的二进制通过前一个阶段的接受和执行
下面介绍在内存卡上安装的过程boot0和u-boot的过程
SD卡注意你必须留下足够的未使用空间(安装系统至少需要4GB)
注意 : boot0和uboot安装在内存卡8k-40960k上,所以第一个分区从40960开始,否则u-boot可能被文件系统覆盖使用!!!
烧写这些前建议用fdisk删除sd卡上的所有分区!!!

#清除sd 
dd if=/dev/zero of=/dev/mmcblk0 bs=1k seek=8 count=40960

#写boot0  
dd if=boot0_sdcard.fex of=/dev/mmcblk0 bs=1k seek=8

#写u-boot
dd if=u-boot.bin of=/dev/mmcblk0 bs=1k seek=16400

说明:
/dev/mmcblk0是sd卡的设备名
boot0_sdcard.fex是boot0二进制文件
u-boot.bin是uboot二进制文件



完成上面事情后,你的内存卡就可以引导启动系统了,但没有内核和文件系统
需要有一个vfat文件系统启动分区来存储您的内核和其他引导文件,和一个ext4文件系统的rootfs。
可以使用fdisk命令建立,但一定注意要从40960开始建立第一个分区,否则u-boot可能被文件系统覆盖使用!!!

11

主题

44

帖子

1807

积分

金牌会员

Rank: 6Rank: 6

积分
1807
 楼主| 发表于 2016-6-14 07:48:07 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

0

主题

1

帖子

8

积分

新手上路

Rank: 1

积分
8
发表于 2016-10-18 09:40:17 | 显示全部楼层
顶贴,我也在学习。话说这全志的性价比挺高的,为啥学的人这么少呢!

0

主题

1

帖子

6

积分

新手上路

Rank: 1

积分
6
发表于 2018-9-15 15:23:40 | 显示全部楼层
yuzhi22 发表于 2016-10-18 09:40
顶贴,我也在学习。话说这全志的性价比挺高的,为啥学的人这么少呢!

主要是资源太少了.支持很不到位.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表