More tools for creating QR Codes in Linux

In my previous post I showed how to install CuterCode and Qreator, two simple GUI applications for producing QR Codes, in Gentoo Linux. I have now found a couple of other GUI applications, both of which offer more features than the aforementioned two, such as allowing you to specify the amount of error correction to be incorporated into the QR Code. QR Code codewords are 8 bits long and use the Reed–Solomon error correction algorithm, with four error correction levels possible in the case of QR Codes:

Level L (Low): 7% of codewords can be restored.
Level M (Medium): 15% of codewords can be restored.
Level Q (Quartile): 25% of codewords can be restored.
Level H (High): 30% of codewords can be restored.

The higher the level of error correction, the lower the storage capacity of the QR Code.

And now to the two applications …

Portable QR-Code Generator

This is a Java application, so first make sure you have installed a Java run-time environment (or Java Development Toolkit, which will include the JRE) via Portage.

Download to your home directory the archive qrcodegen_1.14.2.zip containing the compiled Java application, not the archive qrcodegen_1.14.2_src.zip with the source code (‘quellcode’ in German), from the application’s Web site. Unzip it to the directory ~/qrcodegen_1.14.2/ then enter the directory and launch the Java application from the command line as shown below:

$ cd ~/qrcodegen_1.14.2/qrcodegen
$ java -jar QRCodeGen.jar

Alternatively you can create a Desktop Configuration file QRCodeGen.desktop containing the following (change ‘fitzcarraldo’ to your own user name, of course):

[Desktop Entry]
Categories=Graphics
Comment[en_GB]=QR Code Generator is a program that lets you generate and print QR Codes easily.
Comment=QR Code Generator is a program that lets you generate and print QR Codes easily.
Exec=java -jar /home/fitzcarraldo/qrcodegen_1.14.2/qrcodegen/QRCodeGen.jar
GenericName[en_GB]=QRCodeGen
GenericName=QRCodeGen
Icon=/home/fitzcarraldo/qrcodegen_1.14.2/qrcodegen/icon.png
MimeType=
Name[en_GB]=QRCodeGen
Name=QRCodeGen
Path=/home/fitzcarraldo/qrcodegen_1.14.2/qrcodegen/
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

and make it executable:

$ chmod +x QRCodeGen.desktop

You can choose a nice PNG icon by using Google Images to search for ‘qr code icon png’ and save the image with the file name icon.png in the same directory. Then you can launch QR code Generator by double-clicking on the Desktop Configuration file.

QtQR – QR Code Generator

Download the tarball qr-tools-1.2.tar.gz from the application’s Web site, unpack it to the directory ~/qr-tools-1.2/ and make the Python scripts executable:

$ cd ~/qr-tools-1.2/qr-tools
$ chmod +x qtqr.py
$ chmod +x qrtools.py

Make sure you have installed the package media-gfx/zbar with the python USE flag set, so that the Python zbar module is also installed:

# USE="python" emerge zbar

(You may as well add the python USE flag in the line for media-gfx/zbar in the Portage package.use file so that ZBar’s Python module is installed if you upgrade or re-install ZBar via Portage in future).

Check if the Python Imaging Library (fork) dev-python/pillow is already installed:

# emerge --search pillow

If it is not already installed, install it:

# emerge pillow

Now you can launch QtQR from the command line as follows:

$ cd ~/qr-tools-1.2/qr-tools
$ LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so PYTHONPATH=/usr/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages/PIL ./qtqr.py

Alternatively, you can create a Desktop Configuration file qtqr.desktop with the following contents (change ‘fitzcarraldo’ to your own user name, of course):

[Desktop Entry]
Categories=Graphics
Comment[en_GB]=QtQR is a Qt based software that lets you generate QR Codes easily, scan an image file for a QR Code and decode it or use your webcam to scan a printed one.
Comment=QtQR is a Qt based software that lets you generate QR Codes easily, scan an image file for a QR Code and decode it or use your webcam to scan a printed one.
Exec=LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so PYTHONPATH=/usr/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages/PIL /home/fitzcarraldo/qr-tools-1.2/qr-tools/qtqr.py
GenericName[en_GB]=QtQR
GenericName=QtQR
Icon=/home/fitzcarraldo/qr-tools-1.2/qr-tools/icon.png
MimeType=
Name[en_GB]=QtQR
Name=QtQR
Path=/home/fitzcarraldo/qr-tools-1.2/qr-tools/
StartupNotify=true
Terminal=false
TerminalOptions=
Type=Application
X-DBUS-ServiceName=
X-DBUS-StartupType=
X-KDE-SubstituteUID=false
X-KDE-Username=

and make it executable:

$ chmod +x qtqr.desktop

Then you can launch QtQR by double-clicking on the Desktop Configuration file.

The QtQR GUI has a feature for decoding a QR Code in an image file and for decoding a printed QR Code held in front of a Webcam. If I select ‘Decode’ > ‘Decode from Webcam’, QtQR launches ZBar and, although it is a bit fiddly, I can successfully decode a printed QR Code. However, I cannot get QtQR to decode a QR Code in an image file that QtQR itself created (or to decode a QR Code in a file created by any other application, for that matter), so there is a bug in QtQR. Looking at the application’s bug reports this appears to be Bug No. 811576. It’s not a big deal, though, because the zbarimg command provided by ZBar can be used to decode QR Codes (see my post Installing and using ZBar in Linux to scan bar codes with your Webcam).

$ cd ~/qr-tools-1.2/qr-tools
$ LD_PRELOAD=/usr/lib/libv4l/v4l1compat.so PYTHONPATH=/usr/lib/python2.7/site-packages:/usr/lib/python2.7/site-packages/PIL ./qtqr.py
/usr/lib64/python2.7/site-packages/gtk-2.0/gtk/__init__.py:127: RuntimeWarning: PyOS_InputHook is not available for interactive use of PyGTK
  set_interactive(1)
Object::connect: No such signal org::freedesktop::UPower::DeviceAdded(QDBusObjectPath)
Object::connect: No such signal org::freedesktop::UPower::DeviceRemoved(QDBusObjectPath)
kfilemodule(32309) KSambaSharePrivate::testparmParamValue: Running testparm ("-d0", "-s", "--parameter-name", "usershare path")
Traceback (most recent call last):
  File "./qtqr.py", line 481, in decodeFile
    if qr.decode():
  File "/home/fitzcarraldo/qr-tools-1.2/qr-tools/qrtools.py", line 147, in decode
    pil = Image.open(self.filename).convert('L')
  File "/usr/lib/python2.7/site-packages/PIL/Image.py", line 2256, in open
    % (filename if filename else fp))
IOError: cannot identify image file u'/home/fitzcarraldo/qr-tools-1.2/qr-tools/test.png'

Linux Magazine has a good article on these and other QR Code tools: Generating QR Codes in Linux.

UPDATE (March 30, 2015): You can download an updated working revision (Revision 20) of the Python script qrtools.py, and an updated working revision (Revision 21) of the Python script qtqr.py, from the QtQR and QR Tools developers’ repository where they have been working on an as-yet unreleased Version 1.4 of QtQR and QR Tools:

http://bazaar.launchpad.net/~qr-tools-developers/qr-tools/trunk/files

I have briefly tested qrtools.py Revision 20 and qtqr.py Revision 21 with the other QR Tools Version 1.2 files I downloaded earlier. I simply downloaded the Revison 20 qrtools.py file and the Revision 21 qtqr.py file and overwrote the qrtools.py and qtqr.py files I had extracted earlier from qr-tools-1.2.tar.gz into the directory /home/fitzcarraldo/qr-tools-1.2/qr-tools/ (and made them executable). With the new qrtools.py and new qtqr.py it is now possible for QtQR to decode QR Codes in image files as well as QR Codes scanned via a Webcam, so the bug I mentioned above should be fixed in the next official release of QtQR/QR Tools. So you may as well skip the official Version 1.2 and download all the files from the above-mentioned developers’ repository for the future Version 1.4.

How to create QR Codes easily in Gentoo Linux

QR Codes are two-dimensional bar codes that can store a surprising amount of information. CuterCode and Qreator are two applications that are easy to install and use to produce QR Codes that can be saved as image files for use on labels, posters, Web sites, business cards, documents, etc. Here is how to install CuterCode and Qreator in Gentoo Linux.

Example of a QR Code

A QR Code created using Qreator. You can read it using the Android app Barcode Scanner by ZXing Team and several other Android apps, and also using a Linux app (see my post on ZBar).

CuterCode

This is a Python script and simple GUI.

https://github.com/mnagel/cutercode

First download the script itself:

$ wget https://raw.githubusercontent.com/mnagel/cutercode/master/cutercode
$ wget https://raw.githubusercontent.com/mnagel/cutercode/master/cutercode.ui

Make the Python script exectuable:

$ chmod +x cutercode

Then install the package media-gfx/qrencode-python (it will pull-in the package media-gfx/qrencode) on which it depends:

# emerge qrencode-python

To launch the application:

$ ./cutercode

Use the Print Scrn key on your keyboard to launch KSnapshot (or whatever screen capture tool it is you use) and capture the QR Code to a JPG or PNG file for use in you documents. That’s it!

Qreator

The UI of Qreator is more polished than CuterCode, and you have the options to save the QR Code as a PNG file, copy it to the clipboard, print it or edit its appearance.

https://launchpad.net/qreator

Either merge it from Portage overlay dev-zero using layman:

# layman -S
# layman -a dev-zero
# emerge qreator

or download the dev-zero files into your local overlay and install it from there:

# mkdir -p /usr/local/portage/app-office/qreator/files
# cd /usr/local/portage/app-office/qreator
# wget http://data.gpo.zugaina.org/dev-zero/app-office/qreator/qreator-13.05.3.ebuild
# cd files
# wget http://data.gpo.zugaina.org/dev-zero/app-office/qreator/files/13.05.3-python-imaging.patch
# cd ..
# ebuild qreator-13.05.3.ebuild manifest
# emerge qreator

If you happen to be a KDE user, you will find a menu entry for Qreator is installed under ‘Applications’ > ‘Graphics’ in the KDE launcher, or you can launch it from the command line:

$ qreator

Background reading

QR Code – Wikipedia
QRcode.com – Answers to your questions about the QR Code

More on NetworkManager creating a new connection ‘eth0′ that does not work

In a previous post I described a problem I have been experiencing with NetworkManager since Version 0.9.10.0 (I am now using Version 1.0.0): sometimes, but not always, there is an invalid second eth0 connection when my laptop boots. This invalid second eth0 connection has only IPv6 Link-Local enabled (i.e. IPv4 and IPv6 are disabled) and is Active. As a result the existing eth0 connection for IPv4 I previously created is Available but unable to connect.

While on a work trip and using my laptop on an office network and an hotel network I made some changes to my installation (see the above-mentioned previous post) that seemed to fix this problem on those networks. However, on returning home and connecting my laptop to my home network, I found the problem still exists. This makes me wonder if a race condition is occurring, as network latency can differ between networks. Could it be that my home network takes longer to assign an IPv4 address than the office and hotel networks I used, which results in NetworkManager creating a second eth0 connection with IPv4 and IPv6 disabled? Or perhaps there is a race condition between services but network latency has nothing to do with it. In retrospect, I should have checked the contents of the log file /var/log/messages while on my work trip to see if those networks were providing my laptop with an IPv6 address in addition to an IPv4 address, i.e. check if the IPv6 address was not just a Link-Local address.

But why is NetworkManager creating any additional connection at all when NetworkManager.conf in my installation currently contains ‘no-auto-default=eth0‘? Surely this must be a bug in NetworkManager?

I have found virtually no mention of this behaviour on the Web. Debian bug report no. 755202 appears to describe the same problem. I started experiencing the problem in Gentoo Linux (~amd64 installation using OpenRC) after I upgraded NetworkManager to Version 0.9.10.0 too, and it has continued occurring up to the current version of NetworkManager (1.0.0). Fellow Gentoo Linux user Keivan Moradi’s fix (Message #79 in the aforementioned Debian bug report) did not cure the problem for me, and, anyway, my wired NIC uses a different driver (atl1c module) which appears to be stable in my installation.

CentOS bug report no. 0007435 also appears to report the same behaviour, but I’m not sure.

NetworkManager usually (but not always) creates an invalid second eth0 connection when my laptop boots and an Ethernet cable is connected to my home network. The second eth0 connection is shown as Active in plasma-nm (the KDE front-end for NetworkManager) but only has an IPv6 Link-Local connection configured (i.e. IPv4 is shown as Disabled). If I click on Disconnect in plasma-nm then this ‘rogue’ eth0 connection disappears from plasma-nm. Once the invalid IPv6 Link-Local connection has been disconnected, the valid IPv4 eth0 available connection can connect to the network and access the Internet.

I examined /var/log/messages when the invalid second eth0 connection occurs and when it doesn’t, and the invalid eth0 connection only seems to occur when NetworkManager appears to have first started earlier than syslog-ng began logging. When NetworkManager first starts after syslog-ng began logging, I can see it launches dhcpcd and acquires an IPv4 address. avahi-daemon does not seem to be the cause of the problem if I understand the log file correctly. Anyway, my experiments described below seem to exonerate the Avahi daemon. I could be misinterpreting what is going on, but that’s how it looks to my inexpert eyes. In Debian bug report no. 755202 some commenters refer to extra interfaces with names such as ‘eth0:avahi’ being listed by the ifconfig command when the problem occurs, but I wonder if that is just a side effect. Anyway, the ifconfig command does not list such interfaces in my case.

I tried the following experiments:

1. I commented out the entire contents of the file /etc/conf.d/net (the configuration file for initscripts /etc/init.d/net.*) — which I think is analogous to Debian’s /etc/network/interfaces file — but it did not stop the invalid second eth0 connection occurring.

2. I added ‘use-ipv6=no‘ and, later, ‘use-ipv4=no‘ in the file /etc/avahi/avahi-daemon.conf but they did not stop the invalid second eth0 connection occurring.

3. I added ‘deny-interfaces=eth0‘ in the file /etc/avahi/avahi-daemon.conf but it did not stop the invalid second eth0 connection occurring.

4. In my installation, the ‘local‘ service (launched by initscript /etc/init.d/local) has always been allocated to two runlevels: ‘default‘ and ‘nonetwork‘. I de-allocated the ‘local‘ service from the ‘nonetwork‘ runlevel but this did not stop the invalid second eth0 connection occurring.

5. In my installation, the ‘net.lo‘ service (launched by initscript /etc/init.d/net.lo) has always been allocated to the ‘boot‘ runlevel (the other net.* services, such as ‘net.eth0‘ and ‘net.wlan0‘, have never been allocated to a runlevel in my installation). I de-allocated ‘net.lo‘ from the ‘boot‘ runlevel but it did not stop the invalid eth0 connection occurring.

As experiments 4 and 5 did not stop the laptop accessing the Internet once I had deleted the invalid second eth0 connection, I have left the ‘local‘ service in the ‘default‘ runlevel only, and I have left the ‘net.lo‘ service unallocated to a runlevel.

6. Since the invalid eth0 connection is allocated an IPv6 Link-Local address rather than an IPv4 address on my home network, I tried a work-around: I disabled IPv6 system-wide by un-commenting the line ‘alias net-pf-10 off‘ in the file /etc/modprobe.d/aliases.conf. Now a second eth0 connection is no longer created, and the valid eth0 IPv4 connection I created previously connects automatically. I have not rebooted many times yet, so I don’t know if this work-around has eliminated the problem for good, but it looks promising.

Nevertheless I would like to find the root cause of the problem, rather than settling for a work-around of disabling IPv6 system-wide. Given that, when IPv6 is enabled, a second eth0 connection is sometimes not created and the ‘good’ IPv4 eth0 connection I created previously can connect, hopefully it should be possible somehow to have both IPv6 and IPv4 enabled system-wide without an invalid eth0 connection ever being created. Could NetworkManager be modified so that it does not create a connection if the DHCP client launched by NetworkManager does not obtain an IP address, for example?

This is not the end of the story, I’m sure.

For information, the services currently used are shown below:

meshedgedx fitzcarraldo # rc-status --all
Runlevel: nonetwork
Runlevel: shutdown
 killprocs                               [  stopped  ]
 savecache                               [  stopped  ]
 mount-ro                                [  stopped  ]
Runlevel: sysinit
 devfs                                   [  started  ]
 tmpfiles.dev                            [  started  ]
 sysfs                                   [  started  ]
 dmesg                                   [  started  ]
 udev                                    [  started  ]
Runlevel: boot
 hwclock                                 [  started  ]
 modules                                 [  started  ]
 device-mapper                           [  started  ]
 fsck                                    [  started  ]
 root                                    [  started  ]
 mtab                                    [  started  ]
 localmount                              [  started  ]
 sysctl                                  [  started  ]
 bootmisc                                [  started  ]
 termencoding                            [  started  ]
 keymaps                                 [  started  ]
 swapfiles                               [  started  ]
 ufw                                     [  started  ]
 procfs                                  [  started  ]
 dbus                                    [  started  ]
 tmpfiles.setup                          [  started  ]
 serial                                  [  started  ]
 hostname                                [  started  ]
 consolekit                              [  started  ]
 consolefont                             [  started  ]
 xdm                                     [  started  ]
 loopback                                [  started  ]
Runlevel: single
Runlevel: default
 swap                                    [  started  ]
 bluetooth                               [  started  ]
 syslog-ng                               [  started  ]
 sshd                                    [  started  ]
 fbcondecor                              [  started  ]
 atd                                     [  started  ]
 NetworkManager                          [  started  ]
 avahi-daemon                            [  started  ]
 cupsd                                   [  started  ]
 mdadm                                   [  started  ]
 acpid                                   [  started  ]
 nfsclient                               [  started  ]
 netmount                                [  started  ]
 alsasound                               [  started  ]
 laptop_mode                             [  started  ]
 cups-browsed                            [  started  ]
 hddtemp                                 [  started  ]
 mysql                                   [  started  ]
 nfs                                     [  started  ]
 samba                                   [  started  ]
 urandom                                 [  started  ]
 vixie-cron                              [  started  ]
 local                                   [  started  ]
Dynamic Runlevel: hotplugged
Dynamic Runlevel: needed
 rpcbind                                 [  started  ]
 rpc.statd                               [  started  ]
 rpc.pipefs                              [  started  ]
 rpc.idmapd                              [  started  ]
 xdm-setup                               [  started  ]
Dynamic Runlevel: manual
meshedgedx fitzcarraldo #

The allocations of services to runlevels are shown below:

meshedgedx fitzcarraldo # rc-update show -v
           NetworkManager |      default
 NetworkManagerDispatcher |
                    acpid |      default
                alsasound |      default
                  apache2 |
                      atd |      default
               atieventsd |
             avahi-daemon |      default
           avahi-dnsconfd |
                bluetooth |      default
                 bootmisc | boot
                   brltty |
             busybox-ntpd |
         busybox-watchdog |
                 cgconfig |
                    cgred |
                  cgroups |
                    clamd |
              consolefont | boot
               consolekit | boot
          courier-authlib |
                 cpupower |
             cups-browsed |      default
                    cupsd |      default
                     dbus | boot
                  deluged |
                    devfs |                                        sysinit
            device-mapper | boot
                      dgc |
                   dhcpcd |
                  dmcrypt |
                    dmesg |                                        sysinit
                 dmeventd |
                  dropbox |
                    eposd |
               fancontrol |
               fbcondecor |      default
                     fsck | boot
                     fuse |
               git-daemon |
                 gkrellmd |
                      gpm |
                     gpsd |
                  hddtemp |      default
                   hdparm |
          heimdal-kadmind |
              heimdal-kcm |
              heimdal-kdc |
         heimdal-kpasswdd |
                 hostname | boot
                   hsqldb |
                  hwclock | boot
                ip6tables |
                 iptables |
                   irexec |
                  keymaps | boot
                killprocs |                        shutdown
        kmod-static-nodes |
              laptop_mode |      default
                    lircd |
                   lircmd |
               lm_sensors |
                    local |      default
               localmount | boot
                 loopback | boot
                      lvm |
           lvm-monitoring |
                  lvmetad |
                    mdadm |      default
                   mdraid |
            microcode_ctl |
                  modules | boot
                 mount-ro |                        shutdown
                     mtab | boot
                multipath |
               multipathd |
                    mysql |      default
                      nas |
                  net.aol |
                 net.ath0 |
                 net.ath1 |
                 net.ath2 |
                 net.ath3 |
                 net.ath4 |
                 net.eth0 |
                 net.eth1 |
                 net.eth2 |
                 net.eth3 |
                 net.eth4 |
                 net.eth5 |
                 net.eth6 |
                 net.eth7 |
                 net.eth8 |
                   net.lo |
                 net.ppp0 |
                 net.ppp1 |
                 net.ppp2 |
                 net.ppp3 |
                  net.ra0 |
                  net.ra1 |
                  net.ra2 |
                  net.ra3 |
                  net.ra4 |
                  net.ra5 |
                net.wlan0 |
                net.wlan1 |
                net.wlan2 |
                net.wlan3 |
                 netmount |      default
                      nfs |      default
                nfsclient |      default
                 nfsmount |
               ntp-client |
  ntp-client.bak.20141013 |
                     ntpd |
                  numlock |
                  pciparm |
                  pktcdvd |
                   polipo |
                   procfs | boot
                  pwcheck |
                pydoc-2.7 |
                pydoc-3.2 |
                pydoc-3.3 |
                pydoc-3.4 |
              rename_ethX |
                   rfcomm |
                     root | boot
               rpc.idmapd |
               rpc.pipefs |
                rpc.statd |
                  rpcbind |
                rrdcached |
                   rsyncd |
                    samba |      default
                    saned |
                saslauthd |
                savecache |                        shutdown
                   serial | boot
                     slpd |
                   smartd |
                    snmpd |
                snmptrapd |
                     sntp |
                     sshd |      default
                 svnserve |
                     swap |      default
                swapfiles | boot
                  swclock |
                   sysctl | boot
                    sysfs |                                        sysinit
                syslog-ng |      default
    system-tools-backends |
             termencoding | boot
                 timidity |
             tmpfiles.dev |                                        sysinit
           tmpfiles.setup | boot
                      tor |
                   twistd |
                     udev |                                        sysinit
                      ufw | boot
                  urandom |      default
               vboxwebsrv |
               vixie-cron |      default
                     vpnc |
           wpa_supplicant |
                      xdm | boot
                xdm-setup |
                   xinetd |
meshedgedx fitzcarraldo #

My installation has the following six runlevels:

meshedgedx fitzcarraldo # ls /etc/runlevels
boot default nonetwork shutdown single sysinit

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.

Using a Samsung Xpress C460FW with Gentoo Linux and Android KitKat for printing and scanning

INTRODUCTION

A work colleague has just received a Samsung Xpress C460FW MFP (laser printer, scanner, copier and fax machine) for small print jobs. It is possible to connect to it via USB, Direct USB, wired network, wireless network, Wi-Fi Direct and NFC; that’s impressive for a MFP that can be purchased for GBP 270 in the UK.

I wanted to use the C460FW to print and scan from my laptop running Gentoo Linux, and also to print and scan from my Samsung Galaxy Note 4 running Android KiKat. It turned out that I was able to do all of those, and it was not difficult to set up.

A technician from the IT Support department had already entered a static IP address, subnet mask and default gateway IP address via the C460FW’s control panel to connect it to the office’s wired network. So my options to connect to this particular C460FW are: the wired network for Linux; Wi-Fi Direct for Linux and Android; NFC for Android.

I had never used Wi-Fi Direct before, but it turned out to be easy in Gentoo Linux on my laptop, and also easy in Android KitKat on my Samsung Galaxy Note 4. I had never used NFC before either, and that also turned out to be easy on my Samsung Galaxy Note 4.

Samsung has a series of videos on YouTube explaining how to use Wi-Fi Direct and NFC for printing, scanning and faxing with the C460FW from a Samsung smartphone; here are links to a few of them:

Samsung Smart Printing – 01 NFC Connect

Samsung Smart Printing – 02 Wi Fi Direct

Samsung Smart Printing – 03 Wi Fi

Samsung Smart Printing – 04 NFC Print

Samsung Smart Printing – 05 NFC Scan

Samsung Smart Printing – 06 NFC Fax

Samsung Smart Printing – 11 Samsung Mobile Print App(Printer Status)

PRINTING

Linux

Wired connection

I had installed the package net-print/samsung-unified-linux-driver Version 1.02 from a Portage local overlay back in March 2013 when I needed to print to a different model of Samsung MFP, so I thought I would see if that driver would work with the C460FW. I opened the CUPS Printer Manager in a browser window (http://localhost:631/) to configure my Gentoo installation to print to the device via the wired network. ‘Samsung C460 Series‘ was in the list of discovered network printers in the CUPS Printer Manager, and the driver ‘Samsung C460 Series PS‘ was displayed at the top of the list of models, so it was a piece of cake to set up the printer via CUPS, and I was able to print a test page in no time at all. My colleague uses a laptop running Windows 7, and he had to install the Windows driver from a Samsung CD that came with the C460FW.

Wireless connection

As the IT Support technician had configured the C460FW to print via the office wired network rather than the office wireless network, I decided to configure my laptop to print via Wi-Fi Direct, just to learn about Wi-Fi Direct, really. On the C460FW’s control panel I selected Network > Wireless > Wi-Fi Direct and enabled Wi-Fi Direct. Scrolling through the Wi-Fi Direct entries in the LCD I saw the following information:

Device Name: C460 Series
Network Key: <an 8-digit code>
IP address: 192.168.003.001

Two new networks were listed under ‘Available connections’ in plasma-nm (the KDE GUI front-end to NetworkManager) on my laptop: ‘DIRECT-HeC460 Series‘ and ‘DIRECT-SqC460 Series‘, both using WPA2-PSK encryption. I used the control panel of the C460FW to print a network configuration report in order to check which of the two SSIDs I should select, and it is ‘DIRECT-HeC460 Series‘ (I found out later that an adjacent room also has a C460FW and its Wi-Fi Direct SSID is ‘DIRECT-SqC460 Series‘). So I selected ‘DIRECT-HeC460 Series‘ and plasma-nm prompted me to enter a network password. I entered the 8-digit key I had found from the C460FW’s LCD panel (it’s also listed in the printed network configuration report), and NetworkManager connected to the printer.

In exactly the same way as I do when setting up any printer in Linux, I launched Firefox, opened the CUPS Printer Manager page, clicked on ‘Administration’ > ‘Add Printer’ and entered the user name ‘root’ and the password in the pop-up window. Again the ‘Add Printer’ page had ‘Samsung C460 Series‘ in the list of discovered network printers, so I just selected it and clicked on ‘Continue’. As I had already set up the printer in CUPS for the wired network connection and given it the name ‘Samsung_C460FW_office‘, I entered the name ‘Samsung_C460FW_office_WiFi_Direct‘ to distinguish it from the wired network entry, entered a Description and Location, and clicked on ‘Continue’. The next page had ‘Samsung C460 Series PS‘ first in the driver list so I selected that, clicked on ‘Add Printer’ and that was it. I was able to print a test page from the CUPS Printer Manager, and the printer is now included the list of printers in Linux applications’ print dialogues.

When I want to print using Wi-Fi Direct the only thing I need to remember to do first is select ‘DIRECT-HeC460 Series‘ in the network GUI on the KDE Panel, so that the connection is active when I click ‘Print’ in whichever application I want to print from.

Given the ease of printing via the wired network and Wi-Fi Direct, I have no doubts that printing would also work had the C460FW been configured for the office wireless network instead of the wired network.

Duplex printing

The only downside to the Samsung Xpress C460FW is that it only supports manual duplex printing. If you specify duplex printing when printing from Windows, Samsung’s Windows driver prints all the odd-numbered pages in reverse order and displays a message in Windows telling you what to do next (turn over the pile of paper and put it back in the paper tray!), but in Linux it’s not difficult to work out what you have to do: you simply have to print all the odd-numbered sides first, turn over the paper, then print all the even-numbered sides. The print dialogue in Linux applications gives you the option to print only odd-numbered pages or only even-numbered pages, so there is no problem. The print dialogue in some Linux applications allows you to print pages in reverse order as well but, if not, you have to reverse the order yourself before printing the even-numbered pages (i.e. put Page 1 face down at the top of the pile then Page 3 face down under it, and so on). It’s not a big deal unless the document has a large number of pages.

Android

As you would expect with devices from the same manufacturer, setting up my Samsung Galaxy Note 4 to print with the Samsung Xpress C460FW via WPS (Wi-Fi Protected Setup) was easy. When I selected ‘Print’ on the Galaxy Note 4, it gave me the option to print via wireless network or Wi-Fi Direct. I chose the latter and, as I had already enabled Wi-Fi Direct on the C460FW’s control panel, the printer name was displayed in the list of available devices. I selected it, a blue LED began flashing on the C460FW’s control panel and the LCD prompted me to press the WPS button (on the left of the control panel). As soon as I pressed that, the C460FW printed the document sent by my Galaxy Note 4. From then onwards, I just needed to select ‘Print’ on the Galaxy Note 4, select the printer from the list of available devices, and the document is printed. When I want to print using Wi-Fi Direct the only thing I need to remember to do first on the Galaxy Note 4 is select ‘DIRECT-HeC460 Series‘ as the Wi-Fi network.

NFC

I then decided to try to print using NFC. I placed the Galaxy Note 4, without Wi-Fi enabled and with the Home Screen displayed (not the Lock Screen), on the NFC label on top of the C460FW; Android launched Play Store and prompted me to install Samsung Mobile Print, which I did. Now when I place the Galaxy Note 4 on the NFC label, the Galaxy Note 4 automatically enables Wi-Fi, connects to the C460FW directly and displays the Mobile Print app showing the options Print, Scan and Fax, and a page of icons labelled: Gallery, Camera, Google Drive, E-mail, Web page, Document, Facebook, DropBox, Evernote, OneDrive and Box, as well as a Settings icon to configure the printer (paper size etc.). I am able to select a document, photograph, Web page, etc. on the Galaxy Note 4 and print it. It is also possible to launch the Mobile Print app first and then place the Galaxy Note 4 on the C460FW.

NFC is not entirely trouble-free, though. Sometimes the Galaxy Note 4 displays a ‘Device not found‘ message but I can still print. Sometimes the Galaxy Note 4 displays the message ‘Connecting printer. There was some error while connecting to this device. Check your printer and try again. If NFC Pin was changed then please enter new NFC Pin.‘ and the two devices will not connect. Powering off then on the C460FW solves that. Sometimes the Galaxy Note 4 connects to another wireless network instead of to the C460FW via Wi-Fi Direct and the Samsung Galaxy Note 4 then has to disconnect automatically from the other network. Sometimes the C460FW prompts me to press its WPS button and the Galaxy Note 4 then connects via Wi-Fi Direct but the Mobile Print app then displays the error message ‘Device not found. To troubleshoot please check – C460 Series is powered on. – Wi-Fi direct is enabled on C460 Series. – C460 Series and Mobile are connected to the same network.‘. Again, powering off then on the C460FW solves that. Despite these hiccups, printing via NFC is still handy.

SCANNING

Linux

I found out how to get the C460FW scanner working by consulting the third-party Web site The Samsung Unified Linux Driver Repository which someone created to provide .deb packages for the Samsung driver as well as tips on how to get Samsung printers and scanners working in Linux. It turned out to be relatively straightforward to scan, both via the office wired network and via Wi-Fi Direct. I edited the file /etc/sane.d/xerox_mfp.conf and replaced the following:

#Samsung C460 Series
usb 0x04e8 0x3468

with the following in order to use the C460FW to scan via the office wired network:

#Samsung C460 Series
#usb 0x04e8 0x3468
#Wired network static address of this C460FW:
tcp 10.90.21.125

or with the following in order to use the C460FW to scan via Wi-Fi Direct:

#Samsung C460 Series
#usb 0x04e8 0x3468
#Wi-Fi Direct address of this C460FW:
tcp 192.168.3.1

I found the IP addresses from the network configuration report I printed earlier.

I was able to use the two Linux scanning applications I normally use, XSane and gscan2pdf, to scan via the wired network and via Wi-Fi Direct. The resulting scans were very good. Given the ease of scanning via the wired network and Wi-Fi Direct, I have no doubts that scanning would work via a wireless network had the C460FW been configured for the office wireless network instead of the wired network.

Android

To use NFC to scan a document I place the Galaxy Note 4, without Wi-Fi enabled and with the Home Screen displayed (not the Lock Screen), on the NFC label on top of the C460FW. The Galaxy Note 4 enables Wi-Fi, connects automatically to the C460FW directly and launches the Mobile Print app showing the options Print, Scan and Fax. It is also possible to launch the Mobile Print app first and then place the Galaxy Note 4 on the C460FW. In other words, the procedure is exactly the same as when wanting to print via NFC. If I select Scan, the Galaxy Note 4 displays buttons for previewing and scanning. Amongst other things, the app’s Settings menu allows you to select whether you want to save the scanned image as a JPEG, PNG or PDF file. The hiccups mentioned above when printing via NFC also apply to scanning. Nevertheless, scanning from the C460FW to the Samsung Galaxy Note 4 via NFC is still handy.

CONCLUSION

As I am mainly interested in printing text documents I have only tried to print a few colour photographs on plain copier paper, and they look good. Text in documents looks crisp. Despite the lack of automatic duplex printing the C460FW is an excellent peripheral, especially for the price, although I don’t pay for the consumables so I have no idea of the operating costs. The ease with which I got it printing and scanning in Gentoo Linux (laptop) and Android KitKat (Samsung Galaxy Note 4) means that I would definitely consider purchasing this model for home use.

Downloading YouTube video or only audio

One of my favourite Linux applications is the command-line utility youtube-dl, which I use quite often to download YouTube videos or extract only the audio, either for leisure or work purposes.

Downloading a video

  1. Copy the URL of the YouTube video from the browser’s address bar. I’ll use the video ‘Como fazer um bom churrasco de Picanha‘ as an example.

  2. Ascertain the types and resolutions available for that particular video:

    $ youtube-dl -F https://www.youtube.com/watch?v=8BuQCD8eh9k
    8BuQCD8eh9k: Downloading webpage
    8BuQCD8eh9k: Extracting video information
    8BuQCD8eh9k: Downloading DASH manifest
    [info] Available formats for 8BuQCD8eh9k:
    format code extension resolution  note
    171         webm      audio only  DASH audio  118k , audio@128k (44100Hz), 5.05MiB
    140         m4a       audio only  DASH audio  129k , m4a_dash container, aac @128k (44100Hz), 5.99MiB
    141         m4a       audio only  DASH audio  256k , m4a_dash container, aac @256k (44100Hz), 11.90MiB
    160         mp4       256x144     DASH video  111k , 15fps, video only, 5.03MiB
    242         webm      426x240     DASH video  190k , 1fps, video only, 7.19MiB
    133         mp4       426x240     DASH video  248k , 30fps, video only, 11.33MiB
    243         webm      640x360     DASH video  378k , 1fps, video only, 13.83MiB
    134         mp4       640x360     DASH video  465k , 30fps, video only, 12.98MiB
    244         webm      854x480     DASH video  744k , 1fps, video only, 27.11MiB
    135         mp4       854x480     DASH video  873k , 30fps, video only, 25.98MiB
    247         webm      1280x720    DASH video 1378k , 1fps, video only, 49.45MiB
    136         mp4       1280x720    DASH video 1837k , 30fps, video only, 58.40MiB
    17          3gp       176x144
    36          3gp       320x240
    5           flv       400x240
    43          webm      640x360
    18          mp4       640x360
    22          mp4       1280x720 (best)

  3. Chose which video resolution you would like to download. For example I’ll download the highest resolution available for this particular video (Format 22, which is a 1280×720 MPEG-4 file):

    $ youtube-dl -f 22 -o Como_fazer_um_bom_churrasco_de_Picanha.mp4 https://www.youtube.com/watch?v=8BuQCD8eh9k
    8BuQCD8eh9k: Downloading webpage
    8BuQCD8eh9k: Extracting video information
    8BuQCD8eh9k: Downloading DASH manifest
    [download] Destination: Como_fazer_um_bom_churrasco_de_Picanha.mp4
    [download] 100% of 83.77MiB in 07:09

Extracting audio from YouTube videos

Let’s say you just want an audio file of the video’s sound track. There are several options, so I’ll just show a few simple examples here:

  1. MP3 file at default quality:

    $ youtube-dl --extract-audio --audio-format mp3 -t https://www.youtube.com/watch?v=8BuQCD8eh9k
    8BuQCD8eh9k: Downloading webpage
    8BuQCD8eh9k: Extracting video information
    8BuQCD8eh9k: Downloading DASH manifest
    [download] Destination: Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.m4a
    [download] 100% of 11.90MiB in 00:56
    [ffmpeg] Correcting container in "Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.m4a"
    [ffmpeg] Destination: Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.mp3
    Deleting original file Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.m4a (pass -k to keep)

    You can see from the console output above that youtube-dl downloads an M4A file and then uses ffmpeg to convert it to the audio file type you specified. You can check the file’s properties:

    $ file Como\ fazer\ um\ bom\ churrasco\ de\ Picanha-8BuQCD8eh9k.mp3
    Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 64 kbps, 44.1 kHz, Stereo

  2. MP3 file of 128 kbps:

    $ youtube-dl --extract-audio --audio-format mp3 --audio-quality 128K -t https://www.youtube.com/watch?v=8BuQCD8eh9k
    8BuQCD8eh9k: Downloading webpage
    8BuQCD8eh9k: Extracting video information
    8BuQCD8eh9k: Downloading DASH manifest
    [download] Destination: Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.m4a
    [download] 100% of 11.90MiB in 01:23
    [ffmpeg] Correcting container in "Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.m4a"
    [ffmpeg] Destination: Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.mp3
    Deleting original file Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.m4a (pass -k to keep)
    $ file Como\ fazer\ um\ bom\ churrasco\ de\ Picanha-8BuQCD8eh9k.mp3
    Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.mp3: Audio file with ID3 version 2.4.0, contains: MPEG ADTS, layer III, v1, 128 kbps, 44.1 kHz, Stereo

  3. M4A file at best quality available for that particular video:

    $ youtube-dl --extract-audio --audio-format best -t https://www.youtube.com/watch?v=8BuQCD8eh9k
    8BuQCD8eh9k: Downloading webpage
    8BuQCD8eh9k: Extracting video information
    8BuQCD8eh9k: Downloading DASH manifest
    [download] Destination: Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.m4a
    [download] 100% of 11.90MiB in 01:07
    [ffmpeg] Correcting container in "Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.m4a"
    Post-process file Como fazer um bom churrasco de Picanha-8BuQCD8eh9k.m4a exists, skipping

To see the many options available in youtube-dl:

$ man youtube-dl

or:

$ youtube-dl --help

Have fun!

Not able to access the CUPS Printer Manager in Firefox when, or after, using a proxy server

Just a quick tip if you are trying to use the CUPS Printer Manager in a Firefox browser window (http://localhost:631/) to add a printer, manage a printer or view print jobs but the brower displays a message such as ‘Connecting to 10.48.80.49…’ and eventually times out and displays the following message:

 Network Error (tcp_error)

A communication error occurred: “Operation timed out”
The Web Server may be down, too busy, or experiencing other problems preventing it from responding to requests. You may wish to try again at a later time.

For assistance, contact your network support team.

or the following message:

Unable to connect

Firefox can’t establish a connection to the server at 10.48.80.49.

    The site could be temporarily unavailable or too busy. Try again in a few moments.
    If you are unable to load any pages, check your computer’s network connection.
    If your computer or network is protected by a firewall or proxy, make sure that Firefox is permitted to access the Web.

    Try Again

This sometimes happens to me when my laptop is connected to a corporate network and the browser is, or recently was, configured to use a proxy server. Anyway, in Firefox I select ‘Open menu’ > ‘Preferences’ > ‘Network’ > ‘Settings…’ and make sure ‘No proxy’ is selected, then I select ‘Open menu’ > ‘Preferences’ and click on the ‘Clear Now’ button for ‘Cached Web Content’ (I have to click twice to clear the cache, for some reason) and the ‘Clear Now’ button for ‘Offline Web Content and User Data’. After doing this, I can access all the CUPS Printer Manager pages in the browser again.

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

UPDATE (March 10, 2015): Well, I was right to reserve judgement until I was able to use my laptop with my home network. I am now back at home and an Ethernet cable is plugged into my laptop’s RJ45 socket. Even with the changes I made, when I boot the laptop NetworkManager sometimes (but not always) has two connections named ‘eth0′, one of them the ‘Active connection’ (but not able to connect to the Internet) and the other an ‘Available connection’. In this situation the wired network icon on the Panel has a yellow question mark superimposed. If I delete the ‘eth0′ active connection and use the other ‘eth0′, the latter works as expected and I have no trouble connecting to the Internet. In Debian bug report no. 755202 (see the link further up) user Frederik Himpe added a comment on March 4, 2015 that he is also still experiencing this problem and “It looks like there is a race somewhere, causing the network interface to be brought up before Network Manager is started, and this prevents correct configuration by NM”. So the problem is still unresolved. Hmm … I wonder if udev does have something to do with it after all.

UPDATE (March 12, 2015): The problem persists. I disabled use of IPv6 in /etc/avahi/avahi-daemon.conf to see if the Avahi daemon has something to do with the problem, but that made no difference. Later I also disabled use of IPv4 in /etc/avahi/avahi-daemon.conf, but that made no difference either. So it looks like the Avahi daemon is not the culprit. Checking via the plasma-nm GUI I notice that the ‘rogue’ eth0 Active connection has IPv4 disabled and IPv6 Link-Local enabled. So why is NetworkManager creating a second eth0 connection just for IPv6 Link-Local? And why on Earth is NetworkManager creating any additional connection at all when NetworkManager.conf contains no-auto-default=eth0? Surely this must be a bug in NetworkManager 1.0.0?

UPDATE (March 17, 2015): I have been investigating the problem further: see my latest blog post for details.

Preventing a DNS Leak and WebRTC Leak when using Tor in Linux

Background

I have added to my 2011 Tor post a note on how to avoid a DNS Leak and WebRTC Leak, but am repeating it here in a new post, along with a Bash script that can be used to toggle the relevant Firefox user preferences before and after using Firefox with Tor, which makes the process easier.

The original eleven steps I gave in my above-mentioned post will not prevent the so-called DNS Leak problem. If your Web browser is not configured correctly it will still use your ISP’s DNS servers instead of the DNS servers favoured by Tor, in which case your ISP will know which sites you are accessing. See What is a DNS leak? for details. Reference 1 at the end of this post is a link to an article about DNS leakage, and Reference 2 is a link to an article on the Tor Browser, a browser designed to help avoid DNS leakage.

Furthermore, now that WebRTC is incorporated in some browsers, a ‘WebRTC Leak‘ is also possible if you have not configured your browser correctly.

Using the Tor Browser

Instead of performing Steps 1 to 11 in my original Tor post, download the Tor Browser, unpack it (no installation is required) and use that browser. Reference 3 below is a link to the download page, and Reference 4 below is a link to the instructions on how to unpack the tarball and launch the browser.

If you want even more security, you could instead download the ISO for the Tails Linux distribution, burn a LiveDVD or LivePenDrive — 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 — and launch the browser from a Live Environment.

Using Tor with Firefox

However, if you still want to use the method I gave in my original Tor post then you could try all the additional steps given below to stop DNS leakage and WebRTC leakage.

  1. Use the OpenDNS servers instead of your ISP’s DNS servers. That will not help, though, if your ISP is using a Transparent DNS Proxy.
  2. Make the following changes to the preferences in Firefox (enter about:config in the Firefox address bar):
    Preference Name                       Status   Type     Value
    network.dns.disableIPv6               default  boolean  false  Change to true
    network.dns.disablePrefetch           default  boolean  false  Change to true
    network.proxy.socks_remote_dns        default  boolean  false  Change to true
    browser.safebrowsing.enabled          default  boolean  true   Change to false
    browser.safebrowsing.malware.enabled  default  boolean  true   Change to false
    media.peerconnection.enabled          default  boolean  true   Change to false
    

    (When you have finished using Tor, set media.peerconnection.enabled back to true if you want to use WebRTC. If you also want Firefox to warn you of phishing Web sites and Web sites that download malware, also set browser.safebrowsing.enabled and browser.safebrowsing.enabled back to true after you have finished using Tor.)

    You may be wondering why I disable IPv6 DNS requests. It is because some IPv6-capable DNS servers may return an IPv4 address when an IPv6 address is requested. I disable the two ‘safe browsing’ preferences because, if enabled, they cause Firefox to compare visited URLs against a remotely-stored blacklist or submit URLs to a third party to determine whether a site is legitimate, and I don’t want the possibility of Firefox contacting other sites outside Tor or trying to find an IP address for a URL. The PeerConnection preference relates to WebRTC, and I disable that to stop Firefox contacting STUN servers (see Reference 5 below).

  3. Test if there is still leakage by visiting the DNS leak test Web site and clicking on the Standard test button, and visiting the IP/DNS Detect site.

Furthermore, do not forget to use a Private Browsing window in Firefox.

Automate the editing of Firefox user preferences

Using about:config to change the user preferences in Firefox is laborious, so I created a Bash script edit_firefox.sh to toggle the relevant user preferences:

#!/bin/bash
# Script to change Firefox user preferences rather than
# using about:config from within Firefox.
# Make sure you only run this script when Firefox is not running.
#
FILE="/home/fitzcarraldo/.mozilla/firefox/fm8q09x0.default/prefs.js"
#
#
STATE=$(grep media.peerconnection.enabled $FILE | cut -c 43- | cut -d')' -f1)
if ! grep -q media.peerconnection.enabled $FILE ; then
  echo 'user_pref("media.peerconnection.enabled", false);' >> $FILE
  echo 'Added media.peerconnection.enabled false (secure) to prefs.js'
elif [ $STATE = "true" ]; then
     sed -i s/^.*media.peerconnection.enabled.*$/'user_pref("media.peerconnection.enabled", false);'/ $FILE
     echo 'media.peerconnection.enabled changed to false (secure) in prefs.js'
  else
     sed -i s/^.*media.peerconnection.enabled.*$/'user_pref("media.peerconnection.enabled", true);'/ $FILE
     echo 'media.peerconnection.enabled changed to true (not secure) in prefs.js'
fi
#
STATE=$(grep browser.safebrowsing.malware.enabled $FILE | cut -c 51- | cut -d')' -f1)
if ! grep -q browser.safebrowsing.malware.enabled $FILE ; then
  echo 'user_pref("browser.safebrowsing.malware.enabled", false);' >> $FILE
  echo 'Added browser.safebrowsing.malware.enabled false (secure) to prefs.js'
elif [ $STATE = "true" ]; then
     sed -i s/^.*browser.safebrowsing.malware.enabled.*$/'user_pref("browser.safebrowsing.malware.enabled", false);'/ $FILE
     echo 'browser.safebrowsing.malware.enabled changed to false (secure) in prefs.js'
  else
     sed -i s/^.*browser.safebrowsing.malware.enabled.*$/'user_pref("browser.safebrowsing.malware.enabled", true);'/ $FILE
     echo 'browser.safebrowsing.malware.enabled changed to true (not secure) in prefs.js'
fi
#
STATE=$(grep browser.safebrowsing.enabled $FILE | cut -c 43- | cut -d')' -f1)
if ! grep -q browser.safebrowsing.enabled $FILE ; then
  echo 'user_pref("browser.safebrowsing.enabled", false);' >> $FILE
  echo 'Added browser.safebrowsing.enabled false (secure) to prefs.js'
elif [ $STATE = "true" ]; then
     sed -i s/^.*browser.safebrowsing.enabled.*$/'user_pref("browser.safebrowsing.enabled", false);'/ $FILE
     echo 'browser.safebrowsing.enabled changed to false (secure) in prefs.js'
  else
     sed -i s/^.*browser.safebrowsing.enabled.*$/'user_pref("browser.safebrowsing.enabled", true);'/ $FILE
     echo 'browser.safebrowsing.enabled changed to true (not secure) in prefs.js'
fi
#
STATE=$(grep network.proxy.socks_remote_dns $FILE | cut -c 45- | cut -d')' -f1)
if ! grep -q network.proxy.socks_remote_dns $FILE ; then
  echo 'user_pref("network.proxy.socks_remote_dns", true);' >> $FILE
  echo 'Added network.proxy.socks_remote_dns true (secure) to prefs.js'
elif [ $STATE = "true" ]; then
     sed -i s/^.*network.proxy.socks_remote_dns.*$/'user_pref("network.proxy.socks_remote_dns", false);'/ $FILE
     echo 'network.proxy.socks_remote_dns changed to false (not secure) in prefs.js'
  else
     sed -i s/^.*network.proxy.socks_remote_dns.*$/'user_pref("network.proxy.socks_remote_dns", true);'/ $FILE
     echo 'network.proxy.socks_remote_dns changed to true (secure) in prefs.js'
fi
#
STATE=$(grep network.dns.disablePrefetch $FILE | cut -c 42- | cut -d')' -f1)
if ! grep -q network.dns.disablePrefetch $FILE ; then
  echo 'user_pref("network.dns.disablePrefetch", true);' >> $FILE
  echo 'Added network.dns.disablePrefetch true (secure) to prefs.js'
elif [ $STATE = "true" ]; then
     sed -i s/^.*network.dns.disablePrefetch.*$/'user_pref("network.dns.disablePrefetch", false);'/ $FILE
     echo 'network.dns.disablePrefetch changed to false (not secure) in prefs.js'
  else
     sed -i s/^.*network.dns.disablePrefetch.*$/'user_pref("network.dns.disablePrefetch", true);'/ $FILE
     echo 'network.dns.disablePrefetch changed to true (secure) in prefs.js'
fi
#
STATE=$(grep network.dns.disableIPv6 $FILE | cut -c 38- | cut -d')' -f1)
if ! grep -q network.dns.disableIPv6 $FILE ; then
  echo 'user_pref("network.dns.disableIPv6", true);' >> $FILE
  echo 'Added network.dns.disableIPv6 true (secure) to prefs.js'
elif [ $STATE = "true" ]; then
     sed -i s/^.*network.dns.disableIPv6.*$/'user_pref("network.dns.disableIPv6", false);'/ $FILE
     echo 'network.dns.disableIPv6 changed to false (not secure) in prefs.js'
  else
     sed -i s/^.*network.dns.disableIPv6.*$/'user_pref("network.dns.disableIPv6", true);'/ $FILE
     echo 'network.dns.disableIPv6 changed to true (secure) in prefs.js'
fi

You will need to change the path to the Firefox prefs.js file in the sixth line of the script, to suit your installation. If you have the utility mlocate installed you can find the file easily by using the command:

$ locate prefs.js | grep firefox

You will also need to make the script executable:

$ chmod +x edit_firefox.sh

You can see below how the script works:

$ ./edit_firefox.sh
media.peerconnection.enabled changed to false (secure) in prefs.js
browser.safebrowsing.malware.enabled changed to false (secure) in prefs.js
browser.safebrowsing.enabled changed to false (secure) in prefs.js
network.proxy.socks_remote_dns changed to true (secure) in prefs.js
network.dns.disablePrefetch changed to true (secure) in prefs.js
network.dns.disableIPv6 changed to true (secure) in prefs.js
$ ./edit_firefox.sh
media.peerconnection.enabled changed to true (not secure) in prefs.js
browser.safebrowsing.malware.enabled changed to true (not secure) in prefs.js
browser.safebrowsing.enabled changed to true (not secure) in prefs.js
network.proxy.socks_remote_dns changed to false (not secure) in prefs.js
network.dns.disablePrefetch changed to false (not secure) in prefs.js
network.dns.disableIPv6 changed to false (not secure) in prefs.js
$

Procedure to use Tor

So, if I am not using the Tor Browser, in summary I do the following (refer to my 2011 Tor post for the details):

  1. Launch Polipo from a Konsole window.
  2. Launch Vidalia from a Konsole window.
  3. Launch edit_firefox.sh to make sure the relevant user preferences are set securely.
  4. Launch Firefox and change the network settings to enable use of Polipo and Vidalia.
  5. Launch a Firefox Private Browsing window and close the original window.
  6. Visit TorCheck at Xenobite.eu, What Is My IP Address?, DNS leak test and IP/DNS Detect to be sure I am using Tor and that there is no DNS leak or WebRTC leak.

The router provided by my ISP does not allow me to change its DNS server settings. Using the router’s Web browser interface I was able to view the IP addresses of the DNS servers the router uses (Whois Lookup is a good place to check to whom an IP address belongs), and they are indeed owned by the ISP. However, the leak test Web sites I mention above show me that there is no DNS leakage to the ISP’s DNS servers when I have performed all the steps above.

When I have finished using Tor, I do the following:

  1. Exit Firefox.
  2. Stop Tor from the Vidalia GUI, exit Vidalia and end the Konsole session.
  3. Stop Polipo and end the Konsole session.
  4. Launch edit_firefox.sh to set the relevant user preferences back to their original settings.
  5. Launch Firefox and change the network settings back to the original settings.

References

1. Preventing Tor DNS Leaks
2. Tor new advice (February 2014)
3. Download Tor Browser
4. Linux Instructions for Tor Browser
5. New Browser Based Flaw Leaks VPN Users’ IP Addresses

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.

Follow

Get every new post delivered to your Inbox.

Join 56 other followers