User Tools

Site Tools


developersguide:rebuildingsystem

Rebuilding the System

Note:

This is for building MINIX from within MINIX. To cross-compile MINIX from another Unix-like system, check this page instead.

Rebuilding World

The easiest way is to execute make build. It will rebuild and install the operating system, as well as all the utilities.

Supposing you have the MINIX source code under the /usr/src directory, these commands

$ su
# cd /usr/src
# make build

will create the necessary directories, proceed to install the new includes, create the necessary .depend files then build and install the new libraries; and then, create the necessary .depend files then build and install the commands and the system (servers, drivers, and kernel), and finally install it as a new image ready for reboot.

make build does nothing with configuration (/etc) files. Sometimes, it might be necessary to get new or updated /etc files. There is no automated procedure for that, though. Compare files in src/etc and /etc, and see if any updates have happened. Especially, an outdated /etc/system.conf (or /etc/drivers.conf) file can cause all sorts of problems.

In some instances, some necessary commands will have to be updated before, in order to make the new compiling work. Therefore, if make build fails unexpectedly, revise the docs/UPDATING document for instructions along the lines of running make -C usr.bin/foobar && make -C usr.bin/foobar install. Then, make build again.

Rebuilding the Kernel Only

<!> In general, you should follow the process in “Rebuilding World”.

$ su
# cd /usr/src/releasetools   # this directory contains tools that make creating and installing the kernel easier
# make hdboot         # this installs the kernel to your hard disk

Other Build Targets

Type

$ cd /usr/src/releasetools
$ make

to see the various options available.

Building and booting SMP

These instructions need revisiting and checking.

To rebuild SMP version of Minix set the following environment variables and follow the steps for compilation with gcc.

$ CONFIG_SMP=y CONFIG_MAX_CPUS=N

where N stands for the number of supported CPUs. If N ⇒ than the number of CPUs in your system, all CPUs are booted, if N < the number of available CPUs only N are booted.

At the moment, a SMP configured image will enable ACPI and APIC by default. These are hard requirements for SMP to work.

BSD Make Documentation

Useful switches:

  • bmake -d m (Debug Output: The making of each target: what target is being examined; when it was last modified; whether it is out-of-date; etc)
  • bmake -d s (Debug Output: The application of suffix-transformation rules.)
  • bmake -n (Display commands that would be executed, but don't actually run them.)
developersguide/rebuildingsystem.txt · Last modified: 2015/08/08 16:35 by jeanbaptisteboric