Tag Archives: Wine

ArchLinux + Cinnamon + More

Single Encrypted SSD Install

' Create a boot partition (sda1) (set boot flag) 100MB, data partition (sda2).
$ gdisk /dev/sda
$ mkfs -t ext4 /dev/sda1

' Encryption stuff
$ cryptsetup -y -v luksFormat /dev/sda2
$ cryptsetup open /dev/sda2 cryptroot
$ mkfs -t ext4 /dev/mapper/cryptroot

' Mount the partitions to our future chroot
$ mount -t ext4 /dev/mapper/cryptroot /mnt
$ mkdir /mnt/boot
$ mount -t ext4 /dev/sda1 /mnt/boot

We can now install the base packages and a few other things

' Install base packages
$ pacstrap /mnt base base-devel syslinux gdisk

' Generate our base fstab file
$ genfstab -p /mnt >> /mnt/etc/fstab

' Change into new root directory
$ arch-chroot /mnt

Now we can setup the system before the first reboot without the live cd/usb

' Set the hostname
$ echo computer_name > /etc/hostname

' Set the time zone
$ ln -s /usr/share/zoneinfo/zone/subzone /etc/localtime

' Edit the locale file and uncomment relevant locales
$ nano /etc/locale.gen

' Generate the uncommented locales from above
$ locale-gen

' Set your locale preference
$ echo LANG=your_locale > /etc/locale.conf

' Add encrypt hook to mkinitcpio: HOOKS="... encrypt ... filesystems ..."
$ nano /etc/mkinitcpio.conf

' Generate the initial RAM disk
$ mkinitcpio -p linux

' Set the root password
$ passwd

' Install some more packages
$ pacman -S networkmanager zip unzip unrar patch make openssh gcc fuse nvidia nvidia-utils

' Enable NetworkManager in systemd
$ systemctl enable NetworkManager

' Install the boot loader
$ syslinux-install_update -i -a -m

' Edit the syslinux boot loader (fix root stuff, set noop io scheduler)
' APPEND elevator=noop cryptdevice=/dev/sda2:cryptroot:allow-discards root=/dev/mapper/cryptroot rw
$ nano /boot/syslinux/syslinux.cfg

' Edit the fstab file, change root mount to use noatime and discard options
' Setup /tmp on tempfs add line: tmpfs   /tmp         tmpfs   nodev,nosuid,size=2G          0  0
$ nano /etc/fstab

' Reboot the machine
$ reboot

After a clean reboot you should get the Syslinux Boot Loader and then booted into Archlinux, asking for the encryption key

' Login as root

' Check networking
$ ip addr
$ ping

' Edit pacman configuration uncomment multilib repo
$ nano /etc/pacman.conf

' Update pacman databases
$ pacman -Syu

' Lets get more packages and cinnamon now
$ pacman -S cinnamon playonlinux firefox xorg-xinit vim gvfs gvfs-smb wget lib32-libldap gnome-terminal gnome-keyring

' Edit some files to fix a few things and setup environment
' fuse.conf uncomment only two configuration values
$ nano /etc/fuse.conf

' Edit which users/groups can sudo
$ visudo

' Create a local non-root user
$ useradd -g users -G disk lp wheel games dbus network video audio optical floppy storage power -m zharvek

' Set a password for that user
$ passwd zharvek

Lets reboot again and login as our new user, you probably don’t have to reboot here but I do

' Login as non-root user

' Copy xinitrc to profile
$ cp /etc/X11/xinit/xinitrc ~/.xinitrc

' Edit .xinitrc file to set cinnamon as desktop environment: exec cinnamon-session
$ nano ~/.xinitrc

' I like to change the font engines and stuff before I load the desktop first
$ cd /tmp
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/freetype2-ubuntu.tar.gz
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/fontconfig-ubuntu.tar.gz
$ wget https://aur.archlinux.org/cgit/aur.git/snapshot/ttf-ms-fonts.tar.gz

' Lets extract these packages
$ tar zxf freetype2-ubuntu.tar.gz
$ tar zxf fontconfig-ubuntu.tar.gz
$ tar zxf ttf-ms-fonts.tar.gz

' Lets build these packages
$ cd freetype2-ubuntu
$ makepkg
$ sudo pacman -U freetype2-ubuntu...filename
$ cd ../fontconfig-ubuntu
$ makepkg
$ sudo pacman -U fontconfig-ubuntu...filename
$ cd ../ttf-ms-fonts
$ makepkg
$ sudo pacman -U ttf-ms-fonts...filename

' Change back to home
$ cd ~

' Start the desktop environment cinnamon
$ startx

We can then get some games going for instance

' Create a games folder, I like putting it in a root area to be clean and easy
$ sudo mkdir /games

' We need to give file permissions to the folder
$ sudo chmod 775 /games
$ sudo chown root:games /games

' You should be able to write to that folder now (your in the games group right?)
' Copy WoW to the games folder

' Lets setup a wine prefix for WoW
$ playonlinux

' Download latest version of wine and wine-staging both x64 (Battle.net bombs on staging, game runs best on staging)
' Error: "This application failed to start because it could not find or load the Qt platform plugin "windows"."
' You will get this error if your wine prefixes are NOT Windows XP.
' You will get this error if your running the "Battle.net" prefix with a -staging version of WINE!
' Wine bug confirmed: https://bugs.winehq.org/show_bug.cgi?id=39985

' Create two new prefixes, "Battle.net" and "Warcraft"
' Run winecfg on the "Warcraft" prefix
' Set CSMT enabled on "Warcraft" prefix
' Disable the d3d11 library on "Warcraft" prefix
' Run winecfg on "Battle.net" prefix
' Disable the dbghelp library on "Battle.net" prefix (answer yes to important question)

' Run 'World of Warcraft Launcher.exe' in the "Battle.net" prefix to allow updates and such
' Run 'Wow-64.exe' in the "Warcraft" prefix to play game with CSMT enabled.
' Setup scripts to do this for both programs. Using WINEARCH=win64 and WINEPREFIX= to prefixes

--- Game Start Script ---
WINEDEBUG=-all WINEARCH=win64 force_s3tc_enable=true __GL_THREADED_OPTIMIZATIONS=1 WINEPREFIX=~/.PlayOnLinux/wineprefix/Warcraft /home/zharvek/.PlayOnLinux/wine/linux-amd64/-staging/bin/wine /games/World\ of\ Warcraft/Wow-64.exe
--- Game End Script ---

--- Battle.net Start Script ---
WINEDEBUG=-all WINEARCH=win64 WINEPREFIX=~/.PlayOnLinux/wineprefix/Battle.net /home/zharvek/.PlayOnLinux/wine/linux-amd64//bin/wine /games/World\ of\ Warcraft/World\ of\ Warcraft\ Launcher.exe
--- Battle.net End Script ---

I install a few more applications

' Text editor, archive manager, stuff...
$ sudo pacman -S gedit file-roller ttf-liberation quodlibet gimp redshift freerdp remmina gtk-engine-murrine gtk-theme-arc

Tweak some settings

' Firefox first

' Open options from menu button, click Content on left.
' Default Font: Times New Roman; 16
' Proportional: Serif; 16
' Serif: Times New Roman
' Sans-serif: Arial
' Monospace: Courier New; 13

' Add your own addons, uBlock Origin, signin to Sync if you use, config custom sync server if you use

' Tweak the console
' I prefer gray text on black background, size around 100x40.

' Edit bash profile to create tmpfs firefox profile directory
$ nano ~/.bash_profile

' Add line: mkdir -p /tmp/profile
' Make a symbolic link to tmpfs profile directory from current profile
$ cd ~/.cache/mozilla/firefox
$ ln -s /tmp/profile ulw90aed.default (use profile folder)

' Install CK Kernel
' Install CK Repo
' Use http://repo-ck.com/ information
$ sudo nano /etc/pacman.conf

' Update pacman cache
$ sudo pacman -Syy

' Check your board type and install (also choose nvidia driver)
' https://wiki.archlinux.org/index.php/Repo-ck
$ sudo pacman -S ck-ivybridge

' Update syslinux (boot loader)
' LABEL arch-ck
'    MENU LABEL Arch Linux CK
'    LINUX ../vmlinuz-linux-ck
'    APPEND elevator=bfq cryptdevice=/dev/sda2:cryptroot:allow-discards root=/dev/mapper/cryptroot rw
'    INITRD ../initramfs-linux-ck.img

' Check default kernel
' DEFAULT arch-ck

Remove non-CK kernel

' Remove old kernel to save space on /boot
$ sudo pacman -R linux nvidia

Elder Scrolls Online on Linux

Got a beta invite for ESO and of course I wanted to get it running in Linux.

Little about my setup: I use PlayOnLinux on ArchLinux to manage my wine versions and to contain the bottles. I do not use it to do anything else honestly.

Here is how I got it running on my install…

I installed the game on a Windows machine at first, as wine has some bugs with the installer. There is a patch available to your wine version if you want to install it directly. This site might help you with that patch http://blog.internetz.me/2014/02/28/eso-install-linux-kali-also-works-ubuntudebian/

I then copied over the entire folder structure to my system to my revodrive I have mounted in /revodrive. (You can skip this. It is for me specifically.)

I told PlayOnLinux to download 1.7.11 x86 version of wine.

I then create the prefix to hold this bottle.

$ WINEARCH=win32 WINEPREFIX=~/.PlayOnLinux/wineprefix/ESO /home/username/.PlayOnLinux/wine/linux-x86/1.7.11/bin/wine winecfg

I then create a link from that bottle to my revodrive. (You can skip this. It is for me specifically.)

$ cd ~/home//.PlayOnLinux/wineprefix/ESO/drive_c/Program\ Files
$ ln -s /revodrive/Zenimax\ Online Zenimax\ Online

You can copy your entire “Zenimax Online” folder to the bottles Program Files directory.

I needed to install a few things.

$ sudo pacman -S lib32-libxml2

We need to install VC Runtimes 2010 into the bottle, you can have PlayOnLinux do this.
We need to install DirectX into the bottle, you can have the Installer do this.

I used PlayOnLinux to install the vcruntime2010 in the bottle.

We should now re-run the ESO installer to set some stuff up.

$ cd ~/Downloads
$ wget https://elderscrolls-a.akamaihd.net/products/BNA_Launcher/Install_ESO_Beta.exe
$ WINEARCH=win32 WINEPREFIX=~/.PlayOnLinux/wineprefix/ESO /home/username/.PlayOnLinux/wine/linux-x86/1.7.11/bin/wine ~/Downloads/Install_ESO_Beta.exe

Tell it to install in the default path, and it will complain that it already exists. This is fine, just continue. Once it’s done installing uncheck the VS2010 runtimes box, uncheck the Play Game box and keep the DirectX box checked. Click finish and let it install DirectX into the bottle for you.

Now we need to create a script file to run the game correctly, just like we did with Skyrim on Linux.

$ nano ~/.PlayOnLinux/wineprefix/ESO/drive_c/eso.cmd

Place this in the eso.cmd file

CD \Program Files\Zenimax Online\The Elder Scrolls Online\game\client

Then we can run the game with (I put this in a shell script to make it easy.)

$ WINEARCH=win32 WINEPREFIX=~/.PlayOnLinux/wineprefix/ESO /home/username/.PlayOnLinux/wine/linux-x86/1.7.11/bin/wine cmd.exe /c C://eso.cmd

Run the command or script, you should get some errors and the game might run. Once you can close the game, do so. It should create a folder in the My Documents called “Elder Scrolls Online” under here we have two folders now “ESO_BUILD_BRANCH” and “live” go into the “live” folder and edit or create a file named “UserSettings.txt”. If it does not exist create it and add one line

SET GraphicsDriver.7 "OPENGL"

If the file does exist open it and find a similar line, change it to the above.

Load up the game and check your resolution settings. I set mine but it did not take effect. Exit the game, edit the “UserSettings.txt” file again and find the resolution lines, change to your preference.

You should be able to run the game now.

I had some trouble after logging in joining the game world, it seems like other games it does not like running through my VPN. I bypassed my VPN and used my direct WAN by allowing to bypass the VPN.

If you get an error similar to the following you need to change to OPENGL mode as it’s trying DirectX mode. Also, the last error is resolved by running with the script above, or another way that changes to the working directory and running the eso.exe

fixme:d3d11:D3D11CreateDevice stub: adapter (nil), driver_type D3D_DRIVER_TYPE_HARDWARE, swrast (nil), flags 0x20, feature_levels 0x33fccc, levels 0x1, sdk_version 7, device 0x28e4dd8, feature_level 0x28e4ddc, context 0x33fcd0
fixme:win:EnumDisplayDevicesW ((null),0,0x33f6d8,0x00000000), stub!
fixme:d3d:swapchain_init The application requested more than one back buffer, this is not properly supported.
Please configure the application to use double buffering (1 back buffer) if possible.
fixme:ole:CoInitializeSecurity ((nil),-1,(nil),(nil),0,3,(nil),0,(nil)) - stub!
fixme:wbemprox:client_security_SetBlanket 0xf3c82318, 0x3934ed8, 10, 0, (null), 3, 3, (nil), 0x00000000
fixme:wbemprox:client_security_Release 0xf3c82318
fixme:win:EnumDisplayDevicesW ((null),0,0x33eec8,0x00000000), stub!
Launching Crash Handler:
EXE : ZoCrashReporter.exe
Args: en \\.\pipe\ZoCrashReport\eso\c06c67ad Local\ZoCrashReport.SyncEvent.eso.c06c67ad "C:/users/username/My Documents/Elder Scrolls Online/live/Errors/"
PID: 22
fixme:heap:HeapSetInformation (nil) 1 (nil) 0
Requesting Dump
Waiting on Child Process
Saving the details of your error...

Some people might have issues with a certificate error. Here is what you do.

$ cd /usr/share/ca-certificates/
$ sudo mkdir custom
$ sudo nano /usr/share/ca-certificates/custom/Thawte_CS_CA_G2.crt

Paste this into the file


Save the file and exit. Then edit

$ sudo nano /etc/ca-certificates.conf

add to the bottom of the file


Then update the certificates store.

$ sudo update-ca-certificates

Running Skyrim in Linux with WINE

A few days ago my cousin asked me to try and get Skyrim running for him on his Linux install using WINE.

I have previously gotten RIFT working on my Linux system flawlessly using WINE.

He gave me an ISO file, (probably from ill-gotten sources), and I proceeded to install from that.

Using winetricks I installed what all the other sites told me to install:


Then I ran the SkyrimLauncher.exe using WINE. Clicking low settings to start works, and then I click play… Nothing happens. Throws a minor error but nothing big. Ok…

So then I run TESV.exe directly, game loads in a virtual desktop as I had it setup, acting as its full screen (and annoyingly keeping my mouse inside the window). I click new game, and it sits at a black screen with gray fog floating from the bottom with the Skyrim symbol in the center of the screen. Hmm.

Well after poking around with some debug, for a few hours, I realized that the game is actually running from the Z: drive per this wine prefixes setting, and that I needed to tell it “Hey your actually running from the C: drive.”.

I looked quickly but could not find out how to force programs to run from C: in a wine config, so I created a simple command file “skyrim.cmd” file like the batch files of olde’ and inside I put the lines:

CD \Program Files\Skyrim

I saved the file inside my ~/.wine_skyrim/drive_c folder, and then to run the game I ran:

WINEARCH=win32 WINEPREFIX=~/.wine_skyrim wine cmd.exe /c ~/.wine_skyrim/drive_c/skyrim.cmd

Which actually ran my script, running wine at a Windows Command line, and then changed to the ‘fake’ C: drive, changed directories and ran the program.

The game runs, and then I click play. Boom, I am reading the story and it’s all working. I need to start the tweaking stage with the wine registry Direct3D entries but if anyone else has the black screen with fog try doing what I did.

Playing RIFT on WINE Crashing Problems

A few patches ago, Rift started becoming very unstable for me while playing in Wine. My current setup, as the post two below this one states, I’m in Archlinux have Wine setup latest version, and I use the Direct3D registry tweaks. I have an Nvidia card as well, and the graphics are setup just fine.

About thirty minutes to an hour playing, random crash. Wine gives no informative information, even running winedbg on the rift.exe process.

I recently found a post on the winehq forums, for RIFT that experienced the same problem, and last night testing found that adding another option to the Direct3D registry tree did indeed fix the problem.

Adding a new string value “StrictDrawOrdering” without quotes and set it to “enabled” again without quotes.

This did slow down my game some, so, I went on to play again with settings and found that I get a very noticeable increase not only in graphics quality and how high I can set them without graphic related slow downs, but also how fast the system was able to load the textures, players, spells around me by using the latest (beta at the time of this writing) nvidia drivers from the ArchLinux AUR.

The links to packages that I used are: