Follow these instructions to install Q-Fabric. We hope to improve the
installation procedure in the near future.
Obtain a clean 2.4.19 kernel from kernel.org (or from any
of its mirrors) and install it on your computer. Give it a meaningful name
(e.g., kernel-2.4.19-qfabric) and I suggest to add a meaningful name to
EXTRAVERSION in the Makefile (e.g., EXTRAVERSION = -qfabric).
Get a clean Linux source code, kernel version 2.4.19, e.g.,
from kernel.org or from any of its mirrors (linux-2.4.19.tar.gz) and install
it on your computer. Give it a meaningful name (e.g., linux-2.4.19-qfabric)
and make a soft link to it (ln -s /my_patch/linux-2.4.19-qfabric /usr/src/linux).
Go into /usr/src/linux and open Makefile, set the EXTRAVERSION to some
meaningful, e.g., -qfabric (in that case your modules will be in /usr/lib/modules/2.4.19-qfabric).
If you work on the XScale evaluation board, copy the patch
file qf_xscale.patch into /usr/src/linux and apply the patch to the source
tree: patch -p1 < qf_xscale.patch.
If you work on an Itanium 2 computer, copy the patch file
qf_ia64.patch into /usr/src/linux and apply the patch to the source tree:
patch -p1 < qf_ia64.patch.
Copy the Q-Fabric patch file (qfabric.patch) into /usr/src/linux
and apply it to the source tree: patch -p1 < qfabric.patch.
Set your .config file, e.g., using make menuconfig (I suggest
obtaining a .config file from a working kernel) and make sure to include
'modular DWCS scheduler', 'DWCS /proc interface', and 'Quality of Service
Support (Q-Fabric)' in the Kernel Hacking section of the configuration
The following steps are for x86 only, I assume you know how
to (cross-)compile for the XScale and Itanium 2 architectures.
Compile the kernel: make bzImage.
Compile the modules: make modules.
Install the kernel: cp ./arch/i386/boot/bzImage /boot/kernel-2.4.19-qfabric.
Install the modules: make modules_install.
Go to /usr/include and backup the directories asm, net, and
linux (e.g., copy them to bak_net, bak_asm, bak_linux). Then make softlinks:
ln -s /usr/src/linux/include/linux linux and repeat that for asm and net.
If necessary, go to /boot and make a ramdisk: mkinitrd initrd-2.4.19.img
2.4.19-qfabric (if your modules are in /usr/lib/modules/2.4.19-qfabric).
Open /etc/lilo.conf (or any other bootloader you use) and
make a new entry (e.g., copy an existing entry and just change the names
of the Linux kernel, the ramdisk (if existing), and the label. You can
make it the default kernel or not, whatever you prefer (e.g., in lilo.conf
look for the default= line). Then run /sbin/lilo.
To load the modules, enter 'qfabric' and type './load_all'. To remove the
modules type './remove_all'. An example for the usage of Q-Fabric will
be added soon.
Enter the kecho subdirectory and execute './configure --enable-kernel-build'
in the following directories: atl, cm, comm_group, kecho, pbio, ecl, drisc.
In pbio, open config.h and change FORMAT_SERVER_HOST to one of the hosts
you will run Q-Fabric on. This determines which machine will run the format-server
(a directory for event formats being used). Set FORMAT_SERVER_DOMAIN to
the empty string ("").
In comm_group, open config.h and change GROUP_SERVER_HOST to one of the
hosts you will run Q-Fabric on (I suggest to use the same as for the format-server).
The group server is a directory for all event channels being used (Q-Communicator
component of Q-Fabric). Again, set GROUP_SERVER_DOMAIN to the empty string.
Execute 'make' in the following directories: atl, ecalls, sockwatch, utils,
Execute 'cp Makefile.kecho Makefile; make' in the following directories:
cm, comm_group, kecho, pbio.
Execute 'make install' in all directories.
Enter 'adaptors' and type 'make; make install'.
Enter 'dproc' and type 'make; make install'.
Enter 'qfabric' and type 'make; make install'.