Main menu:

Sponsoring

Please consider a small donation:

 

 

Or you can donate bitcoin:

 

Thanks to TekLinks in Birmingham, AL, for providing colocation and bandwidth.

Page Rank

Fame

FOSS Force Best Blog--2013 Award

Recent posts

Recent comments

About this blog

I am Eric Hameleers, and this is where I think out loud.
More about me.

Search

My Favourites

Slackware

Calendar

November 2014
M T W T F S S
« Oct    
 12
3456789
10111213141516
17181920212223
24252627282930

RSS Alien's Slackware packages

RSS Alien's unofficial KDE Slackware packages

RSS Alien's multilib packages

Meta

Valve’s Steam client for Linux

notifyFor people who visit this page – it was written a long time ago. The requirements to run Steam on Slackware are a lot lighter nowadays! Most important: PulseAudio is no longer required!
All you need is a package for OpenAL (to play audio) and flashplayer-plugin (in order to watch the videos in the Steam Store).
If you are running 64-bit multilib you will also have to create and install “compat32″ versions of the 32-bit OpenAL and flashplayer-plugin packages.
That’s all.

It was august 2012 when I wrote an article about the viability of commercial games on Linux. In particular, I was talking about the new Steam client for Linux which Valve Software was developing. Read that article now if you have not seen it yet, it will give insight as to where I stand with regard to the use of commercial software on Linux.

It took a while, and then Valve opened a limited Beta for their Steam client, inviting 1000 users at random, but targeting users of the Ubuntu distribution for obvious reasons: Valve wants to create a firm foothold in Linux now that they have “officially” denounced Windows 8 as a platform for which they will develop their software and games. Gabe Newell’s criticism of Windows 8 is well-known by now and in October of this year, Valve issued a similar statement during the Ubuntu Developer Summit.

And Ubuntu has the biggest potential user base for game fans – let’s face it, more people move from Windows to Ubuntu than to Slackware, so commercially Valve is doing the smart thing.

 

When the Beta program kicked off, people found out relatively fast that the Steam client had limited functionality, even for people who were not part of the initial beta. I quickly hacked together a set of instructions based on the tests I did.

Last week, the Steam for Linux Beta program opened up to a much wider audience and I received my invitation email as well (along with many more Slackers). It looks like there will not be any limitations at all after next week, so I decided to use a little of my holiday to properly package the Steam Client for Linux. Obviously, the client software is distributed as binary-only. Furthermore, it is 32-bit software and developed on Ubuntu. Nevertheless, it is not hard at all to run the Steam client on Slackware. I created a 32-bit package, see http://www.slackware.com/~alien/slackbuilds/steamclient/ , and added some additional instructions in a README.Slackware file:

The Steam client is primarily targeting Ubuntu, so in order to make it work
on Slackware, the package ships with a slightly modified steam startup script.

You will also have to install several dependencies:
  - pulseaudio
  - speex
  - json-c
  - OpenAL
  - flashplayer-plugin
These are all available as SlackBuild scripts on http://slackbuilds.org,
while OpenAL and flashplayer-plugin packages can be found in my own repository
at http://slackware.com/~alien/slackbuilds/ too.

Note that the Steam client currently is 32-bit only. If you are running a
64-bit Slackware you must add multilib capability to it first.
Then, you need to add several more 'compat32' packages. In addition to
'compat32' versions of the aforementioned dependencies, you also need to
install 'compat32' packages for:
  - flac
  - libogg
  - libvorbis
  - oxygen-gtk2

Note that before building pulseaudio, its README instructs you to create
a "pulse" user and group:
  # groupadd -g 216 pulse
  # useradd -u 216 -g pulse -d /var/lib/pulse -m pulse
However, there is no need to actually _start_ the pulseaudio server. You can
prevent this by running:
  # chmod -x /etc/rc.d/rc.pulseaudio
The Steam client is dynamically linked against pulseaudio libraries, but my
modification to the steam startup script will actually force it to use
Slackware's ALSA for audio output. Pulseaudio will not be used.

In order to run the Steam client you will probably need a Nvidia or Ati card
with proprietary drivers. I would like to hear from people who are able to
start Steam and play a game using open source drivers.

I have added the required dependency packages (including those required for multilib) in a separate “deps” directory of that steamclient package. Note that my old hacks of creating a symlink to the “/sbin/pidof” binary and exporting several variables is no longer needed, the steam start-up script does all of that now.

Installing the steamclient package, will get you a “Steam” icon in your desktop menu. Alternatively you can type “steam” in a terminal to start the client.You will see it downloading updates first, and then it allows you to connect to your Steam account.

 

When you are connected to your Steam account you will see the Steam Store and a “Linux” menu which is exclusive to the Linux client. You can of course do anything (purchases, community chat etc) which you would also do in the Windows client or the web interface.

You can then check out your own virtual “Library” which will contain the games you have purchased or which you could add because they are free to play. The Linux Beta shows two games here, the “Team Fortress Beta” which is an online shooter and “World of Goo Demo”, both of which are free.

Note that I modified the steam startup script to use ALSA as audio output. The pulseaudio libraries are required because the Steam binaries link against them but PulseAudio is not used for sound. Also note that if your default ALSA soundcard is not “hw:0,0″ you may have to add one more variable. The AUDIODEV variable defines which audiodevice ALSA should use instead of “default”. You can set additional environment variables in a file” ~/.steam4slackware “. This is what I have in that file:

$ cat ~/.steam4slackware
export AUDIODEV=hw

This tells ALSA to use the first “hw” device available. The default value for AUDIODEV is “default”.

One more quirk was that I had to stop any program which was playing audio (like VLC) before starting the Steam client, or else the Steam games would not have sound…

Cheers, Eric

Comments

Comment from Mike Langdon (mlangdn)
Posted: December 16, 2012 at 17:18

Thanks Eric – works great! Except that I have not yet received a beta invite. I can wait, though.

Comment from Jen
Posted: December 16, 2012 at 18:02

Interesting. Not sure if I’ll use the Linux client, since I can’t use pulseaudio–it’s not recommended for real time/low-latency computer audio work. Plus all the games I own via Steam are Windows/WINE. I’m more inclined to go the route of Humble Bundle for Linux-native games. I’ll definitely toss more money Steam’s way, though. I like supporting people who support Linux or are Linux-friendly.

It’s a different world now than back in the late 90′s, early 2000′s. Back then Loki games seemed like the last hope of linux gaming. I’m glad it wasn’t. (That I remember Loki games makes me feel like an old fart.)

Pingback from Steam on Slackware – Page 9
Posted: December 16, 2012 at 22:35

[...] wrote an article about the steamclient package I created: http://alien.slackbook.org/blog/valv…ent-for-linux/ Perhaps that will help you on your way. [...]

Comment from Thomas Løcke
Posted: December 17, 2012 at 09:17

Thanks Eric.

I’m currently running the Steam beta on Ubuntu 12.04, but it’s not exactly my favorite distro, so when I get home I will install Slackware instead and give your packages a whirl.

And yea, playing TF2 natively on my Linux box is just plain amazing. Times sure have changed.

Valve = Awesome.

Comment from matusz
Posted: December 17, 2012 at 11:44

Yeah, it could be start of something really great. Great work Valve.

Comment from matusz
Posted: December 17, 2012 at 11:45

And Eric for package and modifications ofc.

Comment from Cris
Posted: December 17, 2012 at 19:04

First of all, congrats on your job Eric. Although I ain’t running slackware on my lappy anymore, I can assure you Steam here runs pretty well on my Intel HD 4000 GPU.

Comment from Thomas Løcke
Posted: December 18, 2012 at 14:31

I’ve got a minor issue, which I’m not sure is due to Slackware or the Steam application: I can’t create shortcuts to games on the desktop. Steam tells mere there already is a shortcut, despite the fact that there are none. The only desktop icon there is is for Steam itself.

Other than that all seems to work pretty well.

Pingback from Slackware Linux 14.0 – Instalando a versão beta do Steam for Linux « Caminhando Livre
Posted: December 20, 2012 at 23:42

[...] a página do anúncio da versão beta do Steam for Linux, específico para a Slackware Linux, na página do blog mantido por Eric ( em inglês ). Share this:CompartilharTwitterFacebookGostar [...]

Pingback from Alien Pastures » Multilib update for slackware-current
Posted: December 22, 2012 at 21:20

[...] Valve’s Steam client for Linux [...]

Comment from Alan Aversa
Posted: December 23, 2012 at 01:11

I get a “Fatal Error: Failed to load steamui.so”.

Comment from alienbob
Posted: December 23, 2012 at 02:21

Alan, that is a very sparse error report. Try to find out a little more. Check that you actually re-installed your proprietary Nvidia or Ati video driver after installing multilib packages for instance, because that is a much-occurring issue.

Eric

Comment from Me
Posted: December 26, 2012 at 04:54

Do i understand it right that if i got an slackware64-14.0 installation then i need to first install multilib and then the deps to make steam work?
The pulseaudio is the one thing that makes me wonder if i should install it or not.
How will the pulseaudio affect my slackware install?
Will pulseaudio affect my future compiling and will it be used by my slackware install?
Pulseaudio is something that i don’t want to use.

Pingback from Steam on Slackware – Page 12
Posted: January 2, 2013 at 00:44

[...] this. My system runs slackware-14.0 multilib and has an NVidia GTS 450. I followed Alien Bob's Steam Client on Slackware howto, got the 287 error segfault, opened this thread, read a few pages back until I got reminded [...]

Comment from buradd
Posted: January 7, 2013 at 00:17

hey Eric, please check out http://b.agilob.net/error-clgetplatformids-1001/ – might need to use google translate from polish to english but its about the same problem i’m having.. the problem is, the fix is for ubuntu obviously and i dont have a /etc/OpenCL/ – please any tips, thank you!

Comment from agilob
Posted: May 13, 2013 at 00:15

Hi,
I saw a few people coming to my blog, from here and I saw the post below, with the link to b.agilob.net to the post in Polish, so I translated it.
Solution in English to the problem is here:
http://b.agilob.net/eng-error-clgetplatformids-1001/
:)

Comment from Moseley
Posted: June 2, 2013 at 21:41

I am using Slackware64 with multilib/compat32. It is due to note that when using the Steam client, not only do you need to make sure you have the compat32 for the listed packages but apparently, as you will obviously use a 3D capable graphics card like on my box, I use an Nvidia GTX460 but using the nvidia-kernel and specifically the nvidia-driver slackbuild scripts, you need to edit your build script to enable compat32 as well, otherwise you will receive a glx render error, which will cause issues with performance.
On line 71 change from:
COMPAT32=${COMPAT32:-no}
to
COMPAT32=${COMPAT32:-yes}

I know it sounds ridiculous to be so specific but some users are still new to Slackware.
That’s all I wanted to add other than Thanks for this site, your scripts, packages and information. People like you are hard to come by, so people like me appreciate you.
Peace =)

Comment from Moseley
Posted: June 3, 2013 at 23:33

Using Slackware64 and Steam also requires the 32bit Adobe Flash Player plugin, so I just made and tested out a flashplayer-plugin-compat32 package. I have libflashplayer.so in both standard 32bit and 64bit lib directories. Firefox only shows one version of flash and the preview movies in the Steam store for games work great.
Peace =)

Comment from hu
Posted: September 27, 2013 at 15:06

hi i am linux fresh ,i do that follow your blog and ,when i run steam it show missing libc.so.6,could you tell me how to fix it ?thank you !

Comment from alienbob
Posted: September 27, 2013 at 15:09

Hi Hu

Can you please create a post on LQ: http://www.linuxquestions.org/questions/slackware-14/ ?

Your question is too vague, a lot of questions need to be asked to find the cause of your issue, and the LQ forum is better suited for troubleshooting.

Eric

Comment from oakstave
Posted: December 17, 2013 at 05:56

Thanks for the SlackBuild. I’ve been enjoying Steam on my Slackware 14.1!

The last time tried the Nvidia driver slackbuild for 14.1, the kernel failed to build for my GTS 450. So I decided to keep the Nouveau drivers and see what games will work

I have the nouveau.conf set with “EXAVsync” and “GLXVBlank” set to “true”, but I only did that to correct video tearing, I don’t know how it affects gaming.

Games that worked for me:
Gratuitous Space Battles
Teslagrad
Little Inferno
World of Goo

Games that crashed on launch:
Legend of Aethereus
Bastion
X3: Reunion
Sparkle 2 Evo

Obviously, the more graphic intense games seemed to fair poorly. All of these games run fine on my Mint 13 system with proprietary drivers.

I’m actually impressed. I think the Nouveau drivers have gotten much better.

Comment from alienbob
Posted: January 2, 2014 at 15:59

For people who visit this page – it was written a long time ago. The requirements to run Steam on Slackware are a lot lighter nowadays!

Most important: PulseAudio is no longer required!

All you need is a package for OpenAL (to play audio) and flashplayer-plugin (in order to watch the videos in the Steam Store).

If you are running 64-bit multilib you will also have to create and install “compat32″ versions of the 32-bit OpenAL and flashplayer-plugin packages.
That’s all.

Eric

Pingback from Alien Pastures » New multilib versions of glibc and gcc for slackware-current
Posted: May 9, 2014 at 23:22

[…] is needed if you want to use binary-only 32-bit software on 64-bit Slackware – think of Valve’s Steam Client, the WINE emulator, the Pipelight browser plugin, Citrix client […]

Pingback from Alien Pastures » Slackware-current – new multilib gcc compiler suite
Posted: June 3, 2014 at 22:46

[…] is needed if you want to use binary-only 32-bit software on 64-bit Slackware – think of Valve’s Steam Client, the WINE emulator, the Pipelight browser plugin, Citrix client […]

Comment from Taf
Posted: June 24, 2014 at 21:02

i have the mesa-8.0.4-i486-1.txz installed, i need install the mesa-8.0.4-i486-1alien.txz ?

wait

Comment from Taf
Posted: June 24, 2014 at 21:02

i have the mesa-8.0.4-i486-1.txz installed, i need install the mesa-8.0.4-i486-1alien.txz ?
http://www.slackware.com/~alien/slackbuilds/steamclient/deps/14.0/

wait

Comment from alienbob
Posted: June 24, 2014 at 22:19

Did you ever read the README.1st file in that same directory?

http://www.slackware.com/~alien/slackbuilds/steamclient/deps/14.0/README.1st

Eric

Comment from Google
Posted: July 10, 2014 at 13:12

WOW just what I was looking for. Came here by searching for hacks

Comment from Cristian
Posted: July 11, 2014 at 22:21

Hello,

Whenever I launch DoD under steam 1.0.0.48 and I either join an active game or start my own server, the game crashes and exits at random times, usually less than 5 minutes after it was launched. I was curious to see what error is causing this and I ran steam from a terminal. I get this error:

ALSA lib pcm.c:7339:(snd_pcm_recover) underrun occurred
ERROR: ld.so: object ‘/home/cristian/.local/share/Steam/ubuntu12_64/gameoverlayrenderer.so’ from LD_PRELOAD cannot be preloaded: ignored.
/home/cristian/.local/share/Steam/SteamApps/common/Half-Life/hl.sh: line 38: 3043 Segmentation fault ${DEBUGGER} “${GAMEROOT}”/${GAMEEXE} $@
Uploading dump (out-of-process) [proxy '']
/tmp/dumps/crash_20140712134025_1.dmp
Game removed: AppID 30 “Day of Defeat”, ProcID 3043
Finished uploading minidump (out-of-process): success = yes
response: CrashID=bp-c6ec21df-e49d-426c-93eb-31cc12140711
pid 3111 != 3110, skipping destruction (fork without exec?)

It seems that this is an ALSA related issue. My Slackware 14.0 32 bit version has ALSA 1.0.26.

Some suggestions were to increase buffer size or decrease sound quality during game but none of these options work. I also installed OpenAL package and the problem still persists.

Is this an ALSA bug or a Steam bug? Anyone who has a solution for fixing this problem?

I also tried to launch the game in Wine 1.6.2 and 1.7.21 but it crashes too with a different error:

err:seh:raise_exception Unhandled exception code c0000005 flags 0 addr 0x7ec9b233
fixme:ntdll:NtQuerySystemInformation (0×00000067,0x1208e290,0×00000008,(nil)) stub
fixme:ntdll:NtQuerySystemInformation (0×00000007,0x1208e228,0×00000018,(nil)) stub
fixme:ntdll:NtQuerySystemInformation (0x0000005a,0x1208e240,0×00000020,(nil)) stub
fixme:ntdll:NtQuerySystemInformation (0×00000032,0x1208e298,0×00000004,(nil)) stub

Comment from Moseley
Posted: July 15, 2014 at 16:38

Errors trying to launch steamclient. Agreement popped up, agreed to it, then died. running from cli, I get:

SteamUpdateUI: An X Error occurred
Serial number of failed request: 665
X Error of failed request: BadGC (invalid GC parameter)
xerror_handler: X failed, continuing
Major opcode of failed request: 56 (X_ChangeGC)
Resource id in failed request: 0x2c00002
Serial number of failed request: 666
xerror_handler: X failed, continuing
SteamUpdateUI: An X Error occurred
X Error of failed request: BadDrawable (invalid Pixmap or Window parameter)
Major opcode of failed request: 75 (X_PolyText16)
Resource id in failed request: 0x2c00002
Serial number of failed request: 667
xerror_handler: X failed, continuing
SteamUpdateUI: An X Error occurred
X Error of failed request: BadDrawable (invalid Pixmap or Window parameter)
Major opcode of failed request: 75 (X_PolyText16)
Resource id in failed request: 0x2c00002
Serial number of failed request: 668
xerror_handler: X failed, continuing
SteamUpdateUI: An X Error occurred

Write a comment