Go to file
Hiltjo Posthuma 1b466d4935 create-bootable: use /mnt/morpheus as mountpoint 2014-03-04 16:24:57 +00:00
misc Move qemu-mk-overlay to misc/ 2014-02-28 15:38:26 +00:00
pkgs Use a case statement instead of if/else 2014-03-04 15:18:34 +00:00
stuff create-bootable: use /mnt/morpheus as mountpoint 2014-03-04 16:24:57 +00:00
.gitignore Use .cache instead of .state 2014-03-01 02:07:51 +02:00
LICENSE Add Daniel Bainton to LICENSE 2014-02-26 09:46:46 +00:00
README We now use 2GB default images 2014-03-04 16:23:03 +00:00
TODO Update TODO 2014-03-04 10:21:13 +02:00
config.mk Bump up NPROC to 4 2014-03-04 11:54:28 +00:00
mkfile Fix the sed magic in mkfile 2014-03-02 21:03:35 +00:00

morpheus - a statically linked musl based Linux distro
======================================================

Building
--------

To build  morpheus you  currently need an  x86_64/x86 host.   You will
need to have mk(1) from 9base or plan9port.

Please review config.mk prior to building and adjust any parameters.

To build everything:

  mk world

To build specific packages:

  mk pkg1 pkg2 ...

To force build packages and all their dependencies:

  mk -a pkg1 pkg2 ...

To clean the build system's cache:

  mk clean

To clean everything including the downloaded files and the rootfs:

  mk clean-world

To fetch all packages without building anything:

  mk fetch-world

Rebuilding the kernel
---------------------

There is a default config for the kernel in stuff/kernel-config-$arch.
The  default  config is  copied  over  .config  in the  kernel  source
directory every  time you do a  build via mk(1).  You  can adjust your
local .config  and copy it  over stuff/kernel-config-$arch or  you can
just manually  compile the kernel  and copy System.map and  bzImage to
$root/boot.

Installing
----------

There is currently no installer.  There is a script that creates a 2GB
image file that is suitable to dd to a usb stick.

To create a bootable image:

  sudo modprobe -r loop
  sudo modprobe loop max_part=15 # to be done only once
  sudo mk bootable # this invokes stuff/create-bootable

Make sure to change  the kernel command line to point  it to your root
device.  You  can either do this  before creating the image  or at the
boot prompt as follows:

  bzImage root=/dev/sd[X]1 rootwait init=/init ro

Testing
-------

To experiment with the x86_64 image in qemu:

  qemu-system-x86_64 -hda morpheus-x86_64-0.0.img -enable-kvm -vga cirrus

Login with root and an empty password.

To obtain binary images go to http://dl.2f30.org/morpheus-img/

Debugging
---------

In some  cases you may  want to set  NPROC to 1  in order to  get sane
build output.  You may also have to set nprocs to 1.  You can then use
something like the following:

  mk world 2>&1 | tee -a output.log

or similarly if you are trying to build an individual package.

Contact
-------

You can find us on #morpheus at irc.oftc.net.

Enjoy!