Qfabric

INSTALLATION INSTRUCTIONS




Follow these instructions to install Q-Fabric. We hope to improve the installation procedure in the near future.

Kernel Patch:

  1. 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).
  2. 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).
  3. 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.
  4. 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.
  5. Copy the Q-Fabric patch file (qfabric.patch) into /usr/src/linux and apply it to the source tree: patch -p1 < qfabric.patch.
  6. 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 file.
  7. The following steps are for x86 only, I assume you know how to (cross-)compile for the XScale and Itanium 2 architectures.
  8. Compile the kernel: make bzImage.
  9. Compile the modules: make modules.
  10. Install the kernel: cp ./arch/i386/boot/bzImage /boot/kernel-2.4.19-qfabric.
  11. Install the modules: make modules_install.
  12. 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.
  13. 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).
  14. 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.
  15. Reboot.
Q-Fabric Modules:
  1. KECho modules:
    1. Enter the kecho subdirectory and execute './configure --enable-kernel-build' in the following directories: atl, cm, comm_group, kecho, pbio, ecl, drisc.
    2. 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 ("").
    3. 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.
    4. Execute 'make' in the following directories: atl, ecalls, sockwatch, utils, drisc, ecl.
    5. Execute 'cp Makefile.kecho Makefile; make' in the following directories: cm, comm_group, kecho, pbio.
    6. Execute 'make install' in all directories.
  2. Controller module:
    1. Enter 'adaptors' and type 'make; make install'.
  3. Monitoring module:
    1. Enter 'dproc' and type 'make; make install'.
  4. Main module:
    1. Enter 'qfabric' and type 'make; make install'.
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.