Greetings All,
I have recently tried to start again from scratch to build the GENODE + NOVA for x86_64 per Normans instructions:
---------------------------------------------------- alternatively, you can use Genode directly on NOVA without the need for NRE or NUL. It is also possible to run virtual machines on top of NOVA + Genode. All three variants (NUL, NRE, and Genode) use the same user-level virtual machine monitor (VMM) called Seoul (formerly called Vancouver).
For Genode, you can find the Seoul VMM at 'ports/src/vancouver/'. The actual Seoul 3rd-party code can be downloaded by issuing the following command from within Genode's 'ports/' repository:
make prepare PKG=seoul
You will also need to download the C runtime as needed by Seoul and the x86emu needed by the VESA graphics driver. This can be done by changing to the 'libports/' repository and issuing the following command:
make prepare PKG="x86emu libc"
You can try out Linux running on NOVA + Genode using the ready-to-use run scripts at 'ports/run/seoul-*'. For example, to see a graphical Linux desktop on top of NOVA + Genode, execute the following command from within your build directory. Please make sure to have the 'libports' and 'ports' repositories enabled in the 'etc/build.conf' file of your build directory.
make run/seoul-fancy
By default, the build system will try to run the resulting boot image in Qemu, which is extremely slow (Qemu executes NOVA, which executes Genode, which executes Seoul, which executes Linux). But you can write the corresponding ISO image to a USB stick and boot it on a real machine. The machine must have VT enabled in the BIOS.
dd if=var/run/seoul-fancy.iso of=/dev/your_usb_stick_device bs=1M
The scenario will show Genode's launchpad, where you can start a virtual machine by clicking on the blue text labeled "init". A new window will appear with Tinycore Linux booting. Given that your machine is connected to the internet (and a DHCP server is running on your network), you can even browse the net using Firefox.
You can start a second Linux instance by clicking on the "init" button again.
In this scenario, each virtual machine is just a regular node of Genode's process tree, subjected to the same rigid security regime as in effect for all processes of the Genode system.
I wish you a lot of fun with exploring the possibilities. All the best and happy New Year! ----------------------------------------------------
With that in mind, I started to write down each step that I have been taking in order to show the list how far I have gotten before something errors out.
Here is what I have done so far:
----------------------------------------------------- Purpose to build Genode on top of NOVA hypervisor
1. Setup base plaform Debian 7.2 (64-bit) in Virtualbox (4.3.6 r91406)
2. Get the latest Genode git clone https://github.com/genodelabs/genode.git
3. Download toolchain: genode-toolchain-12.11-x86_64.tar.bz2 or genode-toolchain-12.11-x86_32.tar.bz2
http://sourceforge.net/projects/genode/files/genode-toolchain/ 64-bit in my case.
4. Install Toolchain: sudo tar xPfj genode-toolchain-12.11-x86_64.tar.bz2
5. Go into Genode directory: cd ~/genode/
6. Go get the Seoul VMM into ports directory: cd ~/genode/ports/ make prepare PKG=seoul
7. Go into libports and get C runtime as needed by Seoul and the x86emu needed by the VESA graphics driver: cd ../libports make prepare PKG="x86emu libc"
8. Go into the desired base directory (NOVA in this case): cd ~/genode/base-nova/
Prepare the Nova base: make prepare
9. Go into the base Genode directoy and setup the build directory (ie.. gnova64) ./tool/create_builddir nova_x86_64 BUILD_DIR=gnova64
10. Go into the build directory and edit the etc/build.conf. Enable 'libports' and 'ports' repositories in the 'etc/build.conf' file of your build directory: cd ~/genode/gnova64/etc Use Nano or similar to edit etc/build.conf to remove "#" in front of needed REPOSITORIES. nano build.conf --------------------------------------------------------------------------- . . . # # Ports of popular open-source libraries and the C library. # # Make sure to execute 'make prepare' in 'libports' prior building. # REPOSITORIES += $(GENODE_DIR)/libports # # Qt4 tool kit # # The 'qt4' repository depends on 'libc' and 'libports' # Make sure to execute 'make prepare' in 'qt4' prior building. # REPOSITORIES += $(GENODE_DIR)/qt4 # # Ports of popular 3rd-party applications # # The 'ports' repository depends on 'libc', 'libports', and 'qt4'. # Make sure to execute 'make prepare' in 'ports' prior building. # REPOSITORIES += $(GENODE_DIR)/ports . . .
---------------------------------------------------------------------------- Then go to each directory and do "make prepare" just to be sure. cd ~/genode/ports; make prepare cd ~/genode/libports; make prepare ERROR HERE------------------------------- --2013-12-26 11:12:20-- https://www.openssl.org/source/openssl-1.0.1c.tar.gz Resolving www.openssl.org (www.openssl.org)... 185.9.166.106 Connecting to www.openssl.org (www.openssl.org)|185.9.166.106|:443... connected. ERROR: The certificate of `www.openssl.org' is not trusted. ERROR: The certificate of `www.openssl.org' hasn't got a known issuer. make: *** [download/openssl-1.0.1c.tar.gz] Error 5 lonnie@...223...:~/genode/libports$ -------------------------------------------
Any suggestions would be greatly appreciated.
Kind Regards and have a great day, Lonnie