RTEMS连载 (3) 启动镜像文件制作 (上)

作者 Ray

RTEMS版权所有,转载请注明:来源http://www.rtems.net,作者ray@rtems.net

摘要

    本节介绍了如何制作软盘镜像文件,并且在镜像文件上面安装Grub,以测试编译好的RTEMS内核

为了测试编译好的镜像,我们可以在普通的 PC 机上面测试:

首先介绍如何编译 sample ,一般来说,生成系统库文件的时候就已经编译了 sample ,但是如果需要改动 smaple 或者自己写程序,需要设置下面的环境变量。(注意:下面很多命令需要root权限)

首先需要设置环境变量:

export RTEMS_MAKEFILE_PATH=<INSTALLATION_POINT>/<CPU>-rtems/<BOARD_SUPPORT_PACKAGE>
export RTEMS_MAKEFILE_PATH=/home/ray/embedded/rtems_build/i386-rtems/c/i386ex/make

然后编译需要测试的 sample

编译好的可执行文件将静态包含 rtems 的基本库,可以直接作为启动内核。

为了加载内核,还需要安装 grub

下面介绍如何使用 loop 设备制作启动的镜像。

Linux 平台:

首先产生空白的镜像文件:

#dd if=/dev/zero of=boot.img bs=1k count=1448

这个命令建立了一个软盘的镜像文件,大小为1.44M,然后将boot.img镜像文件和loop设备关联

#losetup /dev/loop0 boot.img

用ext2文件系统格式化镜像文件

mke2fs /dev/loop0

然后建立 ./fd0目录

#mount boot.img ./fd0 -o loop

将镜像文件 mount到/fd0目录下面 然后可以安装 grub了 首先下载 grub 0.95版本(可以使用已经编译好的i386二进制代码,也可用源代码包自己编译)。 产生的二进制文件中,要用到的是: stage1和stage2两个文件 安装的步骤将在下面介绍,最后安装完毕后使用下面的命令卸载 loop设备

#losetup -d /dev/loop0

BSD 平台:

注意,在 BSD中使用mdconfig或者vnconfig制作镜像文件,例如:

#dd if=/dev/zero of=boot.flp bs=1k count=1448
#mdconfig -a -t vnode -f boot.flp -u 0
#bsdlabel -w md0 auto
#newfs md0c
#mount /dev/md0c /mnt

使用上面的命令对 /mnt目录的操作就相当于对镜像文件的操作

grub 的安装


方法一:手动安装 grub

手动安装需要两个格式化好的软盘镜像文件, boot.img和rtems.img,第一个是grub的安装盘另外一个用存放rtems的文件系统。(实际上,用一个镜像文件也可以) 在第一个镜像文件中安装GRUB

# dd if= stage1 of= boot.img bs=512 count=1
# dd if= stage2 of= boot.img bs=512 seek=1

然后,将 stage1和stage2 这里 stage1 和 stage2是刚才生成的(或者下载的)i386 grub 制作 rtems.img的镜像文件:

# dd if=/dev/zero of=rtems.img bs=1k count=1448
# losetup /dev/loop0 rtems.img
# mke2fs /dev/loop0

把 stage1和stage2拷贝到rtems.img中, 然后使用制作好的第一张盘启动(VMWare的设置如下所示):

 

启动grub后进入命令行模式, 系统启动后有下面的界面显示:

 

 

然后使用 vmware断开软盘:如下图

 

然后,接下来更换软盘镜像为 rtems.img,重新选择镜像文件后,(菜单 VM -> Setting)再用vmware连接软盘(VM->Removable Devices->Floppy1 Connect) 然后使用然后使用下面的命令安装。

grub>install=(fd0)/stage1 (fd0) (fd0)/stage2 0x8000 (fd0)/grubmenu

这样就把 grub安装在镜像文件上了。 如果安装出现问题,一般会出现在软盘镜像文件的加载和设置上(镜像是否正确?是否断开? …… ) 然后将镜像文件加载到本地的 /fd0目录上面(注意,是自己建立的目录,不是/dev/fd0)

# mount rtems.img ./fd0 -o loop

所有工作做完后,最后卸载设备

# umount ./fd0

# losetup -d /dev/loop0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值