ValveSoftware / steam-for-linux

Issue tracking for the Steam for Linux beta client
4.23k stars 174 forks source link

Slackware64 #4799

Closed inukaze closed 7 years ago

inukaze commented 7 years ago

Your system information

Please describe your issue in as much detail as possible:

Trying to run steam (32 Bits) under Slackware64 (64 Bits), using "multilib"

Steps for reproducing this issue:

  1. Install Slackware64
  2. Install Multilib & Update Slackware64
  3. Install Steam, using the files of the sites "Slackbuilds.org"
  4. Change nouveau (blacklist nouveau), install the Legacy Drivers 304.131 of Nvidia, Generate the file /etc/X11/xorg (This is my content) :
Section "ServerLayout"
    Identifier     "Default Layout"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Module"
    Load           "ddc"  # ddc probing of monitor
    Load           "dbe"
    Load           "vbe"
    Load           "bitmap"
    Load           "dri"
    Load       "dri2"
    Load           "extmod"
    Load           "glx"
    Load           "bitmap" # bitmap-fonts
    Load           "int10"
    Load           "type1"
    Load           "freetype"
    Load           "record"
    Load           "synaptics"
EndSection

Section "ServerFlags"
    Option         "DontZap" "False"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Toshiba Matsushita Display Technology Co., Ltd"
    ModelName      "190LM00006"
    Option         "DPMS" "TRUE"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 6200 TurboCache(TM)"
    Option         "DPMS"               "True"
    Option         "NoLogo"             "True"
    Option         "AllowGLXWithComposite"      "True"
    Option         "TripleBuffer"           "True"
    Option         "RenderAccel"            "True"
    Option         "HWCursor"               "True"
    Option         "CursorShadow"           "True"
    Option         "NvAGP"              "3"
    Option         "NoPowerConnectorCheck"      "True"
    Option         "UseEdidFreqs"           "True"
    Option         "backingstore"           "True"
    Option         "DPI"                "75"
    Option     "MigrationHeuristic"         "greedy"

# Dejar que la GPU establezca su propio nivel de rendimiento basado en la temperatura
    Option         "RegistryDwords"         "PerfLevelSrc=0x3333"

# PowerMizer en su máximo nivel de rendimiento:
    Option     "RegistryDwords"         "PerfLevelSrc=0x2222"

# Not Used Options
#    Option         "AddARGBGLXVisuals"         "True"
#    Option         "DRI"               "True"
#    Option         "XAANoOffscreenPixmaps"     "True"
#
# Disabled - Overclocking - Can Damage Hardware :
#    Option         "Coolbits"              "1"

EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "AddARGBGLXVisuals"  "True"
    Option         "DPMS"
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "1024x768_60 +0+0; 800x600_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection

# Not Used Options
#    Option         "AddARGBVisuals"    "True"
#    Option         "nvidia-auto-select +0+0"

EndSection

Section "Extensions"
    Option         "DRI" "Enable"
    Option         "RandR" "Enable"
    Option         "RENDER" "Enable"
    Option         "Composite" "Enable"
EndSection

Section "InputClass"
    Identifier          "Keyboard Defaults"
    MatchIsKeyboard     "yes"
    Option              "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection
  1. Try to run Steam :
    
    $ steam
    Slackware 32-bit: Check the 'deps/<slackwareversion>' directory where you downloaded this package and install/upgrade the packages you find there.
    Slackware 64-bit multilib: Install/upgrade the packages in the 'deps/<slackwareversion>/multilib' subdirectory instead.

Running Steam on slackware 14.2 64-bit STEAM_RUNTIME is enabled automatically Installing breakpad exception handler for appid(steam)/version(1482202200) libGL error: No matching fbConfigs or visuals found libGL error: failed to load driver: swrast



and with nouveau, ever says "Segmentation Fault" and never show my library :(

If possible you can make a 64 Bits native binary, and offer an offical package for Slackware ?
kisak-valve commented 7 years ago

Hello @inukaze, when trying to use the nvidia driver, you are getting the message libGL error: failed to load driver: swrast. swrast is Mesa's slower software renderer, so this sounds like steam is dynamically linking against Mesa's libGL.so, not nvidia's variant. Are you sure the 32 bit nvidia driver was installed properly?

inukaze commented 7 years ago

Hello @kisak-valve : Hi there i explain step by step how install & use steam under my Slackware64 14.2 . in the First Time use :D (i solve it)

Explaniations

my GPU = Nvidia GeForce 6200 TurboCache(TM), 128MB, DDR, 64 Bit. PCIE: 16x

$ = User command

$ = Root Command

  1. Install Slackware64 14.2
  2. Install Multilib
$ su
#$ cd /usr/local/
#$ SLACKVER=14.2
#$ mkdir multilib
#$ cd multilib
#$ lftp -c "open http://bear.alienbase.nl/mirrors/people/alien/multilib/ ; mirror -c -e ${SLACKVER}"
#$ cd ${SLACKVER}
#$ upgradepkg --reinstall --install-new *.t?z
#$ upgradepkg --install-new slackware64-compat32/*-compat32/*.t?z

3 - slackpkg/+ :

#$ nano /etc/slackpkg/mirrors 

Search the line :

# USE MIRRORS.SLACKWARE.COM (DO NOT USE FTP - ONLY HTTP FINDS A NEARBY MIRROR)
# http://mirrors.slackware.com/slackware/slackware64-14.2/

Just uncomment (delete the # in the begin) the http line, or if your prefer, some address start with "ftp"

#$ slackpkg update

slackpkg+ : Download the most recent from the website -> https://sourceforge.net/projects/slackpkgplus/files/

install it #$ installpkg slackpkg+*.txz

update the slackpkg+ :

#$ slackpkg update gpg
#$ slackpkg update
#$ slackpkg upgrade-all

Compat32 : 1 ) Download the most recent file from site :

http://compat32pkg.sourceforge.net/downloads.html

2 ) Install the package :

$ su -c "installpkg compat32pkg-1.6.131213-noarch-6_SeB.tgz" root

3) Update compat32

$ su -c "compat32pkg --layer-32-config check-update" root
$ su -c "compat32pkg --layer-32-config update" root

If you are using nouveau : this dont work with steam client for me right now, ever produces a Segmentation Fault, when you try to bring it the client to front using the tray icon. for example, making second click and after first click on "Library" option.

First you must put nouveau driver in the blacklist of modules :

#$ echo 'blacklist nouveau
options nouveau modeset=0
' | tee /etc/modprobe.d/disable_nouveau.conf

You need the privative "nvidia" driver for Steam works. (but the nouveau on Slackware, works better than in anothers GNU/Linux Distributions, i had tested on : ArchLinux, Debian , Ubuntu , Fedora, Manjaro, Gentoo, Korora, VectorLinux, TinyCore, Zenwalk, Porteus, Solus OS, Salix OS, GNewSense, Trisquel, Trinity, etc on that and GNU/Linux distributions. the nouveau driver, just works on 2D

But on Slackware, works 2D and 3D : Slack_nouveau.png

If you have a Legacy GPU you need download some files: 1 -> https://www.slackbuilds.org/repository/14.2/system/nvidia-legacy304-kernel/ A) Download the "Source" you need 64 Bits or 32 Bits

If you dont know the architecture of your System use the command:

#$ uname -sm

if = x86_64 => 64 Bits if = i{3,4,5,6}86 => 32 Bits

B) Download the SlackBuild, and extract it

#$ tar xfvz nvidia-legacy304-kernel.tar.gz
#$ cd nvidia-legacy304-kernel

Copy the run file inside the folder "nvidia-legacy304-kernel"

Now "compile it"

#$ ./nvidia-legacy304-kernel.SlackBuild

After finish just install the output file, for example : #$ installpkg /tmp/nvidia-legacy304-kernel-304.131_4.4.38-x86_64-2_SBo.tgz

Now you have the kernel module, you need the Driver : Go to the site -> https://www.slackbuilds.org/repository/14.2/system/nvidia-legacy304-driver/

Download the SlackBuild, extract it, and enter in the folder nvidia-legacy304-driver

wget -c https://www.slackbuilds.org/slackbuilds/14.2/system/nvidia-legacy304-driver.tar.gz
tar xfvz nvidia-legacy304-driver.tar.gz
cd nvidia-legacy304-driver

download the "sources"

wget -c ftp://download.nvidia.com/XFree86/nvidia-installer/nvidia-installer-304.131.tar.bz2
wget -c ftp://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-304.131.tar.bz2
wget -c ftp://download.nvidia.com/XFree86/nvidia-xconfig/nvidia-xconfig-304.131.tar.bz2

Copy and paste (or make symbolic link) to the run file, you download before and now edit the SlackBuild file the "COMPAT32" section :

If you use the "64 Bit" run file you need edit the SlackBuild file first

#$ nano nvidia-legacy304-driver.SlackBuild

Inside the File Search :

# Set 32-bit compatibility flag default
    COMPAT32=${COMPAT32:-no}

I suggest comment that line

# Set 32-bit compatibility flag default
#    COMPAT32=${COMPAT32:-no}

and add below:

   COMPAT32="yes"

Control+O (Save) Control+X (Exit)

Now "compile it"

#$ ./nvidia-legacy304-driver.SlackBuild

Now "install it"

#$ installpkg /tmp/nvidia-legacy304-driver-304.131-x86_64-2_SBo.tgz

Now you need a "Xorg Configuration File" :

#$ echo '# Inukaze config for Nvidia-Cards
# Debian, put in /etc/X11/xorg.conf 
# Manjaro mwhd put in /etc/X11/mhwd.d/nvidia.conf

Section "ServerLayout"
    Identifier     "Default Layout"
    Screen      0  "Screen0" 0 0
    InputDevice    "Keyboard0" "CoreKeyboard"
    InputDevice    "Mouse0" "CorePointer"
    Option         "Xinerama" "0"
EndSection

Section "Module"
    Load           "ddc"  # ddc probing of monitor
    Load           "dbe"
    Load           "vbe"
    Load           "bitmap"
    Load           "dri"
    Load       "dri2"
    Load           "extmod"
    Load           "glx"
    Load           "bitmap" # bitmap-fonts
    Load           "int10"
    Load           "type1"
    Load           "freetype"
    Load           "record"
    Load           "synaptics"
EndSection

Section "ServerFlags"
    Option         "DontZap" "False"
    Option         "Xinerama" "0"
EndSection

Section "InputDevice"
    Identifier     "Keyboard0"
    Driver         "kbd"
EndSection

Section "InputDevice"
    Identifier     "Mouse0"
    Driver         "mouse"
    Option         "Protocol" "auto"
    Option         "Device" "/dev/psaux"
    Option         "Emulate3Buttons" "no"
    Option         "ZAxisMapping" "4 5"
EndSection

Section "Monitor"
    Identifier     "Monitor0"
    VendorName     "Toshiba Matsushita Display Technology Co., Ltd"
    ModelName      "190LM00006"
    Option         "DPMS" "TRUE"
EndSection

Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"
    VendorName     "NVIDIA Corporation"
    BoardName      "GeForce 6200 TurboCache(TM)"
    Option         "DPMS"               "True"
    Option         "NoLogo"             "True"
    Option         "AllowGLXWithComposite"      "True"
    Option         "TripleBuffer"           "True"
    Option         "RenderAccel"            "True"
    Option         "HWCursor"               "True"
    Option         "CursorShadow"           "True"
    Option         "NvAGP"              "3"
    Option         "NoPowerConnectorCheck"      "True"
    Option         "UseEdidFreqs"           "True"
    Option         "backingstore"           "True"
    Option         "DPI"                "87"
    Option     "MigrationHeuristic"         "greedy"

# Dejar que la GPU establezca su propio nivel de rendimiento basado en la temperatura
    Option         "RegistryDwords"         "PerfLevelSrc=0x3333"

# PowerMizer en su máximo nivel de rendimiento:
    Option     "RegistryDwords"         "PerfLevelSrc=0x2222"

# Not Used Options
#    Option         "AddARGBGLXVisuals"         "True"
#    Option         "DRI"               "True"
#    Option         "XAANoOffscreenPixmaps"     "True"
#
# Disabled - Overclocking - Can Damage Hardware :
#    Option         "Coolbits"              "1"

EndSection

Section "Screen"
    Identifier     "Screen0"
    Device         "Device0"
    Monitor        "Monitor0"
    DefaultDepth    24
    Option         "AddARGBGLXVisuals"  "True"
    Option         "DPMS"
    Option         "TwinView" "0"
    Option         "TwinViewXineramaInfoOrder" "CRT-0"
    Option         "Stereo" "0"
    Option         "nvidiaXineramaInfoOrder" "CRT-0"
    Option         "metamodes" "1024x768_60 +0+0; 800x600_60 +0+0"
    SubSection     "Display"
        Depth       24
    EndSubSection

# Not Used Options
#    Option         "AddARGBVisuals"    "True"
#    Option         "nvidia-auto-select +0+0"

EndSection

Section "Extensions"
    Option         "DRI" "Enable"
    Option         "RandR" "Enable"
    Option         "RENDER" "Enable"
    Option         "Composite" "Enable"
EndSection

Section "InputClass"
    Identifier          "Keyboard Defaults"
    MatchIsKeyboard     "yes"
    Option              "XkbOptions" "terminate:ctrl_alt_bksp"
EndSection' | tee /etc/X11/xorg.conf

Reboot your machine

Now download the "OpenAL" from SlackBuilds.org : https://www.slackbuilds.org/repository/14.2/libraries/OpenAL/

#$ wget -c https://www.slackbuilds.org/slackbuilds/14.2/libraries/OpenAL.tar.gz
#$ tar xfvz OpenAL.tar.gz
#$ cd OpenAL
#$ wget -c http://kcat.strangesoft.net/openal-releases/openal-soft-1.17.2.tar.bz2
#$ ./OpenAL.SlackBuild
#$ installpkg /tmp/OpenAL-1.17.2-x86_64-2_SBo.tgz

Now download the "Steam" from SlackBuilds.org : https://www.slackbuilds.org/repository/14.2/games/steam/

#$ wget -c https://www.slackbuilds.org/slackbuilds/14.2/games/steam.tar.gz
#$ tar xfvz steam.tar.gz
#$ cd steam
#$ wget - c http://repo.steampowered.com/steam/archive/precise/steam_1.0.0.52.tar.gz
#$ steam.SlackBuild
#$ installpkg /tmp/steam-1.0.0.52-x86_64-1_SBo.tgz

Ok here come a very important part, if you dont have Steam on you harddrive, just run steam.

If you run Steam and see and error with libc6.so

$ steam
Couldn't find dpkg, please update steamdeps for your distribution.

Running Steam on slackware 14.2 64-bit

STEAM_RUNTIME is enabled automatically

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

/home/inukaze/.local/share/Steam/steam.sh: línea 755: /home/inukaze/.local/share/Steam/ubuntu12_32/steam: No existe el fichero o el directorio

The Solution :

su -c "installpkg /usr/local/multilib/14.2/glibc-2.23_multilib-x86_64-1alien.txz" root

===============================================================================

If you try before use steam with nouveau, and see messages like :

$ steam
Couldn't find dpkg, please update steamdeps for your distribution.
Running Steam on slackware 14.2 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(0)

libGL error: unable to load driver: nouveau_dri.so
libGL error: driver pointer missing
libGL error: failed to load driver: nouveau
libGL error: unable to load driver: swrast_dri.so
libGL error: failed to load driver: swrast

you can try using the follow commands (try one by one) :

$ find ~/.steam/root/ \( -name "libgcc_s.so*" -o -name "libstdc++.so*" -o -name "libxcb.so*" \) -print -delete

$ find ~/.steam/root/ -name "libstdc++.so*" -print -delete

$ find ~/.steam/root/ -name "libxcb.so*" -print -delete

$ find ~/.steam/root/ -name "libgpg-error.so*" -print -delete

Ok if don't work with nouveau for you, like steam+nouveau with me, if you have downloaded games just move your folder "~/.local/share/Steam/steamapps" to another site for example, the root of your home

If you change the nouveau for nvidia, and try to launch steam and see the follow error :

$ steam
Slackware 32-bit: Check the 'deps/<slackwareversion>' directory where you downloaded this package and install/upgrade the packages you find there.
Slackware 64-bit multilib: Install/upgrade the packages in the 'deps/<slackwareversion>/multilib' subdirectory instead.

Running Steam on slackware 14.2 64-bit
STEAM_RUNTIME is enabled automatically
Installing breakpad exception handler for appid(steam)/version(1482202200)
libGL error: No matching fbConfigs or visuals found
libGL error: failed to load driver: swrast

First reinstall nvidia-driver package. if you reinstall and try run steam client again, and see the same error. just purge the steam folders :

$ rm -rf ~/.steam/
$ rm -rf $HOME/.local/share/Steam

and finally run again steam, right now, should be work without problems :D SteamDeponia.png

After you see Steam working, you can move your "steamapps" folder to the site you take it :D for you had you games again :D

kisak-valve commented 7 years ago

@inukaze, it's good to hear you got steam working on Slackware, and this issue report will stick around for posterity, but I'm going to close this issue report as there does not appear to be an actionable issue for a Valve dev to address.

The only issue I see here is that Slackware does not have a distro-provided steam package. The steam runtime compatibility issues you are seeing with nouveau is being tracked at #4768.

danielmotaleite commented 7 years ago

Actually there is a unofficial steam package for slackware, located in http://www.slackware.com/~alien/slackbuilds/steamclient/

After installing, steam will fetch it own updated and get to the latest version. Of course, Slackbuilds.org will also work, they are almost doing the same thing

inukaze commented 7 years ago

Thanks, but I solved it in the next day I asked.

Well I prefer steam be based on Slackware 11.0 for make it more compatible and with less requirements with any gnu/Linux distribution but that is just a dream like valve fix the reqs on a 3k more games with wrongs reqs

El 22/5/2017 13:59, "Daniel Mota Leite" notifications@github.com escribió:

Actually there is a unofficial steam package for slackware, located in http://www.slackware.com/~alien/slackbuilds/steamclient/

After installing, steam will fetch it own updated and get to the latest version. Of course, Slackbuilds.org will also work, they are almost doing the same thing

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/ValveSoftware/steam-for-linux/issues/4799#issuecomment-303174646, or mute the thread https://github.com/notifications/unsubscribe-auth/ABki5OLSCMXkIqUx7VdN1ZoUK8yssG57ks5r8czmgaJpZM4Ld_9Q .