[rtems-libbsd commit] Add VDE and QEMU doco.

Chris Johns chrisj at rtems.org
Mon Jun 27 06:45:24 UTC 2016


Module:    rtems-libbsd
Branch:    master
Commit:    39a650e570a92226edf198c9e8760b4a920af80f
Changeset: http://git.rtems.org/rtems-libbsd/commit/?id=39a650e570a92226edf198c9e8760b4a920af80f

Author:    Chris Johns <chrisj at rtems.org>
Date:      Mon Jun 27 16:45:18 2016 +1000

Add VDE and QEMU doco.

---

 libbsd.txt | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/libbsd.txt b/libbsd.txt
index 2c2f530..7c67873 100644
--- a/libbsd.txt
+++ b/libbsd.txt
@@ -409,6 +409,57 @@ brctl addif qbri eth0
 dhclient qbri
 -------------------------------------------------------------------------------
 
+=== VDE and QEMU
+
+On FreeBSD you can create VDE or the Virtual Distributed Ethernet to create a
+network environment that does not need to run qemu as root or needing to drop
+the tap's privileges to run qemu.
+
+VDE creates a software switch with a default of 32 ports which means a single
+kernel tap can support 32 qemu networking sessions.
+
+To use VDE you need to build qemu with VDE support. The RSB can detect a VDE
+plug and enable VDE support in qemu when building. On FreeBSD install the VDE
+support with:
+
+ # pkg install -u vde2
+
+Build qemu with the RSB.
+
+To network create a bridge and a tap. The network is 10.10.1.0/24. On FreeBSD
+add to your /etc/rc.conf:
+
+ cloned_interfaces="bridge0 tap0"
+ autobridge_interfaces="bridge0"
+ autobridge_bridge0="re0 tap0"
+ ifconfig_re0="up"
+ ifconfig_tap0="up"
+ ifconfig_bridge0="inet 10.1.1.2 netmask 255.255.255.0"
+ defaultrouter="10.10.1.1"
+
+Start the VDE switch as root:
+
+ # sysctl net.link.tap.user_open=1
+ # sysctl net.link.tap.up_on_open=1
+ # vde_switch -d -s /tmp/vde1 -M /tmp/mgmt1 -tap tap0 -m 660 --mgmtmode 660
+ # chmod 660 /dev/tap0
+
+You can connect to the VDE switch's management channel using:
+
+ $ vdeterm /tmp/mgmt1
+
+To run qemu:
+
+ $ qemu-system-arm \
+	-serial null \
+	-serial mon:stdio \
+	-nographic \
+	-M xilinx-zynq-a9 \
+	-net nic,model=cadence_gem,macaddr=0e:b0:ba:5e:ba:11 \
+	-net vde,id=vde0,sock=/tmp/vde1
+	-m 256M \
+	-kernel build/arm-rtems4.12-xilinx_zynq_a9_qemu/rcconf02.exe
+
 == Issues and TODO
 
 * PCI support on x86 uses a quick and dirty hack, see pci_reserve_map().



More information about the vc mailing list