I'm JADed !

by Dave Phillips

In my apparently never-ending quest to revive and refresh my aging 32-bit box I decided to try installing the JAD (JackLab Audio Distribution) system. To recapitulate the source of woe with this particular machine, I'll remind readers that its PS2 ports are physically damaged, forcing me to switch my mouse and keyboard to the USB ports. Under normal circumstances this switch wouldn't be a problem, but many contemporary distros and live discs cause the keyboard to vanish from recognition by the system, leaving me with an unusable machine (the problem has something to do with the HID module). Regular readers of this blog may recall that I've been using the excellent Dynebolic on this hardware, and that it's worked wonderfully well. However, I thought I'd take a chance with the JAD distribution, and I must say that I've been very pleased with it. The installation and configuration went smoothly, the system is happy with my USB keyboard, and the old box now has a new lease on life, with a shiny new 2.6.19 Linux kernel optimized for realtime performance.

JAD 1.0alpha2

Figure 1: JAD 1.0 (Click image for large view)

The latest JAD is based on the openSUSE 10.2 distribution, which is, according to Wikipedia, "a community project, sponsored by Novell, to develop and maintain a general purpose Linux distribution". SUSE is one of the most popular Linux distributions, with a large community of users and developers primarily based in Europe. However, potential users should have no fear if they don't happen to live in a European country: openSUSE is clearly designed for use anywhere, with full internationalization support.

I began my trek into SUSEland by downloading the JAD ISO from the JackLab site. JackLab is a community-driven effort to bring the best of Linux multimedia experience to normal users and a superb low-latency platform for professional audio and video work. Installation was simple and straightforward on my antique 800 MHz Duron box: I put the DVD in its drive, booted the machine, and let the installer do its thing. All my hardware was correctly identified and configured, including two CD/DVD drives, two internal hard-disks, and my SBLive Value soundcard. X was also properly configured for my Envision monitor and an nVidia FX5200 GeForce graphics card.

Users are presented with a selection of three default desktops: KDE, e17 (aka Enlightenment), and FVWM. I tried all three, they're all nice, but the machine itself labors under anything heavier than Fluxbox (and I don't care much for FVWM). As soon as the system was safely installed I decided to jettison those managers in favor of Fluxbox, a simple task with the YAST2 system tool.

I had to dig into the system a bit to discover how to reset the default desktop choice in the login screen (the setting can be changed in /etc/sysconfig/windowmanager). Next I downloaded and installed the JAD kernel. The default 2.6.18 kernel performed well, but it is not optimized for realtime performance. Once again, it was YAST2 to the rescue, and again the installation and update was comfortable as a cool breeze.

JAD supplies a selection of the finest Linux sound and music applications, along with the many programs, tools, and utilities we've come to expect from any mainstream Linux distribution. It was also a relatively simple matter to set up a development environment, and users should note that a vast number of applications can be retrieved via YAST2's software update/upgrade manager.

Alas, I discovered that JACK produced many xruns, and a familiar and aggravating problem had returned. Whenever I used a program with JACK, at some point a terrible distortion crept into the sound, disappearing after a few moments. JACK reported xruns during this noise, and I recalled that my preferred JACK settings may need changed for this hardware. Sure enough, I had set JACK to a sampling rate of 44.1 kHz, a non-optimal value for the SBLive. That card is hard-wired with an internal sampling rate of 48 kHz, and downsampling on this hardware results in severely flawed performance from the soundcard. I reset the sampling rate in QJackCtl, then I recompiled the kernel. Voila, all problems solved.

Oh, about recompiling that kernel: I noticed that dmesg reported that the CONFIG_DEBUG_PREEMPT option had been left on for the realtime kernel build. This option is a potential problem for lower-powered machines trying to achieve decent realtime performance, and I had dealt with it previously in an older Demudi kernel. The option can be switched off only by recompiling the kernel. Fortunately I'm an old Linux hound so I downloaded the kernel source package, went through xconfig to lighten the load (i.e. I got rid of the gazillion modules built by default), and rebuilt the kernel without the offending option. The default JAD kernel config supports the realtime options, so I simply copied it into my new /usr/linux/src directory and did little else during the configuration except remove support for the unneeded modules and options.

As mentioned, the distro did a fine job setting up my hardware, including the video system. Of course, Xorg was configured with the kernel nv module for my nVidia card, but since I sometimes like to run Pd with GEM I installed nVidia's binary driver. My first attempt used openSUSE's official installer, but it didn't work. I then downloaded and ran nVidia's own script to install the driver, resulting in a nice new 3D-capable video system. Actually, I had to do this twice, once after installing the JAD kernel and again after recompiling and reinstalling the same kernel. The nVidia installation script is very easy to use, but it is necessary to reinstall the driver after any kernel build.

At this point I had only two more steps to perfection, both of which steps were neatly handled by YAST2. I added the ALSA virtual MIDI device to my soundcards list, and I configured my Ethernet card for a DHCP-managed network connection. After these additions I was ready to rock.

Figure 2: Studio Dave's JAD (Click image for large view)

An 800 MHz machine is not powerful enough for extensive audio work, and since acquiring my AMD64 box I've restricted my audio production to that machine. However, I do most of my composing with MIDI, and an 800 MHz box is an excellent performer for lighter-weight MIDI work. My MIDI environment of choice includes Voyetra's Sequencer Plus Gold running under DOSemu, the QSynth soundfont synthesizer, and various other MIDI tools and utilities. I installed DOSemu with YAST2, then I simply copied Sequencer Plus from my AMD64 box to this one. I also copied my usual batch files for DOSemu, added an entry to my Fluxbox menu (a script to run the sequencer), and I was up & running. JACK is set for ~10 msec latency, and I've run this system for hours without an xrun, even while running other applications.

An active user base and ready access to the friendly developers should provide the answers to any questions from new users. Unfortunately I can't say much about the system's documentation, because I never needed it. When I did need some help I just sauntered over to the JackLab forum, searched the message bases, and found the solutions.

I have only a few complaints about the system: I'd like to see Fluxbox or a similar WM included as a choice for desktop manager, the CONFIG_DEBUG_PREEMPT option must go as soon as possible, and YAST2 is s-l-o-w compared to the apt system on my Debian box (but I'm new to YAST, and the fault may be my own lack of experience with the tool).

So has my quest ended ? Well, despite the sidetrips taken during the post-installation configuration I'm very impressed with JAD, and I'll leave it as the default system for the old box. I'm building a more powerful 32-bit machine now, and I intend to load it with the JAD distro. Given its excellent performance on my ancient iron, I look forward to its performance on a more suitable machine.