summaryrefslogtreecommitdiff
path: root/microkernel/viengoos
diff options
context:
space:
mode:
Diffstat (limited to 'microkernel/viengoos')
-rw-r--r--microkernel/viengoos/building.mdwn106
-rw-r--r--microkernel/viengoos/hardware.mdwn50
-rw-r--r--microkernel/viengoos/serial_port.mdwn15
3 files changed, 171 insertions, 0 deletions
diff --git a/microkernel/viengoos/building.mdwn b/microkernel/viengoos/building.mdwn
new file mode 100644
index 00000000..3c27af83
--- /dev/null
+++ b/microkernel/viengoos/building.mdwn
@@ -0,0 +1,106 @@
+[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+
+[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU_Free_Documentation_License|/fdl]]."]]"""]]
+
+## Viengoos build
+
+Checkout hurd-l4:
+
+ cvs -z3 -d :pserver:anonymous@cvs.savannah.gnu.org:/sources/hurd co hurd-l4
+
+There is a patch in the README file, to change to %%gs:0 in libl4/ia32/l4/bits/vregs.h in line 35. It should have been applied already in the checked out code. Do verify.
+
+Configure:
+
+ autoreconf -i
+ mkdir test build
+
+Make check on test (fails to complete as on July 7, 2008):
+
+ cd test
+ ../configure --enable-l4-abi=x2 --host=i686-pc-viengoos-gnu --enable-tests
+ make check
+
+Build the compiler:
+
+ cd ../build
+ ../configure --enable-l4-abi=x2 --host=i686-pc-viengoos-gnu --with-newlib
+
+Build cross-compiler:
+
+ make
+
+Build Viengoos proper:
+
+ make
+
+Install the built executables:
+
+ cd ..
+ mkdir install
+ install -s build/laden/laden install
+ install -s build/viengoos/viengoos install
+ install -s build/hieronymus/hieronymus install
+
+## BUILD L4
+
+Get Pistachio using hg:
+
+ hg clone http://hg.l4ka.org/l4ka-pistachio
+
+Build:
+
+ cd kernel
+
+ make BUILDDIR=/absolute/path/to/build
+ cd build
+
+Check Makeconf.local:
+
+ make menuconfig
+ Kernel->Enable experimental features->Pager ExchangeRegisters
+
+ make
+
+## Build sigma0
+
+ cd user
+
+ autoheader
+ autoconf
+ ./configure
+ make
+
+## Test!
+
+Install all executables to /usr/local/hurd. Create a menu.lst
+
+ title The GNU Hurd on L4
+ root (hd0,0)
+ kernel /laden -D
+ module /x86-kernel
+ module /sigma0
+ module /viengoos -D 3 -o serial
+ module /hieronymus -D 3
+
+Get specific grub version:
+
+ wget ftp://alpha.gnu.org/gnu/grub/grub-0.97-i386-pc.ext2fs
+
+Use the following to boot:
+
+ qemu -serial stdio -hdb fat:/usr/local/hurd -fda grub-0.97-i386-pc.ext2fs -boot a
+
+At grub prompt:
+
+ grub> root (hd0,0)
+
+ grub> configfile /menu.lst
+
+It will boot to a kernel debugger prompt.
diff --git a/microkernel/viengoos/hardware.mdwn b/microkernel/viengoos/hardware.mdwn
new file mode 100644
index 00000000..1b4ce514
--- /dev/null
+++ b/microkernel/viengoos/hardware.mdwn
@@ -0,0 +1,50 @@
+[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+
+[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU_Free_Documentation_License|/fdl]]."]]"""]]
+
+I boot over the network using PXE.
+
+On my build machine, I have installed a tftpserver. Specifically, I use
+the one built into dnscache. In /tftpboot, I have symlinks to pistachio,
+sigma0, and the root of the build tree.
+
+My build machine boots using PXE. It gets an IP address, contacts
+my build machine and loads [grub2pxe](http://grub.enbug.org/PXEBOOT).
+Note that there is no need to use pxelinux; grub2 is a valid PXE
+executable. Further, grub2 uses the PXE interface for accessing the
+network, so if your hardware supports PXE, then you do not need to
+worry about a network driver. Here is how I build grub2 and the
+grub2 image:
+
+ cd ~/src
+ svn co svn://svn.savannah.gnu.org/grub/trunk/grub2
+ cd grub2
+ mkdir build
+ cd build
+ ../configure --prefix=$HOME/src/grub2/install && make && make install
+ cd ~/src/grub2/install
+ bin/grub-mkimage --output=core.img --prefix="(pxe)" pxe pxecmd help reboot serial multiboot pc configfile normal boot
+ cat lib/grub/i386-pc/pxeboot.img core.img > grub2pxe
+
+Here is my /tftpboot/grub.cfg, which sends output to the first
+[[serial_port]]:
+
+ # Timeout for menu
+ set timeout=1
+
+ # Set default boot entry as Entry 0
+ set default=0
+
+ menuentry "Viengoos" {
+ multiboot /viengoos/laden/laden -o serial -D
+ module /pistachio
+ module /sigma0
+ module /viengoos/viengoos/viengoos.stripped -D 3 -o serial
+ module /viengoos/hieronymus/hieronymus.stripped
+ }
diff --git a/microkernel/viengoos/serial_port.mdwn b/microkernel/viengoos/serial_port.mdwn
new file mode 100644
index 00000000..53b988c5
--- /dev/null
+++ b/microkernel/viengoos/serial_port.mdwn
@@ -0,0 +1,15 @@
+[[meta copyright="Copyright © 2008 Free Software Foundation, Inc."]]
+
+[[meta license="""[[toggle id="license" text="GFDL 1.2+"]][[toggleable
+id="license" text="Permission is granted to copy, distribute and/or modify this
+document under the terms of the GNU Free Documentation License, Version 1.2 or
+any later version published by the Free Software Foundation; with no Invariant
+Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
+is included in the section entitled
+[[GNU_Free_Documentation_License|/fdl]]."]]"""]]
+
+Viengoos can be configured to send output to the serial port (in fact,
+this is the only configuration that I use). To talk to the serial
+port, I use ser2net, which provides a telnet interface to the serial
+port. Be sure to edit /etc/ser2net.conf to use 115200 bps, which
+Viengoos uses by default.