copy test

在公司想利用闲暇时间调试嵌入式开发板,可惜开发板在家里,无法直接调试,因此想借助virtualBox x86平台搭建一个类似于嵌入式开发的环境.


家里的EBD2410开发板使用uboot加载内核和ramdisk文件系统,在X86平台上,可以使用PXE网络启动的方式,加载kernel和initrd,这不就基本等同了嵌入式系统的加载启动方式吗?哈哈


这个基本的测试环境中,使用gcc编译linux内核源码,以及busybox源码来生成initrd,经测试能加载成功。


[宿主机环境]

1: Virtualbox 4.10

2: Ubuntu10.04, gcc-4.4.3


[目标机环境]

1: virtualbox 4.10

vitalbox的配置为:

网卡: PCnet-PCI II (默认的Intel网卡不支持PXE启动,可能是virtualbox的bug?)

声卡: Intel HD Audio


[宿主机软件环境搭建]

1: 搭建TFTP服务器

- 参考blog相关文章

2: 搭建DHCP服务器

- 参考blog相关文章

3: 准备pxelinux.0 文件

- 下载 syslinux 并解压: http://www.kernel.org/pub/linux/utils/boot/syslinux/syslinux-4.06.zip

- 拷贝core/pxelinux.0 到 tftp root下

4: 配置tftp_root/default内容为:

$cat pxelinux.cfg/default

DISPLAY boot.txt

DEFAULT squeeze_amd64_install

LABEL eric
        kernel eric/bzImage
        append vga=normal init=/linuxrc initrd=eric/ramdisk.gz  --


PROMPT 1
TIMEOUT 0

 其中 bzImage为编译出来的kernel, initrd为我们手动制作的initrd文件(稍后描述)


[编译kernel]

这里使用的是linux-2.6.37kernel

1: $make i386_defconfig

2: make menuconfig //打开ext2支持,以及AMD PCnet32 PCI support

3: make bzImage

完成后拷贝boot/arch/x86/bzImage 到tftp_root/eric下


[制作ramdisk]

1: dd if=/dev/zero of=./ramdisk bs=1k count=8192

生成一个8M的ramdisk文件

2: sudo mke2fs -F -v -m0  ./ramdisk

3: sudo mount -o loop ./ramdisk  ramdisk_mnt/

把image文件mount到一个目录,随后可以往这个目录拷贝文件

4: 编译busybox

使用的是busybox-1.20.0,直接使用default config

make; make install;

然后cp -ar _install/* 到ramdisk_mnt下

5: 拷贝宿主机的dev文件到ramdisk中

6: 创建fstab文件

$ cat etc/fstab
# Begin /etc/fstab
# file system  mount-point  type     options             dump  fsck
#                                                              order


proc           /proc        proc     nosuid,noexec,nodev 0     0
sysfs          /sys         sysfs    nosuid,noexec,nodev 0     0
devpts         /dev/pts     devpts   gid=4,mode=620      0     0
tmpfs          /run         tmpfs    defaults            0     0
devtmpfs       /dev         devtmpfs mode=0755,nosuid    0     0


# End /etc/fstab

7: 创建rcS文件

$ cat etc/init.d/rcS
#!/bin/sh


mount -o sys /sys
mount -o proc /proc

8: 打包生成

$ sudo umount ramdisk

$gzip ramdisk

$cp ramdisk ${tftp_root}/eric/


Client PXE启动:


Client PXE加载kernel成功启动后:



资源备份:

http://pan.baidu.com/share/link?shareid=121174&uk=822921326


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值