用Qemu模拟vexpress-a9 --- 配置 qemu 的网络功能
转载: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 的网络功能的更多相关文章
- 用QEMU模拟运行uboot从SD卡启动Linux
平台:Qemu + vexpress-a9 u-boot:u-boot-2019.10 Linux:linux-4.14.13 之前介绍过用Qemu模拟运行uboot,然后从网络启动lin ...
- CentOS 7 利用qemu模拟ARM vexpress A9开发板
听说qemu用于仿真arm很不错,今日就来试了一把.由于刚刚开始,了解的并不多.本文仅仅记录Qemu装载Linux kernel和busybox根文件系统的过程.后续将会深入了解仿真的其他内容. 先上 ...
- 在qemu模拟的aarch32上使用kgtp
KGTP 介绍 KGTP 是一个能在产品系统上实时分析 Linux 内核和应用程序(包括 Android)问题的全面动态跟踪器. 使用 KGTP 不需要 在 Linux 内核上打 PATCH 或者重新 ...
- 用Qemu模拟vexpress-a9 (一) --- 搭建Linux kernel调试环境【转】
转自:http://www.cnblogs.com/pengdonglin137/p/5023342.html#_label2 阅读目录(Content) 环境介绍: 下载Linux内核 安装arm的 ...
- 用Qemu模拟vexpress-a9 (一) --- 搭建Linux kernel调试环境
参考: http://blog.csdn.net/linyt/article/details/42504975 环境介绍: Win7 64 + Vmware 11 + ubuntu14.04 32 u ...
- qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统
qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和linux kernel,达到与开发板上一样的学习效果! 虽然已经买了2440开发板,但是在实际学习 ...
- 利用qemu模拟嵌入式系统制作全过程
http://www.tinylab.org/using-qemu-simulation-inserts-the-type-system-to-produce-the-whole-process/ 利 ...
- 以Qemu模拟Linux,学习Linux内核
文章名称:以Qemu模拟Linux,学习Linux内核作 者:five_cent文章地址:http://www.cnblogs.com/senix/archive/2013/02/21/29 ...
- qemu 模拟-arm-mini2440开发板-启动u-boot,kernel和nfs文件系统【转】
转自:http://www.cnblogs.com/riskyer/p/3366001.html qemu 本文介绍了如何编译u-boot.linux kernel,然后用qemu启动u-boot和l ...
- Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统
Qemu搭建ARM vexpress开发环境(三)----NFS网络根文件系统 标签(空格分隔): Qemu ARM Linux 经过上一篇<Qemu搭建ARM vexpress开发环境(二)- ...
随机推荐
- Mysql Federated For Windows
[1]windows环境下打开federated (1)关闭.命令:mysql> net stop mysql (2)添加federated字段.在my.ini文件中添加一个字段,注意位于[my ...
- flask 重定向到上一个页面,referrer、next参数
重定向会上一个页面 在某些场景下,我们需要在用户访问某个url后重定向会上一个页面,比如用户点击某个需要登录才能访问的连接,这时程序会重定向到登录页面,当用户登录后比较合理的行为是重定向到用户登录前浏 ...
- Linux基础命令---netstat显示网络状态
netstat netstat指令可以显示当前的网络连接.路由表.接口统计信息.伪装连接和多播成员资格等信息. 此命令的适用范围:RedHat.RHEL.Ubuntu.CentOS.SUSE.open ...
- AtCoder Beginner Contest 083 (AB)
A - Libra 题目链接:https://abc083.contest.atcoder.jp/tasks/abc083_a Time limit : 2sec / Memory limit : 2 ...
- 听 Fabien Potencier 谈Symfony2 之 《What is Symfony2 ?》
Symfoy2 是什么? PHP世界里又一广受关注的web MVC框架? Fabien Potencier 却不这么说! Fabien Potencier这样定义Symfoy2 是个什么东西: 首先, ...
- Django框架----权限管理(设计分析以及具体细节)
说起权限我们大家都知道,不一样的角色会有不一样的权限.比如就像学生管理系统一样,管理员,老师,学生之间的权限都是不一样的,那么展示的页面也是不一样的.所以,我们现在来看看具体操作. 目标:生成一个独立 ...
- mysql01
CREATE TABLE `student`( `studentNo` INT (4) NOT NULL PRIMARY KEY COMMENT '学号', `loginPwd` VARCHAR(20 ...
- 微信企业号OAuth2.0验证接口来获取成员的身份信息
<?php $appid = "请输入您企业的appid"; $secret = "请输入您企业的secreat"; if (!isset($_GET[' ...
- oracle 18c的版本号规则
18C之后的版本标识 从2017年7月开始,Oracle改变了以往的数据库软件发布流程,采用年度Release和季度更新的策略. Yearly Release 将之前的N年一发布更改为每年一发布.每年 ...
- direct加载之ora-39782一例
近日,我们有个环境在数据加载到oracle的时候出现ora-39782异常,版本是11.2.经google,几乎没有什么先例,因为我们是使用oci直接写的,可见现在还使用oci接口并不多,也或者我们的 ...