Editing COMP 3000 2011 Report: Ubuntu Studio
Part I
Background
Initially released May 10, 2007, Ubuntu Studio is an officially recognized derivative of the Ubuntu distribution (based on Debian GNU/Linux) and, like Ubuntu, is developed by Canonical Ltd. and the Ubuntu Foundation and follows the same release schedule.
Focusing on audio, video and graphic enthusiast and professionals, the goal of the distribution is two-fold; to showcase the available tools that Linux has to offer in multimedia production, and to provide an ehanced and streamlined environment for those tools.<ref>slavender (2011, 05 19). UbuntuStudio. Retrieved 10/19/2011, from Ubuntu Wiki: https://wiki.ubuntu.com/UbuntuStudio</ref>
Ubuntu Studio's target audience is aimed at multimedia production workstations.<ref>Vachan. (2010, 05 14). UbuntuStudioWhatIsUbuntuStudio. Retrieved 10 17, 2011, from Ubuntu Documentation: https://help.ubuntu.com/community/What%20Is%20Ubuntu%20Studio</ref>
Although based on Ubuntu, Ubuntu Studio contains additional configurations and software that results in the distribution being nearly twice as large as standard Ubuntu. The iso image is 1.5 GB (with a 3.5 GB full installation, including all bundled applications) and does not fit on a standard CD, although it can be installed using a DVD or USB drive. Ubuntu Studio’s current and archived releases are available from their official website.
Ubuntu Studio is not just Ubuntu with a different theme; we will discuss throughout this text the bundled software configuration that allows for a complete multimedia production station (such as an audio ecoystem, JACK, and software that is designed to harness its available features) that differs from vanilla Ubuntu<ref>Vachan. (2010, 05 14). UbuntuStudioWhatIsUbuntuStudio. Retrieved 10 17, 2011, from Ubuntu Documentation: https://help.ubuntu.com/community/What%20Is%20Ubuntu%20Studio</ref>. And also Ubuntu Studio's unique real-time kernel. Moreover, the redesigned theme and streamlined GUI offers users a professional environment that purposely breaks away from Ubuntu's brown and orange default. A screenshot of the new theme can be found under Usage Evaluation named “Ubuntu Studio with new theme."
Installation/Startup
For this guide, Ubuntu Studio was installed on the virtualization software VirtualBox version 4.1.2 by Oracle. Alternatively, you can burn the iso image to a DVD (CD is too small) or USB drive to install on real hardware.
Setting up a Virtual Machine
Start VirtualBox and click the "New" button. This will open the New VM creation guide. Click "Next". Enter the name of your new virtual machine, and select "Linux" as the Operating System and "Ubuntu" as the version. Select an apropriate amount of memory for the VM. I chose 1024 MB for better performance. Next, select "Create new hard disk" and click "Next". The format for our purpose is not important, I chose the default VDI format. Click "Next" and choose the "dynamically allocated" hard-drive option and click "Next". Now choose the hard-drive size, I chose 8 GB. Click "Next" then "Create" to create your new virtual machine. Now start your new VM by double clicking it, then choose the iso image from your hard-drive as the virtual disc.
Installing Ubuntu Studio
This guide is for installing Ubuntu Studio 11.04 Natty Narwhal. In contrast to standard Ubuntu, Ubuntu Studio does not have a graphical installer and has more installation options.
- Select the language for the installation. I chose English.
- You will see the initial installation screen that gives you the option to check disc defects, test memory, etc. Choose the "Install Ubuntu Studio" option.
- Select your language, I chose English, and country, I chose Canada.
- For the default keyboard configuration I opted to choose from the list. I selected USA, USA.
- Ubuntu Studio will now load additional components.
- You will be prompted to choose a hostname. This name is your computers identifier on the network. I chose "ubuntu-studio-machine."
- You will then be prompted to confirm your time-zone. For simplicity we said the given time-zone was incorrect and opted to select "Toronto" from the listed zones available. Choose the city that represents your time-zone.
- For the partitioning of the disk, I chose a guided partition of the entire disk.
- Select the partition and choose yes to write changes to disk.
- "Installing the base system" loader appears to install additional components.
- You can select your user and password.
- You have the option to encrypt your home network, incase your computer is comprimised. For my purposes I chose not to.
- I left the proxy blank also, as it was not needed.
- The installation now configures files. You are now able to select the type of software that you want. The suite/plugin names are fairly self-explanatory; 2D/3D creation is for graphic/image processing, Audio recording and editing, LADSPA/LV2/DDSI and Tone generation and editing are audio manipulation software, and Video creation and editing is video production. Be sure to use the space bar to select each option. Only press Enter when you have made all of your selections. I opted to install all software.
Available Bundled-Software Suites/Plugins
The bundled software suites/plugins can be customized on install. We opted to install all software. All bundled software is also available in the Ubuntu repository, and can be accessed after install.
- Bundled software suites/plugins:
- 2D/3D creation and editing suite
- Audio recording and editing suite
- LADSPA/LV2/DDSI audio plugin
- Tone generation and editing suite
- Video creation and editing suite
Basic Operation
A nice feature offered in Ubuntu Studio is the ability to easily view the software already installed on the system. Also available is a full list of software that can be easily installed should the user desire it. Under "Get Software" there are 312 items available to install at the users convenience, ranging from an adobe flash plug-in to a guitar effects processor. Ubuntu Studio typically uses a real-time kernel that has been modified to handle intensified audio, video or graphics works. This can be achieved by allowing applications to request immediate CPU time reducing audio latency. The file system in this distribution is identical to that of the vanilla Ubuntu which makes it easier for those already familiar with Ubuntu to use.[1]
The Kernel
Ubuntu Studio offers a real-time kernel that has been modified to handle intensified audio, video or graphics works. This can be achieved by allowing applications to request immediate CPU time, reducing audio latency.
In the 10.x version of Ubuntu Studio three kernel options were offered: the generic kernel, preempt kernel and rt (real-time) kernel.
Recommendations for which kernel should be used are as follows: If low latency is not a strict requirement for the user’s needs then they are advised to use the generic kernel. However, if the user needs a system with low latency and has a 64-bit machine, then the recommendation is to use the preempt kernel. The preempt kernel is a soft real-time kernel which means that not all deadlines may be met (as with a hard real-time kernel) but a certain portion of deadlines will be met with the goal of optimizing some application-specific criteria. <ref>craigs63. (2011, 08 23). UbuntuStudioRealTimeKernel. Retrieved 10 17, 2011, from Ubuntu Documentation: https://help.ubuntu.com/community//RealTimeKernel</ref> If the preempt kernel still has too high latency for the user's specific needs the last option is the rt kernel. The rt kernel is a hard real time kernel. Hard means that if the system were to miss a deadline it would result in a total system failure. Therefore, the goal is to have every deadline met. <ref>Real-time computing. (2011, October 19). Retrieved October 17, 2011, from Wikipedia: http://en.wikipedia.org/wiki/Real-time_computing#Hard_and_soft_real-time_systems</ref>
Therefore, as a whole, given the nature of Ubuntu Studio's varying audio, video and graphic capabilities and requirements, it would be futile if there were high delays. For this reason, different Kernel’s are offered to allow the user to decide what they need. Unfortunately, with the 11.04 release of Ubuntu Studio the generic kernel (2.6.38) is the only option currently offered. This kernel is usually recommended if low latency is not a requirement, however at this time there is no other option. However, on the Ubuntu Studio 11.04 release notes there is a comment stating that they plan to add a low-latency kernel option, although no time frame is specified. https://wiki.ubuntu.com/UbuntuStudio/11.04release_notes <ref>Vachan. (2010, 05 14). UbuntuStudioWhatIsUbuntuStudio. Retrieved 10 17, 2011, from Ubuntu Documentation: https://help.ubuntu.com/community/What%20Is%20Ubuntu%20Studio</ref>
Usage Evaluation
As a whole Ubuntu Studio seems to have a lot to offer. There is a clear goal of offering software specific for image, audio and video processing. If a user has a specific need for multimedia or simply wanted to experiment, Ubuntu Studio would be a good choice.
The file system in Ubuntu Studio is identical to that of the vanilla Ubuntu which makes it easier for those already familiar with Ubuntu to use.
From a GUI perspective, much of the distribution is similar to Ubuntu, however there are some small differences. Such as the "Places" and "System" menu options not appearing on the task-bar by default. Slight changes like this appear to help differentiate Ubuntu Studio from Ubuntu without adding any real benefit.
The size of this distribution is pretty large, 3.7GB in size which makes download time long. The expected download time for this distribution at the Computer Science lab was 7 hours therefore it was necessary to do the installation on our laptops.
A disappointing aspect of Ubuntu Studio was the kernel. Much of the documentation has not been updated for the 11.x release. Thus, the advertised kernel was a real-time kernel. I was excited to see if I could notice any performance difference with a real-time kernel and how this would affect latency. I was disappointed to learn this release only shipped with the generic kernel.
That being said, Ubuntu Studio has a nice theme, is easily adaptable and serves it's function. I believe it really works towards their targeted audience. It also appears to meet their goals of demonstrating image, audio and video software capabilities on a Linux distribution; as it seems to offer all the software a user would need. Moreover, it has access to the Ubuntu software repository allowing it to offer the same capabilities as Ubuntu. This is done very easily through the Ubuntu Software Center. Another advantage is that there seems to be a lot documentation surrounding Ubuntu Studio and Ubuntu (which shares many similarities). Similarly, there is a community forum for any questions.
Part II
Software Packaging
Packaging Format
Advanced Packaging Tool is the Ubuntu studio package manager. The Graphical User Interface for APT is the Synaptic Package Manager by using the APT library, which then relies on dpkg for core functionality. The packages can be found in /etc/apt/sources.list <ref>Common package management systems and formats (2011, October 22). Retrieved November 12, 2011, from Wikipedia: http://en.wikipedia.org/wiki/Package_management_system#Common_package_management_systems_and_formats</ref>
Installed Packages
The dpkg is a low-level tool used in Ubuntu Studio for package managing. The command "dpkg -l" can be used to list all installed packages with their version and descriptions. <ref>Will Trillich. (2001). Installing Debian Software with the Advanced Package Tool. Retrieved 11 14, 2011, from Getting information about packages: http://newbiedoc.sourceforge.net/tutorials/apt-get-intro/info.html</ref>
Add/Remove Packages
The user can add and remove packages through Advanced packaging tool, the GUI front-end in Ubuntu studio is Synaptic Package Manager. This APT front-end has the capability to upgrade the system to a new release, search for new packages, upgrade existing packages and install/remove packages.<ref>Advanced Packaging Tool (2011, November 14). Retrieved November 12, 2011, from Wikipedia: http://en.wikipedia.org/wiki/Advanced_Packaging_Tool</ref> The package manager also gives access to the same repositories available to the main Ubuntu distribution. Also software can be added through the following commands: "sudo apt-get update" and "sudo apt-get install ubuntu-restricted-extras", you will need to enter a password for this. <ref>Ubuntu Studio (2011, November 1). Retrieved November 12, 2011, from Wikipedia: http://en.wikipedia.org/wiki/Ubuntu_Studio</ref>
Software Catalog
Ubuntu Studio comes with a large collection of media-related software; including 24 audio tools, 3 video editors with 2 media players and 9 2D/3D image and animation editors. This configuration of varying software allows for a simple media editor setup right out of the box. However, some applications that a standard Ubuntu user might expect, are absent. For example, by default Open Office is not included with the installation. Because of the ubiquity of word-processing documents in the professional and personal space (specifically those compatible with Microsoft's Word), it could be argued that a word processor is expected and should be included by default. However, one can be installed through the Advanced Packaging Tool.
Major package versions (11.04 Natty Narwhal)
Versions
Package Name | Latest Release | Included vintage | Ubuntu vintage |
---|---|---|---|
Agave | 1.7.6 | 0.4.7 | 4.2 |
Bash | 4.2 | 4.2 | 4.2 |
Blender | 2.61 | 2.49.2 | N/A |
Firefox | 8.0 | 4.0 | 4.0 |
GCC | 4.6.2 | 4.5.2 | 4.5.2 |
GIMP | 2.6.11 | 2.6.10 | 2.6.11 |
Glibc | 2.14.1 | 2.13.0 | 2.13.0 |
Gtk+ | 3.2.2 | 2.24.4 | 2.24.4 |
Libgnome | 2.32.1 | 2.32.1 | 2.32.1 |
JACK | 1.9.6 | 1.9.5 | N/A |
Kino | 1.3.4 | 1.3.4 | N/A |
Linux Kernel | 3.1.1 | 2.6.38 | 2.6.38 |
LinuxMultiMediaStudio | 0.4.12 | 0.4.5 | N/A |
Perl | 5.14.2 | 5.10.1 | 5.10.1 |
Python | 3.2.2 | 2.7.1 | 2.7.1 |
Samba | 3.6.1 | 3.5.8 | 3.5.8 |
Stopmotion | 0.6.2 | 0.6.2 | N/A |
terminatorX | 3.8.4 | 3.8.2 | N/A |
Udev | 174 | 167 | 167 |
xorg-server | 1.11.2 | 1.10.1 | 1.10.1 |
Xsane Image | 0.998 | 0.997 | N/A |
Xjadeo | 0.6.2 | 0.4.13 | N/A |
Information from table found on DistroWatch <ref>Ubuntu Studio Applications (2011, November 26). Retrieved November 28, 2011, from Ubuntu: https://help.ubuntu.com/community/UbuntuStudio/Applications</ref> and Ubuntu official <ref>Ubuntu Studio information (2011, October 27). Retrieved November 28, 2011, from DistroWatch: http://distrowatch.com/table.php?distribution=ubuntustudio</ref> website. Green indicates the vintage is up-to-date. Pink indicates it is behind the current version.
Software Details and Modifications
Audio
- JACK
- Jack is a cross-platform system for real-time, low latency audio. It allows applications to route audio output between each other for recording and shared processing. Moreover, Jack provides an API for audio communication between processes. The included Jack software is unmodified, however Ubuntu Studio improves the usability of Jack with it's real-time kernel, allowing for optimal audio manipulation.
- LinuxMultiMediaStudio
- Linux MultiMedia Studio is an open-source music production application. Similar to the commercial FL Studio (FruityLoops), LMMS allows for the melody, beat, synthesis and mixing manipulation/creation. This application is unmodified. Because of this, by deafult LMMS uses ALSA (Advanced Linux Sound Architecture) instead of JACK. This is can be changed easily in the application's settings, and is recommended because of JACK's advanced features and low-latency capabilities.<ref>LMMS Settings (2011, July 2011). Retrieved December12, 2011, from LMMS Wiki
http://lmms.sourceforge.net/wiki/index.php/0.4:LMMS_Settings</ref>
- terminatorX
- terminatorX is a digital synthesizer that allows the user to "scratch" virtual turntables in the same fashion as a vinyl record. The included version is slightly behind the current version, with limited changes. Ubuntu Studio did not modify this application, however the included version allows for JACK audio support; terminatorX can now pipe audio data directly to an audio device or send it to the JACK daemon for processing. <ref>terminatorX Operation Manual. Retrieved December 12, 2011, from terminatorx.org:
http://terminatorx.org/manual/x179.html#JACKSUPPORT</ref>
Graphics
- Agave
- Agrave is a colour tool for designers; it allows the user to generate colour-schemes from a base starting colour. The included Agrave application is unmodified.
- GIMP
- GIMP is a popular free alternative to commercial image manipulation/production software (such as Adobe's PhotoShop). GIMP includes a plugin architecture, with simple creation tools such as creating a Logo from various templates in less than 4 clicks. An example of the Lava text effect can be seen to the right. GIMP also provides professional manipulation and creation features, such as animated logos, various FX, filters, and features, giving Ubuntu Studio strong image manipulation capabilities that uphold its claims of being a media creation distribution. The included version of GIMP is not modified specifically for Ubuntu Studio.
- Blender
- Blender is a the most popular open-source 3D modelling program. Due to the high cost of commercial software (such as Autodesk's Maya), Blender offers a powerful free alternative. This software is currently aimed towards hobbyists as it has various drawbacks compared to industry software. Some criticism includes that its user interface was not up to industry standards and its lack of proper documentation. However, as Ubuntu Studio is also aimed towards hobbyists, Blender is the leading free modelling and animation suite. Using Blender in Ubuntu Studio did not feel different from standard Ubuntu. However, the simple inclusion of the software is one less step for animation enthusiasts.<ref>Comparison with other 3D software. Retrieved 10 17, 2011, from Wikipedia
http://en.wikipedia.org/wiki/Blender_(software)#Comparison_with_other_3D_software</ref>
Kernel
Ubuntu Studio has worked with the Ubuntu Kernel team to develop a real-time implementation of the standard Linux kernel. There are various configurations of the kernel, including the "generic kernel", "preempt kernel", "rt kernel", "low-latency kernel", and "real-time kernel." These modifications are done at the kernel level to allow for varying levels of latency guarantee and performance.
The low-latency and preempt kernels are described as "soft" real-time kernels. They attempt to give the system all the benefits of low latency and performance, without substituting reliability and power savings. These kernels are recommended for most users as they offer audio latency benefits without sacrificing reliability of the system. The rt and real-time kernels are "hard" real-time kernels. They substitute everything to ensure that audio latency guarantees are met. This can result in unreliability, bad power usage and throughput.
Using the generic kernel I did not notice any audio lag that would effect production. As I am an amateur at audio production, I cannot validate the claim that a professional or even enthusiast would find it adequate. However, I attempted to use the low latency kernel anyway. As could be assumed, I found no problems with this kernel either. However, theoretically its latency should be lower.<ref>Choosing a Kernel for Your Use (2011 08 23). Retrieved 2011 12 12. From UbuntuStudio Wiki: https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel</ref>
Installing the various kernels is a simple task from the terminal.
Real time (-rt) kernel:
sudo apt-get install linux-rt linux-headers-rt
Low latency (-lowlatency) kernel:
sudo apt-get install linux-lowlatency linux-headers-lowlatency
In case of kernel failure, it is recommended to keep a -generic kernel in the GRUB bootloader list.<ref>Kernel Repositories (2011 08 23). Retrieved 2011 12 12. From UbuntuStudio Wiki: https://help.ubuntu.com/community/UbuntuStudio/RealTimeKernel</ref>
Configuration
Ubuntu Studio has made slight configuration changes to the permissions for real-time audio. For this version /etc/security/limits.d/audio.conf contains the audio groups permissions. The following values have been changed in this file to allow for real-time audio (with the rt kernel). These values are default and recommended by JACK audio:
# generated by jackd's postinst.
# Do not edit this file by hand, use
# dpkg-reconfigure -p high jack
# instead
@audio - rtprio 99
@audio - memlock unlimited
#@audio - nice -19
There are two lines in this configuration that effect audio; the "memlock" line and the "rtprio" line. The memlock value determines how much RAM (in KB) can be locked by audio processes. Currently, it's set to be unlimited, however if you plan to have many other non-audio processing running it is suggested to set this value to half of your total available RAM. The first line "rtprio" sets the "maximum real-time priority for non-privileged processes."<ref>limits.conf(5) - Linux man page. Retrieved December 12, 2011. From linux.die.net: http://linux.die.net/man/5/limits.conf</ref> This value is set high to allow for all audio processing to take advantage of a real-time kernel. The audio "nice" value is commented out by default. According to JACK, allowing users to renice processes is not necessary (it is handled by the JACK daemon itself).<ref>Real time support (2010 12 01). Retrieved 2011 12 12. UbuntuStudioPreparation: https://help.ubuntu.com/community/UbuntuStudioPreparation#Real_time_.28-rt.29_and_Low_latency_.28-lowlatency.29_kernels</ref>
Initialization
For a complete display of Ubuntu Studio's boot process, Bootchart was used. Bootchart is an program that records the launch order, CPU and time used of each programs execution during the booting process. It outputs this information as a PNG image file.
You can install bootchart using the command:
sudo apt-get install bootchart<ref>Ben Kevan. (2010, April 29) Visually Seeing Your Boot Speed With Bootchart Ubuntu 10.04 Lucid Lynx. Retrieved November 12, 2011, from Wikipedia:
Furthermore, inspection of the /etc/init, /etc/init.d and /etc/security/limits.conf files and scripts were inspected.
Ubuntu Studio, like Ubuntu, uses upstart as a replacement for the traditional SysVinit package. Upstart is event-driven but maintains backwards compatibility with sysvinit.
Initially the BIOS boots the boot loader (GRUB for Ubuntu Studio), GRUB loads the kernel which then starts upstart.
Upstart is the first process run by the kernel. Because upstart is event-driven, scripts can depend on events to occur (fired from the kernel and listened to by the udevd process). The directory /etc/init replaced /etc/event.d in this version of Ubuntu Studio. This means that /etc/init is the directory for the new upstart system, while Ubuntu Studio also maintains /etc/init.d for old sysv scripts. Some services in /etc/init.d are older sysV files, while some are upstart services that maintain a link to /lib/init/upstart-job for upstart to run.
Contrasting the SysV method of running scripts syncronously, Upstart reads from it's jobs directory to know what script to run. These scripts are located in /etc/init.
Because bootchart loads when init is run, we see init being the first process. Init then runs udevd and devd to handle events by the kernel. Also, device systems are initialized (/dev from udev and udevd). upstart-udev-br is initialized to handle events such as informing processing that rely on a network when the network connection has been established. The scripts and therefore processes that depend on events are run when that event is triggered. Allowing for the system to boot asyncronously. This provides a speed improvement with multiple core processors. Moreover, upstart can be used once the system has been booted.<ref>Akkana Peck. (2010, 04 08). Ubuntu's Success Story: the Upstart Startup Manager. Retrieved 12 12, 2011, from Linux Planet: http://www.linuxplanet.com/linuxplanet/tutorials/7033/1</ref>
In the future, upstart could be used for plug and play USB drives and other event-based device solutions. However, with this current release it is used primarily for booting/shutting-down sequences.<ref>Akkana Peck. (2010, 04 08). Ubuntu's Success Story: the Upstart Startup Manager. Retrieved 12 12, 2011, from Linux Planet: http://www.linuxplanet.com/linuxplanet/tutorials/7033/1</ref>
References
<references />