|
|
Line 1: |
Line 1: |
| == Introduction == | | === What is GNOME? === |
|
| |
|
| This tutorial will show you how to install Funtoo on ZFS (rootfs). This tutorial is meant to be an "overlay" over the [[Funtoo_Linux_Installation|Regular Funtoo Installation]]. Follow the normal installation and only use this guide for steps 2, 3, and 8.
| | "GNOME 3 is an easy and elegant way to use your computer. It is designed to put you in control and bring freedom to everybody. GNOME 3 is developed by the GNOME community, a diverse, international group of contributors that is supported by an independent, non-profit foundation." — [http://gnome.org GNOME] |
|
| |
|
| === Introduction to ZFS === | | === Prerequisites === |
|
| |
|
| Since ZFS is a new technology for Linux, it can be helpful to understand some of its benefits, particularly in comparison to BTRFS, another popular next-generation Linux filesystem:
| | ==== From a Clean Install ==== |
|
| |
|
| * On Linux, the ZFS code can be updated independently of the kernel to obtain the latest fixes. btrfs is exclusive to Linux and you need to build the latest kernel sources to get the latest fixes.
| | Ensure that the [[X Window System]] is installed. |
|
| |
|
| * ZFS is supported on multiple platforms. The platforms with the best support are Solaris, FreeBSD and Linux. Other platforms with varying degrees of support are NetBSD, Mac OS X and Windows. btrfs is exclusive to Linux.
| | === Preparing to emerge === |
|
| |
|
| * ZFS has the Adaptive Replacement Cache replacement algorithm while btrfs uses the Linux kernel's Last Recently Used replacement algorithm. The former often has an overwhelmingly superior hit rate, which means fewer disk accesses.
| | To get your system ready to emerge gnome, first set your system flavor to desktop, and enable the gnome profile mix-in. To accomplish this, do the following: |
| | {{console|recipe=setup,setup-light|desc=Set profile|body= |
| | # ##i##eselect profile set-flavor funtoo/1.0/linux-gnu/flavor/desktop |
| | # ##i##eselect profile add funtoo/1.0/linux-gnu/mix-ins/gnome |
| | }} |
|
| |
|
| * ZFS has the ZFS Intent Log and SLOG devices, which accelerates small synchronous write performance.
| | By enabling the gnome mix-in, various USE and other settings will be optimized to provide you with a pain-free GNOME installation experience. |
|
| |
|
| * ZFS handles internal fragmentation gracefully, such that you can fill it until 100%. Internal fragmentation in btrfs can make btrfs think it is full at 10%. Btrfs has no automatic rebalancing code, so it requires a manual rebalance to correct it.
| | === Emerging === |
|
| |
|
| * ZFS has raidz, which is like RAID 5/6 (or a hypothetical RAID 7 that supports 3 parity disks), except it does not suffer from the RAID write hole issue thanks to its use of CoW and a variable stripe size. btrfs gained integrated RAID 5/6 functionality in Linux 3.9. However, its implementation uses a stripe cache that can only partially mitigate the effect of the RAID write hole.
| | You are provided with two packages that will pull in this desktop environment: |
|
| |
|
| * ZFS send/receive implementation supports incremental update when doing backups. btrfs' send/receive implementation requires sending the entire snapshot. | | * ''gnome'' |
|
| |
|
| * ZFS supports data deduplication, which is a memory hog and only works well for specialized workloads. btrfs has no equivalent.
| | {{fancynote|This is the "whole shabang" - pulls in a range of applications made for the gnome desktop environment including a few games, an archive manager, a system monitor, a web browser, a terminal, etc.}} |
|
| |
|
| * ZFS datasets have a hierarchical namespace while btrfs subvolumes have a flat namespace. | | * ''gnome-light'' |
|
| |
|
| * ZFS has the ability to create virtual block devices called zvols in its namespace. btrfs has no equivalent and must rely on the loop device for this functionality, which is cumbersome.
| | {{fancynote|As the name implies, this pulls in the base minimal you need to get a functioning GNOME Desktop Environment.}} |
|
| |
|
| The only area where btrfs is ahead of ZFS is in the area of small file
| | ==== GNOME 3.14 from a clean install ==== |
| efficiency. btrfs supports a feature called block suballocation, which
| |
| enables it to store small files far more efficiently than ZFS. It is
| |
| possible to use another filesystem (e.g. reiserfs) on top of a ZFS zvol
| |
| to obtain similar benefits (with arguably better data integrity) when
| |
| dealing with many small files (e.g. the portage tree).
| |
|
| |
|
| For a quick tour of ZFS and have a big picture of its common operations you can consult the page [[ZFS Fun]].
| | ===== gnome ===== |
|
| |
|
| === Disclaimers ===
| | To emerge ''gnome'' run the following command |
|
| |
|
| {{fancywarning|This guide is a work in progress. Expect some quirks.}} | | {{console|desc=Emerging GNOME|body= |
| {{fancyimportant|'''Since ZFS was really designed for 64 bit systems, we are only recommending and supporting 64 bit platforms and installations. We will not be supporting 32 bit platforms'''!}}
| | # ##i## emerge gnome |
| == Downloading the ISO (With ZFS) ==
| | }} |
| In order for us to install Funtoo on ZFS, you will need an environment that already provides the ZFS tools. Therefore we will download a customized version of System Rescue CD with ZFS included.
| |
|
| |
|
| <pre>
| | ===== gnome-light ===== |
| Name: sysresccd-4.2.0_zfs_0.6.2.iso (545 MB)
| |
| Release Date: 2014-02-25
| |
| md5sum 01f4e6929247d54db77ab7be4d156d85
| |
| </pre>
| |
|
| |
|
| | To emerge ''gnome-light'' run the following command |
|
| |
|
| '''[http://ftp.osuosl.org/pub/funtoo/distfiles/sysresccd/ Download System Rescue CD with ZFS]'''<br />
| | {{console|recipe=setup-light|desc=Emerging a minimal GNOME environment (alternative)|body= |
| | # ##i## emerge gnome-light |
| | }} |
|
| |
|
| == Creating a bootable USB from ISO (From a Linux Environment) == | | ==== Upgrading from GNOME 3.12 ==== |
| After you download the iso, you can do the following steps to create a bootable USB:
| |
|
| |
|
| <console>
| | To update either ''gnome'' or ''gnome-light'' run the following command: |
| Make a temporary directory
| |
| # ##i##mkdir /tmp/loop
| |
|
| |
|
| Mount the iso
| | {{console|body= |
| # ##i##mount -o ro,loop /root/sysresccd-4.2.0_zfs_0.6.2.iso /tmp/loop | | # ##i## emerge -vauDN world |
| | | }} |
| Run the usb installer
| | === Subsystems === |
| # ##i##/tmp/loop/usb_inst.sh
| |
| </console>
| |
| | |
| That should be all you need to do to get your flash drive working.
| |
| | |
| == Booting the ISO == | |
| | |
| {{fancywarning|'''When booting into the ISO, Make sure that you select the "Alternate 64 bit kernel (altker64)". The ZFS modules have been built specifically for this kernel rather than the standard kernel. If you select a different kernel, you will get a fail to load module stack error message.'''}}
| |
|
| |
|
| == Creating partitions == | | ==== Bluetooth ==== |
| There are two ways to partition your disk: You can use your entire drive and let ZFS automatically partition it for you, or you can do it manually.
| |
|
| |
|
| We will be showing you how to partition it '''manually''' because if you partition it manually you get to create your own layout, you get to have your own separate /boot partition (Which is nice since not every bootloader supports booting from ZFS pools), and you get to boot into RAID10, RAID5 (RAIDZ) pools and any other layouts due to you having a separate /boot partition.
| | For bluetooth support, ensure that: |
|
| |
|
| ==== gdisk (GPT Style) ====
| | # Bluetooth support is enabled in your kernel (using modules is fine). |
| | # Your bluetooth hardware is turned on. |
| | # Add the <code>bluetooth</code> startup script to the default runlevel, and start it. |
|
| |
|
| '''A Fresh Start''':
| | This can be done as follows: |
| | |
| First lets make sure that the disk is completely wiped from any previous disk labels and partitions.
| |
| We will also assume that <tt>/dev/sda</tt> is the target drive.<br />
| |
|
| |
|
| <console> | | <console> |
| # ##i##sgdisk -Z /dev/sda | | # ##i##rc-update add bluetooth default |
| | # ##i##rc |
| </console> | | </console> |
|
| |
|
| {{fancywarning|This is a destructive operation and the program will not ask you for confirmation! Make sure you really don't want anything on this disk.}}
| | Once this is done, you should now be able to navigate to ''Settings'' -> ''Bluetooth'' and turn bluetooth on. The icon next to devices should now animate and you should be able to discover and add devices such as keyboards. |
|
| |
|
| Now that we have a clean drive, we will create the new layout.
| | {{Note|1= |
| | Additional kernel drivers may need to be enabled for certain input devices. For example, for the bluetooth Apple Magic Trackpad, the following option must be enabled in your kernel: |
|
| |
|
| First open up the application:
| | {{kernelop|title=Device Drivers,HID support,HID bus support,Special HID drivers|desc= |
| | <M> Apple Magic Mouse/Trackpad multi-touch support |
| | }}}} |
|
| |
|
| <console>
| | ==== Printing ==== |
| # ##i##gdisk /dev/sda
| |
| </console>
| |
|
| |
|
| '''Create Partition 1''' (boot):
| | To enable printing support, add <code>cupsd</code> to the default runlevel: |
| <console> | |
| Command: ##i##n ↵
| |
| Partition Number: ##i##↵
| |
| First sector: ##i##↵
| |
| Last sector: ##i##+250M ↵
| |
| Hex Code: ##i##↵
| |
| </console>
| |
| | |
| '''Create Partition 2''' (BIOS Boot Partition):
| |
| <console>Command: ##i##n ↵
| |
| Partition Number: ##i##↵
| |
| First sector: ##i##↵
| |
| Last sector: ##i##+32M ↵
| |
| Hex Code: ##i##EF02 ↵
| |
| </console> | |
| | |
| '''Create Partition 3''' (ZFS):
| |
| <console>Command: ##i##n ↵
| |
| Partition Number: ##i##↵
| |
| First sector: ##i##↵
| |
| Last sector: ##i##↵
| |
| Hex Code: ##i##bf00 ↵
| |
| | |
| Command: ##i##p ↵
| |
| | |
| Number Start (sector) End (sector) Size Code Name
| |
| 1 2048 514047 250.0 MiB 8300 Linux filesystem
| |
| 2 514048 579583 32.0 MiB EF02 BIOS boot partition
| |
| 3 579584 1953525134 931.2 GiB BF00 Solaris root
| |
| | |
| Command: ##i##w ↵
| |
| </console>
| |
| | |
| | |
| === Format your /boot partition ===
| |
|
| |
|
| <console> | | <console> |
| # ##i##mkfs.ext2 -m 1 /dev/sda1 | | # ##i##rc-update add cupsd default |
| | # ##i##rc |
| </console> | | </console> |
|
| |
|
| === Create the zpool ===
| | You should now be able to navigate to ''Settings'' -> ''Printers'' and add printers to your system, and print. |
| We will first create the pool. The pool will be named <code>tank</code>. Feel free to name your pool as you want. We will use <code>ashift=12</code> option which is used for a hard drives with a 4096 sector size.
| |
| <console># ##i## zpool create -f -o ashift=12 -o cachefile=/tmp/zpool.cache -O normalization=formD -m none -R /mnt/funtoo tank /dev/sda3 </console>
| |
|
| |
|
| === Create the zfs datasets === | | ==== Scanning ==== |
| We will now create some datasets. For this installation, we will create a small but future proof amount of datasets. We will have a dataset for the OS (/), and your swap. We will also show you how to create some optional datasets as examples ones: <code>/home</code>, <code>/usr/src</code>, and <code>/usr/portage</code>.
| |
|
| |
|
| <console> | | To enable scanning support, add your user account to the <code>lp</code> group. This will allow your user to access the USB scanner. |
| Create some empty containers for organization purposes, and make the dataset that will hold /
| |
| # ##i##zfs create -p tank/funtoo
| |
| # ##i##zfs create -o mountpoint=/ tank/funtoo/root
| |
|
| |
|
| Optional, but recommended datasets: /home
| | Then, <code>emerge xsane</code>, and run it. It should be able to access your scanner. |
| # ##i##zfs create -o mountpoint=/home tank/funtoo/home
| |
|
| |
|
| Optional datasets: /usr/src, /usr/portage/{distfiles,packages}
| | === Finishing Touches === |
| # ##i##zfs create -o mountpoint=/usr/src tank/funtoo/src
| |
| # ##i##zfs create -o mountpoint=/usr/portage -o compression=off tank/funtoo/portage
| |
| # ##i##zfs create -o mountpoint=/usr/portage/distfiles tank/funtoo/portage/distfiles
| |
| # ##i##zfs create -o mountpoint=/usr/portage/packages tank/funtoo/portage/packages
| |
| </console>
| |
|
| |
|
| == Installing Funtoo == | | ==== X ==== |
|
| |
|
| === Pre-Chroot === | | ===== Setting up xdm (GUI log-in) ===== |
|
| |
|
| <console> | | Typically, you will want to use <code>gdm</code>, the GNOME display manager, to log in to GNOME. This will allow you to log in graphically, rather than using the text console. |
| Go into the directory that you will chroot into
| |
| # ##i##cd /mnt/funtoo
| |
|
| |
|
| Make a boot folder and mount your boot drive
| | To enable gdm, edit <code>/etc/conf.d/xdm</code> and set <code>DISPLAYMANAGER</code> to <code>gdm</code> instead of <code>xdm</code>. Then, perform the following steps to add <code>xdm</code> to the default runlevel, and have it start automatically from now on when your system starts: |
| # ##i##mkdir boot
| |
| # ##i##mount /dev/sda1 boot
| |
| </console> | |
|
| |
|
| [[Funtoo_Linux_Installation|Now download and extract the Funtoo stage3 ...]]
| | {{Note|Funtoo's <code>/etc/init.d/xdm</code> initscript has been modified to start the requisite services <code>dbus</code>, <code>openrc-settingsd</code> and <code>consolekit</code> prior to starting <code>gdm</code>.}} |
|
| |
|
| Once you've extracted the stage3, do a few more preparations and chroot into your new funtoo environment:
| | {{console|recipe=setup|desc=Enable the GNOME display manager|body= |
| | | # ##i## rc-update add xdm default |
| <console>
| |
| Bind the kernel related directories
| |
| # ##i##mount -t proc none proc
| |
| # ##i##mount --rbind /dev dev
| |
| # ##i##mount --rbind /sys sys
| |
| | |
| Copy network settings
| |
| # ##i##cp -f /etc/resolv.conf etc
| |
| | |
| Make the zfs folder in 'etc' and copy your zpool.cache
| |
| # ##i##mkdir etc/zfs
| |
| # ##i##cp /tmp/zpool.cache etc/zfs
| |
| | |
| Chroot into Funtoo
| |
| # ##i##env -i HOME=/root TERM=$TERM chroot . bash -l
| |
| </console>
| |
| | |
| {{:Install/PortageTree}} | |
| | |
| === Add filesystems to /etc/fstab ===
| |
| | |
| Before we continue to compile and or install our kernel in the next step, we will edit the <code>/etc/fstab</code> file because if we decide to install our kernel through portage, portage will need to know where our <code>/boot</code> is, so that it can place the files in there.
| |
| | |
| Edit <code>/etc/fstab</code>:
| |
| | |
| {{file|name=/etc/fstab|desc= |body=
| |
| # <fs> <mountpoint> <type> <opts> <dump/pass> | |
| | |
| /dev/sda1 /boot ext2 defaults 0 2
| |
| }} | | }} |
|
| |
|
| == Kernel Configuration ==
| | Then, if you want to start it now do: |
| ...wip
| |
|
| |
|
| == Installing the ZFS userspace tools and kernel modules ==
| | {{console|body= |
| Emerge {{Package|sys-fs/zfs}}. This package will bring in {{Package|sys-kernel/spl}}, and {{Package|sys-fs/zfs-kmod}} as its dependencies:
| | # ##i##rc |
| | |
| <console>
| |
| # ##i##emerge zfs
| |
| </console>
| |
| | |
| Check to make sure that the zfs tools are working. The <code>zpool.cache</code> file that you copied before should be displayed.
| |
| | |
| <console>
| |
| # ##i##zpool status
| |
| # ##i##zfs list
| |
| </console>
| |
| | |
| If everything worked, continue.
| |
| | |
| == Create the initramfs ==
| |
| === genkernel ===
| |
| Install genkernel and run it:
| |
| <console>
| |
| # ##i##emerge genkernel | |
| | |
| You only need to add --luks if you used encryption
| |
| # ##i##genkernel --zfs --luks initramfs
| |
| </console>
| |
| | |
| == Installing & Configuring the Bootloader ==
| |
| | |
| === GRUB 2 ===
| |
| <console>
| |
| # ##i##emerge grub
| |
| </console>
| |
| | |
| Now install grub to the drive itself (not a partition):
| |
| <console>
| |
| # ##i##grub-install /dev/sda
| |
| </console>
| |
| | |
| === boot-update ===
| |
| boot-update comes as a dependency of grub2, so if you already installed grub, it's already on your system!
| |
| | |
| ==== Genkernel ====
| |
| If your using genkernel you must add 'real_root=ZFS=<root>' and 'dozfs' to your params.
| |
| Example entry for <code>/etc/boot.conf</code>:
| |
| | |
| {{file|name=/etc/boot.conf|desc= |body=
| |
| "Funtoo ZFS" {
| |
| kernel kernel[-v]
| |
| initrd initramfs-genkernel-x86_64[-v]
| |
| params real_root=ZFS=tank/funtoo/root
| |
| params += dozfs=force
| |
| }
| |
| }} | | }} |
|
| |
|
| After editing /etc/boot.conf, you just need to run boot-update to update grub.cfg
| | But you should reboot to avoid having an open login terminal. |
|
| |
|
| <console>
| | ===== Setting up xinitrc (text log-in) ===== |
| ###i## boot-update
| |
| </console>
| |
|
| |
|
| == Final configuration ==
| | Adding the following to your <code>~/.xinitrc</code> file is sufficient: |
| === Add the zfs tools to openrc ===
| |
| <console># ##i##rc-update add zfs boot</console> | |
|
| |
|
| === Clean up and reboot === | | <pre> |
| We are almost done, we are just going to clean up, '''set our root password''', and unmount whatever we mounted and get out.
| | # Fix Missing Applications in Gnome |
| | export XDG_MENU_PREFIX=gnome- |
|
| |
|
| <console>
| | # Properly Launch the Desired X Session |
| Delete the stage3 tarball that you downloaded earlier so it doesn't take up space.
| | exec ck-launch-session gnome-session |
| # ##i##cd /
| | </pre> |
| # ##i##rm stage3-latest.tar.xz
| |
|
| |
|
| Set your root password
| | Additionaly, if you need support for different input sources, there is no longer a need to configure IBus or SCIM in your <code>.xinitrc</code> file as GNOME uses IBus natively. Simply configure it in the Control Center under Region & Language. |
| # ##i##passwd
| |
| >> Enter your password, you won't see what you are writing (for security reasons), but it is there!
| |
|
| |
|
| Get out of the chroot environment
| | === Automatically Starting Applications at Login === |
| # ##i##exit
| |
|
| |
|
| Unmount all the kernel filesystem stuff and boot (if you have a separate /boot)
| | When using an old-fashioned <code>.xinitrc</code>, starting up applications when X starts is relatively easy. When using GDM, this can still be accomplished, by using the <code>~/.xprofile</code> file. Here's my sample <code>.xprofile</code> to start <code>xflux</code> to dim the screen at night: |
| # ##i##umount -l proc dev sys boot
| |
|
| |
|
| Turn off the swap
| | <pre> |
| # ##i##swapoff /dev/zvol/tank/swap
| | xflux -z 87107 |
| | </pre> |
|
| |
|
| Export the zpool
| | {{Note|Remember to add a <code>&</code> at the end of any command that doesn't return to the shell prompt after running.}} |
| # ##i##cd /
| |
| # ##i##zpool export tank
| |
|
| |
|
| Reboot
| | === games === |
| # ##i##reboot
| | Gnome has several games that can be added on to your install. By default most games are not included in gnome's emerge. |
| </console>
| |
|
| |
|
| {{fancyimportant|'''Don't forget to set your root password as stated above before exiting chroot and rebooting. If you don't set the root password, you won't be able to log into your new system.'''}} | | Users wishing to play games need to be added to the games group: |
| | {{console|body=###i## gpasswd -a $USER games}} |
|
| |
|
| and that should be enough to get your system to boot on ZFS.
| | game list: |
| | ;gnome-sudoku |
| | ;gnome-mastermind |
| | ;gnome-nibbles |
| | ;gnome-robots |
| | ;gnome-chess |
| | ;gnome-hearts |
| | ;gnome-mahjongg |
| | ;gnome-mines |
| | ;gnome-klotski |
| | ;gnome-tetravex |
|
| |
|
| == After reboot ==
| | game system emulators: |
|
| |
|
| === Forgot to reset password? ===
| | ;gnomeboyadvance |
| ==== System Rescue CD ====
| | ;gnome-mud |
| If you aren't using bliss-initramfs, then you can reboot back into your sysresccd and reset through there by mounting your drive, chrooting, and then typing passwd.
| |
|
| |
|
| Example:
| | === Significant Known Issues (Workarounds Available) === |
| <console>
| |
| # ##i##zpool import -f -R /mnt/funtoo tank
| |
| # ##i##chroot /mnt/funtoo bash -l
| |
| # ##i##passwd
| |
| # ##i##exit
| |
| # ##i##zpool export -f tank
| |
| # ##i##reboot
| |
| </console>
| |
| | |
| === Create initial ZFS Snapshot === | |
| Continue to set up anything you need in terms of /etc configurations. Once you have everything the way you like it, take a snapshot of your system. You will be using this snapshot to revert back to this state if anything ever happens to your system down the road. The snapshots are cheap, and almost instant.
| |
| | |
| To take the snapshot of your system, type the following:
| |
| <console># ##i##zfs snapshot -r tank@install</console>
| |
| | |
| To see if your snapshot was taken, type:
| |
| <console># ##i##zfs list -t snapshot</console>
| |
| | |
| If your machine ever fails and you need to get back to this state, just type (This will only revert your / dataset while keeping the rest of your data intact):
| |
| <console># ##i##zfs rollback tank/funtoo/root@install</console>
| |
| | |
| {{fancyimportant|'''For a detailed overview, presentation of ZFS' capabilities, as well as usage examples, please refer to the [[ZFS_Fun|ZFS Fun]] page.'''}}
| |
| | |
| == Troubleshooting ==
| |
| | |
| === Starting from scratch ===
| |
| If your installation has gotten screwed up for whatever reason and you need a fresh restart, you can do the following from sysresccd to start fresh:
| |
| | |
| <console>
| |
| Destroy the pool and any snapshots and datasets it has
| |
| # ##i##zpool destroy -R -f tank
| |
| | |
| This deletes the files from /dev/sda1 so that even after we zap, recreating the drive in the exact sector
| |
| position and size will not give us access to the old files in this partition.
| |
| # ##i##mkfs.ext2 /dev/sda1
| |
| # ##i##sgdisk -Z /dev/sda
| |
| </console>
| |
|
| |
|
| Now start the guide again :).
| | [https://bugs.funtoo.org/browse/FL-1678 FL-1678]: Bluetooth interface gives wrong pairing key |
|
| |
|
| [[Category:HOWTO]] | | [https://bugs.funtoo.org/browse/FL-1687 FL-1687]: Wallpaper corruption when resuming from suspend |
| [[Category:Filesystems]]
| |
| [[Category:Featured]]
| |
| [[Category:Install]]
| |
|
| |
|
| __NOTITLE__
| | [[Category:Desktop]] |
| | [[Category:First Steps]] |
| | [[Category:Official Documentation]] |
What is GNOME?
"GNOME 3 is an easy and elegant way to use your computer. It is designed to put you in control and bring freedom to everybody. GNOME 3 is developed by the GNOME community, a diverse, international group of contributors that is supported by an independent, non-profit foundation." — GNOME
Prerequisites
From a Clean Install
Ensure that the X Window System is installed.
Preparing to emerge
To get your system ready to emerge gnome, first set your system flavor to desktop, and enable the gnome profile mix-in. To accomplish this, do the following:
root # eselect profile set-flavor funtoo/1.0/linux-gnu/flavor/desktop
root # eselect profile add funtoo/1.0/linux-gnu/mix-ins/gnome
Console: Set profile
By enabling the gnome mix-in, various USE and other settings will be optimized to provide you with a pain-free GNOME installation experience.
Emerging
You are provided with two packages that will pull in this desktop environment:
Note
This is the "whole shabang" - pulls in a range of applications made for the gnome desktop environment including a few games, an archive manager, a system monitor, a web browser, a terminal, etc.
Note
As the name implies, this pulls in the base minimal you need to get a functioning GNOME Desktop Environment.
GNOME 3.14 from a clean install
gnome
To emerge gnome run the following command
root # emerge gnome
Console: Emerging GNOME
gnome-light
To emerge gnome-light run the following command
root # emerge gnome-light
Console: Emerging a minimal GNOME environment (alternative)
Upgrading from GNOME 3.12
To update either gnome or gnome-light run the following command:
root # emerge -vauDN world
Subsystems
Bluetooth
For bluetooth support, ensure that:
- Bluetooth support is enabled in your kernel (using modules is fine).
- Your bluetooth hardware is turned on.
- Add the
bluetooth
startup script to the default runlevel, and start it.
This can be done as follows:
root # rc-update add bluetooth default
root # rc
Once this is done, you should now be able to navigate to Settings -> Bluetooth and turn bluetooth on. The icon next to devices should now animate and you should be able to discover and add devices such as keyboards.
Note
Additional kernel drivers may need to be enabled for certain input devices. For example, for the bluetooth Apple Magic Trackpad, the following option must be enabled in your kernel:
Under Device Drivers-->HID support-->HID bus support-->Special HID drivers:
<M> Apple Magic Mouse/Trackpad multi-touch support
Printing
To enable printing support, add cupsd
to the default runlevel:
root # rc-update add cupsd default
root # rc
You should now be able to navigate to Settings -> Printers and add printers to your system, and print.
Scanning
To enable scanning support, add your user account to the lp
group. This will allow your user to access the USB scanner.
Then, emerge xsane
, and run it. It should be able to access your scanner.
Finishing Touches
X
Setting up xdm (GUI log-in)
Typically, you will want to use gdm
, the GNOME display manager, to log in to GNOME. This will allow you to log in graphically, rather than using the text console.
To enable gdm, edit /etc/conf.d/xdm
and set DISPLAYMANAGER
to gdm
instead of xdm
. Then, perform the following steps to add xdm
to the default runlevel, and have it start automatically from now on when your system starts:
Note
Funtoo's /etc/init.d/xdm
initscript has been modified to start the requisite services dbus
, openrc-settingsd
and consolekit
prior to starting gdm
.
root # rc-update add xdm default
Console: Enable the GNOME display manager
Then, if you want to start it now do:
root # rc
But you should reboot to avoid having an open login terminal.
Setting up xinitrc (text log-in)
Adding the following to your ~/.xinitrc
file is sufficient:
# Fix Missing Applications in Gnome
export XDG_MENU_PREFIX=gnome-
# Properly Launch the Desired X Session
exec ck-launch-session gnome-session
Additionaly, if you need support for different input sources, there is no longer a need to configure IBus or SCIM in your .xinitrc
file as GNOME uses IBus natively. Simply configure it in the Control Center under Region & Language.
Automatically Starting Applications at Login
When using an old-fashioned .xinitrc
, starting up applications when X starts is relatively easy. When using GDM, this can still be accomplished, by using the ~/.xprofile
file. Here's my sample .xprofile
to start xflux
to dim the screen at night:
xflux -z 87107
Note
Remember to add a &
at the end of any command that doesn't return to the shell prompt after running.
games
Gnome has several games that can be added on to your install. By default most games are not included in gnome's emerge.
Users wishing to play games need to be added to the games group:
root # gpasswd -a $USER games
game list:
- gnome-sudoku
- gnome-mastermind
- gnome-nibbles
- gnome-robots
- gnome-chess
- gnome-hearts
- gnome-mahjongg
- gnome-mines
- gnome-klotski
- gnome-tetravex
game system emulators:
- gnomeboyadvance
- gnome-mud
Significant Known Issues (Workarounds Available)
FL-1678: Bluetooth interface gives wrong pairing key
FL-1687: Wallpaper corruption when resuming from suspend