<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fiouz</id>
	<title>ThinkWiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://www.thinkwiki.org/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Fiouz"/>
	<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/wiki/Special:Contributions/Fiouz"/>
	<updated>2026-05-16T20:53:10Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.31.12</generator>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=How_to_setup_Bluetooth&amp;diff=42140</id>
		<title>How to setup Bluetooth</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=How_to_setup_Bluetooth&amp;diff=42140"/>
		<updated>2009-03-14T11:31:25Z</updated>

		<summary type="html">&lt;p&gt;Fiouz: /* Enabling Bluetooth */ Added rfkill switch script&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{| width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|style=&amp;quot;vertical-align:top;padding-right:20px;width:10px;white-space:nowrap;&amp;quot; | __TOC__&lt;br /&gt;
|style=&amp;quot;vertical-align:top&amp;quot; |&lt;br /&gt;
&amp;lt;div style=&amp;quot;margin: 0; margin-right:10px; border: 1px solid #dfdfdf; padding: 0em 1em 1em 1em; background-color:#efefef; align:right;&amp;quot;&amp;gt;&lt;br /&gt;
This HOWTO tells you how to install and configure Bluetooth on your Linux driven ThinkPad and how to make the most common Bluetooth applications (like connecting your mobile phone etc.) work.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Enabling Bluetooth==&lt;br /&gt;
If Bluetooth is disabled and you have the [[thinkpad-acpi]] kernel module loaded you can enable bluetooth by entering:&lt;br /&gt;
:{{cmdroot|echo 1 &amp;gt; /sys/devices/platform/thinkpad_acpi/bluetooth_enable}}&lt;br /&gt;
or to disable&lt;br /&gt;
:{{cmdroot|echo 0 &amp;gt; /sys/devices/platform/thinkpad_acpi/bluetooth_enable}}&lt;br /&gt;
&lt;br /&gt;
You might also be able to toggle bluetooth using Fn+F5.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== rfkill interface ===&lt;br /&gt;
&lt;br /&gt;
For some reason, {{key|Fn}}{{key|F5}} does not work on my 2.6.27 kernel (may be due to rfkill addition in thinkpad-acpi), here is a Bash script I use to switch Bluetooth status using the standard rfkill interface:&lt;br /&gt;
&amp;lt;bash&amp;gt;#!/bin/bash&lt;br /&gt;
&lt;br /&gt;
NAME=&amp;quot;tpacpi_bluetooth_sw&amp;quot;&lt;br /&gt;
&lt;br /&gt;
find_by_name() {&lt;br /&gt;
        NAME=&amp;quot;$1&amp;quot;&lt;br /&gt;
        test -z &amp;quot;${NAME}&amp;quot; &amp;amp;&amp;amp; return 1&lt;br /&gt;
        SYSFS_NAME=$(find -P /sys -name name -path &amp;quot;*/rfkill/*&amp;quot; -exec grep -l &amp;quot;${NAME}&amp;quot; \{\} + | head -n 1)&lt;br /&gt;
        if [[ ! -z &amp;quot;${SYSFS_NAME}&amp;quot; &amp;amp;&amp;amp; -r &amp;quot;${SYSFS_NAME/%name/state}&amp;quot; ]]; then&lt;br /&gt;
                RESULT=${SYSFS_NAME%%/name}&lt;br /&gt;
                echo $RESULT&lt;br /&gt;
                return 0&lt;br /&gt;
        fi&lt;br /&gt;
        return 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
SYSFS=&amp;quot;$(find_by_name &amp;quot;${NAME}&amp;quot;)&amp;quot;&lt;br /&gt;
&lt;br /&gt;
if [[ ! -z &amp;quot;${SYSFS}&amp;quot; &amp;amp;&amp;amp; -r &amp;quot;${SYSFS}/state&amp;quot; ]]; then&lt;br /&gt;
        case &amp;quot;$(cat &amp;quot;${SYSFS}/state&amp;quot;)&amp;quot; in&lt;br /&gt;
                0)&lt;br /&gt;
                        echo 1 &amp;gt; &amp;quot;${SYSFS}/state&amp;quot;&lt;br /&gt;
                        ;;&lt;br /&gt;
                1)&lt;br /&gt;
                        echo 0 &amp;gt; &amp;quot;${SYSFS}/state&amp;quot;&lt;br /&gt;
                        ;;&lt;br /&gt;
        esac&lt;br /&gt;
fi&amp;lt;/bash&amp;gt;&lt;br /&gt;
&lt;br /&gt;
It is triggered by the following acpid rule:&lt;br /&gt;
 event=ibm/hotkey HKEY 00000080 00001005&lt;br /&gt;
 action=/path/to/script.sh&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Add the following kernel parameter (when builtin) to prevent Bluetooth from being enabled at boot time:&lt;br /&gt;
 rfkill.default_state=0&lt;br /&gt;
&lt;br /&gt;
==Configuring the kernel==&lt;br /&gt;
Since the Bluetooth card is connected to the USB subsystem, you will need to enable USB support in your kernel:&lt;br /&gt;
:{{kernelconf|CONFIG_USB|&amp;lt;M&amp;gt;|Support for Host-side USB|USB support|Device Drivers||}}&lt;br /&gt;
:{{kernelconf|CONFIG_USB_DEVICEFS|[*]|USB device file system|USB support|Device Drivers||}}&lt;br /&gt;
&lt;br /&gt;
Choose an appropriate USB host driver, one of: &lt;br /&gt;
:{{kernelconf|CONFIG_USB_EHCI_HCD|&amp;lt;M&amp;gt;|EHCI HCD (USB 2.0) support|USB support|Device Drivers||}}&lt;br /&gt;
:{{kernelconf|CONFIG_USB_UHCI|&amp;lt;M&amp;gt;|UHCI HCD support|USB support|Device Drivers||}}&lt;br /&gt;
:{{kernelconf|CONFIG_USB_OHCI|&amp;lt;M&amp;gt;|OHCI HCD support|USB support|Device Drivers||}}&lt;br /&gt;
&lt;br /&gt;
Enable Bluetooth subsystem and drivers:&lt;br /&gt;
:{{kernelconf|CONFIG_BT|&amp;lt;*&amp;gt;|Bluetooth subsystem support|Networking|||}}&lt;br /&gt;
:{{kernelconf|CONFIG_BT_L2CAP|&amp;lt;*&amp;gt;|L2CAP protocol support|Bluetooth subsystem support|Networking||}}&lt;br /&gt;
:{{kernelconf|CONFIG_BT_SCO|&amp;lt;*&amp;gt;|SCO links support|Bluetooth subsystem support|Networking||}}&lt;br /&gt;
:{{kernelconf|CONFIG_BT_RFCOMM|&amp;lt;*&amp;gt;|RFCOMM protocol support|Bluetooth subsystem support|Networking||}}&lt;br /&gt;
:{{kernelconf|CONFIG_BT_RFCOMM_TTY|[*]|RFCOMM TTY support|Bluetooth subsystem support|Networking||}}&lt;br /&gt;
:{{kernelconf|CONFIG_BT_BNEP|&amp;lt;*&amp;gt;|BNEP protocol support|Bluetooth subsystem support|Networking||}}&lt;br /&gt;
:{{kernelconf|CONFIG_BT_HID|&amp;lt;*&amp;gt;|HID protocol support|Bluetooth subsystem support|Networking||}}&lt;br /&gt;
:{{kernelconf|CONFIG_BT_HCIUSB|&amp;lt;M&amp;gt;|HCI USB driver|Bluetooth device drivers|Bluetooth subsystem support|Networking|}}&lt;br /&gt;
:{{kernelconf|CONFIG_BT_HCIUSB_SCO|[*]|SCO (voice) support|Bluetooth device drivers|Bluetooth subsystem support|Networking|}}&lt;br /&gt;
&lt;br /&gt;
Make sure that the according modules are loaded:&lt;br /&gt;
:{{cmdroot|modprobe uhci_hcd ; modprobe ehci_hcd ; modprobe hci_usb}}&lt;br /&gt;
&lt;br /&gt;
==Serial connection over Bluetooth==&lt;br /&gt;
One common application is to connect your mobile phone and use it as a modem to connect to the internet via GPRS or 3G (UMTS). A lot of phones do this through using AT-commands on a serial over Bluetooth connection.&lt;br /&gt;
&lt;br /&gt;
By configuring {{path|/etc/bluetooth/rfcomm.conf}} correctly, you'll get a device {{path|/dev/rfcomm0}}.&lt;br /&gt;
&lt;br /&gt;
Eventually one could use the command:&lt;br /&gt;
:{{cmdroot|rfcomm bind 0 00:15:A0:7A:90:F2 3}}&lt;br /&gt;
&lt;br /&gt;
The hardware address should be replaced with that of your phone. If you don't know the hardware address of your phone yet, you can get it by running:&lt;br /&gt;
:{{cmdroot|hcitool scan}}&lt;br /&gt;
&lt;br /&gt;
The last parameter ('3') is the channel to use. I spent quite some time fighting before I found out of that one; I didn't find it documented anywhere, but by running&lt;br /&gt;
:{{cmdroot|sdptool records 00:15:A0:7A:90:F2}}&lt;br /&gt;
I found channel 3 to be the right one for my phone.  You will have to experiment to find the right one for your phone setup; for T-Mobile GSM/GPRS carrier in USA this is channel 1.&lt;br /&gt;
{{NOTE|By experimenting, the bluetooth stack on the cellphone may crash. Reboot it if that happens.}}&lt;br /&gt;
&lt;br /&gt;
Alternativly one could use the following to find the right channel:&lt;br /&gt;
:{{cmdroot|sdptool search DUN}}&lt;br /&gt;
&lt;br /&gt;
 Inquiring ...&lt;br /&gt;
 Searching for DUN on 00:11:22:33:44:55 ...&lt;br /&gt;
 Service Name: Dial-up Networking&lt;br /&gt;
 Service RecHandle: 0x10001&lt;br /&gt;
 Service Class ID List:&lt;br /&gt;
   &amp;quot;Dialup Networking&amp;quot; (0x1103)&lt;br /&gt;
   &amp;quot;Generic Networking&amp;quot; (0x1201)&lt;br /&gt;
 Protocol Descriptor List:&lt;br /&gt;
   &amp;quot;L2CAP&amp;quot; (0x0100)&lt;br /&gt;
   &amp;quot;RFCOMM&amp;quot; (0x0003)&lt;br /&gt;
     Channel: 4&lt;br /&gt;
&lt;br /&gt;
Now {{path|/dev/rfcomm0}} exists.&lt;br /&gt;
&lt;br /&gt;
At this point you can use an automatic dialing utility such as wvdial, editing the config file to point to the modem at {{path|/dev/rfcomm0}}, and everything should work just like a land line!&lt;br /&gt;
&lt;br /&gt;
{{NOTE|If you experience strange disconnects while using wvdial, disable &amp;quot;Carrier Check&amp;quot; in your wvdial configuration.}}&lt;br /&gt;
&lt;br /&gt;
You may directly access the modem (i.e. by using minicom:)&lt;br /&gt;
:{{cmduser|minicom -s}}&lt;br /&gt;
set the serial device to be {{path|/dev/rfcomm0}}, choose 'exit' and then the AT-commands can be typed in.&lt;br /&gt;
With my operator (Telenor, Norway) it seemed simple enough, I just entered &lt;br /&gt;
:ATDT *99#&lt;br /&gt;
and lots of cryptic letters started dancing across the screen, indicating a ppp session startup.&lt;br /&gt;
&lt;br /&gt;
To configure pppd create {{path|/etc/ppp/peers/nokia}} with particularly those lines:&lt;br /&gt;
 /dev/rfcomm0&lt;br /&gt;
 connect '/usr/sbin/chat -v -f /etc/ppp/chat-nokia'&lt;br /&gt;
 debug&lt;br /&gt;
 10.0.1.3&lt;br /&gt;
 crtscts&lt;br /&gt;
 noipdefault&lt;br /&gt;
 ipcp-accept-local&lt;br /&gt;
 defaultroute&lt;br /&gt;
 novj&lt;br /&gt;
 nobsdcomp&lt;br /&gt;
 novjccomp&lt;br /&gt;
 nopcomp&lt;br /&gt;
 noaccomp&lt;br /&gt;
 usepeerdns&lt;br /&gt;
&lt;br /&gt;
Furthermore, you need a simple chat script. Create {{path|/etc/ppp/chat-nokia}}:&lt;br /&gt;
 'TIMEOUT' '5'&lt;br /&gt;
 'ABORT' 'BUSY'&lt;br /&gt;
 'ABORT' 'ERROR'&lt;br /&gt;
 'ABORT' 'NO ANSWER'&lt;br /&gt;
 'ABORT' 'NO CARRIER'&lt;br /&gt;
 'ABORT' 'NO DIALTONE'&lt;br /&gt;
 'ABORT' 'Invalid Login'&lt;br /&gt;
 'ABORT' 'Login incorrect'&lt;br /&gt;
 '' 'ATZ'&lt;br /&gt;
 'OK' 'ATDT*99#'&lt;br /&gt;
 '~--' ''&lt;br /&gt;
&lt;br /&gt;
Here's a script that works for Cingular's network:&lt;br /&gt;
 TIMEOUT 35&lt;br /&gt;
 ECHO    ON&lt;br /&gt;
 ABORT   '\nBUSY\r'&lt;br /&gt;
 ABORT   '\nERROR\r'&lt;br /&gt;
 ABORT   '\nNO ANSWER\r'&lt;br /&gt;
 ABORT   '\nNO CARRIER\r'&lt;br /&gt;
 ABORT   '\nNO DIALTONE\r'&lt;br /&gt;
 ABORT   '\nRINGING\r\n\r\nRINGING\r'&lt;br /&gt;
 ''      \rAT&lt;br /&gt;
 OK      'AT+CGDCONT=1,&amp;quot;IP&amp;quot;,&amp;quot;WAP.CINGULAR&amp;quot;'&lt;br /&gt;
 OK      ATD*99***1#&lt;br /&gt;
 CONNECT &amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
See more [https://help.ubuntu.com/community/BluetoothDialup#preview here]&lt;br /&gt;
&lt;br /&gt;
Run pppd with:&lt;br /&gt;
:{{cmduser|pppd call nokia}}&lt;br /&gt;
This should establish the internet connection.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|Different network operators may require different call strings. For many carriers (including T-Mobile USA) &amp;quot;*99#&amp;quot; works without additional parameters.}}&lt;br /&gt;
&lt;br /&gt;
For editing phonebook / ringtones / etc., the gammu utils (http://www.gamu.net) has been reported to work well, but this appears to be primarily for Nokia phones.&lt;br /&gt;
&lt;br /&gt;
==File Transfer==&lt;br /&gt;
File transfers are accomplished through OBEX transfer, which I believe is basically an FTP over bluetooth connection.  Once you have bonded with your phone (yes, I know you love your sexy RAZR, but here I mean paired it with your laptop via bluetooth), you can easily use &amp;quot;obexftp&amp;quot; to transfer files.  As an example,&lt;br /&gt;
&lt;br /&gt;
:obexftp -b 00:01:02:03:04:05 -l&lt;br /&gt;
&lt;br /&gt;
will list the root directory of the phone with bluetooth address 00:01:02:03:04:05.  Refer to the man page for more of the unique commands.  What a wonderful interface!  Unfortunately there doesn't seem to be a way to get a standard 'ftp' session using familiar commands (e.g. 'mget').&lt;br /&gt;
&lt;br /&gt;
For a more user-friendly experience, you can use the kde tools, just launch&lt;br /&gt;
:kbtobexclient&lt;br /&gt;
&lt;br /&gt;
for a file browser.  In the Location: option put&lt;br /&gt;
:obex://[00:01:02:03:04:05]&lt;br /&gt;
&lt;br /&gt;
to list the files.  Note that the brackets *are* necessary.  From there, you can list directories easily and batch download files.&lt;br /&gt;
&lt;br /&gt;
==Mount a phone as a directory==&lt;br /&gt;
You can also mount a phone as a standard directory using obexfs and the FUSE (file system in userspace) utilities.&lt;br /&gt;
&lt;br /&gt;
{{NOTE|The ibm bluetooth card can work like an usb-dongle. You don't need the bcm203x module.}}&lt;br /&gt;
&lt;br /&gt;
Configure your kernel as outlined above.&lt;br /&gt;
&lt;br /&gt;
* Install the required packages&lt;br /&gt;
To mount the filesystem we need the fuse program. FuseFS is also implemented in the kernel, but for some reason it only works with 2.6.18.  If you run 2.6.17 or earlier, please download it and build the module according to your distro.&lt;br /&gt;
&lt;br /&gt;
* Emerge or apt-get bluez-utils and obexfs. This should pull other required packages (bluez-libs, openobex, obexftp, sys-fs/fuse) as dependencies.&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|emerge bluez-utils obexfs}}&lt;br /&gt;
&lt;br /&gt;
* Modify /etc/bluetooth/hcid.conf if you haven't already.  It can be done as above, or use the following:&lt;br /&gt;
 options {&lt;br /&gt;
 autoinit yes&amp;quot;&lt;br /&gt;
 security user&lt;br /&gt;
 pairing multi&lt;br /&gt;
 pin_helper /usr/bin/bluepin&lt;br /&gt;
 }&lt;br /&gt;
 device {&lt;br /&gt;
 name testname&lt;br /&gt;
 class 0x3e0100&lt;br /&gt;
 iscan enable&lt;br /&gt;
 pscan enable&lt;br /&gt;
 lm accept&lt;br /&gt;
 lp rswitch,hold,sniff,park &lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* load the modules:&lt;br /&gt;
:{{cmdroot|modprobe fuse}}&lt;br /&gt;
:{{cmdroot|modprobe bluetooth}}&lt;br /&gt;
:{{cmdroot|modprobe ehci-hcd}}&lt;br /&gt;
:{{cmdroot|modprobe uhci-hcd}}&lt;br /&gt;
:{{cmdroot|modprobe hci_usb}}&lt;br /&gt;
:{{cmdroot|modprobe l2cap}}&lt;br /&gt;
:{{cmdroot|modprobe rfcomm}}&lt;br /&gt;
&lt;br /&gt;
* activate your bluetooth (show howto ibm-acpi for more details) by using fn+f5 or:&lt;br /&gt;
:{{cmdroot|echo enable &amp;gt;/proc/acpi/ibm/bluetooth}}&lt;br /&gt;
&lt;br /&gt;
* start the bluetooth device:&lt;br /&gt;
:{{cmdroot|/etc/init.d/bluetooth start}}&lt;br /&gt;
&lt;br /&gt;
* turn on bluetooth of your mobile phone (visible mode) and get the mac-address of your phone using hcitool.&lt;br /&gt;
:{{cmdroot|hcitool scan}}&lt;br /&gt;
&lt;br /&gt;
=== For non symbian mobile phones ===&lt;br /&gt;
&lt;br /&gt;
* mount your phone - don't forget to umount it when you're finished&lt;br /&gt;
:{{cmdroot|mkdir /mnt/phone}}&lt;br /&gt;
:{{cmdroot|mount -t fuse &amp;quot;obexfs#-b00:16:20:32:25:3C -B6&amp;quot; /mnt/phone}}&lt;br /&gt;
''use your mac-address instead of my 00:16:20:32:25:3C and don't forget the -b option in front of the mac''&lt;br /&gt;
&lt;br /&gt;
Works perfectly with IBM T43p, X41, sony ericsson k750i, nokia 6280, samsung z400, sony ericsson k700i.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=== Mounting Symbian Phones ===&lt;br /&gt;
&lt;br /&gt;
* You need network file system support in your kernel&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|cd /usr/src/linux}}&lt;br /&gt;
:{{cmdroot|make menuconfig}}&lt;br /&gt;
&lt;br /&gt;
:{{kernelconf|NFS_FS|&amp;lt;M&amp;gt;|NFS file system support|Network File Systems|File Systems|||}}&lt;br /&gt;
:{{kernelconf|NFS_V3|&amp;lt;M&amp;gt;|Provide NFSv3 client support|Network File Systems|File Systems|||}}&lt;br /&gt;
&lt;br /&gt;
:{{kernelconf|NFSD|&amp;lt;M&amp;gt;|NFS server support|Network File Systems|File Systems|||}}&lt;br /&gt;
:{{kernelconf|NFSD_V3|&amp;lt;*&amp;gt;|Provide NFSv3 server support|Network File Systems|File Systems|||}}&lt;br /&gt;
:{{kernelconf|NFSD_TCP|&amp;lt;*&amp;gt;|Provide NFS server over TCP support|Network File Systems|File Systems|||}}&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|make &amp;amp;&amp;amp; make modules_install}}&lt;br /&gt;
&lt;br /&gt;
* Install required programs&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|emerge -av p3nfs}}&lt;br /&gt;
&lt;br /&gt;
* Modify your /etc/bluetooth/rfcomm.conf&lt;br /&gt;
&lt;br /&gt;
 rfcomm0 {&lt;br /&gt;
 bind yes;&lt;br /&gt;
 device 00:0F:DE:8C:E6:94;&lt;br /&gt;
 channel 13;&lt;br /&gt;
 comment &amp;quot;symbian connection&amp;quot;&lt;br /&gt;
 }&lt;br /&gt;
&lt;br /&gt;
* restart your bluetooth device, load kernel modules and start portmap (required for p3nfs)&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|/etc/init.d/bluetooth restart}}&lt;br /&gt;
:{{cmdroot|modprobe nfs}}&lt;br /&gt;
:{{cmdroot|modprobe nfsd}}&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|/etc/init.d/portmap start}}&lt;br /&gt;
&lt;br /&gt;
* get the application for your mobile phone [http://www.koeniglich.de/p3nfs.html here]&lt;br /&gt;
&lt;br /&gt;
* start bt at your mobile phone, send application to mobilephone, install and launch the nfsapp with bluetooth at channel 13 (default)&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|obexftp -b  00:0F:DE:8C:E6:94 -p /home/tava/ablage/nfsapp*}}&lt;br /&gt;
&lt;br /&gt;
* mount your mobile phone:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|p3nfsd -UIQ -tty /dev/rfcomm0 -dir /mnt/bluetooth}} (-UIQ is only for UIQ-Phones, type p3nfsd --help and get informations for your phone)&lt;br /&gt;
&lt;br /&gt;
* if doesn't work, make sure rfcomm0 is clean&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|rfcomm}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&lt;br /&gt;
===Building from source===&lt;br /&gt;
Get the source packages from [http://www.bluez.org www.bluez.org].&lt;br /&gt;
&lt;br /&gt;
Build each of them with the usual steps:&lt;br /&gt;
:{{cmduser|./configure &amp;amp;&amp;amp; make}}&lt;br /&gt;
:{{cmdroot|make install}}&lt;br /&gt;
&lt;br /&gt;
===Gentoo ebuilds===&lt;br /&gt;
Under {{Gentoo}}, install the following ebuilds:&lt;br /&gt;
*net-wireless/bluez-bluefw&lt;br /&gt;
*net-wireless/bluez-firmware&lt;br /&gt;
*net-wireless/bluez-hcidump&lt;br /&gt;
*net-wireless/bluez-hciemu&lt;br /&gt;
*net-wireless/bluez-libs&lt;br /&gt;
*net-wireless/bluez-utils&lt;br /&gt;
&lt;br /&gt;
{{NOTE|net-wireless/bluez-kernel is not needed, since the current version is included in your kernel.}}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Other distributions===&lt;br /&gt;
You will find packages for {{Debian}}, {{Redhat}} and {{Slackware}} on the [http://www.bluez.org/packages.html packages page] of the BlueZ project.&lt;br /&gt;
&lt;br /&gt;
Bluez packages are included in Debian Sid (bluez-utils, and non-free package bluez-firmware).&lt;br /&gt;
&lt;br /&gt;
==Troubleshooting==&lt;br /&gt;
If you cant get hci0 up with a /etc/init.d/bluetooth restart (or similar) then you might want to try a&lt;br /&gt;
:{{cmdroot|hciconfig hci0 down &amp;amp;&amp;amp; hciconfig hci0 up}} &lt;br /&gt;
(solved the problem on a X60s and T60 (debian/testing))&lt;br /&gt;
&lt;br /&gt;
==External Links==&lt;br /&gt;
*[http://www.holtmann.org/linux/bluetooth/ Bluetooth and Linux]: Marcel Holtmann's list of bluetooth HOWTOs.&lt;br /&gt;
*http://gagravarr.org/series-60/&lt;br /&gt;
*http://koti.kapsi.fi/mcfrisk/linux_gprs.html&lt;br /&gt;
*[http://www.gentoo.org/doc/en/bluetooth-guide.xml Guide on how to set up Bluetooth in Gentoo]&lt;br /&gt;
*[http://www.linux.ie/articles/bluetoothheadset.php www.linux.ie:Linux and Bluetooth Headset howto (AKA: Fedora, BTSCO, Bluez, Jabra and Skype)]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:A30]] [[Category:A30p]] [[Category:A31]] [[Category:A31p]] [[Category:R40]] [[Category:R40e]] [[Category:R50]] [[Category:R50p]] [[Category:R51]] [[Category:R52]] [[Category:T30]] [[Category:T40]] [[Category:T40p]] [[Category:T41]] [[Category:T41p]] [[Category:T42]] [[Category:T42p]] [[Category:T43]] [[Category:T43p]] [[Category:T60]]  [[Category:T60p]] [[Category:T61]] [[Category:X23]] [[Category:X24]] [[Category:X30]] [[Category:X31]] [[Category:X32]] [[Category:X40]] [[Category:X41]] [[Category:X41 Tablet]] [[Category:X60]] [[Category:X60s]] [[Category:Z60m]] [[Category:Z60t]]&lt;/div&gt;</summary>
		<author><name>Fiouz</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problems_with_fglrx&amp;diff=20129</id>
		<title>Problems with fglrx</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problems_with_fglrx&amp;diff=20129"/>
		<updated>2006-02-16T16:17:46Z</updated>

		<summary type="html">&lt;p&gt;Fiouz: Report success with T43p / Gentoo / suspend2 2.2 &amp;amp; Suspend-to-RAM / DRI&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page discusses issues with the ATI proprietary [[fglrx]] display driver.&lt;br /&gt;
&lt;br /&gt;
== Known Troubles and Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== X-specific issues ===&lt;br /&gt;
&lt;br /&gt;
ATI proprietary drivers version 8.21.7 and later work with x.org 6.9.&lt;br /&gt;
&lt;br /&gt;
If you are running an older version (8.20.8) under Debian sid and you upgrade your xserver-xorg, apt will force you to remove any debian-packaged fglrx drivers (package fglrx-driver depends on x.org &amp;lt;&amp;lt; 6.8.99).  You can just download the driver from the ATI site and install after modifying the Debian packager script to allow dependencies to be satisfied by x.org 6.9, or just download 8.21.7 and install manually.  See talk page for step-by-step commands.&lt;br /&gt;
&lt;br /&gt;
After installing the fglrx driver, you can use module-assist to build the appropriate kernel module.&lt;br /&gt;
&lt;br /&gt;
=== Kernel-specific troubles ===&lt;br /&gt;
&lt;br /&gt;
Using ATI driver 8.21.7 and earlier with kernel 2.6.15 or later needs a [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 patch].  (see table below for detail.) If you can't compile the driver modules with 2.6.15 or later, you should apply this [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch patch] instead. &lt;br /&gt;
&lt;br /&gt;
If you do not use one of these patches, you may experience peculiar lockups of X.  Try {{cmduser|fglrxinfo}} - if your shell hangs at the end of this command, you may have an issue and should try the patch.&lt;br /&gt;
&lt;br /&gt;
Although unproven, there is a substantial amount of user / developer concern that the above patches prevent hard lockups but do not provide full reliability with 2.6.15 and there are larger / redisgn issues preventing compatibility.  It seems surprising that ATI would not have implemented such a simple page count fix in their latest two driver releases since kernel 2.6.15 has been available.  Given the closed-source nature of the driver, it is difficult to know for sure.  As of now only 2.6.14.x kernels are officially supported by the fglrx driver.&lt;br /&gt;
&lt;br /&gt;
=== No hardware acceleration ===&lt;br /&gt;
&lt;br /&gt;
====Acceleration lost after driver update====&lt;br /&gt;
If you lose hardware acceleration after a driver update this can be caused by an old fglrx kernel module being loaded.&lt;br /&gt;
&lt;br /&gt;
Check out {{path|1=/var/log/Xorg.0.log}} for a message like:&lt;br /&gt;
:&amp;lt;code&amp;gt;(WW) fglrx(0): Kernel Module version does *not* match driver.&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(EE) fglrx(0): incompatible kernel module detected - HW accelerated OpenGL will not work&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify this yourself by looking at the version message some lines above. It should read something not matching the installed version like:&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0): Kernel Module Version Information:&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0):     Name: fglrx&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0):     Version: 8.10.19&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The cause for this trouble might be that there resist multiple versions of the fglrx module within the kernel module search path.&amp;lt;br&amp;gt;&lt;br /&gt;
Go to {{path|1=/lib/modules/&amp;lt;your linux kernel version&amp;gt;/}} and type {{cmdroot|1=grep fglrx modules.dep}}.&amp;lt;br&amp;gt;&lt;br /&gt;
If grep finds multiple lines you nailed down the problem. All you have to do now is to delete any versions of the module (look at the filedate) but the most current one. Then run {{cmdroot|1=depmod}} and you are done.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Newer versions (8.21.7) of the fglrx module seem to be installed in the &amp;lt;code&amp;gt;extra/&amp;lt;/code&amp;gt; subdirectory.&amp;lt;br&amp;gt;&lt;br /&gt;
Older versions (8.19.10) used to be located in the &amp;lt;code&amp;gt;kernel/drivers/char/drm/&amp;lt;/code&amp;gt; subdirectory.}}&lt;br /&gt;
&lt;br /&gt;
====GCC 3.4====&lt;br /&gt;
If the ATI driver works only without the hardware acceleration, take into consideration that {{path|fglrx_dri.so}} was linked against libstdc++.so.5 which may not be present if your system uses gcc-3.4.&lt;br /&gt;
&lt;br /&gt;
To fix this, compile gcc-3.3.5 and copy &amp;lt;tt&amp;gt;libstdc++.so.5*&amp;lt;/tt&amp;gt; to {{path|/usr/lib}} and update the dynamic linker cache via {{cmdroot|ldconfig}}.&lt;br /&gt;
&lt;br /&gt;
====radeonfb framebuffer====&lt;br /&gt;
Another possible cause for broken hardware acceleration (2D and 3D) is the radeonfb framebuffer: Switching to vesafb or vesafb-tng is reported to solve the problem on some systems. Also it has proven helpful to not perform {{cmdroot|modprobe fglrx}} after boot but to have the module loaded via {{path|/etc/modules.autoload/kernel2.x}} at boottime instead.&lt;br /&gt;
&lt;br /&gt;
=== Softlink hell ===&lt;br /&gt;
The [[fglrx]] installer replaces the standard X.org OpenGL implementation (Mesa) with its own files, potentially causing collisions with the distribution's file and package management. It is best to install the driver via a package built for your distribution, which will typically include the necessary kludges to make things work. See the [[fglrx]] page for pointers.&lt;br /&gt;
&lt;br /&gt;
====Discussion====&lt;br /&gt;
If using {{cmduser|fglrxinfo}} after installing [[fglrx]] indicates that you are still using the mesa indirect software GL renderer, you likely have some misplaced softlinks.  It seems like it has to do with an apt-get upgrade that sometimes replaces these links.  Anyway, go to&lt;br /&gt;
:{{cmdroot|cd /usr/X11R6/lib}}&lt;br /&gt;
and list your GL libraries and links&lt;br /&gt;
:{{cmdroot|ls -la *GL*}}&lt;br /&gt;
You should see something like the following two lines amoung others:&lt;br /&gt;
:{{cmdresult|libGL.so -&amp;gt; libGL.so.1.2}}&lt;br /&gt;
:{{cmdresult|libGL.so.1 -&amp;gt; libGL.so.1.2}}&lt;br /&gt;
If you see a link to a mesa library (something like {{cmdresult|... -&amp;gt; libGL.mesa.1.2}}), then that's your problem!  Restore the softlink like this (use your actual library version, though):&lt;br /&gt;
:{{cmdroot|ln -s libGL.so.1.2 libGL.so.1}}&lt;br /&gt;
&lt;br /&gt;
For some reason, this link might &amp;quot;break&amp;quot; later, giving you the software rendering once more.  Even after renaming the mesa library to something like &amp;lt;tt&amp;gt;mesa.bkup&amp;lt;/tt&amp;gt;, the system might still find it and link to it despite the name change.  If you have to do this a lot, you could write a restoreGL script.&lt;br /&gt;
&lt;br /&gt;
=====Gentoo=====&lt;br /&gt;
{{Gentoo}} has built in tools for managing the OpenGL symlinks.  They seem to be replacing the old tool with a new one, so one of the following should work for you:&lt;br /&gt;
:{{cmdroot|opengl-update ati}} or&lt;br /&gt;
:{{cmdroot|eselect opengl set ati}}&lt;br /&gt;
Eselect is new, and still ~x86 (as of the end of 2005), so you may not have it yet.  &amp;lt;tt&amp;gt;opengl-update&amp;lt;/tt&amp;gt; is the old tried-and-true method for managing the symlinks.  If &amp;lt;tt&amp;gt;opengl-update&amp;lt;/tt&amp;gt; doesn't fix it for you, you should probably tell [http://bugs.gentoo.org Gentoo Bugzilla] (assuming they don't know yet).&lt;br /&gt;
&lt;br /&gt;
If {{cmdroot|ldd /usr/X11R6/bin/glxinfo}} shows that your system still uses the xorg-x11 mesa libs after trying one of the above commands, i.e. a line like this:&lt;br /&gt;
:{{cmdresult|1=libGL.so.1 =&amp;gt; /usr/lib/opengl/xorg-x11/lib/libGL.so.1 (0x400a8000)}}&lt;br /&gt;
you will also need to relink {{path|libGl.so.1.2}}:&lt;br /&gt;
:{{cmdroot|cd /usr/lib/opengl/xorg-x11/lib/}}&lt;br /&gt;
:{{cmdroot|mv libGL.so.1.2 libGL.so.1.2_backup}}&lt;br /&gt;
:{{cmdroot|ln -s /usr/lib/libGL.so.1.2 libGL.so.1.2}}&lt;br /&gt;
After another restart of X {{cmduser|fglrxinfo}} should show that it's using the right libs now.&lt;br /&gt;
&lt;br /&gt;
=== Troubles using software suspend ===&lt;br /&gt;
When the computer resumes from suspend, X only displays a garbled image and the computer is frozen.&lt;br /&gt;
The problem is acknowledged in ATI's release notes and in knowledge base entry &amp;lt;strike&amp;gt;[https://support.ati.com/ics/support/KBResult.asp?searchFor=Search+Words&amp;amp;search.x=0&amp;amp;search.y=0&amp;amp;searchOption=id&amp;amp;questionID=737-218+&amp;amp;task=knowledge&amp;amp;searchTime=-1&amp;amp;productID=&amp;amp;folderID=-1&amp;amp;resultLimit=50 737-218]&amp;lt;/strike&amp;gt; [https://support.ati.com/ics/support/KBAnswer.asp?questionID=218 737-218]. Driver version 8.19.10 has &amp;quot;initial support for Suspend and Resume&amp;quot; but is working very nicely for most people (verified on T43, T43p and T42) without vbetool.&lt;br /&gt;
&lt;br /&gt;
If you are using an older version of fglrx, using [http://www.srcf.ucam.org/~mjg59/vbetool/ vbetool] to save/restore the video card state before/after suspend worked for some people. If you use [[Software Suspend 2|Software Suspend 2 (suspend2)]] scripts, you can simply uncomment &amp;lt;tt&amp;gt;EnableVbetool yes&amp;lt;/tt&amp;gt; in {{path|/etc/hibernate/hibernate.conf}}. Be aware though that it breaks suspend/resume for drivers beginning with version 8.19.10, so remember to disable it again when upgrading.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ tested with the following configurations&lt;br /&gt;
!model!!distro||kernel!!fglrx!!PM!!success!!comments&lt;br /&gt;
|-&lt;br /&gt;
|{{T42}}||SUSE 9.3||2.6.11||8.14.13||swsusp||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T41p}}||???||2.6.14||8.19.10||suspend2 2.2-rc9||yes||needs a small [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030381.html patch]&lt;br /&gt;
|-&lt;br /&gt;
|{{T42p}}||Debian||2.6.10||Debian packaged||suspend2||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Debian sid||2.6.14.2||8.19.10||swsusp||yes||works perfectly with 8.19.10 (but not earlier versions!)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Debian etch||2.6.14.2||8.19.10||swsusp||yes||works perfectly with 8.19.10 and without vbetool&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Ubuntu Breezy||2.6.12-10||8.19.10||swsusp||yes||Perfect.  (Finally.)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.1||8.19.10||suspend2 2.2-rc9||yes||needs a small [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030381.html patch], requires DRI disabled in {{path|xorg.conf}} (hence no 3D acceleration)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.2||8.19.10||suspend2 2.2-rc11||yes||requires DRI disabled in {{path|xorg.conf}} (hence no 3D acceleration)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.3||8.19.10||suspend2 2.2-rc13||no||DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.3||8.20.8||suspend2 2.2-rc13||no||DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{R50p}}||???||???||8.19.10||swsusp||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Debian sid||2.6.14||8.19.10||Suspend to RAM||yes||without vbetool or UseDummyXServer, those two ''break'' the resume process here, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Debian sid||2.6.14.3||8.20.8||Suspend to RAM||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{R52}}||Debian sid||2.6.15-rc5||8.20.8||swsup||yes||both vbetool and UseDummyXServer disabled, DRI enabled, needs [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 patch]&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Gentoo||[http://packages.gentoo.org/ebuilds/?suspend2-sources-2.6.15-r6 2.6.15]||8.22.5||Suspend to RAM||yes||without vbetool or UseDummyXServer, with DRI enabled - console is garbled until switching back from X&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Gentoo||[http://packages.gentoo.org/ebuilds/?suspend2-sources-2.6.15-r6 2.6.15]||8.22.5||suspend2 2.2||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Troubles with large RAM ===&lt;br /&gt;
Version 8.14.13 (and probably earlier versions) of the driver does not seem to be able to cope with large amounts of RAM: with 512 MB it works, with 1.5 GB it crashes the machine as soon as X is started. The problem is present only if the &amp;lt;tt&amp;gt;fglrx&amp;lt;/tt&amp;gt; kernel module is loaded, but independently of whether {{kernelconf|CONFIG_HIGHMEM||||||}} is enabled. A workaround is to limit RAM by adding the {{bootparm|mem|864m}} kernel parameter.&lt;br /&gt;
&lt;br /&gt;
Version 8.16.20 fixes the problem.&lt;br /&gt;
&lt;br /&gt;
===Display switching ===&lt;br /&gt;
The switching between internal and external display doesn't work, because the driver blocks messing around with the chipset via ACPI. If you want to use this feature (i.e. during presentations), you should use the &amp;lt;tt&amp;gt;vesa&amp;lt;/tt&amp;gt; server instead (experienced with a R52, Kernel 2.6.11, xorg 6.8.2, fglrx 8.16.20).&lt;br /&gt;
&lt;br /&gt;
===Composite Support===&lt;br /&gt;
ATI has not officially supported composite windowing (alpha channel) enabling hardware acclerated translucent windows (primarily for 'eye candy.')  Enabling Composite in KDE and the fglrx driver results in a very pretty desktop but unacceptably slow performance on a T43p with ATI's FireGL T2.  It is still unusable in its current state (as of driver 8.19.10).&lt;br /&gt;
&lt;br /&gt;
ATI promises support in the future when composite is officially supported by Xorg.  Discussion of current status of drivers can be found in the Rage3d forums' (rage3d.com/board) Linux area.&lt;br /&gt;
&lt;br /&gt;
There were some rumors that composite support was fast with the open-source 2d accelerated drivers in x.org 6.9 (as opposed to 6.8.x).  Alas, trying this gives better results than the proprietary drivers, but it is still too slow to be reasonably useful.&lt;br /&gt;
&lt;br /&gt;
===Hardlock on X logout===&lt;br /&gt;
Up from driver version 8.19.10 you will expierence a system hard lock when logging out from X, if the session manager (kdm/gdm) is not properly configured. You have to tell the session manager to restart X.&lt;br /&gt;
&lt;br /&gt;
In the kdm config file (gentoo: {{path|/usr/kde/&amp;lt;VERSION&amp;gt;/share/config/kdm/kdmrc}}) you have to add following to the section &amp;lt;code&amp;gt;[X-:*-Core]&amp;lt;/code&amp;gt;: &lt;br /&gt;
 TerminateServer=true&lt;br /&gt;
&lt;br /&gt;
In the gdm config file add:&lt;br /&gt;
 AlwaysRestartServer=true&lt;br /&gt;
&lt;br /&gt;
Information from the ATI bugtracker: http://ati.cchtml.com/show_bug.cgi?id=239&lt;br /&gt;
&lt;br /&gt;
===Error messages in system log===&lt;br /&gt;
&lt;br /&gt;
If you find something like the following in {{path|/var/log/messages}}:&lt;br /&gt;
&lt;br /&gt;
:{{cmdresult|kernel: mtrr: base(0xc0000000) is not aligned on a size(0x7ff0000) boundary}}&lt;br /&gt;
:{{cmdresult|kernel: [fglrx:firegl_addmap] *ERROR* mtrr allocation failed (-22)}}&lt;br /&gt;
:{{cmdresult|kernel: [fglrx:firegl_unlock] *ERROR* Process 5132 using kernel context 0}}&lt;br /&gt;
&lt;br /&gt;
try to execute the following line and reload the fglrx module:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|1=echo &amp;quot;base=0xd0000000 size=0x8000000 type=write-combining&amp;quot; &amp;gt; /proc/mtrr}}&lt;br /&gt;
&lt;br /&gt;
More detailed instructions can be found [http://ubuntuforums.org/showthread.php?t=115104 here].&lt;br /&gt;
&lt;br /&gt;
===Hang when logging out===&lt;br /&gt;
&lt;br /&gt;
A common problem is that when logging out from X, instead of gettign the KDM or GDM prompt, the system hangs.&lt;br /&gt;
&lt;br /&gt;
This is discussed, including workarounds here: http://ati.cchtml.com/show_bug.cgi?id=239&lt;br /&gt;
&lt;br /&gt;
===No power saving when CRT in use===&lt;br /&gt;
&lt;br /&gt;
When both CRT and LCD are in use, power saving cannot be enabled.&lt;br /&gt;
&lt;br /&gt;
This is reported here: http://ati.cchtml.com/show_bug.cgi?id=304&lt;br /&gt;
&lt;br /&gt;
== Patches ==&lt;br /&gt;
The following patches might be needed for certain versions of fglrx.&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.21.7===&lt;br /&gt;
&lt;br /&gt;
* [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch for kernels &amp;gt;= 2.6.15]&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.20.8===&lt;br /&gt;
&lt;br /&gt;
* [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 for kernel 2.6.15]&lt;br /&gt;
or&lt;br /&gt;
* [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch for kernels &amp;gt;= 2.6.15]&lt;br /&gt;
&lt;br /&gt;
===fglrx (problem met at least with version 8.18.8)===&lt;br /&gt;
* [http://lkml.org/lkml/2005/9/22/183 for kernel &amp;gt;= 2.6.13 ]  Missing verify_area bug&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.8.25 ===&lt;br /&gt;
* [http://www.rage3d.com/board/showthread.php?t=33798874 for kernels &amp;gt;= 2.6.10]&lt;br /&gt;
* [http://www.gehirn.org.uk/wiki/images/8.8.25-kernel-2.6.11+.patch For kernels &amp;gt;= 2.6.11-rc1]&lt;/div&gt;</summary>
		<author><name>Fiouz</name></author>
		
	</entry>
	<entry>
		<id>https://www.thinkwiki.org/w/index.php?title=Problems_with_fglrx&amp;diff=20127</id>
		<title>Problems with fglrx</title>
		<link rel="alternate" type="text/html" href="https://www.thinkwiki.org/w/index.php?title=Problems_with_fglrx&amp;diff=20127"/>
		<updated>2006-02-16T15:59:13Z</updated>

		<summary type="html">&lt;p&gt;Fiouz: ATI support link 737-218 seems dead&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page discusses issues with the ATI proprietary [[fglrx]] display driver.&lt;br /&gt;
&lt;br /&gt;
== Known Troubles and Solutions ==&lt;br /&gt;
&lt;br /&gt;
=== X-specific issues ===&lt;br /&gt;
&lt;br /&gt;
ATI proprietary drivers version 8.21.7 and later work with x.org 6.9.&lt;br /&gt;
&lt;br /&gt;
If you are running an older version (8.20.8) under Debian sid and you upgrade your xserver-xorg, apt will force you to remove any debian-packaged fglrx drivers (package fglrx-driver depends on x.org &amp;lt;&amp;lt; 6.8.99).  You can just download the driver from the ATI site and install after modifying the Debian packager script to allow dependencies to be satisfied by x.org 6.9, or just download 8.21.7 and install manually.  See talk page for step-by-step commands.&lt;br /&gt;
&lt;br /&gt;
After installing the fglrx driver, you can use module-assist to build the appropriate kernel module.&lt;br /&gt;
&lt;br /&gt;
=== Kernel-specific troubles ===&lt;br /&gt;
&lt;br /&gt;
Using ATI driver 8.21.7 and earlier with kernel 2.6.15 or later needs a [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 patch].  (see table below for detail.) If you can't compile the driver modules with 2.6.15 or later, you should apply this [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch patch] instead. &lt;br /&gt;
&lt;br /&gt;
If you do not use one of these patches, you may experience peculiar lockups of X.  Try {{cmduser|fglrxinfo}} - if your shell hangs at the end of this command, you may have an issue and should try the patch.&lt;br /&gt;
&lt;br /&gt;
Although unproven, there is a substantial amount of user / developer concern that the above patches prevent hard lockups but do not provide full reliability with 2.6.15 and there are larger / redisgn issues preventing compatibility.  It seems surprising that ATI would not have implemented such a simple page count fix in their latest two driver releases since kernel 2.6.15 has been available.  Given the closed-source nature of the driver, it is difficult to know for sure.  As of now only 2.6.14.x kernels are officially supported by the fglrx driver.&lt;br /&gt;
&lt;br /&gt;
=== No hardware acceleration ===&lt;br /&gt;
&lt;br /&gt;
====Acceleration lost after driver update====&lt;br /&gt;
If you lose hardware acceleration after a driver update this can be caused by an old fglrx kernel module being loaded.&lt;br /&gt;
&lt;br /&gt;
Check out {{path|1=/var/log/Xorg.0.log}} for a message like:&lt;br /&gt;
:&amp;lt;code&amp;gt;(WW) fglrx(0): Kernel Module version does *not* match driver.&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(EE) fglrx(0): incompatible kernel module detected - HW accelerated OpenGL will not work&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can verify this yourself by looking at the version message some lines above. It should read something not matching the installed version like:&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0): Kernel Module Version Information:&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0):     Name: fglrx&amp;lt;/code&amp;gt;&lt;br /&gt;
:&amp;lt;code&amp;gt;(II) fglrx(0):     Version: 8.10.19&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The cause for this trouble might be that there resist multiple versions of the fglrx module within the kernel module search path.&amp;lt;br&amp;gt;&lt;br /&gt;
Go to {{path|1=/lib/modules/&amp;lt;your linux kernel version&amp;gt;/}} and type {{cmdroot|1=grep fglrx modules.dep}}.&amp;lt;br&amp;gt;&lt;br /&gt;
If grep finds multiple lines you nailed down the problem. All you have to do now is to delete any versions of the module (look at the filedate) but the most current one. Then run {{cmdroot|1=depmod}} and you are done.&lt;br /&gt;
&lt;br /&gt;
{{HINT|Newer versions (8.21.7) of the fglrx module seem to be installed in the &amp;lt;code&amp;gt;extra/&amp;lt;/code&amp;gt; subdirectory.&amp;lt;br&amp;gt;&lt;br /&gt;
Older versions (8.19.10) used to be located in the &amp;lt;code&amp;gt;kernel/drivers/char/drm/&amp;lt;/code&amp;gt; subdirectory.}}&lt;br /&gt;
&lt;br /&gt;
====GCC 3.4====&lt;br /&gt;
If the ATI driver works only without the hardware acceleration, take into consideration that {{path|fglrx_dri.so}} was linked against libstdc++.so.5 which may not be present if your system uses gcc-3.4.&lt;br /&gt;
&lt;br /&gt;
To fix this, compile gcc-3.3.5 and copy &amp;lt;tt&amp;gt;libstdc++.so.5*&amp;lt;/tt&amp;gt; to {{path|/usr/lib}} and update the dynamic linker cache via {{cmdroot|ldconfig}}.&lt;br /&gt;
&lt;br /&gt;
====radeonfb framebuffer====&lt;br /&gt;
Another possible cause for broken hardware acceleration (2D and 3D) is the radeonfb framebuffer: Switching to vesafb or vesafb-tng is reported to solve the problem on some systems. Also it has proven helpful to not perform {{cmdroot|modprobe fglrx}} after boot but to have the module loaded via {{path|/etc/modules.autoload/kernel2.x}} at boottime instead.&lt;br /&gt;
&lt;br /&gt;
=== Softlink hell ===&lt;br /&gt;
The [[fglrx]] installer replaces the standard X.org OpenGL implementation (Mesa) with its own files, potentially causing collisions with the distribution's file and package management. It is best to install the driver via a package built for your distribution, which will typically include the necessary kludges to make things work. See the [[fglrx]] page for pointers.&lt;br /&gt;
&lt;br /&gt;
====Discussion====&lt;br /&gt;
If using {{cmduser|fglrxinfo}} after installing [[fglrx]] indicates that you are still using the mesa indirect software GL renderer, you likely have some misplaced softlinks.  It seems like it has to do with an apt-get upgrade that sometimes replaces these links.  Anyway, go to&lt;br /&gt;
:{{cmdroot|cd /usr/X11R6/lib}}&lt;br /&gt;
and list your GL libraries and links&lt;br /&gt;
:{{cmdroot|ls -la *GL*}}&lt;br /&gt;
You should see something like the following two lines amoung others:&lt;br /&gt;
:{{cmdresult|libGL.so -&amp;gt; libGL.so.1.2}}&lt;br /&gt;
:{{cmdresult|libGL.so.1 -&amp;gt; libGL.so.1.2}}&lt;br /&gt;
If you see a link to a mesa library (something like {{cmdresult|... -&amp;gt; libGL.mesa.1.2}}), then that's your problem!  Restore the softlink like this (use your actual library version, though):&lt;br /&gt;
:{{cmdroot|ln -s libGL.so.1.2 libGL.so.1}}&lt;br /&gt;
&lt;br /&gt;
For some reason, this link might &amp;quot;break&amp;quot; later, giving you the software rendering once more.  Even after renaming the mesa library to something like &amp;lt;tt&amp;gt;mesa.bkup&amp;lt;/tt&amp;gt;, the system might still find it and link to it despite the name change.  If you have to do this a lot, you could write a restoreGL script.&lt;br /&gt;
&lt;br /&gt;
=====Gentoo=====&lt;br /&gt;
{{Gentoo}} has built in tools for managing the OpenGL symlinks.  They seem to be replacing the old tool with a new one, so one of the following should work for you:&lt;br /&gt;
:{{cmdroot|opengl-update ati}} or&lt;br /&gt;
:{{cmdroot|eselect opengl set ati}}&lt;br /&gt;
Eselect is new, and still ~x86 (as of the end of 2005), so you may not have it yet.  &amp;lt;tt&amp;gt;opengl-update&amp;lt;/tt&amp;gt; is the old tried-and-true method for managing the symlinks.  If &amp;lt;tt&amp;gt;opengl-update&amp;lt;/tt&amp;gt; doesn't fix it for you, you should probably tell [http://bugs.gentoo.org Gentoo Bugzilla] (assuming they don't know yet).&lt;br /&gt;
&lt;br /&gt;
If {{cmdroot|ldd /usr/X11R6/bin/glxinfo}} shows that your system still uses the xorg-x11 mesa libs after trying one of the above commands, i.e. a line like this:&lt;br /&gt;
:{{cmdresult|1=libGL.so.1 =&amp;gt; /usr/lib/opengl/xorg-x11/lib/libGL.so.1 (0x400a8000)}}&lt;br /&gt;
you will also need to relink {{path|libGl.so.1.2}}:&lt;br /&gt;
:{{cmdroot|cd /usr/lib/opengl/xorg-x11/lib/}}&lt;br /&gt;
:{{cmdroot|mv libGL.so.1.2 libGL.so.1.2_backup}}&lt;br /&gt;
:{{cmdroot|ln -s /usr/lib/libGL.so.1.2 libGL.so.1.2}}&lt;br /&gt;
After another restart of X {{cmduser|fglrxinfo}} should show that it's using the right libs now.&lt;br /&gt;
&lt;br /&gt;
=== Troubles using software suspend ===&lt;br /&gt;
When the computer resumes from suspend, X only displays a garbled image and the computer is frozen.&lt;br /&gt;
The problem is acknowledged in ATI's release notes and in knowledge base entry &amp;lt;strike&amp;gt;[https://support.ati.com/ics/support/KBResult.asp?searchFor=Search+Words&amp;amp;search.x=0&amp;amp;search.y=0&amp;amp;searchOption=id&amp;amp;questionID=737-218+&amp;amp;task=knowledge&amp;amp;searchTime=-1&amp;amp;productID=&amp;amp;folderID=-1&amp;amp;resultLimit=50 737-218]&amp;lt;/strike&amp;gt; [https://support.ati.com/ics/support/KBAnswer.asp?questionID=218 737-218]. Driver version 8.19.10 has &amp;quot;initial support for Suspend and Resume&amp;quot; but is working very nicely for most people (verified on T43, T43p and T42) without vbetool.&lt;br /&gt;
&lt;br /&gt;
If you are using an older version of fglrx, using [http://www.srcf.ucam.org/~mjg59/vbetool/ vbetool] to save/restore the video card state before/after suspend worked for some people. If you use [[Software Suspend 2|Software Suspend 2 (suspend2)]] scripts, you can simply uncomment &amp;lt;tt&amp;gt;EnableVbetool yes&amp;lt;/tt&amp;gt; in {{path|/etc/hibernate/hibernate.conf}}. Be aware though that it breaks suspend/resume for drivers beginning with version 8.19.10, so remember to disable it again when upgrading.&lt;br /&gt;
&lt;br /&gt;
{| cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;2&amp;quot; border=&amp;quot;1&amp;quot;&lt;br /&gt;
|+ tested with the following configurations&lt;br /&gt;
!model!!distro||kernel!!fglrx!!PM!!success!!comments&lt;br /&gt;
|-&lt;br /&gt;
|{{T42}}||SUSE 9.3||2.6.11||8.14.13||swsusp||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T41p}}||???||2.6.14||8.19.10||suspend2 2.2-rc9||yes||needs a small [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030381.html patch]&lt;br /&gt;
|-&lt;br /&gt;
|{{T42p}}||Debian||2.6.10||Debian packaged||suspend2||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Debian sid||2.6.14.2||8.19.10||swsusp||yes||works perfectly with 8.19.10 (but not earlier versions!)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Debian etch||2.6.14.2||8.19.10||swsusp||yes||works perfectly with 8.19.10 and without vbetool&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||Ubuntu Breezy||2.6.12-10||8.19.10||swsusp||yes||Perfect.  (Finally.)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.1||8.19.10||suspend2 2.2-rc9||yes||needs a small [http://mailman.linux-thinkpad.org/pipermail/linux-thinkpad/2005-November/030381.html patch], requires DRI disabled in {{path|xorg.conf}} (hence no 3D acceleration)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.2||8.19.10||suspend2 2.2-rc11||yes||requires DRI disabled in {{path|xorg.conf}} (hence no 3D acceleration)&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.3||8.19.10||suspend2 2.2-rc13||no||DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43}}||FC4||2.6.14.3||8.20.8||suspend2 2.2-rc13||no||DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{R50p}}||???||???||8.19.10||swsusp||yes||&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Debian sid||2.6.14||8.19.10||Suspend to RAM||yes||without vbetool or UseDummyXServer, those two ''break'' the resume process here, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{T43p}}||Debian sid||2.6.14.3||8.20.8||Suspend to RAM||yes||without vbetool or UseDummyXServer, with DRI enabled&lt;br /&gt;
|-&lt;br /&gt;
|{{R52}}||Debian sid||2.6.15-rc5||8.20.8||swsup||yes||both vbetool and UseDummyXServer disabled, DRI enabled, needs [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 patch]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== Troubles with large RAM ===&lt;br /&gt;
Version 8.14.13 (and probably earlier versions) of the driver does not seem to be able to cope with large amounts of RAM: with 512 MB it works, with 1.5 GB it crashes the machine as soon as X is started. The problem is present only if the &amp;lt;tt&amp;gt;fglrx&amp;lt;/tt&amp;gt; kernel module is loaded, but independently of whether {{kernelconf|CONFIG_HIGHMEM||||||}} is enabled. A workaround is to limit RAM by adding the {{bootparm|mem|864m}} kernel parameter.&lt;br /&gt;
&lt;br /&gt;
Version 8.16.20 fixes the problem.&lt;br /&gt;
&lt;br /&gt;
===Display switching ===&lt;br /&gt;
The switching between internal and external display doesn't work, because the driver blocks messing around with the chipset via ACPI. If you want to use this feature (i.e. during presentations), you should use the &amp;lt;tt&amp;gt;vesa&amp;lt;/tt&amp;gt; server instead (experienced with a R52, Kernel 2.6.11, xorg 6.8.2, fglrx 8.16.20).&lt;br /&gt;
&lt;br /&gt;
===Composite Support===&lt;br /&gt;
ATI has not officially supported composite windowing (alpha channel) enabling hardware acclerated translucent windows (primarily for 'eye candy.')  Enabling Composite in KDE and the fglrx driver results in a very pretty desktop but unacceptably slow performance on a T43p with ATI's FireGL T2.  It is still unusable in its current state (as of driver 8.19.10).&lt;br /&gt;
&lt;br /&gt;
ATI promises support in the future when composite is officially supported by Xorg.  Discussion of current status of drivers can be found in the Rage3d forums' (rage3d.com/board) Linux area.&lt;br /&gt;
&lt;br /&gt;
There were some rumors that composite support was fast with the open-source 2d accelerated drivers in x.org 6.9 (as opposed to 6.8.x).  Alas, trying this gives better results than the proprietary drivers, but it is still too slow to be reasonably useful.&lt;br /&gt;
&lt;br /&gt;
===Hardlock on X logout===&lt;br /&gt;
Up from driver version 8.19.10 you will expierence a system hard lock when logging out from X, if the session manager (kdm/gdm) is not properly configured. You have to tell the session manager to restart X.&lt;br /&gt;
&lt;br /&gt;
In the kdm config file (gentoo: {{path|/usr/kde/&amp;lt;VERSION&amp;gt;/share/config/kdm/kdmrc}}) you have to add following to the section &amp;lt;code&amp;gt;[X-:*-Core]&amp;lt;/code&amp;gt;: &lt;br /&gt;
 TerminateServer=true&lt;br /&gt;
&lt;br /&gt;
In the gdm config file add:&lt;br /&gt;
 AlwaysRestartServer=true&lt;br /&gt;
&lt;br /&gt;
Information from the ATI bugtracker: http://ati.cchtml.com/show_bug.cgi?id=239&lt;br /&gt;
&lt;br /&gt;
===Error messages in system log===&lt;br /&gt;
&lt;br /&gt;
If you find something like the following in {{path|/var/log/messages}}:&lt;br /&gt;
&lt;br /&gt;
:{{cmdresult|kernel: mtrr: base(0xc0000000) is not aligned on a size(0x7ff0000) boundary}}&lt;br /&gt;
:{{cmdresult|kernel: [fglrx:firegl_addmap] *ERROR* mtrr allocation failed (-22)}}&lt;br /&gt;
:{{cmdresult|kernel: [fglrx:firegl_unlock] *ERROR* Process 5132 using kernel context 0}}&lt;br /&gt;
&lt;br /&gt;
try to execute the following line and reload the fglrx module:&lt;br /&gt;
&lt;br /&gt;
:{{cmdroot|1=echo &amp;quot;base=0xd0000000 size=0x8000000 type=write-combining&amp;quot; &amp;gt; /proc/mtrr}}&lt;br /&gt;
&lt;br /&gt;
More detailed instructions can be found [http://ubuntuforums.org/showthread.php?t=115104 here].&lt;br /&gt;
&lt;br /&gt;
===Hang when logging out===&lt;br /&gt;
&lt;br /&gt;
A common problem is that when logging out from X, instead of gettign the KDM or GDM prompt, the system hangs.&lt;br /&gt;
&lt;br /&gt;
This is discussed, including workarounds here: http://ati.cchtml.com/show_bug.cgi?id=239&lt;br /&gt;
&lt;br /&gt;
===No power saving when CRT in use===&lt;br /&gt;
&lt;br /&gt;
When both CRT and LCD are in use, power saving cannot be enabled.&lt;br /&gt;
&lt;br /&gt;
This is reported here: http://ati.cchtml.com/show_bug.cgi?id=304&lt;br /&gt;
&lt;br /&gt;
== Patches ==&lt;br /&gt;
The following patches might be needed for certain versions of fglrx.&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.21.7===&lt;br /&gt;
&lt;br /&gt;
* [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch for kernels &amp;gt;= 2.6.15]&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.20.8===&lt;br /&gt;
&lt;br /&gt;
* [http://marc.theaimsgroup.com/?l=linux-kernel&amp;amp;m=113429835515001&amp;amp;w=2 for kernel 2.6.15]&lt;br /&gt;
or&lt;br /&gt;
* [http://www.ksp.sk/~rasto/fglrx_with_2.6.15.patch for kernels &amp;gt;= 2.6.15]&lt;br /&gt;
&lt;br /&gt;
===fglrx (problem met at least with version 8.18.8)===&lt;br /&gt;
* [http://lkml.org/lkml/2005/9/22/183 for kernel &amp;gt;= 2.6.13 ]  Missing verify_area bug&lt;br /&gt;
&lt;br /&gt;
===fglrx 8.8.25 ===&lt;br /&gt;
* [http://www.rage3d.com/board/showthread.php?t=33798874 for kernels &amp;gt;= 2.6.10]&lt;br /&gt;
* [http://www.gehirn.org.uk/wiki/images/8.8.25-kernel-2.6.11+.patch For kernels &amp;gt;= 2.6.11-rc1]&lt;/div&gt;</summary>
		<author><name>Fiouz</name></author>
		
	</entry>
</feed>