Linux ADSM Mini-Howto: Installing the iBCS module

## 2. Installing the iBCS module

The iBCS2 module is available from ftp://tsx-11.mit.edu/pub/linux/BETA/ibcs2. If you are running kernel version 1.2.13, get `ibcs-1.2-950721.tar.gz`, unpac it and apply the patches `ibcs-1.2-950808.patch1` and `ibcs-1.2-950828.patch2`. You can then type "`make`" and install the iBCS modlue with "`insmod`".

For a 2.0 kernel version, get `ibcs-2.0-960610.tar.gz`, unpack it in a suitable place, chdir into that directory, and apply the following patch:

    --- iBCSemul/ipc.c.orig Wed Jan 15 21:32:15 1997
    +++ iBCSemul/ipc.c      Wed Jan 15 21:32:31 1997
    @@ -212,7 +212,7 @@
            switch (command) {
                    case U_SEMCTL:
                            cmd = ibcs_sem_trans(arg3);
    -                       arg4 = (union semun *)get_syscall_parameter (regs, 4);
    +                       arg4 = (union semun *)(((unsigned long *) regs->esp) + (5));
                            is_p = (struct ibcs_semid_ds *)get_fs_long(arg4->buf);
     #ifdef IBCS_TRACE
                            if ((ibcs_trace & TRACE_API) || ibcs_func_p->trace)

Then, copy `CONFIG.i386` to `CONFIG`, and type `make`.

If you don't have them already, create the needed device files by executing

    # cd /dev
    # ln -s null XOR
    # ln -s null X0R
    # mknod socksys c 30 0
    # mknod spx c 30 1