Getting Google Earth in Gentoo Linux to display Panoramio photos

Well, I decided to get Panoramio photos working in Google Earth installed using the hacked ebuild I posted in April 2014 (see my post Work-around if 64-bit Google Earth crashes in Gentoo Linux).

The modification devised by user amirpli (see Comment #9 in Gentoo Bugzilla Bug Report No. 490066) does not work in my case, as explained in detail in the above-mentioned April 2014 post. I believe this is because I am using the FGLRX video driver, as I have successfully applied amirpli‘s modification in an installation on a PC that has an Intel GPU.

Here is how I got Panoramio photos to display on my main laptop running the FGLRX driver, although my fix is yet another hack: I use 32-bit libraries downloaded from the Web. It works for me, though!

Background

I am running Google Earth 7.1.2.2041 installed from a local overlay (see my above-mentioned April 2014 post) in KDE 4.14.3 under Gentoo Linux ~amd64 with the 3.17.1-gentoo-r1 kernel and FGLRX driver:

# eix ati-drivers
[I] x11-drivers/ati-drivers
     Available versions:
     (legacy) 13.1_pre897^td
     (1)    13.4^td 13.9^td 13.12^td 14.4_p1^td (~)14.6_beta2^td (~)14.9-r2^ftd (~)14.12-r2^td 14.12-r3^td
       {debug disable-watermark +modules multilib pax_kernel qt4 static-libs ABI_X86="32 64" KERNEL="linux"}
     Installed versions:  14.12-r3(1)^td(20:22:04 13/02/15)(modules qt4 -debug -pax_kernel -static-libs ABI_X86="32 64" KERNEL="linux")
     Homepage:            http://www.amd.com
     Description:         Ati precompiled drivers for Radeon Evergreen (HD5000 Series) and newer chipsets

Procedure

1. Download into ~/Downloads/ the following Ubuntu 32-bit packages from http://packages.ubuntu.com/utopic/i386/libs/

$ ls -la *.deb
-rw-r--r-- 1 fitzcarraldo users  24060 Mar  1 23:59 libecore-imf1_1.8.6-2ubuntu1_i386.deb
-rw-r--r-- 1 fitzcarraldo users 274206 Mar  1 22:59 libfreeimage3_3.15.4-3build1_i386.deb
-rw-r--r-- 1 fitzcarraldo users  52154 Mar  1 23:45 libilmbase6_1.0.1-6.1_i386.deb
-rw-r--r-- 1 fitzcarraldo users 135300 Mar  2 00:28 libjasper1_1.900.1-debian1-2ubuntu0.2_i386.deb
-rw-r--r-- 1 fitzcarraldo users 106868 Mar  1 23:00 libjpeg-turbo8_1.3.0-0ubuntu2_i386.deb
-rw-r--r-- 1 fitzcarraldo users  98500 Mar  1 23:39 libopenjpeg5_1.5.2-2_i386.deb
-rw-r--r-- 1 fitzcarraldo users 189420 Mar  2 00:21 libraw10_0.16.0-6_i386.deb

2. Download into ~/Downloads/ the following 32-bit packages from http://rpmfind.net/linux/rpm2html/search.php and http://pkgs.org/

$ ls -la *.rpm
-rw-r--r-- 1 fitzcarraldo users  57976 Mar  2 00:13 libilmbase6-1.0.2-11.1.2.i586.rpm
-rw-r--r-- 1 fitzcarraldo users 148379 Mar  2 00:03 libilmimf6-1.6.1-alt9.i586.rpm

3. Extract into ~/Downloads/ the following 32-bit libraries from the above-mentioned .deb and .rpm packages:

$ ls -la lib*.so*
-rw-r--r-- 1 fitzcarraldo users 644568 Apr 27  2014 libfreeimage-3.15.4.so
-rw-r--r-- 1 fitzcarraldo users 677340 Apr 27  2014 libfreeimageplus-3.15.4.so
-rwxr-xr-x 1 fitzcarraldo users 271780 Jul 15  2012 libHalf.so.6.0.0
-rwxr-xr-x 1 fitzcarraldo users 104044 Jul 15  2012 libIex.so.6.0.0
-rw-r--r-- 1 fitzcarraldo users 671896 Dec  3 15:06 libIlmImf.so.6.0.0
-rwxr-xr-x 1 fitzcarraldo users  22260 Jul 15  2012 libIlmThread.so.6.0.0
-rw-r--r-- 1 fitzcarraldo users 342116 Jan 22 18:46 libjasper.so.1.0.0
-rw-r--r-- 1 fitzcarraldo users 300776 Dec 19  2013 libjpeg.so.8.0.2
-rw-r--r-- 1 fitzcarraldo users 142604 Apr 26  2014 libopenjpeg.so.1.5.2
-rw-r--r-- 1 fitzcarraldo users 657336 Jul 22  2014 libraw.so.10.0.0

4. Merge the 32-bit Google Earth package from a local overlay, using the ebuild listed in my above-mentioned April 2014 post:

# emerge -C googleearth
# rm -rf /opt/googleearth/
# emerge googleearth::local_overlay

5. Delete the four bundled Qt libs, compile the shim devised by user amirpli (see Comment #9 in Gentoo Bugzilla Bug Report No. 490066) but compile it for 32 bits (‘-m32‘), and edit the googleearth script to use the 32-bit libfreeimage.so.3 that you will copy into /opt/googleearth/ later:

# cd /opt/googleearth
# rm libQt*
# touch baifaao.cpp
# nano baifaao.cpp
# cat baifaao.cpp
/* amirpli 2013/11/28 */
#include
extern "C" {
        int _Z34QBasicAtomicInt_fetchAndAddOrderedPVii(QAtomicInt* a, int b) {
                return a->fetchAndAddOrdered(b);
        }
}
# gcc -I/usr/include/qt4 -O3 -m32 -fPIC --shared baifaao.cpp -o baifaao.so
# nano googleearth
# tail googleearth
}

script_path=$(FindPath $0);

cd $script_path;

export LD_PRELOAD=/opt/googleearth/libfreeimage.so.3:/opt/googleearth/baifaao.so
export LC_NUMERIC=en_US.UTF-8 # Must do this if you are using non-US locale.

LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ./googleearth-bin "$@"

6. Copy into the Google Earth directory all the libraries downloaded and extracted in Steps 1 to 3 above, and create the necessary symlinks and permissions:

# cd /opt/googleearth
# cp /home/fitzcarraldo/Downloads/libfreeimage-3.15.4.so .
# cp /home/fitzcarraldo/Downloads/libfreeimageplus-3.15.4.so .
# ln -s libfreeimage-3.15.4.so libfreeimage.so.3
# ln -s libfreeimage.so.3 libfreeimage.so
# ln -s libfreeimageplus-3.15.4.so libfreeimageplus.so.3
# ln -s libfreeimageplus.so.3 libfreeimageplus.so
# chmod +x libfreeimage-3.15.4.so
# chmod +x libfreeimageplus-3.15.4.so
# cp /home/fitzcarraldo/Downloads/libjpeg.so.8.0.2 .
# ln -s libjpeg.so.8.0.2 libjpeg.so
# ln -s libjpeg.so libjpeg.so.8
# chmod +x libjpeg.so.8.0.2
# cp /home/fitzcarraldo/Downloads/libopenjpeg.so.1.5.2 .
# ln -s libopenjpeg.so.1.5.2 libopenjpeg.so
# ln -s libopenjpeg.so libopenjpeg.so.5
# chmod +x libopenjpeg.so.1.5.2
# cp /home/fitzcarraldo/Downloads/libIlmImf.so.6.0.0 .
# ln -s libIlmImf.so.6.0.0 libIlmImf.so
# ln -s libIlmImf.so libIlmImf.so.6
# chmod +x libIlmImf.so.6.0.0
# cp /home/fitzcarraldo/Downloads/libHalf.so.6.0.0 .
# ln -s libHalf.so.6.0.0 libHalf.so
# ln -s libHalf.so libHalf.so.6
# chmod +x libHalf.so.6.0.0
# cp /home/fitzcarraldo/Downloads/libIex.so.6.0.0 .
# ln -s libIex.so.6.0.0 libIex.so
# ln -s libIex.so libIex.so.6
# chmod +x libIex.so.6.0.0
# cp /home/fitzcarraldo/Downloads/libraw.so.10.0.0 .
# ln -s libraw.so.10.0.0 libraw.so
# ln -s libraw.so libraw.so.10
# chmod +x libraw.so.10.0.0
# cp /home/fitzcarraldo/Downloads/libIlmThread.so.6.0.0 .
# ln -s libIlmThread.so.6.0.0 libIlmThread.so
# ln -s libIlmThread.so libIlmThread.so.6
# chmod +x libIlmThread.so.6.0.0
# cp /home/fitzcarraldo/Downloads/libjasper.so.1.0.0 .
# ln -s libjasper.so.1.0.0 libjasper.so
# ln -s libjasper.so libjasper.so.1
# chmod +x libjasper.so.1.0.0

Finally, launch Google Earth from your user account, not the root user’s account:

$ googleearth

Clicking on any photo icon in Google Earth should now display Panoramio photos.

If you click on a photo icon and the frame that opens displays several thumbnails, clicking on a thumbnail may result in a white Panoramio frame without any photo and thumbnails displayed. According to user amirpli this problem occurs in KDE but not GNOME. If it does happen in your case, to view the other photos right-click on a thumbnail and select ‘Open in New Window’. This way you will be able to view any of the photos.

It’s nice to be able to see the Panoramio photos again in Linux with the FGLRX driver.

NetworkManager creates a new connection ‘eth0′ that does not work

Several months ago a new entry ‘eth0′ began appearing under ‘Available connections‘ in the KDE plasma-nm widget (the KDE GUI front-end to NetworkManager) in my Gentoo Linux installation. However, there was already an automatically-created entry ‘Wired connection 1′ for the wired interface. In the plasma-nm GUI I could see that both entries were for the same interface (eth0) and MAC address. My laptop could access the Internet via the connection ‘Wired connection 1′ as usual, but not via the new connection ‘eth0′. And if I deleted ‘eth0′ in the plasma-nm GUI, ‘Wired connection 1′ could not access the Internet until I recreated ‘eth0′ manually.

Apart from the fact that two entries for the same interface is unnecessary, it was annoying because sometimes ‘eth0′ automatically became the active connection instead of ‘Wired connection 1′, despite the fact that only ‘Wired connection 1′ had ‘Automatically connect to this network when it is available’ ticked in the plasma-nm GUI. When this happened, the network icon on the Panel showed an active connection but in fact the laptop could not connect to the Internet. However, the connection did work as expected on the occasions when ‘Wired connection 1′ automatically became the active connection or if I switched manually to ‘Wired connection 1′ via the plasma-nm GUI.

Even more strangely, if I happened to be using WiFi when no Ethernet cable was connected, very occasionally the network icon on the Panel would change from a wireless icon to a wired icon and connection to the Internet would be lost. I would then have to re-select the wireless network in order to reconnect to the Internet.

As my laptop has only one Ethernet port, and as there was previously no ‘eth0′ entry under ‘Available connections‘, initially I thought that the new entry occurred because I had recently installed a new version of udev. I have the parameter net.ifnames=0 in the kernel boot line to stop udev/eudev using the so-called Predictable Network Interface Names, and I have the following udev/eudev rules files relating to networking:

# ls -la /etc/udev/rules.d/*net*
lrwxrwxrwx 1 root root    9 Nov 30 15:25 80-net-setup-link.rules -> /dev/null
# ls -la /lib64/udev/rules.d/*net*
-rw-r--r-- 1 root root  452 Nov  7 09:57 /lib64/udev/rules.d/75-net-description.rules
-rw-r--r-- 1 root root 1734 Jan 28 18:29 /lib64/udev/rules.d/77-mm-huawei-net-port-types.rules
-rw-r--r-- 1 root root  491 Nov  7 09:57 /lib64/udev/rules.d/80-net-name-slot.rules
-rw-r--r-- 1 root root  280 Jan 24 00:41 /lib64/udev/rules.d/90-network.rules

Perhaps udev (well, eudev, as I switched to using eudev after the problem started) did have something to do with the new entry, but I began to suspect that NetworkManager was the culprit. I think the problem first occurred after installing NetworkManager 0.9.10.0 last October, but it remained after I installed NetworkManager 1.0.0, until today when I made the various changes described further on.

I had merged NetworkManager 1.0.0 and preceding versions since 0.9.8.8 with USE flags -dhclient and dhcpcd, i.e. NetworkManager in my installation uses the DHCP client dhcpcd instead of dhclient. (I used to merge NetworkManager to use dhclient but found it did not work with 0.9.8.8 and later versions of NetworkManager.)

The relevant network services running in my installation are as follows, and nothing looks incorrect to me:

# rc-update show | grep -i net
       NetworkManager |      default
                local |      default nonetwork
               net.lo | boot
             netmount |      default
# rc-status | grep -i net
NetworkManager                                                    [ started ]
netmount                                                          [ started ]
# rc-update show | grep dh
# rc-status | grep dh
# rc-update -v show | grep supplicant
wpa_supplicant |
# rc-status | grep supplicant
#

NetworkManager itself launches the DHCP client, so the installation should not be configured to launch a DHCP client. Indeed the output above shows that no DHCP client service is configured to run independently of NetworkManager, and I also double-checked that multiple instances of a DHCP client are not running (they’re not):

# ps -C NetworkManager
  PID TTY          TIME CMD
 6481 ?        00:00:22 NetworkManager
# ps -C dhcpcd
  PID TTY          TIME CMD
10378 ?        00:00:00 dhcpcd
# ps -C dhclient
  PID TTY          TIME CMD
#

As far as WiFi is concerned, NetworkManager itself launches wpa_supplicant, so the installation should not be configured to launch wpa_supplicant. Indeed the output from rc-update and rc-status above shows that no wpa_supplicant service is configured to run independently of NetworkManager, and I also double-checked that multiple instances of wpa_supplicant are not running (they’re not):

# ps -C wpa_supplicant
  PID TTY          TIME CMD
 6491 ?        00:00:00 wpa_supplicant
#

So, as far as I could tell, there was nothing wrong with the non-NetworkManager side of my installation.

I thought the problem might be due to the settings in the file /etc/NetworkManager/NetworkManager.conf, which contained the following:

[main]
plugins=keyfile
dhcp=dhcpcd

[ifnet]
managed=true
auto_refresh=false

[keyfile]
hostname=meshedgedx

I studied the manual pages for NetworkManager.conf:

# man NetworkManager.conf

If I understand correctly, the ifnet plug-in is Gentoo-specific (see References 3, 4 and 5 further on). The entries under [ifnet] in my NetworkManager.conf file were redundant in any case because the ifnet plug-in was not included in the plugins list under [main], so I deleted the entire [ifnet] section. There is no mention of the ifnet plug-in on the NetworkManager.conf manual page or in the Gentoo Linux Wiki article on NetworkManager, and a cursory look in the Gentoo ebuild for NetworkManager 1.0.0 clearly indicates the ifnet plug-in is broken. See, for example, the following comment in the ebuild:

# ifnet plugin always disabled until someone volunteers to actively
# maintain and fix it

and the following warning messages in the ebuild if the user has included ifnet in plugin=<plugin list> in NetworkManager.conf:

ewarn "Ifnet plugin is now disabled because of it being unattended"
ewarn "and unmaintained for a long time, leading to some unfixed bugs"
ewarn "and new problems appearing. We will now use upstream 'keyfile'"
ewarn "plugin."
ewarn "Because of this, you will likely need to reconfigure some of"
ewarn "your networks. To do this you can rely on Gnome control center,"
ewarn "nm-connection-editor or nmtui tools for example once updated"
ewarn "NetworkManager version is installed."
ewarn "You seem to use 'ifnet' plugin in ${EROOT}etc/NetworkManager/NetworkManager.conf"
ewarn "Since it won't be used, you will need to stop setting ifnet plugin there."

I modified NetworkManager.conf to contain the following:

[main]
plugins=keyfile
dhcp=dhcpcd
no-auto-default=eth0

[keyfile]
hostname=meshedgedx

Note that the ifnet plug-in was not specified in the plugins list in the [main] section of my previous NetworkManager.conf so it was not the cause of my problem, but I hoped that adding no-auto-default=eth0 to NetworkManager.conf would solve the problem. I deleted the ‘Wired connection 1′ entry from the plasma-nm GUI, ticked ‘Automatically connect to this network when it is available’ for the ‘eth0′ entry and made sure that option was not ticked for any of the other entries under ‘Available connections‘, then rebooted. There was no longer an entry ‘Wired connection 1′ in the plasma-nm widget GUI, just an entry for ‘eth0′, and the installation connected automatically to the wired network and I could access the Internet, but did not reconnect to the wired network if I removed and reinserted the Ethernet cable when also connected to a wireless network. So I was not home and dry yet.

I have read on various Web sites that NetworkManager prefers wired connections over wireless connections. I assume this is because NetworkManager sets a higher metric for the wired connection.

I am on a work trip at the moment and cannot use a dynamic wired connection, only a static wired connection, but I can see that NetworkManager 1.0.0 does set a higher-priority metric for wired connections:

# # Now with both dynamic wireless and static wired:
# ip route show
default via 10.90.21.1 dev eth0  proto static  metric 100
default via 10.96.0.1 dev wlan0  proto static  metric 600
10.90.21.0/24 dev eth0  proto kernel  scope link  src 10.90.21.112  metric 100
10.96.0.0/16 dev wlan0  proto kernel  scope link  src 10.96.87.86
10.96.0.0/16 dev wlan0  proto kernel  scope link  src 10.96.87.86  metric 303
127.0.0.0/8 dev lo  scope host
127.0.0.0/8 via 127.0.0.1 dev lo
192.0.2.1 via 10.96.0.1 dev wlan0  proto dhcp  metric 600
#

10.90.21.1 is the IP address of the gateway for the wired connection, and 10.90.21.112 is the IP address of my laptop’s wired interface. The smaller the metric value, the higher the routing priority. Notice that the metric for the eth0 interface is 100 whereas the metric for the wlan0 interface is 600, so it does appear that NetworkManager favours a wired connection over a wireless connection when both are active.

After doing all the above, I came across Debian bug report no. 755202: network-manager: keeps creating and using new connection “eth0″ that does not work which appears to be exactly what I was experiencing. Various people posted solutions that worked in their particular circumstances, so I am none the wiser. Gentoo user Keivan Moradi posted message no. 79 on that bug report, about a warning message he found in the NetworkManager log file regarding a file /etc/NetworkManager/system-connections/.keep_net-misc_networkmanager-0, and he then deleted the latter file. I found the same message in /var/log/messages:

# grep networkmanager /var/log/messages
Feb  9 04:10:05 localhost NetworkManager[10355]: <warn>      error in connection /etc/NetworkManager/system-connections/.keep_net-misc_networkmanager-0: invalid connection: connection.type: property is missing
Feb 11 15:53:05 localhost NetworkManager[13143]: <warn>      error in connection /etc/NetworkManager/system-connections/.keep_net-misc_networkmanager-0: invalid connection: connection.type: property is missing

The file /etc/NetworkManager/system-connections/.keep_net-misc_networkmanager-0 also existed in my installation, so I also deleted it. It was a zero-length file and I do not know if it had anything to do with my problem:

# ls -la /etc/NetworkManager/system-connections/.keep_net-misc_networkmanager-0
-rw------- 1 root root 0 Jan 20 00:09 /etc/NetworkManager/system-connections/.keep_net-misc_networkmanager-0
# rm /etc/NetworkManager/system-connections/.keep_net-misc_networkmanager-0
#

Anyway, the file /etc/NetworkManager/system-connections/.keep_net-misc_networkmanager-0 has not reappeared since I deleted it.

Keivan Moradi had ‘id=Wired‘ under [connection] in the file /etc/NetworkManager/system-connections/eth0, and he decided to change the name of the file from ‘eth0‘ to ‘Wired‘. However, in my case the file name and the id in the file /etc/NetworkManager/system-connections/eth0 are both ‘eth0‘:

# cat /etc/NetworkManager/system-connections/eth0
[ethernet]
mac-address=70:5A:B6:3E:C1:8A
mac-address-blacklist=

[connection]
id=eth0
uuid=cb3d5786-f947-44b8-92f7-8471fc94c568
type=ethernet
permissions=
secondaries=

[ipv6]
method=ignore
dns-search=

[ipv4]
method=auto
dns-search=

I had already deleted and recreated the connection ‘eth0′ in the plasma-nm GUI by the time I checked the contents of the directory /etc/NetworkManager/system-connections/ so I do not know if the original file name and id were the same. I had also already deleted the connection ‘Wired connection 1′ in the plasma-nm GUI by the time I checked the contents of the directory; presumably files for connections ‘Wired connection 1′ and ‘eth0′ both existed in /etc/NetworkManager/system-connections/ before then. I do not know why the zero-length file .keep_net-misc_networkmanager-0 was created, but no further files have appeared in the directory since I deleted the connection ‘Wired connection 1′ and the file .keep_net-misc_networkmanager-0.

Keivan Moradi was also previously using a buggy r8169 kernel module (Realtek Ethernet hardware) and switched to using the r8168 module, but I am using a Qualcomm Atheros AR8131 Gigabit Ethernet card and an Intel Corporation Ultimate N WiFi Link 5300 card, so that part of his problem cannot be a factor in my case.

Anyway, as I wrote earlier, I no longer have two connection entries for the wired interface, and NetworkManager no longer creates automatically a second connection entry for the wired interface. And now if I am already connected to a wireless network, NetworkManager connects/reconnects automatically to a wired network with the ‘Automatically connect’ option ticked. So it looks like my problem is completely solved, although I reserve judgement until I have been able to use the laptop in my home network (which has the same router for both wired and wireless connections, whereas the wired network and wireless network are separate networks in the office in which I am now working).

Conclusion

If you had the patience to read all the above, I am impressed! If you also understood it, I am doubly impressed!

To cut a long story short, if you are experiencing a similar problem to mine, I recommend you do the following:

  1. Check that your network driver is reliable. You can search the Web to see if other users have experienced problems with the same driver you are using.

  2. Make sure the contents of NetworkManager.conf are correct. Read the NetworkManager.conf man page and the GNOME Wiki page on NetworkManager settings to find out what options are available.

  3. Delete all the files (i.e. including hidden files) in the directory /etc/NetworkManager/system-connections/ and recreate your connections via either the NetworkManager GUI (e.g. plasma-nm in KDE or nm-applet in GNOME) or NetworkManager TUI (nmtui).

References

  1. man NetworkManager.conf
  2. Gentoo Linux Wiki – NetworkManager
  3. GNOME Wiki – NetworkManager SystemSettings – Configuration Plugins
  4. Gentoo NetworkManager Plugin
  5. Another Gentoo Dev – Ifnet updates for NetworkManager 0.9

Fixing unperceived errors in my X Windows configuration

Prologue

Last week I decided to bite the bullet and upgrade X Windows to the latest version available in the main Portage tree: 1.16.3-r1. I updated my entire installation (I ‘emerged world’, in Gentoo parlance). The package eselect-opengl was one of various other packages updated as well (it was updated to Version 1.3.1-r1). Fortunately I scan the Gentoo Forums regularly and noticed the threads ‘new x11 update breaks glx‘ and ‘After xorg-server-1.16.2.901-r1 update 3D stopped working‘, so I was forewarned that a "Files" section is not allowed in more than one X Windows configuration file if an installation has more than one (e.g. /etc/X11/xorg.conf and /etc/X11/xorg.conf.d/*.conf). The eselect-opengl ebuild was subsequently bumped to 1.3.1-r2 to display a warning to users regarding this restriction.

I’m using ~amd64 multilib and the FGLRX driver (ATI Mobility Radeon HD 5650 GPU). Before updating, my laptop’s installation had a file /etc/X11/xorg.conf and no /etc/X11/xorg.conf.d/ directory.

Before updating I cleaned up a few broken symlinks (indicated by flashing red text in Konsole) relating to the FGLRX driver — presumably left over from previous updates several years ago judging by the file dates — that I found during a cursory search:

# ls -la /usr/lib32/xorg/modules/extensions/
# rm /usr/lib32/xorg/modules/extensions/fglrx-libglx.so
# rm /usr/lib32/xorg/modules/extensions/libglx.so
# ls -la /usr/lib64/xorg/modules/extensions/
# rm /usr/lib64/xorg/modules/extensions/FGL.renamed.libglx.so
# rm /usr/lib64/xorg/modules/extensions/fglrx-libglx.so

(There may have been other broken symlinks relating to the FGLRX driver and GLX, but I didn’t look further.)

Then I updated all packages using the Portage command ‘emerge -uvDN --keep-going world‘ as usual. After the update was complete, the contents of the file /etc/X11/xorg.conf included the following two consecutive lines:

Section "Files"
EndSection

and there is a new directory /etc/X11/xorg.conf.d/ which contained a single file 20opengl.conf with only five lines:

Section "Files"
        ModulePath "/usr/lib32/xorg/modules"
        ModulePath "/usr/lib64/opengl/ati"
        ModulePath "/usr/lib64/xorg/modules"
EndSection

Heeding posts in the aforementioned two Gentoo Forums threads I deleted the above-mentioned two lines in xorg.conf and I also deleted the first ModulePath (the one with ‘lib32‘) in 20opengl.conf. After rebooting, X Windows, GLX and Direct Rendering worked fine as usual. (I subsequently discovered it is not necessary to delete that ModulePath in my case, as there are no longer any files in /usr/lib32/xorg/modules and its subdirectories in my case.)

So everything was good. Well, not quite. Although the installation was working properly, there were still some long-standing messages in the X.Org log file /var/log/Xorg.0.log that indicated my installation was not configured completely correctly. I had ignored them for too long and resolved to find their causes and eliminate them. Here is what I did.

AIGLX error message

The contents of log file Xorg.0.log included the following error message:

(EE) AIGLX error: failed to open /usr/X11R6/lib64/modules/dri/fglrx_dri.so, error[/usr/X11R6/lib64/modules/dri/fglrx_dri.so: cannot open shared object file: No such file or directory]

Despite the error message, AIGLX was working, but I resolved to get rid of the message anyway by creating a symlink for the missing file mentioned in the message:

# ls /usr/X11R6/lib64/modules
extensions
# mkdir -p /usr/X11R6/lib64/modules/dri/
# ls -la /usr/lib/dri/fglrx_dri.so
-rwxr-xr-x 1 root root 37365968 Jan 10 18:16 /usr/lib/dri/fglrx_dri.so
# ln -s /usr/lib/dri/fglrx_dri.so /usr/X11R6/lib64/modules/dri/fglrx_dri.so
# cd /usr/X11R6/lib64/modules/dri
# ls -liat
total 8
2229069 drwxr-xr-x 2 root root 4096 Jan 22 22:30 .
2230340 lrwxrwxrwx 1 root root 25 Jan 22 22:30 fglrx_dri.so -> /usr/lib/dri/fglrx_dri.so
685665 drwxr-xr-x 4 root root 4096 Jan 22 22:29 ..

Now there is no error message and functionality has not been affected:

# grep -i GLX /var/log/Xorg.0.log
[ 30.773] (II) "glx" will be loaded by default.
[ 31.098] (II) LoadModule: "glx"
[ 31.098] (II) Loading /usr/lib64/opengl/ati/extensions/libglx.so
[ 31.167] (II) Module glx: vendor="Advanced Micro Devices, Inc."
[ 38.949] (II) AIGLX: Loaded and initialized OpenGL driver(II) GLX: Initialized DRI GL provider for screen 0

Touchpad

In looking through /var/log/Xorg.0.log I noticed some messages (not all contiguous) relating to the touchpad which indicated there were other problems:

[    31.940] (**) |-->Input Device "SynapticsTouchpad"
[    32.538] (II) LoadModule: "synaptics"
[    32.538] (II) Loading /usr/lib64/xorg/modules/input/synaptics_drv.so
[    32.576] (II) Module synaptics: vendor="X.Org Foundation"
[    33.416] (II) LoadModule: "synaptics"
[    33.416] (II) Loading /usr/lib64/xorg/modules/input/synaptics_drv.so
[    33.416] (II) Module synaptics: vendor="X.Org Foundation"
[    41.253] (II) Using input driver 'synaptics' for 'SynapticsTouchpad'
[    41.253] (**) SynapticsTouchpad: always reports core events
[    41.282] (EE) synaptics: SynapticsTouchpad: Synaptics driver unable to detect protocol
[    41.282] (EE) PreInit returned 11 for "SynapticsTouchpad"
[    41.282] (II) UnloadModule: "synaptics"

The touchpad was working fine, but I didn’t understand why the synaptics module was being loaded twice, then unloaded. Also, the message about an undetectable ‘protocol’ indicated a problem.

Now, as I mentioned at the beginning of this post, previously my installation did not have the directory /etc/X11/xorg.conf.d/ and there was only the file /etc/X11/xorg.conf. Below is what xorg.conf contained before I updated:

Section "ServerLayout"
	Identifier     "Main Layout"
	Screen      0  "aticonfig-Screen[0]-0" 0 0
	InputDevice    "SynapticsTouchpad" "SendCoreEvents"
EndSection

Section "Files"
EndSection

Section "Module"
	SubSection "extmod"
		Option	    "omit xfree86-dga"
	EndSubSection
	Load  "i2c"
	Load  "ddc"
	Load  "vbe"
	Load  "dri"
	Load  "glx"
	Load  "synaptics"
EndSection

Section "ServerFlags"
	Option	    "AllowMouseOpenFail" "true"
EndSection

Section "InputDevice"
	Identifier  "SynapticsTouchpad"
	Driver      "synaptics"
	Option	    "AlwaysCore" "true"
	Option	    "Device" "/dev/psaux"
	Option	    "Protocol" "auto-dev"
	Option	    "SHMConfig" "false"
	Option	    "LeftEdge" "1700"
	Option	    "RightEdge" "5300"
	Option	    "TopEdge" "1700"
	Option	    "BottomEdge" "4200"
	Option	    "FingerLow" "25"
	Option	    "FingerHigh" "30"
	Option	    "MaxTapTime" "180"
	Option	    "VertEdgeScroll" "true"
	Option	    "HorizEdgeScroll" "true"
	Option	    "CornerCoasting" "true"
	Option	    "CoastingSpeed" "0.30"
	Option	    "VertScrollDelta" "100"
	Option	    "HorizScrollDelta" "100"
	Option	    "MinSpeed" "0.10"
	Option	    "MaxSpeed" "0.60"
	Option	    "AccelFactor" "0.0020"
	Option	    "VertTwoFingerScroll" "true"
	Option	    "HorizTwoFingerScroll" "true"
	Option	    "TapButton1" "1"
	Option	    "TapButton2" "2"
	Option	    "TapButton3" "3"
EndSection

Section "Monitor"
	Identifier  "aticonfig-Monitor[0]-0"
	Option	    "VendorName" "ATI Proprietary Driver"
	Option	    "ModelName" "Generic Autodetecting Monitor"
	Option	    "DPMS" "true"
EndSection

Section "Device"
	Identifier  "aticonfig-Device[0]-0"
	Driver      "fglrx"
	BusID       "PCI:1:0:0"
EndSection

Section "Screen"
	Identifier  "aticonfig-Screen[0]-0"
	Device      "aticonfig-Device[0]-0"
	Monitor     "aticonfig-Monitor[0]-0"
	DefaultDepth     24
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

Section "DRI"
	Mode         0666
EndSection

The only mention of a ‘protocol’ in xorg.conf was the line:

Option	    "Protocol" "auto-dev"

Searching the Web soon showed me that auto-dev is obsolete (Debian Bug report #649003 – xserver-xorg-input-synaptics: Option “Protocol” “auto-dev” does not work anymore – documentation needs fixing), so I simply deleted that line from xorg.conf. Another error message eliminated, but several more to go.

I knew that, since Version 1.8 (I believe that was the release), X Windows allows the use of /etc/X11/xorg.conf.d/*.conf files instead of, or as well as, /etc/X11/xorg.conf as a means of configuring X Windows (see e.g. Gentoo Xorg-server 1.8 Upgrade Guide).

As my latest installation update had resulted in the creation of the directory /etc/X11/xorg.conf.d/, I decided to move the touchpad configuration from the xorg.conf file to a new file in that directory, and therefore I created the file /etc/X11/xorg.conf.d/50-synaptics.conf containing the following:

Section "InputClass"
        Identifier "touchpad"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Option "TapButton1" "1"
        Option "TapButton2" "2"
        Option "TapButton3" "3"
        Option "VertEdgeScroll" "on"
        Option "VertTwoFingerScroll" "on"
        Option "HorizEdgeScroll" "on"
        Option "HorizTwoFingerScroll" "on"
        Option "CircularScrolling" "on"
        Option "CircScrollTrigger" "0"
        Option "EmulateTwoFingerMinZ" "40"
        Option "EmulateTwoFingerMinW" "8"
        Option "CoastingSpeed" "0"
        Option "FingerLow" "35"
        Option "FingerHigh" "40"
EndSection

However the log file Xorg.0.log still contained messages such as the following:

[    41.535] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "evdev touchpad catchall"

Notice that I had named the InputClass "touchpad" in the file /etc/X11/xorg.conf.d/50-synaptics.conf, not "evdev touchpad catchall", so I began to wonder if X Windows configuration files existed in other directories and were also being parsed by X Windows. I searched and found three in the directory /usr/share/X11/xorg.conf.d/:

# ls /usr/share/X11/xorg.conf.d/
10-evdev.conf  10-quirks.conf  50-synaptics.conf

These three files contained, respectively, the following:

10-evdev.conf

Section "InputClass"
        Identifier "evdev pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev tablet catchall"
        MatchIsTablet "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

10-quirks.conf

  
# Collection of quirks and blacklist/whitelists for specific devices.


# Accelerometer device, posts data through ABS_X/ABS_Y, making X unusable
# http://bugs.freedesktop.org/show_bug.cgi?id=22442 
Section "InputClass"
        Identifier "ThinkPad HDAPS accelerometer blacklist"
        MatchProduct "ThinkPad HDAPS accelerometer data"
        Option "Ignore" "on"
EndSection

# https://bugzilla.redhat.com/show_bug.cgi?id=523914
# Mouse does not move in PV Xen guest
# Explicitly tell evdev to not ignore the absolute axes.
Section "InputClass"
        Identifier "Xen Virtual Pointer axis blacklist"
        MatchProduct "Xen Virtual Pointer"
        Option "IgnoreAbsoluteAxes" "off"
        Option "IgnoreRelativeAxes" "off"
EndSection

# https://bugs.freedesktop.org/show_bug.cgi?id=55867
# Bug 55867 - Doesn't know how to tag XI_TRACKBALL
Section "InputClass"
        Identifier "Tag trackballs as XI_TRACKBALL"
        MatchProduct "trackball"
        MatchDriver "evdev"
        Option "TypeName" "TRACKBALL"
EndSection

# https://bugs.freedesktop.org/show_bug.cgi?id=62831
# Bug 62831 - Mionix Naos 5000 mouse detected incorrectly
Section "InputClass"
        Identifier "Tag Mionix Naos 5000 mouse XI_MOUSE"
        MatchProduct "La-VIEW Technology Naos 5000 Mouse"
        MatchDriver "evdev"
        Option "TypeName" "MOUSE"
EndSection

50-synaptics.conf

# Example xorg.conf.d snippet that assigns the touchpad driver
# to all touchpads. See xorg.conf.d(5) for more information on
# InputClass.
# DO NOT EDIT THIS FILE, your distribution will likely overwrite
# it when updating. Copy (and rename) this file into
# /etc/X11/xorg.conf.d first.
# Additional options may be added in the form of
#   Option "OptionName" "value"
#
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
# This option is recommend on all Linux systems using evdev, but cannot be
# enabled by default. See the following link for details:
# http://who-t.blogspot.com/2010/11/how-to-ignore-configuration-errors.html
#       MatchDevicePath "/dev/input/event*"
EndSection

Section "InputClass"
        Identifier "touchpad ignore duplicates"
        MatchIsTouchpad "on"
        MatchOS "Linux"
        MatchDevicePath "/dev/input/mouse*"
        Option "Ignore" "on"
EndSection

# This option enables the bottom right corner to be a right button on clickpads
# and the right and middle top areas to be right / middle buttons on clickpads
# with a top button area.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Default clickpad buttons"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "50% 0 82% 0 0 0 0 0"
        Option "SecondarySoftButtonAreas" "58% 0 0 15% 42% 58% 0 15%"
EndSection

# This option disables software buttons on Apple touchpads.
# This option is only interpreted by clickpads.
Section "InputClass"
        Identifier "Disable clickpad buttons on Apple touchpads"
        MatchProduct "Apple|bcm5974"
        MatchDriver "synaptics"
        Option "SoftButtonAreas" "0 0 0 0 0 0 0 0"
EndSection

Looking at the InputClass section names and the messages in Xorg.0.log, the penny dropped: X Windows uses all the configuration files it finds in the /usr/share/X11/xorg.conf.d/,  /etc/X11/ and /etc/X11/xorg.conf.d/ directories. I had not realised this before; I had simply assumed X Windows only uses configuration files in the latter two directories (I should have looked more closely in Xorg.0.log, as it mentions /usr/share/X11/xorg.conf.d/). So I did the following:

1.  Deleted the file /usr/share/X11/xorg.conf.d/50-synaptics.conf (my laptop does not have a clickpad, so I don’t need the sections relating to a clickpad anyway).

2.  Modified the file /etc/X11/xorg.conf.d/50-synaptics.conf to contain the parts of /usr/share/X11/xorg.conf.d/50-synaptics.conf that stop X Windows assuming the touchpad is a mouse (udev detects it as a mouse in addition to detecting it as a touchpad):

 
Section "InputClass"
        Identifier "touchpad catchall"
        Driver "synaptics"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Option "TapButton1" "1"
        Option "TapButton2" "2"
        Option "TapButton3" "3"
        Option "VertEdgeScroll" "on"
        Option "VertTwoFingerScroll" "on"
        Option "HorizEdgeScroll" "on"
        Option "HorizTwoFingerScroll" "on"
        Option "CircularScrolling" "on"
        Option "CircScrollTrigger" "0"
        Option "EmulateTwoFingerMinZ" "40"
        Option "EmulateTwoFingerMinW" "8"
        Option "CoastingSpeed" "0"
        Option "FingerLow" "35"
        Option "FingerHigh" "40"
EndSection

Section "InputClass"
        Identifier "touchpad ignore duplicates"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/mouse*"
        Option "Ignore" "on"
EndSection

Notice that I also changed the Identifier of the first section from “touchpad” to “touchpad catchall”, although I could have left it as it was.

Note that the following pair of messages in the file /var/log/Xorg.0.log do not worry me, as I believe they indicate that an InputClass section named "touchpad ignore duplicates" in an X Windows configuration file made X Windows ignore udev when it detected the touchpad again, this time as a mouse instead of a touchpad. As X Windows has already loaded the synaptics module for the touchpad device /dev/input/event5 (it could be a different event number in your case), it is therefore correct to make the synaptics driver ignore /dev/input/mouse*.

[    41.581] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/mouse0)
[    41.581] (**) SynPS/2 Synaptics TouchPad: Ignoring device from InputClass "touchpad ignore duplicates"

3.  Moved the file /etc/X11/xorg.conf.d/10-evdev.conf to /etc/X11/xorg.conf.d/10-evdev.conf and edited it to contain the following:

Section "InputClass"
        Identifier "evdev pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev tablet catchall"
        MatchIsTablet "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Note that I removed the section "evdev touchpad catchall" because I believe its purpose is already covered by the section "touchpad catchall" in the file /etc/X11/xorg.conf.d/50-synaptics.conf.

Actually, as my laptop does not have a tablet connected and neither does it have a touchscreen, I could also have removed the last two sections, but I left them in as they would do no harm.

4.  Checked in the file /var/log/Xorg.0.log which modules loaded by /etc/X11/xorg.conf are loaded anyway, and therefore do not need to be included in xorg.conf:

$ grep extmod /var/log/Xorg.0.log
[ 30.773] (II) LoadModule: "extmod"
[ 30.773] (II) Module "extmod" already built-in

$ grep i2c /var/log/Xorg.0.log
[ 30.775] (II) LoadModule: "i2c"
[ 30.775] (II) Module "i2c" already built-in

$ grep ddc /var/log/Xorg.0.log
[ 30.775] (II) LoadModule: "ddc"
[ 30.775] (II) Module "ddc" already built-in
[ 35.114] (II) Loading sub module "ddc"
[ 35.114] (II) LoadModule: "ddc"
[ 35.114] (II) Module "ddc" already built-in
[ 35.421] (II) Loading sub module "ddc"
[ 35.421] (II) LoadModule: "ddc"
[ 35.421] (II) Module "ddc" already built-in

$ grep vbe /var/log/Xorg.0.log
[ 30.775] (II) LoadModule: "vbe"
[ 31.162] (II) Loading /usr/lib64/xorg/modules/libvbe.so
[ 31.175] (II) Module vbe: vendor="X.Org Foundation"
[ 35.073] (II) Loading sub module "vbe"
[ 35.073] (II) LoadModule: "vbe"
[ 35.073] (II) Loading /usr/lib64/xorg/modules/libvbe.so
[ 35.073] (II) Module vbe: vendor="X.Org Foundation"

$ grep \"dri\" /var/log/Xorg.0.log
[ 31.175] (II) LoadModule: "dri"
[ 31.175] (II) Module "dri" already built-in

$ grep glx /var/log/Xorg.0.log
[ 30.775] (II) "glx" will be loaded. This was enabled by default and also specified in the config file.
[ 31.175] (II) LoadModule: "glx"
[ 31.175] (II) Loading /usr/lib64/opengl/ati/extensions/libglx.so
[ 31.193] (II) Module glx: vendor="Advanced Micro Devices, Inc."

The module vbe was the only one being loaded exclusively because of a Load command in the xorg.conf file.

5.  Edited /etc/X11/xorg.conf to: a) remove the unecessary loading of those modules that are already being loaded; b) remove the section relating to the touchpad, as I had moved it to /etc/X11/xorg.conf.d/50-synaptics.conf:

Section "ServerLayout"
        Identifier     "Main Layout"
        Screen      0  "aticonfig-Screen[0]-0" 0 0
EndSection

Section "Module"
        Load  "vbe"
EndSection

Section "ServerFlags"
        Option      "AllowMouseOpenFail" "true"
EndSection

Section "Monitor"
        Identifier  "aticonfig-Monitor[0]-0"
        Option      "VendorName" "ATI Proprietary Driver"
        Option      "ModelName" "Generic Autodetecting Monitor"
        Option      "DPMS" "true"
EndSection

Section "Device"
        Identifier  "aticonfig-Device[0]-0"
        Driver      "fglrx"
        BusID       "PCI:1:0:0"
EndSection

Section "Screen"
        Identifier  "aticonfig-Screen[0]-0"
        Device      "aticonfig-Device[0]-0"
        Monitor     "aticonfig-Monitor[0]-0"
        DefaultDepth     24
        SubSection "Display"
                Viewport   0 0
                Depth    24
        EndSubSection
EndSection

Section "DRI"
        Mode         0666
EndSection

According to the xorg.conf(5) manual page:

Option “AllowMouseOpenFail”boolean

This tells the mousedrv(4) and vmmouse(4) drivers to not report failure if the mouse device can’t be opened/initialised. It has no effect on the evdev(4) or other drivers. Default: false.

so I left the section ServerFlags in xorg.conf, as the global X.Org Server option "AllowMouseOpenFail" does no harm. I could have deleted it, though.

6.  I left /usr/share/X11/xorg.conf.d/10-quirks.conf as it was, because there is nothing in it that relates to the specific hardware in my laptop. I could have just deleted the file.

Outcome

Now that I have removed the superflous X windows configuration files with some duplicate sections, /var/log/Xorg.0.log no longer contains duplicate messages relating to the touchpad and evdev. As I have also removed superflous module-loading commands from xorg.conf, there are also no longer any messages regarding already-loaded modules or the unloading of a module. And my removal of the obsolete auto-dev protocol option also eliminated the error message regarding an undetectable protocol and the PreInit error message. The file Xorg.0.log in my installation now looks like this:

[    29.801] 
X.Org X Server 1.16.3
Release Date: 2014-12-20
[    29.801] X Protocol Version 11, Revision 0
[    29.801] Build Operating System: Linux 3.17.1-gentoo-r1 x86_64 Gentoo
[    29.801] Current Operating System: Linux meshedgedx 3.17.1-gentoo-r1 #1 SMP Wed Nov 5 16:41:59 GMT 2014 x86_64
[    29.801] Kernel command line: BOOT_IMAGE=/kernel-genkernel-x86_64-3.17.1-gentoo-r1 root=/dev/sda6 ro BOOT_IMAGE=/kernel-genkernel-x86_64-3.17.1-gentoo-r1 root=/dev/ram0 ramdisk=8192 real_root=/dev/sda6 init=/linuxrc splash=silent,theme:Emergance console=tty1 quiet resume=swap:/dev/sda5 real_resume=/dev/sda5 intel_iommu=off net.ifnames=0 snd_hda_intel.power_save=0
[    29.801] Build Date: 20 January 2015  08:46:39AM
[    29.801]  
[    29.801] Current version of pixman: 0.32.6
[    29.801]    Before reporting problems, check http://wiki.x.org
        to make sure that you have the latest version.
[    29.801] Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    29.801] (==) Log file: "/var/log/Xorg.0.log", Time: Sun Jan 25 23:59:52 2015
[    29.846] (==) Using config file: "/etc/X11/xorg.conf"
[    29.846] (==) Using config directory: "/etc/X11/xorg.conf.d"
[    29.846] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
[    29.918] (==) ServerLayout "Main Layout"
[    29.918] (**) |-->Screen "aticonfig-Screen[0]-0" (0)
[    29.918] (**) |   |-->Monitor "aticonfig-Monitor[0]-0"
[    30.063] (**) |   |-->Device "aticonfig-Device[0]-0"
[    30.063] (**) Option "AllowMouseOpenFail" "true"
[    30.063] (==) Automatically adding devices
[    30.063] (==) Automatically enabling devices
[    30.063] (==) Automatically adding GPU devices
[    30.166] (==) FontPath set to:
        /usr/share/fonts/misc/,
        /usr/share/fonts/TTF/,
        /usr/share/fonts/OTF/,
        /usr/share/fonts/Type1/,
        /usr/share/fonts/100dpi/,
        /usr/share/fonts/75dpi/
[    30.166] (**) ModulePath set to "/usr/lib32/xorg/modules,/usr/lib64/opengl/ati,/usr/lib64/xorg/modules"
[    30.166] (II) The server relies on udev to provide the list of input devices.
        If no devices become available, reconfigure udev or disable AutoAddDevices.
[    30.166] (II) Loader magic: 0x805c60
[    30.166] (II) Module ABI versions:
[    30.166]    X.Org ANSI C Emulation: 0.4
[    30.166]    X.Org Video Driver: 18.0
[    30.166]    X.Org XInput driver : 21.0
[    30.166]    X.Org Server Extension : 8.0
[    30.167] (--) PCI:*(0:1:0:0) 1002:68c1:14c0:0043 rev 0, Mem @ 0xc0000000/268435456, 0xd8000000/131072, I/O @ 0x00006000/256, BIOS @ 0x????????/131072
[    30.167] (II) "glx" will be loaded by default.
[    30.167] (II) LoadModule: "vbe"
[    30.679] (II) Loading /usr/lib64/xorg/modules/libvbe.so
[    30.692] (II) Module vbe: vendor="X.Org Foundation"
[    30.692]    compiled for 1.16.3, module version = 1.1.0
[    30.692]    ABI class: X.Org Video Driver, version 18.0
[    30.692] (II) LoadModule: "glx"
[    30.692] (II) Loading /usr/lib64/opengl/ati/extensions/libglx.so
[    30.710] (II) Module glx: vendor="Advanced Micro Devices, Inc."
[    30.710]    compiled for 6.9.0, module version = 1.0.0
[    30.710] (II) LoadModule: "fglrx"
[    30.710] (II) Loading /usr/lib64/xorg/modules/drivers/fglrx_drv.so
[    31.508] (II) Module fglrx: vendor="FireGL - AMD Technologies Inc."
[    31.508]    compiled for 1.4.99.906, module version = 14.50.2
[    31.508]    Module class: X.Org Video Driver
[    31.509] (II) Loading sub module "fglrxdrm"
[    31.509] (II) LoadModule: "fglrxdrm"
[    31.509] (II) Loading /usr/lib64/xorg/modules/linux/libfglrxdrm.so
[    31.554] (II) Module fglrxdrm: vendor="FireGL - AMD Technologies Inc."
[    31.554]    compiled for 1.4.99.906, module version = 14.50.2
[    31.554] (II) AMD Proprietary Linux Driver Version Identifier:14.50.2
[    31.554] (II) AMD Proprietary Linux Driver Release Identifier: 14.501.1003                          
[    31.554] (II) AMD Proprietary Linux Driver Build Date: Nov 20 2014 21:22:54
[    31.554] (++) using VT number 7

[    31.671] (WW) Falling back to old probe method for fglrx
[    31.855] (II) Loading PCS database from /etc/ati/amdpcsdb /etc/ati/amdpcsdb.default
[    31.892] ukiDynamicMajor: found major device number 241
[    31.893] ukiDynamicMajor: found major device number 241
[    31.893] ukiOpenByBusid: Searching for BusID PCI:1:0:0
[    31.893] ukiOpenDevice: node name is /dev/ati/card0
[    31.893] ukiOpenDevice: open result is 9, (OK)
[    33.746] ukiOpenByBusid: ukiOpenMinor returns 9
[    33.746] ukiOpenByBusid: ukiGetBusid reports PCI:1:0:0
[    34.157] (--) Chipset Supported AMD Graphics Processor (0x68C1) found
[    34.174] (WW) fglrx: No matching Device section for instance (BusID PCI:0@1:0:1) found
[    34.180] (II) fglrx(0): pEnt->device->identifier=0x1fe9bc0
[    34.180] (II) fglrx(0): === [xdl_xs116_atiddxPreInit] === begin
[    34.180] (II) fglrx(0): FB driver is enabled
[    34.180] (II) Loading sub module "vgahw"
[    34.180] (II) LoadModule: "vgahw"
[    34.180] (II) Loading /usr/lib64/xorg/modules/libvgahw.so
[    34.354] (II) Module vgahw: vendor="X.Org Foundation"
[    34.354]    compiled for 1.16.3, module version = 0.1.0
[    34.354]    ABI class: X.Org Video Driver, version 18.0
[    34.355] (**) fglrx(0): Depth 24, (--) framebuffer bpp 32
[    34.355] (II) fglrx(0): Pixel depth = 24 bits stored in 4 bytes (32 bpp pixmaps)
[    34.355] (==) fglrx(0): Default visual is TrueColor
[    34.355] (**) fglrx(0): Option "DPMS" "true"
[    34.355] (==) fglrx(0): RGB weight 888
[    34.355] (II) fglrx(0): Using 8 bits per RGB 
[    34.355] (==) fglrx(0): Buffer Tiling is ON
[    34.355] (II) Loading sub module "fglrxdrm"
[    34.355] (II) LoadModule: "fglrxdrm"
[    34.355] (II) Loading /usr/lib64/xorg/modules/linux/libfglrxdrm.so
[    34.355] (II) Module fglrxdrm: vendor="FireGL - AMD Technologies Inc."
[    34.355]    compiled for 1.4.99.906, module version = 14.50.2
[    34.358] ukiDynamicMajor: found major device number 241
[    34.358] ukiDynamicMajor: found major device number 241
[    34.358] ukiOpenByBusid: Searching for BusID PCI:1:0:0
[    34.358] ukiOpenDevice: node name is /dev/ati/card0
[    34.358] ukiOpenDevice: open result is 11, (OK)
[    34.358] ukiOpenByBusid: ukiOpenMinor returns 11
[    34.358] ukiOpenByBusid: ukiGetBusid reports PCI:1:0:0
[    34.358] (**) fglrx(0): NoAccel = NO
[    34.358] (**) fglrx(0): AMD 2D Acceleration Architecture enabled
[    34.358] (--) fglrx(0): Chipset: "AMD Mobility Radeon HD 5000 Series" (Chipset = 0x68c1)
[    34.358] (--) fglrx(0): (PciSubVendor = 0x14c0, PciSubDevice = 0x0043)
[    34.358] (==) fglrx(0): board vendor info: third party graphics adapter - NOT original AMD
[    34.358] (--) fglrx(0): Linear framebuffer (phys) at 0xc0000000
[    34.358] (--) fglrx(0): MMIO registers at 0xd8000000
[    34.358] (--) fglrx(0): I/O port at 0x00006000
[    34.358] (==) fglrx(0): ROM-BIOS at 0x000c0000
[    34.561] (II) fglrx(0): AC Adapter is used
[    34.585] (II) fglrx(0): Primary V_BIOS segment is: 0xc000
[    34.631] (II) Loading sub module "vbe"
[    34.631] (II) LoadModule: "vbe"
[    34.631] (II) Loading /usr/lib64/xorg/modules/libvbe.so
[    34.631] (II) Module vbe: vendor="X.Org Foundation"
[    34.631]    compiled for 1.16.3, module version = 1.1.0
[    34.631]    ABI class: X.Org Video Driver, version 18.0
[    34.709] (II) fglrx(0): VESA BIOS detected
[    34.709] (II) fglrx(0): VESA VBE Version 3.0
[    34.709] (II) fglrx(0): VESA VBE Total Mem: 16384 kB
[    34.709] (II) fglrx(0): VESA VBE OEM: ATI ATOMBIOS
[    34.709] (II) fglrx(0): VESA VBE OEM Software Rev: 12.17
[    34.709] (II) fglrx(0): VESA VBE OEM Vendor: (C) 1988-2005, ATI Technologies Inc. 
[    34.709] (II) fglrx(0): VESA VBE OEM Product: MADISON
[    34.709] (II) fglrx(0): VESA VBE OEM Product Rev: 01.00
[    34.709] (II) fglrx(0): AMD Video BIOS revision 9 or later detected
[    34.709] (--) fglrx(0): Video RAM: 1048576 kByte, Type: DDR3
[    34.709] (II) fglrx(0): PCIE card detected
[    34.709] (--) fglrx(0): Using per-process page tables (PPPT) as GART.
[    34.709] (WW) fglrx(0): board is an unknown third party board, chipset is supported
[    34.709] (II) fglrx(0): [FB] MC range(MCFBBase = 0xf00000000, MCFBSize = 0x40000000)
[    34.709] (II) fglrx(0): RandR 1.2 support is enabled!
[    34.709] (II) fglrx(0): RandR 1.2 rotation support is enabled!
[    34.709] (II) Loading sub module "fb"
[    34.709] (II) LoadModule: "fb"
[    34.709] (II) Loading /usr/lib64/xorg/modules/libfb.so
[    34.731] (II) Module fb: vendor="X.Org Foundation"
[    34.731]    compiled for 1.16.3, module version = 1.0.0
[    34.731]    ABI class: X.Org ANSI C Emulation, version 0.4
[    34.731] (II) fglrx(0): EDID Management option: EDID Management is enabled
[    34.731] (II) Loading sub module "ddc"
[    34.731] (II) LoadModule: "ddc"
[    34.731] (II) Module "ddc" already built-in
[    35.087] (II) fglrx(0): Output LVDS using monitor section aticonfig-Monitor[0]-0
[    35.087] (II) fglrx(0): Output DFP1 has no monitor section
[    35.087] (II) fglrx(0): Output CRT1 has no monitor section
[    35.087] (II) Loading sub module "ddc"
[    35.087] (II) LoadModule: "ddc"
[    35.087] (II) Module "ddc" already built-in
[    35.087] (II) fglrx(0): Connected Display0: LVDS
[    35.087] (II) fglrx(0): Display0 EDID data ---------------------------
[    35.087] (II) fglrx(0): Manufacturer: AUO  Model: 10ed  Serial#: 0
[    35.087] (II) fglrx(0): Year: 2008  Week: 1
[    35.087] (II) fglrx(0): EDID Version: 1.3
[    35.087] (II) fglrx(0): Digital Display Input
[    35.087] (II) fglrx(0): Max Image Size [cm]: horiz.: 34  vert.: 19
[    35.087] (II) fglrx(0): Gamma: 2.20
[    35.087] (II) fglrx(0): No DPMS capabilities specified
[    35.087] (II) fglrx(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4 
[    35.087] (II) fglrx(0): First detailed timing is preferred mode
[    35.087] (II) fglrx(0): redX: 0.620 redY: 0.340   greenX: 0.330 greenY: 0.570
[    35.087] (II) fglrx(0): blueX: 0.150 blueY: 0.060   whiteX: 0.313 whiteY: 0.329
[    35.087] (II) fglrx(0): Manufacturer's mask: 0
[    35.087] (II) fglrx(0): Supported detailed timing:
[    35.087] (II) fglrx(0): clock: 134.4 MHz   Image Size:  344 x 193 mm
[    35.088] (II) fglrx(0): h_active: 1920  h_sync: 1950  h_sync_end 1970 h_blank_end 1982 h_border: 0
[    35.088] (II) fglrx(0): v_active: 1080  v_sync: 1090  v_sync_end 1100 v_blanking: 1130 v_border: 0
[    35.088] (II) fglrx(0): Unknown vendor-specific block f
[    35.088] (II) fglrx(0):  AUO
[    35.088] (II) fglrx(0):  B156HW01 V0
[    35.088] (II) fglrx(0): EDID (in hex):
[    35.088] (II) fglrx(0):     00ffffffffffff0006afed1000000000
[    35.088] (II) fglrx(0):     01120103802213780ac8959e57549226
[    35.088] (II) fglrx(0):     0f505400000001010101010101010101
[    35.088] (II) fglrx(0):     0101010101018034803e703832401e14
[    35.088] (II) fglrx(0):     aa0058c1100000180000000f00000000
[    35.088] (II) fglrx(0):     00000000000000000020000000fe0041
[    35.088] (II) fglrx(0):     554f0a202020202020202020000000fe
[    35.088] (II) fglrx(0):     004231353648573031205630200a0054
[    35.088] (II) fglrx(0): End of Display0 EDID data --------------------
[    35.088] (II) fglrx(0): Connected Display1: CRT1
[    35.088] (II) fglrx(0): Display1 EDID data ---------------------------
[    35.088] (II) fglrx(0): Manufacturer: ACR  Model: ad52  Serial#: 1426067087
[    35.088] (II) fglrx(0): Year: 2005  Week: 50
[    35.088] (II) fglrx(0): EDID Version: 1.3
[    35.088] (II) fglrx(0): Analog Display Input,  Input Voltage Level: 0.700/0.700 V
[    35.088] (II) fglrx(0): Sync:  Separate
[    35.088] (II) fglrx(0): Max Image Size [cm]: horiz.: 41  vert.: 26
[    35.088] (II) fglrx(0): Gamma: 2.20
[    35.088] (II) fglrx(0): DPMS capabilities: Off; RGB/Color Display
[    35.088] (II) fglrx(0): Default color space is primary color space
[    35.088] (II) fglrx(0): First detailed timing is preferred mode
[    35.088] (II) fglrx(0): redX: 0.642 redY: 0.348   greenX: 0.288 greenY: 0.601
[    35.088] (II) fglrx(0): blueX: 0.143 blueY: 0.072   whiteX: 0.313 whiteY: 0.329
[    35.088] (II) fglrx(0): Supported established timings:
[    35.088] (II) fglrx(0): 720x400@70Hz
[    35.088] (II) fglrx(0): 640x480@60Hz
[    35.088] (II) fglrx(0): 640x480@67Hz
[    35.088] (II) fglrx(0): 640x480@72Hz
[    35.088] (II) fglrx(0): 640x480@75Hz
[    35.088] (II) fglrx(0): 800x600@56Hz
[    35.088] (II) fglrx(0): 800x600@60Hz
[    35.088] (II) fglrx(0): 800x600@72Hz
[    35.088] (II) fglrx(0): 800x600@75Hz
[    35.088] (II) fglrx(0): 832x624@75Hz
[    35.088] (II) fglrx(0): 1024x768@60Hz
[    35.088] (II) fglrx(0): 1024x768@70Hz
[    35.088] (II) fglrx(0): 1024x768@75Hz
[    35.088] (II) fglrx(0): 1280x1024@75Hz
[    35.088] (II) fglrx(0): Manufacturer's mask: 0
[    35.088] (II) fglrx(0): Supported standard timings:
[    35.088] (II) fglrx(0): #0: hsize: 1280  vsize 1024  refresh: 60  vid: 32897
[    35.088] (II) fglrx(0): #1: hsize: 1280  vsize 960  refresh: 60  vid: 16513
[    35.088] (II) fglrx(0): #2: hsize: 1152  vsize 864  refresh: 75  vid: 20337
[    35.088] (II) fglrx(0): #3: hsize: 1440  vsize 900  refresh: 60  vid: 149
[    35.088] (II) fglrx(0): Supported detailed timing:
[    35.088] (II) fglrx(0): clock: 106.5 MHz   Image Size:  408 x 255 mm
[    35.088] (II) fglrx(0): h_active: 1440  h_sync: 1520  h_sync_end 1672 h_blank_end 1904 h_border: 0
[    35.088] (II) fglrx(0): v_active: 900  v_sync: 903  v_sync_end 909 v_blanking: 934 v_border: 0
[    35.088] (II) fglrx(0): Ranges: V min: 56 V max: 76 Hz, H min: 30 H max: 82 kHz, PixClock max 145 MHz
[    35.088] (II) fglrx(0): Monitor name: Acer AL1916W
[    35.088] (II) fglrx(0): Serial No: ETL5209014
[    35.088] (II) fglrx(0): EDID (in hex):
[    35.088] (II) fglrx(0):     00ffffffffffff00047252ad8f0e0055
[    35.088] (II) fglrx(0):     320f010368291a782e4fa5a459499924
[    35.088] (II) fglrx(0):     125054bfef0081808140714f95000101
[    35.088] (II) fglrx(0):     0101010101019a29a0d0518422305098
[    35.088] (II) fglrx(0):     360098ff1000001c000000fd00384c1e
[    35.088] (II) fglrx(0):     520e000a202020202020000000fc0041
[    35.088] (II) fglrx(0):     63657220414c31393136570a000000ff
[    35.088] (II) fglrx(0):     0045544c35323039303134202020008c
[    35.088] (II) fglrx(0): End of Display1 EDID data --------------------
[    35.088] (II) fglrx(0): Dynamic Surface Resizing Enabled
[    35.205] (II) fglrx(0): EDID for output LVDS
[    35.205] (II) fglrx(0): Manufacturer: AUO  Model: 10ed  Serial#: 0
[    35.205] (II) fglrx(0): Year: 2008  Week: 1
[    35.205] (II) fglrx(0): EDID Version: 1.3
[    35.205] (II) fglrx(0): Digital Display Input
[    35.205] (II) fglrx(0): Max Image Size [cm]: horiz.: 34  vert.: 19
[    35.205] (II) fglrx(0): Gamma: 2.20
[    35.205] (II) fglrx(0): No DPMS capabilities specified
[    35.205] (II) fglrx(0): Supported color encodings: RGB 4:4:4 YCrCb 4:4:4 
[    35.205] (II) fglrx(0): First detailed timing is preferred mode
[    35.205] (II) fglrx(0): redX: 0.620 redY: 0.340   greenX: 0.330 greenY: 0.570
[    35.205] (II) fglrx(0): blueX: 0.150 blueY: 0.060   whiteX: 0.313 whiteY: 0.329
[    35.205] (II) fglrx(0): Manufacturer's mask: 0
[    35.205] (II) fglrx(0): Supported detailed timing:
[    35.205] (II) fglrx(0): clock: 134.4 MHz   Image Size:  344 x 193 mm
[    35.205] (II) fglrx(0): h_active: 1920  h_sync: 1950  h_sync_end 1970 h_blank_end 1982 h_border: 0
[    35.205] (II) fglrx(0): v_active: 1080  v_sync: 1090  v_sync_end 1100 v_blanking: 1130 v_border: 0
[    35.205] (II) fglrx(0): Unknown vendor-specific block f
[    35.205] (II) fglrx(0):  AUO
[    35.205] (II) fglrx(0):  B156HW01 V0
[    35.205] (II) fglrx(0): EDID (in hex):
[    35.205] (II) fglrx(0):     00ffffffffffff0006afed1000000000
[    35.205] (II) fglrx(0):     01120103802213780ac8959e57549226
[    35.205] (II) fglrx(0):     0f505400000001010101010101010101
[    35.205] (II) fglrx(0):     0101010101018034803e703832401e14
[    35.205] (II) fglrx(0):     aa0058c1100000180000000f00000000
[    35.205] (II) fglrx(0):     00000000000000000020000000fe0041
[    35.205] (II) fglrx(0):     554f0a202020202020202020000000fe
[    35.205] (II) fglrx(0):     004231353648573031205630200a0054
[    35.205] (II) fglrx(0): EDID vendor "AUO", prod id 4333
[    35.205] (II) fglrx(0): Printing DDC gathered Modelines:
[    35.205] (II) fglrx(0): Modeline "1920x1080"x0.0  134.40  1920 1950 1970 1982  1080 1090 1100 1130 -hsync -vsync (67.8 kHz eP)
[    35.205] (II) fglrx(0): Printing probed modes for output LVDS
[    35.205] (II) fglrx(0): Modeline "1920x1080"x60.0  134.40  1920 1950 1970 1982  1080 1090 1100 1130 -hsync -vsync (67.8 kHz eP)
[    35.205] (II) fglrx(0): Modeline "1680x1050"x60.0  134.40  1680 1950 1970 1982  1050 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): Modeline "1400x1050"x60.0  134.40  1400 1950 1970 1982  1050 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): Modeline "1600x900"x60.0  134.40  1600 1950 1970 1982  900 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): Modeline "1280x1024"x60.0  134.40  1280 1950 1970 1982  1024 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): Modeline "1440x900"x60.0  134.40  1440 1950 1970 1982  900 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): Modeline "1280x960"x60.0  134.40  1280 1950 1970 1982  960 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): Modeline "1280x768"x60.0  134.40  1280 1950 1970 1982  768 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): Modeline "1280x720"x60.0  134.40  1280 1950 1970 1982  720 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): Modeline "1024x768"x60.0  134.40  1024 1950 1970 1982  768 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): Modeline "1024x600"x60.0  134.40  1024 1950 1970 1982  600 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): Modeline "800x600"x60.0  134.40  800 1950 1970 1982  600 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): Modeline "800x480"x60.0  134.40  800 1950 1970 1982  480 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): Modeline "640x480"x60.0  134.40  640 1950 1970 1982  480 1090 1100 1130 -hsync -vsync (67.8 kHz e)
[    35.205] (II) fglrx(0): EDID for output DFP1
[    35.205] (II) fglrx(0): EDID for output CRT1
[    35.205] (II) fglrx(0): Manufacturer: ACR  Model: ad52  Serial#: 1426067087
[    35.205] (II) fglrx(0): Year: 2005  Week: 50
[    35.205] (II) fglrx(0): EDID Version: 1.3
[    35.205] (II) fglrx(0): Analog Display Input,  Input Voltage Level: 0.700/0.700 V
[    35.205] (II) fglrx(0): Sync:  Separate
[    35.205] (II) fglrx(0): Max Image Size [cm]: horiz.: 41  vert.: 26
[    35.205] (II) fglrx(0): Gamma: 2.20
[    35.205] (II) fglrx(0): DPMS capabilities: Off; RGB/Color Display
[    35.205] (II) fglrx(0): Default color space is primary color space
[    35.205] (II) fglrx(0): First detailed timing is preferred mode
[    35.205] (II) fglrx(0): redX: 0.642 redY: 0.348   greenX: 0.288 greenY: 0.601
[    35.205] (II) fglrx(0): blueX: 0.143 blueY: 0.072   whiteX: 0.313 whiteY: 0.329
[    35.205] (II) fglrx(0): Supported established timings:
[    35.205] (II) fglrx(0): 720x400@70Hz
[    35.205] (II) fglrx(0): 640x480@60Hz
[    35.205] (II) fglrx(0): 640x480@67Hz
[    35.205] (II) fglrx(0): 640x480@72Hz
[    35.205] (II) fglrx(0): 640x480@75Hz
[    35.205] (II) fglrx(0): 800x600@56Hz
[    35.205] (II) fglrx(0): 800x600@60Hz
[    35.205] (II) fglrx(0): 800x600@72Hz
[    35.205] (II) fglrx(0): 800x600@75Hz
[    35.205] (II) fglrx(0): 832x624@75Hz
[    35.205] (II) fglrx(0): 1024x768@60Hz
[    35.205] (II) fglrx(0): 1024x768@70Hz
[    35.205] (II) fglrx(0): 1024x768@75Hz
[    35.205] (II) fglrx(0): 1280x1024@75Hz
[    35.205] (II) fglrx(0): Manufacturer's mask: 0
[    35.205] (II) fglrx(0): Supported standard timings:
[    35.205] (II) fglrx(0): #0: hsize: 1280  vsize 1024  refresh: 60  vid: 32897
[    35.205] (II) fglrx(0): #1: hsize: 1280  vsize 960  refresh: 60  vid: 16513
[    35.205] (II) fglrx(0): #2: hsize: 1152  vsize 864  refresh: 75  vid: 20337
[    35.205] (II) fglrx(0): #3: hsize: 1440  vsize 900  refresh: 60  vid: 149
[    35.205] (II) fglrx(0): Supported detailed timing:
[    35.205] (II) fglrx(0): clock: 106.5 MHz   Image Size:  408 x 255 mm
[    35.205] (II) fglrx(0): h_active: 1440  h_sync: 1520  h_sync_end 1672 h_blank_end 1904 h_border: 0
[    35.205] (II) fglrx(0): v_active: 900  v_sync: 903  v_sync_end 909 v_blanking: 934 v_border: 0
[    35.205] (II) fglrx(0): Ranges: V min: 56 V max: 76 Hz, H min: 30 H max: 82 kHz, PixClock max 145 MHz
[    35.205] (II) fglrx(0): Monitor name: Acer AL1916W
[    35.205] (II) fglrx(0): Serial No: ETL5209014
[    35.205] (II) fglrx(0): EDID (in hex):
[    35.205] (II) fglrx(0):     00ffffffffffff00047252ad8f0e0055
[    35.205] (II) fglrx(0):     320f010368291a782e4fa5a459499924
[    35.205] (II) fglrx(0):     125054bfef0081808140714f95000101
[    35.205] (II) fglrx(0):     0101010101019a29a0d0518422305098
[    35.205] (II) fglrx(0):     360098ff1000001c000000fd00384c1e
[    35.205] (II) fglrx(0):     520e000a202020202020000000fc0041
[    35.205] (II) fglrx(0):     63657220414c31393136570a000000ff
[    35.205] (II) fglrx(0):     0045544c35323039303134202020008c
[    35.205] (II) fglrx(0): Printing probed modes for output CRT1
[    35.205] (II) fglrx(0): Modeline "1440x900"x60.0  106.50  1440 1520 1672 1904  900 903 909 934 -hsync +vsync (55.9 kHz eP)
[    35.205] (II) fglrx(0): Modeline "1280x1024"x75.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[    35.205] (II) fglrx(0): Modeline "1280x1024"x60.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[    35.205] (II) fglrx(0): Modeline "1280x960"x60.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
[    35.205] (II) fglrx(0): Modeline "1280x800"x60.0  108.00  1280 1376 1488 1800  800 961 964 1000 +hsync +vsync (60.0 kHz e)
[    35.205] (II) fglrx(0): Modeline "1152x864"x75.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
[    35.205] (II) fglrx(0): Modeline "1152x864"x60.0  106.50  1152 1520 1672 1904  864 903 909 934 -hsync +vsync (55.9 kHz e)
[    35.205] (II) fglrx(0): Modeline "1280x768"x60.0  108.00  1280 1376 1488 1800  768 961 964 1000 +hsync +vsync (60.0 kHz e)
[    35.205] (II) fglrx(0): Modeline "1280x720"x60.0  108.00  1280 1376 1488 1800  720 961 964 1000 +hsync +vsync (60.0 kHz e)
[    35.205] (II) fglrx(0): Modeline "1024x768"x75.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[    35.205] (II) fglrx(0): Modeline "1024x768"x70.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[    35.205] (II) fglrx(0): Modeline "1024x768"x60.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    35.205] (II) fglrx(0): Modeline "1024x600"x75.0   78.75  1024 1040 1136 1312  600 769 772 800 +hsync +vsync (60.0 kHz e)
[    35.205] (II) fglrx(0): Modeline "1024x600"x70.0   75.00  1024 1048 1184 1328  600 771 777 806 -hsync -vsync (56.5 kHz e)
[    35.205] (II) fglrx(0): Modeline "1024x600"x60.0   65.00  1024 1048 1184 1344  600 771 777 806 -hsync -vsync (48.4 kHz e)
[    35.205] (II) fglrx(0): Modeline "800x600"x72.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
[    35.205] (II) fglrx(0): Modeline "800x600"x75.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[    35.206] (II) fglrx(0): Modeline "800x600"x60.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    35.206] (II) fglrx(0): Modeline "800x600"x56.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
[    35.206] (II) fglrx(0): Modeline "800x480"x72.0   50.00  800 856 976 1040  480 637 643 666 +hsync +vsync (48.1 kHz e)
[    35.206] (II) fglrx(0): Modeline "800x480"x75.0   49.50  800 816 896 1056  480 601 604 625 +hsync +vsync (46.9 kHz e)
[    35.206] (II) fglrx(0): Modeline "800x480"x60.0   40.00  800 840 968 1056  480 601 605 628 +hsync +vsync (37.9 kHz e)
[    35.206] (II) fglrx(0): Modeline "800x480"x56.0   36.00  800 824 896 1024  480 601 603 625 +hsync +vsync (35.2 kHz e)
[    35.206] (II) fglrx(0): Modeline "640x480"x75.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[    35.206] (II) fglrx(0): Modeline "640x480"x72.0   31.50  640 656 696 832  480 481 484 520 -hsync -vsync (37.9 kHz e)
[    35.206] (II) fglrx(0): Modeline "640x480"x67.0   27.28  640 664 728 816  480 481 484 499 -hsync +vsync (33.4 kHz e)
[    35.206] (II) fglrx(0): Modeline "640x480"x60.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    35.206] (II) fglrx(0): Output LVDS connected
[    35.206] (II) fglrx(0): Output DFP1 disconnected
[    35.206] (II) fglrx(0): Output CRT1 connected
[    35.206] (II) fglrx(0): Using exact sizes for initial modes
[    35.206] (II) fglrx(0): Output LVDS using initial mode 1440x900
[    35.206] (II) fglrx(0): Output CRT1 using initial mode 1440x900
[    35.206] (II) fglrx(0): Using default gamma of (1.0, 1.0, 1.0) unless otherwise stated.
[    35.206] (II) fglrx(0): Setting highest common mode
[    35.206] (II) fglrx(0): Display dimensions: (340, 190) mm
[    35.206] (II) fglrx(0): DPI set to (107, 120)
[    35.206] (II) fglrx(0): Eyefinity capable adapter detected.
[    35.206] (II) fglrx(0): Adapter AMD Mobility Radeon HD 5000 Series has 6 configurable heads and 2 displays connected.
[    35.206] (==) fglrx(0):  PseudoColor visuals disabled
[    35.206] (II) Loading sub module "ramdac"
[    35.206] (II) LoadModule: "ramdac"
[    35.206] (II) Module "ramdac" already built-in
[    35.206] (==) fglrx(0): NoDRI = NO
[    35.206] (==) fglrx(0): Capabilities: 0x00000000
[    35.206] (==) fglrx(0): CapabilitiesEx: 0x00000000
[    35.206] (==) fglrx(0): OpenGL ClientDriverName: "fglrx_dri.so"
[    35.206] (==) fglrx(0): UseFastTLS=0
[    35.206] (II) fglrx(0): Shadow Primary option: ShadowPrimary is enabled
[    35.206] (--) Depth 24 pixmap format is 32 bpp
[    35.206] (II) fglrx(0): doing swlDriScreenInit
[    35.206] (II) fglrx(0): swlDriScreenInit for fglrx driver
[    35.206] ukiDynamicMajor: found major device number 241
[    35.206] ukiDynamicMajor: found major device number 241
[    35.206] ukiDynamicMajor: found major device number 241
[    35.206] ukiOpenByBusid: Searching for BusID PCI:1:0:0
[    35.206] ukiOpenDevice: node name is /dev/ati/card0
[    35.206] ukiOpenDevice: open result is 12, (OK)
[    35.206] ukiOpenByBusid: ukiOpenMinor returns 12
[    35.206] ukiOpenByBusid: ukiGetBusid reports PCI:1:0:0
[    35.206] (II) fglrx(0): [uki] DRM interface version 1.0
[    35.206] (II) fglrx(0): [uki] created "fglrx" driver at busid "PCI:1:0:0"
[    35.206] (II) fglrx(0): [uki] added 8192 byte SAREA at 0x2000
[    35.206] (II) fglrx(0): [uki] mapped SAREA 0x2000 to 0x7f5337485000
[    35.206] (II) fglrx(0): [uki] framebuffer handle = 0x3000
[    35.206] (II) fglrx(0): [uki] added 1 reserved context for kernel
[    35.206] (II) fglrx(0): swlDriScreenInit done
[    35.206] (II) fglrx(0): Kernel Module Version Information:
[    35.206] (II) fglrx(0):     Name: fglrx
[    35.206] (II) fglrx(0):     Version: 14.50.2
[    35.206] (II) fglrx(0):     Date: Nov 20 2014
[    35.206] (II) fglrx(0):     Desc: AMD FireGL DRM kernel module
[    35.206] (II) fglrx(0): Kernel Module version matches driver.
[    35.206] (II) fglrx(0): Kernel Module Build Time Information:
[    35.206] (II) fglrx(0):     Build-Kernel UTS_RELEASE:        3.17.1-gentoo-r1
[    35.206] (II) fglrx(0):     Build-Kernel MODVERSIONS:        yes
[    35.206] (II) fglrx(0):     Build-Kernel __SMP__:            yes
[    35.206] (II) fglrx(0):     Build-Kernel PAGE_SIZE:          0x1000
[    35.206] (II) fglrx(0): [uki] register handle = 0x00004000
[    35.209] (II) fglrx(0): Display width adjusted to to 1536 due to alignment constraints
[    35.209] (II) fglrx(0): DRI initialization successfull
[    35.240] (II) fglrx(0): FBADPhys: 0xf00000000 FBMappedSize: 0x010e0000
[    35.252] (==) fglrx(0): Backing store enabled
[    35.252] (**) fglrx(0): DPMS enabled
[    35.252] (II) fglrx(0): Initialized in-driver Xinerama extension
[    35.252] (**) fglrx(0): Textured Video is enabled.
[    35.252] (II) LoadModule: "glesx"
[    35.252] (II) Loading /usr/lib64/xorg/modules/glesx.so
[    35.649] (II) Module glesx: vendor="X.Org Foundation"
[    35.649]    compiled for 1.4.99.906, module version = 1.0.0
[    35.649] (II) fglrx(0): GLESX enableFlags = 8784
[    35.656] (II) fglrx(0): GLESX is enabled
[    35.656] (II) LoadModule: "amdxmm"
[    35.656] (II) Loading /usr/lib64/xorg/modules/amdxmm.so
[    35.667] (II) Module amdxmm: vendor="X.Org Foundation"
[    35.667]    compiled for 1.4.99.906, module version = 2.0.0
[    35.758] (II) fglrx(0): UVD feature is enabled(II) fglrx(0): 
[    35.768] (II) fglrx(0): Enable composite support successfully
[    35.768] (WW) fglrx(0): Option "VendorName" is not used
[    35.768] (WW) fglrx(0): Option "ModelName" is not used
[    35.768] (II) fglrx(0): X context handle = 0x1
[    35.768] (II) fglrx(0): [DRI] installation complete
[    35.768] (==) fglrx(0): Silken mouse enabled
[    35.776] (==) fglrx(0): Using HW cursor of display infrastructure!
[    35.777] (II) fglrx(0): RandR 1.2 enabled, ignore the following RandR disabled message.
[    35.780] (II) fglrx(0): 'LVDS LCD' ConnectorType, abstracted as 'Panel'
[    35.780] (II) fglrx(0): 'eDP LCD' ConnectorType, abstracted as 'Panel'
[    36.472] (--) RandR disabled
[    36.495] ukiDynamicMajor: found major device number 241
[    36.495] ukiDynamicMajor: found major device number 241
[    36.495] ukiOpenByBusid: Searching for BusID PCI:1:0:0
[    36.495] ukiOpenDevice: node name is /dev/ati/card0
[    36.496] ukiOpenDevice: open result is 13, (OK)
[    36.496] ukiOpenByBusid: ukiOpenMinor returns 13
[    36.496] ukiOpenByBusid: ukiGetBusid reports PCI:1:0:0
[    36.834] ukiDynamicMajor: found major device number 241
[    36.834] ukiDynamicMajor: found major device number 241
[    36.834] ukiDynamicMajor: found major device number 241
[    36.834] ukiOpenDevice: node name is /dev/ati/card0
[    36.834] ukiOpenDevice: open result is 14, (OK)
[    36.834] ukiGetBusid returned 'PCI:1:0:0'
[    36.834] ukiOpenDevice: node name is /dev/ati/card1
[    36.834] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card2
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card3
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card4
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card5
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card6
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card7
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card8
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card9
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card10
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card11
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card12
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card13
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card14
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiOpenDevice: node name is /dev/ati/card15
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: open result is -1, (No such device)
[    36.835] ukiOpenDevice: Open failed
[    36.835] ukiDynamicMajor: found major device number 241
[    36.835] ukiOpenByBusid: Searching for BusID PCI:1:0:0
[    36.835] ukiOpenDevice: node name is /dev/ati/card0
[    36.835] ukiOpenDevice: open result is 14, (OK)
[    36.835] ukiOpenByBusid: ukiOpenMinor returns 14
[    36.835] ukiOpenByBusid: ukiGetBusid reports PCI:1:0:0
[    38.352] (II) AIGLX: Loaded and initialized OpenGL driver(II) GLX: Initialized DRI GL provider for screen 0
[    38.353] ukiDynamicMajor: found major device number 241
[    38.353] ukiDynamicMajor: found major device number 241
[    38.353] ukiDynamicMajor: found major device number 241
[    38.353] ukiOpenDevice: node name is /dev/ati/card0
[    38.353] ukiOpenDevice: open result is 15, (OK)
[    38.353] ukiGetBusid returned 'PCI:1:0:0'
[    38.353] ukiOpenDevice: node name is /dev/ati/card1
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card2
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card3
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card4
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card5
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card6
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card7
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card8
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card9
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card10
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card11
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card12
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card13
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card14
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiOpenDevice: node name is /dev/ati/card15
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: open result is -1, (No such device)
[    38.353] ukiOpenDevice: Open failed
[    38.353] ukiDynamicMajor: found major device number 241
[    38.353] ukiOpenByBusid: Searching for BusID PCI:1:0:0
[    38.353] ukiOpenDevice: node name is /dev/ati/card0
[    38.353] ukiOpenDevice: open result is 15, (OK)
[    38.353] ukiOpenByBusid: ukiOpenMinor returns 15
[    38.353] ukiOpenByBusid: ukiGetBusid reports PCI:1:0:0
[    38.707] (II) fglrx(0): Setting screen physical size to 381 x 238
[    39.511] (II) config/udev: Adding input device Power Button (/dev/input/event3)
[    39.511] (**) Power Button: Applying InputClass "evdev keyboard catchall"
[    39.511] (II) LoadModule: "evdev"
[    39.511] (II) Loading /usr/lib64/xorg/modules/input/evdev_drv.so
[    39.776] (II) Module evdev: vendor="X.Org Foundation"
[    39.776]    compiled for 1.16.3, module version = 2.9.1
[    39.776]    Module class: X.Org XInput Driver
[    39.776]    ABI class: X.Org XInput driver, version 21.0
[    39.776] (II) Using input driver 'evdev' for 'Power Button'
[    39.776] (**) Power Button: always reports core events
[    39.776] (**) evdev: Power Button: Device: "/dev/input/event3"
[    39.776] (--) evdev: Power Button: Vendor 0 Product 0x1
[    39.776] (--) evdev: Power Button: Found keys
[    39.776] (II) evdev: Power Button: Configuring as keyboard
[    39.776] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXPWRBN:00/input/input3/event3"
[    39.776] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 6)
[    39.776] (**) Option "xkb_rules" "evdev"
[    39.776] (**) Option "xkb_model" "pc104"
[    39.776] (**) Option "xkb_layout" "us"
[    39.803] (II) config/udev: Adding input device Video Bus (/dev/input/event9)
[    39.803] (**) Video Bus: Applying InputClass "evdev keyboard catchall"
[    39.803] (II) Using input driver 'evdev' for 'Video Bus'
[    39.803] (**) Video Bus: always reports core events
[    39.803] (**) evdev: Video Bus: Device: "/dev/input/event9"
[    39.803] (--) evdev: Video Bus: Vendor 0 Product 0x6
[    39.803] (--) evdev: Video Bus: Found keys
[    39.803] (II) evdev: Video Bus: Configuring as keyboard
[    39.803] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:08/LNXVIDEO:01/input/input10/event9"
[    39.803] (II) XINPUT: Adding extended input device "Video Bus" (type: KEYBOARD, id 7)
[    39.803] (**) Option "xkb_rules" "evdev"
[    39.803] (**) Option "xkb_model" "pc104"
[    39.803] (**) Option "xkb_layout" "us"
[    39.804] (II) config/udev: Adding input device Power Button (/dev/input/event0)
[    39.804] (**) Power Button: Applying InputClass "evdev keyboard catchall"
[    39.804] (II) Using input driver 'evdev' for 'Power Button'
[    39.804] (**) Power Button: always reports core events
[    39.804] (**) evdev: Power Button: Device: "/dev/input/event0"
[    39.804] (--) evdev: Power Button: Vendor 0 Product 0x1
[    39.804] (--) evdev: Power Button: Found keys
[    39.804] (II) evdev: Power Button: Configuring as keyboard
[    39.804] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:10/PNP0C0C:00/input/input0/event0"
[    39.804] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD, id 8)
[    39.804] (**) Option "xkb_rules" "evdev"
[    39.804] (**) Option "xkb_model" "pc104"
[    39.804] (**) Option "xkb_layout" "us"
[    39.805] (II) config/udev: Adding input device Lid Switch (/dev/input/event1)
[    39.805] (II) No input driver specified, ignoring this device.
[    39.805] (II) This device may have been added with another device file.
[    39.805] (II) config/udev: Adding input device Sleep Button (/dev/input/event2)
[    39.805] (**) Sleep Button: Applying InputClass "evdev keyboard catchall"
[    39.805] (II) Using input driver 'evdev' for 'Sleep Button'
[    39.805] (**) Sleep Button: always reports core events
[    39.805] (**) evdev: Sleep Button: Device: "/dev/input/event2"
[    39.805] (--) evdev: Sleep Button: Vendor 0 Product 0x3
[    39.805] (--) evdev: Sleep Button: Found keys
[    39.805] (II) evdev: Sleep Button: Configuring as keyboard
[    39.805] (**) Option "config_info" "udev:/sys/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:10/PNP0C0E:00/input/input2/event2"
[    39.805] (II) XINPUT: Adding extended input device "Sleep Button" (type: KEYBOARD, id 9)
[    39.805] (**) Option "xkb_rules" "evdev"
[    39.805] (**) Option "xkb_model" "pc104"
[    39.805] (**) Option "xkb_layout" "us"
[    39.805] (II) config/udev: Adding input device HDA ATI HDMI HDMI/DP,pcm=3 (/dev/input/event11)
[    39.805] (II) No input driver specified, ignoring this device.
[    39.805] (II) This device may have been added with another device file.
[    39.806] (II) config/udev: Adding input device HDA Digital PCBeep (/dev/input/event12)
[    39.806] (II) No input driver specified, ignoring this device.
[    39.806] (II) This device may have been added with another device file.
[    39.806] (II) config/udev: Adding input device HDA Intel MID Mic (/dev/input/event13)
[    39.806] (II) No input driver specified, ignoring this device.
[    39.806] (II) This device may have been added with another device file.
[    39.807] (II) config/udev: Adding input device HDA Intel MID Headphone (/dev/input/event14)
[    39.807] (II) No input driver specified, ignoring this device.
[    39.807] (II) This device may have been added with another device file.
[    39.808] (II) config/udev: Adding input device Microsoft Microsoft Optical Mouse with Tilt Wheel (/dev/input/event6)
[    39.808] (**) Microsoft Microsoft Optical Mouse with Tilt Wheel: Applying InputClass "evdev pointer catchall"
[    39.808] (II) Using input driver 'evdev' for 'Microsoft Microsoft Optical Mouse with Tilt Wheel'
[    39.808] (**) Microsoft Microsoft Optical Mouse with Tilt Wheel: always reports core events
[    39.808] (**) evdev: Microsoft Microsoft Optical Mouse with Tilt Wheel: Device: "/dev/input/event6"
[    39.808] (--) evdev: Microsoft Microsoft Optical Mouse with Tilt Wheel: Vendor 0x45e Product 0xd1
[    39.808] (--) evdev: Microsoft Microsoft Optical Mouse with Tilt Wheel: Found 9 mouse buttons
[    39.808] (--) evdev: Microsoft Microsoft Optical Mouse with Tilt Wheel: Found scroll wheel(s)
[    39.808] (--) evdev: Microsoft Microsoft Optical Mouse with Tilt Wheel: Found relative axes
[    39.808] (--) evdev: Microsoft Microsoft Optical Mouse with Tilt Wheel: Found x and y relative axes
[    39.808] (II) evdev: Microsoft Microsoft Optical Mouse with Tilt Wheel: Configuring as mouse
[    39.808] (II) evdev: Microsoft Microsoft Optical Mouse with Tilt Wheel: Adding scrollwheel support
[    39.808] (**) evdev: Microsoft Microsoft Optical Mouse with Tilt Wheel: YAxisMapping: buttons 4 and 5
[    39.808] (**) evdev: Microsoft Microsoft Optical Mouse with Tilt Wheel: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[    39.808] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.1/2-1.1:1.0/0003:045E:00D1.0001/input/input7/event6"
[    39.808] (II) XINPUT: Adding extended input device "Microsoft Microsoft Optical Mouse with Tilt Wheel" (type: MOUSE, id 10)
[    39.808] (II) evdev: Microsoft Microsoft Optical Mouse with Tilt Wheel: initialized for relative axes.
[    39.809] (**) Microsoft Microsoft Optical Mouse with Tilt Wheel: (accel) keeping acceleration scheme 1
[    39.809] (**) Microsoft Microsoft Optical Mouse with Tilt Wheel: (accel) acceleration profile 0
[    39.809] (**) Microsoft Microsoft Optical Mouse with Tilt Wheel: (accel) acceleration factor: 2.000
[    39.809] (**) Microsoft Microsoft Optical Mouse with Tilt Wheel: (accel) acceleration threshold: 4
[    39.809] (II) config/udev: Adding input device Microsoft Microsoft Optical Mouse with Tilt Wheel (/dev/input/mouse1)
[    39.809] (II) No input driver specified, ignoring this device.
[    39.809] (II) This device may have been added with another device file.
[    39.810] (II) config/udev: Adding input device USB 2.0 Camera (/dev/input/event15)
[    39.810] (**) USB 2.0 Camera: Applying InputClass "evdev keyboard catchall"
[    39.810] (II) Using input driver 'evdev' for 'USB 2.0 Camera'
[    39.810] (**) USB 2.0 Camera: always reports core events
[    39.810] (**) evdev: USB 2.0 Camera: Device: "/dev/input/event15"
[    39.810] (--) evdev: USB 2.0 Camera: Vendor 0x64e Product 0xa115
[    39.810] (--) evdev: USB 2.0 Camera: Found keys
[    39.810] (II) evdev: USB 2.0 Camera: Configuring as keyboard
[    39.810] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/input/input16/event15"
[    39.810] (II) XINPUT: Adding extended input device "USB 2.0 Camera" (type: KEYBOARD, id 11)
[    39.810] (**) Option "xkb_rules" "evdev"
[    39.810] (**) Option "xkb_model" "pc104"
[    39.810] (**) Option "xkb_layout" "us"
[    39.812] (II) config/udev: Adding input device NOVATEK USB Keyboard (/dev/input/event7)
[    39.812] (**) NOVATEK USB Keyboard: Applying InputClass "evdev keyboard catchall"
[    39.812] (II) Using input driver 'evdev' for 'NOVATEK USB Keyboard'
[    39.812] (**) NOVATEK USB Keyboard: always reports core events
[    39.812] (**) evdev: NOVATEK USB Keyboard: Device: "/dev/input/event7"
[    39.812] (--) evdev: NOVATEK USB Keyboard: Vendor 0x603 Product 0xf2
[    39.812] (--) evdev: NOVATEK USB Keyboard: Found keys
[    39.812] (II) evdev: NOVATEK USB Keyboard: Configuring as keyboard
[    39.812] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.4/2-1.6.4:1.0/0003:0603:00F2.0002/input/input8/event7"
[    39.812] (II) XINPUT: Adding extended input device "NOVATEK USB Keyboard" (type: KEYBOARD, id 12)
[    39.812] (**) Option "xkb_rules" "evdev"
[    39.812] (**) Option "xkb_model" "pc104"
[    39.812] (**) Option "xkb_layout" "us"
[    39.812] (II) config/udev: Adding input device NOVATEK USB Keyboard (/dev/input/event8)
[    39.812] (**) NOVATEK USB Keyboard: Applying InputClass "evdev keyboard catchall"
[    39.812] (II) Using input driver 'evdev' for 'NOVATEK USB Keyboard'
[    39.812] (**) NOVATEK USB Keyboard: always reports core events
[    39.812] (**) evdev: NOVATEK USB Keyboard: Device: "/dev/input/event8"
[    39.812] (--) evdev: NOVATEK USB Keyboard: Vendor 0x603 Product 0xf2
[    39.812] (--) evdev: NOVATEK USB Keyboard: Found 20 mouse buttons
[    39.812] (--) evdev: NOVATEK USB Keyboard: Found keys
[    39.812] (II) evdev: NOVATEK USB Keyboard: Forcing relative x/y axes to exist.
[    39.812] (II) evdev: NOVATEK USB Keyboard: Configuring as mouse
[    39.812] (II) evdev: NOVATEK USB Keyboard: Configuring as keyboard
[    39.812] (**) evdev: NOVATEK USB Keyboard: YAxisMapping: buttons 4 and 5
[    39.812] (**) evdev: NOVATEK USB Keyboard: EmulateWheelButton: 4, EmulateWheelInertia: 10, EmulateWheelTimeout: 200
[    39.812] (**) Option "config_info" "udev:/sys/devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.6/2-1.6.4/2-1.6.4:1.1/0003:0603:00F2.0003/input/input9/event8"
[    39.812] (II) XINPUT: Adding extended input device "NOVATEK USB Keyboard" (type: KEYBOARD, id 13)
[    39.812] (**) Option "xkb_rules" "evdev"
[    39.812] (**) Option "xkb_model" "pc104"
[    39.812] (**) Option "xkb_layout" "us"
[    39.813] (II) config/udev: Adding input device AT Translated Set 2 keyboard (/dev/input/event4)
[    39.813] (**) AT Translated Set 2 keyboard: Applying InputClass "evdev keyboard catchall"
[    39.813] (II) Using input driver 'evdev' for 'AT Translated Set 2 keyboard'
[    39.813] (**) AT Translated Set 2 keyboard: always reports core events
[    39.813] (**) evdev: AT Translated Set 2 keyboard: Device: "/dev/input/event4"
[    39.813] (--) evdev: AT Translated Set 2 keyboard: Vendor 0x1 Product 0x1
[    39.813] (--) evdev: AT Translated Set 2 keyboard: Found keys
[    39.813] (II) evdev: AT Translated Set 2 keyboard: Configuring as keyboard
[    39.813] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio0/input/input4/event4"
[    39.813] (II) XINPUT: Adding extended input device "AT Translated Set 2 keyboard" (type: KEYBOARD, id 14)
[    39.813] (**) Option "xkb_rules" "evdev"
[    39.813] (**) Option "xkb_model" "pc104"
[    39.813] (**) Option "xkb_layout" "us"
[    39.813] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/event5)
[    39.813] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "touchpad catchall"
[    39.813] (II) LoadModule: "synaptics"
[    39.814] (II) Loading /usr/lib64/xorg/modules/input/synaptics_drv.so
[    39.857] (II) Module synaptics: vendor="X.Org Foundation"
[    39.857]    compiled for 1.16.3, module version = 1.8.1
[    39.857]    Module class: X.Org XInput Driver
[    39.857]    ABI class: X.Org XInput driver, version 21.0
[    39.857] (II) Using input driver 'synaptics' for 'SynPS/2 Synaptics TouchPad'
[    39.857] (**) SynPS/2 Synaptics TouchPad: always reports core events
[    39.857] (**) Option "Device" "/dev/input/event5"
[    39.887] (--) synaptics: SynPS/2 Synaptics TouchPad: x-axis range 1472 - 5772 (res 69)
[    39.887] (--) synaptics: SynPS/2 Synaptics TouchPad: y-axis range 1408 - 5086 (res 118)
[    39.887] (--) synaptics: SynPS/2 Synaptics TouchPad: pressure range 0 - 255
[    39.887] (--) synaptics: SynPS/2 Synaptics TouchPad: finger width range 0 - 15
[    39.887] (--) synaptics: SynPS/2 Synaptics TouchPad: buttons: left right
[    39.887] (--) synaptics: SynPS/2 Synaptics TouchPad: Vendor 0x2 Product 0x7
[    39.887] (**) Option "FingerLow" "35"
[    39.887] (**) Option "FingerHigh" "40"
[    39.887] (**) Option "EmulateTwoFingerMinZ" "40"
[    39.887] (**) Option "EmulateTwoFingerMinW" "8"
[    39.887] (**) Option "VertEdgeScroll" "on"
[    39.887] (**) Option "HorizEdgeScroll" "on"
[    39.887] (**) Option "VertTwoFingerScroll" "on"
[    39.887] (**) Option "HorizTwoFingerScroll" "on"
[    39.887] (**) Option "TapButton1" "1"
[    39.887] (**) Option "TapButton2" "2"
[    39.887] (**) Option "TapButton3" "3"
[    39.887] (**) Option "CircularScrolling" "on"
[    39.887] (**) Option "CircScrollTrigger" "0"
[    39.887] (**) Option "CoastingSpeed" "0"
[    39.887] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[    39.887] (**) SynPS/2 Synaptics TouchPad: always reports core events
[    39.899] (**) Option "config_info" "udev:/sys/devices/platform/i8042/serio1/input/input6/event5"
[    39.899] (II) XINPUT: Adding extended input device "SynPS/2 Synaptics TouchPad" (type: TOUCHPAD, id 15)
[    39.899] (**) synaptics: SynPS/2 Synaptics TouchPad: (accel) MinSpeed is now constant deceleration 2.5
[    39.899] (**) synaptics: SynPS/2 Synaptics TouchPad: (accel) MaxSpeed is now 1.75
[    39.899] (**) synaptics: SynPS/2 Synaptics TouchPad: (accel) AccelFactor is now 0.035
[    39.899] (**) SynPS/2 Synaptics TouchPad: (accel) keeping acceleration scheme 1
[    39.899] (**) SynPS/2 Synaptics TouchPad: (accel) acceleration profile 1
[    39.899] (**) SynPS/2 Synaptics TouchPad: (accel) acceleration factor: 2.000
[    39.899] (**) SynPS/2 Synaptics TouchPad: (accel) acceleration threshold: 4
[    39.899] (--) synaptics: SynPS/2 Synaptics TouchPad: touchpad found
[    39.900] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/mouse0)
[    39.900] (**) SynPS/2 Synaptics TouchPad: Ignoring device from InputClass "touchpad ignore duplicates"
[    39.900] (II) config/udev: Adding input device PC Speaker (/dev/input/event10)
[    39.900] (II) No input driver specified, ignoring this device.
[    39.900] (II) This device may have been added with another device file.
[    39.906] (II) fglrx(0): Restoring Recent Mode via PCS is not supported in RANDR 1.2 capable environments
[    70.796] (II) fglrx(0): EDID vendor "ACR", prod id 44370
[    70.796] (II) fglrx(0): Using hsync ranges from config file
[    70.796] (II) fglrx(0): Using vrefresh ranges from config file
[    70.796] (II) fglrx(0): Printing DDC gathered Modelines:
[    70.796] (II) fglrx(0): Modeline "1440x900"x0.0  106.50  1440 1520 1672 1904  900 903 909 934 -hsync +vsync (55.9 kHz eP)
[    70.796] (II) fglrx(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    70.796] (II) fglrx(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
[    70.796] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[    70.796] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
[    70.796] (II) fglrx(0): Modeline "640x480"x0.0   30.24  640 704 768 864  480 483 486 525 -hsync -vsync (35.0 kHz e)
[    70.796] (II) fglrx(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    70.796] (II) fglrx(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[    70.796] (II) fglrx(0): Modeline "1280x1024"x0.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[    70.796] (II) fglrx(0): Modeline "1024x768"x0.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[    70.796] (II) fglrx(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[    70.797] (II) fglrx(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    70.797] (II) fglrx(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
[    70.797] (II) fglrx(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[    70.797] (II) fglrx(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
[    70.797] (II) fglrx(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[    70.797] (II) fglrx(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
[    70.797] (II) fglrx(0): Modeline "1152x864"x0.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
[    72.599] (II) fglrx(0): EDID vendor "ACR", prod id 44370
[    72.599] (II) fglrx(0): Using hsync ranges from config file
[    72.599] (II) fglrx(0): Using vrefresh ranges from config file
[    72.599] (II) fglrx(0): Printing DDC gathered Modelines:
[    72.599] (II) fglrx(0): Modeline "1440x900"x0.0  106.50  1440 1520 1672 1904  900 903 909 934 -hsync +vsync (55.9 kHz eP)
[    72.599] (II) fglrx(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    72.599] (II) fglrx(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
[    72.599] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[    72.599] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
[    72.599] (II) fglrx(0): Modeline "640x480"x0.0   30.24  640 704 768 864  480 483 486 525 -hsync -vsync (35.0 kHz e)
[    72.599] (II) fglrx(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    72.599] (II) fglrx(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[    72.599] (II) fglrx(0): Modeline "1280x1024"x0.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[    72.599] (II) fglrx(0): Modeline "1024x768"x0.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[    72.599] (II) fglrx(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[    72.599] (II) fglrx(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    72.599] (II) fglrx(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
[    72.599] (II) fglrx(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[    72.600] (II) fglrx(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
[    72.600] (II) fglrx(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[    72.600] (II) fglrx(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
[    72.600] (II) fglrx(0): Modeline "1152x864"x0.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
[    76.950] (II) fglrx(0): EDID vendor "ACR", prod id 44370
[    76.950] (II) fglrx(0): Using hsync ranges from config file
[    76.950] (II) fglrx(0): Using vrefresh ranges from config file
[    76.950] (II) fglrx(0): Printing DDC gathered Modelines:
[    76.950] (II) fglrx(0): Modeline "1440x900"x0.0  106.50  1440 1520 1672 1904  900 903 909 934 -hsync +vsync (55.9 kHz eP)
[    76.950] (II) fglrx(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    76.950] (II) fglrx(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
[    76.950] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[    76.950] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
[    76.950] (II) fglrx(0): Modeline "640x480"x0.0   30.24  640 704 768 864  480 483 486 525 -hsync -vsync (35.0 kHz e)
[    76.950] (II) fglrx(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    76.950] (II) fglrx(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[    76.950] (II) fglrx(0): Modeline "1280x1024"x0.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[    76.950] (II) fglrx(0): Modeline "1024x768"x0.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[    76.950] (II) fglrx(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[    76.950] (II) fglrx(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    76.950] (II) fglrx(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
[    76.950] (II) fglrx(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[    76.950] (II) fglrx(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
[    76.950] (II) fglrx(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[    76.950] (II) fglrx(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
[    76.950] (II) fglrx(0): Modeline "1152x864"x0.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
[    76.951] (II) fglrx(0): xdl_xs116_atiddxDisplayScreenEnableDisplays
[    78.915] (II) fglrx(0): EDID vendor "ACR", prod id 44370
[    78.915] (II) fglrx(0): Using hsync ranges from config file
[    78.915] (II) fglrx(0): Using vrefresh ranges from config file
[    78.916] (II) fglrx(0): Printing DDC gathered Modelines:
[    78.916] (II) fglrx(0): Modeline "1440x900"x0.0  106.50  1440 1520 1672 1904  900 903 909 934 -hsync +vsync (55.9 kHz eP)
[    78.916] (II) fglrx(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[    78.916] (II) fglrx(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
[    78.916] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[    78.916] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
[    78.916] (II) fglrx(0): Modeline "640x480"x0.0   30.24  640 704 768 864  480 483 486 525 -hsync -vsync (35.0 kHz e)
[    78.916] (II) fglrx(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[    78.916] (II) fglrx(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[    78.916] (II) fglrx(0): Modeline "1280x1024"x0.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[    78.916] (II) fglrx(0): Modeline "1024x768"x0.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[    78.916] (II) fglrx(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[    78.916] (II) fglrx(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[    78.916] (II) fglrx(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
[    78.916] (II) fglrx(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[    78.916] (II) fglrx(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
[    78.916] (II) fglrx(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[    78.916] (II) fglrx(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
[    78.916] (II) fglrx(0): Modeline "1152x864"x0.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
[   134.000] (II) fglrx(0): EDID vendor "ACR", prod id 44370
[   136.027] (II) fglrx(0): Using hsync ranges from config file
[   136.027] (II) fglrx(0): Using vrefresh ranges from config file
[   136.027] (II) fglrx(0): Printing DDC gathered Modelines:
[   136.027] (II) fglrx(0): Modeline "1440x900"x0.0  106.50  1440 1520 1672 1904  900 903 909 934 -hsync +vsync (55.9 kHz eP)
[   136.027] (II) fglrx(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[   136.027] (II) fglrx(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
[   136.027] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[   136.027] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
[   136.027] (II) fglrx(0): Modeline "640x480"x0.0   30.24  640 704 768 864  480 483 486 525 -hsync -vsync (35.0 kHz e)
[   136.027] (II) fglrx(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[   136.027] (II) fglrx(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[   136.027] (II) fglrx(0): Modeline "1280x1024"x0.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[   136.027] (II) fglrx(0): Modeline "1024x768"x0.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[   136.027] (II) fglrx(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[   136.027] (II) fglrx(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[   136.027] (II) fglrx(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
[   136.027] (II) fglrx(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[   136.027] (II) fglrx(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
[   136.027] (II) fglrx(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[   136.027] (II) fglrx(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
[   136.027] (II) fglrx(0): Modeline "1152x864"x0.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
[   136.035] (II) fglrx(0): EDID vendor "ACR", prod id 44370
[   136.035] (II) fglrx(0): Using hsync ranges from config file
[   136.035] (II) fglrx(0): Using vrefresh ranges from config file
[   136.035] (II) fglrx(0): Printing DDC gathered Modelines:
[   136.035] (II) fglrx(0): Modeline "1440x900"x0.0  106.50  1440 1520 1672 1904  900 903 909 934 -hsync +vsync (55.9 kHz eP)
[   136.035] (II) fglrx(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[   136.035] (II) fglrx(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
[   136.035] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[   136.035] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
[   136.035] (II) fglrx(0): Modeline "640x480"x0.0   30.24  640 704 768 864  480 483 486 525 -hsync -vsync (35.0 kHz e)
[   136.035] (II) fglrx(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[   136.035] (II) fglrx(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[   136.035] (II) fglrx(0): Modeline "1280x1024"x0.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[   136.035] (II) fglrx(0): Modeline "1024x768"x0.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[   136.035] (II) fglrx(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[   136.035] (II) fglrx(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[   136.035] (II) fglrx(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
[   136.035] (II) fglrx(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[   136.035] (II) fglrx(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
[   136.035] (II) fglrx(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[   136.035] (II) fglrx(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
[   136.035] (II) fglrx(0): Modeline "1152x864"x0.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
[   139.822] (II) fglrx(0): EDID vendor "ACR", prod id 44370
[   139.822] (II) fglrx(0): Using hsync ranges from config file
[   139.822] (II) fglrx(0): Using vrefresh ranges from config file
[   139.822] (II) fglrx(0): Printing DDC gathered Modelines:
[   139.822] (II) fglrx(0): Modeline "1440x900"x0.0  106.50  1440 1520 1672 1904  900 903 909 934 -hsync +vsync (55.9 kHz eP)
[   139.822] (II) fglrx(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[   139.822] (II) fglrx(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
[   139.822] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[   139.822] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
[   139.822] (II) fglrx(0): Modeline "640x480"x0.0   30.24  640 704 768 864  480 483 486 525 -hsync -vsync (35.0 kHz e)
[   139.822] (II) fglrx(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[   139.822] (II) fglrx(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[   139.822] (II) fglrx(0): Modeline "1280x1024"x0.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[   139.822] (II) fglrx(0): Modeline "1024x768"x0.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[   139.822] (II) fglrx(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[   139.822] (II) fglrx(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[   139.822] (II) fglrx(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
[   139.822] (II) fglrx(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[   139.822] (II) fglrx(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
[   139.822] (II) fglrx(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[   139.822] (II) fglrx(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
[   139.822] (II) fglrx(0): Modeline "1152x864"x0.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)
[   139.829] (II) fglrx(0): EDID vendor "ACR", prod id 44370
[   139.829] (II) fglrx(0): Using hsync ranges from config file
[   139.829] (II) fglrx(0): Using vrefresh ranges from config file
[   139.829] (II) fglrx(0): Printing DDC gathered Modelines:
[   139.829] (II) fglrx(0): Modeline "1440x900"x0.0  106.50  1440 1520 1672 1904  900 903 909 934 -hsync +vsync (55.9 kHz eP)
[   139.829] (II) fglrx(0): Modeline "800x600"x0.0   40.00  800 840 968 1056  600 601 605 628 +hsync +vsync (37.9 kHz e)
[   139.829] (II) fglrx(0): Modeline "800x600"x0.0   36.00  800 824 896 1024  600 601 603 625 +hsync +vsync (35.2 kHz e)
[   139.829] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 656 720 840  480 481 484 500 -hsync -vsync (37.5 kHz e)
[   139.829] (II) fglrx(0): Modeline "640x480"x0.0   31.50  640 664 704 832  480 489 492 520 -hsync -vsync (37.9 kHz e)
[   139.829] (II) fglrx(0): Modeline "640x480"x0.0   30.24  640 704 768 864  480 483 486 525 -hsync -vsync (35.0 kHz e)
[   139.829] (II) fglrx(0): Modeline "640x480"x0.0   25.18  640 656 752 800  480 490 492 525 -hsync -vsync (31.5 kHz e)
[   139.829] (II) fglrx(0): Modeline "720x400"x0.0   28.32  720 738 846 900  400 412 414 449 -hsync +vsync (31.5 kHz e)
[   139.829] (II) fglrx(0): Modeline "1280x1024"x0.0  135.00  1280 1296 1440 1688  1024 1025 1028 1066 +hsync +vsync (80.0 kHz e)
[   139.829] (II) fglrx(0): Modeline "1024x768"x0.0   78.75  1024 1040 1136 1312  768 769 772 800 +hsync +vsync (60.0 kHz e)
[   139.829] (II) fglrx(0): Modeline "1024x768"x0.0   75.00  1024 1048 1184 1328  768 771 777 806 -hsync -vsync (56.5 kHz e)
[   139.829] (II) fglrx(0): Modeline "1024x768"x0.0   65.00  1024 1048 1184 1344  768 771 777 806 -hsync -vsync (48.4 kHz e)
[   139.829] (II) fglrx(0): Modeline "832x624"x0.0   57.28  832 864 928 1152  624 625 628 667 -hsync -vsync (49.7 kHz e)
[   139.829] (II) fglrx(0): Modeline "800x600"x0.0   49.50  800 816 896 1056  600 601 604 625 +hsync +vsync (46.9 kHz e)
[   139.829] (II) fglrx(0): Modeline "800x600"x0.0   50.00  800 856 976 1040  600 637 643 666 +hsync +vsync (48.1 kHz e)
[   139.829] (II) fglrx(0): Modeline "1280x1024"x0.0  108.00  1280 1328 1440 1688  1024 1025 1028 1066 +hsync +vsync (64.0 kHz e)
[   139.829] (II) fglrx(0): Modeline "1280x960"x0.0  108.00  1280 1376 1488 1800  960 961 964 1000 +hsync +vsync (60.0 kHz e)
[   139.829] (II) fglrx(0): Modeline "1152x864"x0.0  108.00  1152 1216 1344 1600  864 865 868 900 +hsync +vsync (67.5 kHz e)

The Xorg.0.log file is now cleaner, and I noticed a tiny improvement (I estimate a couple of seconds) in the loading of X Windows when the laptop starts up. Although there has been no change in video and touchpad functionality as far as I can tell, tidying up and removing redundant and incorrect X Windows configuration lines was a worthwhile exercise as I learned something in the process.

You will notice that no keyboard layout and variant are specified in any X Windows configuration file listed above. This laptop has an English (UK) keyboard layout, but sometimes I use it with external USB keyboards having English (UK), English (US), Portuguese (Brazil) and Spanish (Spain) layouts. As the laptop runs KDE, I had already configured KDE to allow me to toggle between the four keyboard layouts and so did not need to configure X Windows for the keyboard layout. However, on machines running Linux with desktop environments that do not have such a facility I add a file with a name such as /etc/X11/xorg.conf.d/15-keyboard.conf containing the following to suit my particular requirements:

Section "InputClass"
        Identifier "keyboard"
        MatchIsKeyboard "yes"
        Option "XkbLayout" "gb,us,br,es"
        Option "XkbVariant" "pc104"
        Option "XkbOptions" "grp:alt_shift_toggle"
EndSection

As the last option suggests, pressing Alt+Shift would toggle between the layouts specified.

Audio in Linux becomes annoying again

At the moment I seem to be having more audio problems than usual. Last month I blogged about having to fix the ALSA Speaker volume level resetting to zero at boot, and recently two other audio problems have cropped up.

Thunderbird

I have been having trouble with Thunderbird’s ‘system sound’ that announces the arrival of a new e-mail. Lately, Thunderbird has started playing too loud and with significant distortion the audio clip it had been playing perfectly for the last four years. This is especially strange because I created that audio clip with Audacity from another audio clip that sounded too loud when Thunderbird played it. Ironically, the work-around for this latest problem was to switch to the original, much louder sound clip alert.wav instead of the quieter alert_quiet.wav. Not only does Thunderbird now play alert.wav at a lower volume than alert_quiet.wav, but the sound of alert.wav is not distorted when Thunderbird plays it. Yet if I play alert.wav and alert_quiet.wav using SMPlayer, the former is much louder than the latter and neither is distorted. Figure that one out.

The event notification sound that Thunderbird uses to remind me about an impending meeting scheduled in the calendar has now started sounding very distorted too. I still have not found a work-around for that. Event sounds played by the desktop environment I use (KDE) are not distorted, so what is Thunderbird doing? Perhaps the problem is not Thunderbird itself but the audio library it uses, so I need to investigate further.

Skype

Yet another audio problem cropped up this morning when I connected my laptop to an external monitor and keyboard (and thus I left the laptop’s lid almost closed) in an open-plan office and booted the laptop. I entered my username and password on the KDM log-in screen, and the KDE splash screen appeared as usual. After a few seconds the laptop’s speakers suddenly emitted a piercing, continuous howl; the well-known sound of audio feedback from speakers to microphone. It was LOUD. The volume control buttons on the keyboard made no difference, and the sound was so loud that everyone in the office noticed and several people came over to tell me to reset the BIOS (apparently that had fixed the problem for their laptops running Windows).

I kept my finger on the laptop’s power switch and, after several seconds, the laptop powered off. My laptop dual boots Windows 7 and Gentoo Linux, and the audio feedback did not occur when I booted Windows 7. After booting Linux again a couple of times and annoying everyone in the office even more, I discovered I could open the laptop’s lid far enough back to reduce the feedback to a low whine, so I could let KDE finish launching and display the Desktop. I then launched ALSAMixer and discovered that ‘Internal Mic Boost’ was set to 100%. So I immediately lowered it to zero. Then the penny dropped: I had used Skype the previous night without bothering to connect my headphones and external microphone, and Skype had automatically raised ‘Internal Mic Boost’ all the way up to 100%. So I immediately launched Skype, selected ‘Options’ > ‘Sound Devices’ and unticked ‘Allow Skype to automatically adjust my mixer levels’. The next thing I did was add the following lines to the script /etc/local.d/20set_alsa_volume.start mentioned in my previous blog post Fix for ALSA Speaker volume level resetting to zero at boot:

su -c "amixer -c 0 -- sset 'Internal Mic Boost' 0%" -s /bin/sh fitzcarraldo
su -c "amixer -c 0 -- sset 'Internal Mic' 0%" -s /bin/sh fitzcarraldo
su -c "amixer -c 0 -- sset 'Mic Boost' 0%" -s /bin/sh fitzcarraldo
su -c "amixer -c 0 -- sset 'Mic' 0%" -s /bin/sh fitzcarraldo

From now on, only I am allowed to adjust microphone settings! To avoid any possibility of feedback loops in future, the above-mentioned script sets all the microphone channels to zero and I will have to adjust them myself before use. I already have ALSAMixerGUI in the KDE Launcher menu, so it won’t be a big deal to do that.

This fiasco with Skype got me thinking: if Skype is set to automatically adjust mixer levels when you are in a conversation, when you exit Skype why doesn’t it automatically set mixer levels back to the way they were when Skype was launched? It could be done easily and would be more user-friendly than the current way Skype works.

Interrelationship between PulseAudio and ALSA

The final thing I did (yet again) was to adjust all the various ALSA channels and PulseAudio channels to try and get the resulting audio input and output sounding reasonable. This is easier said than done. I often have to mess around with ALSAMixer and PulseAudio Volume Control in order to get audio input and output working satisfactorily in all applications that use audio. It is actually more difficult than it sounds (ouch!) to get ALSA and PulseAudio ‘balanced’ (for want of a better word). In the days before PulseAudio existed, one only had to adjust ALSA. Now, with two agents controlling audio, the task turns out to be surprisingly awkward sometimes.

To sum up, boo to Thunderbird (or whatever it uses to play sounds), boo to Skype and boo to PulseAudio. I’m fed up with audio issues in Linux at the moment. :-x

Update (January 19, 2015): It turns out that the problem in Thunderbird was due to PulseAudio. See my next post for details of how I fixed it.

Installing and configuring the CUPS-PDF virtual printer driver

Some applications, such as LibreOffice, have built-in support for exporting their output to PDF files. For applications without built-in support for creating PDF files there may already be an installed ‘Print to File (PDF)’ driver in your installation that you can use. However, the Print to File (PDF) option does not appear in the list of available printers in all applications. Fortunately, CUPS has a driver named CUPS-PDF which you can install to create a virtual printer that will produce PDF files.

I install the package net-print/cups-pdf and use the CUPS Printer Manager in a browser to set up a virtual printer to ‘print’ PDF files. I use the driver in conjunction with a shell script that calls a utility to display a ‘Save As’ dialogue box so the user can specify the directory and name of the PDF file.

KDialog (KDE/Qt) and Zenity (GTK+) are two well-known dialogue box tools for use in shell scripts (see, for example, the Linux Magazine article Adding graphic elements to your scripts with Zenity and KDialog). However, although I use KDE on my main laptop, I was unable to get KDialog working properly in a shell script launched by the CUPS PDF driver, so I resorted to using Zenity, which I found simple to use and reliable. My shell script using Zenity is listed further down.

Although Zenity has performed this job perfectly for me in all releases of KDE since 2007, it rankled that I could not get KDialog to do the job. However, a couple of Gentoo users were able to use KDialog successfully with the CUPS PDF driver, each with a different approach to the other, but their approaches both consisted of two shell scripts. In contrast, a solution using Zenity uses only one shell script. You can see the KDialog solutions by the two users (Havin_it and sicvolo) in Gentoo Forums thread [TIP] CUPS-PDF “Save As” with kdialog. I was determined to have a single shell script using KDialog, and was able to conflate sicvolo‘s two-script solution. My thanks go to him for his clever code in his two shell scripts, as I would never have worked it out myself. My single shell script using KDialog is listed further down.

First I will explain how to install the CUPS PDF driver package, then how to use the CUPS Printer Manager to install the virtual printer, and finally how to use a shell script with either Zenity or KDialog in order to display a graphical dialogue box prompting you to specify the directory and file name for the PDF file to be created. I use Gentoo Linux, but the procedure will be similar in other distributions (package manager commands excepted).

1.0  Installation of the cups-pdf driver and virtual printer

1.1  Install the cups-pdf package:

# emerge cups-pdf

1.2  Launch a Web browser and enter http://localhost:631/ in the Address bar to display the CUPS Printer Manager.

1.3  Click on ‘Administration’ to call up the Administration page, then click ‘Add Printer’. If prompted, enter the username ‘root’ (without the quotes) and the root user’s password.

1.4  Select ‘CUPS-PDF (Virtual PDF Printer)’ in the list of local printers, and click ‘Continue’.

1.5  Enter a name, decription and location for the virtual printer. For example, I entered ‘Virtual_PDF_Printer’, ‘Virtual PDF Printer’ and ‘Mesh Edge DX’ (without the quotes), respectively. Then click ‘Continue’.

1.6  Select ‘Generic’ in the ‘Make:’ box, and click ‘Continue’.

1.7  Select ‘Generic CUPS-PDF Printer (w/ options) (en)’ in the ‘Model:’ box, and click ‘Add Printer’. The virtual printer should now be available for you to use.

1.8  When you come to print from an application, if you select Virtual_PDF_Printer from the list of available printers the PDF file will be saved in the directory /var/spool/cups-pdf/<your username>/. Note that the directory will be created automatically the first time you ‘print’ to PDF.

1.9  Optionally, you could create a shortcut (Desktop Config File) on your Desktop to open the directory mentioned in Step 1.8 above.

1.10 Optionally, instead of Step 1.9 you could edit the file /etc/cups/cups-pdf.conf as root user to get cups-pdf to ‘print’ PDF documents to your Desktop instead of in /var/spool/cups-pdf/<your username>/, by changing the line:

#Out /var/spool/cups-pdf/${USER}

to:

Out ${HOME}/Desktop


2.0  How to display a dialog box prompting for the directory and file name of the PDF file

If you prefer to be prompted for a file name so that you can save the PDF file wherever you want and give it any name you want, perform the steps below instead of Steps 1.9 or 1.10 above. Either perform the steps in 2.1 (Zenity) or the steps in 2.2 (KDialog). Then perform the steps in 2.3, which apply in both cases.

2.1   Zenity (GTK+)

2.1.1   Install Zenity:

# emerge zenity

2.1.2   Check it is installed:

# eix -I zenity
[I] gnome-extra/zenity
Available versions: 3.12.1 {debug libnotify test +webkit}
Installed versions: 3.12.1(13:49:47 04/12/14)(libnotify webkit -debug -test)
Homepage: https://wiki.gnome.org/Projects/Zenity
Description: Tool to display dialogs from the commandline and shell scripts

2.1.3   Using a text editor, create the following shell script in your home directory and give it a meaningful name, such as cups-pdf_script.sh:

#!/bin/bash
CURRENT_PDF="${1}"
CURRENT_USER="${2}"
DISPLAY=:0.0
export DISPLAY
XAUTHORITY=/home/${CURRENT_USER}/.Xauthority
export XAUTHORITY
PDFNAME=$(zenity --file-selection --save --confirm-overwrite)
mv "$CURRENT_PDF" "$PDFNAME"

2.2   KDialog (KDE/Qt)

2.2.1   Install KDialog:

# emerge kde-base/kdialog

2.2.2   Check it is installed:

# eix -I kde-base/kdialog
[I] kde-base/kdialog
Available versions: (4) 4.12.5(4/4.12) (~)4.14.2(4/4.14) (~)4.14.3(4/4.14)
{aqua debug}
Installed versions: 4.14.3(4)(00:56:36 04/12/14)(-aqua -debug)
Homepage: http://www.kde.org/
Description: KDialog can be used to show nice dialog boxes from shell scripts

2.2.3   Using a text editor, create the following shell script in your home directory and give it a meaningful name such as cups-pdf_script.sh:

#!/bin/bash

get_dbus()
{
if [ -z $1 ]; then
    echo "specify user" >> $HOME/cups-pdf_script.log
    return 1
fi
# Search these processes for the session variable (they are run as the current user and have the DBUS session variable set)
compatiblePrograms=( kdeinit kded4 pulseaudio trackerd )

# Attempt to get a program pid
for index in ${compatiblePrograms[@]}; do
   PID=$(ps -ef | grep $1 | grep ${index} | head -1 | awk '{print $2}')
   if [[ "${PID}" != "" ]]; then
      break
   fi
done
if [[ "${PID}" == "" ]]; then
   echo "Could not detect active login session" >> $HOME/cups-pdf_script.log
   return 1
fi
QUERY_ENVIRON="$(tr '\0' '\n' < /proc/${PID}/environ | grep "DBUS_SESSION_BUS_ADDRESS" | cut -d "=" -f 2-)"
if [[ "${QUERY_ENVIRON}" != "" ]]; then
#   echo ${QUERY_ENVIRON} >> $HOME/cups-pdf_script.log
   return 0
else
   echo "Could not find dbus session ID in user environment." >> $HOME/cups-pdf_script.log
   return 1
fi
}

CURRENT_PDF="$1"
CURRENT_USER="$2"

export DISPLAY=:0
export XAUTHORITY=/home/${CURRENT_USER}/.Xauthority
export HOME=/home/${CURRENT_USER}/
CONFIG_FILE="/home/${CURRENT_USER}/.pdf-writer.conf"
CANCELLED="No"

date > $HOME/cups-pdf_script.log

get_dbus ${CURRENT_USER}
if [ $? -eq 0 ]; then
   export DBUS_SESSION_BUS_ADDRESS=${QUERY_ENVIRON}
   while [ True ]; do
      CURDATE=$(/bin/date +%Y%m%d)
      CURNAME=$(/bin/cat "$CONFIG_FILE")
      BASENAME=$(basename $CURRENT_PDF)
      FILENAME=$(/usr/bin/kdialog --getsavefilename "$CURNAME$CURDATE-" "*.pdf" --title="Save PDF")
      if [ $? -eq 1 ]; then
         CANCELLED="Yes"
         break
      fi
      echo $FILENAME
      if [ ! "$FILENAME" = "" ]; then
         if [ -e "$FILENAME" ]; then
            /usr/bin/kdialog --warningcontinuecancel "File already exists"
            if [ $? -eq 1 ]; then
               continue;
            fi
         fi
         FILENAME=$(echo $FILENAME.pdf | sed -re "s/(\.pdf)+$/.pdf/g")
         break;
      else
         /usr/bin/kdialog --error "You must select a file or hit Cancel."
      fi
      break
   done
   if [ "${CANCELLED}" == "No" ]; then
      /bin/cp "${CURRENT_PDF}" "${FILENAME}"
      okular "${FILENAME}" &
   fi
   /bin/rm "${CURRENT_PDF}"
   echo "No errors encountered." >> $HOME/cups-pdf_script.log
   exit 0
else
   /bin/rm "${CURRENT_PDF}"
   echo "Errors encountered." >> $HOME/cups-pdf_script.log
   exit 1
fi

2.3   Whichever of the above two options (Zenity or KDialog) you chose, do the following:

2.3.1   Make the shell script file executable:

# chmod +x /home/<your username>/cups-pdf_script.sh

2.3.2   Edit the file /etc/cups/cups-pdf.conf, find the line starting with ‘#PostProcessing‘, and change it to:

PostProcessing /home/<your username>/cups-pdf_script.sh

2.3.3   Restart CUPS:

# /etc/init.d/cupsd restart # If your installation uses OpenRC.

# systemctl restart cups.service # If your installation uses systemd.

Now, when you select Virtual_PDF_Printer from your applications’ list of available printers and click ‘Print’, a pop-up window should appear, allowing you to select the target directory for the PDF file and enter a file name of your choice.

Fix for ALSA Speaker volume level resetting to zero at boot

Up until 2011 the problem of the volume level in ALSA resetting to zero at boot was a common occurrence in my Linux installations. Actually it was a common occurrence in Linux, full stop; search the Web using keywords such as “alsa reset volume” and you’ll find umpteen links. In 2012 the situation improved and I thought the problem had become a thing of the past, but it resurfaced in 2013 on my main laptop and has plagued me through every update since (well, apart from in one release of KDE). Every time I reboot, the ALSA Speaker channel’s volume is zero when I log-in to KDE. And, as KMix is a PulseAudio mixer by default these days, I have to launch ALSAMixer and raise the volume of the Speaker channel manually.

I don’t know if the source of the problem lies in KDE, PulseAudio or ALSA itself. It did disappear after one upgrade to KDE earlier this year (I don’t recall which release of KDE) but returned in the next KDE upgrade, so I suspect it is a KDE issue. In earlier days I could resolve the problem using the commands alsactrl store and alsactl restore and similar approaches. However, this time none of those fixes work for me. The problem never bothered me much, as I always connect external speakers to my laptop’s headphone socket when I’m at home, and I don’t want my laptop emitting sounds at the office. Nevertheless, the fact the problem exists niggled me, so I decided to try and fix it. Rather than expending any more effort trying to get the usual approaches to work (the Web is littered with suggested fixes over the years), I decided to reset the Speaker volume to the same level at each boot by using an automatically-launched shell script. The method I use is given below, and should work with either OpenRC or systemd in Gentoo Linux.

1. Create the file /etc/local.d/20set_alsa_volume.start containing the following:

#!/bin/bash
# Reset ALSA Speaker channel on the first sound card to 90% after booting.
su -c "amixer -c 0 -- sset Speaker playback 90%" -s /bin/sh fitzcarraldo

(Replace “fitzcarraldo” with your own user name, of course.)

2. Make the script executable:

# chmod +x 20set_alsa_volume.start

That’s all there is to it. The volume of the ALSA Speaker channel is always set to 90% after I reboot and login to the desktop environment. KMix remembers the PulseAudio volume setting from the previous session, so I can still avoid blasting the laptop’s speakers.

By the way, the manual pages for the amixer and alsamixer commands make useful reading:

$ man amixer
$ man alsamixer

For example, the first audio card (Card 0) in my main laptop has the following controls:

$ amixer -c 0 scontrols
Simple mixer control ‘Master’,0
Simple mixer control ‘Headphone’,0
Simple mixer control ‘Speaker’,0
Simple mixer control ‘PCM’,0
Simple mixer control ‘Mic’,0
Simple mixer control ‘Mic Boost’,0
Simple mixer control ‘Beep’,0
Simple mixer control ‘Capture’,0
Simple mixer control ‘Auto-Mute Mode’,0
Simple mixer control ‘Digital’,0
Simple mixer control ‘Internal Mic’,0
Simple mixer control ‘Internal Mic Boost’,0

Update (January 29, 2015): I found the cause of the problem: PulseAudio. I edited the file /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf as per user agmg‘s January 2013 post Re: [SOLVED] Problems with PulseAudio 3.0 in the PCLinuxOS Forums:

Again, I had to edit the file: /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf

and change this:

[Element Speaker]
switch = mute
volume = off

to this:

[Element Speaker]
switch = mute
volume = merge

I realized that editing the [Element Desktop Speaker] section of the above file, has no effect on the issue. Only the edit to [Element Speaker] is needed in my case.

In my case this change forces the ALSA Speaker channel volume to 100% after rebooting (irrespective of the volume levels I set via ALSAMixer and KMix before shutdown).

The contents of the file /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf also include the following comment:

; See analog-output.conf.common for an explanation on the directives

The contents of the file analog-output.conf.common include the following comment:

; volume = ignore | merge | off | zero | <volume step> # What to do with this volume: ignore it, merge it into the device
;                                                      # volume slider, always set it to the lowest value possible, or always
;                                                      # set it to 0 dB (for whatever that means), or always set it to
;                                                      # <volume step> (this only makes sense in path configurations where
;                                                      # the exact hardware and driver are known beforehand).

So I could have tried volume = <volume step> instead of volume = merge, although I have no idea what value <volume step> would need to be. Anyway, the Bash script /etc/local.d/20set_alsa_volume.start that I created does the job in a different way without me having to tinker with the troublesome PulseAudio, so I reverted to volume = off in the file analog-output.conf and reverted to using /etc/local.d/20set_alsa_volume.start as explained earlier.

How to install Sabayon Linux via the command line using the ‘text installer’

If you have trouble installing Sabayon Linux from one of the ISOs that include KDE, GNOME or Xfce, you could try installing from the ‘SpinBase’ ISO or ‘Minimal’ ISO instead and add a desktop environment later.

And sometimes the Sabayon Linux installer is unable to install the distribution correctly for the GPU or APU in your machine, so installing the distribution to use the X.Org VESA video driver then later trying another video driver can also be a way to get you to a working installation.

Whichever ‘spin’ of Sabayon Linux I try to install, I find my success varies considerably with the release of ISO. So, if you end up with a blank screen when you reboot after installing the distribution, try installing it again with a different ISO, such as a Monthly release instead of a Daily release. If none of the current ISOs result in a working installation, you may have to wait a few days for a new Daily release to be uploaded. Despite the name, the Daily ISOs are not necessarily released daily.

I recommend you practice installation in VirtualBox before trying with an actual HDD. You can do this on a PC running VirtualBox under Windows, Mac OS or Linux. N.B. If the console goes black at any time in VirtualBox, press Enter to refresh the contents.

The steps below worked for me with a Sabayon Linux ISO dated 14 September 2014 in VirtualBox running under Windows 8.1 on a machine with Intel HD Graphics APU. In the steps below I configure the installation for the time zone in which São Paulo is situated and specify British English and Brazilian Portuguese as the languages to be used. Obviously you should choose instead the time zone and language that you want in your installation.

1. Download the Daily SpinBase ISO (Sabayon_Linux_DAILY_x86_SpinBase.iso) from one of the ISO repositories (see the Download link on the distribution’s Web site).

2. Create a LiveDVD from the ISO (see my post Help for Windows users: How to create a Linux LiveCD, LiveDVD or LivePenDrive from an ISO file if you don’t know how to do that).

3. Boot the LiveDVD.

4. You have two choices here, really. Try (a) first and, if the LiveDVD will not continue to load the OS or it will but you end up with an installation that does not work, then re-boot the LiveDVD and perform (b) instead.

Either:

a) Press ‘Enter‘ at the Sabayon Linux boot menu, to start the OS from the LiveDVD.

or:

b) Press F5 at the Sabayon Linux boot menu, then Esc to close the pop-up list of boot parameters. Then delete the “---” at the end of the list of kernel boot parameters, delete the “vga=791“, add “xdriver=vesa” to the end of the list and press ‘Enter‘ to start the OS from the LiveDVD. Note that, unlike the other Sabayon Linux ISO releases, the SpinBase ISO does not include video drivers for X Windows. However, by booting the LiveDVD with xdriver=vesa the installation on the HDD will include that parameter in /etc/default/sabayon-grub and /boot/grub/grub.cfg.

In either case, Sabayon Linux on the LiveDVD should start in text mode and you should see a root user prompt:

sabayon ~ #

5. Enter the following command and follow the prompts to enter the relevant information to install Sabayon to your HDD:

# installer

Select 2) 'Use text mode' then work your way through steps 1 to 5, answering the installer’s prompts:

1) Timezone settings
2) Set root password
3) Create user
4) Network settings
5) Install Destination

When you select Step 5 (Install Destination) you will be presented with three ‘Autopartitioning Options’ (Replace Existing Linux System(s); Use All Space; Use Free Space). When you make your choice from those three options, you will then be presented with the options for partitioning:

Partition Scheme Options

[ ] 1) Standard Partition

[x] 2) LVM

[ ] 3) BTRFS

Select a partition scheme configuration.

Please make your choice from above ['q' to quit | 'c' to continue | 'r' to refresh]:

You may find that the installer crashes if you have selected either the default LVM partition scheme or the BTRFS partition scheme. If it does crash, run the installer again but select Option 1 instead (Standard Partition), which will create standard ext4 partitions. Actually, I prefer this option.

Quite a few Python-related error messages may be displayed towards the end of the installation process. I just ignore them.

6. Once the installer has completed installation, press Enter to quit, and you will see a root user prompt again.

7. Enter the following command to reboot (If you installed using VirtualBox, make sure you remove the ISO from the virtual CD/DVD drive, or you will just reboot from the ISO instead of the virtual HDD):

systemctl reboot

If you still have the LiveDVD in the drive, select ‘Boot from first hard drive’ in the LiveDVD’s boot menu.

8. You will see a log-in prompt:

sabayon login:

Log-in as user ‘root’ with the root user’s password you specified during installation.

9. List the available time zones:

# timedatectl list-timezones

(Press the Space Bar to page through the list, and the Q key to exit the list.)

10. Specify the timezone you want:

# timedatectl set-timezone America/Sao_Paulo

11. List the current locale:

# localectl list-locales
en_US
en_US.iso88591
en_US.utf8

12. If you want to change the current locale or add a locale, edit the locale.gen file:

# nano /etc/locale.gen

I wanted to have just British English and Brazilian Portuguese, so I made the file contain only the following:

en_GB.UTF-8 UTF-8
en_GB ISO-8859-1
pt_BR.UTF-8 UTF-8
pt_BR ISO-8859-1

If I only wanted one language (I’ll use Brazilian Portuguese as an example), I would have made it contain the following instead:

pt_BR.UTF-8 UTF-8
pt_BR ISO-8859-1

13. Generate the locale(s) you want:

# locale-gen
* Generating 4 locales (this might take a while) with 1 jobs
* (1/4) Generating en_GB.UTF-8 ... [ ok ]
* (2/4) Generating en_GB.ISO-8859-1 ... [ ok ]
* (3/4) Generating pt_BR.UTF-8 ... [ ok ]
* (4/4) Generating pt_BR.ISO-8859-1 ... [ ok ]
* Generation complete

14. List the locales you have configured, just to be sure:

# localectl list-locales
en_GB
en_GB.iso88591
en_GB.utf8
pt_BR
pt_BR.iso88591
pt_BR.utf8

15. Set the language you want to use:

# localectl set-locale LANG=pt_BR.UTF-8

16. List the console keymaps available:

# localectl list-keymaps

17. Chose the console keymap you wish to use:

# localectl set-keymap br-abnt2

N.B. The above systemd command does not change the console keymap specified in /boot/grub/grub.cfg, which remains as “vconsole.keymap=us“. You will have to fix that later by editing /etc/default/sabayon-grub and running grub2-mkconfig -o /boot/grub/grub.cfg, as I show further on.

18. List the X11 keymaps available:

# localectl list-x11-keymap-layouts

19. Chose the X11 keymap you wish to use:

# localectl set-x11-keymap br

20. Update the environment variables and profile to adopt what you specified:

# env-update && source /etc/profile

21. Reboot (Remove the LiveDVD if still have not already done so):

# systemctl reboot

22. Log-in as the root user.

23. Fix the console keymap specified in grub.cfg:

# nano /etc/default/sabayon-grub

and replace “vconsole.keymap=us” with “vconsole.keymap=br-abnt2“.

# grub2-mkconfig -o /boot/grub/grub.cfg

24. Make sure the Entropy package database in your installation is up to date:

# equo update

25. Roll (upgrade) all installed packages to their latest version:

# equo upgrade

If you are prompted regarding any package licences, just accept them.

26. Update any superseded configuration files:

# equo conf update

27. Check if there are any missing/incorrect dependencies:

# equo deptest

28. Check if there are any missing/incorrect libraries:

# equo libtest

29. Install the X.Org VESA video driver:

# equo install xf86-video-vesa

This is needed because the VESA video driver does not get installed even if you specify “xdriver=vesa” initially in the kernel boot parameter list when booting a LiveDVD using SpinBase.

30. Install the desktop environment of your choice (I’ll choose KDE):

# equo install kde-meta

31. If you are installing KDE, also install the KDE language pack(s) for the locale(s) configured earlier:

# equo install kde-l10n-en_GB kde-l10n-pt_BR

32. Install the Sabayon Linux theme for KDE and KDM (I find this package is not installed automatically, and stops KDM from working if it is not present):

# equo install sabayon-artwork-kde

33. Reboot:

# systemctl reboot

34. Log-in as the root user and, if you installed KDE, enable KDM as the desktop manager (log-in screen):

# systemctl enable kdm

35. Then reboot:

# systemctl reboot

The installation on your HDD should now boot to the KDM log-in screen. You should be able to enter your user name and password, and the installation should launch the Desktop Environment and display the Desktop. From here you will be able to open a Konsole/Terminal window and install other packages. If you want to change the video driver from the X.Org VESA driver to a driver for an AMD, Intel or NVIDIA GPU/APU, you will need to install the relevant driver package and edit /etc/X11/xorg.conf and /etc/default/sabayon-grub accordingly (and regenerate grub.cfg). Post in the Sabayon Linux Forums to ask for help if you need it. Good luck!

Make Firefox for Linux use Dolphin to ‘Open Containing Folder’

When I click on the Download Manager icon on the tool bar, Firefox for Linux 32.0 opens a small pane listing downloads in progress, if any, and a link ‘Show All Downloads’. If I click on the link, Firefox pops up a window listing all the files downloaded via the browser, each with a folder icon beside it. Hovering the mouse pointer over the folder icon displays a tooltip ‘Open Containing Folder’. For as long as I can remember with Firefox for Linux, clicking that folder icon resulted in the Audacious music player launching and playing an MP4 file that happens to be in my ~/Downloads/ directory!

Firstly, I have no idea why Firefox was launching a media player instead of opening the directory. Secondly, I have no idea why Firefox wanted to open that specific file rather than any of the other files in the directory. Thirdly, I have no idea why it was launching Audacious, because Audacious is not even specified as the default media player for MP4 files in KDE’s ‘System Settings’ > ‘File Associations’.

This has annoyed me for a long time, but only today did I resolve to fix it, although it was not so easy to find a working solution by searching the Web. It seems it is a common problem with Firefox in Linux, and I found threads in various forums recommending the creation of a set of preferences by using about:config. Some of those threads state that one of those preferences should specify Konqueror; other threads state that one of the preferences should specify a shell script. In the end I discovered a post in an openSUSE Forums thread from 2012 Re: How use Dolphin to “open containing folder” from firefox downloads? providing a broken link to a thread at a different Web site and, fortunately, quoting the solution which worked for me, which is to create a file named ~/.local/share/applications/defaults.list containing the following:

[Default Applications]
x-directory/normal=kde4-dolphin.desktop;kde4-kfmclient_dir.desktop;

Now when I click on the ‘Open Containing Folder’ icon in Firefox, Dolphin launches and displays the contents of ~/Downloads/ just as I would have expected from the beginning.

Opening multiple browser tabs simultaneously — AutoKey comes to the rescue

hotkey to launch an application

I sometimes consult several dictionary Web sites concurrently. Typically I have them open simultaneously on different browser tabs so that I can switch between them quickly. Naturally I have the sites bookmarked, but it is still a bit of a nuisance to have to open each site by clicking on the browser’s ‘Open a new tab’ icon and then clicking on a bookmark. So I thought it would be nice if I could have an icon in the browser or on the Desktop that I could click to open all the desired Web pages at once.

Well, I could have created a Desktop Configuration File in ~/Desktop/ to launch a command such as the one listed below, and given the file a nice icon.

firefox http://www.oxforddictionaries.com/ http://michaelis.uol.com.br/moderno/portugues/index.php http://www.conjuga-me.net/ http://www.priberam.pt/dlpo/ http://www.wordreference.com/

Then I would have been able to double-click on the icon on my Desktop, which would have launched a separate Firefox window with those five required Web sites in different tabs. But what if I happened to have an existing window maximised? I would then have to move it to be able to see the icon on the Desktop. So I decided that was not an ideal approach.

Next I thought about the possibility of a Firefox extension, so I searched the Mozilla Add-ons site and found one called Open Multiple Locations. But, from what I read, it seems the extension is no longer being maintained. Furthermore, it appears it would have to be launched from the browser’s File menu, which would still be a little inconvenient.

Then I remembered that I have the excellent utility AutoKey installed, so why not define a hotkey sequence to do what I wanted? This is what I did.

When you install AutoKey, it creates a directory ~/.config/autokey/data/My Phrases/ which contains directories named Addresses and Sample Scripts. The latter two directories contain examples of what you can do with AutoKey. Now, one of the example scripts in Sample Scripts is Insert Date.py, a very simple script which enables you to issue the Linux date command with a hotkey combination, preconfigured as Ctrl-Alt-d (Click on the Insert Date entry in the left pane of the AutoKey window and notice in the lower right pane that the hotkey is listed and there are Set and Clear buttons to enable you to change it).

So I used the Desktop Environment’s GUI to navigate to the directory ~/.config/autokey/data/My Phrases/ and created a directory which I called ~/.config/autokey/data/My Phrases/My Scripts/. I copied the file ~/.config/autokey/data/My Phrases/Sample Scripts/Insert Date.py into the new directory and renamed it Launch_Firefox_with_dictionaries.py then set its AutoKey hotkey combination to be Ctrl-Alt-f and edited it to contain the desired command:

output = system.exec_command("firefox http://www.oxforddictionaries.com/ http://michaelis.uol.com.br/moderno/portugues/index.php http://www.conjuga-me.net/ http://www.priberam.pt/dlpo/ http://www.wordreference.com/")
keyboard.send_keys(output)

Now, when I am using a browser (be it Firefox, Chrome, Konqueror or whatever) or any other application and I need to consult those dictionaries, I just press Ctrl-Alt-f and up pops a Firefox window containing five tabs with the Web sites I wish to be able to use. Done and done.

Of course, if you happen to be using a Desktop Environment that has its own shortcut tool, you can use that instead. For example, in KDE I could have instead used ‘System Settings’ > ‘Shortcuts and Gestures’ | ‘Custom Shortcuts’ and configured Ctrl-Alt-f to run the above-mentioned command to launch Firefox with those five URLs. (You need to log out of KDE and log in again for the shortcut to become active.) That would have achieved exactly the same result as with AutoKey.

WINE tips: File associations for Windows applications in Linux (continued)

There is a downside to the approach described in my previous post regarding file associations for Windows applications run via WINE, at least in the case of KDE.

By using KDE’s ‘System Settings’ > ‘File Associations’ to change the application launch command from:

env WINEPREFIX="/home/fitzcarraldo/.wine-visio5" WINEARCH="win32" wine /home/fitzcarraldo/.wine-visio5/drive_c/Program\ Files/Visio/Visio32.EXE

to:

env WINEPREFIX="/home/fitzcarraldo/.wine-visio5" WINEARCH="win32" wine C:\\windows\\command\\start.exe /Unix %U

the launch command in KDE’s Kicker application launcher menu is also changed to the latter. Trying to launch the Windows application from the Kicker menu (Wine > Programs > a_Windows_application) then fails. Presumably this is because the wine command expects a filename (the %U in the command string) but that is not being provided.

Alternative 1

One solution is to use a shell script as described in my earlier post: WINE tips: How to associate IrfanView with an image file type in Linux. Kicker can still be used to launch the application (e.g. Wine > Programs > IrfanView) when the menu command is of the following form but no filename is provided (even though the %f is left in the command string):

/home/fitzcarraldo/launch_IrfanView.sh %f

Alternative 2

Another solution – well, really a work-around – is to accept that the Windows application cannot be launched from the Kicker menu and to create a separate Desktop Configuration File in /home/fitzcarraldo/Desktop/ which uses a different command to launch the application. For example, in my previous post the file association I configured via ‘System Settings’ > ‘File Associations’ for Visio was:

env WINEPREFIX="/home/fitzcarraldo/.wine-visio5" WINEARCH="win32" wine C:\\windows\\command\\start.exe /Unix %U

and therefore the command in the Kicker menu entry is the same, but I created a Desktop Configuration File which I named ‘/home/fitzcarraldo/Desktop/Visio 5 Professional‘ which contains the command:

env WINEPREFIX="/home/fitzcarraldo/.wine-visio5" WINEARCH="win32" wine /home/fitzcarraldo/.wine-visio5/drive_c/Program\ Files/Visio/Visio32.EXE

$ ls -la ~/Desktop/Visio*
-rwxrwxrwx 1 fitzcarraldo users 562 Aug 26 17:42 /home/fitzcarraldo/Desktop/Visio 5 Professional

Notice that the command to launch the Windows application does not contain a filename parameter (%U), so when I double-click on the icon on the Desktop it launches Visio.

Summary

Ideally, KDE should be changed to allow the application launching command in ‘System Settings’ > ‘File Associations’ to be edited to be different to the application launching command in the Kicker menu. In the absence of that, you have two alternatives in the case of WINE:

  1. Create a shell script to launch the application. This allows you to launch the Windows application via Kicker and by double-clicking on a file of the applicable type.

    or

  2. Create a separate Desktop Configuration File in e.g. the ~/Desktop/ directory. This allows you to launch the Windows application by double-clicking on a Desktop Configuration File for the application and by double-clicking on a file of the applicable type. However you cannot launch the application from its entry in the Kicker menu.
Follow

Get every new post delivered to your Inbox.

Join 54 other followers