Linux in Kuala Lumpur

Dr.. Junaid Ahmed Zubairi

Issue #66, October 1999

Setting up computing facilities at a Maylasian university was easy using Linux.

My involvement with Linux began in 1994 when a friend of mine bought the complete set of Slackware diskettes for me. At that time, I was setting up computing facilities in Sir Syed University, Pakistan. Linux was set up as the first e-mail server on campus and was later given the role of web server by the system manager (http://www.ssuet.edu.pk/). Sometime thereafter, I assumed a faculty position at the International Islamic University Malaysia (IIUM). IIUM recently moved to a new 700-acre campus and has a modern fiber-optic 155Mbps ATM core network serving completely switched segments in various faculties. The responsibility of upgrading and organizing the computer labs at the Faculty of Engineering was given to me as the Computer Coordinator.

Figure 1. Faculty of Engineering Building

I set up two clusters of 70 new computers, all Dell PII machines served by two dual-CPU servers. In one lab, a Windows NT server was set up to provide Windows applications and printing services for students. In the other cluster, I installed and configured the server as a dual boot machine. By default, the server boots into Linux, providing user authentication via NIS and user home directories via NFS. In case of Windows NT PDC (primary domain controller) failure, the NIS server can be booted as a backup PDC NT server.

Figure 2. Engineering Computer Lab

Server Setup

Since the Dell RAID controller is unsupported, we had to exchange the RAID controller for a tape backup unit so that Linux can recognize the hard disks. The fdisk print command now produces the output shown in Listing 1.

Listing 1.

In order to set up the NIS server, called garden, we had to overcome many minor problems. Using the search facilities at Dejanews (http://www.deja.com/), solutions were quickly obtained from discussions posted on Usenet. The problem of shadow passwords was resolved by using the pwconv command to disable shadowing. One handy method to check whether NIS is working correctly is to issue the command:

ypserv -d

This prints all the debugging information when an NIS client tries to authenticate a user account.

SMP was easily enabled by uncommenting the SMP=3D1 line in the Makefile and recompiling the kernel. The 128MB RAM was recognized by Linux once I added an append=3Dmem=3D128M line to the /etc/lilo.conf file and executed /sbin/lilo. Any spaces in this line cause it to go unnoticed.

I exported /home via NFS for two purposes. One was to provide the NIS users with home directories, and the other reason was to enable them to view important announcements. For this purpose, the following line was added to the profile of users:

cat /home/motd

I configured a separate PII machine, called jasmine, as an applications server. Jasmine provides applications via NFS, including VLSI layout tools, Netscape, Scilab, GNUplot, Ghostview and others. In order to be an efficient NFS server for 30 PII clients, jasmine does not take part in NIS. A third Linux server, a Pentium, was configured to serve as the faculty e-mail and web server (http://eng.iiu.edu.my/).

Client Setup

All 30 PII clients in the cluster are dual-boot-configured to reduce the annoyance of Windows loyalists. Since the lab manager was not interested in learning Linux, I had to give him a cookbook of actions to transform a machine booted with Linux into an NIS client station. What follows is the recipe for NIS client setup.

After setting up a basic Linux system with the proper NIC driver, copy the following files from the “model” client:

/etc/hosts  {To avoid setting up DNS service
     in localized cluster}
/etc/profile  {To set up paths and issue initial
     commands for an NIS user}
/etc/host.conf  {To set up the host lookup order
     with NIS}
/etc/defaultdomain {To set up NIS domain name}
/etc/rc.d/rc.inet2 {To start ypbind using
     /etc/defaultdomain as domain name}
/etc/fstab   {To import NFS directories into
     existing mount points}

Add a line containing “+” to /etc/passwd, /etc/group and /etc/shadow files. Reboot and log in as a “test” NIS user to verify functionality.

This cookbook worked perfectly, as the manager was able to fire up NIS clients without needing to know the setup details. Later, a booting message was added for the convenience of users, so they are informed of the dual boot-property of the clients. All that is necessary is adding a few lines to the /etc/lilo.conf file:

#start LILO global section
boot=/dev/sda
message=/boot/boot.msg
prompt
timeout=100

The boot.msg file contains the following text:

Type "linux" or "nt" to boot into operating
system of your choice.
To set up the X Window System, I turned to XSuSE (http://www.suse.de/XSuSE/XSuSE_E.html) as they have the largest set of drivers for various cards. Accepting the default choices for most of the questions, I was able to start X quickly by filling in the proper card type, monitor hsync and vsync values and video RAM size.

Instead of changing the path in the global profile each time an application is added, I included the path /usr/local/apps/cad/bin in the profile. In this directory, I use shell scripts or symbolic links to add new applications. If an application needs to be run from its home directory, a shell script with the application's name will run from this path. For example, the application exchek shell script contains the following lines:

cd /usr/local/apps/exchek
/usr/local/apps/exchek/exchek

An alternate approach is to use symbolic links. For example, a symbolic link for Netscape was created with the following command:

ln -s /usr/local/apps/netscape/netscape netscape

Linux Applications at IIUM

Linux came in handy for providing lab sessions in the senior-level course ECE4330 VLSI Design. This course would have gone without any true labs, as the commercial VLSI (very large scale integration) layout tools are too expensive for us. I set up the MAGIC VLSI layout editor under X and supplemented it with SPICE (simulations program with integrated circuits emphasis) for small layout simulation and verification. As there is no licensing problem, students could use these tools simultaneously on several workstations.

After coming across articles in the January 1998 LJ about PVM (parallel virtual machine), I set up the PVM web course server on one of the Linux machines. I divided the students into several groups and allocated two Linux machines to each group. Their target was to set up one machine as the master and the other as the slave in a PVM environment, then test various programs. Although the students could not succeed fully in running various programs, they enjoyed working on such important concepts with full control over the computers.

Current Projects

My current projects include setting up a filtering firewall using Red Hat Linux and binding an HP workstation cluster to the Linux NIS server for user account authentication. Thus, we will be able to stop some wasteful use of the Internet, as well as provide centralized accounts for all UNIX users.

Dr. Dr Junaid Ahmed Zubairi (junaid@iiu.edu.my) is an Associate Professor of Electrical and Computer Engineering at the International Islamic University Malaysia in Kuala Lumpur. Besides teaching and coordinating computer labs, he has an interest in exploring the natural beauty of Malaysia with his wife and two kids.