Qemu调试

最近更新时间:2023-07-24



系统准备采用ubuntu 16.04 TLS 64版本 下载qemu调试工具包

1.安装虚拟网桥工具和模拟器

apt-get install qemu-system-arm bridge-utils

2.停掉有关网络服务

service NetworkManager stop #停掉Docker服务 systemctl stop docker.service #删除Docker创建的默认虚拟网卡 ip link set dev docker0 down brctl delbr docker0

3.配置虚拟网桥的操作,例如你的实体网卡名字为:enp0s31f6

# 先关闭enp0s31f6接口 ifconfig enp0s31f6 down # 增加一个虚拟网桥br0 brctl addbr br0 # 在br0中添加一个接口enp0s31f6 brctl addif br0 enp0s31f6 #只有一个网桥,所以关闭生成树协议 brctl stp br0 off # 设置br0的转发延迟 brctl setfd br0 1 # 设置br0的hello时间 brctl sethello br0 1 # 打开br0接口 ifconfig br0 0.0.0.0 promisc up # 打开eth0接口 ifconfig enp0s31f6 0.0.0.0 promisc up # 从dhcp服务器获得br0的IP地址 dhclient br0 # 查看虚拟网桥列表 brctl show br0 # 查看br0的各接口信息 brctl showstp br0 #在没有dhcp服务器的网络中也可以用ifconfig命令为br0接口配置一个静态IP地址 #例如: ifconfig br0 192.168.110.22 netmask 255.255.255.0 route add default gw 192.168.110.1 # 创建一个tap0接口,只允许root用户访问 tunctl -t tap0 -u root # 在虚拟网桥中增加一个tap0接口 brctl addif br0 tap0 # 打开tap0接口 ifconfig tap0 0.0.0.0 promisc up # 显示br0的各个接口 brctl showstp br0

4.配置虚拟网桥转发的操作

echo "1" > /proc/sys/net/ipv4/ip_forward echo "0" > /proc/sys/net/bridge/bridge-nf-call-iptables iptables -P FORWARD DROP iptables -A FORWARD -p all -i br0 -j ACCEPT

5.运行玩客云虚拟机

sudo qemu-system-arm -m 1024M -M vexpress-a9 -dtb onecloud.dtb -kernel zImage -append "root=/dev/mmcblk0 panic=1 rootfstype=ext4 rw console=ttyAMA0" -sd onecloud.img -net nic -net tap,ifname=tap0,script=no,downscript=no --nographic

6.登录OneCloud login: 用户名:root,密码:onecloud,同时也支持telnet和ssh登录

例如:玩客云IP:192.168.110.132 telnet 登录: telnet 192.168.110.132 login:root passwd:onecloud ssh 登录: ssh root@192.168.110.132 passwd:onecloud

7.nfs挂载本机调试

#nfs server安装 apt-get install nfs-kernel-server #新增配置到文件/etc/exports /home/user/nfs *(rw,sync,no_root_squash) #重启nfs server service nfs-kernel-server restart #虚拟机环境执行nfs挂载,例如: busybox mount -t nfs -o nolock 192.168.110.132:/home/user/nfs /mnt

8.运行docker例子

dockerd --storage-driver=aufs & docker pull registry.docker-cn.com/arm32v6/alpine docker run -it --rm --net=host registry.docker-cn.com/arm32v6/alpine

9.运行chrome webdirver 自动化测试脚本

例如: cd /plugin-chrome export LD_LIBRARY_PATH=$PWD/lib export PATH=$PWD/bin:$PATH export PYTHONPATH=$PWD/lib/python2.7:$PWD/lib/python2.7/site-packages:$PWD/lib/python2.7/lib-dynload export CHROME_DRIVER=$PWD/chromedriver export CHROME=$PWD/content_shell python webdriver.py