Difference between pages "Install/Partitioning" and "Video"

(Difference between pages)
(Old-School (BIOS/MBR) Method)
 
m (clean up a bit to drobbins's specifications, alphabetize a bit, left some xorg config stuff as its not in other pages, add framebuffer specific to other.)
 
Line 1: Line 1:
<noinclude>
+
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.
{{InstallPart|the process of partitioning and filesystem creation}}
+
</noinclude>
+
=== Prepare Hard Disk ===
+
  
==== Introduction ====
+
{{Important|Editors: OK, I've decided to change the plans for this page. This is going to be a page similar to [[Subarches]]. The idea is to help people to identify their hardware and guide them toward the correct driver for their chipset. The focus will be primarily on defining the types of hardware that are supported, what products they appear in, and how to know if you have this hardware, and also give people good general overview of options available to them (free vs. proprietary, etc.) Other important topics that apply to all drivers, like <code>eselect opengl</code> should be covered as well. This will then serve as the meta-page for Video support, with individual ebuild pages holding the details for each driver.}}
  
In earlier times, there was only one way to boot a PC-compatible computer. All of our desktops and servers had a standard BIOS, all our hard drives used Master Boot Records, and were partitioned using the MBR partition scheme. And we liked it that way!
+
== Video Drivers ==
  
Then, along came EFI and UEFI, which are new-style firmware designed to boot systems, along with GPT partition tables to support disks larger than 2.2TB. All of the sudden, we had a variety of options to boot Linux systems, turning what once was a one-method-fits-all approach into something a lot more complex.
+
First determine which video card you have and which driver it requires.
  
Let's take a moment to review the boot options available to you. This Install Guide uses, and recommends, the old-school method of BIOS booting and using an MBR. It works. There's nothing wrong with it. If your system disk is 2TB or smaller in size, it won't prevent you from using all of your disk's capacity, either.
+
<console>###i## lspci -nn | grep -i vga</console>
  
But, there are some situations where the old-school method isn't optimal. If you have a system disk >2TB in size, then MBR partitions won't allow you to access all your storage. So that's one reason. Another reason is that there are some so-called "PC" systems out there that don't support BIOS booting anymore, and force you to use UEFI to boot. So, out of compassion for people who fall into this predicament, this Install Guide documents UEFI booting too.
+
to see what your system is using:
 +
<console>###i## lspci -k</console>
  
Our recommendation is still to go old-school unless you have reason not to. We call this method the '''BIOS + GRUB (MBR)''' method. It's the traditional method of setting up a PC-compatible system to boot Linux.
+
Once hardware is determined use the following sections to add or edit the <code>VIDEO_CARDS</code> global variable in <code>/etc/portage/[[make.conf]]</code>.  For more granular details including kernel configurations, frame buffer settings, and xorg configurations: see specific package page links.
  
If you need to use UEFI to boot, we recommend not using the MBR at all for booting, as some systems support this, but others don't. Instead, we recommend using UEFI to boot GRUB, which in turn will load Linux. We refer to this method as the '''UEFI + GRUB (GPT)''' method.
+
=== 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.
  
And yes, there are even more methods, some of which are documented on the [[Boot Methods]] page. We used to recommend a '''BIOS + GRUB (GPT)''' method but it is not consistently supported across a wide variety of hardware.
+
==== Cards ====
 +
* '''NEED TABLE''': available drivers, hardware gen, required VIDEO_CARDS variable
  
'''The big question is -- which boot method should you use?''' Here's how to tell.
+
==== {{package|x11-drivers/xf86-video-ati}} ====
 +
Open source drivers:
 +
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
 +
VIDEO_CARDS="radeon"
 +
}}
  
;Principle 1 - Old School: If you can reliably boot System Rescue CD and it shows you an initial light blue menu, you are booting the CD using the BIOS, and it's likely that you can thus boot Funtoo Linux using the BIOS. So, go old-school and use BIOS booting, ''unless'' you have some reason to use UEFI, such as having a >2.2TB system disk. In that case, see Principle 2, as your system may also support UEFI booting.
+
==== {{Package|x11-drivers/ati-drivers}} ====
 +
Closed source drivers:
 +
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
 +
VIDEO_CARDS="fglrx"
 +
}}
  
;Principle 2 - New School: If you can reliably boot System Rescue CD and it shows you an initial black and white menu -- congratulations, your system is configured to support UEFI booting. This means that you are ready to install Funtoo Linux to boot via UEFI. Your system may still support BIOS booting, but just be trying UEFI first. You can poke around in your BIOS boot configuration and play with this.
+
=== Intel ===
 +
==== Cards ====
 +
* '''NEED TABLE''': available drivers, hardware gen, VIDEO_CARDS variable
  
;What's the Big Difference between Old School and New School?: Here's the deal. If you go with old-school MBR partitions, your <code>/boot</code> partition will be an ext2 filesystem, and you'll use <code>fdisk</code> to create your MBR partitions. If you go with new-school GPT partitions and UEFI booting, your <code>/boot</code> partition will be a vfat filesystem, because this is what UEFI is able to read, and you will use <code>gdisk</code> to create your GPT partitions. And you'll install GRUB a bit differently. That's about all it comes down to, in case you were curious.
+
==== gen 1&2 ====
 +
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
 +
VIDEO_CARDS="intel"
 +
}}
  
{{Note|'''Some motherboards may appear to support UEFI, but don't.''' Do your research. For example, the Award BIOS in my Gigabyte GA-990FXA-UD7 rev 1.1 has an option to enable UEFI boot for CD/DVD. '''This is not sufficient for enabling UEFI boot for hard drives and installing Funtoo Linux.''' UEFI must be supported for both removable media (so you can boot System Rescue CD using UEFI) as well as fixed media (so you can boot your new Funtoo Linux installation.) It turns out that later revisions of this board (rev 3.0) have a new BIOS that fully supports UEFI boot.  This may point to a third principle -- know thy hardware.}}
+
==== gen 3 ====
 +
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
 +
VIDEO_CARDS="intel i915"
 +
}}
  
==== Old-School (BIOS/MBR) Method ====
+
==== gen 4+ ====
 +
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
 +
VIDEO_CARDS="intel i965"
 +
}}
  
{{Note|Use this method if you are booting using your BIOS, and if your System Rescue CD initial boot menu was light blue. If you're going to use the new-school method, [[#New-School (UEFI/GPT) Method|click here to jump down to UEFI/GPT.]]}}
 
  
===== Preparation =====
+
=== Nvidia ===
 +
Users can choose between Open (nouveau) and Closed-Source {{package|x11-drivers/nvidia-drivers}} video drivers.  Open nouveau drivers are preferred as many kernels conflict with closed-source drivers.
  
First, it's a good idea to make sure that you've found the correct hard disk to partition. Try this command and verify that <code>/dev/sda</code> is the disk that you want to partition:
+
==== Cards ====
 +
* '''NEED TABLE''': nouveau + nvidia-drivers versions, hardware gen, required VIDEO_CARDS variable
  
<console>
+
==== Nouveau ====
# ##i##fdisk -l /dev/sda
+
Open source drivers:
 +
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
 +
VIDEO_CARDS="nouveau"
 +
}}
  
Disk /dev/sda: 640.1 GB, 640135028736 bytes, 1250263728 sectors
+
==== {{Package|x11-drivers/nvidia-drivers}}====
Units = sectors of 1 * 512 = 512 bytes
+
Closed source drivers:
Sector size (logical/physical): 512 bytes / 512 bytes
+
{{file|name=/etc/portage/make.conf|lang=|desc=set video global variable|body=
I/O size (minimum/optimal): 512 bytes / 512 bytes
+
VIDEO_CARDS="nvidia"
Disk label type: gpt
+
}}
  
 +
see [[Uvesafb]] for framebuffering.
  
#        Start          End    Size  Type            Name
+
=== Other ===
1        2048  1250263694  596.2G  Linux filesyste Linux filesystem
+
==== Multiple Cards (Hybrid Graphics) ====
</console>
+
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"
 +
}}
  
Now, it's recommended that you erase any existing MBR or GPT partition tables on the disk, which could confuse the system's BIOS at boot time. We do this using <code>sgdisk</code>:
+
==== Virtual Machine Guests ====
{{fancywarning|This will make any existing partitions inaccessible! You are '''strongly''' cautioned and advised to backup any critical data before proceeding.}}
+
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"
 +
}}
  
<console>
+
==== Framebuffer Specific ====
# ##i##sgdisk --zap-all /dev/sda
+
=====[[Uvesafb]]=====
  
Creating new GPT entries.
+
====={{package|x11-drivers/xf86-video-vesa}}=====
GPT data structures destroyed! You may now partition the disk using fdisk or
+
other utilities.
+
</console>
+
  
This output is also nothing to worry about, as the command still succeded:
+
==== Raspberry Pi ====
 +
{{SectionNeedsUpdates}}
  
<console>
+
== Install ==
***************************************************************
+
Once your video cards variables are set in [[make.conf]], and kernel configurations are arranged merge changes into your system:
Found invalid GPT and valid MBR; converting MBR to GPT format
+
in memory.  
+
***************************************************************
+
</console>
+
  
===== Partitioning =====
+
<console>###i## emerge -avuND world</console>
 
+
Now we will use <code>fdisk</code> to create the MBR partition table and partitions:
+
 
+
<console>
+
# ##i##fdisk /dev/sda
+
</console>
+
 
+
Within <code>fdisk</code>, follow these steps:
+
 
+
'''Empty the partition table''':
+
 
+
<console>
+
Command (m for help): ##i##o ↵
+
</console>
+
 
+
'''Create Partition 1''' (boot):
+
 
+
<console>
+
Command (m for help): ##i##n ↵
+
Partition type (default p): ##i##↵
+
Partition number (1-4, default 1): ##i##↵
+
First sector: ##i##↵
+
Last sector: ##i##+128M ↵
+
</console>
+
 
+
'''Create Partition 2''' (swap):
+
 
+
<console>
+
Command (m for help): ##i##n ↵
+
Partition type (default p): ##i##↵
+
Partition number (2-4, default 2): ##i##↵
+
First sector: ##i##↵
+
Last sector: ##i##+2G ↵
+
Command (m for help): ##i##t ↵
+
Partition number (1,2, default 2): ##i## ↵
+
Hex code (type L to list all codes): ##i##82 ↵
+
</console>
+
 
+
'''Create the root partition:'''
+
 
+
<console>
+
Command (m for help): ##i##n ↵
+
Partition type (default p): ##i##↵
+
Partition number (3,4, default 3): ##i##↵
+
First sector: ##i##↵
+
Last sector: ##i##↵
+
</console>
+
 
+
'''Verify the partition table:'''
+
 
+
<console>
+
Command (m for help): ##i##p
+
 
+
Disk /dev/sda: 298.1 GiB, 320072933376 bytes, 625142448 sectors
+
Units: sectors of 1 * 512 = 512 bytes
+
Sector size (logical/physical): 512 bytes / 512 bytes
+
I/O size (minimum/optimal): 512 bytes / 512 bytes
+
Disklabel type: dos
+
Disk identifier: 0x82abc9a6
+
 
+
Device    Boot    Start      End    Blocks  Id System
+
/dev/sda1          2048    264191    131072  83 Linux
+
/dev/sda2        264192  4458495  2097152  82 Linux swap / Solaris
+
/dev/sda3        4458496 625142447 310341976  83 Linux
+
</console>
+
 
+
'''Write the parition table to disk:'''
+
 
+
<console>
+
Command (m for help): ##i##w
+
</console>
+
 
+
Your new MBR partition table will now be written to your system disk.
+
 
+
{{Note|You're done with partitioning! Now, jump over to [[#Creating filesystems|Creating filesystems]].}}
+
 
+
==== New-School (UEFI/GPT) Method ====
+
 
+
{{Note|Use this method if you are booting using UEFI, and if your System Rescue CD initial boot menu was black and white. If it was light blue, this method will not work.}}
+
 
+
The <tt>gdisk</tt> commands to create a GPT partition table are as follows. Adapt sizes as necessary, although these defaults will work for most users. Start <code>gdisk</code>:
+
 
+
<console>
+
# ##i##gdisk
+
</console>
+
 
+
Within <tt>gdisk</tt>, follow these steps:
+
 
+
'''Create a new empty partition table''' (This ''will'' erase all data on the disk when saved):
+
 
+
<console>
+
Command: ##i##o ↵
+
This option deletes all partitions and creates a new protective MBR.
+
Proceed? (Y/N): ##i##y ↵
+
</console>
+
 
+
'''Create Partition 1''' (boot):
+
 
+
<console>
+
Command: ##i##n ↵
+
Partition Number: ##i##1 ↵
+
First sector: ##i##↵
+
Last sector: ##i##+500M ↵
+
Hex Code: ##i##↵
+
</console>
+
 
+
'''Create Partition 2''' (swap):
+
 
+
<console>
+
Command: ##i##n ↵
+
Partition Number: ##i##2 ↵
+
First sector: ##i##↵
+
Last sector: ##i##+4G ↵
+
Hex Code: ##i##8200 ↵
+
</console>
+
 
+
'''Create Partition 3''' (root):
+
 
+
<console>
+
Command: ##i##n ↵
+
Partition Number: ##i##3 ↵
+
First sector: ##i##↵
+
Last sector: ##i##↵##!i## (for rest of disk)
+
Hex Code: ##i##↵
+
</console>
+
 
+
Along the way, you can type "<tt>p</tt>" and hit Enter to view your current partition table. If you make a mistake, you can type "<tt>d</tt>" to delete an existing partition that you created. When you are satisfied with your partition setup, type "<tt>w</tt>" to write your configuration to disk:
+
 
+
'''Write Partition Table To Disk''':
+
 
+
<console>
+
Command: ##i##w ↵
+
Do you want to proceed? (Y/N): ##i##Y ↵
+
</console>
+
 
+
The partition table will now be written to disk and <tt>gdisk</tt> will close.
+
 
+
Now, your GPT/GUID partitions have been created, and will show up as the following ''block devices'' under Linux:
+
 
+
* <tt>/dev/sda1</tt>, which will be used to hold the <tt>/boot</tt> filesystem,
+
* <tt>/dev/sda2</tt>, which will be used for swap space, and
+
* <tt>/dev/sda3</tt>, which will hold your root filesystem.
+
 
+
==== Creating filesystems ====
+
 
+
{{Note|This section covers both BIOS ''and'' UEFI installs. Don't skip it!}}
+
 
+
Before your newly-created partitions can be used, the block devices need to be initialized with filesystem ''metadata''. This process is known as ''creating a filesystem'' on the block devices. After filesystems are created on the block devices, they can be mounted and used to store files.
+
 
+
Let's keep this simple. Are you using old-school MBR partitions? If so, let's create an ext2 filesystem on /dev/sda1:
+
 
+
<console>
+
# ##i##mkfs.ext2 /dev/sda1
+
</console>
+
 
+
If you're using new-school GPT partitions for UEFI, you'll want to create a vfat filesystem on /dev/sda1, because this is what UEFI is able to read:
+
 
+
<console>
+
# ##i##mkfs.vfat -F 32 /dev/sda1
+
</console>
+
 
+
Now, let's create a swap partition. This partition will be used as disk-based virtual memory for your Funtoo Linux system.
+
 
+
You will not create a filesystem on your swap partition, since it is not used to store files. But it is necessary to initialize it using the <code>mkswap</code> command. Then we'll run the <code>swapon</code> command to make your newly-initialized swap space immediately active within the live CD environment, in case it is needed during the rest of the install process:
+
 
+
<console>
+
# ##i##mkswap /dev/sda2
+
# ##i##swapon /dev/sda2
+
</console>
+
 
+
Now, we need to create a root filesystem. This is where Funtoo Linux will live. We generally recommend ext4 or XFS root filesystems. If you're not sure, choose ext4. Here's how to create a root ext4 filesystem:
+
 
+
<console>
+
# ##i##mkfs.ext4 /dev/sda3
+
</console>
+
 
+
...and here's how to create an XFS root filesystem, if you choose to use XFS:
+
 
+
<console>
+
# ##i##mkfs.xfs /dev/sda3
+
</console>
+
 
+
Your filesystems (and swap) have all now been initialized, so that that can be mounted (attached to your existing directory heirarchy) and used to store files. We are ready to begin installing Funtoo Linux on these brand-new filesystems.
+
 
+
{{fancywarning|1=
+
When deploying an OpenVZ host, please use ext4 exclusively. The Parallels development team tests extensively with ext4, and modern versions of <code>openvz-rhel6-stable</code> are '''not''' compatible with XFS, and you may experience kernel bugs.
+
}}
+
  
==== Mounting filesystems ====
+
{{note|we should change world to the specific package that pulls in all the other video stuff so if this page is ran on an old stale system it doesn't pull in 50 bazillion packages}}
  
Mount the newly-created filesystems as follows, creating <code>/mnt/funtoo</code> as the installation mount point:
+
==Configure X.org==
 +
===Nvidia===
 +
nvidia-xconfig, etc.
  
<console>
+
===AMD/ATI===
# ##i##mkdir /mnt/funtoo
+
aticonfig, etc.
# ##i##mount /dev/sda3 /mnt/funtoo
+
<console># ##i##aticonfig --initial --input=/etc/X11/xorg.conf</console>
# ##i##mkdir /mnt/funtoo/boot
+
# ##i##mount /dev/sda1 /mnt/funtoo/boot
+
</console>
+
  
Optionally, if you have a separate filesystem for <code>/home</code> or anything else:
+
==Finalize and test==
 +
==== 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>
  
<console>
+
==== eselect opencl ====
# ##i##mkdir /mnt/funtoo/home
+
{{note|some setups can make use of opencl}}
# ##i##mount /dev/sda4 /mnt/funtoo/home
+
<console>###i##eselect opencl list
</console>
+
###i##eselect opencl set 1</console>
 +
* reboot/test process
  
If you have <code>/tmp</code> or <code>/var/tmp</code> on a separate filesystem, be sure to change the permissions of the mount point to be globally-writeable after mounting, as follows:
+
==Troubleshooting==
 +
* what to do if only a blank screen
  
<console>
+
Category:Video Cards wrap me with braces when im snazzy
# ##i##chmod 1777 /mnt/funtoo/tmp
+
Category:First Steps wrap me with braces when im snazzy
</console>
+

Revision as of 08:44, November 25, 2014

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.

Important

Editors: OK, I've decided to change the plans for this page. This is going to be a page similar to Subarches. The idea is to help people to identify their hardware and guide them toward the correct driver for their chipset. The focus will be primarily on defining the types of hardware that are supported, what products they appear in, and how to know if you have this hardware, and also give people good general overview of options available to them (free vs. proprietary, etc.) Other important topics that apply to all drivers, like eselect opengl should be covered as well. This will then serve as the meta-page for Video support, with individual ebuild pages holding the details for each driver.

Video Drivers

First determine which video card you have and which driver it requires.

# lspci -nn | grep -i vga

to see what your system is using:

# lspci -k

Once hardware is determined use the following sections to add or edit the VIDEO_CARDS global variable in /etc/portage/make.conf. For more granular details including kernel configurations, frame buffer settings, and xorg configurations: see specific package page links.

AMD/ATI

Users can choose between free (Radeon Video Drivers) and proprietary (AMD Catalyst Video Drivers) video drivers. The free drivers are recommended as the proprietary drivers are not currently maintained very well by AMD.

Cards

  • NEED TABLE: available drivers, hardware gen, required VIDEO_CARDS variable

Radeon Video Drivers

Open source drivers:

/etc/portage/make.conf: set video global variable
VIDEO_CARDS="radeon"

AMD Catalyst Video Drivers

Closed source drivers:

/etc/portage/make.conf: set video global variable
VIDEO_CARDS="fglrx"

Intel

Cards

  • NEED TABLE: available drivers, hardware gen, VIDEO_CARDS variable

gen 1&2

/etc/portage/make.conf: set video global variable
VIDEO_CARDS="intel"

gen 3

/etc/portage/make.conf: set video global variable
VIDEO_CARDS="intel i915"

gen 4+

/etc/portage/make.conf: set video global variable
VIDEO_CARDS="intel i965"


Nvidia

Users can choose between Open (nouveau) and Closed-Source NVIDIA Linux Display Drivers video drivers. Open nouveau drivers are preferred as many kernels conflict with closed-source drivers.

Cards

  • NEED TABLE: nouveau + nvidia-drivers versions, hardware gen, required VIDEO_CARDS variable

Nouveau

Open source drivers:

/etc/portage/make.conf: set video global variable
VIDEO_CARDS="nouveau"

NVIDIA Linux Display Drivers

Closed source drivers:

/etc/portage/make.conf: set video global variable
VIDEO_CARDS="nvidia"

see Uvesafb for framebuffering.

Other

Multiple Cards (Hybrid Graphics)

recommended make.conf VIDEO_CARDS Hybrid intel/ati:

/etc/portage/make.conf: set video global variable
VIDEO_CARDS="fglrx intel"

Virtual Machine Guests

These settings are used by Parallels VM's and presumably others

/etc/portage/make.conf: set video global variable
VIDEO_CARDS="vesa vga"

Framebuffer Specific

Uvesafb
x11-drivers/xf86-video-vesa (package not on wiki - please add)

Raspberry Pi

Important

This section is in need of updates.


Install

Once your video cards variables are set in make.conf, and kernel configurations are arranged merge changes into your system:

# emerge -avuND world

Note

we should change world to the specific package that pulls in all the other video stuff so if this page is ran on an old stale system it doesn't pull in 50 bazillion packages

Configure X.org

Nvidia

nvidia-xconfig, etc.

AMD/ATI

aticonfig, etc.

# aticonfig --initial --input=/etc/X11/xorg.conf

Finalize and test

eselect opengl

Note

change the number of card eselected to match the card of your system

# eselect opengl list
# eselect opengl set 1

eselect opencl

Note

some setups can make use of opencl

#eselect opencl list
#eselect opencl set 1
  • reboot/test process

Troubleshooting

  • what to do if only a blank screen

Category:Video Cards wrap me with braces when im snazzy Category:First Steps wrap me with braces when im snazzy