Why Amarok doesn’t play MP3 files in Slackware 14 and how to solve the problem ?

gstreamer logo

Amarok one of the best music players for the Gnu\Linux world and I have been a loyal fan of it ever since I started using it.

Back to the point now !! ūüôā . After installing Slackware 14 I was hugely disappointed, I wasn’t able to play MP3 files using Amarok. I tried changing the backend by going to

-> Settings 
  -> Configure Amarok 
    -> Playback 
      -> Sound System Configuration
        -> Backend tab

and that didn’t help me. But after a google search I was able to spot the problem. Amarok uses phonon in the backend and which in-turn depends on GStreamer to work. The problem revealed to be the missing of some GStreamer plugins which were used to play the mp3 files. GStreamer plugins are grouped into several packages: base, good, bad and ugly. Slackware 14 was not giving ugly group ( This package contains plug-ins from the “ugly” set, a set of good-quality plug-ins that might pose distribution problems.) of plugins out of the box, probably because of its license. I installed ugly plugins, i.e, gst-plugins-ugly, but I didn’t know if it was enough so Installed¬†gst-plugins-bad and gst-plugins-ffmpeg also. It was a blind shot but it worked. And I am happily hearing to some music now,¬† Amaroking by the way ;).

waiting for your comments, cheers ūüôā


Steps for booting Slackware to GUI, and some details on runlevels

Starting process in a gnu/linux system

runlevel is a software configuration of the system which allows only a selected group of processes to exist.

What are the runlevels in Slackware ?

0 - Halt
1 - Single User Mode
2 - unused (but configured the same as runlevel 3)
3 - multiuser mode without display manager(default Slackware runlevel)
4 - Multi-user mode with X11 with KDM/GDM/XDM (session managers)
5 - unused (but configured the same as runlevel 3)
6 - Reboot

In Slackware Linux runlevel 1 is for maintenance (as on other Linux distributions). runlevels 2, 3 and 5 identically configured for a console (with all services active except the X Window System); and runlevel 4 adds the X Window System.

How to check the current runlevel of the system?

The runlevel command is used to find the current and previous runlevels on Unix-like operating systems.Type the following and press the Enter key to get the details of runlevel:

# /sbin/runlevel
N 3

If there is no recorded previous runlevel the command will show ‘N’ and then the current runlevel.

Or one can use the command who with the argument -r  to get the current runlevel details.

# who -r
run-level 3  2013-06-29 23:57                   last=S

Which is the default runlevel and how to change it ?

The default runlevel in slackware is 3, which means system will boot in to a console. So the user have to enter username and password in console and then give the ‘startx’ command to start the x window system.

To change the runlevel one can follow any of the steps bellow :

1. Manually edit the /etc/inittab file. (To change the default runlevel)
This method need a reboot to make the change in effect. i.e, we know that the default runlevel in slackware is 3 and that’s why the system boot in to a console. But what if one need to boot his system to a started X window system ? for that the runlevel must be 4, right? So open the configuration file /etc/inittab in your favorite editor as root and find the following line.


and change 3 to 4, which is the runlevel for multiuser mode with X window system started. And then on the system will boot with X windows started. Do not set the default run level to 0 or 6, you can guess what will happen then.

2. init or telinit
Init can be in one of eight runlevels: 0-6 and S  or  s. The processes spawned by  init for each of these runlevels are defined in the /etc/inittab file.  The  runlevel  is changed  by having a privileged user run telinit, which sends appropriate signals to init, telling it which runlevel to change to.

According to the manual page :

# init [ -a ] [ -s ] [ -b ] [ -z xxx ] 
# telinit [ -t SECONDS ]

To execute these commands user need to login as root. To use these commands one can either use the console or a virtual console, using Ctrl+Alt+F (console 1, you use Ctrl+Alt+F1. To reach back to the window system use Ctrl+Alt+F7), if the user started x window system.

How to configure runlevels in Slackware

The init is the parent of all processes with a pid 1. Its primary purpose is to create processes from a script stored in the file /etc/inittab file. After init is invoked as the last step of the kernel boot sequence,  it looks for the file /etc/inittab to see if there is an entry of the type initdefault. The initdefault entry determines the initial  runlevel  of  the  system.   If  there  is  no  such entry (or no /etc/inittab at all), a runlevel must be entered at the system console. So entries in /etc/inittab controls autonomous processes required by the system by telling init what is the default runlevel, and what to do when entering or leaving each runlevel.

In Slackware /etc/rc.d/ contains a few scripts for several of the daemons or subsystems a system may run, and the scripts includes rc.0, rc.S, rc.K, rc.M, rc.6. Where rc.0 actually is a symlink to the rc.6 script because it’s so similar: rc.6 reboots the system except when invoked as rc.0, in which case it halts the system. The rc.? scripts do several things directly, as well as running the other scripts. So on Slackware, runlevels can be administered with an editor.

References :

Installation of flash player in Slackware

N.B : Support for Firefox in Linux is only up to v. 11.2 of flash player

[1] Flash Player  Installation : Manual Way

  1. Change to the folder in which the flash-player tar ball is downloaded.

    $cd path_to_the_folder_downloaded_folder
  2. Extract the file.

    $ tar -xf install_flash_player_11_linux.tar.gz
  3. Create a directory named ‘plugins’ in /usr/lib/firefox-* (32 bit slackware), or /usr/lib64/firefox-* (64 bit slackware). ( For firefox 21 and above it is /usr/lib/firefox-*/browser or /usr/lib64/firefox-*/browser ).
  4. # mkdir /usr/lib/firefox-*/plugins or # mkdir /usr/lib64/firefox-*/plugins
  5. Copy the libflashplayer.so to the plugins folder.

    # cp libflashplayer.so /usr/lib/firefox-*/plugins/ (for 32 bit slackware)
    # cp libflashplayer.so /usr/lib64/firefox-*/plugins/ (for 64 bit slackware)
  6. Restart the Firefox browser.
  7. Open Firefox web browser. Type about:plugins to verify flash player.

Enjoy the YouTube videos.

[2] Flash Player  Installation : Using Slack builds

To install the Adobe flash player 11 plugin in Slackware 13.37, we can get the slackbuild scripts from Slackware ftp server or HTTP mirrors

Here is one URL : http://slackbuilds.org/repository/13.37/multimedia/flash-player-plugin/

Download the file “flash-player-plugin.tar.gz” which contains

  • doinst.sh
  • flsh-player-plugin.info
  • flash-player-plugin.SlackBuild
  • slack-desc

Uncompress the tar ball and change directory to the uncompressed folder. Then run the slack build to install the flash player

Step by step instructions are given below :

  1. Download “flash-player-plugin.tar.gz” from Slackware mirror. The above link is one of them.
  2. Download the “install_flash_player_11_linux.x86_64.tar.gz” from the Adobe website.
  3. Uncompress the tar ball
  4. Copy the “install_flash_player_11_linux.x86_64.tar.gz ” file to the uncompressed folder
  5. Change directory to where you uncompressed slackbuild scripts.
  6. Run slackbuild script to create Slackware package.
  7. $ cd  /tmp
  8. $ installpkg flash-player-plugin-