Difference between pages "Package:Xfce4-meta" and "Uvesafb"

From Funtoo
(Difference between pages)
Jump to navigation Jump to search
(Removed the table of plugins at the bottom of the page, as that information is now contained by the XFCE Panel Plugins page and the Thunar Plugins page.)
 
(Removed ugly white boxes inside the tip and note templates on the page.)
 
Line 1: Line 1:
{{Ebuild
== ''How to'' : Framebuffer: Userspace VESA VGA graphics support ==
|Summary=Meta package for XFCE desktop
Uvesafb is an improved framebuffer driver for Linux systems with some enhancements compared to vesa. Uvesafb can allow you to get a full-resolution console, even if you have installed a graphics driver that does not support full-resolution consoles. Examples of drivers like these: [[Package:AMD_Catalyst_Video_Drivers| ati-drivers]] and NVidia-drivers.
|CatPkg=xfce-base/xfce4-meta
|Maintainer=Oleg
}}
== About Xfce ==
<blockquote>
Xfce is a lightweight desktop environment for UNIX-like operating systems. It aims to be fast and low on system resources, while still being visually appealing and user friendly.
 
Xfce embodies the traditional UNIX philosophy of modularity and re-usability. It consists of a number of components that provide the full functionality one can expect of a modern desktop environment. They are packaged separately and you can pick among the available packages to create the optimal personal working environment.
 
Another priority of Xfce is adhereance to standards, specifically those defined at [http://freedesktop.org/ freedesktop.org]. [[http://www.xfce.org/about/ About XFCE]]
</blockquote>
== Installation ==
 
Before emerging Xfce you need to:


Check that you have enabled the USE flags necessary for a XFCE desktop environment. Set your profile to "xfce" via [[Funtoo_Linux_First_Steps#Changing_profile|mix-ins]], as follows:
== Kernel configuration ==
{{console|body=
Before we emerge the required packages for uvesafb functionality, we have to configure the kernel properly.
###i## epro mix-ins +xfce
{{Kernelop|title= |desc=
}}
Device Drivers --->
Then, verify that you have the [[Funtoo_Linux_First_Steps#X.Org|X.Org Server]] configured properly. If X.Org is installed on your system, you are now ready to install Xfce. Install the meta-package, which pulls in all of the components you need for a minimal Xfce installation:
    <*> Connector - unified userspace <-> kernelspace linker  --->


{{console|body=
    Graphics support --->
###i## emerge xfce4-meta
        Frame buffer devices --->
        [*] Support for frame buffer devices  --->
            [*] Enable firmware EDID
            <*> Userspace VESA VGA graphics support
}}
}}
== Running Xfce ==
There are several different ways to start Xfce:
* Editing the {{c|.xinitrc}} file in your user's home directory and using {{c|startx}} from a text console.
* Using a display manager (e.g. SLiM, GDM, and KDM).
* Configuring your shell profile to automatically start Xfce upon a successful login.
=== .xinitrc ===


The most common way to start the environment is to configure {{c|~/.xinitrc}} to launch an Xfce session. The proper way to launch Xfce from the terminal is by using {{c|startxfce4}} combined with {{c|ck-launch-session}}.
{{Note|Build the kernel (<tt>make</tt>), do not install the kernel and modules (<tt> make install modules_install</tt>). You can choose uvesafb as a module, unlike vesa.}}


{{console|body=
== Install required packages ==
$##i## echo "exec startxfce4 --with-ck-launch" > ~/.xinitrc
}}
Note that {{c|--with-ck-launch}} (from ConsoleKit) is required by Xfce for important tasks such as shutting down, suspending, and automatically mounting removable storage media. Some applications will not work properly without it. Also, configuring the GTK+ theme and other forms of theming through {{Package|Xfce4-settings}} do not often work without the {{c|--with-ck-launch}} command line option. Because we are launching XFCE with a consolekit command line option, we need to add ConsoleKit to the {{c|default}} runlevel, executing the following command as root:


{{console|body=
Emerge {{Package|dev-libs/klibc}}. Klibc has to be compiled against a kernel that includes uvesafb support. This only has to be done once:
###i## rc-update add consolekit default
<console>
###i## rc
###i## emerge klibc
}}
</console>
Finally, to start the graphical environment, run {{c|startx}} from a login shell:
{{Package|sys-apps/v86d}} is the userspace helper that runs x86 code in emulated environment. Uvesafb will not work without v86d. Emerge <code>v86d</code>:
<console>
###i## emerge v86d
</console>


{{console|body=
== Back to kernel configuration ==
$##i## startx
Reconfigure the kernel to include <tt>/usr/share/v86d/initramfs</tt> as an initramfs source file:
{{Kernelop
|title=
|desc=
General Setup--->
    [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
    (/usr/share/v86d/initramfs)    Initramfs source file(s)
}}
}}
After running this command, you should be greeted by your shiny new XFCE desktop. For more information about configuring XFCE and some of the default applications that come with it, consider looking at [[Package:xfce4-meta#XFCE configuration and XFCE applications|XFCE configuration and XFCE applications]].
Rebuild the kernel: make and install it, install the modules
== Display Manager ==
 
A display manager is a program that manages sessions and acts as a login screen. Here's a short list of a few of the display managers available from the Funtoo repositories:
* XDM ({{c|x11-apps/xdm}}): X.Org's standard display manager.
* LightDM ({{c|x11-misc/lightdm}}): A lightweight, but highly configurable display manager.
* SLiM ({{c|x11-misc/slim}}): Simple Login Manager -- a lightweight display manager. Not very configurable.


== Bootloader configuration ==
If you compiled uvesafb into the kernel (not as a module), you can configure its behavior by editing the '<tt>params += </tt>' line in <tt>/etc/boot.conf</tt>. Below, some of the more common switches used with uvesafb are explained.
* <tt>video=uvesafb:<screen y-res>x<screen x-res>-<color depth></tt>: Tells the kernel that you want to use the uvesafb driver for console output. Also specifies that you will be using uvesafb at a set x-screen resolution, y screen-resolution, and color depth. Set the first part to the size of your screen (in pixels). For example, if I had a 1920x1080 screen and wanted a color depth of 32, I would add the following: <tt>video=uvesafb:1920x1080-32</tt>


Any of these would make a fine choice. After you've chosen which display manager to use, install it:
* <tt>mtrr:x</tt>: X represents the number 0 or 3. This option allows you to set up the memory type range registers for uvesafb. Setting x=0 disables mtrr and setting x=3 enables mtrr. x=3 is the default setting for this switch. mtrr:3 is recommended.


{{console|body=###i## emerge <display manager of choice>}}
* <tt>ywrap</tt>: Add support for display panning. Recommended.  
All that's left to do now is to add the name of the display manager to {{c|/etc/conf.d/xdm}}, add the {{c|xdm}} service and the {{c|dbus}} service to the {{c|default}} runlevel, and start the services:


{{file|name=/etc/conf.d/xdm|desc=|body=
{{Tip|For more information regarding these switches, check out http://www.mjmwired.net/kernel/Documentation/fb/uvesafb.txt}}
DISPLAYMANAGER="<display manager name>"
}}


{{console|body=
Now that you have a basic understanding of a few of the different switches, configure your <tt>/etc/boot.conf</tt>:
###i## rc-update add xdm default
###i## rc-update add dbus default
###i## rc
}}
==Power Group==
If you wish to be able to shutdown/reboot/suspend/hibernate using xfce4-logout-session then you will need to add yourself or the user to the power group by:


{{console|body=
{{file|name=/etc/boot.conf|desc= |body=
###i## gpasswd -a <username> power
boot {
        generate grub
        default "Funtoo Linux: uvesafb"
        timeout 3
}
  "Funtoo Linux: uvesafb" {
        kernel bzImage[-v]
        params += video=uvesafb:1920x1080-32,mtrr:3,ywrap
}
}}
}}
If the group does not exist then execute the following and try again:
{{Note|Realize that the configuration in the above file will not work on every computer. You must change the resolution (and possibly other switches) to best suite your needs.}}


{{console|body=
After you have finished editing your <tt>/etc/boot.conf</tt>, run the following:
###i## groupadd power}}
<console>
== XFCE configuration and XFCE applications ==
###i## boot-update
For more information on configuring XFCE and the default applications provided by XFCE, such as {{c|xfce4-terminal}}, consider following some of the below listed links:
</console>
* [[Package:Xfce4-settings|GUI settings configuration for XFCE]]
finally, reboot your computer so that you can test out uvesafb:
* [[Package:Xfce4-terminal|The default terminal emulator for XFCE]]
<console>
* [[Package:Whiskermenu|An alternate menu for the XFCE panel]]
###i## reboot
* [[XFCE Panel Plugins|A list of the various plugins available for {{c|xfce4-panel}}]]
</console>
* [[Thunar Plugins|A list of the plugins available for the Thunar file manager]]


[[Category:Desktop]]
[[Category:HOWTO]]
[[Category:First Steps]]
[[Category:Official Documentation]]
{{EbuildFooter}}

Revision as of 13:41, June 21, 2015

How to : Framebuffer: Userspace VESA VGA graphics support

Uvesafb is an improved framebuffer driver for Linux systems with some enhancements compared to vesa. Uvesafb can allow you to get a full-resolution console, even if you have installed a graphics driver that does not support full-resolution consoles. Examples of drivers like these: ati-drivers and NVidia-drivers.

Kernel configuration

Before we emerge the required packages for uvesafb functionality, we have to configure the kernel properly.

Device Drivers --->
    <*> Connector - unified userspace <-> kernelspace linker  --->

    Graphics support --->
        Frame buffer devices --->
        [*] Support for frame buffer devices  --->
            [*] Enable firmware EDID
            <*> Userspace VESA VGA graphics support
   Note

Build the kernel (make), do not install the kernel and modules ( make install modules_install). You can choose uvesafb as a module, unlike vesa.

Install required packages

Emerge No results. Klibc has to be compiled against a kernel that includes uvesafb support. This only has to be done once:

root # emerge klibc

No results is the userspace helper that runs x86 code in emulated environment. Uvesafb will not work without v86d. Emerge v86d:

root # emerge v86d

Back to kernel configuration

Reconfigure the kernel to include /usr/share/v86d/initramfs as an initramfs source file:

General Setup--->
    [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
    (/usr/share/v86d/initramfs)    Initramfs source file(s)

Rebuild the kernel: make and install it, install the modules

Bootloader configuration

If you compiled uvesafb into the kernel (not as a module), you can configure its behavior by editing the 'params += ' line in /etc/boot.conf. Below, some of the more common switches used with uvesafb are explained.

  • video=uvesafb:<screen y-res>x<screen x-res>-<color depth>: Tells the kernel that you want to use the uvesafb driver for console output. Also specifies that you will be using uvesafb at a set x-screen resolution, y screen-resolution, and color depth. Set the first part to the size of your screen (in pixels). For example, if I had a 1920x1080 screen and wanted a color depth of 32, I would add the following: video=uvesafb:1920x1080-32
  • mtrr:x: X represents the number 0 or 3. This option allows you to set up the memory type range registers for uvesafb. Setting x=0 disables mtrr and setting x=3 enables mtrr. x=3 is the default setting for this switch. mtrr:3 is recommended.
  • ywrap: Add support for display panning. Recommended.
   Tip

For more information regarding these switches, check out http://www.mjmwired.net/kernel/Documentation/fb/uvesafb.txt

Now that you have a basic understanding of a few of the different switches, configure your /etc/boot.conf:

   /etc/boot.conf
boot {
        generate grub
        default "Funtoo Linux: uvesafb" 
        timeout 3 
}
  "Funtoo Linux: uvesafb" { 
        kernel bzImage[-v]
        params += video=uvesafb:1920x1080-32,mtrr:3,ywrap
}
   Note

Realize that the configuration in the above file will not work on every computer. You must change the resolution (and possibly other switches) to best suite your needs.

After you have finished editing your /etc/boot.conf, run the following:

root # boot-update

finally, reboot your computer so that you can test out uvesafb:

root # reboot