RTEMS连载 (3) 启动镜像文件制作 (上)
摘要
%A
%A 本节介绍了如何制作软盘镜像文件,并且在镜像文件上面安装Grub,以测试编译好的RTEMS内核
%A
%A 为了测试编译好的镜像,我们可以在普通的 PC 机上面测试:
%A
%A 首先介绍如何编译 sample ,一般来说,生成系统库文件的时候就已经编译了 sample ,但是如果需要改动 smaple 或者自己写程序,需要设置下面的环境变量。(注意:下面很多命令需要root权限)
%A
%A 首先需要设置环境变量:
%A
%A export RTEMS_MAKEFILE_PATH=<INSTALLATION_POINT>/<CPU>-rtems/<BOARD_SUPPORT_PACKAGE>
%A export RTEMS_MAKEFILE_PATH=/home/ray/embedded/rtems_build/i386-rtems/c/i386ex/make
%A
%A 然后编译需要测试的 sample
%A
%A 编译好的可执行文件将静态包含 rtems 的基本库,可以直接作为启动内核。
%A
%A 为了加载内核,还需要安装 grub
%A
%A 下面介绍如何使用 loop 设备制作启动的镜像。
%A Linux 平台:
%A
%A 首先产生空白的镜像文件:
%A
%A #dd if=/dev/zero of=boot.img bs=1k count=1448
%A
%A 这个命令建立了一个软盘的镜像文件,大小为1.44M,然后将boot.img镜像文件和loop设备关联
%A
%A #losetup /dev/loop0 boot.img
%A
%A 用ext2文件系统格式化镜像文件
%A
%A mke2fs /dev/loop0
%A
%A 然后建立 ./fd0目录
%A
%A #mount boot.img ./fd0 -o loop
%A
%A 将镜像文件 mount到/fd0目录下面 然后可以安装 grub了 首先下载 grub 0.95版本(可以使用已经编译好的i386二进制代码,也可用源代码包自己编译)。 产生的二进制文件中,要用到的是: stage1和stage2两个文件 安装的步骤将在下面介绍,最后安装完毕后使用下面的命令卸载 loop设备
%A
%A #losetup -d /dev/loop0
%A BSD 平台:
%A
%A 注意,在 BSD中使用mdconfig或者vnconfig制作镜像文件,例如:
%A
%A #dd if=/dev/zero of=boot.flp bs=1k count=1448
%A #mdconfig -a -t vnode -f boot.flp -u 0
%A #bsdlabel -w md0 auto
%A #newfs md0c
%A #mount /dev/md0c /mnt
%A
%A 使用上面的命令对 /mnt目录的操作就相当于对镜像文件的操作
%A grub 的安装
%A
%A 方法一:手动安装 grub
%A
%A 手动安装需要两个格式化好的软盘镜像文件, boot.img和rtems.img,第一个是grub的安装盘另外一个用存放rtems的文件系统。(实际上,用一个镜像文件也可以) 在第一个镜像文件中安装GRUB
%A
%A # dd if= stage1 of= boot.img bs=512 count=1
%A # dd if= stage2 of= boot.img bs=512 seek=1
%A
%A 然后,将 stage1和stage2 这里 stage1 和 stage2是刚才生成的(或者下载的)i386 grub 制作 rtems.img的镜像文件:
%A
%A # dd if=/dev/zero of=rtems.img bs=1k count=1448
%A # losetup /dev/loop0 rtems.img
%A # mke2fs /dev/loop0
%A
%A 把 stage1和stage2拷贝到rtems.img中, 然后使用制作好的第一张盘启动(VMWare的设置如下所示):
%A
%A 启动grub后进入命令行模式, 系统启动后有下面的界面显示:
%A
%A
%A
%A 然后使用 vmware断开软盘:如下图
%A
%A 然后,接下来更换软盘镜像为 rtems.img,重新选择镜像文件后,(菜单 VM -> Setting)再用vmware连接软盘(VM->Removable Devices->Floppy1 Connect) 然后使用然后使用下面的命令安装。
%A
%A grub>install=(fd0)/stage1 (fd0) (fd0)/stage2 0x8000 (fd0)/grubmenu
%A
%A 这样就把 grub安装在镜像文件上了。 如果安装出现问题,一般会出现在软盘镜像文件的加载和设置上(镜像是否正确?是否断开? …… ) 然后将镜像文件加载到本地的 /fd0目录上面(注意,是自己建立的目录,不是/dev/fd0)
%A
%A # mount rtems.img ./fd0 -o loop
%A
%A 所有工作做完后,最后卸载设备
%A
%A # umount ./fd0
%A
%A # losetup -d /dev/loop0
%A%A
%A
*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。