LinuxQuestions.org
Review your favorite Linux distribution.
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 01-23-2019, 03:33 PM   #1
trite
Member
 
Registered: Feb 2016
Location: Sweden
Distribution: Slackware64-current
Posts: 50

Rep: Reputation: 29
Making your Slackware64-current ready for Steam and DXVK Wine gaming.


Ok, so I made a thread on the EVE-online forum (https://forums-archive.eveonline.com/message/6736133/) about making it work on Slackware a while back. Then with the addition of DXVK and Steam's Proton things have become pretty interesting for gaming on linux.

(At the time I wrote this, it was tried and tested. But now my system has been living for some time, updated and some unorthodox solutions applied to get where it is now (previous forum posts). So if you follow this from a fresh install I'm not sure it will work flawlessly.)

So I though why not make a somewhat updates version of this with some new comments in LQ Slackware forums? d:

This is assuming you come directly from a windows install (since all linux users already knows how to use dd?).

Preparing an USB installation media
Assuming you come from Windows 10. (My USB was a mess and I had to wipe partition table before making the USB. If your case is the same, then
Open CMD as administrator and run the following commands.
Code:
$diskpart
$list disk
$select disk
$clean

Download the Slackware iso from a mirror of your choice (Slackware Mirrors).
I used UnetBootin for creating the USB because it’s simple (UnetBootin).
Select ”Diskimage, ISO” and point to Slackware iso.
Run it and wait for it to complete.


Installing Slackware
Boot up the USB (how you do this depends on what hardware you are using, sometimes it will mean pressing F9,F10,F11,F12-or something and then choosing your boot-device. Probably stated at boot by your BIOS, if you are lucky.).

Use fdisk (this is what I prefer and is the most likely to be installed at the majority of systems out there?) to format your disks, I used fdisk and I use UEFI (using UEFI makes you more or less to go for GRUB as bootloader since ELILO is wonky?). My partition table looks something like:

GPT Partition table
/dev/sda1 1G UEFI type (1G is too big for boot but whatever)
/dev/sda2 4G Swap type (Recommended is double your RAM? My swap is almost never used since I have an OK amount of RAM, also swapfile on SSD-disk is /meh but whatever )
/dev/sda3 100%FREE Linux filesystem type

GPT Partition table
/dev/sdb1 100%FREE Linux filesystem type


Make filesystems:
format the 1:st partition of your hdd to fat32 (the boot-partitions)
Code:
$mkfs.fat -F32 /dev/sda1
$mkswap /dev/sda2
format the 3:rd partition of your hdd to ext4 (root)
Code:
$mkfs.ext4 /dev/sda3
format the 1:st partition of your hdd to ext4 (home)
Code:
$mkfs.ext4 /dev/sdb1
Run ”setup”, follow on-screen instructions from ncurses wizard. Install from USB if you dont want to wait a good while. You will need to update your system some day anyway and why not do it now?

When it prompts you to reboot, choose to return into terminal and install GRUB. For me ELILO was funky and pretty much never works. If you got the same problem and dont mind running GRUB, go:


Code:
$grub-install /dev/sda
(you can check kernel version by "ls /usr/src" and check for "linux-x.x.x" or if you are using 14.2 its probably "4.4.14")
Code:
$mkinitrd -c -k <kernel-version> -m ext4
$grub-mkconfig -o /boot/grub/grub.cfg
(the -m here dictates what modules you need to include in the mkinitrd-image which loads at boot [after BIOS and before kernel I think?], so if you for example have an M2-disk in your system you may want to include some stuff here)

Reboot.

OK so now you hopefully have a Slackware system booted and you are in whatever desktop you chose in the installer.
If you for some reason cannot get a picture on your screen, try SSH:ing to your machine and continue updating your system.
SSH:ing to your machine assumes you either have root SSH-access enabled, or made your own user and pass in terminal after install before reboot. (useradd <user>, passwd <user>. assuming if you want root you can "su -" and then write root password. If you want sudo, you may want to edit /etc/sudoers to include your user.)

Updating your system
Code:
$slackpkg update gpg
$slackpkg update
$slackpkg install-new
$slackpkg upgrade-all
Whenever it asks you to replace configs or not, generally if you have made custom changes then choose "K" to keep the files and consider .new files later. But since this should be your new system, just choose "O" as in overwrite.

I use "clean-system" with care, especially in regards to what is in your "/etc/slackpkg/blacklist" (since it removes all the packages that is not ignored in that list, that may screw with your currently installed packages, but that doesnt matter for a new system).
Code:
$clean-system
You need to remake grub.conf and new initrd for each new kernel, so keep check when you upgrade your system.
Code:
$mkinitrd -c -k <kernel-version> -m ext4
$grub-mkconfig -o /boot/grub/grub.cfg
Reboot.

Installing multilib
(for 32-bit support)
Follow alienbob’s instruction on installing multilib (Alien Multilib).
Replace 14.2 with ”current”.

A tip here would be to use "slackpkg+" and then just "slackpkg upgrade multilib" and it will update everything for you.


Code:
$lftp -c 'open http://slackware.com/~alien/multilib/ ; mirror -c -e <"current" or "14.2">'
$cd "14.2" or "current"
$upgradepkg --reinstall --install-new *.t?z
$upgradepkg --install-new slackware64-compat32/*-compat32/*.t?z
Reboot. (32-bit replaces gcc and other packages which requires reboot.)


This is for compiling custom kernel, I dont use this anymore because I'm lazy hehe. But If you feel adventureous enough to compile your own kernel with necessary modules I'll leave it here:
Compiling the latest stable kernel (optional?)
Download latest stable from kernel.org (x.x.x = kernel version).
Run the following commands:
Code:
$tar xvf linux-x.x.x.tar.xz
$cd linux-x.x.x
$zcat /proc/config.gz > .config
$make oldconfig
#(I just chose DEFAULT on everything here, but if you feel like you have the time and knowledge to customize it feel free to do so)
$make bzImage modules
$make modules_install
$cp arch/x86_64/boot/bzImage /boot/vmlinuz-custom-x.x.x
$cp System.map /boot/System.map-custom-x.x.x
$cp .config /boot/config-custom-x.x.x
$cd /boot
$rm System.map
$ln -s System.map-custom-x.x.x System.map
Reboot.

Now I have NVIDIA so unfortunately I cannot write guidelines for AMD, but here goes:
Download NVIDIA proprietary drivers
Go to nvidia.com and download the Linux 64-bit drivers for your graphic card.
Code:
$vi /etc/inittab
edit your default rule to "3" instead of "4 (what I had)" which is without Xorg (to be able to install NVIDIA drivers).
rules look like this:
"id:4:initdefault:"
Reboot.


Install NVIDIA proprietary drivers

Code:
$chmod +x NVIDIA*.run
$./NVIDIA*.run
Choose ”yes” when it asks about blacklistin nouveau. (You could write your own but just reboot if you want #SLACK!, and run it again)

Code:
$./NVIDIA*.run
When it asks about installing 32-bit libraries, choose ”yes”.

Reboot.


If everything is going as planned, you should have a system either 14.2 or current updates and with the latest NVIDIA-drivers installed.

I would install "sbopkg" by now and install "Lutris" if you like gaming.
*NOTE* if you dont have the "Enable Esync"-option in "Runner Options"-tab of "Properties" in your game. You probably need to install/compile a more recent version of Lutris.
If you really need to, just replacing the link to the tarfile in sbopkg file description and md5sum may be enough
Probably you need to change some directory and "cd"-names aswell to install a more recent version.
I have come to notice that more recent Beta-versions of Lutris require Gnome-Desktop-libraries and such cause of new Ubuntu 18.x runtimes?

Installing sbopkg
Sbopkg
Download pre-built binary (yes run pre-built binary at your own risk like you run every other pre-built binary nowadays) of sbopkg.
Code:
$installpkg sbopkg*.tgz
$sbopkg
choose "C" here to create a directory for sbppkg data
Then choose "Sync" and press "Enter".
After that you can choose "Search" and type in a package that you want to install/compile.
Notice that you can choose "README" and see what dependancies you need to install first to compile the program that you want.
Meaning that you will have to search for each of the packages listed in "REQUIRES" to install what oyu want.
This is what package-managers are doing for you in other distro's.

Note here that for -current and since Lutris have remade their GUI with some GNOME libraries, there seem to be some trouble with dependencies as GnomeDesktop and Webkit2. Please see my other thread for a workaround:
https://www.linuxquestions.org/quest...-a-4175647567/

Or you can install a version under 5.x and it will work just fine.


When you got Lutris working.


Now we will try to configure and enable DXVK and Wine for performance.
There is something called "Esync" for linux gaming that you pretty much want to run smooth, because that means you can run some nice Windows-games on your linux-machine.
For Esync to perform good, you have to increase your ulimits. Which is how many files (descriptors) a process can have open at a time.

IMO, setting this greatly increases performance for Wine-gaming (games which benefits from Esync).
How to: Esync

So to do this I did the following:
edit /etc/profile
Code:
$vi /etc/profile
add:

Code:
#esync ulimit
ulimit -c 1048576
ulimit -Hn 1048576
ulimit -Sn 1048576
then edit /etc/initscript

Code:
# Set umask to safe level, and enable core dumps.
umask 022
ulimit -c 1048576
ulimit -Sn 1048576
ulimit -Hn 1048576
PATH=/bin:/sbin:/usr/bin:/usr/sbin
export PATH

# Execute the program.
<user> soft nofile 1048576
<user> hard nofile 1048576
You should reboot and check ulimits with:
Code:
$ulimit -Hn
$ulimit -n
And if it's correctly setup it should say "1048576" as your user.

DXVK
This is worth checking out: How to: DXVK
TBH I dont know if it makes any difference, but just in case. Build "vulkansdk" with sbopkg?
In Lutris under Properties of one of your games, there is a tab called "Runner options". Go to that tab and make sure "Enable DXVK" is checked.
For an extra bonus, go to DXVK GITHUB and write down the latest version in "DXVK version"-input field (the lutris application will automagically download the latest DXVK and run it [wiiiee]).


Last notes
Wine PBA should be enabled by default on wine 3.2-something+ (?, dont remember) releases.
But for every non-noticable performance-boost (I did this and it feels smoother [BattlefieldV] but I havent actually measured it, depends on what game you are running) you could do the following in your Wine-prefix environmental variabels specify the following:

Code:
PBA_ENABLE=1
__PBA_CB_HEAP 256 #(this value is double the standard)
__PBA_GEO_HEAP 1024 #(this value is double the standard)
__GL_THREADED_OPTIMIZATION 1
some of these settings does or does not have impact on vulkan/DXVK-games.





Congratulations on reading my "TL;DR"!
Sorry if it's a bit messy. Maybe someone can re-write this into a perfect guide for newcomers that like gaming ?

Last edited by trite; 02-04-2019 at 06:24 AM.
 
Old 01-25-2019, 02:12 AM   #2
rob.rice
Senior Member
 
Registered: Apr 2004
Distribution: slack what ever
Posts: 1,073

Rep: Reputation: 202Reputation: 202Reputation: 202
I could not get the nvida driver to install until I did a reboot to run levle 3 and ran the install script from the CLI
 
Old 01-25-2019, 02:34 AM   #3
Alien Bob
Slackware Contributor
 
Registered: Sep 2005
Location: Eindhoven, The Netherlands
Distribution: Slackware
Posts: 7,546

Rep: Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923
Quote:
Originally Posted by rob.rice View Post
I could not get the nvida driver to install until I did a reboot to run levle 3 and ran the install script from the CLI
That happens when you do not read the documentation...

Quote:
Code:
$vi /etc/inittab
edit your default rule to "3" instead of "4 (default)" which is without Xorg (to be able to install NVIDIA drivers).
rules look like this:
"id:4:initdefault:"
Reboot.
By the way, trite, runlevel 4 is not the default in Slackware... it is 3.
 
Old 01-25-2019, 03:57 AM   #4
FlinchX
Member
 
Registered: Nov 2017
Distribution: Slackware Linux
Posts: 328

Rep: Reputation: Disabled
Quote:
Originally Posted by trite View Post

Installing multilib
(for 32-bit support)

Follow alienbob’s instruction on installing multilib (Alien Multilib).
Ahh, another thread where I can whine about my itch I wish so much multilib would have some official recipe for installing it in an isolated environment like a chroot (some people on this forum have also suggested LXC containers as alternative, but I'm still an ignoramus about this) to avoid it getting installed on top of the main system and keeping the 64bit Slackware clean.
 
Old 01-25-2019, 04:49 AM   #5
Alien Bob
Slackware Contributor
 
Registered: Sep 2005
Location: Eindhoven, The Netherlands
Distribution: Slackware
Posts: 7,546

Rep: Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923
Quote:
Originally Posted by FlinchX View Post
Ahh, another thread where I can whine about my itch I wish so much multilib would have some official recipe for installing it in an isolated environment like a chroot (some people on this forum have also suggested LXC containers as alternative, but I'm still an ignoramus about this) to avoid it getting installed on top of the main system and keeping the 64bit Slackware clean.
Multilib in a chroot? Why?
If you want a 32bit environment without "polluting" your 64bit Slackware installation, you can install a complete 32bit Slackware in a chroot. Doing so is quite trivial. You won't need anything from my multilib repository.
 
Old 01-25-2019, 05:50 AM   #6
FlinchX
Member
 
Registered: Nov 2017
Distribution: Slackware Linux
Posts: 328

Rep: Reputation: Disabled
Quote:
Originally Posted by Alien Bob View Post
Multilib in a chroot? Why?
If you want a 32bit environment without "polluting" your 64bit Slackware installation, you can install a complete 32bit Slackware in a chroot. Doing so is quite trivial. You won't need anything from my multilib repository.
In context of wine, I believe the scenarios can get more complex than that. I might be wrong, since I did not dig very deeply, but I believe that Blizzard's battle.net app is 32 bit, while Starcraft 2, which is one of the games that installs through it, has 64 bit binaries too. So on a complete chrooted 32bit system it might be possible to run battle.net, but not Starcraft, while on a 64bit system without multilib battle.net just won't run. Sure the perfect solution in this particular situation would be Blizzard releasing Linux native versions, but if they didn't do it for so many years (for financial reasons, I suppose), even if Starcraft 2 is already freely available for download and free to play, there's little hope it will happen in the future.

Last edited by FlinchX; 01-25-2019 at 05:54 AM. Reason: mistyped word
 
Old 01-25-2019, 06:28 AM   #7
Alien Bob
Slackware Contributor
 
Registered: Sep 2005
Location: Eindhoven, The Netherlands
Distribution: Slackware
Posts: 7,546

Rep: Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923Reputation: 5923
Well then multilib is your only hope. What exactly do you have against it? In what way do you think it will affect your 64bit system?
 
Old 01-25-2019, 08:41 AM   #8
FlinchX
Member
 
Registered: Nov 2017
Distribution: Slackware Linux
Posts: 328

Rep: Reputation: Disabled
Quote:
Originally Posted by Alien Bob View Post
Well then multilib is your only hope. What exactly do you have against it? In what way do you think it will affect your 64bit system?
I'm not really hostile against multilib, as well I don't expect it to get bundled into Slackware by default. Regardless if this is a design choice made by Pat for technical reasons unknown to me (maybe it breaks the KISS principle?), yet I trust him because his level of Linux competence (and yours as well) is incomparably much higher than mine. Or even if it is a choice dictated purely by practical reasons - just because having multilib in vanilla Slackware would require more maintenance efforts. There's a very recent thread in this forum about someone who upgraded multilib but forgot to upgrade the vanilla system first - which just proves the point, a multilib system indeed does require more commitment to keep it updated. Considering that wine and maybe steam are the only things I'm interested about that require 32bit, I rather give up on them and casually try to find out if the status quo of multilib in Slackware has changed (or might change in the future).

Last edited by FlinchX; 01-25-2019 at 10:07 AM. Reason: fix spelling
 
Old 01-25-2019, 09:23 AM   #9
dugan
LQ Guru
 
Registered: Nov 2003
Location: Canada
Distribution: Slackware
Posts: 8,893

Rep: Reputation: 3807Reputation: 3807Reputation: 3807Reputation: 3807Reputation: 3807Reputation: 3807Reputation: 3807Reputation: 3807Reputation: 3807Reputation: 3807Reputation: 3807
I've started using this:

http://compat32pkg.sourceforge.net/
 
Old 01-26-2019, 05:36 AM   #10
trite
Member
 
Registered: Feb 2016
Location: Sweden
Distribution: Slackware64-current
Posts: 50

Original Poster
Rep: Reputation: 29
Quote:
Originally Posted by Alien Bob View Post

By the way, trite, runlevel 4 is not the default in Slackware... it is 3.
Oops, its true that its not the default


Quote:
Originally Posted by FlinchX View Post
I'm not really hostile against multilib, as well I don't expect it to get bundled into Slackware by default. Regardless if this is a design choice made by Pat for technical reasons unknown to me (maybe it breaks the KISS principle?), yet I trust him because his level of Linux competence (and yours as well) is incomparably much higher than mine. Or even if it is a choice dictated purely by practical reasons - just because having multilib in vanilla Slackware would require more maintenance efforts. There's a very recent thread in this forum about someone who upgraded multilib but forgot to upgrade the vanilla system first - which just proves the point, a multilib system indeed does require more commitment to keep it updated. Considering that wine and maybe steam are the only things I'm interested about that require 32bit, I rather give up on them and casually try to find out if the status quo of multilib in Slackware has changed (or might change in the future).

If I didnt need 32-bit for steam and wine gaming, I would prefer to have a pure 64-bit system tbh, feels better in your soul (;

Also its not that bad, I just forget a lot of times in what order to update things. But rarely do I bork my system so bad that it needs some kind of rescue, just re-update things in the right order.

Last edited by trite; 01-26-2019 at 05:42 AM.
 
  


Reply


Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
LXer: Valve have updated Steam Play with the 3.16-1 beta based on Wine 3.16 and new DXVK LXer Syndicated Linux News 0 10-14-2018 06:41 AM
LXer: DXVK, the Vulkan-based layer for Direct3D 11 with Wine has another fresh release LXer Syndicated Linux News 0 08-05-2018 06:31 AM
LXer: Improve Your Wine Gaming on Linux With DXVK LXer Syndicated Linux News 0 05-15-2018 02:42 AM
LXer: Let the Linux gaming begin! Beta Steam Machines are shipping and SteamOS is ready LXer Syndicated Linux News 0 12-12-2013 10:42 PM
Steam on Wine, cannot login,"Steam is having trouble connecting to the Steam servers" cantab Linux - Games 1 06-19-2010 06:32 AM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 09:30 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Facebook: linuxquestions Google+: linuxquestions
Open Source Consulting | Domain Registration