vboot源码详细分析-1

 

     最近一直在研究bootloader之vboot,vboot短小精悍,如果只是用来进行系统的引导,而不要提供其他复杂的功能时候,我认为这是绝佳的上选。这里以MINI2440开发板配套的源码进行分析。这个源码只支持曾NANDFLASH进行启动。由于代码精短,总的代码量不超过4K,所以,就不需要像uboot那样需要将启动代码分两段进行运行,而是可以直接在芯片自带的ram里面进行运行。当然,如果要想使用复杂的功能,那只能选择其他的bootloader了,但是对vboot深入的了解,很有利于学习其它复杂的启动代码。需要的读者,可以留言留下邮箱。  

      Recently I has been studying vboot bootloader, it is very short and is used for system start, does not provide other complex functions, I think it is a wonderful choice. Here MINI2440 development board matching source code analysis. This source only supports the NANDFLASH start it at a time. JingDuan because the code, the code to the amount of not more than 4 k, so you don't need like uboot will need to run the startup code is divided into two parts, but it can be run directly in the chip and memory. And, of course, if you want to use complex function, it can only choose other bootloader, but vboot advanced knowledge, very conducive to learning other complex startup code.

       整个文件主要有以下几个文件组成。使用gnu编译器编译。用在arm上是用arm-linux-gcc编译

244x_lib.c
244x_lib.h
bitfield.h
def.h
hardware.h
head.S
main.c
Makefile
mem.lds
nand.c
nand.h
parameters.h
s3c2440.h
smdk2440.h

以上就是所包括的几个文件。具体的一个个来看下。

1、mem.lds

     此文件是一个链接脚本文件。这个文件,应该最先看。关于链接脚本文件的详细讲解,我专门转载了一篇文章,有需要的可以查

1.解压vboot 2.将VBOOT中的vbootldr.mbr,vbootldr放在C盘根目录,剩下的VBOOT目录放在C盘根目录 c:. | vbootldr | vbootldr.mbr |----vboot |------- grub | |-------font ........... 3.将boot.INI中增加一行 C:\vbootldr.mbr="VBoot -VHD Boot" 此时启动,选择VBoot -VHD Boot能看到启动菜单 4.创建VHD磁盘 命令 c:\vboot\tools\x86\vbootctl.exe createhd c:\winxp.vhd /size 5 可以使用c:\vboot\tools\x86\vbootctl.exe help查看命令 此处建立的是一个动态的vhd文件。 注意:这个size后面单位是GB 5.安装XP系统到这个VHD 将要安装的光盘改名为winxp-sp2.iso,放在C盘根目录 至于这个ISO和前面的VHD名字,由grub\grub.cfg文件中决定, vboot harddisk="(hd0,1)/winxp.vhd" floppy=(hd0,1)/vboot/vboot.img cdrom=(hd0,1)/winxp-sp2.iso boot=cdrom 熟悉命令后可以更改其他磁盘,其他文件名。 重启 然后选择 VBoot -VHD Boot 下一个菜单中选择 "xp install step1" 安装过程中注意选择磁盘,一般是最后一个未划分区域 安装过程要重启,接着选择菜单 "xp install step2" 继续安装到完成 选择 "xp sp2"菜单进入系统 ==================================== 对于第5部: 原有的Windows移动到VHD走捷径的安装方法: 因为要VHD启动,所以需要安装磁盘驱动,VDM加载磁盘VBOOT\vboot.img,对于03加载vboot-2k3.img 然后用控制面板--添加硬件--添加文件指向img中的驱动文件,加入磁盘驱动。 用PE3.X来挂载VHD文件,然后复制硬盘上的系统到vhd文件中去。 可能要处理一下[HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices]与盘符有关的信息,删除掉原来的C盘符
我用Vboot工具安装VHD XP的方法(过期就会0x0000012f蓝屏) 经过好多次的蓝屏和无显示等各种故障,现在成功了。 一法: 1、运行“WinXP VHD 辅助处理工具 201111-02-22最后更新】”,替换C:\vboot_temp以下文件: ①: VBOOT.IMG(I386下已换无时间限制的VBOOTDSK.SYS,若有$oem$/textmode/VBOOTDSK.SYS也要换没有不管) ②: floppies\vboot-img\i386\VBOOTDSK.SYS ③: tools\x86\drivers\vbootdsk\VBOOTDSK.SYS 若不换会0x0000012f蓝屏的。 2、选安装版XPISO文件或者NTFS格式的GHOST XP。重启。 我的笔记本这样装成功了。 台式机BIOS改SATA Mode为combiled,没有IDE选项,启动找不到硬盘,改其它都不行。只有用下面的方法了。 二法: 1、如以前安装GHOST XP一样,启动运行GHOST在实机C盘上安装,把所有驱动、设置、自己要用的程序装完。若安装版XP一样,不忘了NTFS格式。 2、重启运行GHOST备份C盘到其它盘WINXP.GHO。 3、重启进入C盘装好的XP,运行WinXP VHD辅助处理工具,如最上面第一步。 4、重启选VHD XP进入Vboot菜单选第一项继续安装,这样不会有各种故障了。 5、后面的都知道的,实C盘上XP可以不要了,须留下boot.ini、bootfont.bin、NTDETECT.COM、ntldr、vbootldr、vbootldr.mbr、WINXP.VHD文件及vboot文件夹。 没办法,我的台式机只能用第二种方法成功,并且我安装上了5个网上下载的XP,编辑grub.cfg文件(不能有中文)出现了5个XP菜单,选择启动想用哪个都可以。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值