LinuxQuestions.org
Help answer threads with 0 replies.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Software
User Name
Password
Linux - Software This forum is for Software issues.
Having a problem installing a new program? Want to know which application is best for the job? Post your question in this forum.

Notices


Reply
  Search this Thread
Old 12-17-2011, 08:12 PM   #1
abrinister
Member
 
Registered: Dec 2010
Location: Boston, MA, USA
Distribution: Arch Linux
Posts: 460

Rep: Reputation: 38
Intel is interfering with fglrx


I have a laptop with a Radeon 6770M graphics card along with an Integrated Intel card from my i7. I am running Arch on this computer. With the Catalyst drivers set up from the catalyst repository, the only problem stopping X from working is the Intel drivers. Xorg is looking for the intel driver instead of the fglrx driver.

Output from startx:

Code:
Using config file: "/etc/X11/xorg.conf"
Using config directory: "/etc/X11/xorg.conf.d"
failed to load module: "intel" (module does not exist, 0)
fglrx(0): Invalid BIOS Signature!
fglrx(0): GetBIOSParameter failed
fglrx(0): PreInitAdapter failed
fglrx(0): PreInit failed
Screen(s) found, but none have a usable configuration.
I know that I have loaded the fglrx modules because I edited this script to work with fglrx and intel. Here is my script:

Code:
#!/bin/bash
#
# glselect - switch between intel and fglrx gl libraries
#

newlib="$1"

if [[ "$newlib" = "intel" ]]
then
    ln -sf libGL.so.1.2 /usr/lib/libGL.so
    ln -sf libGL.so.1.2 /usr/lib/libGL.so.1
    ln -sf libglx.xorg /usr/lib/xorg/modules/extensions/libglx.so
elif [[ "$newlib" = "fglrx" ]]
then
    ln -sf /usr/lib64/fglrx/libGL.so.1.2 /usr/lib/libGL.so
    ln -sf /usr/lib64/fglrx/libGL.so.1.2 /usr/lib/libGL.so.1
    ln -sf /usr/lib/xorg/modules/extensions/fglrx/fglrx-libglx.so /usr/lib/xorg/modules/extensions/libglx.so
elif [[ "$newlib" = "show" ]]
then
    if [[ `readlink /usr/lib/libGL.so` = "libGL.so.1.2" ]]
    then
        echo "intel"
    elif [[ `readlink /usr/lib/libGL.so` = "/usr/lib64/fglrx/libGL.so.1.2" ]]
    then
        echo "fglrx"
    else
        echo "You have not setup symlinks yet."
        exit 1
    fi
else
    echo "Usage: glselect [ intel | fglrx | show ]"
fi

exit
I also modified the switchlibGL and switchlibglx files accordingly. With the symlinks being right, and PowerXpress changing the configuration to fglrx, and loading the module, startx should have worked. But the intel driver gets in the way. Xorg is still looking for an intel driver, and after blacklisting and modesetting it, it still will not work. Any help appreciated.

P.S: Arch does not allow the intel driver to be installed at the same time as the catalyst driver

Alex
 
Old 12-18-2011, 03:07 PM   #2
jschiwal
LQ Guru
 
Registered: Aug 2001
Location: Fargo, ND
Distribution: SuSE AMD64
Posts: 15,733

Rep: Reputation: 682Reputation: 682Reputation: 682Reputation: 682Reputation: 682Reputation: 682
Do you have BusID in the devices section?

Can you disable onboard video in BIOS?
 
Old 12-18-2011, 08:20 PM   #3
abrinister
Member
 
Registered: Dec 2010
Location: Boston, MA, USA
Distribution: Arch Linux
Posts: 460

Original Poster
Rep: Reputation: 38
Yes, BusID for the ATI card is 1:0:0 and is listed in xorg.conf as "PCI1:0:0". BIOS setting is there for nothing. It does not affect Linux in any shape or form. It only applies to Switchable Graphics mode for ATI/Intel cards. This mode allows for seamless switching of graphics cards based on application needs. I am not interested in using this and it only works on Windoze anyway.

Alex

**EDIT**

In /var/log/Xorg.0.log (log file for X server), I found a line that said the following:

Quote:
(--) Chipset supported AMD Graphics Processor (0x6740) found
(II) fglrx: intel VGA device detected, load intel driver
(II) LoadModule: "intel"
(WW) Warning: Couldn't open module "intel"
Catalyst is trying to load an Intel driver for an Intel card while acknowledging the AMD card...

**EDIT**

This is probably an Arch-specific problem involving dependency issues in pacman between catalyst* and xf86-video-intel. The reason it works in my Fedora is because xserver-xorg-drv-intel (Fedora package) does not interfere with the catalyst stuff. The easiest way to solve this in Arch is to **NOT** install from the repository but from the binary blob AMD provides. This way, there is no going through dependency hell in pacman. After I installed the binaries and symlinked many, many libraries from /usr/lib64 to /usr/lib, I was presented with yet another problem. Now, I get a Xorg backtrace, looking like this:
Quote:
Backtrace:
[ 386.439] 0: /usr/bin/X (xorg_backtrace+0x26) [0x566a86]
[ 386.439] 1: /usr/bin/X (0x400000+0x16a6e9) [0x56a6e9]
[ 386.439] 2: /lib/libpthread.so.0 (0x7f88eeed7000+0xf850) [0x7f88eeee6850]
[ 386.439] 3: /usr/lib/xorg/modules/drivers/intel_drv.so (0x7f88eaee9000+0xf5b2) [0x7f88eaef85b2]
[ 386.439] 4: /usr/lib/xorg/modules/drivers/fglrx_drv.so (xdl_xs111_atiddxPxPreInit+0x119) [0x7f88eb746e19]
[ 386.439] 5: /usr/lib/xorg/modules/drivers/fglrx_drv.so (xdl_xs111_atiddxPreInit+0x2089) [0x7f88eb71c3a9]
[ 386.439] 6: /usr/bin/X (InitOutput+0x834) [0x470904]
[ 386.439] 7: /usr/bin/X (0x400000+0x22d1d) [0x422d1d]
[ 386.439] 8: /lib/libc.so.6 (__libc_start_main+0xed) [0x7f88ede1c14d]
[ 386.439] 9: /usr/bin/X (0x400000+0x231dd) [0x4231dd]
[ 386.439] Segmentation fault at address (nil)
[ 386.439]
Fatal server error:
[ 386.439] Caught signal 11 (Segmentation fault). Server aborting
(from /var/log/Xorg.0.log)

Hope this helps!

Alex

Last edited by abrinister; 12-18-2011 at 10:00 PM.
 
Old 12-19-2011, 05:55 AM   #4
jschiwal
LQ Guru
 
Registered: Aug 2001
Location: Fargo, ND
Distribution: SuSE AMD64
Posts: 15,733

Rep: Reputation: 682Reputation: 682Reputation: 682Reputation: 682Reputation: 682Reputation: 682
Symlinking a 64 bit library as a 32 bit library does not sound like a good idea. I am surprised they loaded.

The BusID entry can prevent Xorg from getting the two devices mixed up. It is even recommended for dual head cards.

Last edited by jschiwal; 12-19-2011 at 05:58 AM.
 
Old 12-19-2011, 02:51 PM   #5
abrinister
Member
 
Registered: Dec 2010
Location: Boston, MA, USA
Distribution: Arch Linux
Posts: 460

Original Poster
Rep: Reputation: 38
The BusID of the ATI card (from lspci) is:

Code:
lspci | grep VGA

00:02.0 VGA compatible controller: Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller (rev 09)
01:00.0 VGA compatible controller: ATI Technologies Inc Whistler XT [AMD Radeon HD 6700M Series]
/etc/X11/xorg.conf says (in the Device section):

BusID "PCI:01:00:0"

If I change this to the correct version from lspci (01:00.0), X tells me that the device could not be found.

I looked at my Fedora xorg.conf and copied the exact same thing into my Arch xorg.conf:

Code:
Section "ServerLayout"
	Identifier     "aticonfig Layout"
	Screen      0  "aticonfig-Screen[0]-0" 0 0
	Screen         "aticonfig-Screen[0]-1" RightOf "aticonfig-Screen[0]-0"
EndSection

Section "Module"
EndSection

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

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

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

Section "Device"
	Identifier  "aticonfig-Device[0]-1"
	Driver      "fglrx"
	Option      "EnableRandR12" "False"
	BusID       "PCI:1:0:0"
	Screen      1
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 "Screen"
	Identifier "aticonfig-Screen[0]-1"
	Device     "aticonfig-Device[0]-1"
	Monitor    "aticonfig-Monitor[0]-1"
	DefaultDepth     24
	SubSection "Display"
		Viewport   0 0
		Depth     24
	EndSubSection
EndSection

It again gives me the backtrace error.

**EDIT**

The fglrx libs in /usr/lib are not 32-bit. They are 64-bit. It's just that Arch is weird and looks for libs in /usr/lib for 64-bit stuff. There is an explicit lib32 folder with 32-bit stuff.

Alex

Last edited by abrinister; 12-19-2011 at 07:52 PM.
 
Old 12-24-2011, 11:33 AM   #6
abrinister
Member
 
Registered: Dec 2010
Location: Boston, MA, USA
Distribution: Arch Linux
Posts: 460

Original Poster
Rep: Reputation: 38
New Development:

I got rid of Arch and installed Fedora 16. I installed the ATI drivers on Fedora 16 and on reboot, X gave me the backtrace error. HOWEVER, when I installed Fedora 14 over again (boot partition deleted by accident), on reboot after fglrx installed, it booted. I did the same exact thing on both. This leads me to believe that this problem is related to the 3.1.5 kernel series, which Fedora 16 and Arch use. Will try to compile older kernel and will report results.

Alex
 
Old 12-26-2011, 02:59 PM   #7
jschiwal
LQ Guru
 
Registered: Aug 2001
Location: Fargo, ND
Distribution: SuSE AMD64
Posts: 15,733

Rep: Reputation: 682Reputation: 682Reputation: 682Reputation: 682Reputation: 682Reputation: 682
Thanks for letting me know about how arch does libraries. I suppose the logic is that on a 64 bit distro, 32 bit libraries are the exception. When we get to 128 bit, and have a tri-arch chip, maybe we will have /lib32, /lib64, /lib128!
 
Old 12-26-2011, 04:36 PM   #8
abrinister
Member
 
Registered: Dec 2010
Location: Boston, MA, USA
Distribution: Arch Linux
Posts: 460

Original Poster
Rep: Reputation: 38
No problem! I'm now seeing if Ubuntu 11.10 freaks out with fglrx. If it does, I will def go with an older, 2.6.39 (?) kernel to see if it is a 3.0 problem.

Alex
 
Old 05-10-2012, 06:40 PM   #9
abrinister
Member
 
Registered: Dec 2010
Location: Boston, MA, USA
Distribution: Arch Linux
Posts: 460

Original Poster
Rep: Reputation: 38
I actually managed to solve this problem by removing the binary drivers from the AMD website (actually, I had to reinstall because I somehow broke libkmod). I installed the ones from the [catalyst] repository, installed xorg-server and friends from [xorg111], and copied /usr/lib/fglrx to /usr/lib64/fglrx. I also had to changed the xorg-server-1.12 PKGBUILD to ignore some of its dependencies so that it would actually build. One of the chief annoying ones was libgl (which conflicts with catalyst anything). Also, I had to change the switchlibGL script:

Quote:
#!/bin/bash
# switchlibGL
#
# Copyright (c) 2011 Advanced Micro Devices, Inc.
#
# Purpose:
# For switch between AMD and Intel graphic driver library.
#
# Usage:
# switchlibGL amd|intel|query
# amd: switches to the AMD version of libGL.
# intel: switches to the open-source version of libGL .
# query: checks, which version is currently active and prints either "amd"
# or "intel" or "unknown" on the standard output.
# must be root to execute this script

ARCH=`uname -m`
E_ERR=1

# Check if root
if [ "`whoami`" != "root" ]; then
echo "Must be root to run this script." 1>&2
exit $E_ERR
fi

# One parameter
if [ $# -ne 1 ]; then
echo "Usage: `basename $0` amd|intel|query " 1>&2
echo "Please choose one parameter " 1>&2
exit $E_ERR
fi


# Switch to right mode
case "$1" in
"amd" )
glselect amd
;;
"intel" )
glselect intel
;;
"query" )
current=`glselect show`
case "$current" in
"amd" )
echo "amd"
;;
"intel" )
echo "intel"
;;
esac
;;
* ) echo "Usage: `basename $0` amd|intel|query" 1>&2; exit $E_ERR;;
# other than amd|intel|query parameter report an error
esac

# A zero return value from the script upon exit indicates success.
exit 0
Also had to change the glselect script accordingly:

Quote:
#!/bin/bash
#
# glselect - switch between intel and fglrx gl libraries
#

newlib="$1"

if [[ "$newlib" = "intel" ]]
then
ln -sf libGL.so.1.2 /usr/lib/libGL.so
ln -sf libGL.so.1.2 /usr/lib/libGL.so.1
ln -sf libglx.xorg /usr/lib/xorg/modules/extensions/libglx.so
elif [[ "$newlib" = "amd" ]]
then
ln -sf /usr/lib64/fglrx/libGL.so.1.2 /usr/lib/libGL.so
ln -sf /usr/lib64/fglrx/libGL.so.1.2 /usr/lib/libGL.so.1
ln -sf /usr/lib/xorg/modules/extensions/fglrx/fglrx-libglx.so /usr/lib/xorg/modules/extensions/libglx.so
elif [[ "$newlib" = "show" ]]
then
if [[ `readlink /usr/lib/libGL.so` = "libGL.so.1.2" ]]
then
echo "intel"
elif [[ `readlink /usr/lib/libGL.so` = "/usr/lib64/fglrx/libGL.so.1.2" ]]
then
echo "amd"
else
echo "You have not setup symlinks yet."
exit 1
fi
else
echo "Usage: glselect [ intel | amd | show ]"
fi

exit
Finally, I had to copy switchlibGL to switchlibglx in the same directory (/usr/lib64/fglrx). It is supposed to be the same file because they do the same things.

Alex Brinister
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
ATI driver, fglrx - FATAL: Error inserting fglrx hubabuba Slackware 4 04-18-2009 01:27 PM
12.2 fglrx success ati radeon hd 4350 and Intel P45 acummings Slackware 4 02-09-2009 09:43 AM
Steam Interfering with other programs Toxophilite Linux - Games 6 04-20-2008 01:19 PM
Bind9 is interfering with samba rbees Linux - Server 34 01-17-2008 04:10 PM
Fglrx console=>X changing problem and fglrx resume zbychdm Linux - Hardware 2 09-21-2004 12:58 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Software

All times are GMT -5. The time now is 04:53 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration