Isis for Linux
Because of the simplicity and openness of its development structure
and its support for a wide variety of interface devices for audio,
video, and graphics, Linux is the preferred platform for Isis.
This document contains information on recommended hardware and software
configurations, as well as an installation procedure using the Debian
distribution of Linux.
As of August 2004, it is no longer necessary to license Isis from the
Media Lab in order to download and use it. Isis is available as free
software under the GNU
General Public License. Prior to engaging in this installation
process, please read and understand the terms of this license as well
as these additional disclaimers and comments:
- Isis is free software; you can redistribute it and/or modify it
under the terms of the GNU General Public License as published by the
Free Software Foundation; either version 2 of the License, or (at your
option) any later version.
- Isis is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
General Public License for more details.
- Due primarily to my lack of time, there is ABSOLUTELY NO SUPPORT
AND MAINTENANCE available for Isis. Please consider this carefully
when making your choice of software to use for your project. You are
free to write to me informally with questions and bug reports, but do
not expect a response quickly or at all. However, I or others that I
can recommend might be available on a consultant/payment basis to
assist with Isis programming issues -- please email me for
- If you use Isis in a project or product, please consider
including a message to this effect somewhere in the project's
documentation or credits and a link/URL to the Isis web site if
- I like to keep track of what people are doing with Isis! Send me a
link or document about your project. I might ask you if I can post
your link on the Isis web site.
- If you make a cool Isis or C library that you think others might
like to use, let me know and, when I get a chance, I'll add a link to
it from the Isis web site.
- Isis has thus far benefited from a high level of interoperability
and backward compatibility. Therefore, I would like to discourage
changes being made to the core Isis interpreter code since this may
result in incompatible syntax or unexpected behavior. If you do make
changes to the core language and intend to distribute them, please
give your variant a different name.
Below are some PC hardware specifications that we highly recommend.
- A standard x86-based PC with an Intel processor. Dual processor
machines are even better.
- An NVIDIA AGP
graphics card. NVIDIA cards are very well supported under Linux.
- A Creative
Soundblaster Live/Audigy PCI sound card. Many on-board audio
chipsets are not very powerful or do not support multiple sound
- A Hauppauge
WinTV video capture card, such as the WinTV Go. Other cards based
on the Brooktree 878 or Conexant 2388x chipsets may also work, but we
have only tried this one so far and it works just fine. USB cameras
are not well supported under Linux as of yet - please do not try to
use them unless you are prepared to hack with drivers.
- Amount of memory and disk space should be determined by what you
plan to do. If you are working on an application that makes intense
use of stored images or movies, we recommend getting the fastest SCSI
disks available and a SCSI PCI interface card. Otherwise, an IDE disk
will do just fine.
- A 3-button mouse. A two-button mouse with a scroll wheel that
can double as the third button is also fine. We do not recommend a
simple two-button mouse.
Assuming you have hardware that follows the specifications described
above, we have developed an installation procedure for Linux and all
the software you will need to run Isis. If you strayed from the
hardware specifications, or if you change any part of the procedure
discussed below, you are on your own; please do not ask us for help!
This installation procedure has been updated as of August 2004. Debian is the
current preferred Linux distribution for Isis. The process begins by
installing the latest stable version of Debian, and then updating via
the apt-get program to the "testing" version to take
advantage of the latest audio and video drivers. Consequently, the
machine you are installing must be connected to the Internet.
If there is a choice presented during the installation process that is
not discussed in the instructions below, take whatever appears to be
the default choice.
- Obtain CDROMs for the current stable Debian release (version
3.0). More information on where and how to obtain Debian is available
on their web site. The documentation available on this site may be a
helpful reference throughout the rest of the installation process.
- Boot the installation CDROM. If you have trouble or experience a
system freeze during startup, try entering bf24 at the
boot: prompt. Select your language and keyboard type as
requested by the installer.
- If you are installing Linux on a disk that previously held
another Linux or other OS installation, we recommend re-partitioning
your disk by choosing "Partition a Hard Disk". If it is a new disk,
you will enter this section of the installer automatically.
- We suggest a simple two-partition strategy:
After making partition selections, make sure to select "Write" to
write the partition table to the disk, and then "Quit".
- The first partition should be "Linux extended" (type 85) and fill
the entire disk except for the space taken up at the end by the second
partition. It should be marked "Bootable".
- The second partition should be "Linux swap" (type 82) and should
be approximately 1000 MB in size (or twice the amount of RAM you
have). The swap partition should go at the end of the disk (bottom of
- Follow the steps in the installer to activate the swap partition,
and then the main Linux partition as the root filesystem. Make sure
to choose "Ext3" as the type of the main Linux filesystem.
- Follow the step to install the kernel and driver modules, and
then to configure the device driver modules. In this step you have to
select a driver for your network interface in the "kernel/drivers/net"
section, otherwise you will not be able to connect to the Internet
later when you need to download updated packages. The documents that
came with your computer should say what type of network interface or
chipset you have. If not, you can always use a trial and error
approach. "eepro100" might be a good first try.
- Next, you must configure the network. Enter a name for your
machine, and select whether or not to automatically configure the
machine via DHCP. For most, DHCP configuration will be fine.
However, you may need a static Internet address for certain kinds of
applications, especially those involving alot of networking or
distributed processing (such as iCom or Reflexion). You can request a
static address from your system administrator. You will need to get
other network information from them as well: network mask, gateway
address, domain name, and name server addresses. You will need all of
this information during the installation process.
- Follow the steps to install the base system and make it bootable.
Select to install LILO into the master boot record (MBR). You can
make a boot floppy if you want, but it is not necessary. Then eject
the CDROM and reboot.
- Follow the post-reboot installation steps. Select to not
enable MD5 or Shadow passwords as these can interfere with NIS
support. Enter a root password.
- For later testing purposes, we recommend creating a user account
at this stage called "isis". Give it any password you want.
- Select "http" as the method for Apt to use to access the Debian
archive and choose your region. If your first choice does not work,
try another, such as the main Debian archive in the United States.
- Select to run 'tasksel', and select to install "desktop
environment" and "C and C++". Do not run 'dselect'. Follow the
instructions on the screen and choose defaults for questions that you
are not sure about or don't understand. Finish the installation
process and log in as root.
- apt-get install emacs21
- Edit /etc/apt/sources.list and change all occurrences of the
word "stable" with "testing".
- apt-get update
- apt-get dist-upgrade
Follow the instructions presented on the screen. You may need to
re-run this step several times with a -f flag or select a
non-default choice when answering a question to get everything updated
without errors. (Note: you may have to choose to update a program
apt-get -f dist-upgrade
apt-get install module-init-tools
apt-get install kernel-package
apt-get install kernel-source-2.6.8
tar jxf kernel-source-2.6.8.tar.bz2
apt-get install nvidia-kernel-source nvidia-kernel-common
tar zxvf nvidia-kernel-source.tar.gz
apt-get install libncurses5-dev
- make menuconfig
Here you must configure your new kernel. Follow these recommendations:
- Under "Loadable module support", choose "Module unloading".
- Under "Processor type and features", choose your processor family and
select to use SMP if you have more than one processor.
- Under "Device Drivers", you may want to check that
drivers for your network interface and hard disks is included. Hard disk
device drivers might need to be compiled directly into the kernel.
- Under "Device Drivers/I2C support/I2C Hardware Bus support"
section, select "Intel 801" and "Intel PIIX4" as modules.
- Under "Device Drivers/Multimedia devices/Video For Linux", select
"BT848" and "Conexant 2338x" as modules.
- Under "Device Drivers/Sound/Advanded Linux Sound Architecture",
select ALSA as a module, and then select "OSS Mixer API" and "OSS PCM
API". Then under "PCI Devices", select "BT87x Audio Capture" and "EMU10K1"
make-kpkg --revision=custom.1.0 clean
make-kpkg --revision=custom.1.0 kernel-image modules-image
dpkg -i kernel-image-[...].deb nvidia-kernel-[...].deb
apt-get install nvidia-glx
apt-get install xserver-xfree86
- Edit /etc/X11/XF86Config-4 ...
- In the "Module" section, comment out (using the # comment
character) the "Load" lines for "GLcore" "dbe" "dri" and "record".
- Comment out the "DRI" section near the end of the file.
- In the "Device" section, change the driver from "nv" to "nvidia".
- In the "Generic Keyboard" section, if you use a UK style keyboard,
you may need to change your XkbLayout setting from "uk" to "gb" for it
to work properly.
update-rc.d -f gdm remove
update-rc.d -f kdm remove
apt-get install xscreensaver
apt-get install alsa-utils
apt-get install aumix
apt-get install twm
apt-get install vtwm
apt-get install xterm
apt-get install libasound2-dev
apt-get install libglut3-dev
apt-get install libjpeg62-dev
apt-get install libreadline4-dev
apt-get install libsdl1.2-dev
- Any users that will need to access the audio and video devices
must be added to the 'audio' and 'video' groups. You've already
created the 'isis' user, so you can add it to these groups now. If
you create other users in the future, you must remember to add them as
adduser isis video
adduser isis audio
- Run the ALSA configuration program to be sure the necessary
module aliases were created:
- Create a file named /etc/modprobe.d/vidcap with the
alias char-major-89 i2c-dev
options i2c-algo-bit bit_test=1
alias char-major-81 videodev
alias char-major-81-0 bttv
If you have more than one capture card, add additional lines similar
to the last line shown above with the device number incremented. If
your card is based on Conexant 2388x instead of BrookTree, use the
cx88 driver. For example, if you have a second Conexant
card, add the following:
alias char-major-81-1 cx88
After making this file, run the following:
apt-get install xawtv
Allow the installer to create the additional devices that it wants to.
- Edit /etc/modules so that the sound and video card
drivers will be loaded automatically at startup. (This step is
necessary because there appears to be a slight weirdness with
automatic loading of modules in this version of Linux). Assuming you
have SoundBlaster Live/Audigy and Hauppauge WinTV cards, you will add
the following lines at the bottom of the file:
- If your organization uses NIS (we do at Media Lab Europe and MIT
Media Lab), you can install NIS using the following:
apt-get install nis
You will need to enter your NIS domain (get this information from your
system administrator). You will also need to edit several files with
information obtained from your system administrator: /etc/yp.conf (add
NIS server information), /etc/hosts (add the address of your NIS
server), /etc/passwd (add "+::::::" at end of file), and /etc/group
(add "+:::" at end of file). You may then also want to install
apt-get install autofs
- If your machine is at Media Lab Europe, make your computer aware of the
internal filesystem by adding the following line at the bottom of
homer:/u /mle/u nfs rw,nosuid,soft 0 0
And then run the following:
- If your machine is at the MIT Media Lab, make your computer aware of the
internal filesystem by adding the following line at the bottom of
mas-disks:/mas /mas nfs rw,nosuid,soft 0 0
And then run the following:
mv /etc/auto.master /etc/auto.master.old
cp /mas/etc/auto.master.new /etc/auto.master
- If you experience problems with your keyboard mapping when in a
text terminal, try reconfiguring the keyboard:
- Reboot and choose the new kernel if it is not automatically
selected. Cross your fingers and hope that it works the first time.
If not, reboot into the old kernel and double check that you have
successfully completed all of the steps listed above. If you see a
strange error, try doing a Google search on the error message text to
see if someone else has run into the problem and if there is a
solution. You might also find helpful information on the Debian web
- Prior to installing Isis, you should test that all of the above
software is installed and working correctly.
If any of these tests fails, one of the libraries you installed
previously is not working properly. You should go back and read any
documentation associated with the library and get it working before
you try installing Isis.
- When you reboot your machine, you should not see any errors or
- When you log in and run "startx" to start an X session, you should
see the word "NVIDIA" flash for a moment on the screen.
- You should be able to get an audio mixer by running the command
- When you run the command aplay with no arguments, you
should not see a message that indicates an error.
- When you run xawtv you should see no errors and a blue
video window should appear with some instructions.
- To install Isis, run the following commands:
Isis is installed at /usr/local/isis. This folder contains
source code, libraries, executables, Isis scripts, and example
programs. It is the home base of Isis on your computer. Definitions
are added to the global environment so that all users of the machine
will be able to use Isis.
When installation is complete, log out and log back in and type
isis. The installation was successful if you see something
*** Isis 9
Please read the README and LICENSE files installed
in /usr/local/isis for information on the terms of the GNU
General Public License and other important disclaimers and comments.
If you can't run Isis after you follow the instructions above, check
the build log in /usr/local/isis/source/build.log for the
word "Error". Any problems that appear are usually because one or
more of the third-party software libraries needed for Isis have not
been installed successfully. Check all of the documentation that came
with them, and retrace your steps in the process outlined in this
document. After you address any errors, you can re-build Isis by
running this program:
If you use tcsh as your shell, after installing Isis
programs, be sure to type rehash to make them visible to your
When you log in after installing Isis, the environment variables
ISIS_SYS and ISIS_ROOT should be defined. You can
test this by typing "echo $ISIS_SYS" or "echo
Write to Stefan if you continue to experience problems.
As a test, you might like to try running some of the example programs
in /usr/local/isis/examples, particularly the Macaroni
examples. Try playing the test movie included with the distribution
by entering this command in your shell:
isisu playmovie /usr/local/isis/media/repo
Remember that in order to hear any audio, you usually need to run an
audio mixer program such as "alsamixer" to unmute and increase the
levels of "Master" and "PCM".
To update your local Isis installation to the most recent version
available, log in as root and repeat the Isis installation step
described above. The installer program saves a full backup of your
old Isis installation at /usr/local/oldisis, which you
should remove when it is no longer needed.
Here are some common problems experienced when running Isis under
Linux, and their solutions:
- When I play movies or do OpenGL or Macaroni graphics that have
alot of motion, I see random horizontal "tears" on the screen.
This problem happens because the program is updating the screen at a
rate that is not synchronized with your monitor's vertical frequency.
If you are using an NVIDIA graphics card, the solution is easy: Just
set the following environment variable in your shell prior to starting
setenv __GL_SYNC_TO_VBLANK 1
If you use a different graphics card, check the documentation
that came with its Linux drivers for how to synchronize screen
transfers to the vertical blanking interval of your display.
- The Isis mode for Emacs does not seem to work for me.
Try adding the following line at the bottom of the .emacs
file in your home directory (or if it doesn't exist, create a new file
with this name and add this line into it):
(load (concat (getenv "ISIS_ROOT") "/misc/isis.el"))