dev-environment: adds instructions for yocto QEMU

This is a different way some are using qemu. This method provides
useful results, especially when there are complex networking issue.
I thought documenting it would be useful.

Signed-off-by: John Edward Broadbent <jebr@google.com>
Change-Id: Ie76792ff98d940d5e2e7b9770ea882c8ac287f04
diff --git a/development/dev-environment.md b/development/dev-environment.md
index a8c881c..2cd87c2 100644
--- a/development/dev-environment.md
+++ b/development/dev-environment.md
@@ -188,3 +188,37 @@
   ```
 
   **Note** To exit (and kill) your QEMU session run: `ctrl+a x`
+
+## Alternative yocto QEMU
+
+  yocto has tools for building and running qemu. These tools avoid some of the
+  configuration issues that come from downloading a prebuild image, and
+  mofifying binaries. Useing yocto qemu also using the TAP interface which some
+  find be more stable. This is particually useful when debugging at the
+  application level.
+
+  - set up a bmc build enviroment
+  ```
+  source setup romulus myBuild/build
+  ```
+  - add the qemu x86 open embedded machine for testing
+  ```
+  MACHINE ??= "qemux86"
+  ```
+  - Make the changes to the build (ie devtool modify bmcweb, devtool add gdb)
+  ```
+  devtool modify bmcweb myNewLocalbmcweb/
+  ```
+  - build open bmc for the qemu x86 machine
+  ```
+  MACHINE=qemux86 bitbake obmc-phosphor-image
+  ```
+  - run qemu they way yocto provides
+  ```
+  runqemu myBuild/build/tmp/deploy/images/qemux86/ nographic \
+      qemuparams="-m 2048"
+  ```
+  - after that the all the a TAP network interface is added, and protocol like
+  ssh, scp, http work well.
+
+