热门标签 | 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


推荐阅读
  • Consul 单节点与集群环境构建指南
    本文详细介绍了如何安装和配置 Consul 以支持服务注册与发现、健康检查等功能,包括单节点和集群环境的搭建步骤。 ... [详细]
  • NFS(Network File System)即网络文件系统,是一种分布式文件系统协议,主要用于Unix和类Unix系统之间的文件共享。本文详细介绍NFS的配置文件/etc/exports和相关服务配置,帮助读者理解如何在Linux环境中配置NFS客户端。 ... [详细]
  • Linux环境下配置Subclipse访问SVN+SSH仓库的方法
    本文详细介绍如何在Linux操作系统中配置Subclipse,以便通过SSH协议安全访问SVN仓库。不同于常见的Windows配置指南,本文提供了针对Linux用户的详细步骤。 ... [详细]
  • 在现代网络环境中,两台计算机之间的文件传输需求日益增长。传统的FTP和SSH方式虽然有效,但其配置复杂、步骤繁琐,难以满足快速且安全的传输需求。本文将介绍一种基于Go语言开发的新一代文件传输工具——Croc,它不仅简化了操作流程,还提供了强大的加密和跨平台支持。 ... [详细]
  • 本文探讨了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服务器,以便能够通过网络访问存储在服务器上的图片资源。这解决了在网页开发中需要使用自定义在线图标的需求。 ... [详细]
  • 本文详细记录了作者从7月份的提前批到9、10月份正式批的秋招经历,包括各公司的面试流程、技术问题及HR面的常见问题。通过这次秋招,作者深刻体会到了技术积累和面试准备的重要性。 ... [详细]
  • 本文详细介绍了如何设置局域网,并确保网络中的所有计算机能够相互访问和共享安装的软件。包括物理连接检查、TCP/IP设置、网络协议配置等多个方面。 ... [详细]
  • Python安全实践:Web安全与SQL注入防御
    本文旨在介绍Web安全的基础知识,特别是如何使用Python和相关工具来识别和防止SQL注入攻击。通过实际案例分析,帮助读者理解SQL注入的危害,并掌握有效的防御策略。 ... [详细]
  • 本文介绍了Linux操作系统的核心组成部分——内核及其版本分类,以及市面上常见的几种Linux发行版,旨在为初学者提供一个清晰的学习路径。 ... [详细]
  • Parallels Desktop for Mac 是一款功能强大的虚拟化软件,能够在不重启的情况下实现在同一台电脑上无缝切换和使用 Windows 和 macOS 系统中的各种应用程序。该软件不仅提供了高效稳定的性能,还支持多种高级功能,如拖放文件、共享剪贴板等,极大地提升了用户的生产力和使用体验。 ... [详细]
  • 数字图书馆近期展出了一批精选的Linux经典著作,这些书籍虽然部分较为陈旧,但依然具有重要的参考价值。如需转载相关内容,请务必注明来源:小文论坛(http://www.xiaowenbbs.com)。 ... [详细]
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社区 版权所有