转载:http://wiki.sylixos.com/index.php/Linux%E7%8E%AF%E5%A2%83%E5%BC%80%E5%8F%91%E6%8C%87%E5%8D%97

环境介绍

Win7 64 + Vmware 11 + ubuntu14.04 32

u-boot 版本:u-boot-2015-04

Linux kernel版本:linux-3.16.y

busybox版本:1_24_stable

交叉编译工具链:arm-linux-gnueabi-

qemu 支持多种网络链接方式,其中最常用的就是桥接(bridge)。 这需要依赖内核的 tun/tap 模块的支持。
  • 输入如下命令安装必要的工具包:
sudo apt-get install uml-utilities
sudo apt-get install bridge-utils
  • 输入如下命令查看 /dev/net/tun 文件:
ls -l /dev/net/tun
crw-rw-rwT root root , Apr : /dev/net/tun
如果该文件存在,这表明内核已经支持开启了 tun 支持,在 ubuntu-12.04 中,这个功能默认已经开启。
如果该文件不存在,则需要加载 tun 模块,并创建 /dev/net/tun 文件。
  • 修改 /etc/network/interfaces 文件,笔者的文件内容如下所示(示例文件位于 /home/user/sylixos_workspace/qemu-mini2440/ubuntu-12.04 目录):
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(). # The loopback network interface
auto lo
iface lo inet loopback # The primary network interface
auto eth0
#NetworkManager#iface eth0 inet dhcp
# 经过试验发现,由于我用的是虚拟机,添加了三块虚拟网卡eth0对应的是NAT连接方式,eth2对应的是桥接方式,如果
# 将虚拟机的VMnet8和VMnet1禁止掉的话,eth2就不能工作,此时下面如果是bridge_ports eth2的话,qemu就无法联网了
# 但是发现eth0让然可用,所以这里设置了bridge_ports eth0. auto br0
iface br0 inet dhcp
bridge_ports eth0
  • 添加 /etc/qemu-ifup 和 /etc/qemu-ifdown 脚本。
默认情况下,当 qemu 使用 tap 设备时,会执行 /etc/qemu-ifup 和 /etc/qemu-ifdown 这两个脚本。
我们需要创建这两个脚本,然后为它们加上可执行权限(使用chmod +x)。
创建 /etc/qemu-ifup 脚本,内容如下所示(示例文件位于 /home/user/sylixos_workspace/qemu-mini2440/ubuntu-12.04 目录):
#!/bin/sh

echo sudo tunctl -u $(id -un) -t $
sudo tunctl -u $(id -un) -t $ echo sudo ifconfig $ 0.0.0.0 promisc up
sudo ifconfig $ 0.0.0.0 promisc up echo sudo brctl addif br0 $
sudo brctl addif br0 $ echo brctl show
brctl show sudo ifconfig br0 192.168.11.20
这里需要说明一下,由于我的虚拟机上eth0对应的是NAT连接方式,在VMware的配置中:
可以看到eth0的地址是在192.168.11.0网段,所以将br0也设置在192.168.11.0网段。
创建 /etc/qemu-ifdown 脚本,内容如下所示(示例文件位于 /home/user/sylixos_workspace/qemu-mini2440/ubuntu-12.04 目录):
#!/bin/sh

echo sudo brctl delif br0 $
sudo brctl delif br0 $ echo sudo tunctl -d $
sudo tunctl -d $ echo brctl show
brctl show
输入如下命令为 /etc/qemu-ifup 和 /etc/qemu-ifdown 脚本加上可执行权限:
chmod +x /etc/qemu-ifup
chmod +x /etc/qemu-ifdown
  • 最后需要重启计算机,使新的 /etc/network/interfaces 配置文件生效。

  运行测试:

./qemu-system-arm ......  -net nic,vlan= -net tap,vlan=,ifname=tap0
如果出现如下信息:
warning: could not configure /dev/net/tun: no virtual network emulation
Could not initialize device 'tap'
那么先手动执行如下命令:
/etc/qemu-ifup tap0
注意:不可使用 sudo 执行上一条命令,每次启动 ubuntu 后都需要手动执行一次上一条命令。

用Qemu模拟vexpress-a9 --- 配置 qemu 的网络功能的更多相关文章

  1. 用QEMU模拟运行uboot从SD卡启动Linux

    平台:Qemu + vexpress-a9 u-boot:u-boot-2019.10 Linux:linux-4.14.13       之前介绍过用Qemu模拟运行uboot,然后从网络启动lin ...

  2. CentOS 7 利用qemu模拟ARM vexpress A9开发板

    听说qemu用于仿真arm很不错,今日就来试了一把.由于刚刚开始,了解的并不多.本文仅仅记录Qemu装载Linux kernel和busybox根文件系统的过程.后续将会深入了解仿真的其他内容. 先上 ...

  3. 在qemu模拟的aarch32上使用kgtp

    KGTP 介绍 KGTP 是一个能在产品系统上实时分析 Linux 内核和应用程序(包括 Android)问题的全面动态跟踪器. 使用 KGTP 不需要 在 Linux 内核上打 PATCH 或者重新 ...

  4. 用Qemu模拟vexpress-a9 (一) --- 搭建Linux kernel调试环境【转】

    转自:http://www.cnblogs.com/pengdonglin137/p/5023342.html#_label2 阅读目录(Content) 环境介绍: 下载Linux内核 安装arm的 ...

  5. 用Qemu模拟vexpress-a9 (一) --- 搭建Linux kernel调试环境

    参考: http://blog.csdn.net/linyt/article/details/42504975 环境介绍: Win7 64 + Vmware 11 + ubuntu14.04 32 u ...

  6. qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统

    qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和linux kernel,达到与开发板上一样的学习效果! 虽然已经买了2440开发板,但是在实际学习 ...

  7. 利用qemu模拟嵌入式系统制作全过程

    http://www.tinylab.org/using-qemu-simulation-inserts-the-type-system-to-produce-the-whole-process/ 利 ...

  8. 以Qemu模拟Linux,学习Linux内核

    文章名称:以Qemu模拟Linux,学习Linux内核作      者:five_cent文章地址:http://www.cnblogs.com/senix/archive/2013/02/21/29 ...

  9. qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统【转】

    转自:http://www.cnblogs.com/riskyer/p/3366001.html qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和l ...

  10. Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统

    Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统 标签(空格分隔): Qemu ARM Linux 经过上一篇<Qemu搭建ARM vexpress开发环境(二)- ...

随机推荐

  1. 【Redis学习之十一】Java客户端实现redis集群操作

    客户端:jedis-2.7.2.jar 配置文件两种方式: properties: redis.cluster.nodes1=192.168.1.117 redis.cluster.port1=700 ...

  2. flask上下文全局变量,程序上下文、请求上下文、上下文钩子

    Flask上下文 Flask中有两种上下文,程序上下文(application context)和请求上下文(request context) 当客户端发来请求时,请求上下文就登场了.请求上下文里包含 ...

  3. 20165215 2017-2018-2《Java程序设计》第一周学习总结

    20165215 2017-2018-2 <Java程序设计>第一周学习总结 教材学习内容总结 跟随网课学习了<Java2 实用教程>的第一章,进行了基础的编译练习 在Ubun ...

  4. MongoDB With Spark遇到的2个错误,不能初始化和sample重复的key

    1.$sample stage could not find a non-duplicate document while using a random cursor 这个问题比较难解决,因为我用mo ...

  5. 转:【专题六】UDP编程

    引用: 前一个专题简单介绍了TCP编程的一些知识,UDP与TCP地位相当的另一个传输层协议,它也是当下流行的很多主流网络应用(例如QQ.MSN和Skype等一些即时通信软件传输层都是应用UDP协议的) ...

  6. 怎样从外网访问内网Jupyter Notebook?

    本地安装了一个Jupyter Notebook,只能在局域网内访问,怎样从外网也能访问到本地的Jupyter Notebook呢?本文将介绍具体的实现步骤. 准备工作 安装并启动Jupyter Not ...

  7. 怎样从外网访问内网Jetty?

    本地安装了一个Jetty,只能在局域网内访问,怎样从外网也能访问到本地的Jetty呢?本文将介绍具体的实现步骤. 准备工作 安装并启动Jetty 默认安装的Jetty端口是8080. 实现步骤 下载并 ...

  8. asyncio 中给running 的loop 动态添加 Future Task

    https://my.oschina.net/backbye/blog/1919486 asyncio 提供了两个给运行中的事件循环(loop) 添加 事件的方法 call_soon_threadsa ...

  9. MySQL半同步安装以及参数

    MySQL半同步安装以及参数 基于MySQL5.5 官档地址: Semisynchronous Replication Administrative Interface https://dev.mys ...

  10. VMware无法读取USB文件

    今天碰到虚拟机内的Mac OS无法读取USB,经过一番查看,是Windows的服务里面的vmware usb arbitration service服务没有启动,再点击启动的时候,报错,提示本地文件找 ...