Difference between pages "Creating Profiles" and "Package:AMD Catalyst Video Drivers"

(Difference between pages)
(How to do it)
 
 
Line 1: Line 1:
Want to create your own custom profiles? Thought up a mix-in that's not currently in the Funtoo profiles? Have an overlay with profiles and want to make it easy for people to use them? Well you've come to the right place. This article will show you how to easily add you own profiles. No more ugly hacking of parent files and other nonsense. Once you follow this guide, not only will portage easily recognize your profiles, they will also show up in eselect right along with the ones from the main tree.
+
{{Ebuild
 +
|Summary=Accelerated ATI/AMD binary drivers for Radeon HD 5000 and newer chipsets.
 +
|CatPkg=x11-drivers/ati-drivers
 +
|Maintainer=Drobbins
 +
|Homepage=
 +
|Repository=Funtoo Overlay
 +
|Overlay=Funtoo
 +
}}
 +
== Introduction ==
  
== Rules to follow ==
+
<tt>x11-drivers/ati-drivers</tt> (often referred to as "<tt>fglrx</tt>", the name of its kernel module) is the proprietary, accelerated driver for AMD (ATI) graphics cards.  
* What your system need:
+
** The version of [[Package:Eselect|eselect]] that supports Funtoo profiles (already integrated into Funtoo Linux)
+
* What your overlay need:
+
** Directory <code><overlay_name>/profiles</code>: store your profiles in it.
+
** File <code><overlay_name>/profiles/repo_name</code>: store the name of your overlay
+
** File <code><overlay_name>/profiles/profiles.eselect.desc</code>: see <code>profiles.eselect.example</code> in your Funtoo portage tree for instruction.
+
** If you're creating profiles of types arch, build, flavor, or mix-ins, your profile must be inside a directory with same name, such as <code><overlay_name>/profiles/<profile_name>/flavor/<flavor_name></code>, <code><overlay_name>/profiles/<profile_name>/mix-ins/<mix-ins_name></code>
+
  
{{note | Currently, <tt>NoMix</tt> (see <code>profiles.eselect.example</code> in the Funtoo portage tree) is only supported for profiles in the same tree.}}
+
== Preparing to Install ==
  
Also:
+
=== Mask xorg > 1.16 ===
  
{{note | If you are not using a standard Funtoo portage tree, you must ensure that your main portage tree has <pre> profile-formats = portage-2 </pre> set in <code>metadata/layout.conf</code> in order for portage to interpret the <code><repo_name>:<profile></code> syntax.}}
+
This package doesn't work with the latest unmasked version of xorg-server (1.16). However, xorg-server-1.15 works just fine, so it's easy enough to fix this. Add the following to <code>/etc/portage/package.mask</code>:
  
==An Example==
+
{{File|name=/etc/portage/package.mask|body=
* For our example, we will create a local overlay called <b>fake_overlay</b>. Then, create a profile called <b>fake_profile</b>. Finally, create a 'mix-ins' profile called <b>fake_mix-ins</b>:
+
>=x11-base/xorg-server-1.16
** Set the <code>dummy</code> USE flag globally for <b>fake_mix-ins</b>
+
}}
** Set the <code>yummy</code> USE flag on <code>sys-apps/not-exist</code> for <b>fake_mix-ins</b>
+
 
 +
If X is already installed, force it to downgrade by typing:
  
We will then add this profile to [[Package:Eselect|eselect]] so it's visible when running:
 
 
<console>
 
<console>
###i## eselect profile
+
# ##i##emerge -auDN world
 
</console>
 
</console>
  
=== Creating the profile ===
+
A few packages will downgrade, and you'll be ready to go.
==== Step 1 ====
+
 
We will use <code>${FAKE_OVERLAY}</code>as the path to <b>fake_overlay</b>.These instructions assume the overlay exists.
+
=== Configuring the kernel ===
If you haven't set a name for your overlay, do that first:
+
 
 +
Configure the kernel as follows. Note that the Direct Rendering Manager is '''not''' enabled. It's possible to have it selected as a kernel module, but should not be built-in to your kernel.
 +
 
 +
{{kernelop|desc=
 +
[*] Enable loadable module support
 +
Processor type and features --->
 +
      [*] MTRR (Memory Type Range Register) support
 +
Bus options (PCI etc.) --->
 +
      [*] PCI Express Port Bus Support
 +
      [*] Message Signaled Interrupts (MSI and MSI-X)
 +
Device Drivers --->
 +
      Graphics support --->
 +
            < > Direct Rendering Manager (xFree86 4.1.0 and higher DRI support) --->
 +
}}
 +
 
 +
{{note|If you need support for AGP cards, enable the following kernel options:}}
 +
{{kernelop|desc=
 +
Device Drivers --->
 +
      Graphics support --->
 +
            <*> /dev/agpgart (AGP Support) --->
 +
                  Select an appropriate AGP driver:
 +
                  <*> AMD Opteron/Athlon64 on-CPU GART support
 +
}}
 +
 
 +
=== Editing make.conf ===
 +
 
 +
Add the following to your <code>/etc/make.conf</code>:
 
<console>
 
<console>
###i## echo "fake_overlay" > ${FAKE_OVERLAY}/profiles/repo_name
+
# ##i##nano /etc/make.conf
 +
VIDEO_CARDS="fglrx"
 
</console>
 
</console>
 +
=== Editing package.use ===
  
==== Step 2 ====
+
Then, add the following to <code>/etc/portage/package.use</code>:
Next lets create a directory to store our profile. Since we're creating a 'mix-ins' profile, we need to make sure our profile is inside a 'mix-ins' subdirectory. This is a requirement in order to ensure that the profile will show up in eselect. If your not planning on using [[Package:Eselect|eselect]] then there's no requirement to use 'mix-ins'
+
 
<console>
 
<console>
###i## install -d ${FAKE_OVERLAY}/profiles/fake_profile/mix-ins/fake_pro
+
###i## nano /etc/portage/package.use
 +
x11-drivers/ati-drivers qt4
 
</console>
 
</console>
 +
{{note|Feel free to add or remove use flags as you see fit. For example, if you do not want amdcccle support, remove the qt4 use flag.}}
 +
== Installing ==
  
Now that we have a directory for our profile, lets go ahead and add our settings. Global USE settings go in <code>make.defaults</code>, package specific USE settings go in <code>package.use</code>:
+
=== Emerging the package ===
 
+
To emerge the drivers, run the following command:
 
<console>
 
<console>
###i## cd ${FAKE_OVERLAY}/profiles/fake_profile/mix-ins/fake_pro
+
###i## emerge -av --changed-use --deep @world
###i## echo 'USE="$USE dummy"' >> make.defaults
+
###i## echo 'sys-apps/not-exist yummy' >> package.use
+
 
</console>
 
</console>
  
{{note | No matter if your using funtoo or gentoo, profile settings all work the same. For more information please check the portage man page.}}
+
== Configuring ==
  
=== Adding to eselect ===
+
Next, set ati-drivers to manage the system's OpenGL and OpenCL implementations:
[[Package:Eselect|eselect]] reads from the file <code>profiles.eselect.desc</code> in your profiles directory.
+
<console>
 +
###i## eselect opengl set ati
 +
###i## eselect opencl set amd
 +
</console>
  
Format is:  
+
Afterwards, run <code>aticonfig</code> to modify the X-server configuration file to work with the ati-drivers:  
<pre>
+
<console>
Type Name Status NoMix
+
###i## aticonfig --initial
</pre>
+
</console>
  
{{note | For more information about this Format, Please look in <code>/usr/portage/profiles/profiles.eselect.example</code>}}
+
{{tip|If you would like to have a full-resolution framebuffer with ati-drivers, check out [[uvesafb| uvesafb]]}}
 +
 
 +
== Troubleshooting ==
 +
=== I am using a HDMI connection, and my monitor's display has a black border around it. ===
 +
Disable overscan using the following command, as root:
  
 
<console>
 
<console>
###i## echo 'mix-ins fake_profile/mix-ins/fake_pro testing' >> ${FAKE_OVERLAY}/profiles/profiles.eselect.desc
+
# ##i##aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0
 
</console>
 
</console>
  
Watch the result:
+
You may need to restart your X session.
 +
 
 +
=== GNOME 3 windows only refresh when I drag them. ===
 +
This is a known issue, reported in [http://bugs.funtoo.org/browse/FL-1130 Funtoo Bug 1130]. This issue has been fixed by addressing a bug in cogl -- upgrade to cogl-1.12.2-r2 to fix it.
 +
 
 +
=== Compton with backend glx does not work well with ati-drivers ===
 +
Try running compton with the following switches:
 
<console>
 
<console>
###i## eselect profile list
+
###i## compton --backend glx --vsync none --paint-on-overlay
 
</console>
 
</console>
  
[[Category:Portage]]
+
[[Category:Video Cards]]
[[Category:Labs]]
+
[[Category:First Steps]]
[[Category:HOWTO]]
+
{{EbuildFooter}}
[[Category:Featured]]
+

Revision as of 23:26, October 31, 2014

x11-drivers/ati-drivers


Current Maintainer(s):Daniel Robbins
Source Repository:Funtoo Overlay

Summary: Accelerated ATI/AMD binary drivers for Radeon HD 5000 and newer chipsets.

Use Flags

qt4
Install qt4 dependent optional tools (e.g Catalyst Control Panel)
modules
Build the kernel modules
disable-watermark
Do a potentially dangerous binary search and replace to disable watermark
pax_kernel
Enable pax kernel specific patches
vaapi
Enabled Video Acceleration API

AMD Catalyst Video Drivers

Introduction

x11-drivers/ati-drivers (often referred to as "fglrx", the name of its kernel module) is the proprietary, accelerated driver for AMD (ATI) graphics cards.

Preparing to Install

Mask xorg > 1.16

This package doesn't work with the latest unmasked version of xorg-server (1.16). However, xorg-server-1.15 works just fine, so it's easy enough to fix this. Add the following to /etc/portage/package.mask:

/etc/portage/package.mask
>=x11-base/xorg-server-1.16

If X is already installed, force it to downgrade by typing:

# emerge -auDN world

A few packages will downgrade, and you'll be ready to go.

Configuring the kernel

Configure the kernel as follows. Note that the Direct Rendering Manager is not enabled. It's possible to have it selected as a kernel module, but should not be built-in to your kernel.


[*] Enable loadable module support
Processor type and features --->
      [*] MTRR (Memory Type Range Register) support
Bus options (PCI etc.) --->
      [*] PCI Express Port Bus Support
      [*] Message Signaled Interrupts (MSI and MSI-X)
Device Drivers --->
      Graphics support --->
            < > Direct Rendering Manager (xFree86 4.1.0 and higher DRI support) --->

Note

If you need support for AGP cards, enable the following kernel options:

Device Drivers --->
      Graphics support --->
            <*> /dev/agpgart (AGP Support) --->
                  Select an appropriate AGP driver:
                  <*> AMD Opteron/Athlon64 on-CPU GART support

Editing make.conf

Add the following to your /etc/make.conf:

# nano /etc/make.conf
VIDEO_CARDS="fglrx"

Editing package.use

Then, add the following to /etc/portage/package.use:

# nano /etc/portage/package.use
x11-drivers/ati-drivers qt4

Note

Feel free to add or remove use flags as you see fit. For example, if you do not want amdcccle support, remove the qt4 use flag.

Installing

Emerging the package

To emerge the drivers, run the following command:

# emerge -av --changed-use --deep @world

Configuring

Next, set ati-drivers to manage the system's OpenGL and OpenCL implementations:

# eselect opengl set ati
# eselect opencl set amd

Afterwards, run aticonfig to modify the X-server configuration file to work with the ati-drivers:

# aticonfig --initial

Tip

If you would like to have a full-resolution framebuffer with ati-drivers, check out uvesafb

Troubleshooting

I am using a HDMI connection, and my monitor's display has a black border around it.

Disable overscan using the following command, as root:

# aticonfig --set-pcs-val=MCIL,DigitalHDTVDefaultUnderscan,0

You may need to restart your X session.

GNOME 3 windows only refresh when I drag them.

This is a known issue, reported in Funtoo Bug 1130. This issue has been fixed by addressing a bug in cogl -- upgrade to cogl-1.12.2-r2 to fix it.

Compton with backend glx does not work well with ati-drivers

Try running compton with the following switches:

# compton --backend glx --vsync none --paint-on-overlay