Georg Grabler (STiAT) - blog

Life is like an endlessly recursive fractal of perverse pain and suffering.

Automount with AutoFS

Well, since udev is the “old” way of doing things, and you can run into troubels with Ubuntu 15.04 due to using systemd (fuseblk file systems need mount running in the background, and systemd will kill your mount process after some time), I decided for another solution for my former blog post: AutoFS.

Please note that the current AutoFS in Ubuntu 15.04 has a bug, this is why you’ll need to rebuild the package until a patch is released either by debian or ubuntu upstream. This patch applies to the debian package 5.0.8-2 and the Ubuntu package autofs_5.0.8-1ubuntu3. Fedora and OpenSUSE already do have a patch released, but this post is mostly towards debian/ubuntu users, it should adopt to most other systems as well.

Bug Reports:
Debian bug report
Ubuntu bug report

Patch & Install autofs

apt-get source autofs
cd autofs-5.0.8
vi ./debian/patches/autofs-5.1.0-dont-pass-sloppy-option-for-other-than-nfs-mounts.patch

The patch source can be downloaded from OpenSUSE:

Just Copy/Paste it into the editor and save the file.

Now, you need to edit the ./debian/patches/series and add our patch:

echo "autofs-5.1.0-dont-pass-sloppy-option-for-other-than-nfs-mounts.patch" >> ./debian/patches/series

And of course we need to apply it:

quilt push

Now, we finally can build the package:

dpkg-buildpackage -us -uc -nc

After that, I recommend to install autofs, and patch “over” the original autofs, just expecting Ubuntu/Debian to fix the issue before the next version auf AutoFS:

sudo apt-get install autofs
cd ..
sudo dpkg --install autofs_5.0.8-1ubuntu3_amd64.deb

Now, your AutoFS is without the bug and you can start with your configuration.

UDEV configuration
As in my previews blog post, I want the filesystem to be “always the same”. For this, I simply created the /etc/udev/rules.d/00-WD-Elements.rules as follows:

sudo vi /etc/udev/rules.d/99-WD-Elements.rules

and added the following line, which results in a symlink to /dev/Elements:

KERNEL=="sd?1", SUBSYSTEMS=="usb", ATTRS{product}=="Elements 10B8", ATTRS{serial}=="575836314134345334343938",ATTRS{manufacturer}=="Western Digital", SYMLINK+="Elements"

You can find what’s the right configuration by looking at your own device in /dev, with the following command. Note that you see a lot of device nodes / information blocks there, but you may only use two for identifying your device!

udevadm info -n /dev/sdb1 –attribute-walk

To activate your newly created rule, you can use udevadm

sudo udevadm control --reload-rules

If your created SYMLINK does not appear in /dev, your rule is wrong and you need to check this again.

AutoFS configuration
After that we can finally configure AutoFS. By default, the file /etc/auto.master is created, which we use to add our own mtab file:

sudo vi /etc/auto.master

Add the following line, and make sure you have a newline / blank line at the end of the file, otherwhise the configuration can fail!

/media/usb /etc/auto.usb --timeout=5

Now, we need to add the auto.usb file, which actually specifies our mount:

sudo vi /etc/auto.usb

Add the following line, and make sure there is a newline at the end of file again:

Elements -fstype=ntfs-3g,gid=100,dmask=002,fmask=113,utf8,flush,rw,noatime,user :/dev/Elements

For what the options are, I’ll refer you to my previews blog post.

And you’re done. Restart autofs for reloading the configuration, and your device should appear in /media/usb

sudo systemctl restart autofs

Automounting USB-Disks

There are several solutions out there for automounting USB filesystems, though, none of them satisfied me, and most made more problems and were very unreliable, so I went for the “classic” way using udev rules and fstab.

I’ve a home-server running my ownCloud for syncing my contacts/calendar/files when I’m at home (not accessible from the outside world). Though, I’ve an external harddisk at this server which may be plugged, and maybe isn’t when I’m using it somewhere else or when I just don’t use it holding a lot of my files, which is a NTFS partition.

Interestingly mounting directly via udev brought up folder permissions to be d?????????, so an inaccessible directory. Adding the line to fstab and using udev works just perfectly fine though.

Note that I added a very specific rule for the disk, since it always needs the same mountpoint to be accessible via ownCloud (if plugged in :D).

/etc/udev/rules.d/99-WDElements.rules

KERNEL=="sd?1", SUBSYSTEMS=="usb", ATTRS{product}=="Elements 10B8", ATTRS{serial}=="5758363141343453343439
38",ATTRS{manufacturer}=="Western Digital", SYMLINK+="Elements"ACTION=="add", KERNEL=="sd?1", SUBSYSTEMS=="usb", ATTRS{product}=="Elements 10B8", ATTRS{serial}=="5758363
14134345334343938",ATTRS{manufacturer}=="Western Digital", RUN+="/bin/mount /media/Elements"ACTION=="remove", KERNEL=="sd?1", SUBSYSTEMS=="usb", ATTRS{product}=="Elements 10B8", ATTRS{serial}=="5758
36314134345334343938",ATTRS{manufacturer}=="Western Digital", RUN+="/bin/umount /media/Elements"

Now, how I’m getting there? What are the Parameters?
It’s pretty simple, you can identify the parameters you’ll need to identify a harddisk by using udevadm. It’s a simple tool which outputs udev information about the device and it’s parent devices. You can use all parameters from the specified device and one parent device. This is important, because if you use information from more than one parent device, the udev rule will never ever work.
The command to use to identify the parameters is as follows, in my case at the time plugging in the USB device was /dev/sdb1

udevadm info -n /dev/sdb1 --attribute-walk

So, what does it actually do? It identifies the hardware by KERNEL, SUBSYSEMS, ATTRS{product} ATTRS{serial} ATTRS{manufacturer}, and adds a Symlink called “Elements”, which will show up as /dev/Elements. This is an important step to be able to mount it using fstab, because if you have more than one removable device plugged, it may not be sdb1, but sd?1, which is why i have the ? in the KERNEL line, which basically means every character. You could go for KERNEL==”sd[b-z]1″ or similar too, but I didn’t see a reason for that in my configuration.

This means we’re now left with a /dev/Elements node, pointing to /dev/sd?1 which is my partition on the disk. All we need to do is create the directory we want to mount the disk to, in my case a simple “mkdir /media/Elements”. But you can basically mount it everywhere you want in your filesystem.

The ACTION==”add” is what’s being executed for the device (same options to identify the device of course), when it’s plugged in. In our case, we want to mount it, and use the fstab options when mounting.

The ACTION==”remove” is what’s being executed for the device when it’s unplugged. When we unplug it, we want to unmount the filesystem. Will be re-mounted when re-plugged anyway.

/etc/fstab

/dev/Elements   /media/Elements ntfs-3g    gid=100,dmask=002,fmask=113,utf8,flush,rw,noatime,user, noauto        0       0

Parameter explaination

  • /dev/Elements
    The SYMLINK we create by the udev rule, which represents our physical device.
  • /media/Elements
    The folder you created, and want the filesystem mounted to
  • ntfs
    The corresponding file system
  • gid=100
    The group-id you want to mount the device with. The group “100” represents “users” in my case, which every user I have is in (as www-data, so ownCloud can write there too). You certainly could even set a uid if you want to, but for my configuration it’s not necessary
  • dmask=002
    This is the permission for the “folders”, means who can open, read and write folders. This is a fat/ntfs specific option, which are used on the whole filesystem. You can not set permissions on a folder basis as it’s in ext4 or other UNIX filesystems.
    The options “00” represent “read, write, execute” (rwx) for the owner (root) and the group (users).
    The option “2” is for “everyone”, which is the read and execute permission. So “everyone” may not create, write or delte in the filesystem, but they can open and read it (r-x). The table explaining the options you have in dmask and fmask is below this list.
  • dmask=113
    This is the permission for “files”, means who can read or write files. This as well is a fat/ntfs specific option, which are used on the whole filesystem. You can not set file permissions on a file basis as you can on ext4 and other unix filesystems.
    The options “11” represent the permission of the owner (root), and the group (users), and represent the read and write permission. (rw-)
    The option “3” represents the permission for “everyone”, and represents read only permission (r–).
  • utf8
    This simply specifies that utf8 characters may be used on this filesystem, which basically is a standard today.
  • flush
    This specifies that the system should use the flush data option more often on this filesystem, and as a result copy, move, delete dialogs stay up until the data is actually on the disk, otherwhise it can happen that your data is actually not on the disk when the copy is finished.
  • rw
    Specifies that the system should mount the system in rw mode, so you can read and write files from/to disk (other option would be “ro”, where nobody would be able to write the filesystem, despite the dmask and umask options)
  • noatime
    Defines that inode access times may not be updated on this filesystem. Improves performance for  FAT/NTFS filesystemss.
  • user
    Specifies that only the user mounting the filesystem (and root) can unmount it again. Since I want dbus to handle it, that option makes sense, so no other user may unmount the filesystem. The other option would be “users”, where users with the proper permission in /etc/group could mount or unmount the filesystem, which I don’t want.
  • noauto
    Specifies that the file system is not mounted by fstab, but another way. In our case, it’s udev mounting and unmounting the filesystem for us.

fmask/dmask permission option table

    0   1   2   3   4   5   6   7
r   +   +   +   +   -   -   -   -
w   +   +   -   -   +   +   -   -
x   +   -   +   -   +   -   +   -

That’s basically all you need to know for automounting specific USB devices. You can adopt adding more RUN+= options to automount all file systems being plugged in, reducing the parameters to check for which harddisk exactly was plugged in. I didn’t go for that, since it’s a very specific use-case. Tools like “autofs” claim to do that for you, but in fact – they didn’t for me, I ended up with a hell of devices and folders. A more generic UDEV rule would be the following (it does not use FSTAB):

# Don't do anything if it isn't a device
KERNEL!="sd[b-z]*", GOTO="exit"
# Don't do anything if it's not added by blkid, another check for filesystem
ACTION=="add", PROGRAM!="/sbin/blkid %N", GOTO="exit"

# Import filesystem variables as ID_FS_LABEL and ID_FS_TYPE
IMPORT{program}="/sbin/blkid -o udev -p %N

#make sure we're adding/removing a filesystem here
ACTION=="add", ENV{ID_FS_USAGE}!="filesystem", GOTO="exit"
ACTION=="remove", ENV{ID_FS_USAGE}!="filesystem", GOTO="exit"

# if we have a filesystem label, we want to use it for the mountpoint
ENV{ID_FS_LABEL}!="", ENV{dir_name}="%E{ID_FS_LABEL}"
ENV{ID_FS_LABEL}=="", ENV{dir_name}="%k"

# mount options - for all the same
ACTION=="add", ENV{mount_options}="gid=100,dmask=000,fmask=111,utf8,flush,rw,noatime,users"

# ntfs mount, we need to specify ntfs as file system
ACTION=="add", ENV{ID_FS_TYPE}=="ntfs", RUN+="/bin/mkdir -p '/media/%E{dir_name}'", RUN+="/bin/mount -t ntfs-3g -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"

# all others we just can use "auto" type
ACTION=="add", ENV{ID_FS_TYPE}!="ntfs",RUN+="/bin/mkdir -p '/media/%E{dir_name}'", RUN+="/bin/mount -t auto -o %E{mount_options} /dev/%k '/media/%E{dir_name}'"

# on unplugging, we unmount and delete the mountpoint again
ACTION=="remove", RUN+="/bin/umount '/media/%E{dir_name}'", RUN+="/bin/rmdir '/media/%E{dir_name}"

# the exit point, we need this so we can GOTO here if it's not a filesystem
LABEL="exit"

Why CIP and Prolexic are incompetent.

Okay, to be fair, this is going to be a rant, but I’ve been annoyed by those two companies now for month, so have several players of the MMORPG “Tibia”.

The state is, that Tibia is facing heavy DDoS attacks, as they did in the past. They took the step to get a professional DDoS mitigation company to their side, to protect them – since they couldn’t handle the situation themselves, which I consider a good thing to do.

Well, now guess what? Now this “professional” anti DDoS provider can’t either. This has been an on-going problem for two month now.

So – do I have proof for the problem? Yes. And I can get you another mtr report every day if you want, I just have to wait until 18:00 CEST, and can reproduce the problem just fine until midnight – every day.

Note that I filtered my own network and my public IP below – necessary due to this being a public post.

[******@ggpc]$ mtr --report --no-dns --tcp --port 7171 193.200.156.112

Start: Mon Dec 22 21:53:25 2014
HOST: ggpc                        Loss%   Snt   Last   Avg  Best  Wrst StDev
1.|-- <localnet>                0.0%    10    0.8   1.1   0.5   1.7   0.0
2.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
3.|-- <my-public-ip>               0.0%    10    9.8  12.8   9.1  24.5   4.5
4.|-- 84.116.228.149             0.0%    10   26.2  26.1  22.9  30.5   2.2
5.|-- 84.116.136.118             0.0%    10   22.5  23.7  22.5  25.3   0.7
6.|-- 84.116.132.186             0.0%    10   31.9  24.8  21.9  31.9   3.0
7.|-- 195.219.50.106             0.0%    10   50.0  37.4  33.9  50.0   4.7
8.|-- 195.219.50.110             0.0%    10   24.5  25.0  22.1  28.4   1.9
9.|-- 72.52.48.35                0.0%    10   22.6  24.2  21.6  26.7   1.4
10.|-- ???                       100.0    10    0.0   0.0   0.0   0.0   0.0
11.|-- 72.52.22.94                0.0%    10   40.3  42.1  39.0  44.7   1.8
12.|-- 193.200.156.112           20.0%    10   84.6 977.2  83.4 3096. 1351.2

So what is this? The Server 72.52.22.94 is “unknown.prolexic.com”, until that server there is no issue. The server “behind” the prolexic “entry gate” (which is just one of dozens around the world as it seems, depending on your provider and location you’ll hit this route) is having issues – a lot of issues considering a 20 % package loss and a average response time of 1351,2ms.

Yet, this “professional” provider, failed to do anything. I wonder what kind of company Prolexic is, since a DDoS protection provider they’re obviously not.

So what about CIPSoft? They say, despite of hundreds, maybe thousands of customers having problems, that there is no problem. Way to go! They just state that Prolexic has no problems – what is probably what Prolexic says, but still, they have a lot of traces of their customers and a lot of evidence that there in fact is an issue.

Denying won’t help, not Prolexic, and for sure not CIPSoft. It’s an unprofessional behavior, besides that CIPSoft fails to communicate to their customers – there is no official stance towards the problem.

[KDE] Testing Distributions

Dear folks,

I took some time-out, testing plenty of distributions which in my eye should get a closer look, and I want to give you an insight in which distribution I prefer, and the pros and cons of the other ones. Please note that this is not a rant, but a personal opinion, and maybe can be some inspiration to some distributions about what to make better.

The following distributions I tested, and I know that Mandriva as one of the leading KDE distributions is missing, but I never liked it, and I doubt that will change in the near future – so due to having a mindset about it, I left it out for good, sorry folks:

  • Arch Linux
    Pretty much up in the ranking, and one of my favourite distros – had to give it a shot.
  • Manjaro
    Arch with installer and going for desktop use? I’m in.
  • KaOSX
    Derived from Arch – let’s see what they did (so far).
  • Fedora
    Well, being the RH sponsored one – let’s see.
  • OpenSUSE
    Giving themselves credit as the best – so testing it was obviously logical.
  • Chakra
    Don’t know the current state of the distribution, but once developed for it. Wanted to see where they are.
  • KUbuntu
    It’s an Ubuntu derivate, and since Ubuntu gets much credit – test it.
  • Debian
    Hey – it’s still the most used distribution, considering all the derivates at least.

I’ll start off with the installation progress, and how “easy” things were.

 

Installation Progress

Arch Linux

Ye, well, we all know that Arch is not the easiest distribution to install, and that’s one of the critism I have. Though, it went much smmother (especially considering I’m running an UEFI system) than I expected. I was ready and set up basically in the same time as when I would have installed any other distriution – which is probably because pacman seems to be lightening fast. Not easy enough for new users, but pretty solid process and documentation – and especially for that one – kudos Arch.
Though, /home volume encryption turned out harder than thought, and workflows described in the WIKI did not work at all, that’s a -.
Score: 5/10

Manjaro

Supposed to be easier than Arch. Supposed to – exactly. The installer is – irritating, letting me choose region and language twice (ye, I know, once for the locales, once for keyboard and time settings). Though, not necessary.
But the installation process was pretty painless overall – I was impressed. Though, /home folder encryption missing, -1 for Manjaro.
Score: 8/10

KaOSX

Well – that one was a bit more “tricky” since they officially don’t support UEFI, but my hardware can only be booted UEFI. I got a certain ISO file (thanks Demm by the way for pointing me to it) which can boot UEFI, and got it installed. The installation progress was pretty neat, except two bugs around (locale setting and keyboard settings which are not dealt with). Being a good old Arch user, that wasn’t a big deal, but for newcomers a no-go of course. They go for Calamares, a pretty new installer slowly taking shape, so I’m sure that will improve over the next year – I’ll happily give it a shot again. Home folder encryption was missing as well.
Score: 7/10

Fedora

Fedora had by far the best and easiest installation process I found. With one exception: /home volume encryption missing.
Score: 9/10

OpenSUSE

Pretty neat installation process, easy to use, pretty much the same as Fedora. But /home encryption missing as well. Straight-forward, except a nasty bug I ran into: The keyboard settings are not set, so you end up with an us keyboard. In my case, the keyboard was not at all recognized at the boot time (not even with the wrong keyboard setting), so I couldn’t type my password in. Changing it to “de” in the /etc/XORG/xorg.conf.d/00-keyboard.conf solved the issue – though, a no-go, and does not live up to a major distribution or any QA I’d expect of it.
Score: 7/10

Chakra

I shouldn’t be too hard of them, since it was me who maintained the intaller, but it’s a test – so I have to. Though, it is crippled, and they should look another way and get away of Tribe. Maybe Thus or Calamares can be the future for them, I don’t see Tribe in any shape to be their future installer, except a maintainer steps up. Another problem is, that they don’t have an UEFI boot, so I couldn’t even boot Chakra in UEFI mode (I did it booting an Arch UEFI, and installing Chakra from there).

Score: 3/10

KUbuntu

Oh hell, all I want. /home encryption, easy setup. A little minus for setting the keyboard language AFTER the WIFI password – seriously? My WIFI PW is 24 random characters – I can’t easily type that with an US keyboard being used to a german one.

Score: 9/10

Debian

To my surprise, Debian was almost the easiest to set up. Though, I missed /home encryption there too. But the downside is, compared to all others, to install Debian took ages.

Score: 8/10

Pre-Installed Applications

Arch Linux

Well, arch is famous for not pre-installing too much, or bundling too much. It’s lean, it’s KISS. If you know what you do, it’s a simple 10. If you don’t, it’s a 0. But well, the distribution is designed that way, so it’s a 10 in my eyes, since I was able to configure it in exactly the way I wanted it.

Score: 10/10.

Manjaro

Well, I was surprised with how much *crap* this distribution comes. I didn’t expect that, since the installation media was not that big, but it has piles of software loaded by default and when I looked at the lists, I was like: “I rather uninstall the distribution before I uninstall all the crap they pre-install”. Several web browsers is the first thing I recognized, and then it was Rekonq and Konqueror – and KDE users know, if there is a Qt choice for a browser it’s QupZilla. Rekonq has this nasty habit of trying to guess your URLs, still getting them wrong (https://https:// – uhm?). In general the default software selection of Manjaro seems not too well thought, and it’s the first complete no-go.

Score: 0/10

KaOSX

Well, while I agree with them “the best of a breed”, they pre-install QupZilla, where QupZilla is for sure not the best of the breed of browsers. The rest of the software collection is neat, and pretty clean, I liked that they only install “one tool for the job” ;-).
A big downside I found is that they don’t provide i386 / multilib repos, so you can’t use Skype, Steam, and probably other software. This is sad, but for me personally no real bummer – for some others not being able to skype or play their linux games it is.

Score: 4/10

Fedora

Hmh, pretty neat software collection. As all of them, it comes with the whole PIM suite, but I guess that’s what’s expected nowdays. The only main thing I have a lot of critism for is that it ships by default with Apper. Apper uses packagekit – I know, but it always tells you have only 12 seconds to go doing updates, and uninstalling software it never can meet dependencies (clean install, update, and then remove KMail in example – won’t work). That shouldn’t be the choice of a default GUI package manager, and would drive a regular user nuts, since he wouldn’t know how to install / uninstall software.

Score: 5/10 (since Apper is not usable at all).

OpenSUSE

Hell yea, I can live with that. Not bad, but not good either. The only thing I have to say: the software installation progress gives way too much information, and is a lot too complicated to use. A bit of an easier version would have been nice. In the end, a stable and good software collection, and a pretty solid installation tool

Score: 8/10

Chakra

It comes with a very pre-selected sofware setup, which is in my eyes well selected, but the browser choice is “limited” due to their opionion of only using Qt/KDE software – which inherits the bad browser choice.

Score: 6/10

KUbuntu

While I don’t agree with [a lot] of software installed (personal preferences, as Clementine instead of Amarok, VLC instead of Dragonplayer etc.) – but it’s a KDE distribution, so what did I expect – I have to say it’s clean. One tool for the job, and for real, the best package manager out there in KDE distributions. Muon and it’s friends (Discover etc.) are pretty well designed and well working.

I have tried to migrate a few desktops to KUbuntu for my Aunt (68 years old) and my grandmother (79 years old), and it works flawlessly for them – so the selection can’t be that bad.

Score: 10/10

Debian

I was again pretty surprised about Debian. A lot of crap, but a seriously good software collection pre-installed. It can’t hold up the package management pre-installing Apper with Muon of course, but it’s a neat selection and it works. And Apper slightly better than the complicated OpenSUSE thing Yast provides.

Score: 9/10

Resume

Whew, what to sum up. I personally don’t like Ubuntu / Canonical / KUbuntu too much, but they’re doing a good job, and as KDE distribution I can recommend it – since it was the only fully featured distribution I found, with only little drawbacks. I personally will continue to use Arch – personal favourite :) .. but to be true, with the installation process, Muon and the pre-selected software, KUbuntu is almost too mighty. So for all looking for a stable, well organized and snappy KDE distro, I can recommend it.

About others

I’m aware that I’ve had not all distros. Especially Netrunner I’m still interested in, but didn’t find the time to test (yet). I’m also not too sure what the “rolling” and “stable” model basing on two different distribtuions should be, and what Netrunner could do better than KUbuntu (except the default installation, which is already pretty neat in KUbuntu). But a Manjaro with well selected software – does not sound too bad for me (very good to be true), but I don’t get the goal on the “stable” release.

Maybe I get around doing another test on Netrunner, PCLinuxOS and Mandriva one day, but I had enough of hopping the past weeks :).

Tibia in Linux, Hotkey, Razer Naga, Profiles

Okay, may some know, I’m not the gamer within, but there is a special game I like, Tibia. It’s a 2D MMORPG which features a native Linux client.

The only thing which is annoying is, that there is no proper configuration for the Razer Naga mouse I’m using to play the game. So I sat down, and did my own “configuration”, added profiles to TIbia for playing different characters, and did some re-binding of some keys. This here is intended to make it easier for newcomers wanting to play this in Linux to configure.

My Setup

So, how did I set up my system for this. As a side-note I’m currently using KUbuntu with binary NVidia drivers, since I get the best performance out of that.

I created a ~/Games/Tibia folder, where I unpacked the Tibia files. Later, I created another folder in the Tibia folder called “TibiaSettings” which include the profiles for my different characters, named Tibia_Arisyn, Tibia_Stiorra and so on, we’ll get to that later.

As a small piece, my folder structure. Note that I use the StarTibia.sh in the TibiaSettings folder, not the one shipped with TIbia:

schurl@ggpc:~$ find Games/Tibia/ |grep -v map
Games/Tibia/
Games/Tibia/StartTibia.sh
Games/Tibia/TibiaSettings
Games/Tibia/TibiaSettings/StartTibia.sh
Games/Tibia/TibiaSettings/Tibia_Arisyn
Games/Tibia/TibiaSettings/Tibia_Arisyn/Tibia.cfg
Games/Tibia/TibiaSettings/Tibia_Arisyn/Server Log.txt
Games/Tibia/TibiaSettings/Tibia_Arisyn/Tibia.cfg.bak
Games/Tibia/TibiaSettings/Tibia_Arisyn/English Chat.txt
Games/Tibia/TibiaSettings/Tibia_Arisyn/Phoric.txt
Games/Tibia/TibiaSettings/Tibia_Bazhuk
Games/Tibia/TibiaSettings/Tibia_Bazhuk/Tibia.cfg
Games/Tibia/TibiaSettings/Tibia_Bazhuk/Tibia.cfg.bak
Games/Tibia/TibiaSettings/Tibia_Bazhuk/English Chat.txt
Games/Tibia/TibiaSettings/Tibia_Bazhuk/Phoric.txt
Games/Tibia/TibiaSettings/Tibia_Stiorra
Games/Tibia/TibiaSettings/Tibia_Stiorra/Zimmiee.txt
Games/Tibia/TibiaSettings/Tibia_Stiorra/Tibia.cfg
Games/Tibia/TibiaSettings/Tibia_Stiorra/Server Log.txt
Games/Tibia/TibiaSettings/Tibia_Stiorra/Tibia.cfg.bak
Games/Tibia/TibiaSettings/Tibia_Stiorra/Emily Sofie.txt
Games/Tibia/TibiaSettings/Tibia_Stiorra/English Chat.txt
Games/Tibia/TibiaSettings/Tibia_Stiorra/Kurotshuchi.txt
Games/Tibia/TibiaSettings/Tibia_Stiorra/Local Chat.txt
Games/Tibia/TibiaSettings/Tibia_Stiorra/Wanderers.txt
Games/Tibia/TibiaSettings/Tibia_Stiorra/Phoric.txt
Games/Tibia/TibiaSettings/Tibia_Stiorra/Tibia.exp
Games/Tibia/TibiaSettings/Tibia_Izolde
Games/Tibia/TibiaSettings/Tibia_Izolde/Tibia.cfg
Games/Tibia/TibiaSettings/Tibia_Izolde/Server Log.txt
Games/Tibia/TibiaSettings/Tibia_Izolde/Tibia.cfg.bak
Games/Tibia/TibiaSettings/Tibia_Izolde/English Chat.txt
Games/Tibia/TibiaSettings/Tibia_Izolde/Phoric.txt
Games/Tibia/TibiaSettings/Tibia_Ahazin
Games/Tibia/TibiaSettings/Tibia_Ahazin/Tibia.cfg
Games/Tibia/TibiaSettings/Tibia_Ahazin/Server Log.txt
Games/Tibia/TibiaSettings/Tibia_Ahazin/Tibia.cfg.bak
Games/Tibia/TibiaSettings/Tibia_Ahazin/Emily Sofie.txt
Games/Tibia/TibiaSettings/Tibia_Ahazin/English Chat.txt
Games/Tibia/TibiaSettings/Tibia_Ahazin/Wanderers.txt
Games/Tibia/TibiaSettings/Tibia_Ahazin/Phoric.txt
Games/Tibia/TibiaSettings/Tibia_Ahazin/Tibia.exp
Games/Tibia/TibiaSettings/Tibia_Ephiroth
Games/Tibia/TibiaSettings/Tibia_Ephiroth/Tibia.cfg
Games/Tibia/TibiaSettings/Tibia_Ephiroth/Tibia.cfg.bak
Games/Tibia/TibiaSettings/Tibia_Ephiroth/English Chat.txt
Games/Tibia/TibiaSettings/Tibia_Ephiroth/Phoric.txt
Games/Tibia/TibiaSettings/AutoHotkey.ahk
Games/Tibia/Patch
Games/Tibia/Tibia
Games/Tibia/libc6
Games/Tibia/libc6/libnss_files.so.2
Games/Tibia/libc6/libpcprofile.so
Games/Tibia/libc6/libresolv-2.7.so
Games/Tibia/libc6/ld-2.7.so
Games/Tibia/libc6/libdl-2.7.so
Games/Tibia/libc6/libpthread-2.7.so
Games/Tibia/libc6/libBrokenLocale-2.7.so
Games/Tibia/libc6/libnsl-2.7.so
Games/Tibia/libc6/libcrypt-2.7.so
Games/Tibia/libc6/libcidn.so.1
Games/Tibia/libc6/libutil.so.1
Games/Tibia/libc6/libnss_dns.so.2
Games/Tibia/libc6/libthread_db-1.0.so
Games/Tibia/libc6/libSegFault.so
Games/Tibia/libc6/libc.so.6
Games/Tibia/libc6/libnss_files-2.7.so
Games/Tibia/libc6/libnss_nisplus.so.2
Games/Tibia/libc6/libmemusage.so
Games/Tibia/libc6/libutil-2.7.so
Games/Tibia/libc6/libBrokenLocale.so.1
Games/Tibia/libc6/librt-2.7.so
Games/Tibia/libc6/libm.so.6
Games/Tibia/libc6/libnss_compat-2.7.so
Games/Tibia/libc6/libanl-2.7.so
Games/Tibia/libc6/libm-2.7.so
Games/Tibia/libc6/libthread_db.so.1
Games/Tibia/libc6/libnss_nis-2.7.so
Games/Tibia/libc6/libanl.so.1
Games/Tibia/libc6/README
Games/Tibia/libc6/libcrypt.so.1
Games/Tibia/libc6/libnss_hesiod.so.2
Games/Tibia/libc6/libpthread.so.0
Games/Tibia/libc6/libc-2.7.so
Games/Tibia/libc6/libdl.so.2
Games/Tibia/libc6/libresolv.so.2
Games/Tibia/libc6/libnss_dns-2.7.so
Games/Tibia/libc6/libnss_compat.so.2
Games/Tibia/libc6/librt.so.1
Games/Tibia/libc6/libnss_hesiod-2.7.so
Games/Tibia/libc6/libnss_nis.so.2
Games/Tibia/libc6/ld-linux.so.2
Games/Tibia/libc6/libnsl.so.1
Games/Tibia/libc6/libnss_nisplus-2.7.so
Games/Tibia/libc6/libcidn-2.7.so
Games/Tibia/Tibia.xpm
Games/Tibia/Tibia.dat
Games/Tibia/Showerror
Games/Tibia/Tibia.pic
Games/Tibia/Tibia.spr

Razer Naga

Oh ye, that is a tough one. By default, the keys for the Razer Naga in Linux are bout to 1-12, but we’ll need them boud to F1-F12. You can achieve that by a simple thing: A Startscript. So I created Script, which gets more and more things added over the course, first is the Razer Naga stuff.

I want to note here that the ground work for this was done by a user (Xaero252) on the Arch Linux forums. I just tweaked it a little, as you can see at my comment int he forum below.

#!/bin/bash

remote_id=$(

xinput list |
	sed -n 's/.*Naga.*id=\([0-9]*\).*keyboard.*/\1/p'
)

[ "$remote_id" ] || exit

mkdir -p /tmp/xkb/symbols
cat &gt;/tmp/xkb/symbols/custom &lt;&lt;\EOF

xkb_symbols "remote" {
	key { [F1, F1] };
	key { [F2, F2] };
	key { [F3, F3] };
	key { [F4, F4] };
	key { [F5, F5] };
	key { [F6, F6] };
	key { [F7, F7] };
	key { [F8, F8] };
	key { [F9, F9] };
	key { [F10, F10] };
	key { [F11, F11] };
	key { [F12, F12] };
};

EOF

This script will set the Razer Naga keys to F1-F12. I added this to the startscript of Tibia on the top.

Keyboard Settings

Well, Tibia is much more convenient playing using the keypad because you can move diagonal there. For that, I usually set the 5 key on the keypad to “down”, and the PAGE UP to SHIFT, and PAGE DOWN to CTRL to have it a little bit more convenient playing. To do this, we need to reassign the keys to new keycodes in X. This can be done by xmodmap.

xmodmap -e 'keycode 84=Down'
xmodmap -e 'keycode 117=Control_L'
xmodmap -e 'keycode 112=Shift_L'

To set the keys back to their original value, you can use the following code:

xmodmap -e 'keycode 84=Begin'

xmodmap -e ‘keycode 117=Next’
xmodmap -e ‘keycode 112=Prior’

Profiles
Yes, I use several different characters, and those who know TIbia know that different characters need different hotkeys. Since CIP did not implement hotkey profiles in the native clients (only in the Flash Client, which does not work very well for me in Linux), there is a workaround to do it.
Therefore, a folder for each character will be created, as described above. I’ll do that with the example of Stiorra and Arisyn, two of my characters.
First, the Script. To get a proper “setting” value to tibia, you need to add starting tibia.

cd ~/Games/Tibia

./Tibia path $1

Pretty easy, isn’t it? But it’s only half of the rent, since you need shortcuts. For that I created desktop shortcuts. Note that those are MY shortcuts with MY pathes:

Arisyn

[Desktop Entry]
Comment[en_US]=
Comment=
Exec=/home/schurl/Games/Tibia/TibiaSettings/StartTibia.sh /home/schurl/Games/Tibia/TibiaSettings/Tibia_Arisyn/
GenericName[en_US]=Tibia Arisyn
GenericName=Tibia Arisyn
Icon=
MimeType=
Name[en_US]=Tibia Arisyn
Name=Tibia Arisyn
Path=/home/schurl/Games/Tibia
StartupNotify=true
Terminal=false
TerminalOptions=\s--noclose
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=none
X-KDE-SubstituteUID=false
X-KDE-Username=

Stiorra

[Desktop Entry]
Comment[en_US]=
Comment=
Exec=/home/schurl/Games/Tibia/TibiaSettings/StartTibia.sh /home/schurl/Games/Tibia/TibiaSettings/Tibia_Stiorra/
GenericName[en_US]=Tibia Stiorra
GenericName=Tibia Stiorra
Icon=
MimeType=
Name[en_US]=Tibia Stiorra
Name=Tibia Stiorra
Path=/home/schurl/Games/Tibia
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

Note that I start Tibia using a shell script passing the path to the folder to be used as profile to Tibia as the first parameter. The script will be posted afterwards as complete script.

The complete Script

This should basically do what you need, put it in your TibiaSettings folder created, and it will. If you only need parts of what I do, you can remove the parts described above seperately, they don’t have any effect on each other.

#!/bin/bash

remote_id=$(
	xinput list |
		sed -n 's/.*Naga.*id=\([0-9]*\).*keyboard.*/\1/p'
)

[ "$remote_id" ] || exit

mkdir -p /tmp/xkb/symbols
cat &gt;/tmp/xkb/symbols/custom &lt;&lt;\EOF

xkb_symbols "remote" {
	key { [F1, F1] };
	key { [F2, F2] };
	key { [F3, F3] };
	key { [F4, F4] };
	key { [F5, F5] };
	key { [F6, F6] };
	key { [F7, F7] };
	key { [F8, F8] };
	key { [F9, F9] };
	key { [F10, F10] };
	key { [F11, F11] };
	key { [F12, F12] };
};

EOF

setxkbmap -device $remote_id -print | sed 's/\(xkb_symbols.*\)"/\1+custom(remote)"/' | xkbcomp -I/tmp/xkb -i $remote_id -synch - $DISPLAY 2&gt;/dev/null
xmodmap -e 'keycode 84=Down'
xmodmap -e 'keycode 117=Control_L'
xmodmap -e 'keycode 112=Shift_L'

cd ~/Games/Tibia
./Tibia path $1

xmodmap -e 'keycode 84=Begin'
xmodmap -e 'keycode 117=Next'
xmodmap -e 'keycode 112=Prior'

Nokia, Microsoft, Qt, the future and so on

Well, a lot of things have been posted, and some really good concerns have been brought up by the community of Qt, KDE and others about Qt, the future, startup companies and so on.

Well, to the point, the concerns are right now not really justified.
* Qt is open source, and a lot of companies, no really small ones as Intel, Skype, Adobe etc. do have interest in it.
* MeeGo finds itself being of high interest to Intel, ZTE and others
* Nokia has to bet the next two years on Qt and Symbian, so Qt will be maintained, and it will improve.
* Nokia sees Qt / MeeGo as their “next” big thing, as a R&D project though, but who says that half a billion US Dollars a year to MeeGo is that bad? Certainly, it is less than it was, but it’s not as if it would die.

For Nokia, Qt and MeeGo will not be the primary goal for the next few years. We know that, and it will have impact. But don’t overreact on this, the time to recognize when it’s time for a port of Qt is far in the future. Nokia still shows interest in MeeGo, as a project and as a platform. The ones to be disappointed are those at Intel. They have had a good bet on Nokia to ship Smartphones using Intel Chipsets with their High-End smartphones.

Well, I would say: Keep watching closely. But stay calm.

And the winner is: xf86-video-intel

At least for the Linux game of the year award. I rarely had so much fun with anything else but the intel drivers lately.

So, what is wrong? Well, besides that dual-head doesn’t work any longer in the new version (2.13.0), you also get a lot of lockups when using desktop effects (at least in KDE). I had to disable the desktop effects again to be able to use the desktop at all (having a freeze every few minutes isn’t much fun when you want to work).

I wonder where their testing squad is before the releases? 4 times a year a few weeks holidays, right before a release? I mean this lockups and problems are nothing new to the whole community, and it takes ages now to fix the most critical parts. Instead of fixing, they introduce new errors and problems every release.

I hope they really get their drivers on track soon, it really starts to annoy me. I love free software, and Intels commitment by providing open source drivers at all, but there must be a way to provide better working drivers than the current one, especially for a company as intel.

[JuK] Am I working?

Yes, I am. I’ve been trying to port the trackpicker to Qt4. Sadly, I realized that the MusicBrianz / TunePimp implementation isn’t working at all.

Due to the reason that libtunepimp is depreciated for ages now, and even musicbrainz2 is, I decided to give it a shot and make a test application.

I today implemented a basic interface and backend which can handle the data. I’m now reading into libmusicbrainz[2|3], to create a working implementation for both.

I’ve done all this in a test application, not in JuK, since JuK will make it even more complicated than it is. I’ve plans on implementing both, as it is with libtunepimp, it will be with musicbrainz[2|3] in future, but with the same API on our side, implemented in two different C++ libraries. This will make the JuK code easier to read on this part.

Why musicbrainz2? Simply, most distributions ship with libmusicbrainz2 (musicbrainz3 is not in the main repositories in most distributions), what forces me somewhat doing that as well.

To be heared (soon) of.

// STi

1 Monitoring, 2 Amarok – JuK

I know I was hardly working on JuK lately (not at all to be true), due to other favoured projects as building a own agent based system monitoring framework. I’ve given up that task though, it’s a lot of quite complex work doing this cross-platform (all flavours of unix and windows, mainframe interfaces etc).
Also, I completely underestimated the “pro-active monitoring” suites, which is basically easy if you do it protocol based, but a lot of harder concept-wise.
Besides that it’s a lot of work, I proved my current concepts quite wrong, and have no intention to start over from the start there again.

I decided I’ll work some on JuK again. I was using Amarok lately, because all people say it “rocks”. Maybe it “rocks”, because on my desktop it does play rock (metal) music. But the application itself? I don’t know. I have not succeeded yet getting Amarok to play my playlist randomly, and repeat the playlist. I can just “sort” it randomly by clicking, what’s not too nice in my eyes, while I couldn’t find the “repeat playlist” at all, not even after spending 30 minutes looking + using google. I’m pretty disappointed about that.

So – what’s next? I’ll move on now, no, not away of KDE, but back to JuK. I’ve plans spending some time again there, and I’ll definitely start out porting the last parts of JuK to Qt4 before messing around with other stuff (playlist management in example). I’d also like to make some changes to the UI, especially the playlist / collection management, but I’m not sure how many guys would disagree with that :-).

Anyway, I decided I’ll take the task of finishing the port, to get it pushed by mpyne again, and will apply for an SVN account then. I’ll go on porting first to see if I really have enough time contributing to KDE.

Is KDE moving too fast?

Well, can anything move too fast? I’ve some concerns about KDE and KDE Development speed, or rather the speed features are added.

I recently tried KDE 4.4 SC RC2 (or better, I’m using it as my main desktop). Of course, this is not the final 4.4.0 version, and not even the last one of 4.4.x series.
Allthough, what I realized, it was a huge performance drop on my systems compared to 4.3. Also, it really has a bunch of smaller bugs. The good side is, all bugs I looked for were already reported, even when most were not marked release critical (they are not, so +1 there).

KDE implements new technology very fast, and really gives you a bleeding edge desktop. This probably is needed, so you can get a desktop fitting the time we’re living in.
In my position, I’m using a Dell Latitude E5500 with a Intel 4500 HD graphics card.I disabled all desktop effects (since the hardware is lacking performance in Linux, and the latest Intel drivers are really getting rather worse than better as they promised). Anyway, my system in idle with no applications opened eats up to 15-20 % CPU (of both CPU cores) by default, and after some usage about 2 GB RAM (all I have), what’s quite a lot to me, and generally does not feel as if it was responding quick enough. Nowdays, dolphin needs up to 10 seconds starting up, with an almost empty home directory (6 folders 2 files).

This makes me think on: How’s KDE moving lately? A lot of new features, quite quick release cycles. That’s nice, allthough, is enough time spent in fixing bugs in the cycles? Is there enough drive for performance of the desktop? Computers are evolving, and my system starts to grow old already as well, but I had no intentions buying a new laptop with 6 gb ram and some GeForce graphics card in the near future.

Of course, everyone should go with the time. But thinking on how everybody was trampling on Windows Vista for it’s hardware hungryness – KDE currently is far beyond that.

I hope the best, and still hope the KDE Community and Contributors can prove me wrong about that.