Tag: Linux

  • Linux Steam: A Fix for Civilization V

    (And apologies for the misspelling; that words is spelt “civilisation” around these parts)

    So I’m a Linux user and whilst I don’t often play games, an occasional break spending time slaughtering pedestrians (in GTA V) or conquering the world (in ‘Civilization’) can be fun.

    Except that I have not been able to play Civilization V since I bought it through Steam – usually instant crashes although sometimes it worked well enough for a few turns.

    Today I sat down and tried out various suggestions on fixing it until I found one that worked for me :-

    1. Right-click the game name in Steam.
    2. Select “Properties”
    3. Select “Startup options”
    4. Specify one of the following :-
      1. (Failed for me) LD_PRELOAD=’./libcxxrt.so:/usr/$LIB/libstdc++.so.6′ %command%
      2. (Failed for me) LD_PRELOAD=/usr/lib32/libopenal.so.1 %command%
      3. taskset –cpu-list 0-3 %command%

    As implied, the “taskset” startup option appears to have worked for me. According to the site I nicked it from, Civilization has trouble running on systems with more than 8 core threads.

    Tower Stonework
  • Linux Containers: Configuring Network Address (part 636)

    On previous occasions (yes that does mean more than once) I have messed around with the network configuration of containers to get :-

    1. A consistent behaviour.
    2. A fixed IPv4 address with no DHCP configuration (this one is easy).
    3. A fixed IPv6 address with no autoconfigured global addresses (this one has been tricky)

    This turns out to be relatively easy providing that you configure the addresses within the container rather than within the container configuration. At least it looks good to go so far (I’ve been mistaken in the past).

    The container configuration is quite simple :-

    lxc.net.0.type = veth
    lxc.net.0.flags = down
    lxc.net.0.link = br0

    Note that the bridge interface (br0) may be different. Also note that there is no lxc.net.0.ipv4.address, lxc.net.0.ipv4.gateway, lxc.net.0.ipv6.address, or lxc.net.0.ipv6.gateway.

    The configuration within the container is dependent on what userland you are running, but for Debian (and Ubuntu if you’re not using Netplan) :-

    auto lo
    iface lo inet loopback
    
    auto eth0
    iface eth0 inet static
        address 10.0.0.34/16
        gateway 10.0.0.1
    
    iface eth0 inet6 static
        address 2001:0db8:cafe:dead:0000:0000:0000:3eb/64
        scope global
        gateway 2001:0db8:cafe:dead:0000:0000:0000:0001
        privext 0
        accept_ra 0
        autoconf 0

    Not sure quite which options are required but having all of “privext 0”, “accept_ra 0” and “autoconf 0” does mean no additional autoconfigured IPv6 addresses.

    (And no the part number of this post isn’t anything more than a joke)

  • Silly Tools for The Graphical Terminal: Flag

    If you are using the right kind of terminal that supports graphics inline (such as KiTTY), then you can write simple (or complex) tools that insert images into the terminal.

    Being able to display the flag of a country (if you know its two-letter ISO code) is kind of trivial but useful if you need it.

    And a shell function to do that is remarkably simple :-

    function flag {
        wget -o /dev/null -O /var/tmp/flag.$$ http://flagpedia.net/data/flags/normal/${1}.png
        if [ $? -eq 0 ]
        then
            kitty +kitten icat /var/tmp/flag.$$ && rm /var/tmp/flag.$$
        else
            echo Not found
        fi
    }

    (that’s a Zsh function which may require adaption to Bash).

  • Why Does Tilde (~) Mean Home In Linux?

    If you use the Unix or Linux command-line, you may very well wonder about the origins of some of the “special” characters. One of those is tilde (~) which is expanded by the shell into “home” :-

    ✓ mike@Michelin» echo $HOME                        
    /home/mike
    ✓ mike@Michelin» echo ~
    /home/mike
    ✓ mike@Michelin» echo ~root
    /root

    This doesn’t of course work in general; just in the shell.

    But where did this usage originate?

    As it turns out, it was the markings on the keyboard of the ADM3A terminal :-

    If you used Unix in the late 1970s/1980s, you may very well have used the ADM3A terminal and it seems that those who added the tilde feature to the Unix shell were amongst the users.

  • Steam on Linux

    If you have not heard, Steam have added a compatibility layer to Steam which allows a limited number of Windows games to run. The “compatibility layer” is in fact a fork of WINE called Proton.

    Peered at from 500 metres away, Proton allows Windows software to run (or not infrequently crash and burn) by translating the Win32 API into Linux APIs, and translating the variety of graphics APIs into Vulkan. That is a really difficult thing to do.

    I have taken a very quick look at the new Steam client (and “Proton” is no longer part of a beta release of the Steam client – it’s in the standard client). It works perfectly adequately, although you will have variable experiences running Windows software.

    For some reason this news has captured the imagination of a number of ‘tubers who are more gamers than Linux users, which has lead to some misunderstanding :-

    1. This is not Linux gaming; it is Windows gaming under Linux. If you have a bad experience with Steam under Linux, you are not experiencing a bad time with Linux gaming. Linux gaming involves native Linux software, and yes there is some out there.
    2. Problems with Steam could well be down to the Proton compatibility layer with unsupported API calls or buggy usage of the Win32 API which relies on Windows behaving in a certain way for undefined parameters.
    3. In addition problems with Steam could be due to the hardware you are running; take a game that works perfectly fine with an Nvidia card. It may behave problematically with an AMD card or even a different Nvidia card. Or the other way around.

    The important thing to remember when looking at videos about Steam is that the person looking at Steam may not be the most experienced Linux user out there. That is not necessarily bad – the whole purpose of Steam is to be able to run games easily without a whole lot of Linux experience.

    But they may not be understanding properly what is going on – for example the first thing I would do as a professional game-orientated ‘tuber would be to try out a selection of games with an nvidia card, and then repeat using an AMD card – just to see if things work better, worse, or at least differently.

    And again, this is not about Linux gaming but about allowing easy access to old Windows titles that someone may have bought in the past. 

    Pentland Hills