So, recently I was playing around with building a server for a Half Life 2 modification using Valve’s instructions on their wiki. The instructions all seem quite simple, you take the VC++ project file, a makefile that you customise slightly with some locations of things certain libraries (like the xerces ones) and then some libraries from the official Linux dedicated server.
All sensible enough so far, until you find out that the only way to get the libraries that it needs from the server is to download the whole server and install that using their application for this (which takes two passes at the same command to do that for some reason). This pulls about 780MB of stuff down onto the machine, including all of the HL2MP maps, textures, models and sounds (apparently it needs some of these in case you want to run a pure server without people having their own custom sounds and whatnot). All in all the libraries that I wanted were no more than 35MB of this, so it was a little bit frustrating.
You then get to the build process, which first compiles a util (vcpm) to read the vc++ project file and use that to make a makefile for the mod itself. This is all well and good and all done in one fell swoop with a simple ‘make’. Unfortunately if, for some reason, you want to do a clean build of the mod - ‘make clean’ won’t help you. That just cleans up vcpm, leaving the server objects there waiting for you to do it manually.
The whole compile process was also very slow, although that could be my machine (it is 4-5 years old now) and produces one hell of a binary. I’m pretty sure that this is down to it linking statically with a lot of libraries, including some of the c/c++ ones, although I have yet to verify this or follow the guide on the wiki that suggests you can cut 5MB off the binary with some magic. Perhaps in future builds I’ll look at getting that done, but for now I’m just happy that it compiled.
Having done this with gcc-4.1 (4.2 just plain doesn’t work, but then isn’t claimed to on the wiki) I found that crashes occured for other people, hardly good. So I dug out gcc-3.4 and had a bash with that, only to find that errors were soon the scourge of my life again, some of them seemingly in the Valve code - great. Fortunately a bit of digging around in the documentation turns out that it’s a known thing where gcc-3.4 won’t inline functions unless you give it a -O option. This fixed it was clean sailing and I had a nice compiled version.
Unfortunately this version also segfaulted, so it was off to the debug build and to see what was going on with it. This proved rather useless, as the engine produces a stack trace without any symbols (even after the mod is compiled with them) so I’ll need to have a rummage around what’s going on at some stage, probably something to do with my system configuration compared to that of the server. Nothing is ever simple eh?
Tags: compilation, debug, gcc, half life 2, linux, segfault, server, Valve
So, this week the new version of Ubuntu (and therefore Kubuntu) was released; version 8.04 LTS - aka Hardy Heron (and a variety of other names…). As a result I decided this weekend to update my desktop (previously running Gutsy Gibbon) to this using the update manager.
Previous updates haven’t gone so well, and last time the update manager crashed out during the upgrade; leaving in place some stuff that caused my machine not to boot until I managed to track down the cause and uninstall it from a maintenance prompt. This time, however, things seemed better and the upgrade went without a hitch… until I rebooted.
It was at this time that I discovered that no longer were my drives appearing as /dev/hd<foo><bar>, but as /dev/sd<baz><gaz>. This wouldn’t have been a problem, had I been using my drives by uuid in /etc/fstab. I wasn’t, and this is probably my fault as they were updated during the edgy upgrade but I changed the file and got rid of them somewhere between edgy and feisty.
So, after some jiggery pokery I got that problem solved and my machine was back up and booting, although I can’t seem to find my DVD drive anywhere in /dev, and a post on the ubuntu forums suggests that some drives might not be compatible with things (who wants to bet that mine is one of them).
This aside I’ve not had any problems so far. I’m still running KDE3, so can’t comment on the KDE4 variant, and haven’t played around with the desktop effects stuff. One thing that I did notice, however, was the decision to ship with Firefox 3 beta 5 by default, which most of the plugins I use don’t support. This was soon fixed by reinstalling Firefox 2 and manually updating the symlink in /usr/bin (as for some reason it doesn’t use /etc/alternatives unlike a lot of other applications).
All in all this has gone pretty smoothly… although it could have been better, and I would like my DVD drive to work at some point (although I only really used it for watching films, which I can do on the xbox instead now)
Tags: gutsy gibbon, hardy heron, kubuntu, linux, upgrade
This week I purchased as Asus Eee PC as a laptop for me to take to the US and generally as a replacement for my IBM X21 with its broken screen and having had a few days of use, I’m really happy with it.
Sure, it’s tiny and doesn”t have much in the way of power (although at 900MHz/512MB of RAM it’s more powerful than my X21) but the keyboard is still more than big enough to allow me to touchtype on it with minimal mistakes and the screen is big enough for most uses. As noted in Skumby’s blog post on it it doesn’t really work too well with websites such as Google Maps.
By default the Eee comes with Xandros Linux installed, although the manual does have instructions on how to install Windows XP and which elements can be removed in order to make it fit on the 4GB drive, most of which is actually taken up by the restore image. For me this is fine, as it means I have access to the utilities that I’m used to on my other machines. At the moment there seems to be a limited number of additional packages available in the official repository, but from what I’ve read this is increasing.
All in all it’s a very nifty little device that will certainly do me fine for my portable computing requirements.
Tags: asus, eee, laptop, linux, xandros