Difference between pages "Package:Radeon Video Drivers" and "FLOP:Ports-2015"

From Funtoo
(Difference between pages)
Jump to navigation Jump to search
 
 
Line 1: Line 1:
{{Ebuild
{{FLOP
|Summary=Open source drivers for AMD video cards.
|Created on=2015/02/23
|CatPkg=x11-drivers/xf86-video-ati
|Summary=Collection of ideas and changes for the ports-2015 tree. The goal is to perform many scheduled changes with a single user configuration change.
|Maintainer=
|Author=Mgorny,
|Homepage=http://cgit.freedesktop.org/xorg/driver/xf86-video-ati/
|Reference Bug=FL-1877
}}
}}
If you have become frustrated by the somewhat poorly maintained <code>ati-drivers</code> (the closed source video drivers for AMD cards) or if you would rather use open source video drivers, this is the package for you. This page outlines how to install and configure the open source <code>xf86-video-ati</code> drivers.  
== Procedure ==
Users of ports-2012 tree will be informed that the current repository is deprecated, and provided with complete migration instructions. The instructions will cover both necessary and optional changes that can be done conveniently along with the necessary switch.


== Preparation ==
== Changes ==
=== Check to see if your card is an AMD card ===
=== History cut-off ===
If you do not know if you have an AMD graphics card or not, you can run the following command:
As an implication of starting a new tree, all history is cut-off. While users were cloning the repository with --depth=1, old clones have accumulated a large history of changes. This history will be discarded with the new clone. This will significatly decrease the size of portage tree and the size of portage tree compressed tarball, if someone prefer to use it. Eventually, portage tree will grow up again.
<console>
###i## lspci | grep VGA
</console>


If the output produces information that contains something like "01:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Pitcairn PRO [Radeon HD 7850]," then you have an AMD graphics card and continue to the next step in the install process. If <code>lspci</code> does not provide you with something like this, and instead contains Intel or NVIDIA, consult the main [[Video]] page for information.
=== Portage upgrade / repos.conf switch ===
Reference: {{Bug|FL-1761}}, [[Repository Configuration]]


=== Preparing the kernel ===
As a part of upstream Portage changes, the upgrade is accompanied with some configuration file changes. Aside them, repository configuration is moved to repos.conf and the repository name becomes significant. Merging this with ports-2015 switch allows users to update the configuration in new format already.
Now that you know you have an AMD graphics card, you can prepare the kernel for <code>xf86-video-ati</code>. Begin by ensuring that MTRR is enabled, then enable support for AGP graphics cards (only necessary if your card sits in an AGP slot -- not a PCIe one). After enabling AGP (if you needed it), you should enable support for the DRM and modesetting on radeon.:
{{kernelop|title= |desc=
Processor type and features --->
    [*] MTRR (Memory Type Range Register) support


Device Drivers --->
=== Repository rename ===
    Graphics support --->
Reference: {{Bug|FL-1801}}
        (If you have an AGP-based graphics card, enable these options)
 
        <*> /dev/agpgart (AGP Support) --->
Right now, the main repository inherits the name 'gentoo'. This is a bit confusing, considering that it is a modified Funtoo variant of the package tree. Changing the name to 'funtoo' would improve consistency and carry some bit of 'branding' into packages. Merging this into ports-2015 switch allows users to consciously update all repository references if necessary, and combines the change with necessity of specifying repository name in repos.conf.
            <*> AMD Opteron/Athlon64 on-CPU GART support
        Direct Rendering Manager --->
            <*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) ----
            <*> ATI Radeon
                [*] Enable userspace modesetting on radeon
        Frame buffer Devices --->
            < > ATI Radon display support
}}
If you have a graphics cards with HDMI ports that you wish to use for audio, some additional configuration of the kernel is required:
{{kernelop|title= |desc=
Device Drivers --->
    <*> Sound card support --->
        <*> Advanced Linux Sound Architecture --->
            HD Audio --->
                <*>HD Audio PCI
                    (64) Pre-allocated buffer size for HD-audio drivers
                    <*> Build HDMI/DisplayPort HD-audio codec support
        [*] Dynamic device file minor numbers
        (32) Max number of sound cards
}}


=== Getting the required firmware ===
== Other possible changes ==
Many newer AMD GPU's require that you install firmware for them to function. Install the package <code>radeon-ucode</code> (Radeon microcode) for this function:
=== Filesystem structure reorganization ===
<console>
Since users will be required to clone the new repository, it may be desired to suggest some best practices for filesystem layout. This specifically includes separating ebuilds from distfiles & packages, and using a multi-repository layout. Historically, portage tree inspired by FreeBSD ports, located in <code>/usr/portage>. This FHS layout is different in BSD and in Linux and we will probably move it elsewhere, see below for a suggestion and possible pros and cons.
###i## emerge radeon-ucode
</console>


It is also possible to install Radeon microcode via the <code>linux-firmware package</code>, which contains the Radeon microcode plus a much larger selection of firmware for other types of devices:
Example layout suggested by mgorny:
# all repositories in ''/var/db/repos/${repo_name}'' (i.e. Funtoo repository in ''/var/db/repos/funtoo'', and possible overlays as other directories in ''/var/db/repos''),
# distfiles in ''/var/cache/portage/distfiles'',
# binary packages in ''/var/cache/portage/packages''.


<console>
Users can be recommended to use a separate filesystem that can handle small files efficiently for ''/var/db/repos'', e.g. btrfs, reiserfs or possibly squashfs.
# ##i##emerge linux-firmware
</console>


=== Installing the firmware into the kernel ===
{{FLOPFooter}}
{{SectionNeedsUpdates}}
{{EbuildFooter}}

Revision as of 13:50, February 23, 2015

Created on
2015/02/23
Original Author(s)
Mgorny
Status
Reference Bug
FL-1877

Funtoo Linux Optimization Proposal: Ports-2015

Collection of ideas and changes for the ports-2015 tree. The goal is to perform many scheduled changes with a single user configuration change.

Procedure

Users of ports-2012 tree will be informed that the current repository is deprecated, and provided with complete migration instructions. The instructions will cover both necessary and optional changes that can be done conveniently along with the necessary switch.

Changes

History cut-off

As an implication of starting a new tree, all history is cut-off. While users were cloning the repository with --depth=1, old clones have accumulated a large history of changes. This history will be discarded with the new clone. This will significatly decrease the size of portage tree and the size of portage tree compressed tarball, if someone prefer to use it. Eventually, portage tree will grow up again.

Portage upgrade / repos.conf switch

Reference: FL-1761, Repository Configuration

As a part of upstream Portage changes, the upgrade is accompanied with some configuration file changes. Aside them, repository configuration is moved to repos.conf and the repository name becomes significant. Merging this with ports-2015 switch allows users to update the configuration in new format already.

Repository rename

Reference: FL-1801

Right now, the main repository inherits the name 'gentoo'. This is a bit confusing, considering that it is a modified Funtoo variant of the package tree. Changing the name to 'funtoo' would improve consistency and carry some bit of 'branding' into packages. Merging this into ports-2015 switch allows users to consciously update all repository references if necessary, and combines the change with necessity of specifying repository name in repos.conf.

Other possible changes

Filesystem structure reorganization

Since users will be required to clone the new repository, it may be desired to suggest some best practices for filesystem layout. This specifically includes separating ebuilds from distfiles & packages, and using a multi-repository layout. Historically, portage tree inspired by FreeBSD ports, located in /usr/portage>. This FHS layout is different in BSD and in Linux and we will probably move it elsewhere, see below for a suggestion and possible pros and cons.

Example layout suggested by mgorny:

  1. all repositories in /var/db/repos/${repo_name} (i.e. Funtoo repository in /var/db/repos/funtoo, and possible overlays as other directories in /var/db/repos),
  2. distfiles in /var/cache/portage/distfiles,
  3. binary packages in /var/cache/portage/packages.

Users can be recommended to use a separate filesystem that can handle small files efficiently for /var/db/repos, e.g. btrfs, reiserfs or possibly squashfs.