免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 3026 | 回复: 0
打印 上一主题 下一主题

qemu在x86上构建本地的arm开发环境 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-09-05 20:25 |只看该作者 |倒序浏览

                                   交叉编译总是有很多麻烦的地方,很多软件包的测试程序会在编译的时候出莫名其妙的问题。而嵌入式开发最麻烦的不只开发板很多时候不是很差就是很贵,如果是在大点的公司,申购程序和时间都让人在等待中熄灭了热情。
   使用qemu也许是在x86上建立arm、powerpc、mips或是superh的虚拟机来玩也许是很不错的事情,省钱,快速,无须申请等待。
   以下操作是在uubuntu 9.04上完成的arm虚拟机,大致的步骤如下:
I、安装qemu
   qemu最好的是自己下载源码编译然后安装,虽然编译的过程时间比较久。
   git clone
git://git.qemu.org/qemu.git
   cd qemu
   configure --prefix=/usr
   make && make install
   等待N久后就好了,全部编译需要的时间很多
II、网络设置
   bridge肯定是必须的了
   sudo apt-get install bridge-utils  uml-utilities
   安装完后就可以在/etc/network/interface里配置网络了
   sudo vim /etc/network/interface
   这里假定网络是eth0,加入以下内容   
       auto br0
       iface br0 inet dhcp
       bridge_ports eth0    (注:ubuntu虚拟机上的设备为eth1)     
       bridge_maxwait 0
      
      无线网络设备无法使用的,必须是有线的。如果只有无线网络,那需要其他的方式来传递,暂不讨论
  cd /etc
     touch qemu-ifup
     vim qem-ifup
     加入如下内容
     #!/bin/sh
    #sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1
    echo "Executing /etc/qemu-ifup"
    echo "Bringing up $1 for bridged mode..."
    sudo /sbin/ifconfig $1 0.0.0.0 promisc up
   echo "Adding $1 to br0..."
   sudo /usr/sbin/brctl addif br0 $1
   sleep 2
   这样网络大致就可以了。
II、开始建立arm虚拟机
    下载linux的内核,这里下的是arm的,
arm内核
,然后下文件系统
qemu-arm-rootfs.tgz

wget http://people.ubuntu.com/~ogra/arm/qemu/kernel/vmlinuz-2.6.28-versatile
然后创建一个文件arm的文件系统,
1、创建ext2的文件系统的硬盘镜像,大小为2G
    dd if=/dev/zero of=/home/qemu/rootfs.img bs=1M count=2048
    losetup /dev/loop0 /home/qemu/rootfs.img
mkfs.ext2 /dev/loop0
2、加载硬盘镜像然后拷入文件系统
   mkdir /mnt/ext2
   mount -o loop /home/qemu/rootfs.img /mnt/ext2
  rm -rf /mnt/ext2/
  tar -zxvf qemu-arm-rootfs.tgz -C /mnt/ext2
umount /mnt/ext2
fsck -t ext2 /home/qemu/rootfs.img
到这里后就算了差不多了,文件系统建立了后就可以启动了
IV、启动qemu
为了启动方便,建立一个文件qemu-arm
vim qemu-arm
输入以下内容
#!/bin/bash
qemu-system-arm -M versatilepb -kernel ./vmlinuz-2.6.28-versatile -hda rootfs.img -m 128 -append "root=/dev/sda rw"  -usb -localtime  -net nic,macaddr=00:16:3e:00:00:01 -net tap
保存退出,然后
chmod +x qemu-arm
./qemu-arm
就开始运行arm的虚拟机了
V、使用ssh开始使用和开发arm
   qemu-arm-rootfs.tgz里面是带了gcc的,可以在里面编译程序的,不过很慢
  apt-get update
  apt-get install ssh
  设置一下root的密码就可以在host上登录虚拟机了,操作起来也很方便的。
VI、使用rootfs.img
  在虚拟机里做开发或是测试,虽然硬件的外围借口并不齐全,很难测试,但是这个环境很方便快捷,开发出来的东西剪裁后可以写入arm的,不过最大的缺点:太大。
  rootfs最好的方式还是使用nfs的方式来给开发板使用,我已经在arm9和cortex a8的板子上测试过了,没有问题


   
   
               
               
               
               
               
               
               

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/21022/showart_2046471.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP