Force KDM fonts DPI – openSUSE

If the fonts on your login screen are too big, usually due to attaching external monitor, edit /etc/sysconfig/displaymanager, and append -dpi # to DISPLAYMANAGER_KDM_LOCALARGS.

For example:

DISPLAYMANAGER_KDM_LOCALARGS="-dpi 75"

You should restart KDM (rcxdm restart) after doing so.

TwinView, openSUSE and the NVidia driver

A week ago, I brought 37″ LG Led TV for my living room. It’s cheap and has a lot of features. After buying 10 meters of DVI to HDMI cable, the TV was connected to my development machine, which also happens to be in my living room. Great to watch HD movies late at night, or playing games when you fell like not doing anything.

My development PC is running openSUSE 11.4 and has nVidia GeForce 8600 GT card. Old but perfectly good for my needs. I’m using nVidia proprietary driver, and a great tool called nVidia X Server Settings that comes with it.

Here is how to enable dual monitor setup and make your changes permanent:

Start “nVidia X Server Settings” and select “X Server Display Configuration“. There you should see your monitors (in my case my primary monitor and TV). One of them will be disabled. Select the disabled monitor and click “Configure…“. From the “Configure Display Device” dialog choose “TwinView” option. Click “Ok” Change the display resolution and Hz if you like. Select “Make this the primary display for the X screen.” if you like your selection to be the primary monitor. Click “Apply”. Play with the options until you are happy with the results, but don’t close the nVidia tool.

To make your changes permanent, start a terminal, become root user and “cd” to “/etc/X11/xorg.conf.d/“. Open “50-screen.conf“. From the nVidia tool select “Save to X Configuration File” and then “Show Preview“. Scroll to the section named “Screen” and copy-paste the tree “Option” lines in “50-screen.conf” after the “Monitor” directive. Save the file, close the nVidia tool and log out. Your X server should restart, and your settings apply ed automatically.

When you say you support GNU/Linux, support it in all of it’s shapes and forms

In order to optimize cost and ease the maintenance we gradually started replacing our employees desktop PC’s with thin clients. Provider of choice was NComputing.

So far so good, the devices are great, combined with our VMWare visualization infrastructure. We are able to support up to 30 clients on Windows Server 2008 R2 x64 with ought any noticeable lag, some of them even playing videos. Something according to my research NComputing do better than the rest of the competition.

But not everything is bells and wishes. Excluding the fact that they still doesn’t support Windows 7 SP1 and Server 2008 SP1, they claim that this devices work with GNU/Linux in general. The only distribution they support is Ubuntu 10.04 LTS. I mean only Ubuntu, not even Kubuntu 10.04 LTS ,kernel 2.6.32 and GDM only. Also their GNU/Linux version of the software is not future rich as the Windows counterpart. Some examples include that when by some reason you are disconnected from your session you can’t reconnect back to it and new one is started, forcing the administrator to log you out from the server.

At first why we need GNU/Linux support? We are members of Free Technology Academy, and we are about to start courses soon, teaching people who are interested on various aspects of the Free Software.

After some hacking I was able to instal their software on OpenSUSE 11.4 x64, by the means of converting the provided .deb packages to rpm’s using alien, downgrading the kernel to 2.6.32, installing GDM, satisfying dependencies and some other dirty hacks. The result was that the client was able to see the server but hangs on attempt to connect.

I will post the exact procedure some time later. Maybe someone can complete the hack?

After day and half trying I contacted their technical support and provided them with as much details as possible, also asking them some questions about their future plans on supporting GNU/Linux, offering them some help also. Their support is terrible, it’s now day 3 and there is no reply from them.

If they can’t help me, I plan to use LTSP, with some old PS’s as terminals, maybe convincing my boss of buying LTSP thin clients.

This is another example of how dependent you are when you don’t have the source code or the device hardware spec, and a proof that open source hardware and software is the better alternative and future.

So, when you say you support GNU/Linux, support it in all of it shapes and forms, and remember that Ubuntu is not the only GNU/Linux distribution out there, or at least when you support only Ubuntu, say “we are supporting Ubuntu” not Linux in general.

Heroes III on GNU/Linux

UPDATED: 18.07.2014

I’m long time fan of Heroes Of Might and magic series. Especially Heroes III. Today I decided to spend some time playing it on my OpenSUSE box.

This article is not about running Heroes III under Wine, it’s about installing the GNU/Linux version produced by Loki Software years ago, under modern GNU/Linux distribution.

heroes3-gnu-linux-opensuse12.3

1. Get a copy of the game. Since Loki is no more, the game cannot be ordered from them, but there are chances that some copies are still available on eBay or other online store. Google “Heroes III Linux”, for other ways of obtaining the software.

2. Download the latest patch (1.3.1) from here.

3. Install the game.

This step requires “root” privileges on the system. Open a terminal and become super user by typing

su

or

sudo -i

hitting the Return key and providing you password.

NOTE: You may install the game as your normal every day user. It will be installed in your home directory, and only playable by you, or the users from the “users” group. Depends on how your system is configured.

If you are installing from CD, mount it

cd

to the mount point and run

sh setup.sh

This will start the game installation process. Follow the onscreen instructions.

If during the execution of the a bought command you get error message like the one below:

This installation doesn’t support glibc-2.1 on x86_64 Please contact Loki Technical Support at support@lokigames.com

you are trying to install the game on a 64-bit GNU/Linux distribution. To start the setup program type:

linux32 sh setup.sh

During the setup process you will be asked what part’s of the game you want installed on your hard drive and witch one the game should look for on the CD. I recommend full game installation. This can be achieved by answering Y on the following questions:

Install Base Install? [Y/n] Y
Install Scenarios? [N/y] Y
Install Sounds and Graphics? [N/y] Y
Install Music? [N/y] Y
Install Videos? [N/y] Y

4. Applying the patch.

The patch downloaded in step 2, is the latest patch for the Linux version of Heroes III. It fixes some game play bugs like playing the game on full screen. To install the patch:

4.1 Open a terminal, and go to the folder containing the file heroes3-1.3.1a-unified-x86.run. Become a super user (see step 3) and type

chmod +x heroes3-1.3.1a-unified-x86.run
./heroes3-1.3.1a-unified-x86.run

After executing the a bough commands you probably will get the following error:

Verifying archive integrity...OK
Uncompressing Heroes of Might and Magic III 1.3.1a Update......................................tar: A lone zero block at 12620

./update.sh: line 56: loki_patch: command not found
The program returned an error code (1)

As the error message says the loki_patch command is not found. To overcome this problem, download loki_patch from here and save it in the directory where you downloaded heroes3-1.3.1a-unified-x86.run.

Make it executable by typing:

chmod +x loki_patch

Now it’s time to extract our HoM III update. Run the following command:

./heroes3-1.3.1a-unified-x86.run --keep

The installer will fail with the error mentioned previously, but passing the –keep parameter to the patch executable, forced the installer to keep the update files. Type ls to see the directory listing. You should have a directory called heroes3-1.3.1a-unified-x86. Our task is to replace the loki_patch version contained within the update with the one we have downloaded. Execute the following sequence of commands to replace loki_patch and start the update process.

cp loki_patch heroes3-1.3.1a-unified-x86/bin/Linux/x86/loki_patch
chmod +x heroes3-1.3.1a-unified-x86/bin/Linux/x86/loki_patch
chmod +x heroes3-1.3.1a-unified-x86/update.sh
./heroes3-1.3.1a-unified-x86/update.sh

For 64-bit GNU/Linux distro run:

linux32 ./heroes3-1.3.1a-unified-x86/update.sh

Follow the onscreen instructions. Close your root session by typing exit.

The game is now installed and patched to the latest version available.

NOTE: If during the installation of the patch you get ERROR: No matching delta for /usr/local/games/Heroes3/heroes3.dynamic don’t worry, the patch is installed. You can verify it by executing heroes3 -v. The output should says:

Heroes of Might & Magic III 1.3.1a

Type heroes3 and press enter to start playing. Type heroes3 –help, to view the available command line options, or review them below.

Heroes 3 command line options.

# heroes3 --help
Linux version by Loki Software, Inc.
http://www.lokigames.com/
Support - FAQ: http://faqs.lokigames.com/
          Web: http://fenris.lokigames.com/

          E-mail: support@lokigames.com
          Phone:  1-714-508-2140 (9-5 PM US Pacific Time)

Usage: heroes3 [options]
     [-h | --help]           Display this help message
     [-v | --version]        Display the game version
     [-f | --fullscreen]     Run the game fullscreen
     [-w | --windowed]       Run the game in a window
     [-s | --nosound]        Do not access the soundcard
     [-c | --nocdrom]        Do not access the CD-ROM
     [-u | --update]         Run the Loki auto-update tool
     [-q | --qagent]         Run the Loki QAgent support tool
     [-x | --x11cursor]      Use the X11 hardware mouse cursor
     [-l | --logging]        Enable logging

You can use the HEROES3_DATA environment variable to force the
Heroes III installation directory

NOTE: -u | –update and -q | –qagent does not work!

5. Known problems with the game.

There are some known problems with the game on modern GNU/Linux distributions as follows:

* No sound.

When starting the game you may see the following error:

Couldn't open audio:

The solution to this problem varies from distribution to distribution. Please consult your distro community. In some cases the sound just works.

* Random game crashes.

Sometimes the game may crash. It’s useful to start the game with the -l option, to enable logging. The log files are stored under ./home/<username>/.loki/heroes3.

6. Adding custom maps

Custom maps can be installed by copying them to .loki/heroes3/maps (available only for the current user) or in <game installation folder>/maps (available for all the users).

NOTE: <game installation folder>, by the means of this tutorial is /usr/local/games/Heroes3.

Happy adventuring :) . Tutorials about installing other Loki Software products will be available soon.

Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD) and OpenSUSE 11.4

UPDATE: There is some strange lag while copping files from or to the SD card!

I recently reinstalled my laptop (Acer Extensa 5620z) with OpenSUSE 11.4. Everything worked out of the box, (which is impressive) except the card reader.

If you look at /var/log/messages when you insert a card, you will see something like this:

tifm_core: MMC/SD card detected in socket 0:1

It means that the kernel has detected your card but it don’t think it’s memory card or storage device. Here the setpci command comes handy.

NOTE: You need to be root in order to preform the steps required

1. List your devices with lspci and find your card reader entry:

0f:06.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)

Notice the first colum 0f:06.2. This is your device ID, you will need it later.

2. Execute the following command:
Replace 0f:06.2 with your device ID!

setpci -s 0f:06.2 4c.b=0x02

Your card reader should work now. In order to make this change permanent, you may place the command from step 2 in /etc/rc.d/after.local.

P.S: Here is my laptop Smolt profile.