Joachim Nilsson 077a7e82e0 Debian now boots to X!
finit.conf:
        Use this as /etc/finit.conf on a Debian 6.0 based system with X
        installed and sysklogd instead of rsyslogd.  Works.

services:
        Alternative method for extending the finit boot procedure. Simply
        place this script file in an /etc/finit.d/ directory.  The script
        uses the standard run-parts tool to chain load other start scripts.

helpers.c:
        o New functions:
          - run(): home grown system() replacement
          - run_interactive(): display progress and status when called

        o Bugfix start_process(), make sure to use same signal setup for
          children as in run() and run_interactive(). Also, use execvp()
          instead of execv() to allow searching $PATH for executables.

finit.h:
        o Move signal specific code to new signal.h.
        o Bypass verbosity setting to let echo() always print to screen.

finit.c:
        o Make run_parts() the default, remove external deps, it works.

        o Use run() and run_interactive() to speed up execution further
          on embedded systems where forking is expensive.

        o Kernel cmdline "quiet" should not close STDIO since this makes
          it impossible to run some daemons and start scripts.  Instead,
          we let "quiet" toggle the finit verbosity setting.

        o Remove kernel cmdline "--verbose" (Upstart compat), to be used
          to enable verbose finit when kernel should be quiet.

        o Setup kernel specific settings in /etc/sysctl.conf

        o Fix D-Bus startup problems. Probably what caused X from not
          working initially. Silly rabbit.

        o Use system() workaround to start X, cannot get it to start
          at all using run() or run_interactive() at the moment.

signal.h:
        New file, header file for signal.c.  Was about time.

signal.c:
        Remove blocking of SIGCHLD from sig_setup(), instead we setup
        SIGCHLD early in sig_init() to handle fork() in run() & C:o.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
2012-09-20 17:50:53 +02:00
2008-08-12 18:01:44 -03:00
2012-09-20 17:50:53 +02:00
2012-09-20 17:50:53 +02:00
2012-09-20 17:50:53 +02:00
2012-09-20 17:50:53 +02:00
2012-09-20 17:50:53 +02:00
2012-09-20 17:50:53 +02:00
2012-09-20 17:50:53 +02:00
2012-09-20 17:50:53 +02:00
2012-09-20 17:50:53 +02:00
2012-09-20 17:50:53 +02:00
2012-09-20 17:50:53 +02:00

Finit -- A reimplementation of the EeePC SysV init replacement "fastinit"
=========================================================================

Finit is a reimplementation of the EeePC "fastinit" program based on its
system calls with gaps filled with frog DNA.

Finit's original purpose was to build upon the general workings of the
EeePC fastinit and improve/optimize it for Xandros or alternative
distributions running on the Eeepc.  However, focus has now shifted to
small embedded Linux systems and headless miniature servers with a need
for extremely fast boot.

Nevertheless, finit comes in three flavors:

o finit-org is a replica of the Asus fastinit,
o finit-mod is an improved drop-in replacement for fastinit, and
o finit is a generic replacement for other systems.

Finit-mod and finit (previously finit-alt) were much improved with
patches from Metalshark.

See the GitHub project's Wiki at https://github.com/troglobit/finit, or
the original author's home page at http://helllabs.org/finit/ for more
information.


Usage scenarios
---------------

1. Provide an extremely fine tuned and fast boot on embedded systems or
   Linux distributions for the EeePC or other netbooks. (finit)

2. Replace the original Eeepc 702 fastinit (finit-mod)

3. Provide a reverse engineered document of the original EeePC fastinit
   implementation. (finit-org)

Finit is distribution-specific.  Currently it generates a finit-mdv
executable for Mandriva 2008/2008.1 systems.  Smurfy ported it to
eeeXubuntu, and parts of his port have been merged to finit.


Finit features
--------------

Finit reads configuration information from /etc/finit.conf. See the
source code for available options.


Rebooting and halting
---------------------

Finit handles SIGUSR1 and SIGUSR2 for reboot and halt, and listens to
/dev/initctl so standard Linux reboot and halt commands should also
work.


Debugging
---------

Add finit_debug to the kernel parameter line to enable trace messages
and to run a shell after the X server.

Languages
C 84.3%
Shell 11.9%
Makefile 2.1%
M4 1.7%