3 Steps to JAD for Nerds
From JackLab UserWiki
| This page in:
|
| List of avaible languages
|
Contents |
Three Steps to turn SUSE Linux into a Digital Audio Workstation
( UPDATE 12. July 06 ) JackLab Audio Distribution 0.4.9 beta preview (JAD powered by SUSE Linux)
This tutorial is aimed at the musical user with good linux skills who needs full realtime support for performing or production enviroments. For this we use a patched realtime preemt kernel. In order to provide user realtime permissions we are using PAM, and optionally the kernel module realtime-lsm, which gives much better audio realtime performance than the audio rt-prio with PAM. The realtime patch of Ingo Molnar can break other kernel drivers so it can be be problematic with some hardware. But for a high-perfomance workstation, it is recommended to use the latest JAD kernel. The "3 Steps Tutorial" is usable for SUSE Linux 10.0 and 10.1.
Recommended Hardware
* CPU ->1,5GHz * RAM ->512MB * Audio ->24bit/96khz * Mass storage ->40GB * Audio monitoring, preamplifier, microphone * Midicontroller / Masterkeyboard * Broadband internet access * DualScreen (Xinerama) (Matrox g550 recommended)
1. Install SUSE Linux 10.0/10.1
Download the CDs/DVD for SUSE Linux 10.0/10.1
International Mirrors - please use a mirror in your local area
Here some examples:
Alternativly you can make a ftp-install.
Make sure that you have 20GB free on your harddisk. Ten for the OS and ten for your home directory. Install your /home directory on a seperate partition, for future updates of your system.
Simply make a "KDE" install or, if you want to have a very slim system, a minimal graphic selection. Formating your harddisk with ext3 (important!). Be smart and add the user (you) to the group "audio" in the post-installation. After the YAST Setup your system will be an optimal openSUSE Linux 10.0, but not more.
2. Extend your Software Installation Sources
With this step you can get access to the JAD Kernel and the audioapps like Ardour, Rosegarden, MusE etc.
Here is an overview of the various package manager to install jacklab software (or any other source, like packman, which is recommended because of dependecies to some jacklab rpms) to your hd via internet.
I recommend to use the package manager "smart" with "smart-gui" -it's easy to use, fast and compatible to many install - protocols, like apt, yum, yast or plain rpm.
APT
Insert into /etc/sources.list for SuSE-10.0:
rpm ftp://ftp.gwdg.de/pub/linux/suse/apt/ SuSE/10.0-i386 jacklab
Insert into /etc/sources.list for SuSE-10.1:
rpm ftp://ftp.gwdg.de/pub/linux/suse/apt/ SuSE/10.1-i386 jacklab
With new APT (supporting repomd):
Insert into /etc/sources.list for SuSE-10.0:
repomd http://ftp.gwdg.de/pub/linux/misc/jacklab 10.0/RPMS/
Insert into /etc/sources.list for SuSE-10.1:
repomd http://ftp.gwdg.de/pub/linux/misc/jacklab 10.1/RPMS/
Download for the new APT:
SuSE-10.0:
wget http://ftp.gwdg.de/pub/opensuse/repositories/home:/rbos/SL-10.0_i586/i586/apt-0.5.15lorg3-17.3.i586.rpm wget http://ftp.gwdg.de/pub/opensuse/repositories/home:/rbos/SL-10.0_i586/i586/apt-libs-0.5.15lorg3-17.3.i586.rpm
SuSE-10.1:
wget http://ftp.gwdg.de/pub/opensuse/repositories/home:/rbos/SL-10.1_i586/i586/apt-0.5.15lorg3-17.2.i586.rpm wget http://ftp.gwdg.de/pub/opensuse/repositories/home:/rbos/SL-10.1_i586/i586/apt-libs-0.5.15lorg3-17.2.i586.rpm
Take this RPMs into a directory and install (as root) with:
# rpm -Uhv apt*.rpm
Smart
Channel-definition for SuSE-10.0:
[suse-100-apt-jacklab] type = apt-rpm name = SUSE Linux 10.0 APT JackLab Repository baseurl = ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386 components = jacklab mirror = ftp://ftp4.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386 mirror = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.0-i386
[suse-100-yum-jacklab] type = rpm-md name = SUSE Linux 10.0 YUM JackLab Repository baseurl = ftp://ftp.gwdg.de/pub/linux/misc/jacklab/SUSE-10.0/RPMS mirror = ftp://ftp4.gwdg.de/pub/linux/misc/jacklab/SUSE-10.0/RPMS mirror = http://ftp.gwdg.de/pub/linux/misc/jacklab/SUSE-10.0/RPMS
Channel-definition for SuSE-10.1:
[suse-101-apt-jacklab] type = apt-rpm name = SUSE Linux 10.1 APT JackLab Repository baseurl = ftp://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.1-i386 components = jacklab mirror = ftp://ftp4.gwdg.de/pub/linux/suse/apt/SuSE/10.1-i386 mirror = http://ftp.gwdg.de/pub/linux/suse/apt/SuSE/10.1-i386
[suse-101-yum-jacklab] type = rpm-md name = SUSE Linux 10.1 YUM JackLab Repository baseurl = ftp://ftp.gwdg.de/pub/linux/misc/jacklab/SUSE-10.1/RPMS mirror = ftp://ftp4.gwdg.de/pub/linux/misc/jacklab/SUSE-10.1/RPMS mirror = http://ftp.gwdg.de/pub/linux/misc/jacklab/SUSE-10.1/RPMS
Insert this channel-definitions into the Smart-GUI or save as jacklab.channel.
Import with:
# smart channel --add jacklab.channel
Some additional smart channels for SUSE 10.1:
yast2 | Extra Non OSS SL 10.1 | http://ftp.gwdg.de/pub/opensuse/distribution/SL-10.1/non-oss-inst-source/
yast2 | Guru 3rd party package repository | http://ftp.gwdg.de/pub/linux/misc/suser-guru/rpm/10.1/
yast2 | Packman 3rd party package repository | http://packman.inode.at/suse/10.1
yast2 | SUSE 10.1 BASE Repository | http://ftp.gwdg.de/pub/opensuse/distribution/SL-10.1/inst-source/
rpm-md | SUSE Linux Online Updates http://ftp.belnet.be/mirrors/ftp.suse.com/suse/i386/update/10.1/
YUM
- start YaST
- Software - change installation source- insert new
- Protocol: HTTP
- Servername: ftp.gwdg.de
=> for SuSE-10.1
- Directory: pub/linux/misc/jacklab/SUSE-10.1/RPMS
=> for SuSE-10.0
- Directory: pub/linux/misc/jacklab/SUSE-10.0/RPMS
YAST
For SuSE-10.0 you can simply use the YaST-install-sources (broken in 10.1 because of changes in the install system):
(->Software>>change installation source>>add)
JackLab JackLab ProAudio software and audio realtime kernel for musicans and mediaproducer.
protocol - FTP
- HTTP
server name - ftp.gwdg.de
Directories - pub/linux/misc/jacklab/SUSE-10.0
Optional SUSE 10.0 YAST Sources from different other maintainers:
10.0 installation source Contains more software then the 5 installation CDs
protocol - FTP
- HTTP
server name - ftp.gwdg.de
Directories - pub/opensuse/distribution/SL-10.0-OSS/inst-source
Packman Packman offers ALSA updates, multimedia codecs and enlightenment (e17) for openSUSE Linux. Please use a mirror if possible.
protocol - HTTP
FTP
server name - ftp.gwdg.de
Directories - pub/linux/misc/packman/suse/10.0/
JAVA for openSUSE 10.0
protocol - FTP
- HTTP
server name - ftp.gwdg.de
Directories - pub/opensuse/distribution/SL-10.0-OSS/inst-source-java
Additional commercial applications
protocol - FTP
- HTTP
server name - ftp.gwdg.de
Directories - pub/linux/suse/ftp.suse.com/suse/i386/10.0/SUSE-Linux10.0-GM-Extra/
Update KDE 3.5
protocol - FTP
- HTTP
server name - ftp.gwdg.de
Directories - pub/suse/i386/supplementary/KDE/update_for_10.0/yast-source
Guru Guru's RPM site contains packages optimized for i686
protocol - HTTP
- FTP
server name - ftp.gwdg.de
Directories - pub/linux/misc/suser-guru/rpm/10.0
See also openSUSE Additional YAST Sources for more installation sources.
Install kernel and software
Install the recent JAD kernel and some proAudio software updates.
List of recommended software
(ToDo) Ardour, MusE, Rosegarden-4, qjackctl etc.
(ToDo) Packman for various audio codecs and ALSA updates.
(ToDo) Slim Windowmanagers like e17, fluxbox, wmaker, xfce4
Dual Kernel Boot
If you want to be sure to have the option to boot with your standard kernel (skip this step if you want to delete the standard kernel)
This is not necessary with rt kernels higher than 2.6.17, the postinstall script automaticly creates a "previous kernel" initrd and inserts it into /boot/grub/menu.list.
Check which kernel runs:
# rpm -qa | egrep kernel kernel-2.6.13-14-default
Erase default from the data base:
# rpm -e --justdb kernel-2.6.13-14-default
Install the jad-kernel, after (don't reboot now) editing /boot/grub/menu.list as root with any editor
Copy the SuSE 10.0 default section, paste it under there and make some changes:
First section: change the title(only for example)
title openSUSE JAD 0.4.0 beta preview
root (hd2,0)
kernel /boot/vmlinuz root=/dev/hdc1 vga=0x317 selinux=0 resume=/dev/hda6 splash=silent showopts
initrd /boot/initrd
Second section: the kernel installer make new symlinks named vmlinuz-previous, initrd-previous, change that and maybe the title (only for example)
title SUSE 10.0 default kernel
root (hd2,0)
kernel /boot/vmlinuz-previous root=/dev/hdc1 vga=0x317 selinux=0 splash=silent resume=/dev/hda6 showopts
initrd /boot/initrd-previous
3. Boot into JAD
After the reboot you have to activate the audio realtime. This is nessesary, because the low-latency audio demon JACK is not able to start without a working audio realtime user management. (But JACK can start in "softmode" - but with a huge lack of realtime performance.) We have two ways of audio realtime user management, both need the group "audio":
Make sure that the user (you) is member of the group "audio" with yast (user administration).
(ToDo) Screenshot
User realtime with PAM for rt_prio
This is the recommended way of the "official" SUSE. For SUSE 10.0 rt_prio for audio failed with the SUSE distributed PAM, so there is a fixed PAM available in the jacklab repository.
PAM is finaly working for audio on SUSE 10.1 "out of the box" now. It will be fast as rt-lsm, but more secure for the system. It is possible to use PAM for rt prios with the SUSE 10.1 standard kernel, but with a lack of performance.
To activate PAM for audio realtime prio, edit your /etc/security/limits.conf (as root). Insert following lines at the end of the file:
@audio - rtprio 90 @audio - nice -10 @audio - memlock 4000000
# End of file
Then reboot, thats it.
Maybe you can use other values, like rtprio 99, nice -20 or something like that.(-20 is the highest, 20 the lowest nice priority for processes)
PAM stoping audioApps if they use more CPU then allowed (max.-> 99%). This can be very contra-productive in a session. Midest the synth solo the app quiting, cos there was a short high peak with 100% CPU. If you need more stability, or if you have graphical problems with PAM, try rt-lsm.
User realtime with rt-lsm
This is the radical way for "full user preemt". That means: the user processes have full control over the machine so it's possible to freeze your system. Otherwise the realtime audio is more stable and performant.
-The user must add himself to the group "audio"
-Install the rpm: realtime-lsm-kmp
For SUSE 10.1 with Kernel 2.6.17-jad1 we have a full automated script now inside the realtime-lsm-kmp rpm, so the next steps are not nessesary.
Determine ID users of the audio (as a user)
~> id ~> uid=1000(metasymbol) gid=100(users) Gruppen=16(dialout), 17(audio), 33(video), 100(users)
activate modules: (as root)
# insmod /lib/modules/2.6.15-jad2-default/extra/realtime.ko # rmmod realtime # depmod -ae # modprobe realtime gid=17
Now the regular user is able to run audio realtime capabilities for jackd.
# lsmod | grep realtime realtime 11280 0
if realtime is working OK, a:
# echo "modprobe realtime gid=17" >> /etc/init.d/boot.local
will automate the start of the real-time user module.
Go and make some music
After this our SUSE Linux being ready to work in a musical production studio. Now it is time to explore the new possibilities of JACK and an endless number of new programms.
To have the full JAD experience, you can install a slim windowmanger like "e17 - enlightenment" (available for SUSE 10.0 in the packman repositories), fluxbox (suse install source) or windowmaker (installed by default on SUSE Linux)
Please take a notice that JAD is in a beta state: that means: Most of the features are complete, but there can be bugs and other problems. Please join into the JackLab Support Community to share your experiences, posting bugs or get generaly support for JAD.
Todo: lists of components, proofreading

