How-To :: instalação do Gentoo Linux (1ª parte)


Aqui veremos (da forma mais detalhada possível) como instalar o sistema tido como o mais rápido e flexível dentre as distribuições Linux, o Gentoo.

A instalação poderá ser realizada a partir de um sistema qualquer, aqui utilizei como base a minha própria instalação do Gentoo, mas já o fiz a partir do Debian, do Slackware e por meio de LiveCD, o qual recomendo o SystemRescueCD (um gentoo-based).

Algumas partes deste tutorial, seguem às orientações da Gentoo Wiki, caso desejem consultá-la, segue o link:

Gentoo Wiki

Sempre que houver necessidade, porei links indicando a fonte para consulta.

Vamos lá?

LiveCD.

Se optar pelo SystemRescueCD, baixe a imagem .iso assim:

$ wget -nv https://sourceforge.net/projects/systemrescuecd/files/sysresccd-x86/5.2.2/systemrescuecd-x86-5.2.2.iso
$ md5sum systemrescuecd-x86-5.2.2.iso # MD5SUM: 217c4ad1bc5c54b2e21ef8c390004ce5
$ isohybrid systemrescuecd-x86-5.2.2.iso

Daí escolha se vai gravar em CD, ou se como eu vai utilizar um drive USB, neste caso, com o dd faremos isso (observe o nome do dispositivo, o tal do X), na dúvida:

$ sudo fdisk -l
$ sudo dd if=systemrescuecd-x86-5.2.2.iso of=/dev/sdX bs=8M; sudo sync

Instalação Real.

Se por outro lado, optar por realizar a instalação do Gentoo através de seu sistema real, certifique-se que a mídia de instalação (na verdade o stage a ser baixado, seja de mesma arquitetura), afim de evitar problemas na hora do chroot. Aqui instalei a partir do Gentoo x86_64, logo, o stage3 teve a mesma arquitetura.

Abaixo seguem os links mais utilizados, as das arquiteturas x86 e x86_64, existem outros, para diferentes profiles, dentre eles a phoda do SystemD.

Gentoo x86 autobuild.

Gentoo x86_64 autobuild.

Instalação.

Optei por utilizar o velho HD meia-boca de 400GB, onde já estão instalados Solus OS, Slackware Current e Manjaro OpenBox e onde já consta uma partição SWAP, bastou apenas criar uma partição extra para esta instalação:

# fdisk -l
# cfdisk /dev/sdc
# mkfs.ext4 -L gentoo /dev/sdc6
listagem das partições…
criação da nova partição…
nova partição visível…
formatação da nova partição…

Habilitar essa memória SWAP:

# swapon /dev/sdc3
observe que baixei o stage3 para minha $HOME, antes de habilitar a SWAP!

Criar o ponto de montagem /mnt/gentoo:

# mkdir /mnt/gentoo

E montar a partição alvo no ponto de montagem recém-criado: /mnt/gentoo:

# mount /dev/sdc6 /mnt/gentoo

Afim de não ter problemas com horários, justamente por ter um sistema SystemD-like instalado (Manjaro), acerto a hora e relógio do sistema (uso localtime), vejam se o seu caso é UTC:

# ntpdate -u br.pool.ntp.org
# hwclock --localtime --systohc
Aqui vemos tanto o acerto da hora, como a extração do stage para /mnt/gentoo

Então, começamos a brincar baixando o stage3 e o descompactando em /mnt/gentoo:

x86:

# wget -nv http://gentoo.c3sl.ufpr.br/releases/x86/autobuilds/current-stage3-i686/stage3-i486-20180525T214502Z.tar.xz
# tar xpf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner -C /mnt/gentoo/

ou

x86_64:

# wget -nv http://gentoo.c3sl.ufpr.br/releases/amd64/autobuilds/current-stage3-amd64/stage3-amd64-20180524T214502Z.tar.xz
# tar xpf stage3-*.tar.xz --xattrs-include='*.*' --numeric-owner -C /mnt/gentoo/

NOTA: Caso estes links tornem-se obsoletos, basta acessar para x86: http://gentoo.c3sl.ufpr.br/releases/x86/autobuilds/current-stage3-i686 e para x86_64: http://gentoo.c3sl.ufpr.br/releases/amd64/autobuilds/current-stage3-amd64

make.conf.

Aqui optei por utilizar um make.conf ainda mais resumido do que o que estava utilizando: HOW-TO :: MAKE.CONF PARA GENTOO STABLE

Neste removi as uses bindist, mtp e nls, quando necessário farei os ajustes per-packages, além disso removi a variável LINGUAS, conforme observado num link citado no post acima, mantendo apenas a variável L10N e também desmarquei da lista de exclusões o pie, visto que esta é uma instalação nova, com profile novo e gcc idem, ficou assim meu /etc/portage/make.conf:

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="*"

CHOST="x86_64-pc-linux-gnu"
CFLAGS="-march=opteron-sse3 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
FFLAGS="${CFLAGS}"
FCFLAGS="${FFLAGS}"

MAKEOPTS="-s -j2"
EMERGE_DEFAULT_OPTS="--ask --jobs=2 --load-average=2 --autounmask-write=y --with-bdeps=y --quiet-build=y --keep-going=y"
FEATURES="ccache parallel-fetch parallel-install sandbox"
CCACHE_DIR="/var/tmp/ccache"
CCACHE_SIZE="5G"
AUTOCLEAN="yes"

PORTDIR="/usr/portage"
DISTDIR="${PORTDIR}/distfiles"
PKGDIR="${PORTDIR}/packages"
PORTAGE_TMPDIR=/var/tmp
PORTAGE_NICENESS=10
PORT_LOGDIR=/var/log/portage
PAX_MARKINGS="none"
AUTOCLEAN="yes"

CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext sse sse2 sse3"

DEFAULT="-bluetooth -doc -eds -gnome -joystick -kde -llvm -midi -networkmanager -phonon -qt5 -systemd -upower"

USE="${CPU_FLAGS_X86} ${DEFAULT}"

ALSA_CARDS="nvidia"
INPUT_DEVICES="evdev keyboard mouse"
VIDEO_CARDS="nouveau"
SANE_BACKENDS="hp"

L10N="pt-BR"

GENTOO_MIRRORS="http://gentoo.c3sl.ufpr.br/ \
                ftp://gentoo.c3sl.ufpr.br/gentoo/ \
                http://distfiles.gentoo.org/ \
                rsync://gentoo.c3sl.ufpr.br/gentoo/"
o meu make.conf ainda mais enxuto…

Se não sabe quais CFLAGS usar para o seu processador você pode usar como base:

ACCEPT_KEYWORDS="amd64"
ou
ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="*"

CHOST="x86_64-pc-linux-gnu"
ou
CHOST="i686-pc-linux-gnu"

CFLAGS="-march=native -O2 -pipe"
CXXFLAGS="${CFLAGS}"

O que garante um otimização bem básica, porém, o melhor a fazer é ler o conteúdo do artigo abaixo:

Safe CFLAGS

Fazer uma cópia do arquivo /usr/share/portage/config/make.conf.example e ajustá-lo de acordo com sua necessidade:

# cp /mnt/gentoo/usr/share/portage/config/make.conf.example /mnt/gentoo/etc/portage/make.conf
# nano /mnt/gentoo/etc/portage/make.conf

O porque disso? porque quando defino o meu driver de audio: ALSA_CARDS como “nvidia”, VIDEO_CARDS como “nouveau” e INPUT_DEVICES como “evdev keyboard mouse” ao executar um:

# emerge -av xorg-drivers

Será instalado apenas o que eu preciso, nada de ATI, Intel, SIS, etc entre outras tralhas.

somente o necessário!

A opção MAKEOPTS=”-s -j2″ é para que o emerge execute mais tarefas simultaneamente, logo se dispor de um octa-core, pode alterar para MAKEOPTS=”-s -j9″, mas se quiser leia um excelente artigo aqui mesmo do Blog, do colega @luiztux:

HOW-TO :: OTIMIZANDO UM POUCO MAIS AS COMPILAÇÕES NO GENTOO

Além disso, é interessante manter as opções do CCACHE vistas no meu make.conf, porque também irá acelerar todo o processo.

Não falo aqui de DISTCC porque não disponho de meios para implementá-lo, mas este é o melhor método para acelerar as compilações.

repos.conf.

Faça uma cópia do arquivo /mnt/gentoo/usr/share/portage/config/repos.conf e edite-o se achar necessário:

# mkdir --parents /mnt/gentoo/etc/portage/repos.conf
# cp /mnt/gentoo/usr/share/portage/config/repos.conf /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
# nano /mnt/gentoo/etc/portage/repos.conf/gentoo.conf
repos.conf default (ainda via rsync)

Quando achar melhor (caso queira), modifique o método de sincronização para o GIT, um processo muito mais rápido do que o velho RSYNC:

HOW-TO :: PORTAGE + GIT

Copie o arquivo /etc/resolv.conf da instalação real para a nova instalação:

# cp --dereference /etc/resolv.conf /mnt/gentoo/etc/

chroot.

Entremos no ambiente de trabalho executando um chroot, mas não sem antes montar os diretórios necessários (tendo inclusive executado alguns comandos desnecessários para mim, mas necessários para aqueles que utilizem mídias não-gentoo, como alguns dos *buntus da vida ou sistemas systemd-based):

# mount --types proc /proc /mnt/gentoo/proc
# mount --rbind /sys /mnt/gentoo/sys
# mount --make-rslave /mnt/gentoo/sys
# mount --rbind /dev /mnt/gentoo/dev
# mount --make-rslave /mnt/gentoo/dev
# test -L /dev/shm && rm /dev/shm && mkdir /dev/shm
# mount --types tmpfs --options nosuid,nodev,noexec shm /dev/shm
# chmod 1777 /dev/shm

Todos os comandos acima foram executados!

Agora sim! para executar o chroot e entrar em seu novo Gentoo, execute:

# chroot /mnt/gentoo /bin/bash
# source /etc/profile
# export PS1="(chroot) ${PS1}"
all-in-one (uma pancada de comandos de uma vez só)

Note que o prompt já mudou:

(chroot) gentoo / #

Atualização do Sistema.

Sincronize o repositório assim:

(chroot) gentoo / # emerge-webrsync 
(chroot) gentoo / # emerge --sync --quiet

Este slideshow necessita de JavaScript.

Caso queira ler as mensagens listadas pelo eselect:

(chroot) gentoo / # eselect news list
(chroot) gentoo / # eselect news read
(chroot) gentoo / # eselect news purge

Profile.

Liste, configure e veja assim:

(chroot) gentoo / # eselect profile list
(chroot) gentoo / # eselect profile set 12 # já estava selecionado, apenas repeti.
(chroot) gentoo / # eselect profile show

Locales.

Edite o arquivo /etc/locale.gen, deixando-o assim:

pt_BR ISO-8859-1
pt_BR.UTF-8 UTF-8

Em seguida, execute:

(chroot) gentoo / # locale-gen 

Selecione o Locale padrão com:

(chroot) gentoo / # eselect locale list
(chroot) gentoo / # eselect locale set 5  # selecione esse profile
(chroot) gentoo / # eselect locale show

Edite o arquivo /etc/env.d/02locale, deixando-o assim (se necessário):

# Configuration file for eselect
# This file has been automatically generated.
LANG="pt_BR.utf8"
LC_COLLATE="C"

Outros ajustes.

Copie o seu timezone para /etc/localtime:

(chroot) gentoo / # cp /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime

Edite o arquivo /etc/conf.d/hostname, deixando-o assim (se desejar):

# Set to the hostname of this machine
hostname="gentoo"

Edite o arquivo /etc/hosts, deixando-o assim:

# IPv4 and IPv6 localhost aliases
127.0.0.1	localhost  gentoo
::1		localhost  gentoo

SE DESEJAR, edite o arquivo /etc/rc.conf, aqui habilito a opção rc_parallel:

rc_parallel="YES"

Habilite o seu mapa de teclado em /etc/conf.d/keymaps:

keymap="br-abnt2"

Altere se necessário, o relógio do sistema, aqui opto pela opção local e ainda deixo habilitada a opção para ajustar o relógio do hardware ao desligar:

clock="local"
#clock_hctosys="YES"
clock_systohc="YES"
clock_args=""

Agora sim, podemos atualizar o sistema por completo antes de instalar o kernel:

(chroot) gentoo / # emerge --ask --update --deep --newuse @world
(chroot) gentoo / # emerge --depclean

Kernel.

Agora vamos instalar o kernel gentoo-sources, para tanto, prosseguiremos assim:

(chroot) gentoo / # emerge gentoo-sources genkernel

Entre no diretório de trabalho (/usr/src), os passos 2 e 3 são desnecessários, pois há apenas 1 kernel disponível, acesse o diretório linux e se desejar (mas recomendo que o faça), baixe a config mais atual do Kernel do Slackware Current:

(chroot) gentoo / # cd /usr/src/
(chroot) gentoo / # eselect kernel list
(chroot) gentoo / # eselect kernel set 1
(chroot) gentoo / # cd linux

# para Gentoo x86_64:
(chroot) gentoo / # wget -O .config https://mirrors.slackware.com/slackware/slackware-current/source/k/kernel-configs/config-huge-4.14.43.x64

# para Gentoo x86:
(chroot) gentoo / # wget -O .config https://mirrors.slackware.com/slackware/slackware-current/source/k/kernel-configs/config-huge-smp-4.14.44-smp

Para fins de conferência, execute o make menuconfig, salve ao sair:

(chroot) gentoo / # make menuconfig

Este slideshow necessita de JavaScript.

Compile e instale o nove kernel assim:

(chroot) gentoo / # make bzImage
(chroot) gentoo / # make modules
(chroot) gentoo / # make modules_install
(chroot) gentoo / # cp arch/x86/boot/bzImage /boot/kernel-4.9.95-gentoo
(chroot) gentoo / # cp .config /boot/config-4.9.95-gentoo
(chroot) gentoo / # cp System.map /boot/System.map-4.9.95-gentoo
compilação do kernel…
instalação dos módulos…
ajustes finais…

Bootloader.

Vamos agora instalar o Grub (e opcionalmente se deseja adicionar outros sistemas no menu de boot), instalar o os-prober:

(chroot) gentoo / # emerge grub:2 os-prober
(chroot) gentoo / # mkdir -p /boot/grub
(chroot) gentoo / # grub-mkconfig -o /boot/grub/grub.cfg
(chroot) gentoo / # grub-install /dev/sdc

Ao tentar instalar o os-prober, alguns ajustes são necessários:

(chroot) gentoo / # emerge os-prober # tecle Y quando perguntado
(chroot) gentoo / # etc-update # escolha 1, depois 1 e tecle Y para atualizar o arquivo
(chroot) gentoo / # emerge os-prober
(chroot) gentoo / # grub-mkconfig -o /boot/grub/grub.cfg
(chroot) gentoo / # grub-install /dev/sdc

Este slideshow necessita de JavaScript.

A título de informação, ficou assim o meu arquivo /etc/default/grub:

GRUB_DISTRIBUTOR="Gentoo"

#GRUB_DEFAULT=0

GRUB_TIMEOUT=5
GRUB_TIMEOUT_STYLE=menu

GRUB_CMDLINE_LINUX="net.ifnames=0"
GRUB_CMDLINE_LINUX_DEFAULT="quiet gfxpayload=1024x768x32"

#GRUB_TERMINAL=console

GRUB_GFXMODE=1024x768x32
##GRUB_GFXPAYLOAD_LINUX=keep

#GRUB_THEME="/boot/grub/themes/starfield/theme.txt"
#GRUB_BACKGROUND="/boot/grub/mybackground.png"

#GRUB_DISABLE_LINUX_UUID=true
#GRUB_DISABLE_RECOVERY=true
#GRUB_DISABLE_SUBMENU=y

#GRUB_INIT_TUNE="60 800 1"

A opção GRUB_CMDLINE_LINUX=”net.ifnames=0″, faz com que as interfaces de rede mantenham as suas identificações clássicas, algo já visto aqui em:

How-To :: mantendo os clássicos nomes nas interfaces de rede

Serviços Essenciais.

Antes de cair na tela preta, faremos outras instalações, como os de serviços essenciais (syslog, cron, dhcp):

(chroot) gentoo / # emerge syslog-ng vixie-cron dhcpcd
(chroot) gentoo / # rc-update add syslog-ng default
(chroot) gentoo / # rc-update add vixie-cron default
(chroot) gentoo / # rc-update add dhcpcd default

Nesta parte deixo o link para a Configuração de Rede, visto que eu uso DHCP (o que está abordado no comando acima), já outros precisam de métodos diferentes.

Configuring the network

Xorg.

Agora veremos como instalar o Xorg que como visto em meu caso, instalará somente o necessário para minha placa de vídeo funcionar, bem como os periféricos. Aproveito também para instalar o dbus e o consolekit:

(chroot) gentoo / # emerge -av xorg-drivers
(chroot) gentoo / # emerge -av sys-apps/dbus sys-auth/consolekit
(chroot) gentoo / # rc-update add dbus default
(chroot) gentoo / # rc-update add consolekit default

Usuários e Senhas.

Antes de reiniciar, convém definir a senha do root e criar o usuário (a)normal:

(chroot) gentoo / # passwd
(chroot) gentoo / # useradd -m -G audio,cdrom,users,video,wheel -s /bin/bash edps
(chroot) gentoo / # passwd edps
usuários e senhas…

Troque edps pelo seu login, ou se quiser ser eu, deixe assim mesmo! 😉

Fstab.

Aqui segue o exemplo do meu /etc/fstab:

/dev/sdc6               /		ext4		noatime		0 1
/dev/sdc3		none		swap		sw		0 0
/dev/sdb6		none		swap		sw		0 0
none                    /dev/shm        tmpfs           defaults        0 0

Mas se quisesse utilizar as UUIDS (o que é recomendado), seria assim:

UUID=b3783321-1b14-4634-9608-6a907af5094b               /		ext4		noatime		0 1
UUID=bfdaee51-2804-4535-a862-6a18e379cc84		none		swap		sw		0 0
UUID=694807e3-d896-4fd2-97a9-35c7e275d6bf		none		swap		sw		0 0
none                    /dev/shm        tmpfs           defaults        0 0

Convém dizer, que parece que a opção de montagem noatime apresenta erros durante o boot quando ocorre picos de energia, mas também utilizo a opção rc_parallel habilitada no /etc/rc.conf o que acelera ainda mais o processo de boot (devo investigar isso. Por hora, se assim desejar troque noatime por defaults.

Saia do ambiente chroot, desmonte a partição /mnt/gentoo e reinicie!

(chroot) gentoo / # exit
# cd
# umount /mnt/gentoo/dev /mnt/gentoo/proc /mnt/gentoo/sys
# umount /mnt/gentoo
# reboot

Se tudo der certo, você cairá na tela do Grub, aqui eu teclo F12 e escolho por qual HD iniciar, o padrão é /dev/sda, nesta instalação o Grub foi gravado em /dev/sdc:

tela do Grub com novecentas distros!

Se chegou até aqui, meus parabéns! não garanto que irei fazer a 2ª parte, porque isso toma muito tempo. Tenho todas imagens de todas as etapas até o meu OpenBox ficar pronto.

Até aqui o sistema básico está funcional, serviços, rede e Xorg, faltam apenas instalar Som e um Desktop e seus componentes habituais.

t+

Anúncios
How-To :: instalação do Gentoo Linux (1ª parte)

8 comentários sobre “How-To :: instalação do Gentoo Linux (1ª parte)

  1. Fala man.
    Que grub é esse? Muita hora nessa calma.
    Show como sempre.
    Acrescenta muito a comunidade sempre.
    Estou fazendo a instalação e “automatizando”, criando uns scripts pra facilitar.
    Abraço.

    Curtir

  2. Boa tarde.
    Bom consegui instalar o bicho rodar o ambiente gráfico e tal, mas como é notebook preciso da rede wifi ai estou me enroscando pois quando usei Funtoo usava o wpa_supplicant pra conectar, mas não estou conseguindo instalar da erro e não vai. Já busquei em vários lugares, vi que esse erro já ocorreu com outros, mas das soluções apresentadas nenhuma funcionou aqui até agora.
    Abri um tópico no Vol se puder dar uma olhada lá desde já agradeço.
    https://www.vivaolinux.com.br/topico/Gentoo-Linux/Erro-na-instalacao-do-wpa-supplicant/

    Curtir

    1. Cara, infelizmente não posso ajudá-lo, aqui compilei com suceso esse pacote:

      ┌─(~/Desktop)─────────────────────────────────────────────(edps@gentoo:pts/0)─┐
      └─(10:59:31)──> install dev-python/m2crypto ──(dom,set16)─┘

      These are the packages that would be merged, in order:

      Calculating dependencies... done!
      [ebuild N ] dev-lang/swig-3.0.12 USE="pcre -ccache -doc"
      [ebuild N ] dev-python/m2crypto-0.24.0 USE="-libressl" PYTHON_TARGETS="python2_7"

      Would you like to merge these packages? [Yes/No] y
      >>> Verifying ebuild manifests
      >>> Emerging (1 of 2) dev-lang/swig-3.0.12::gentoo
      >>> Installing (1 of 2) dev-lang/swig-3.0.12::gentoo
      >>> Emerging (2 of 2) dev-python/m2crypto-0.24.0::gentoo
      >>> Installing (2 of 2) dev-python/m2crypto-0.24.0::gentoo
      >>> Recording dev-python/m2crypto in "world" favorites file...
      >>> Jobs: 2 of 2 complete Load avg: 1.65, 1.33, 1.06
      >>> Auto-cleaning packages...

      >>> No outdated packages were found on your system.

      * GNU info directory index is up-to-date.
      ┌─(~/Desktop)─────────────────────────────────────────────(edps@gentoo:pts/0)─┐
      └─(11:36:48)──> ──(dom,set16)─┘

      Curtir

      1. O valeu pela disposição em ajudar.
        Acabei fazendo backup do meu hd e instalei o Slackware e claro deixei umas partições pra brincar com o gentoo o de novo.
        O Funtoo foi de boa.
        Valeu.

        Curtir

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s