Submitted by Stolenfromreddit in Linux (edited )

#Guide: Migrating to Linux

##1. Prelude


Since Proton has been released it's time for an updated guide.

##2. Getting Started


So, you want to get started in Linux. The first step is to understand that you'll be using LINUX.

Now that might seem obvious, but you'd be surprised how often you'll see "Why isn't this easy like in Windows?" or "I just want it to act like my Mac."

While I do understand that it's hard to get used to something you're not familiar with, I promise that, in time, it will be just as comfortable as Windows or OS X.

Curious to see Linux gaming in action before getting your feet wet? /u/PCgamingFreedom has an amazing thread with a huge list of Youtubers that play games on Linux.

##3. The software


Perhaps the biggest hurdle of using Linux is compatibility issues with the software you currently use. Before you get started on your journey, I would highly recommend you do a bit of prep work here.

  • Which software do I commonly use?
  • Get a pen and paper and start writing a list. Include your most played games (and the ones that you are sure that you will want to play in the future) and the software you need for a computer to be your daily driver (Office, Photoshop, etc).

Now that you have a list, let's check. There are three possible outcomes for each item in your list.

  • You will be able to run it natively.
  • This is almost always the best case scenario, since it's the one where you will get all the performance and compatibility without drawbacks.
  • You will be able to run it, but not natively.
  • You'll most often find this with Proprietary software and is the nature of using closed source software. We have a few tricks up our sleeves that we can try later though.
  • You won't be able to run it.
  • This is the big one, the one that will hold you back. Sometimes, and it's not your fault, there is a killer app that you absolutely need in order for your computer to be useful to you. While it would be great if the OSS community provided a good alternative to you, we understand that this is not always the case. There's no shame in this. Thank you for trying.

In order to catalog your list into this three outcomes, you grab the first item on the list. If it's a game, check in SteamDB if the game does have Linux support (Note: Sometimes the game offers Linux support even if it's not listed here or in steam). In 2018, Valve release a compatibility software called Proton that is based on WINE. Check ProtonDB (used to be called Steam Compatibility Reports) to see if your Windows only games run fine under it. If it's software, just check in the official website if there's a Linux version.

If you've done that and there's no Linux support, we go to the next step. Bring up the Wine AppDB and put there the name of your software. Click on the link that fits the most your search (Usually the first link, ignore all the [Bug XXXXX] results) and check the rating of the game. Generally you'll be able to use it if it's not bronze or garbage. If you click in the version of the software, you'll see reports of people who have tried to run it, known bugs and general instructions and steps to follow. For now we're just cataloging the software, so we'll see how to actually install it later. If there's no search results there's still hope. Do a quick google search (probably "NameOfTheSoftware wine support") and see what happens. If the software you want to use is really small and unknown probably nobody tried it, but just leave it marked as "dubious" or something because you may be able to run it anyways.

If what you want to run shows as garbage in there (and most of the times bronze, you seriously want to read the reports to see what works and what doesn't) you just put it in the "I won't be able to run it" section. Now repeat with each element of the list until you've gone through your list.

You got your list and a general idea of what you can run and what you can't run and at which degree you will be able to use it. If you have something that needs to be run but you can't run, here's a small list of alternatives you can use.

  • Look for an alternative. If it's a game I'd say that you should look for games with similar tags in steam. If it's software use something like alternativeto

  • Use a windows VM. Useful if the software you want to run is not resource intensive (99% of the time games won't like this, so don't use this for games unless you're going to attempt the GPU passthrough option)

  • Dual boot.

  • GPU passthrough. This is hard. You need to met a lot of requirements and invest time, but if you can pull it out you can get the best of both worlds. Google around for this one.

##4. The swap


If you are here, congratulations! You want to get started with Linux and you have all your software narrowed down. In order to get started in the odyssey of Linux, you have to think about what distribution (informally referred to as distro) you want to use. The distribution is just the flavor of Linux you want to use. Just to be clear from the start, every distribution is equally capable of gaming and running software. The differences between them are:

  • The preinstalled software. Some are more minimalist than others, but all of them can run the same software. With enough patience, you can turn one distribution into another just by installing and removing stuff.
  • The update frequency. Some distros release updated software faster than others. Distros that push out updated software with minimal testing are known as bleeding edge distros or rolling release distros. If you want to be up to date with features, you want a bleeding edge distro, but in exchange for the latest and greatest features you run an increase risk of running into bugs. Stable Release distros usually have to wait longer for updates, but those updates are often heavily vetted before being pushed out.
  • The community. Different distros have different communities. The distros that are perceived to be easier or more user friendly tend to have communities that are quicker to help with easy to follow instructions.
  • The other minor things include default configurations, art, fonts, etc.

Now that I've explained that, I'm going to list off the only two distributions that are supported by Valve. Again, this does not mean that these are the only two distros that will work for gaming!

| Distribution | Explanation | |:-----------|------------|------------| |Ubuntu LTS | The latest Ubuntu LTS (18.04 as of this writing). Ubuntu also has a new user friendly community. If you don't know what to choose, pick this one. |Steam OS| SteamOS is usually several months behind in software releases and isn't really aimed at being used as a computer. Biggest advantage is that it boots directly into Steam and is made to be a console replacement.

If you're feeling particularly adventuress, there are a huge amount of distros you can try out! While not officially supported by Valve, any modern, up to date, distro will more than likely work for you. Some of the favorites in the comments are:

| Distribution | Explanation | |:-----------|------------|------------| |Solus| Solus is an independent distro (meaning it's not derived from any other distro). Solus brings updates to its users by means of a curated rolling release model. |openSUSE| Offers both a rolling release (Tumbleweed) and a regular release (Leap) option. |Antergos| Notoriously finicky installer, once installed, it uses the ArchLinux repos. RIP Antergos |Endeavour| Endeavour is the continuation of Antergos. Still in beta. |Manjaro| Based on ArchLinux, but uses its own repositories and includes other features like automatic graphic card drivers installation. (Recommended by LTT) |Pop!_OS| Pop!_OS is a Linux distribution developed by System76 based on Ubuntu by Canonical, using the GNOME Desktop Environment. Has a Nvidia and a AMD/Intel image for convenience. (Recommended by LTT) |Linux Mint| Offers two versions. "Linux Mint" is based on Ubuntu and "LMDE" is based on Debian. |elementryOS| Based on Ubuntu, elementryOS strives to be the extremely user friendly. |Fedora| Made by Red Hat, one of largest open source companies, which use the dnf package manager and has a lot of officially supported desktop environments. |Others| There are a ton of Linux distros out there. Feel free to browse distrowatch if you're bored.

If you are having trouble deciding, just go with Ubuntu. It's not the flashiest, but you're almost guaranteed to find an answer to your problem if you search "My Problem Ubuntu" in your favorite search engine (make sure to limit the search to only things from the past year)

Most of them will let you install next to Windows and set up a dual boot automatically. Be careful though, Windows Updates have a bad habit of changing the boot loader and it will look like your Linux OS vanished. REMEMBER TO DO BACKUPS. Things can always go wrong and you don't want to lose anything.

##5. The habit


So, you've installed your distro and you have your computer running Linux. Congratulations! The last step is to get all of your software back running so you can use your computer as a daily driver.

A few things first:

Do not be afraid of the terminal. While the terminal is absolutely not required to do your normal day to day activities, you'll often find solutions to your problems require you to enter a few lines into the terminal. This isn't any sort of magic and it's nothing to be fearful of using. The reason for this is because the terminal is, generally, distro agnostic and it's easier to explain one line of code instead of having lots of different pictures showing you what to click in each distro.

Second, use the internet! Everyone starts as a beginner at some point. You might be very comfortable in Windows or OS X now, but at some point you had no idea what you were doing. That's very normal! As you use Linux more and more you'll gain the knowledge and experience needed and eventually it will feel like home.

If you are coming from Windows, you are probably used to search for an .exe and install it by double clicking. Things are way different here. Installing software individually is often discouraged. The reasons for this varies, but security and compatibility are the main reasons. So what do you do in Linux? You use a package manager. Think of it as the Android play store. We do have a big repository with all the software ready to install, and if you need something you just tell your package manager to grab it from there and install it.

This is really good for a few reasons. First, the package manager knows what do you have installed and what not, and since Linux uses a shared pool of dependencies, it can update all your system at once or remove what you don't need easily. Second, since all the software comes from a trusted source the chance of getting infected with malware is minimal (You can add third party repositories, but be sure that you trust the source. Linux isn't malware free.)

Remember when I said don't be afraid of the terminal? Here's a good example as to why. To install Steam on Ubuntu, Linux Mint, or most other distros that derive from Ubuntu, all you have to do is open a terminal and type:

sudo apt install steam

And that's it. Steam is installed, from a trusted source and with everything it needs. Do you want to update all the stuff installed in your system?

sudo apt upgrade

Let's break those two lines down a bit so you know what's going on. sudo stands for "super user do". You can think of this like right clicking and choosing the "Run As Administrator" in Windows. apt is the package manager's name. install is the command to install programs. steam is the steam software. So in English we just said. "Please install the "steam" program as administrator (called root on Linux)."

Now, if you wanted to use the graphical way, I'd have to post pictures from Ubuntu, Mint, etc and they all look slightly different and you have to find their front end in different places. It's just easier this way.

So what do you do if the software you need isn't in your package manager? The next best thing is to add a 3rd party repository to your package manager. As an example, let's add Google Chrome, a popular web browser. UbuntuUpdaets.org give the following instructions:

wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | sudo apt-key add - 
sudo sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list'
sudo apt-get update 
sudo apt-get install google-chrome-stable

That looks a bit scary, but it's just adding the security key and repository to your system and then installing Google Chrome. You'll want to use a PPA of your software when possible since it will update with the rest of your system.

##6. Windows compatibility


So you can't find a Linux version of that software you want to install? Our last step is to try WINE. WINE is a compatibility layer that tries to translate Window Binaries (.exes) calls into Linux calls. Sometimes this works really well, and other times nothing happens at all.

First, let's install WINE.

sudo apt install wine

On some systems, installing WINE allows you to double click an .exe and it will try to run just like in Windows, but if not, you'll want to open a terminal and type:

wine path/to/your/file.exe

Remember to check the ratings and know issues in the wine AppDB so you know what you can expect, and you should be golden. Here's an in-depth guide of wine stuff but again, google and find how stuff works and it works. If you don't understand, please ask! The community is usually happy to help!

There are also some programs that try to help you with WINE stuff. Lutris and PlayOnLinux are popular options.

7. DXVK/D9VK/VK9/Gallium Nine


What are DXVK/D9VK/VK9/Gallium Nine? I'll let the projects explain themselves:

DXVK: Vulkan-based D3D11 and D3D10 implementation for Linux / Wine

D9VK: A d3d9 to vk layer based off DXVK's codebase

VK9: Direct3D 9 compatibility layer using Vulkan.

Gallium Nine: Gallium Nine allows to run any Direct3D 9 application with nearly no CPU overhead, which provides a smoother gaming experience and increased FPS.

Okay, but what does that mean?

Direct3D (the graphical part of the DirectX API) is what most Windows' game built after ~2000 use. You don't really need to know any technically details about it other than the fact that it's a Windows' only API. For the longest time, one of the biggest bottle necks for gaming on Linux was translating the Direct3D calls to OpenGL (a cross platform graphical API that works on Linux/most other OSes).

All of these projects attempt to translate Direct3D calls to something that Linux understands. As far as I'm aware, the most used ones are DXVK and D9VK.

Using these technologies, you can get huge performance boosts in your games. Here is Starcraft 2 running on d9vk vs regular wine. You can see that Tuxidermy is getting almost twice the FPS most of the time (and D9VK is still really young). Here is another example, this time with World of Warcraft running regular WINE vs DXVK. In this example, you can see that DXVK is three times the FPS in most cases!

Proton is working on a way to automatically use these technologies when they're applicable, but in the mean time, you can use Lutris to manage those.

8. Troubleshooting


I personally can't spend a lot of time helping people individually. That's where this and other communities come in!

  • Join the IRC channel of the distribution that you are using
  • Ask in forums
  • Try stuff
  • Duckduckgo away

When asking about your problems, remember to give as much info as you can. For example, include what Distro you're on, what you have already tried, any error messages that come up, anything you've changed recently, etc.

9. The end


I, u/PBLKGodofGrunts, put this guide under the WTFPL License. Please attach this license when sharing or modifying this guide. I hope that this is helpful to someone.

6

Comments

You must log in or register to comment.

There's nothing here…