热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

qemuforpowerpc

qemu安装:1、apt-getinstallqemukernel-packagelinux-sourcekqemu-sourcebuild-essential2、cd/usr/src/linuxmodule-assistantpreparekqemumodule-assistantbuildkqemumodule-a

qemu安装:

1、apt-get install qemu kernel-package linux-source kqemu-source build-essential

2、cd /usr/src/linux
module-assistant prepare kqemu
module-assistant build kqemu
module-assistant install kqemu
depmod -a

3、
modprobe kqemu
mknod /dev/kqemu c 250 0
chmod 666 /dev/kqemu

一、获取powerpc虚拟镜像

1.手动生成
下载debian-502a-powerpc-netinst.iso文件

1)生成镜像文件,大小自定义
qemu-img create -f qcow ppc.qcow 2G
默认生成.raw格式的镜像文件。qcow应该算是qemu下最佳格式,它的优点在于磁盘映像的大小与表示映像的物理文件的大小不同,比如一个空的4GB磁盘映像只需要16KB的物理空间
qemu支持nbd parallels qcow2 vvfat vpc bochs dmg cloop vmdk qcow cow host_device raw等格式

2)安装
qemu-system-ppc -hdc ppc.qcow -cdrom debian-502a-powerpc-netinst.iso -boot d

3)运行
qemu-system-ppc -hdc debian_lenny_powerpc_small.qcow -redir tcp:22000::22 -m 512
-redir tcp:22000::22   重定向TCP或者UDP连接从主机端口到虚拟机端口。监听虚拟机上的22端口,即sshd服务。当主机ssh指定22000时就连到22端口
-m 512    指定虚拟机的内存大小(512MB)

4)数据共享 (此处默认是user模式,也可以用tap/tun模式)
在ppc虚拟机里面安装openssh-server,启动sshd服务
ssh root@127.0.0.1 -p 22000  [用root用户登陆ppc虚拟机]
scp lb@192.168.100.181:/home/lb/test.txt /root  [把主机192.168.100.181上的test.txt文件传送到ppc虚拟机的root目录下]
scp -r doc/ lb@192.168.100.181:/home/lb        [把ppc虚拟机上的doc目录传送到主机192.168.100.181的/home/lb目录下]

2.下载使用
到http://people.debian.org/~aurel32/qemu/powerpc处下载for ppc的镜像文件,拿来直接使用
1)gunzip debian_lenny_powerpc_small.qcow.gz
2)qemu-system-ppc -hdc debian_lenny_powerpc_small.qcow -redir tcp:22000::22 -m 512

二、生成rootfs
如果需要图形,可以在rootfs中安装x-server(xorg)和x-window(xfce、gnome、kde等),记得chroot ^_^
在powerpc虚拟机中执行以下命令:
1)apt-get install debootstrap
2)scp lb@192.168.100.181:/home/lb/debian-502a-powerpc-netinst.iso .
3)mount -o loop debian-502a-powerpc-netinst.iso /mnt
4)mkdir rootfs
5)debootstrap --arch powerpc lenny ./rootfs/ file:/mnt/debian

三、nfs挂载

powerpc虚拟机:
1)cd rootfs
2)tar cvf rootfs.tar $(ls . | grep -v -e tmp -e mnt -e proc -e media -e sys)
3)scp rootfs.tar lb@192.168.100.181:/home/lb

pc机:
1)mkdir rootfs
2)tar xvf rootfs.tar -C rootfs
3)cd rootfs
4)mkdir {tmp,mnt,proc,media,sys}

powerpc目标板:
在bootload(u-boot)中设置nfs参数,如:
setenv bootargs cOnsole=ttyS0,115200 cOnsole=tty0 root=/dev/nfs rw nfsroot=192.168.100.181:/home/lb/rootfs resolution=1024x768 ip=192.168.100.230

注:.qcow格式的镜像文件不能直接被mount,要先转换成.raw格式
qemu-img convert -f qcow debian_lenny_powerpc_small.qcow -O raw debian_lenny_powerpc_small.raw
mount -o loop,offset=32256 debian_lenny_powerpc_small.raw /mnt/cdrom

raw和qcow的区别:
raw格式是一种"直读直写"的格式,不具备特殊的特性
qcow格式有一些高级的特性,可以对它进行加密和压缩,以节省磁盘空间并保证数据安全,但一旦损坏将很难恢复

qemu相关
qemu支持的平台有: arm x86_64 mips ppc sparc等
如果是arm平台用qemu-system-arm命令;如果是x86平台用qemu-system-x86_64命令

Ctrl+Alt+F    全屏和恢复

网络模式
qemu有两种上网方式:
user mode network:
这种方式实现虚拟机上网很简单,类似vmware里的nat,qemu启动时加入-user-net参数(默认情况下就是-user-net),虚拟机里使用dhcp方式,即可与互联网通信,但是这种方式虚拟机与主机的通信不方便。
tap/tun network:
这种方式要比user mode复杂一些,但是设置好后powerpc虚拟机和互联网、powerpc虚拟机和pc机之间通信都很容易。这种方式设置上类似vmware的host-only,qemu使用tun/tap设备在主机上增加一块虚拟网络设备(tap0),然后就可以象真实网卡一样配置它。

tap/tun模式实现方法:
一、pc机:
1.tap/tun驱动支持 (如果没有就重编内核)
1)ll /dev/net/tun
crw-rw-rw- 1 root root 10, 200 09-07 15:39 /dev/net/tun
2)qemu运行时内核会加载tun模块
lsmod |grep tun
tun                     9508  1

2.tap/tun初始化文件
/etc/qemu-ifup:
sudo -p "Password for $0:" /sbin/ifconfig $1 172.20.0.1

172.20.0.1: tap0的默认ip,可以自定义,如改为192.168.0.1

3.外网实现
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -o eth0 -s 172.20.0.0/24 -j MASQUERADE

4.启动qemu
qemu-system-ppc -hdc debian_lenny_powerpc_small.qcow -m 256 -net nic,vlan=0 -net tap,vlan=0
输入命令ifconfig -a就会显示tap0的信息,默认ip是172.20.0.1

二、powerpc虚拟机:
1.设置ip和route
ifconfig eth0 172.20.0.100
route add default gw 172.20.0.1

2.DNS
dns与pc机相同

3.其它
powerpc虚拟机ip与pc机上tap0的ip相同网段     [powerpc->ip: 172.20.0.100        tap0->ip: 172.20.0.1]
网关为tap0的ip        [powerpc->gateway: 172.20.0.1    tap0->ip: 172.20.0.1]
其余参数与tap0相同,比如子网掩码都为255.255.0.0,广播地址都为172.20.255.255

网桥模式实现方法:
1、修改/etc/qemu-ifup文件,修改后内容如下:
#!/bin/sh
## 获取原来主系统 eth0 的 IP 和网关
IP=`ifconfig eth0|grep "inet addr"|awk '{print $2}'|sed 's/addr://'`
GATEWAY=`route -n|grep ^0.0.0.0|awk '{print $2}'`
## 删除 eth0 的 IP
ip addr del $IP dev eth0
## 激活 tap0 ($1 是qemu传递过来的网卡名称,即tap0)
ip link set $1 up
## 停止并删除存在的网桥
ip link set br0 down &>/dev/null
brctl delbr br0 &>/dev/null
## 添加网桥接口 br0
brctl addbr br0
## 将 eth0 加入网桥
brctl addif br0 eth0
## 将 tap0 加入网桥
brctl addif br0 $1
## 启动网桥
ifconfig br0 $IP up
## 添加默认路由
route add default gw $GATEWAY
2、运行qemu
qemu-system-ppc -hdc debian_lenny_powerpc_small.qcow -m 256 -net nic,vlan=0 -net tap,vlan=0
3、恢复原状,运行qemu-ifdown脚本,内容如下:
#!/bin/sh
IP=`ifconfig br0|grep "inet addr"|awk '{print $2}'|sed 's/addr://'`
GATEWAY=`route -n|grep ^0.0.0.0|awk '{print $2}'`
ip addr del $IP dev br0
ip link set br0 down
brctl delbr br0
ifconfig eth0 $IP up
route add default gw $GATEWAY


推荐阅读
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • Docker的安全基准
    nsitionalENhttp:www.w3.orgTRxhtml1DTDxhtml1-transitional.dtd ... [详细]
  • Consul 单节点与集群环境构建指南
    本文详细介绍了如何安装和配置 Consul 以支持服务注册与发现、健康检查等功能,包括单节点和集群环境的搭建步骤。 ... [详细]
  • Linux环境下配置Subclipse访问SVN+SSH仓库的方法
    本文详细介绍如何在Linux操作系统中配置Subclipse,以便通过SSH协议安全访问SVN仓库。不同于常见的Windows配置指南,本文提供了针对Linux用户的详细步骤。 ... [详细]
  • 优化联通光猫DNS服务器设置
    本文详细介绍了如何为联通光猫配置DNS服务器地址,以提高网络解析效率和访问体验。通过智能线路解析功能,域名解析可以根据访问者的IP来源和类型进行差异化处理,从而实现更优的网络性能。 ... [详细]
  • 本文详细介绍了网络存储技术的基本概念、分类及应用场景。通过分析直连式存储(DAS)、网络附加存储(NAS)和存储区域网络(SAN)的特点,帮助读者理解不同存储方式的优势与局限性。 ... [详细]
  • 阿里云ecs怎么配置php环境,阿里云ecs配置选择 ... [详细]
  • 本文探讨了Web开发与游戏开发之间的主要区别,旨在帮助开发者更好地理解两种开发领域的特性和需求。文章基于作者的实际经验和网络资料整理而成。 ... [详细]
  • 在Linux系统上构建Web服务器的详细步骤
    本文详细介绍了如何在Linux系统上搭建Web服务器的过程,包括安装Apache、PHP和MySQL等关键组件,以及遇到的一些常见问题及其解决方案。 ... [详细]
  • 本文将详细探讨 Linux 系统中的 netstat 命令,该命令用于查看网络状态和连接情况。通过了解 IP 地址和端口的基本概念,我们将更好地理解如何利用 netstat 命令来监控和管理网络服务。 ... [详细]
  • 转自:http:www.yybug.comread-htm-tid-15324.html为什么使用Twisted? 如果你并不准备使用Twisted,你可能有很多异议。为什么使用T ... [详细]
  • 本文介绍了如何在Ubuntu 16.04系统上配置Nginx服务器,以便能够通过网络访问存储在服务器上的图片资源。这解决了在网页开发中需要使用自定义在线图标的需求。 ... [详细]
  • 本文详细探讨了虚拟化的基本概念,包括服务器虚拟化、网络虚拟化及其在云计算环境中的应用。特别强调了SDN技术在网络虚拟化和云计算中的关键作用,以及网络虚拟化技术如何提升资源利用效率和管理灵活性。 ... [详细]
  • 本文详细介绍了如何在Ubuntu系统中下载适用于Intel处理器的64位版本,涵盖了不同Linux发行版对64位架构的不同命名方式,并提供了具体的下载链接和步骤。 ... [详细]
  • 本文深入探讨了MAC地址与IP地址绑定策略在网络安全中的应用及其潜在风险,同时提供了针对该策略的破解方法和相应的防御措施。 ... [详细]
author-avatar
狮子小刚刚
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有