Important note: all of the instructions
in this document assume that you are logged in as root. If not, you
won't be able to install the needed libraries or programs. Before
you start building anything you will need the latest of a few development
packages. Pkgconfig is available from freedesktop.org.
Just to make things much easier we're going to install all of these packages
in /usr. If you understand ldconfig and the LD_LIBRARY_PATH environment
variable you can install wherever you want but installing in /usr avoids
much unpleasantness. The sequences of commands used to build and
install these packages will look almost identical from package to package
but don't become complacent, there are a few changes. The command
sequences make the assumption that you are in the directory containing
the tarballs. Here is the installation sequence for pkgconfig:
tar -xvzf pkgconfig*.tar.gz
cd pkgconfig*
./configure --prefix=/usr
make
make install
cd ..
In addition to pkgconfig you will need a newer version of autoconf and automake. You can get these at http://www.gnu.org/directory/autoconf.html and http://www.gnu.org/directory/automake.html respectively. To build and install do the following:
tar -xvzf autoconf-*.tar.gz
cd autoconf-*
./configure --prefix=/usr
make
make install
cd ..
tar -xvzf automake-*.tar.gz
cd automake-*
./configure --prefix=/usr
make
make install
cd ..
clear
echo
echo
echo "Making ALSA drivers"
echo
echo
bzip2 -d alsa-driver*.tar.bz2 2>/dev/null
tar -xvf alsa-driver*.tar
cd alsa-driver-*
./configure --with-isapnp=no --with-cards=ens1371,emu10k1,ice1712
--with-sequencer=yes
make
make install
./snddevices
chmod 666 /dev/dsp* /dev/mixer* /dev/sequencer* /dev/midi*
cd ..
find . -name alsa-driver\* -a -type d -exec rm -rf {} \;
cat >~/.asoundrc <<EOF
pcm.ice1712 {
type
hw
card
0
}
ctl.ice1712 {
type
hw
card
0
}
EOF
echo
echo
echo "Making ALSA libraries"
echo
echo
bzip2 -d alsa-lib*.tar.bz2 2>/dev/null
tar -xvf alsa-lib*.tar
cd alsa-lib*
./configure
make
make install
cd ..
find . -name alsa-lib\* -a -type d -exec rm -rf {} \;
echo
echo
echo "Making ALSA OSS compatibility"
echo
echo
bzip2 -d alsa-oss*.tar.bz2 2>/dev/null
tar -xvf alsa-oss*.tar
cd alsa-oss*
./configure --disable-alsatest
make
make install
cd ..
find . -name alsa-oss\* -a -type d -exec rm -rf {} \;
echo
echo
echo "Making ALSA tools"
echo
echo
bzip2 -d alsa-tools*.tar.bz2 2>/dev/null
tar -xvf alsa-tools*.tar
cd alsa-tools*
cd envy24*
./configure --disable-alsatest
make
make install
cd ../as10k1
./configure
make
make install
cd ../..
find . -name alsa-tools\* -a -type d -exec rm -rf {} \;
echo
echo
echo "Making ALSA utilities"
echo
echo
bzip2 -d alsa-utils*.tar.bz2
tar -xvf alsa-utils*.tar
cd alsa-utils*
./configure --disable-alsatest
make
make install
cd ..
find . -name alsa-utils\* -a -type d -exec rm -rf {} \;
Kind of "wordy" isn't it? Oh well, I've always been a bit anal retentive anyway. Let's take a look at what's going on here. First, there is an implicit assumption in this script. You must be in the directory where your bzip2 compressed ALSA packages were downloaded. In my case that was /disk2/sound. Pay close attention to the ./configure line for the driver. You'll note that I am only setting up for three cards - Soundblaster PCI Live, Ensoniq AudioPCI, and the DSP24 (ice1712 just like the Delta 1010 and EWS88MT). I don't have any ISA cards and I wanted sequencer support. If you just want to compile for all possible cards leave out the --with-cards option. You need to do the ./snddevice to make the devices in the /proc/asound directory. I made a simple ~/.asoundrc file for the ice1712. Your system will be different depending on the card (or cards) you are using. The name for the pcm and ctl devices in ~/.asoundrc must match the driver id from modules.conf
You need to read the INSTALL file in the alsa-driver-... directory (which I deleted in the above script) to get a good idea of how to configure ALSA. The following is what I added to my /etc/modules.conf file to configure my DSP24 card :
alias char-major-116 snd
alias char-major-14 soundcore
# ALSA portion
alias snd-card-0 snd-ice1712
# OSS/Free portion
alias sound-slot-0 ice1712
# OSS/Free portion - card #0
alias sound-service-0-0 snd-mixer-oss
alias sound-service-0-1 snd-seq-oss
alias sound-service-0-3 snd-pcm-oss
alias sound-service-0-8 snd-seq-oss
alias sound-service-0-12 snd-pcm-oss
This should be about the same for any single card. Just change
the card type. There's a lot more specific information to be garnered
by checking for your specific soundcard in the
ALSA
Soundcard Matrix. If you want to do things the easy way you can
try the alsaconf
utility. The only problem with that is that there isn't a full list
of sound cards. In my case I can use the M-Audio Delta 1010 setup
because I happen to know that it uses the same chipset as mine. I
didn't have any problem doing it by hand though so it's up to you.
2.3.1 Glib
Directly from www.gtk.org - "GLib is the low-level core library that forms the basis of GTK+ and GNOME. It provides data structure handling for C, portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system." Download the latest and do the following:tar -xvzf glib*.tar.gz
cd glib*
./configure --prefix=/usr
make
make install
cd ..
2.3.2 Pango
Again from www.gtk.org - "Pango is a library for layout and rendering of text, with an emphasis on internationalization. It forms the core of text and font handling for GTK+-2.0."tar -xvzf pango*.tar.gz
cd pango*
./configure --prefix=/usr
make
make install
cd ..
2.3.3 ATK
Once more, from www.gtk.org - " The ATK library provides a set of interfaces for accessibility. By supporting the ATK interfaces, an application or toolkit can be used with such tools as screen readers, magnifiers, and alternative input devices."tar -xvzf atk*.tar.gz
cd atk*
./configure --prefix=/usr
make
make install
cd ..
2.3.4 GTK+
One more time - "GTK+ is a multi-platform toolkit for creating graphical user interfaces. Offering a complete set of widgets, GTK+ is suitable for projects ranging from small one-off projects to complete application suites. "tar -xvzf gtk+*.tar.gz
cd gtk+*
./configure --prefix=/usr
make
make install
cd ..
tar -xvzf libsndfile*.tar.gz
cd libsndfile*
./configure --prefix=/usr
make
make install
cd ..
tar -xvzf fftw-3*.tar.gz
cd fftw-3*
./configure --prefix=/usr --enable-shared --enable-float
make
make install
cd ..
If you miss the --enable-float JAM won't build properly.
tar -xvzf ladspa_sdk.tar.gz
cd ladspa_sdk/src
make
make install
cd ..
rm -rf ladspa_sdk
This will also install some plugins in /usr/local/lib/ladspa.
tar -xvzf swh-plugins-*.tar.gz
cd swh-plugins-*
./configure
make install
cd ..
Note that these get installed in /usr/local.
tar -xvzf jack-audio-connection-kit-*.tar.gz
cd jack-audio-connection-kit-*
./configure --prefix=/usr --enable-optimize
make
make install
Again, I'm installing in /usr. In versions of JACK later than 0.70.4 you can possibly get some xrun relief by doing this:
mkdir /mnt/ramfs
cat >>/etc/fstab <<EOF
none /mnt/ramfs
tmpfs defaults 0 0
EOF
Then add --with-default-tmpdir=/mnt/ramfs to the JACK configure line when you build it. This may help with xruns, especially if your /tmp directory is on a reiserfs partition. The jury is still out on ext2/3.