INTRODUÇÃO
O sistema tem uma série de mudanças em pacotes considerados base, como por exemplo, suporte nativo a UTF-8 e já habilitado por padrão, utiliza o Git para guardar a árvore do Portage.
Este método é descrito como superior ao utilizado pelo Gentoo que usa rSync, tem o Metro que é solução de empacotamento automatizada, para a criação dos stages usados durante a instalação do Funtoo. Também usa o boot-update que provê um mecanismo unificado de configuração dos bootloaders GRUB 1.9x (sys-boot/grub) e GRUB 0.97 (sys-boot/grub-legacy).
O criador do projeto, Daniel Robbins, é considerado um “ditador” benevolente e vitalício, sendo o arquiteto líder do projeto, cargo semelhante ao de Patrick Volkerding do Slackware.
DOWNLOAD
Não existe um live-CD do Funtoo, mas você pode usar o live-CD de qualquer distribuição Linux. Logo Abaixo, vou deixar as opções que eu recomendo para fazer a instalação.
- CD minimal do Gentoo: https://www.gentoo.org/downloads/
- System Rescue CD: http://www.sysresccd.org/Download
Pode também usar um simples live-CD do Ubuntu: http://www.ubuntu.com/download/desktop
BOOT / MAPA DO TECLADO / CRIANDO, FORMATANDO E MONTANDO PARTIÇÕES
Quando aparecer a mensagem “Load Keymap digite 4” e Enter.
Vamos criar as partições:
# cfdisk
Se estiver usando o Minimal do Gentoo, irá aparecer uma tela com as opções GPT, DOS, SGI e SUN. Aqui, vou usar DOS.
Agora vamos criar as partições e depois formatar. Eu uso 4, são elas: Boot, Raiz, Home e SWAP. Ficando assim:
- sda1 * Boot (” * ” Significa que está marcada como bootável)
- sda2 Raiz
- sda3 Home
- sda4 SWAP
Formatando:
# mkfs.ext4 /dev/sda1
# mkfs.ext4 /dev/sda2
# mkfs.ext4 /dev/sda3
# mkswap /dev/sda4 && swapon /dev/sda4
Agora, vamos criar os diretórios e montar as partições:
# mkdir /mnt/funtoo
# mount /dev/sda2 /mnt/funtoo
# mkdir /mnt/funtoo/boot
# mount /dev/sda1 /mnt/funtoo/boot
# mkdir /mnt/funtoo/home
# mount /dev/sda3 /mnt/funtoo/home
E vamos entrar no diretório:
# cd /mnt/funtoo
* Um detalhe importante, é verificar o horário do sistema com o comando date, porque se houver muita diferença no horário, poderá ocorrer erros.
Ajustando o horário:
# date MMDDhhmmYYYY
- MM = Mês
- DD = Dia
- hh = Hora
- mm = Minutos
- YYYY = Ano
Exemplo: hoje é dia 3 de abril, são 15:56 e ano 2015. Então, ficaria assim:
# date 040315562015
STAGE3 / CHROOT / PORTAGE / FSTAB / MAKE.CONF / CONFIGURAÇÕES DO SISTEMA
Vamos usar o Links, que é um navegador em modo texto para baixar o Stage3. Se estiver usando o live-CD do Ubuntu, acesse a Central de Programas e procure por “links2”. Vamos lá.
# links http://ftp.osuosl.org/pub/funtoo/ #Use as setas Cima, Baixo e Enter para navegar.
No live-CD do Ubuntu:
# links2 http://ftp.osuosl.org/pub/funtoo/
Desça até Funtoo Current e aperte Enter.
Escolha a arquitetura referente ao seu PC. No meu caso, é x86-64bit e aperte Enter.
Agora vou escolher a opção “generic_64”, “stage3-latest.tar.xz” e aperte Enter para começar o download. Aperte a tecla q e depoisEnter, para sair do navegador Links.
Agora extraia o arquivo:
# tar -Jxpvf stage3-latest.tar.xz
E vamos montar o “proc” e “dev” antes de fazer o Chroot:
# mount -t proc none proc
# mount –rbind /sys sys
# mount –rbind /dev dev
Copie também o “resolv.conf”:
# cp /etc/resolv.conf etc
Então, faça o Chroot:
# env -i HOME=/root TERM=$TERM chroot . bash -l
Ou:
# chroot /mnt/funtoo /bin/bash #Se estiver usando algum live-CD de outras distros
Pode ser uma boa ideia usar o comando:
# export PS1=”(chroot) $PS1″
… para não fazer confusão, caso precise mudar de terminal.
Vamos clonar a árvore Portage do GitHub, com o comando:
# emerge –sync
Agora vamos editar a tabela de partições:
# nano /etc/fstab
A minha tabela de partições ficou assim:
# <fs> <mountpoint> <type> <opts> <dump/pass> /dev/sda1 /boot ext4 noauto,noatime 1 2 <-- BOOT /dev/sda2 / ext4 noatime 0 1 <-- RAIZ /dev/sda3 /home ext4 noatime 0 2 <-- HOME /dev/sda4 none swap sw 0 0 <-- SWAP #/dev/cdrom /mnt/cdrom auto noauto,ro 0 0
Definindo o timezone:
# ln -sf /usr/share/zoneinfo/America/Sao_paulo /etc/localtime
Para ver mais opções, use o comando:
# ls /usr/share/zoneinfo
MAKE.CONF
E chegamos a parte mais importante , o “make.conf”.
Aqui temos que definir as CFLAGS e CXXFLAGS, que são variáveis de ambiente utilizadas para otimização do sistema, também podem ser usados para diminuir a quantidade de mensagens de depuração para um programa e aumentar os níveis de aviso de erro.
A variável CFLAGS é usada para compilar o código escrito em C, enquanto a variável CXXFLAGS, é para o código escrito em C ++.
O manual do GCC mantém uma lista completa de opções disponíveis e suas finalidades. Se quiser saber mais, vá até:
Entre em “/etc/portage/make.conf”, o arquivo estará assim:
CXXFLAGS=”-mtune=generic -O2 -pipe”
Antes de alterar o “make.conf”, temos que saber a quantidade de CPUs da máquina para usar em MAKEOPTS.
MAKEOPTS pode ser usado para definir quantas compilações paralelas deverão ocorrer quando compilar um pacote, o que pode acelerar a compilação de forma significativa. A regra de ouro aqui é usar o número de CPUs +1. Para isso, execute o comando:
# nproc
O resultado do meu foi 4, então, já sei que no meu MAKEOPTS vou usar “-j5”. Então, altere o arquivo deixando assim:
CXXFLAGS=”${CFLAGS}”
ACCEPT_KEYWORDS=”~amd64″ #Para ter os pacotes mais recentes, alguns podem ser considerados instáveis e “amd64” se quiser os pacotes estáveis.
MAKEOPTS=”-j5″
Salve e saia.
Não vou falar sobre as USE FLAGS, durante a instalação do sistema não é recomendado flags no “USE”. Após a instalação, eu recomendo usar a flag “nls” de Native Language Support para instalar os programas na linguagem nativa “pt_BR”.
Obs.: “-march=native <–” diz ao GCC para detectar automaticamente a arquitetura do seu sistema, ao invés de especificar manualmente.
- -O2 <– diz ao GCC para otimizar o código .
- -pipe <– -pipe: acelera o processo de compilação.
Se quiser alterar o nome do sistema, edite o arquivo:
# nano /etc/conf.d/hostname
IDIOMA / MAPA DO TECLADO / PROFILES / KERNEL
# echo LINGUAS=\”pt_BR\” >> /etc/make.conf
# echo LANGUAGE=\”pt_BR\” >> /etc/make.conf
E altere o arquivo “locale.gen”:
# nano /etc/locale.gen
Remova ou comente a linha: en_US.UTF-8 UTF-8
E deixe apenas:
Edite também o arquivo “02locale”:
# nano /etc/env.d/02locale
E adicione: LANG=”pt_BR.UTF-8″
Agora o mapa do teclado:
# nano /etc/conf.d/keymaps
E deixe assim:
E então, execute os comandos:
# locale-gen
# env-update && source /etc/profile
Vamos aos profiles:
# eselect profile list
E irá aparecer uma lista de profiles parecida com a minha, que está logo abaixo:
Currently available arch profiles: [1] funtoo/1.0/linux-gnu/arch/x86-64bit * [2] funtoo/1.0/linux-gnu/arch/pure64 Currently available build profiles: [23] funtoo/1.0/linux-gnu/build/stable [24] funtoo/1.0/linux-gnu/build/current * [25] funtoo/1.0/linux-gnu/build/experimental Currently available flavor profiles: [26] funtoo/1.0/linux-gnu/flavor/minimal [27] funtoo/1.0/linux-gnu/flavor/core [28] funtoo/1.0/linux-gnu/flavor/desktop * [29] funtoo/1.0/linux-gnu/flavor/workstation [30] funtoo/1.0/linux-gnu/flavor/hardened Currently available mix-ins profiles: [31] funtoo/1.0/linux-gnu/mix-ins/audio * [32] funtoo/1.0/linux-gnu/mix-ins/cinnamon [33] funtoo/1.0/linux-gnu/mix-ins/console-extras * [34] funtoo/1.0/linux-gnu/mix-ins/dvd * [35] funtoo/1.0/linux-gnu/mix-ins/gnome [36] funtoo/1.0/linux-gnu/mix-ins/kde [37] funtoo/1.0/linux-gnu/mix-ins/mate * [38] funtoo/1.0/linux-gnu/mix-ins/media * [39] funtoo/1.0/linux-gnu/mix-ins/media-pro [40] funtoo/1.0/linux-gnu/mix-ins/mediadevice-audio-consumer (auto) [41] funtoo/1.0/linux-gnu/mix-ins/mediadevice-audio-pro [42] funtoo/1.0/linux-gnu/mix-ins/mediadevice-base (auto) [43] funtoo/1.0/linux-gnu/mix-ins/mediadevice-video-consumer (auto) [44] funtoo/1.0/linux-gnu/mix-ins/mediadevice-video-pro [45] funtoo/1.0/linux-gnu/mix-ins/mediaformat-audio-common (auto) [46] funtoo/1.0/linux-gnu/mix-ins/mediaformat-audio-extra * [47] funtoo/1.0/linux-gnu/mix-ins/mediaformat-gfx-common (auto) [48] funtoo/1.0/linux-gnu/mix-ins/mediaformat-gfx-extra * [49] funtoo/1.0/linux-gnu/mix-ins/mediaformat-video-common (auto) [50] funtoo/1.0/linux-gnu/mix-ins/mediaformat-video-extra * [51] funtoo/1.0/linux-gnu/mix-ins/lxde [52] funtoo/1.0/linux-gnu/mix-ins/lxqt [53] funtoo/1.0/linux-gnu/mix-ins/no-emul-linux-x86 [54] funtoo/1.0/linux-gnu/mix-ins/no-systemd [55] funtoo/1.0/linux-gnu/mix-ins/print (auto) [56] funtoo/1.0/linux-gnu/mix-ins/python3-only [57] funtoo/1.0/linux-gnu/mix-ins/X * [58] funtoo/1.0/linux-gnu/mix-ins/xfce [59] funtoo/1.0/linux-gnu/mix-ins/vmware-guest [60] funtoo/1.0/linux-gnu/mix-ins/hardened
O sinal “*”, significa que o profile está habilitado. Neste artigo, vou usar o profile desktop e para ambiente gráfico, o Mate. Para isso, execute:
# eselect profile set-flavor funtoo/1.0/linux-gnu/flavor/desktop #Alguns profiles, como X, audio, console extras e DVD serão habilitados automaticamente.
Agora, para o ambiente gráfico:
# eselect profile add funtoo/1.0/linux-gnu/mix-ins/mate
Para ver os profiles que estão habilitados, use o comando:
# eselect profile show.
KERNEL
Agora vamos compilar o kernel.
Eu não vou ensinar a compilar um kernel, mas vou deixar uma dica e uma recomendação. Veja a lista logo abaixo dos kernels suportados pelo Funtoo.
- vanilla-sources <– Kernel Puro
- openvz-rhel6-stable <– Kernel baseado em Red Hat Enterprise Linux 6 com suporte a OpenVZ.
- Debian-sources <– Kernel Debian modificado pelo Daniel Robbins com suporte opicional a OpenVZ , mas se quiser um kernel OpenVZ com qualidade de produção de preferência ao openvz-rhl6-stable.
- gentoo-sources <– Kernel Gentoo baseado em kernels estáveis de https://www.kernel.org/ com genpatches, visando apoiar toda a gama de arquiteturas suportados pelo Gentoo.
A lista de kernels genpatched disponíveis pode ser vista em:
Primeiro a recomendação, se você não sabe ou não tem experiência com compilação de kernel, o próprio manual do Funtoo recomenda usar “debian-sources”, por ter um excelente suporte a vários tipos de hardware.
Para isso, execute:
# mkdir /etc/portage/sets
# echo sys-kernel/debian-sources > /etc/portage/sets/kernel
Agora temos que definir uma variável USE, dizendo ao “debian-sources” para criar um kernel “universal” e initramfs. Vamos definir essa variável com o comando:
# echo “sys-kernel/debian-sources binary” >> /etc/portage/package.use
E por fim, vamos baixar o kernel:
# emerge @kernel
Agora se preferir usar o kernel puro, eu tenho uma dica de como compilar o kernel “vanilla-sources” usando a config do Slackware.
Dica: primeiro temos que habilitar o kernel “vanilla-sources”.
Obs.: o primeiro comando é só para quem está usando o profile “amd64”. Se estiver usando “~amd64”, não precisa habilitar nada.
# echo “=sys-kernel/vanilla-sources-3.19.3 ~amd64” >> /etc/portage/package.accept_keywords
Baixe o kernel, com:
# emerge -va vanilla-sources
Entre no diretório:
# cd /usr/src/linux
Feito isso, vamos baixar a config do Slackware com:
Para kernel x64:
E para kernel x86:
Agora vamos mover a config para “.config”:
# mv config-huge-3.18.1.x64 .config
E então, execute:
# make menuconfig
Obs.: se quiser habilitar ou desabilitar algo, navegue pelos menus. Caso contrário, vá até “Save” e depois “Exit”, para sair da tela.
Digite:
# make all #Para compilar o kernel
Depois:
# make modules_install #Para instalar os módulos
Agora as configurações, primeiro execute:
# cp arch/x86_64/boot/bzImage /boot/kernel-3.19.3
Entre no diretório /boot:
# cd /boot/
Crie um link referente ao kernel:
# ln -s kernel-3.19.3 bzImage
Kernel instalado.
GRUB / FERRAMENTAS / WIRELESS / SENHA ROOT / USUÁRIO / SUDO
Primeiro, vamos instalar o “boot-update”:
# emerge boot-update
Obs.: pode ser uma boa instalar o pacote “os-prober” para detectar outras distros.
Agora vamos configurar o GRUB, mas primeiro execute:
# grub-install –target=i386-pc –no-floppy /dev/sda
Se tiver fazendo dual boot, terá que editar o arquivo “boot.conf” com o comando:
# nano /etc/boot.conf
Seu arquivo estará assim:
gfxmode 1366×768 #No lugar de “1366×768”, coloque a resolução da sua tela. Se quiser usar uma imagem de fundo no GRUB, adicione a linha background como está o exemplo abaixo.
background /boot/nome_da_sua_imagem.jpg #Coloque a imagem no diretório /boot
}
boot {
generate grub
default “Funtoo Linux”
timeout 20
}
“Funtoo Linux” {
kernel bzImage[-v]
}
“Funtoo Linux genkernel” {
kernel kernel[-v]
initrd initramfs[-v]
params += real_root=auto rootfstype=auto
}
Se tiver dual boot com Windows, adicione os parâmetros ficando assim:
Para Windows 7:
type win7
params root=/dev/sda1
}
Para Windows 8 ou 8.1:
type win8
params root=/dev/sda1
}
Depois de editar, execute finalmente o comando:
# boot-update
Ferramentas importantes:
# emerge dhcpcd syslog-ng cronie mlocate
E para iniciarem junto com o sistema:
# rc-update add dhcpcd default
# rc-update add syslog-ng default
# rc-update add cronie default
Após isso, vamos instalar o NetworkManager, que para notebooks ou sistemas móveis, onde você estará usando o Wi-Fi, é fortemente recomendado. A versão NetworkManager do Funtoo é totalmente funcional, seja em modo texto sem o X instalado ou sem o Applet de rede.
Instalação:
# emerge linux-firmware #Instalamos o linux-firmware primeiro, porque contém uma coleção completa de firmwares disponível para a maioria de adaptadores e dispositivos de hardware
E então:
# emerge networkmanager #O NetworkManager demora bastante pra compilar, não me lembro exatamente quanto tempo
Depois de instalado, coloque-o para iniciar junto com o sistema:
# rc-update add NetworkManager default
* Importante: o manual do Funtoo sugere usar o comando:
# addwifi -S wpa -K ‘senha_da_rede’ #Nome_da_sua_rede, porém, comigo esse comando só funcionou uma vez
O comando que eu uso para conectar é o:
# nmtui-connect #Só selecionar a sua rede e colocar a senha
Se não gosta do NetworkManager e prefere o Wicd, execute:
# emerge linux-firmware
# emerge wicd
# rc-update add wicd default
E para configurá-lo:
# wicd-curses
Se quiser mais informações sobre o Wicd, vá até:
Se por algum motivo você não quiser usar o Wicd, ainda tem o “wpa_supplicant”:
# emerge linux-firmware
# emerge -a wpa_supplicant
Agora, entre e edite o arquivo de configuração:
# nano /etc/wpa_supplicant.conf
ssid=”nome_da_rede”
psk=”senha”
}
E por último:
# rc-update add wpa_supplicant default #Para iniciar com o sistema
Senha root. Para criar a senha root use o comando:
# passwd
Antes de criar um usuário, temos que executar o comando:
# cat /etc/group | more #Esse comando irá listar os grupos disponíveis, aí é só adicionar seu usuário a esses grupos
Agora sim, vamos criar o usuário:
# useradd -m -g users -G wheel,audio,video,daemon,sys,tty,disk,lp,floppy,news,console,cdrom,cdrw,usb,users,mail,locate,messagebus,plugdev seu_usuário
Depois:
# passwd seu_usuário
sudo:
# emerge sudo
Edite o arquivo “sudoers”:
# nano /etc/sudoers
E vá até onde esta escrito: root ALL=(ALL) ALL
E coloque na linha de baixo:
Salve e saia. E finalmente, o sistema está instalado.
Reiniciando:
# exit
# cd /mnt
# umount -l funtoo
# reboot #Torça para não dar kernel panic. (rs)
XORG / MATE / CONFIGURAÇÕES / EXTRAS
PRIMEIRO BOOT
Após carregar o kernel, entre com seu usuário. Depois mude para root e então, temos que editar o “make.conf” antes de instalar o Xorg.
# nano /etc/portage/make.conf
Adicione os parâmetros:
EMERGE_DEFAULT_OPTS=”–autounmask-write=n”
ACCEPT_LICENSE=”*”
AUTOCLEAN=”yes”
INPUT_DEVICES=”evdev keyboard synaptics mouse”
VIDEO_CARDS=”intel vesa fbdev” #nvidia nv vga” #Para intel
VIDEO_CARDS=”nvidia nouveau” #Para Nvidia
VIDEO_CARDS=”radeon” #Para amd
Como podem ver, a minha placa de vídeo é uma Intel. Infelizmente, quem tem NVidia ou AMD, terá que ler a WIKI para saber o procedimento correto, pois nunca tive um PC com NVidia e tive só um notebook com AMD, mas não instalei o Funtoo nele.
Mais detalhes em:
Nvidia:
- Package: NVIDIA Linux Display Drivers (x11-drivers/nvidia-drivers)
- NVidia/nvidia-drivers – Gentoo Wiki
- Xorg/Configuration – Gentoo Wiki
AMD:
- Package: AMD Catalyst Video Drivers (x11-drivers/ati-drivers)
- fglrx – Gentoo Wiki
- radeon – Gentoo Wiki
Após editar o “make.conf”, salve, saia e execute o comando:
# emerge x11-base/xorg-drivers #Com esse comando, o sistema irá instalar os drivers que precisa para subir o X.
AMBIENTE GRÁFICO
Como disse antes nesse artigo, vou usar o ambiente Mate. Mas antes de instalar, precisamos habilitá-lo, para isso use o comando:
# eselect profile add funtoo/1.0/linux-gnu/mix-ins/mate
Depois:
# emerge -va mate
Uma dica, entre no “make.conf” e coloque o pulseaudio na variável “USE”, ficando assim:
… assim você poderá aumentar o volume do sistema até 150%.
Após a instalação do Mate, temos que instalar mais alguns pacotes:
# emerge sys-auth/consolekit gnome-extra/nm-applet sys-power/acpi sys-power/acpid
Após isso, execute:
# rc-update add dbus default
# /etc/init.d/consolekit start
# rc-update add consolekit default
# rc-update add acpid default
# rc-update add bluetooth default
Agora digite:
# exit #Para sair do modo root e voltar ao usuário normal
E vamos editar o arquivo “xinitrc”:
$ nano ~/.xinitrc
E adicione a linha:
Salve, saia e reinicie o sistema:
$ sudo reboot
Depois de reiniciar o sistema, entre com seu usuário e com o comando:
$ startx #Para subir a interface gráfica
Vamos instalar agora alguns pacotes “extras” necessários para uso básico.
GOOGLE CHROME
Existem três versões do Google Chrome no Portage. Escolha uma e instale, são elas:
- www-client/google-chrome = estável
- www-client/google-chrome-beta =beta
- www-client/google-chrome-unstable = instável , ainda em fase de testes.
FIREFOX
Tem duas versões no Portage, são elas:
- www-client/firefox :: compilado a partir das fontes, demora mais ou menos 2 horas pra compilar, dependendo do hardware.
- www-client/firefox-bin :: Firefox Binário, instalação fácil e rápida.
AUDACIOUS
Para a instalação completa do Audacious com temas e plugins, instale os pacotes:
$ sudo emerge media-sound/audacious x11-themes/audacious-themes media-plugins/audacious-plugins
SMPLAYER
Instalação completa do SMplayer:
$ sudo emerge media-video/smplayer x11-themes/smplayer-skins x11-themes/smplayer-themes
* Importante: quando for instalar o SMplayer, o Portage irá dizer para você definir uma flag na variável “USE” (qt4) ou (qt5), use apenas uma. Porém, quando usei a flag “qt5”, surgiram vários outros problemas o que me fez remover a flag “qt5” e usar a flag “qt4”.
VLC
Execute:
$ sudo emerge media-video/vlc
QBITTORRENT
Execute:
$ sudo emerge net-p2p/qbittorrent
LIBREOFFICE
- app-office/libreoffice
- app-office/libreoffice-bin
Escolha uma das opções e instale. Lembre-se que a primeira opção é a compilação, pode levar várias horas para compilar.
GIMP
Execute:
$ sudo emerge media-gfx/gimp
Para ver algumas opções de plugins e brushes:
$ sudo emerge -s gimp
SKYPE
Execute:
$ sudo emerge net-im/skype
GPARTED
Execute:
$ sudo emerge sys-block/gparted
Agora você já tem o básico para o dia a dia no Funtoo.
Depois de tudo instalado atualize o sistema:
# emerge –sync
# emerge -auND @world
COMANDOS BÁSICOS
Comandos básicos do Portage:
# emerge –sync #Atualiza a árvore do Portage
# emerge -s pacote #Procura por algum pacote
# emerge -c pacote #Remove um pacote
# emerge -auND @world #Atualiza todo o sistema
- a :: Nos mostra o que será baixado e pergunta se queremos continuar.
- u :: Atualiza pacotes especificos e não faz o download novamente dos pacotes já baixados.
- N :: Atualiza todos os pacotes que foram alterados.
- D :: Atualiza toda a árvore de dependência dos pacotes.
# emerge -aC #Remove o pacote pedindo confirmação antes de realizar qualquer alteração
# emerge -a –depclean #Remove pacotes orfãos pedindo a confirmação antes de realizar qualquer alteração
Para mais detalhes sobre o Portage acesse:
CONCLUSÃO
Funtoo exige muita paciência para instalar, configurar e usar no dia a dia. Funtoo é para quem realmente gosta de distros de compilação ou curiosos, a fim de “fuçar” e conhecer melhor o sistema, pois o aprendizado é enorme.