steam-for-linux icon indicating copy to clipboard operation
steam-for-linux copied to clipboard

can't run on ARM architecture systems

Open nebrassy opened this issue 9 years ago • 68 comments

after installing steam using gdebi, I open it and it says it needs additional packages, then it gives this error:

" Steam needs to install these additional packages: libgl1-mesa-dri:i386, libgl1-mesa-glx:i386, libc6:i386 ................................. Reading package lists... Done Building dependency tree Reading state information... Done E: Unable to locate package libgl1-mesa-dri E: Unable to locate package libgl1-mesa-glx E: Unable to locate package libc6 Press return to continue: "

then this error:

" You are missing the following 32-bit libraries, and Steam may not run: libc.so.6 "

all libraries mentioned are available for ARM systems, please help and reply soon.

nebrassy avatar Oct 12 '15 20:10 nebrassy

Steam is x86 only, what are you trying to run on ARM?

gdrewb-valve avatar Oct 12 '15 22:10 gdrewb-valve

that's the problem, Valve should make an ARM version of Steam, not necessarily games, maybe just streaming and using the community.

nebrassy avatar Oct 12 '15 22:10 nebrassy

Changing to a feature request.

gdrewb-valve avatar Oct 12 '15 22:10 gdrewb-valve

I had suggested an in-home streaming client that's ARM compatible in order to play the games without having to say "Steam for Linux (x86+ARM)" and hoping that devs port to Steam for ARM (quite some time ago). Not sure where it went; got buried.

As for messenger/community, that's already built into the website. Streaming is the only part that isn't.

MrSchism avatar Oct 13 '15 01:10 MrSchism

You'll soon be able to buy a Steam Link, which is a $50 streaming device. :-)

gdrewb-valve avatar Oct 13 '15 01:10 gdrewb-valve

Exactly. That's probably why my suggestion was closed all that time ago.

MrSchism avatar Oct 13 '15 02:10 MrSchism

well, since valve took it up to porting all their games from windows to linux, I guess they can port them to ARM too, I mean, Imagine installing linux on your android phone, installing steam on it and play valve games, it would be amazing, I already tried that when I had an x86 architecture phone.

nebrassy avatar Oct 13 '15 08:10 nebrassy

As a person who ports software and isn't afraid of ARM, I'd happily port... but ARM comes with it's own sets of standards that are NOT user friendly. For Valve (and developers), one would have to really just focus on one ARM EABI instead of trying support Vector Floating Point, Soft Float, and Hard Float (which is the de-facto current standard). This isn't as simple as making a .deb and a .rpm. We're talking something that can affect an insane amount of change.

So you'd have to have Steam list WIN, MAC, SteamOS(x86_64, ARM[hf, 64]). That's not going to work.

Honestly, the best solution would be:

  • Making the mobile Steam app available to non-Android systems (just making a .tar.gz with the appropriate ELFs should work)
  • Making a Streaming app or perhaps a plugin (even paid to mitigate competition against the Steam Links)

That would give full functionality without porting the games (which is up to the individual developer). On an aside, someone actually somewhat ported the old source engine to ARM, but it performed sub-optimally. There's a library software being developed to unify shops and libraries for both DRM- (Steam, et al) and DRM-Free-titles. It's open source and could potentially work on ARM (but it's not even in Alpha yet). That won't work for allowing access to Steam gaming servers or achievements, but it will give you access to a library.

MrSchism avatar Oct 14 '15 21:10 MrSchism

I know that games on ARM will never work as smotth as if it were on x86 or x64, but maybe just old games like counter-strike , half-life and team fortress classic would work pretty good if ported to ARM, ofcourse they will need to port steam first.

nebrassy avatar Oct 15 '15 13:10 nebrassy

Actually, Steam doesn't need to be ported... And they don't run very well.

You can find one guy's attempt at porting the 2013 sdk here: https://github.com/aunali1/source-sdk-2013-arm

For older engines, Google around. It's not an ideal situation.

MrSchism avatar Oct 19 '15 06:10 MrSchism

I'm a big fan of the steam client on arm idea. Been holding my eyes open for that feature since the first steamos announcement. Having a raspberry pi flying around and converting it into a Steam Link would be nice.

Is there any official word out there why this has not happened yet?

Is it for business reasons? Not cutting into the own Steam Link flesh? Or are there no concerns on that side but on the development front for the reasons listed by MrSchim? Or is it even being considered but not yet publicly discussed?

Foxhunt avatar Nov 08 '15 11:11 Foxhunt

So is it not physically possible to install the steam client on a Raspberry Pi until/unless Steam release a different version?

I really want to set up streaming from my PC to my pi, it's simple with nVidia but seems impossible with an ATI card :(

lellis2k avatar Feb 09 '16 15:02 lellis2k

It seems that with Vulkan and GNU/Linux ARM devices it's reasonable to give the ARM option to the game developers. Browsing community/store on a tablet (since the multiple login is working for that, as far as I know) would be nice too.

There is no big difference for a well-written cross-platform code whether it's GNU/Linux ARM or x86. And Vulkan fills the GPU gap.

VelorumS avatar Mar 28 '16 14:03 VelorumS

I use the nvidia/moonlight solution right now which does work very well, though it has a tendency of getting broken because nvidia keep changing the protocols in Geforce Experience, and force updates. I'd really like to move to an AMD card some time, as i've grown tired of nVidia's BS, but sadly until a viable software solution that is competitive and hardware-agnostic, i'm really forced to use nVidia and duck the updates.

On a side note, a steam link is a cool thing, but i just spend less than that on a Pi3 which runs Emulation station/retropie. I'm really not interested in yet another micro-box to take up the only remaining HDMI port on my TV that can only be used for steam.

ronlaws86 avatar Apr 02 '16 09:04 ronlaws86

i think it's already ported (steam link) but valve need to sell steam link devices. Raspberry pi cheaper than steam link and multi-functional. If steam release this thing nobody buy steam link devices.

NullMember avatar Jun 17 '16 14:06 NullMember

There is a Steamlink Dev kit that you can download, and looking at the spec of the Steamlink it actually runs the the same GCC version as the rasbian distribution for the Pi2/3 the processor arch is also the same A7 instruction set as the Pi2 (including neon support), though it is clocked in at 1000Mhz, the Pi2 can be overclocked to this speed through the config utility (turbo), the Pi3 is 1.1Ghz at stock, and while it is an Arm A8 (64bit) it is binary compatible with A7, so in theory it should be easy to run at least the steam link binaries on a raspberry pi with little effort. not sure if the SDK includes the binaries for the steam link software itself however. but in theory it is possible.

ronlaws86 avatar Jun 17 '16 14:06 ronlaws86

Try using multi arch to install those packages

PeterHindes avatar Jun 20 '16 09:06 PeterHindes

The NextThingCo PocketC.H.I.P. is a $49 dollar open and hackable Debian Jessie handheld computer running on a 1GHz R8 ARM processor. I think it would be an excellent platform to port to.

Here's the processor: https://en.wikipedia.org/wiki/ARM_Cortex-A8

Here's all their source: https://github.com/NextThingCo

mik3caprio avatar Jul 02 '16 16:07 mik3caprio

@NullMember , no, the Link runs a custom software stack, not the Steam Client.

mdeguzis avatar Jul 09 '16 20:07 mdeguzis

@ProfessorKaos64 What the steamlink runs I think is the core feature most people are after from a ported version to pi, not to run the full desktop version of steam and games locally but to have a way of streaming them from a more hefty X86 based system running the full desktop steam. In most cases asking for games to be ported to the pi is not practical, however a basic front end streaming client (That isn't Moonlight) is well within realms of practicality, the steam-link is essentially what people are after, but on a Pi instead. (or at least a way to run its software stack from rasbian)

ronlaws86 avatar Jul 09 '16 22:07 ronlaws86

@ronlaws86 this is what I'm looking forward for. Hope some one spends his time porting the steam-link-sdk to a rpi. Don't have time to do it my self at the moment.

Not sure if all the necessary components are in the sdk to actually do it. But we'll see.

Edit:

Seems like this wont happen. link

Foxhunt avatar Jul 09 '16 23:07 Foxhunt

👍

Open up the steam link, @Valve

MichaelMackus avatar Nov 12 '16 03:11 MichaelMackus

Hello Valve! I suggest to make Steam for ARM, with Raspberry Pi as the main platform. I suggest to release it as unofficial version - as a project supported by one developer of Linux- and SteamOS-version of Steam.

Raspberry Pi is a single board computer with the size of palm and costs $25. It's graphics acceletator is weak and it can be compared with a mobile device GPU's. In fact, it's used in mobile devices. Judging by the fact that smartphones and tablet PC's has many games, this GPU has a right to exist. I see RPi as the most popular ARM computer on desktops.

INTRODUCTION

Raspberry Pi developers are making efforts to promote their product. Recently they're perfected the graphical shell by the desktop theme. Now a frumpy LXDE interface become beautiful, while consuming few resources which can be compared with Windows 98.

raspberry-pi-2-angle-100569133-orig

Also developers have a focus on a schools and on equipment by RPi's instead of PC's: in a "Programming" section in the Main menu of Raspbian OS you can find much of programming languages, designed for learn programming. There is a GPIO connector on the device, you can connect a robot using that and manage him using Python, or something else.

51lupvp0eel sy300

Some time ago in a Chromium browser included in Raspbian was appear hardware decoding of FullHD-video. Also was appear a Flash Player taken from ChromeOS.

herksf95lcd2kbmtivw9

I think that's a good idea to help this platform presenting them games.

HOW AM I SEE IT

Steam client built for two processor architectures: armv7hf and armv8hf 64-bit. No Steam Runtime cause by the hard requirement: build platform is Raspbian 1.0, not 2.0 and not any other distribution, otherwise it will not be taken in Steam library. Steam Runtime has a right to exist as a 20 MiB, not 1 GiB. It can include only SDL and OpenAL.

Such Steam client can works not only on Raspberry Pi, but on ather armv7hf devices, like Orange Pi and NVIDIA Jetson TK1. The only requirement is GNU/Linux with X11, not Android (like Toshiba AC 100) or ChromeOS.

OpenGL? Once I met a problem when install Quake3 from Raspbian repository (Raspbian is a Debian repo plus small additional repo). It's using OpenGL, however Raspberry Pi hasn't support hardware acceleration for it, having only OpenGL ES support. I had to visit an official Github repository of Raspberry Pi, when download Quake3 patched for OpenGL ES support.

So I suggest to make compulsory to use OpenGL ES in games, but OpenGL can be an option (for devices like Jetson TK1). If the game uses only OpenGL (not ES), it will not be taken in Steam library, though it was build for armv7hf.

Next, what API is necessary for hardware decoding video in games? OpenMAX, because it is in Raspberry Pi.

And the final: GLX or EGL? EGL.

WHAT GAMES WILL BE IN THE START OF STEAM FOR ARM?

No one. Source engine is using Direct3D, and OpenGL is obtaining by the translator. Cause by this, a weak GPU can't cope the load to show big FPS. Source 2 is support native OpenGL, but the games are too modern for weak GPU. There are only first Valve games: Half Life, Counter Strike and Team Fortress, that uses OpenGL not Direct3D.

I suggest to take in Steam library only those games, that are present in a Windows, macOS or Linux library. Otherwise there will be thousand games were ported from mobile devices, as it was in OUYA game console.

TEHINCAL DETAILS FOR DEVELOPERS

When Steam for Linux just started to develop, there was Ubuntu 12.04 base. No Steam Runtime in planes: it was planned that every game developer will compile it exactly in Ubuntu 12.04. If the game needs nonstandard dependency (like a SpaceChem game) Steam shows a window "You need to install Mono package to play this game. Press OK and type an administrator password to install it".

Now we knows, the plan was changed when Ubuntu 12.10 released. Was revealed that sometimes system libraries drops ABI. A shining example is libICU. In an Ubuntu practice old ABI libraries are exposed to delete. Thus, Ubuntu distribution does not provide full backwards compatibility with it's old versions. From the Linux distributions I can stand out RHEL as a one of the few that provides backwards compatibility (if follow the conditions described in the LSB document).

This is the reason why the Steam Runtime was created. Now you can compile your game in Ubuntu 12.04 then run in any other Linux distribution, starting from Ubuntu 15.10 ending on Slackware. Some developers have gone further, and did not even bother to prepare a build-farm based on Ubuntu 12.04, and compile software directly in the system, which is installed on their computer! Steam Runtime is allowing them to relax, cause it has a collection of 1 GiB of system libraries for all occasions.

I suggest to prevent this problem in the Steam for ARM. The support of the big Steam Runtime costs a big time and money. If do from scratch, it's enough to make build farm based on Raspbian 1.0 as a hard requirement. If the command "strings appname | grep LIB" shows that the game need GLIBC > 2.14 then it will not be taken on Steam library.

What about a library dependencies? A lot of of games depends of libGLES, SDL and OpenAL. But there are exceptions. I suggest to put all libraries in the game distributions, except of GNU stack[1], X11 stack, GTK, Cairo, Freetype, libasound2[2] and OpenSSL 1.0. There is the LSB 5.0[1] standard that originally written for RHEL but Debian is also complies it.

What if the developer needs fresh GCC, not the version from Raspbian 1.0? For this case Valve needs to prepare a packages with them. I suggest to look on Devtoolset[4]. The maintainers of the GCC were somewise made the magical build. In the CentOS build farm, I've build with GCC 4.8, but the linking with the C++ Runtime (libstdc++.so.6) carried with an old one! And it works!

Also a game developer need to write in the system requirements the minimal version of Raspberry Pi to run.

[1] http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Core-generic/LSB-Core-generic/requirements.html#RLIBRARIES [2] http://refspecs.linuxfoundation.org/LSB_5.0.0/LSB-Desktop-generic/LSB-Desktop-generic/requirements.html#RLIBRARIES [3]: http://refspecs.linuxfoundation.org/lsb.shtml

Zenitur avatar Dec 22 '16 13:12 Zenitur

@nebrassy "Imagine installing linux on your android phone, installing steam on it and play valve games, it would be amazing"

Well, you'll be able to run Steam and old games on Android soon now that Wine is being ported to Android! Give it a few years, it's currently early development.

aaronfranke avatar Jun 28 '17 06:06 aaronfranke

Wine is being ported

that is not how it works, it still requires x86

nicman23 avatar Jul 02 '17 14:07 nicman23

I'm surprised that Steam don't bother supporting ARM devices till this far, it's definitely worth the effort, because by end of the day, ARM Linux might get better drivers compatibility (graphic, sound especially) ... which turn out to be more affordable and smother gaming experience. Not to mention the possibility of platform options we have when we supporting ARM.

avatar21 avatar Sep 09 '17 01:09 avatar21

I'd love for them to just release the live-streaming (guest) part for ARM. They already have it working for the Steam link.

Maybe even just a way to add games to the ARM library so you could play some (i.e. Nethack or DOOM) that compile on ARM.

MichaelMackus avatar Sep 12 '17 16:09 MichaelMackus

Can't you compile the runtime from their GitHub page?

On Tue, Sep 12, 2017, 10:22 AM MichaelMackus [email protected] wrote:

I'd love for them to just release the live-streaming (guest) part for ARM. They already have it working for the Steam link.

— You are receiving this because you commented. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/steam-for-linux/issues/4061#issuecomment-328905677, or mute the thread https://github.com/notifications/unsubscribe-auth/ATEXd3P-7U_2udO8CaOzvimk0jcQ7pNcks5shq-rgaJpZM4GNad4 .

PeterHindes avatar Sep 13 '17 12:09 PeterHindes

I guess they have this, so perhaps it is possible to compile natively for another ARM device. I believe they are using a modified Linux kernel, though.

MichaelMackus avatar Sep 13 '17 17:09 MichaelMackus

They've only published an SDK for making software that runs on top of the Steam Link, not anything for the Steam Link's OS itself.

aaronfranke avatar Sep 13 '17 17:09 aaronfranke