summaryrefslogtreecommitdiff
path: root/microkernel/viengoos/building.mdwn
blob: 909f1b5e6c71b26dbbebf4ba13e124c30158af92 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
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=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.