GithubHelp home page GithubHelp logo

fultonbrowne / mbuild Goto Github PK

View Code? Open in Web Editor NEW

This project forked from froggey/mbuild

0.0 2.0 0.0 25.29 MB

Build system for Mezzano

License: Other

Makefile 1.56% Common Lisp 61.89% Shell 0.23% TeX 36.33%

mbuild's Introduction

This repo contains the build environment used to build Mezzano.  As
part of this procedure, Mezzano itself is cloned as a sub-project to
this project.  Therefore, an independent clone of Mezzano is
unnecessary.


Prerequisites
-------------

A recent 64-bit version of SBCL with Unicode support is required.
SBCL may be obtained at www.sbcl.org
Versions 1.2.4, 1.2.10, 1.3.1, 1.3.2, 1.3.5, and 1.4.5  are known to work.
Newer versions should work, but have not been tested.

The following systems should be installed using Quicklisp:
Alexandria
Iterate
Nibbles
CL-PPCRE
CL-FAD
closer-mop
trivial-gray-streams

To install the packages with Quicklisp, install SBCL and Quicklisp.  Then at a shell prompt, run:
sbcl --script /path/to/quicklisp.lisp
(on Debian and Ubuntu based Linux systems, if you install Quicklisp through the package manager it's in sbcl --script /usr/share/cl-quicklisp/quicklisp.lisp)
In SBCL type each of the following commands:
(quicklisp-quickstart:install)
(ql:add-to-init-file)
(ql:quickload "Alexandria")
(ql:quickload "Iterate")
(ql:quickload "Nibbles")
(ql:quickload "CL-PPCRE")
(ql:quickload "CL-FAD")
(quit)


Additionally, you will need VirtualBox to create the vmdk file and either QEMU or VirtualBox to run it.


Quick Start
-----------

0. Run "git submodule update --init"
   Set SBCL and FILE_SERVER_IP in the top-level Makefile.
   SBCL must point at the SBCL binary, and FILE_SERVER_IP to the IP address
   of the local machine.
   Note! Addresses on 10.0.2.0/24 networks are not supported (such as 10.0.2.5), as
   this conflicts with the network provided by QEMU and VirtualBox.
   IPv6 addresses are not supported.

1. Run "make cold-image-vmdk"
   This will build a cold image suitable for use with VirtualBox, and
   should only take a few minutes.

2. Run "make run-file-server"
   The file-server must be running during step 3.

3. Configure a VirtualBox VM to point at the new mezzano.vmdk image and run it.
   VM settings:
   General->Type: Other
            Version: Other/Unknown (64-bit)
   System->Motherboard->Base Memory: 2GB
   System->Acceleration->Enable VT-x/AMV-V: enabled
                         Enable Nested Paging: enabled
   Storage->IDE controller with mezzano.vmdk attached on the Primary Master hard disk.
   Network->Adapter 1: enabled
            Attached to: NAT
            Adapter Type (advanced): virtio-net
   Serial Ports->Port 1: enabled
            Port Mode: Raw file
            Path: /some/file
   Audio->Audio Controller: Intel HD Audio

4. Wait. The rest of the system is being compiled.
   Eventually a REPL and the desktop will appear.

4. Finish up.
   Once the desktop has appeared and the system has finished working (no blue
   run light) then (snapshot-and-exit) can be run in the initial REPL to
   finalize the state of the system and close the initial REPL.


Due to the use of submodules you need to run "git submodule update --init" after pulling to update to the latest version.


Using QEMU/KVM instead of VirtualBox
------------------------------------

After building a cold image and starting the file-server as
described by the Quick Start section above run
"make qemu" or "make kvm" to run QEMU.
Using KVM is recommended as it is much faster than QEMU.

Note that the first time you run Mezzano, a lot of the code is compiled and boot time can take ten minutes or more on slow machines.  Subsequent boots are much faster, typically under two minutes.

mbuild's People

Contributors

froggey avatar fultonbrowne avatar fitzsim avatar blakemcbride avatar michael-s avatar mparlaktuna avatar housel avatar fittestbits avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.