Work-around if movie subtitles restart after the final subtitle is displayed

If I’m watching movies in a language I don’t understand, I want subtitles. On my computers this is possible as long as there is a subtitles file with the name suffix .srt and the same prefix name as the .mp4 video file in the same directory. I usually prefer to view movies on my TV with a bigger screen, so I copy the movie to a HDD that is normally connected to my TV (a FINLUX model 43-FUD-8020). However, the built-in media player in the TV does not show the subtitles in the .srt file, even when it is in the same directory as the .mp4 file. Therefore I use the MKVToolNix utility mkvmerge to put the movie and subtitles into a Matroska multimedia container (.mkv file), and the TV’s media player can play these .mkv files and does display the subtitles. In fact, so can my laptops and desktop running Linux (I have not tried on a machine running Windows 10, but I assume Windows 10 would have no trouble either).

To install in Lubuntu 20.10:

user $ sudo apt install mkvtoolnix

To install in Gentoo Linux:

root # emerge mkvtoolnix

To create a Matroska file containing the movie plus subtitles:

user $ mkvmerge -o movie_with_subtitles.mkv movie_without_subtitles.mp4 subtitles.srt

Normally the last subtitle in a movie does not occur at the very end of the movie. For example, there could be action without dialogue at the end of the movie, and/or final credits without dialogue. The media players on my laptops and desktop running Linux display the last subtitle and play the rest of the movie in the Matroska container as expected. However, the media player in my FINLUX TV displays the last subtitle and then displays the subtitles from the beginning again, at breakneck speed. Annoying to say the least. As the problem does not occur on my laptops and desktop with the same .mkv file, I assume the problem lies with the media player in the TV.

At first I suspected that the .srt file was the cause, but it correctly uses UTF-8 encoding and the syntax of the contents is correct. Anyway, just to be sure I ran it through an online cleaner for .srt files and re-generated the .mkv file, but that made no difference on the TV. Since there is no problem playing the .mkv file on my computers, I can only assume the TV’s media player is indeed at fault. I cannot do anything about the TV’s media player, so I came up with an acceptable work-around: I added a dummy subtitle at the end of the .srt file that is set to be displayed at the very end of the movie. For example, let’s say the movie duration is two hours, 12 minutes and twenty-two seconds but the last subtitle is at 01:56:38,201:

188
01:56:38,201 --> 01:56:40,286
The end justifies the means.

I edited the file and added a dummy subtitle at the end:

188
01:56:38,201 --> 01:56:40,286
The end justifies the means.

189
02:12:19,001 --> 02:12:21,999
THE END.

I then re-generated the .mkv file using the mkvmerge command and, lo and behold, after the subtitle displayed between at 01:56:38,201 and 01:56:40,286 the TV no longer displays any more subtitles until the very end of the movie when it displays ‘THE END’ and the video ends. Actually, in reality the movie must be very slightly longer than 02:12:21,999 because, after displaying ‘THE END’, the first six subtitles in the subtitle file are displayed in rapid succession before the media player stops playing, but that is no big deal.

I searched the Web quite a lot and was unable to find any mention of this particular problem, so I am posting my work-around here just in case it helps someone else experiencing the same problem.

Jitsi Meet, my favourite video conferencing platform (and a way to share audio when using it in Linux)

During the current COVID-19 lockdown I have been using video conferencing platforms a lot for family virtual meet-ups, quizzes and multi-player games by Jackbox Games. Zoom seems to be the most popular video conference platform at the moment, although several articles in the media have pointed out some of its security limitations (see, e.g., ‘‘Zoom is malware’: why experts worry about the video conferencing platform‘). Although many people like Zoom, my favourite video conferencing platform is Jitsi Meet.

For an excellent third-party video introduction to Jitsi Meet, watch the video: ‘Using Jitsi: A free, no-registration video conferencing site‘. WIRED Magazine’s recent article on Jitsi Meet is also worth reading: ‘Want to Ditch Zoom? Jitsi Offers an Open-Source Alternative‘.

The reasons I prefer Jitsi Meet to Zoom include the following:

  1. no subscriptions are required to use all the features of Jitsi Meet;
  2. unlike Zoom, Jitsi Meet does not require you to sign up;
  3. unlike Zoom, Jitsi Meet does not require the installation of an application — it runs in Google Chrome or Firefox;
  4. unlike the free version of Zoom, Jitsi Meet does not impose a time limit on the length of the meeting;
  5. unlike the free version of Zoom, Jitsi Meet does not have a limit on the number of meeting attendees;
  6. Jitsi Meet provides end-to-end encryption for one-to-one video calls*;
  7. I find the performance of Jitsi Meet better than Zoom, which seems to be corroborated in basic benchmarking by Jitsi Meet’s developers (‘WebRTC vs. Zoom – A Simple Congestion Test‘);
  8. I find image quality better in Jitsi Meet;
  9. I find Jitsi Meet on a desktop/laptop more intuitive and easier to use than Zoom;
  10. if I share audio in Zoom for Linux, the audio is very distorted**;
  11. I find the UI of the Jitsi Meet app for Android easy to use (the app can be installed via Google Play);
  12. Jitsi Meet is open-source, so anyone can inspect the source code;
  13. if I wanted to, I could download the Jitsi software to my own server and set up a Jitsi Meet server to handle meetings instead of using the Cloud server provided by 8×8, Inc. (the company that develops the Jitsi Meetings software).

* Neither platform currently provides end-to-end encryption for group meetings, although the developers of Jitsi Meet are apparently working on implementing end-to-end encryption for group meetings using a new feature of Google Chrome called ‘Insertable Streams’.

** There is a work-around for this problem in Zoom for Linux; see my answer to the Unix & Linux Stack Exchange question ‘Play audio output as input to Zoom’. In the case of Jitsi Meet in Linux, PulseAudio Volume Control can be used to share audio, as I explain further down.

Jitsi Meet requires no installation; it runs in a browser window. Either Google Chrome or Firefox can be used, although I find it runs better in Google Chrome. Actually, an Ubuntu 16.04 user told me that Firefox hangs when he tries to join a Jitsi Meet meeting, but Jitsi Meet works fine in Firefox in my two Gentoo Linux installations and in my family’s Lubuntu 18.04 installation. When using Google Chrome, to be able to share your screen you need to install the Google Chrome extension ‘Jitsi Meetings’ by meet.ji.si in the Google Chrome Web Store.

One of my family here at home has a laptop running Windows 10. Google Chrome, but not Firefox, displays a ‘Share audio’ tick box when the ‘Share your screen’ icon is clicked (see ‘Jitsi Meet features update, April 2020‘). The ‘Share audio’ feature is needed when, for example, you are casting via the Internet to remote players a multi-user game running on your machine. During the current COVID-19 lockdown we have been having fun playing Jackbox Games Party Pack 6 this way with family and friends in different locations (see ‘(My Solution) Best method for Virtual Couch Multiplayer‘). Each household connects a laptop to their TV via HDMI and joins the Jitsi Meet meeting. The Jackbox Games games are cast via Jitsi Meet from the laptop at my house, and the group of players in each household can view and hear the game on their TV and participate using their mobile phones as per the Jackbox Games paradigm.

Jitsi Meet provides a ‘Share audio’ function in Windows only, but I found a work-around to to be able to share any application’s audio in Linux if I ever want to use my Linux machines to cast games by Jackbox Games or other suppliers. For once, I have found PulseAudio useful! I use PulseAudio Volume Control to redirect the audio output from the desired application (be it a game, music player, video player or whatever) to the microphone input. The precise way to do this depends on the audio hardware your machine has, but an example is given in the blog post: ‘Redirect Audio Out to Mic In (Linux)‘.

My family’s desktop machine running Lubuntu 18.04 uses a Webcam with an integral microphone connected via USB, and external powered speakers connected to the machine’s Line Out green-coloured 3.5 mm jack socket. The contents of the tabs in PulseAudio Volume Control when no applications that produce audio are running are shown in the following screenshots:

PulseAudio Volume Control - Configuration

PulseAudio Volume Control - Playback

PulseAudio Volume Control - Recording

PulseAudio Volume Control - Output Devices

PulseAudio Volume Control - Input Devices

I make sure ‘All Streams’ is selected on the ‘Playback’ and ‘Recording’ tabs, ‘All Output Devices’ is selected on the ‘Output Devices’ tab, and ‘All Input Devices’ is selected on the ‘Input Devices’ tab.

Let us say I have launched Audacious to play some music and I want to cast that music to members of a Jitsi Meet meeting. When I am using Jitsi Meet for a meeting in Google Chrome, the contents of the PulseAudio Volume Control tabs on this machine are as follows:

PulseAudio Volume Control - Playback

PulseAudio Volume Control - Recording

PulseAudio Volume Control - Output Devices

PulseAudio Volume Control - Input Devices

To redirect the audio from e.g. Audacious to the meeting members, I select (click on the square button with the green disc and white tick) ‘Monitor of Built-in Audio Analogue Stereo’ on the ‘Input Devices’ tab, and on the ‘Recording’ tab I click on Chrome input: RecordStream from ‘Camera Analogue Mono’ and select Chrome input: RecordStream from ‘Monitor of Built-in Audio Analogue Stereo’, as shown below.

PulseAudio Volume Control - Recording

PulseAudio Volume Control - Input Devices

With the above settings in PulseAudio volume control, all the members of the meeting will be able to hear clearly the audio from Audacious. To switch back to my microphone to speak, I simply click on Chrome input: RecordStream from ‘Monitor of Built-in Audio Analogue Stereo’ on the ‘Recording’ tab and select Chrome input: RecordStream from ‘Camera Analogue Mono’ again.

BT Broadband and Netflix on a smart TV: a solution at last?

The fix I described in an earlier post stopped working after a couple of weeks, and my family was again unable to access Netflix on our smart TV. Some people had reported that replacing their BT Home Hub 3 with a BT Home Hub 5 resolved the Netflix problem with their smart TVs, so I decided to buy a second-hand BT Home Hub 5 and can report that Netflix is again accessible via the Netflix app on my LG smart TV.

A post by an owner of a Sony smart TV reinforces my suspicion that the problem is due to a combination of providers:

The problem is that netflix app adds 8.8.4.4 as a DNS server. Using anything other than the homehub default gateway as the DNS server returns an error from parental controls as it uses that to apply said controls. No other app on my Sony smart TV does that and just uses what the DHCP server on the homehub hands out. The netflix app has to stop adding that backup IP address for DNS. Is it Sony setting that value or Netflix? Considering it is happening on non-Sony TVs the finger looks to be pointing at Netflix.

Anyway, I just hope the problem is finally solved in my case. The price I paid for the second-hand BT Home Hub 5 was reasonable, and it does have some advantages over the BT Home Hub 3 I was using previously, such as support for 802.11ac Wi-Fi and no need for an external DSL modem, so I am satisfied with the outcome although my opinion of BT is even lower now.

BT Broadband could be cause of Netflix app’s ui-113 message

A couple of months ago I posted regarding a problem with the Netflix app on my LG smart TV (Netflix – Not fit for purpose?). We use BT Infinity broadband with a BT HomeHub 3. The Netflix app on the TV stopped working in early January and always displayed a Netflix ‘ui-113’ message when trying to connect. As we are paying good money to Netflix, we resorted to trying various DNS server addresses posted on the Web for US Netflix, which only work for a short time. Although US Netflix has more content than UK Netflix, we want the latter as it has UK programmes not available on US Netflix. Not to mention that we live in the UK. And it seems my family is not the only one suffering: BT Broadband Users Suffer Problems with Netflix on UK Smart TVs.

Today I found a YouTube video regarding a different Netflix error code (‘nw-2-5’) but, having tried everything else, I tried the suggested fix anyway (Enable Parental Controls then Disable Parental Controls then Delete Parental Controls) and then changed the DNS server address setting in the TV back to the default 192.168.1.254 for the BT Home Hub. Although the Netflix app first displays the ‘ui-113’ or ‘nw-2-5’ messages, if I retry a few times it now manages to connect to UK Netflix. After a couple of months of hassle with Netflix, that is progress.

The fix suggested in the above-mentioned YouTube video consisted of enabling then disabling and deleting BT Parental Controls via the user’s account page on the BT Web site. Even though I had never previously enabled BT Parental Controls, I logged in to the BT Web site, enabled Parental Controls, and then disabled and deleted them as per the instructions given in the aforementioned YouTube video.

So it seems that BT is either the cause of the problem or a major contributor. I suspect the blame may lie with more than one company, though, because: a) the Netflix app’s ‘ui-113’ and ‘nw-2-5’ messages occur even after I made sure BT Parental Controls really are disabled; b) it is touch and go whether the app is successful in accessing the Netflix site at the first attempt; c) other devices accessing Netflix via my home network don’t suffer from the problem. I just hope LG, Netflix and BT are working together to solve it properly, because the current situation is completely unacceptable.

Netflix – Not fit for purpose?

One of my family has a Netflix account. The account is accessible from any of the desktop and laptop computers in the house, whichever OS they are running.

Recently we bought a so-called ‘smart TV’ (an LG 40UF770V 4K Ultra HD TV, as it happens), and are pleased with it. It runs WebOS 2.0 (yay, Linux!) and the LG Content Store contains a Netflix app, which we promptly installed. The app worked perfectly for several weeks but then stopped being able to access Netflix. When the app was launched, the usual screen with the Netflix logo and the ‘Loading’ rotating indicator would appear but, after a minute or so, an error message would be displayed informing us that Netflix error ‘ui-113’ had occurred. One of the on-screen options then offered by the app was to check the network connection, which we tried, but everything was reported to be working correctly. Not to mention that all the other apps that require an Internet connection work fine. In order to watch a film using Netflix over the Christmas period we had to resort to connecting a laptop to the TV via an HDMI cable and accessing Netflix in a Web browser on the laptop. It is ridiculous to have to resort to such measures to view content on smart TVs which have Netflix apps.

I searched the Web and discovered that many, many people experience the same problem with Netflix and smart TVs. As in our case, they had no trouble accessing their Netflix account on their home network with other devices such as computers, tablets and smart phones. I came across reports by owners of smart TVs made by LG, Philips, Samsung, Sony, Toshiba, and other manufacturers. People who had contacted the relevant TV manufacturer were often told the problem is caused by Netflix, and people who had contacted Netflix were often told the problem is caused by the TV manufacturer.

Netflix has a Help page for this error message, but none of the steps Netflix listed worked, and neither did any of the remedies suggested by others on the Web (including in various YouTube videos). Resetting the TV did not solve the problem. Neither did cycling the mains power to the TV, broadband modem and router (however long the power was off). Nor did changing the TV’s setting for the IP address of the DNS server to one of the well-known public DNS servers such as Google’s. Nor did suggestions such as un-installing and re-installing the Netflix app. Nor did configuring the router to perform port forwarding for Netflix on the TV (not that this should be necessary, but I tried it anyway). Several people wrote that the parental lock in their routers caused the problem, but the parental lock is definitely not enabled in my router. I also tried to access Netflix via the TV’s Web browser; it can log-in to the Netflix account but cannot play content as it does not support the Microsoft Silverlight plug-in or HTML5 required by Netflix.

Nothing we tried solved the problem, and two weeks of this messing around was exasperating. Some people reported that changing the DNS server address in the TV to Google’s DNS servers worked, whereas others reported it didn’t. Even if some lucky person managed to get Netflix working on their smart TV using a certain procedure, other people in the same country with the same model of TV could not, even if they used the same procedure.

In addition to people in a given country trying to get the Netflix app in their smart TV to access their Netflix account in that country, I came across posts by people wanting to access Netflix in a different country (mostly people not in the USA wanting to access US Netflix because it offers a wider range of films and programmes, but also expatriates wanting to access Netflix for their home country with their home-country Netflix account). So I tried recommendations to configure the TV to use a DNS server in the US that some people in the UK had recently indicated would give the Netflix app access to US Netflix rather than UK Netflix (even though we wanted to access UK Netflix from the UK). But that didn’t work either.

However, I didn’t give up. I trawled the Web for lists of DNS servers that some people claimed would give access to Netflix in the UK. I found various Web sites listing IP addresses for DNS servers and tried several of them. Eventually I found one that actually enables the Netflix app in the TV to work, but it accesses US Netflix instead of UK Netflix. Given that the Netflix app has not worked for several weeks, I’m not complaining, but it is not what we were trying to achieve (US Netflix does not provide all the UK TV series available on UK Netflix). Furthermore, according to some of the posts I’ve read, periodically you have to change the DNS server address in the TV because Netflix stops working with the existing address.

Now, I’m a technically-oriented person and it took me several hours over a two-week period to find a solution (well, a work-around). Someone with little or no IT knowledge in the same situation would be at a complete loss as to how to get their Netfix account working. In order for streaming media services to become as ubiquitous as e.g. terrestrial TV, they have to be reliable and be accessible easily to paying customers. Use of Geolocation, GeoDNS and other complex techniques should not cause such a headache to bona fide users. Someone with a Netflix account in his/her country of residence and who simply wants to access Netflix on a smart TV should not have to jump through hoops or hit a brick wall. Clearly this is happening to many people.

On top of that, people such as myself who have to travel internationally frequently because of their work need to be certain that, if they subscribe to a streaming media service, it will work in whatever country they happen to be in at the time (except if blocked by Great Firewalls or content filters on proxy servers, of course) and not be purposely or inadvertently prevented from working by the media service provider’s network concept.

I myself had considered signing up for a Netflix account so that I could view films and TV programmes during my overseas work trips, but, after having to struggle for days to help a family member access a valid Netflix account on a smart TV in the country where the account was set up, will definitely not be giving Netflix my business. In this day and age it is ridiculous that users should have to try umpteen DNS server addresses and reset TVs, routers and modems in order to access their account with a media provider. Services such as Netflix will never have my business until their networking and DRM are sorted out properly and made to work reliably. Until Netflix changes its network delivery model, its service will remain a curate’s egg in my opinion.

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!

Fixing unperceived errors in my X Windows configuration

Prologue

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

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

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

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

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

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

Section "Files"
EndSection

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

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

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

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

AIGLX error message

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

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

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

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

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

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

Touchpad

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

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

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

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

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

Section "Files"
EndSection

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

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

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

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

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

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

Section "DRI"
	Mode         0666
EndSection

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

Option	    "Protocol" "auto-dev"

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

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

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

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

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

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

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

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

These three files contained, respectively, the following:

10-evdev.conf

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

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

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

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

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

10-quirks.conf

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


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

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

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

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

50-synaptics.conf

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Section "Module"
        Load  "vbe"
EndSection

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

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

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

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

Section "DRI"
        Mode         0666
EndSection

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

Option “AllowMouseOpenFail”boolean

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

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

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

Outcome

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

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

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

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

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

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

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

Audio in Linux becomes annoying again

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

Thunderbird

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

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

Skype

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

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

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

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

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

Interrelationship between PulseAudio and ALSA

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

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

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

WebRTC – A viable alternative to Skype

Skype for Linux 4.3 and upwards requires the use of PulseAudio, which has caused discontent amongst those Linux users who do not use PulseAudio. Although I do use PulseAudio, I recently found out about WebRTC, an API (application programming interface) for browser-based communication offering most of the functions provided by Skype, namely: voice calling, video chat, text chat, file sharing and screen sharing. The official WebRTC site states:

WebRTC is a free, open project that enables web browsers with Real-Time Communications (RTC) capabilities via simple JavaScript APIs. The WebRTC components have been optimized to best serve this purpose.

Our mission: To enable rich, high quality, RTC applications to be developed in the browser via simple JavaScript APIs and HTML5.

WebRTC was originally released by Google but is now a draft standard of the World Wide Web Consortium, and is supported by Chrome, Firefox and Opera browsers. Several commercial Web sites offer WebRTC-based communications to fee-paying customers, but I thought I would try WebRTC by using one of the so-called ‘demo’ WebRTC pages. AppRTC is a WebRTC demo page which can be reached from a link on the official WebRTC site, but I prefer Multi-Party WebRTC Demo by TokBox which offers a more polished experience with better features. Both are free to use and viable substitutes to Skype for video chatting (one-to-one or conference).

So, how do you actually use WebRTC-based sites? Below is a quick guide to get you going.

Text and video chatting

Open the following URL in Chrome or Firefox:

https://opentokrtc.com/

Enter a Room Name that is likely to be unique. I used ‘fitzchat’ (without the quotes), but you can use any name you want.

The other party or parties can do the same thing, i.e. they enter the same Room Name as you, and you will all become connected.

Alternatively, to send an e-mail invitation to someone, click on the URL at the top of the pane on the right-hand side (which is Invite: https://opentokrtc.com/fitzchat in this example, as I chose to name the Room ‘fitzchat’). The partially visible pane at the right-hand side of the browser window will slide into full view when you click on it.

That’s all there is to it. You should see a video window showing each party, and they should see the same. Each party should also be able to hear the other parties. In the top right-hand corner of each video window is an icon (microphone for you; speaker for each of the other parties) which you can click on to mute/un-mute that party.

Click on the partially visible pane at the right-hand side of the browser window. Notice the ‘chat bar’ at the bottom where you enter commands and chat text. Read the grey instructions listed near the top of the pane:

Welcome to OpenTokRTC by TokBox
Type /nick your_name to change your name
Type /list to see list of users in the room
Type /help to see a list of commands
Type /hide to hide chat bar
Type /focus to lead the group
Type /unfocus to put everybody on equal standing

For example, to give myself a meaningful name instead of the default username Guest-0120e48c which was given to me automatically, I entered the following:

           /nick Fitz

Screen sharing

I found that screen sharing already works well in Chrome 36.0.1985.125 but is not yet supported in Firefox 31.0. It will be supported in Firefox 32 or 33, apparently, or you can already use Firefox Nightly providing you add the appropriate preferences via about:config.

To be able to share screens in Chrome, I had to perform two steps: enable a Chrome flag and install a Chrome extension. The two steps, which do not need to be repeated, are given below (see Ref. 1).

To enable screen sharing in Chrome, do the following:

  1. Open a new tab or window in Chrome.
  2. Copy the following link: chrome://flags/#enable-usermedia-screen-capture and paste it in the location bar.
  3. Click on the ‘Enable’ link below ‘Enable screen capture support in getUserMedia().’ at the very top of the screen.
  4. Click on the ‘Relaunch Now’ button at the bottom of the page to restart Chrome.

To install the screen sharing extension in Chrome, do the following:

  1. Launch Chrome and click on the Menu icon.
  2. Click on ‘Settings’.
  3. Click on ‘Extensions’.
  4. Click on ‘Get more extensions’ and search for ‘webrtc’.
  5. Download ‘WebRTC Desktop Sharing’.
  6. This places an icon to the right of the URL bar in Chrome.

To share your screen or just a window, do the following in Chrome:

  1. Click on the ‘Share Desktop’ icon to the right of the URL bar and select either ‘Screen’ or the window you wish to share.
  2. Click ‘Share’.
  3. When sharing has started in a new Chrome window, select the URL of the relevant tab in that window and send it to the other parties via the chat pane on the right-hand side of the first browser window.

To stop sharing, click on ‘Stop sharing’ and click on the ‘Share Desktop’ icon to the right of the URL bar to get it to return to displaying the ‘Share Desktop’ icon instead of the || (Pause) icon.

File sharing

I did not bother to try file sharing using WebRTC, but there are various Web sites you can use to do that. One such is ShareDrop, and googling will find others.

Caveats

Chrome 36.0.1985.125 and Firefox 31.0 were used in this trial (I did not try Opera). I found that video chat worked faultlessly when both parties were using Chrome, and when both parties were using Firefox. However, when one of the parties was using Firefox and the other was using Chrome, I could not see myself in one of the video boxes in the browser window (although I could see the other party in the other video box in the browser window). Furthermore, there was a grey bar across the middle of the video images in the AppRTC demo, whereas the Multi-Party WebRTC Demo video images were normal. Other than those two issues, the experience was smooth and straightforward. My recommendation would therefore be to use Multi-Party WebRTC Demo and for all the parties to use the same browser, be it Chrome or Firefox. If you want to share your screen or a window, the logical choice at the moment would be Chrome.

References

1 LiveMinutes Blog – Beta Testers: How To Activate Screen Sharing!

UPDATE (January 2, 2015): Mozilla has added a button to Firefox 34 to provide account-free video chat using WebRTC. Mozilla calls this feature ‘Firefox Hello’.

https://support.mozilla.org/en-US/kb/where-firefox-hello-button

I have it in Firefox 34.0.5 (I had to drag the ‘Hello’ button from ‘Customise’ | ‘Additional Tools and Features’). It works quite well. I didn’t bother creating an account; I just clicked on the ‘Email’ button to e-mail the automatically-generated URL to someone, and he clicked on the URL in the e-mail he received, which launched Firefox on his laptop and rang Firefox on my laptop. We tried both video and audio-only conversations, and both worked well. Firefox Hello is not as polished as Skype but, if Mozilla keeps working on it, they could end up with a good product.

Installing and using the Pipelight browser plug-in with Firefox 30 for Linux

I use Gentoo Linux (~amd64) on my main laptop. Although I do not use Netflix or any of the other streaming video services that require the Microsoft Silverlight browser plug-in, I do need to use a browser with the Silverlight plug-in to access an office Intranet site. So I was interested in installing the Pipelight plug-in.

Although Pipelight works with most of the Silverlight test sites I have found on the Web, I cannot get it to work with the above-mentioned office Intranet site, which is why I ended up installing Firefox for Windows and Silverlight in WINE (see my previous post). Anyway, below I explain how I installed and configured Pipelight 0.2.7.1 and Firefox 30.0 for Linux. Even if you use a different Linux distribution to me, almost all of this post will still be relevant; only the package installation commands will differ.

Google Chrome 34 and onwards does not support NPAPI, so Pipelight does not work any more with Chrome. Actually, Mozilla has disabled some NPAPI support by default in Firefox 30: with the exception of the Flash plug-in you have to explicitly give permission for plug-ins to be activated via Click-to-Activate (also known as Click-to-Play). You can configure how Firefox Click-to-Activate behaves via Open menu > Add-ons > Plugins (choose either ‘Ask to Activate’, ‘Always Activate’ or ‘Never Activate’). See ‘Issues related to plugins – 4.1 Click to Play in Mozilla browser versions 23 and above‘ on the mozillaZine Website and ‘How to always activate a plugin for a trusted website‘ on the Mozilla Support Website.

I updated an existing Pipelight ebuild so that it will install the latest version of Pipelight (0.2.7.1) via a Portage local overlay. You can download the new ebuild from Gentoo Bugzilla Bug Report No. 481596 (see Comment 40). I can only get it to merge by using the binary-pluginloader USE flag. [Update August 18, 2014: The package is now in the main Portage tree, at least for ~amd64]

Installation

Install Firefox if it has not already been installed:

root # emerge firefox

Install Pipelight (installation fails unless I disable binary-pluginloader):

root # USE="-binary-pluginloader" emerge pipelight

Install WINE with the Compholio patches:

root # USE="pipelight" emerge wine

As you can see below, I have wine-1.7.21 and pipelight-0.7.2.1 installed.

user $ eix -I wine
[I] app-emulation/wine
Available versions: 1.2.3^t (~)1.3.28^t 1.4.1^t 1.6.1^t 1.6.2^t (~)1.7.0^t (~)1.7.3^t (~)1.7.4^t (~)1.7.8^t (~)1.7.9^t (~)1.7.10^t (~)1.7.11^t (~)1.7.12^t (~)1.7.13^t (~)1.7.14^t (~)1.7.15^t (~)1.7.16^t (~)1.7.17^t (~)1.7.18^t (~)1.7.19-r1^t (~)1.7.20^t (~)1.7.21^t **9999^t {+X (+)alsa capi cups custom-cflags dbus dos (+)fontconfig +gecko gnutls gphoto2 gsm gstreamer jack (+)jpeg lcms ldap +mono mp3 nas ncurses netapi nls odbc openal opencl +opengl osmesa (+)oss +perl pipelight (+)png +prelink pulseaudio +realtime +run-exes samba scanner selinux (+)ssl test +threads +truetype (+)udisks v4l +win32 +win64 xcomposite xinerama (+)xml ABI_MIPS="n32 n64 o32" ABI_PPC="32 64" ABI_X86="(+)32 (+)64 x32" ELIBC="glibc" LINGUAS="ar bg ca cs da de el en en_US eo es fa fi fr he hi hr hu it ja ko lt ml nb_NO nl or pa pl pt_BR pt_PT rm ro ru sk sl sr_RS@cyrillic sr_RS@latin sv te th tr uk wa zh_CN zh_TW"}
Installed versions: 1.7.21^t(13:39:36 06/07/14)(X alsa cups fontconfig gecko gphoto2 gsm jpeg lcms mp3 ncurses nls openal opengl perl pipelight png prelink pulseaudio realtime run-exes scanner ssl threads truetype udisks v4l xinerama xml -capi -custom-cflags -dos -gstreamer -ldap -mono -netapi -odbc -opencl -osmesa -oss -samba -selinux -test -xcomposite ABI_MIPS="-n32 -n64 -o32" ABI_PPC="-32 -64" ABI_X86="32 64 -x32" ELIBC="glibc" LINGUAS="en pt_BR -ar -bg -ca -cs -da -de -el -en_US -eo -es -fa -fi -fr -he -hi -hr -hu -it -ja -ko -lt -ml -nb_NO -nl -or -pa -pl -pt_PT -rm -ro -ru -sk -sl -sr_RS@cyrillic -sr_RS@latin -sv -te -th -tr -uk -wa -zh_CN -zh_TW")
Homepage: http://www.winehq.org/
Description: Free implementation of Windows(tm) on Unix

user $ eix -I pipelight
[I] www-plugins/pipelight
Available versions: (~)0.2.3[1] (~)0.2.6[2] (~)0.2.7.1[2] {adobereader +binary-pluginloader flash foxitpdf grandstream installation-dialogs npactivex roblox shockwave +silverlight static unity3d}
Installed versions: 0.2.7.1[2](21:57:35 10/07/14)(silverlight -adobereader -binary-pluginloader -flash -foxitpdf -grandstream -installation-dialogs -npactivex -roblox -shockwave -static -unity3d)
Homepage: http://fds-team.de/cms/index.html https://launchpad.net/pipelight
Description: A browser plugin which allows one to use windows-only plugins inside Linux browsers.

[1] "sabayon" /var/lib/layman/sabayon
[2] "local_overlay" /usr/local/portage

Now update the dependency-installer script and enable the plug-in:

user $ sudo pipelight-plugin --update # sudo has to be used for this command only.
user $ pipelight-plugin --enable silverlight

Applies to AMD ATI GPUs only: My main laptop has an AMD ATI HD 5850 GPU, and hardware acceleration causes Firefox to hang when the Pipelight plug-in is enabled, so I have to disable hardware acceleration:

user $ cp /usr/share/pipelight/configs/pipelight-silverlight5.1 ~/.config/

Edit the Pipelight configuration file:

user $ nano ~/.config/pipelight-silverlight5.1

In order to force GPU acceleration uncomment the line:
overwriteArg = enableGPUAcceleration=true

In order to disable GPU acceleration (even if your graphic driver is probably supported) uncomment the line:
overwriteArg = enableGPUAcceleration=false

Instead of disabling GPU hardware acceleration in the Pipelight configuration file (pipelight-silverlight5.1), I could have instead done it each time I launch Firefox by entering the following command:

user $ PIPELIGHT_GPUACCELERATION=0 firefox

But I prefer to be able to enter just the following command:

user $ firefox

or to launch Firefox from the as-installed entry for Firefox in the Desktop Environment’s launcher menu.

After launching Firefox for the first time, a series of pop-up windows will show that the Silverlight plug-in is being installed. Once the final pop-up window has closed, install the Firefox extension User Agent Overrider (do not install User Agent Switcher or any other user agent selection extension for Firefox), click on the down-arrow of the User Agent Overrider icon in Firefox and select ‘Windows / Firefox 29’ from the pull-down menu. I also selected ‘Preferences…’ and added another user agent string to the end of the list:

# Custom
Windows / Firefox 15: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:15.0) Gecko/20120427 Firefox/15.0a1

Check that the plug-in is installed correctly

Enter about:plugins in the Firefox Address bar to check which plug-ins are installed, their version and current state.

Use the Pipelight diagnostic page to check the plug-in is working.

Pipelight options

To see what commands the Pipelight plug-in supports, enter the following command in a Konsole/Terminal window:

user $ pipelight-plugin --help

Further information

Below are some links to Silverlight tests and other information regarding Pipelight and Silverlight.

Silverlight test pages

Silverlight Version Test

Bubblemark animation test

Silverlight Project Test Page | Deep Zoom

Silverlight DRM Test (Select ‘No DRM’ because the following bug report says that the Silverlight DRM test at the aforementioned Web page is broken and Microsoft will not fix it: Bug 762056.)

Becky’s Silverlight Test Site

Microsoft Silverlight – IIS Smooth Streaming Demo

Experience IIS Smooth Streaming

Silverlight Project Test Page | Deep Zoom Tag Browser

Microsoft Case Studies

Silverlight Demos

Here is an article on Netflix’s intention to dump the awful Silverlight plug-in:
Netflix to dump Silverlight, Microsoft’s stalled technology

Background information on the Pipelight project

This presentation was made by the Pipelight developers:
Pipelight – Windows browser plugins on Linux

Useful pages on the Pipelight Web site

Pipelight | News

This page, about selecting a User Agent String that will work, is important to read if you’re having problems:
Pipelight | Installation – User Agent

Background reading on User Agent Strings

How to Change Your Browser’s User Agent Without Installing Any Extensions

The IE10 User-Agent String

You can find out your current user agent string by using the following link:
What’s My User Agent?

UPDATE (16 February 2017): Pipelight has been discontinued

Michael Müller, the developer of pipelight, posted the following notice in mid December 2016 (see http://pipelight.net/):

Pipelight has been discontinued!
What does this mean?

Pipelight will not suddenly stop working, but you will not receive any further updates. As a result all enabled plugins (e.g. Silverlight/Flash) stay at the same version and do not get any security fixes. This might be a security threat for your system and we therefore recommend to remove Pipelight using the package manager of your distribution.

Alternative to using Pipelight

If you still have trouble viewing Web pages that use Silverlight, you might like to try an alternative approach: use Firefox for Windows and the Silverlight plug-in in WINE. See my previous blog post Installing Firefox for Windows and the Silverlight plug-in in WINE.