1:BUILD_BY[name] student5 1:BUILD_ENVIRONMENT[operating system 32 vs 64] 1:END_BUILD_ENVIRONMENT 1:DEPENDENCIES[list of dependencies with where to get them] Note - only works on Debian and Ubuntu systems The following are required to build Barrelfish and its tools: * GCC 4.x * 4.4.5, and 4.5.2 are known to work * cross-compiling between i386 and x86_64 works (requires libc6-dev-i386 to build 32 bit on 64 bit machine) * for the ARM port, we recommend the EABI tools available from CodeSourcery: http://www.codesourcery.com/sgpp/lite/arm * GNU binutils (2.19 is known to work) * GNU make * GHC v7.4 and Parsec 3.1 * older versions of the tree supported v6.10 or v6.12.2 with Parsec 2.1 * GHC v6.12.1 has a known bug and is unable to build our tools * earlier versions of GHC are unsupported 1:END_DEPENDENCIES 1:NOTES[notes on attempted build] error obtained at step2. of the build instructions (present in the README file with the download). : cannot satisfy -package ghc-paths (use -v for more information) 1:END_NOTES 2:BUILD_BY[name] student1 2:BUILD_ENVIRONMENT[operating system 32 vs 64] Ubuntu 12.0.4 # uname -a Linux ubuntu 3.8.0-29-generic #42~precise1-Ubuntu SMP Wed Aug 14 16:19:23 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux # lscpu Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 1 On-line CPU(s) list: 0 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 1 NUMA node(s): 1 Vendor ID: GenuineIntel CPU family: 6 Model: 58 Stepping: 9 CPU MHz: 1696.145 BogoMIPS: 3392.29 Hypervisor vendor: VMware Virtualization type: full L1d cache: 32K L1i cache: 32K L2 cache: 256K L3 cache: 3072K NUMA node0 CPU(s): 0 2:END_BUILD_ENVIRONMENT 2:DEPENDENCIES[list of dependencies with where to get them] 1.ghc => #apt-get install ghc 2.ghc-paths => download ghc-paths and install it as below #runhaskell Setup.hs configure --ghc #runhaskell Setup.hs build #runhaskell Setup.hs install 3 Cabal #apt-get install cabal-install #cabal update 4. parsec 3.1 #runhaskell Setup.hs configure --ghc #runhaskell Setup.hs build #runhaskell Setup.hs install 2:END_DEPENDENCIES 2:NOTES[notes on attempted build] http://wiki.barrelfish.org/Getting_Started Steps : 1. mkdir build && cd build -> passed 2. ../hake/hake.sh -s .. -a x86_64 ->Passed 3. make 'Make' failed during the dependency resolution, could able to pass step 1 and step 2 successfully in the README. ghc -i../tools/fugu -odir ./tools/tools/fugu -hidir ./tools/tools/fugu -rtsopts=all --make ../tools/fugu/Main.lhs -o ./tools/bin/fugu -i../tools/fof ../tools/fugu/Parser.hs:24:8: Could not find module `Text.ParserCombinators.Parsec.Language' Use -v to see a list of the files searched for. make: *** [tools/bin/fugu] Error 1 2:END_NOTES 3:BUILD_BY[name] student8 3:BUILD_ENVIRONMENT[operating system 32 vs 64] Ubuntu 12.04 64-bit 3:END_BUILD_ENVIRONMENT 3:DEPENDENCIES[list of dependencies with where to get them] ghc-7.4.1 from http://www.haskell.org/ghc/dist/7.4.1/ghc-7.4.1-x86_64-unknown-linux.tar.bz2 ghc-paths package from http://hackage.haskell.org/package/ghc-paths-0.1.0.9/ghc-paths-0.1.0.9.tar.gz parsec2 package from https://hackage.haskell.org/package/parsec-2.0/parsec-2.0.tar.gz random package from https://hackage.haskell.org/package/random-1.0.1.1/random-1.0.1.1.tar.gz QEMU from http://wiki.qemu-project.org/download/qemu-2.1.0.tar.bz2 3:END_DEPENDENCIES 3:NOTES[notes on attempted build] To install ghc-7.4.1: $ wget http://www.haskell.org/ghc/dist/7.4.1/ghc-7.4.1-x86_64-unknown-linux.tar.bz2 $ tar -xjf ghc-7.4.1-x86_64-unknown-linux.tar.bz2 $ cd ghc-7.4.1 $ configure $ sudo make install $ cd .. To install ghc-paths package: $ wget http://hackage.haskell.org/package/ghc-paths-0.1.0.9/ghc-paths-0.1.0.9.tar.gz $ tar -xzf ghc-paths-0.1.0.9.tar.gz $ cd ghc-paths-0.1.0.9 $ runhaskell Setup.hs configure --ghc $ runhaskell Setup.hs build $ sudo runhaskell Setup.hs install $ cd .. To install parsec2 package: $ wget https://hackage.haskell.org/package/parsec-2.0/parsec-2.0.tar.gz $ tar -xzf parsec-2.0.tar.gz $ cd parsec-2.0/ $ runhaskell Setup.hs configure --ghc $ runhaskell Setup.hs build $ sudo runhaskell Setup.hs install $ cd .. To install random package: $ wget https://hackage.haskell.org/package/random-1.0.1.1/random-1.0.1.1.tar.gz $ tar -xzf random-1.0.1.1.tar.gz $ cd random-1.0.1.1 $ runhaskell Setup.hs configure --ghc $ runhaskell Setup.hs build $ sudo runhaskell Setup.hs install $ cd .. To install qemu: $ wget http://wiki.qemu-project.org/download/qemu-2.1.0.tar.bz2 $ tar -xjf qemu-2.1.0.tar.bz2 $ cd qemu-2.1.0 $ configure $ make $ sudo make install $ cd .. $ tar -xzf barrelfish-b68220727e2b.tar.gz $ cd barrelfish-b68220727e2b $ mkdir build && cd build $ ../hake/hake.sh -s .. -a x86_64 $ make $ make sim ARCH=x86_64 qemu-img create hd.img 10M Formatting 'hd.img', fmt=raw size=10485760 qemu-system-x86_64 -no-kvm -smp 2 -m 1024 -net nic,model=ne2k_pci -net user -device ahci,id=ahci -device ide-drive,drive=disk,bus=ahci.0 -drive id=disk,file=hd.img,if=none -fda ../tools/grub-qemu.img -tftp /lhome/student/repro_lab/SchupbachBRP12/barrelfish-b68220727e2b/build -nographic Found Realtek 8029 at 0xc000, ROM address 0xae00 Probing...[Realtek 8029] NE2000 base 0xc000, addr 52:54:00:12:34:56 Address: 10.0.2.15 Netmask: 255.255.255.0 Server: 10.0.2.2 Gateway: 10.0.2.2 Address: 10.0.2.15 Netmask: 255.255.255.0 Server: 10.0.2.2 Gateway: 10.0.2.2 Booting 'Chain-load /menu.lst from TFTP' root (nd) Filesystem type is tftp, using whole disk configfile (nd)/menu.lst TFTP error 1 (File not found) Booting 'Barrelfish' root (nd) Filesystem type is tftp, using whole disk kernel /x86_64/sbin/elver loglevel=4 [Multiboot-elf, <0x100000:0x2560:0x0>, <0x103fe4:0x1c:0x6000>, shtab=0x10a2f 8, entry=0x10000c] module /x86_64/sbin/cpu loglevel=4 [Multiboot-module @ 0x116000, 0xde0b9 bytes] module /x86_64/sbin/init [Multiboot-module @ 0x1f5000, 0x4c9d38 bytes] module /x86_64/sbin/mem_serv [Multiboot-module @ 0x6bf000, 0x47a2a4 bytes] module /x86_64/sbin/monitor [Multiboot-module @ 0xb3a000, 0x6a8d12 bytes] module /x86_64/sbin/ramfsd boot [Multiboot-module @ 0x11e3000, 0x5176c2 bytes] module /x86_64/sbin/skb boot [Multiboot-module @ 0x16fb000, 0xb67561 bytes] modulenounzip /skb_ramfs.cpio.gz nospawn [Multiboot-module @ 0x2263000, 0xa0123 bytes] module /x86_64/sbin/kaluga boot [Multiboot-module @ 0x2304000, 0x8782f3 bytes] module /x86_64/sbin/acpi boot [Multiboot-module @ 0x2b7d000, 0x7d76ff bytes] module /x86_64/sbin/spawnd boot [Multiboot-module @ 0x3355000, 0x7e2130 bytes] module /x86_64/sbin/startd boot [Multiboot-module @ 0x3b38000, 0x765cbd bytes] module /x86_64/sbin/routing_setup boot [Multiboot-module @ 0x429e000, 0x4cf043 bytes] module /x86_64/sbin/pci auto [Multiboot-module @ 0x476e000, 0x6384cd bytes] module /x86_64/sbin/ahcid auto [Multiboot-module @ 0x4da7000, 0x567725 bytes] module /x86_64/sbin/rtl8029 auto [Multiboot-module @ 0x530f000, 0x579347 bytes] module /x86_64/sbin/e1000n auto [Multiboot-module @ 0x5889000, 0x5eae45 bytes] module /x86_64/sbin/NGD_mng auto [Multiboot-module @ 0x5e74000, 0x504c5a bytes] module /x86_64/sbin/netd auto [Multiboot-module @ 0x6379000, 0x59b8e0 bytes] module /x86_64/sbin/serial [Multiboot-module @ 0x6915000, 0x4b0d10 bytes] module /x86_64/sbin/fish [Multiboot-module @ 0x6dc6000, 0x80cc27 bytes] Kernel starting at address 0xffffff80075d4000 Barrelfish CPU driver starting on x86_64 apic_id 0 kernel 0: Measured 1000016576 APIC timer counts in one RTC second, 1973545 data points. kernel 0: Considerable TSC jitter detected! 4584 ticks on average. kernel 0: Measured 2802262 TSC counts per ms, 99 data points. Average jitter 4584 TSC ticks. spawn module: x86_64/sbin/init Raw MMAP from BIOS 0x00000000 - 0x0009fc00 Type: 1 Length: 0x9fc00 0x0009fc00 - 0x000a0000 Type: 2 Length: 0x400 0x000f0000 - 0x00100000 Type: 2 Length: 0x10000 0x00100000 - 0x3ffdf000 Type: 1 Length: 0x3fedf000 0x3ffdf000 - 0x40000000 Type: 2 Length: 0x21000 0xfffc0000 - 0x100000000 Type: 2 Length: 0x40000 Sorted MMAP 0x00000000 - 0x0009fc00 Type: 1 Length: 0x9fc00 0x0009fc00 - 0x000a0000 Type: 2 Length: 0x400 0x000f0000 - 0x00100000 Type: 2 Length: 0x10000 0x00100000 - 0x3ffdf000 Type: 1 Length: 0x3fedf000 0x3ffdf000 - 0x40000000 Type: 2 Length: 0x21000 0xfffc0000 - 0x100000000 Type: 2 Length: 0x40000 Preprocessed MMAP 0x00000000 - 0x0009fc00 Type: 1 Length: 0x9fc00 0x0009fc00 - 0x000a0000 Type: 2 Length: 0x400 0x000f0000 - 0x00100000 Type: 2 Length: 0x10000 0x00100000 - 0x3ffdf000 Type: 1 Length: 0x3fedf000 0x3ffdf000 - 0x40000000 Type: 2 Length: 0x21000 0xfffc0000 - 0x100000000 Type: 2 Length: 0x40000 Pagealigned MMAP 0x00000000 - 0x0009f000 Type: 1 Length: 0x9f000 0x0009f000 - 0x000a0000 Type: 2 Length: 0x1000 0x000f0000 - 0x00100000 Type: 2 Length: 0x10000 0x00100000 - 0x3ffdf000 Type: 1 Length: 0x3fedf000 0x3ffdf000 - 0x40000000 Type: 2 Length: 0x21000 0xfffc0000 - 0x100000000 Type: 2 Length: 0x40000 init: invoked as: init 2097152 Spawning memory server (x86_64/sbin/mem_serv)... Spawning monitor (x86_64/sbin/monitor)... monitor: invoked as: x86_64/sbin/monitor 327680 RAM allocator initialised, 875 MB (of 891 MB) available Spawning ramfsd on core 0 ramfsd.0: pre-populating from boot image... ramfsd.0: unpacking Gzipped CPIO /skb_ramfs.cpio.gz ramfsd.0: ready Spawning skb on core 0 Spawning /x86_64/sbin/kaluga on core 0 Spawning /x86_64/sbin/acpi on core 0 Spawning /x86_64/sbin/spawnd on core 0 Spawning /x86_64/sbin/startd on core 0 Spawning /x86_64/sbin/routing_setup on core 0 Kaluga running. skb.0: waiting for: all_spawnds_up Monitor 0: booting x86_64 core 1 as '/x86_64/sbin/cpu loglevel=4' Kernel starting at address 0xffffff8017001000 Barrelfish CPU driver starting on x86_64 apic_id 1 kernel: 0: installing handler for IRQ 0 kernel 1: Considerable TSC jitter detected! 2507681 ticks on average. kernel 1: Measured 4079577 TSC counts per ms, 99 data points. Average jitter 2507681 TSC ticks. spawn module: monitor monitor: invoked as: monitor 0 chanid=0 archid=0 Spawning spawnd on core 1 Installing fixed event handler for power button all 2 monitors up monitor: synchronizing clocks spawnd.0: spawning /x86_64/sbin/pci on core 0 startd.0: starting app /x86_64/sbin/serial on core 0 pci.0: No PCIe found, continue. spawnd.0: spawning /x86_64/sbin/serial on core 0 startd.0: starting app /x86_64/sbin/fish on core 0 spawnd.0: spawning /x86_64/sbin/fish on core 0 No bootscript skb.0: waiting for: pci skb.0: waiting for: serial spawnd.0: spawning /x86_64/sbin/rtl8029 on core 0 spawnd.0: spawning /x86_64/sbin/netd on core 0 spawnd.0: spawning /x86_64/sbin/NGD_mng on core 0 Starting RTL8029 for hardware skb.0: waiting for: pci LWIP: in lwip_init #### netd Going ahead with default wait-set LWIP: done with sanity check idc_c_port_mng_srv: trying to [rtl8029_PORTS_MNG] skb.0: waiting for: rtl8029_PORTS_MNG spawnd.0: spawning /x86_64/sbin/ahcid on core 0 NGKDM: card name = rtl8029 Started net_dev_manager for [rtl8029] Q[1] QT[0] skb.0: waiting for: rtl8029_0_FILT skb.0: waiting for: pci kernel: 0: installing handler for IRQ 1 kernel: 0: installing handler for IRQ 2 kernel: 0: installing handler for IRQ 3 fish v0.2 -- pleased to meet you! File /init.fish not found available commands: help print_cspace quit ps demo pixels mnfs oncore reset poweroff skb mount ls cd pwd touch cat cat2 dd cp rm mkdir rmdir setenv src printenv free > Initializing RTL8029(AS)... This is not a recognized rtl8029as: ID is 00:00! ############################################ For service [rtl8029] MAC= 00:00:00:00:00:00 service [rtl8029_0] exported at iref 23 assertion "mac_addr != 0" failed: file "../lib/net_device_manager/soft_filt_cl_impl.c", line 467, function: sf_mac_address_response Aborted ahcid: found QEMU ICH9R controller > ls /: 450 - bootmodules 1 d x86_64 27 d skb 0 d tmp > help available commands: help print_cspace quit ps demo pixels mnfs oncore reset poweroff skb mount ls cd pwd touch cat cat2 dd cp rm mkdir rmdir setenv src printenv free > ls /: 450 - bootmodules 1 d x86_64 27 d skb 0 d tmp > mkdir test > ls /: 450 - bootmodules 1 d x86_64 27 d skb 0 d tmp 0 d test > So, the Barrelfish OS could be compiled and run on QEMU. 3:END_NOTES