User Tools

Site Tools


developersguide:rebuildingsystem

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Next revision
Previous revision
Last revision Both sides next revision
developersguide:rebuildingsystem [2014/11/11 14:52]
127.0.0.1 external edit
developersguide:rebuildingsystem [2015/08/08 22:35]
jeanbaptisteboric [Rebuilding World] add link to track current
Line 1: Line 1:
 +====== Rebuilding the System ======
 +
 +<div round info>
 +**Note:**
 +
 +This is for building MINIX from within MINIX. To cross-compile MINIX from another Unix-like system, [[.:​crosscompiling|check this page]] instead.
 +</​div>​
 +
 +===== 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 [[.:​trackingcurrent|have the MINIX source code]] under the ''/​usr/​src''​ directory, these commands
 +
 +<​code>​
 +$ su
 +# cd /usr/src
 +# make build
 +</​code>​
 +
 +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"​.
 +
 +<​code>​
 +$ 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
 +</​code>​
 +
 +==== Other Build Targets ====
 +Type
 +
 +<​code>​
 +$ cd /​usr/​src/​releasetools
 +$ make
 +</​code>​
 +to see the various options available.
 +
 +===== Building and booting SMP =====
 +
 +<div round important>​
 +**These instructions need revisiting and checking.**
 +</​div>​
 +
 +To rebuild SMP version of Minix set the following environment variables and follow the steps for compilation with gcc.
 +
 +<​code>​
 +$ CONFIG_SMP=y CONFIG_MAX_CPUS=N
 +</​code>​
 +
 +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 =====
 +
 +  * http://​netbsd.gw.com/​cgi-bin/​man-cgi?​make++NetBSD-current
 +  * http://​www.opengroup.org/​onlinepubs/​009695399/​utilities/​make.html
 +
 +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: 2017/05/19 15:20 by jeanbaptisteboric