embed_x86: Basic environment test

来源:互联网 发布:淘宝崩坏3初始账号 编辑:程序博客网 时间:2024/05/22 13:13

借助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


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 宝宝功能性便秘怎么办 苹果x手机卡了怎么办 宝宝不吃水果蔬菜怎么办 小宝宝不拉粑粑怎么办 小宝宝个子不高怎么办 孩子不开口说话怎么办 孩子吹空调发烧怎么办 孩子上学不想上怎么办 孩子上学想留级怎么办 孩子口算太慢怎么办 孩子浮躁没耐心怎么办 如果孩子打妈妈怎么办 孩子英语成绩不好怎么办 小孩说话发音不准怎么办 小孩gk发音不准怎么办 大学无英语基础怎么办 孩子应用题理解不透怎么办 嫉妒一个人好痛苦怎么办 爱嫉妒别人怎么办心理 总有人嫉妒我怎么办 从小嫉妒闺蜜怎么办 怕闺蜜比我好怎么办 孩子不会做应用题怎么办 当你嫉妒别人怎么办 单位社保发票丢失怎么办 单位医保发票丢失怎么办 图书明细没有给怎么办 拼音拼不到一起怎么办 孩子不会拼拼音怎么办 小孩子不会拼拼音怎么办 小孩拼音发音不准怎么办 孩子声调不会标怎么办 孩子拼音发音不准怎么办 孩子学拼音不会怎么办? 孩子不会拼生字怎么办? 对数字不敏感怎么办 孩子说话不算数怎么办 儿童做事不认真怎么办 幼儿园小朋友爱打人怎么办 遇到熊孩子家长怎么办 小孩嘴烂了怎么办