Difference between pages "Video" and "FLOP:Ports-2015"

From Funtoo
(Difference between pages)
Jump to navigation Jump to search
 
 
Line 1: Line 1:
The purpose of this page is to give you streamlined steps for setting up your video hardware for X, and desktop environments such as GNOME.
{{FLOP
 
|Created on=2015/02/23
{{Note|Editors: Keep this page relatively simple, and link to dedicated pages for more exhaustive coverage of a particular video driver. These instructions are intended to get users set up as quickly and simply as possible, without having to wade through lots of minute details.}}
|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.
 
|Author=Mgorny,
== Video Drivers ==
|Reference Bug=FL-1877
 
first determine which video card you have and which driver it requires.
 
<console>###i## lspci -k</console>
 
=== Intel ===
Add or Edit the <code>VIDEO_CARDS</code> global variable in <code>/etc/make.conf</code> to the value in the following table appropriate for the Intel graphics hardware.
* '''NEED TABLE''': available drivers, hardware gen, VIDEO_CARDS variable
gen 1&2:
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
VIDEO_CARDS="intel"
}}
gen 3
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
VIDEO_CARDS="intel i915"
}}
gen 4+
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
VIDEO_CARDS="intel i965"
}}
* custom kernel menuconfig settings
 
=== AMD/ATI ===
Users can choose between free ({{Package|x11-drivers/xf86-video-ati}}) and proprietary ({{Package|x11-drivers/ati-drivers}}) video drivers. The free drivers are recommended as the proprietary drivers are not currently maintained very well by AMD.
 
Add or Edit the VIDEO_CARDS global variable in <code>/etc/make.conf</code> to the value in the following table appropriate for the AMD/ATI graphics hardware.
* '''NEED TABLE''': available drivers, hardware gen, required VIDEO_CARDS variable
Open source drivers:
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
VIDEO_CARDS="radeon"
}}
}}
== 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.


Closed source drivers:
== Changes ==
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
=== History cut-off ===
VIDEO_CARDS="fglrx"
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.
}}
 
* custom kernel menuconfig settings
 
=== Nvidia ===
Users can choose between Open (nouveau) and Closed-Source (nvidia) video drivers. Add or Edit the VIDEO_CARDS global variable in /etc/portage/make.conf to the value in the following table appropriate for the Nvidia graphics hardware.
* '''NEED TABLE''': nouveau + nvidia-drivers versions, hardware gen, required VIDEO_CARDS variable
Open source drivers:
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
VIDEO_CARDS="nouveau"
}}
Closed source [[Package:NVIDIA_Linux_Display_Drivers | drivers]]:
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
VIDEO_CARDS="nvidia"
}}
* custom kernel menuconfig settings
different settings for nouveau and nvidia
 
=== Other ===
==== Multiple Cards (Hybrid Graphics) ====
recommended make.conf VIDEO_CARDS
Hybrid intel/ati:
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
VIDEO_CARDS="fglrx intel"
}}
 
==== Virtual Machine Guests ====
(details?)
These settings are used by Parallels VM's and presumably others
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
VIDEO_CARDS="vesa vga"
}}
 
==== Raspberry Pi ====
(details?)
 
== Install ==
once your video cards variable is set in make.conf merge changes into your system
 
<console>###i## emerge -avuND world</console>
 
eselect profile?


==Configure X.org==
=== Portage upgrade / repos.conf switch ===
===Intel===
Reference: {{Bug|FL-1761}}, [[Repository Configuration]]
?
===Nvidia===
nvidia-xconfig, etc.


===AMD/ATI===
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.
aticonfig, etc.
<console># ##i##aticonfig --initial --input=/etc/X11/xorg.conf</console>


==Configure framebuffer==
=== Repository rename ===
What to put in boot.conf etc. Assumes that the kernel is correctly configured.
Reference: {{Bug|FL-1801}}
===Intel===
?
===Nvidia===
* settings for nouveau
* settings for nvidia-drivers
* How to use sys-apps/v86d
===AMD/ATI===
* settings for fglxr
* settings for radeon, etc.


==Finalise and test==
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.
* eselect opengl
{{note|change the number of card eselected to match the card of your system}}
<console>###i## eselect opengl list
###i## eselect opengl set 1</console>
* eselect opencl
{{note|some setups can make use of opencl}}
<console>###i##eselect opencl list
###i##eselect opencl set 1</console>
* reboot/test process


==Tips and Tricks==
== 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 <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.


===compressed video playback===
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''.


* VDPAU, VA-API
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.
* how to set up mplayer, etc.


==Troubleshooting==
{{FLOPFooter}}
* what to do if only a blank screen
* nvidia-drivers users updating media-libs/mesa

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.