Instalação do Arch Linux

Arch Linux é uma distribuição Linux independente e versátil fundada por Judd Vinet, otimizada para processadores i686 (Pentium Pro, II, etc. e AMD compatíveis). Judd inspirou-se em uma outra distribuição minimalista chamada CRUX.

A abordagem de desenvolvimento do Arch foca na simplicidade, minimalismo e elegância de código. Simplicidade, de arcordo com o Arch, é definido como “… desprovido de adições desnecessárias, modificações ou complicações”.

Arch é uma distribuição rolling release, ou seja, o sistema é atualizado continuamente, o que significa que você terá acesso às novas versões simplesmente mantendo o sistema atualizado através do gerenciador de pacotes, sem a necessidade de instalar uma versão nova. Para facilitar as constantes atualizações, Judd criou o Pacman (Package manager - gerenciador de pacotes), que torna fácil a tarefa dos usuários personalizarem o sistema.

Usuários da distribuição podem criar facilmente seus próprios pacotes compatíveis com o pacman usando ferramentas como o “Arch Build System”, funcionalidade esta que ajudou a sustentar o AUR, um repositório de pacotes criados por usuários que complementam os repositórios oficiais.

Filosofia

Arch Linux foi desenvolvido para ser o sistema operacional perfeito como base para usuários avançados. Sua filosofia de não utilização de ferramentas de configuração assemelha-se com a do Slackware exigindo, portanto, um certo nível de conhecimento para instalação e configuração inicial, porém é simples de ser mantido. O restante da filosofia Arch Linux é baseada em 3 pontos:

  • Keep it simple, keep it lightweight. Seguindo o princípio KISS.
  • Utilizar GUIs (interfaces gráficas) para construir / usar seu sistema levará o usuário a ser prejudicado no final. Em algum momento o usuário invariavelmente precisará saber o que algumas interfaces gráficas escondem.
  • Arch permite que o usuário faça tantas contribuições quanto achar necessárias, contanto que elas não violem estes ideais de desenvolvimento ou filosofia.

Gerenciamento de Pacotes

Arch é baseado principalmente em pacotes binários. Esses pacotes são gerenciados pela ferramenta Pacman que conduz a instalação de pacotes, atualizações do sistema, remoção de programas e consultas ao banco de dados de pacotes. Os pacotes binários são compilados de forma otimizada para processadores i686. Também podem ser construídos a partir dos códigos fonte através do ABS (Arch Linux Build System), que trabalha nos moldes do Ports. Os pacotes vêm da árvore de pacotes do Arch Linux e de seus mirrors. Atualmente existem 4 diferentes grupos:

  • Core - Contém todos os pacotes necessários para o sistema Linux básico.
  • Extra - Contém pacotes que não são necessários para o sistema base, mas adicionam funcionalidades extras.
  • Multilib - Possui as bibliotecas 32bits para 64bits, ou vice versa, permitindo o uso simultâneo de aplicações 32bits ou 64bits. Útil para programas que só estejam disponíveis justamente na arquitetura oposta.
  • Testing - Contém pacotes que são instáveis e ainda estão sendo testados antes de serem adicionados ao grupo extra ou core.
  • Community - Contém pacotes construídos pela comunidade e aprovada pelos trusted users.

Existem repositórios não oficiais também e são integrados à árvore oficial.

Arch User Repository

O Arch User Repository (AUR) é um repositório comunitário e não oficial do Arch Linux para usuários. Ele contém apenas “arquivos de descrição” (chamados PKGBUILDS) que permitem compilar pacotes a partir de seu código fonte e instalá-los posteriormente com o pacman.

Muitos pacotes novos no Arch Linux começam no AUR. Usuários podem votar contra ou a favor dos pacotes, para só então — depois de se tornarem populares o suficiente — serem movidos para o repositório oficial da comunidade.

Vamos obter o Arch Linux em Arch Linux

O que vou utilizar:

  • 20 GB de Disco
  • Placa de rede 10/100/1000
  • Ip: 192.168.1.120/24
  • 512 MB de Ram
  • Teclado abnt2

Agora configure a sua máquina para dar boot pelo CD

  1. Aqui na primeira tela selecione a sua arquitetura eu vou selecionar Boot Arch Linux (x86_64)
  2. Depois do sistema carregar vamos selecionar o nosso teclado:
loadkeys br-abnt2
Loading /usr/share/kbd/keymaps/i386/qwerty/br-abnt2.map.gz

Vamos listar se temos algum endereço ip em nossa máquina já

ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 08:00:27:6a:06:65 brd ff:ff:ff:ff:ff:ff
    inet 192.168.1.120/24 scope global eth0
    inet6 fe80::a00:27ff:fe6a:665/64 scope link 
       valid_lft forever preferred_lft forever

Caso precise remover o endereço ip e adicionar outro podemos fazer da seguinte forma considerando que o nosso endereço ip é 192.168.1.120/24

Vamos remover o ip

ip addr del 192.168.1.120/24 dev eth0

Agora vamos setar o endereço ip para nossa maquina

ip addr add 192.168.1.120/24 dev eth0

Agora vamos adicionar o gateway a nossa maquina

ip route add default via 192.168.1.1

Agora vamos adicionar o nosso servidor dns

echo "nameserver 192.168.1.1" > /etc/resolv.conf

Agora vamos testar a nossa conexão com a internet

ping www.terra.com.br -c 2
PING www.terra.com.br (200.154.56.80) 56(84) bytes of data.
64 bytes from www.terra.com.br (200.154.56.80): icmp_seq=1 ttl=55 time=15.7 ms
64 bytes from www.terra.com.br (200.154.56.80): icmp_seq=2 ttl=55 time=16.0 ms

--- www.terra.com.br ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 15.778/15.936/16.095/0.202 ms

Caso não esteja utilizando dhcp precisamos matar o daemon pra ele não ficar zerando o nosso arquivo de dns

killall -9 dhcpcd

Já temos a conexão com a internet, agora vamos preparar o nosso disco

Vamos listar os discos

fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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


Disk /dev/mapper/arch_root-image: 809 MB, 809500672 bytes, 1581056 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


Disk /dev/mapper/arch_usr-lib-modules: 100 MB, 100663296 bytes, 196608 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


Disk /dev/mapper/arch_usr-share: 511 MB, 511705088 bytes, 999424 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

O nosso disco é o /dev/sda vamos criar somente 3 partições em nosso disco uma de 200 MB para o /boot uma de 17 GB para a raiz e 2,8 GB para Swap

Vamos acessar o nosso disco com o fdisk

fdisk /dev/sda
Welcome to fdisk (util-linux 2.22.1).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0xb2636897.

Command (m for help): 

Agora que já estamos logados no fdisk vamos criar a nossa primeira partição como primária com o tamanho de 200MB

Command (m for help): n 
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048): #ENTER
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +200M
Partition 1 of type Linux and of size 200 MiB is set

Aqui o que fizemos o n é para criar uma nova partição, o p é para definirmos ela como primária o 1 é o número dela em First sector somente pressionei enter pois vamos usar o default e então eu defini o tamanho da partição +200M.

Agora vamos criar a partição raiz

Command (m for help): n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): p
Partition number (1-4, default 2): 2
First sector (411648-41943039, default 411648): #ENTER
Using default value 411648
Last sector, +sectors or +size{K,M,G} (411648-41943039, default 41943039): +17G
Partition 2 of type Linux and of size 17 GiB is set

Mesmo processo da criação da partição para o /boot porém aqui informamos +17G que é o tamanho da nossa raiz

Agora vamos criar uma partição com o tamanho restante do nosso disco

Command (m for help): n
Partition type:
   p   primary (2 primary, 0 extended, 2 free)
   e   extended
Select (default p): p
Partition number (1-4, default 3): 3
First sector (36063232-41943039, default 36063232): #ENTER
Using default value 36063232
Last sector, +sectors or +size{K,M,G} (36063232-41943039, default 41943039): #ENTER
Using default value 41943039
Partition 3 of type Linux and of size 2.8 GiB is set

Aqui em First sector e Last sector eu pressionei ENTER para que o sistema use o tamanho total restante

Agora vamos mandar listar as nossas partições

Command (m for help): p

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 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
Disk identifier: 0xb2636897

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1            2048      411647      204800   83  Linux
/dev/sda2          411648    36063231    17825792   83  Linux
/dev/sda3        36063232    41943039     2939904   83  Linux

Elas estão ok agora vamos mandar gravar elas no disco

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.

Agora vamos listar as nossas partições pelo sistema

lsblk /dev/sda
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  200M  0 part 
├─sda2   8:2    0   17G  0 part 
└─sda3   8:3    0  2.8G  0 part 

Elas estão ok como definimos no fdisk sempre confira a criação delas em alguns casos precisamos reiniciar a máquina para que ela reconheça a nova tabela de partições.

Agora vamos criar os sistemas de arquivos para as partições vou usar o seguinte:

  1. / → ext4
  2. /boot → ext4
  3. swap → swap

Vamos criar o sistema de arquivos para o /boot

mkfs.ext4 /dev/sda1
mke2fs 1.42.6 (21-Sep-2012)
Filesystem label=
OS type: Linux
Block size=1024 (log=0)
Fragment size=1024 (log=0)
Stride=0 blocks, Stripe width=0 blocks
51200 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
First data block=1
Maximum filesystem blocks=67371008
25 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 
  8193, 24577, 40961, 57345, 73729

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (4096 blocks): done
Writing superblocks and filesystem accounting information: done 

Agora vamos criar o sistema de arquivos para a raiz

mkfs.ext4 /dev/sda2
mke2fs 1.42.6 (21-Sep-2012)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
1114112 inodes, 4456448 blocks
222822 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
136 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
  32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
  4096000

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done 

Agora precisamos criar o sistema de arquivos para a partição da swap

mkswap /dev/sda3
Setting up swapspace version 1, size = 2939900 KiB
no label, UUID=a8b0853e-8d01-4d34-803d-fc6bd3125cff

Agora precisamos montar a partição raiz no /mnt e a partição boot no /mnt/boot

Vamos montar primeiro a partição raiz

mount /dev/sda2 /mnt

Agora vamos criar um diretório boot dentro do /mnt para montarmos o /dev/sda1 que vai armazenar os arquivos de boot

mkdir /mnt/boot

Agora vamos montar o /dev/sda2 no /mnt/boot

mount /dev/sda1 /mnt/boot

Agora vamos listar as nossas partições

lsblk /dev/sda
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  200M  0 part /mnt/boot
├─sda2   8:2    0   17G  0 part /mnt
└─sda3   8:3    0  2.8G  0 part 

Como podemos notar temos as partições montadas corretamente o /dev/sda3 não vamos montar pois somente precisamos ativar o swap porém não precisamos por enquanto vamos mandar fazer isso na inicialização do sistema mais adiante.

Agora precisamos fazer um acerto no arquivo de repositórios precisamos comentar todas as linhas que

sed -i 's/^S/#S/g' /etc/pacman.d/mirrorlist

Agora vamos descomentar somente a linha do repositório do Brasil

sed -i 's,#Server = http://archlinux.c3sl,Server = http://archlinux.c3sl,g' /etc/pacman.d/mirrorlist

Agora vamos mandar instalar o sistema base e algumas ferramentar básicas

pacstrap /mnt base base-devel vim net-tools dnsutils openssh wget dos2unix
[...]
pacstrap /mnt base base-devel vim net-tools dnsutils openssh  wget 52.55s user 11.85s system 40% cpu 2:38.72 total

Agora que já temos a base do nosso sistema precisamos gerar o nosso fstab

genfstab -U -p /mnt >> /mnt/etc/fstab

Agora precisamos adicionar a swap no fstab

echo "/dev/sda3 swap swap defaults 0 0" >> /mnt/etc/fstab

Agora vamos enjaular o Arch Linux para terminarmos a nossa configuração

arch-chroot /mnt /bin/bash

Agora vamos acertar o locales

sed -i 's/^#pt_BR/pt_BR/g' /etc/locale.gen

Agora vamos mandar gerar ele

locale-gen

Agora vamos deixar gravado o LANG no sistema

echo LANG=pt_BR.UTF-8 > /etc/locale.conf

Agora vamos mandar exportar o LANG para o sistema

export LANG=pt_BR.UTF-8

Agora vamos acertar o nosso teclado para o sistema

echo "KEYMAP=br-abnt2" > /etc/vconsole.conf

Agora vamos acertar o localtime do sistema no meu caso Sao_Paulo caso esteja em outra região consulte as possiveis configurações em /usr/share/zoneinfo/

ln -s /usr/share/zoneinfo/America/Sao_Paulo /etc/localtime

Agora vamos ajustar o relógio do Hardware com o do sistema

hwclock --systohc --utc

Agora vamos definir o nome da nossa máquina

echo arch > /etc/hostname

Agora caso queira utilizar dhcp precisamos somente mandar deixar o serviço ativo na inicialização do sistema

systemctl enable dhcpcd@eth0.service

Podemos utilizar também uma outra alternativa para dhcp configurando o ifplugd

Vamos mandar instalar ele

pacman -S ifplugd

Agora vamos acessar o diretório que contém a sua configuração

cd /etc/network.d

Agora vamos criar um link para configuração de dhcp

ln -s examples/ethernet-dhcp .

Agora vamos deixar o serviço para iniciar junto com o sistema

systemctl enable net-auto-wired.service

Agora caso esteja utilizando um endereço Estático vamos seguir o seguinte procedimento

Vamos mandar instalar o ifplugd

pacman -S netctl

Agora vamos acessar o diretório que contém as suas configurações

cd /etc/netctl

Agora vamos fazer uma cópia do arquivo de exemplo da configuração de endereço estático

cp examples/ethernet-static .

Agora vamos editar o nosso arquivo

vim ethernet-static
CONNECTION='ethernet'
DESCRIPTION='A basic static ethernet connection using iproute'
INTERFACE='eth0'
IP='static'
ADDR='192.168.1.120'
#ROUTES=('192.168.0.0/24 via 192.168.1.2')
GATEWAY='192.168.1.1'
DNS=('192.168.1.1')

## For IPv6 autoconfiguration
#IP6=stateless

## For IPv6 static address configuration
#IP6='static'
#ADDR6=('1234:5678:9abc:def::1/64' '1234:3456::123/96')
#ROUTES6=('abcd::1234')
#GATEWAY6='1234:0:123::abcd'

Agora vamos mandar inserir a nossa configuração na inicialização do sistema

netctl enable ethernet-static

Vamos habilitar também o sshd na inicialização do sistema

systemctl enable sshd.service

Caso esteja utilizando ip estático não podemos esquecer de acertar a configuração de DNS

echo "nameserver 192.168.1.1" > /etc/resolv.conf

Agora vamos criar um initial ramdisk

mkinitcpio -p linux

Agora vamos setar a senha para o usuário root

passwd
Digite a nova senha UNIX: #senha
Redigite a nova senha UNIX: #senha
passwd: senha atualizada com sucesso

Agora vamos criar um usuário comum para utilizamos o ambiente gráfico

useradd -m -g users -s /bin/bash douglas

Agora vamos setar uma senha para o nosso usuário

passwd douglas
Digite a nova senha UNIX: #senha
Redigite a nova senha UNIX: #senha
passwd: senha atualizada com sucesso

Agora vamos mandar instalar o Grub

pacman -S grub-bios
pacman -S grub

Agora vamos mandar instalar o Grub na MBR

grub-install --recheck /dev/sda
grub-install --target=i386-pc --recheck /dev/sda
Installation finished. No error reported.

Precisamos fazer mais um ajuste nele a respeito das mensagens

cp /usr/share/locale/en\@quot/LC_MESSAGES/grub.mo /boot/grub/locale/en.mo

Agora vamos mandar gerar a configuração do Grub

grub-mkconfig -o /boot/grub/grub.cfg
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-linux
Found initrd image: /boot/initramfs-linux.img
done

Agora já podemos sair da jaula

exit
arch-chroot /mnt  8.74s user 2.86s system 0% cpu 22:21.91 total

Agora vamos mandar desmontar as partições

umount /mnt/boot
umount /mnt

Agora vamos mandar reiniciar o sistema

reboot

Logue novamente em nosso Arch Linux

Agora vamos adicionar um repositório extra em nosso Arch Linux

vim /etc/pacman.conf
#No final do arquivo adicione as linhas abaixo
[archlinuxfr]
Server = http://repo.archlinux.fr/$arch

Agora vamos mandar instalar o yaourt e mais alguns pacotes básicos

pacman -Suy yaourt rsync pacman-color nmap tcpdump

Esse yaourt é o cara ele caso não tenhamos algum pacote no repositório default do pacman ele consegue obter os fontes do pacotes que queremos e manda compilar e instalar

Ex: vamos mandar pesquisar o Dropbox no pacman

pacman -sS dropbox

Não tivemos nenhum retorno agora vamos mandar pesquisar o Dropbox no yaourt

yaourt -sS dropbox
aur/bbox 0.1-1 (6)
    ...something like dropbox based on subversion.
aur/bbox-git 20120403-4 (1)
    ...something like dropbox based on subversion. (Git-Version, not precompiled, works w/o multilib)
aur/bitpocket-git 20120103-1 (0)
    DIY Dropbox or 2-way directory (r)sync with proper deletion - Git version
aur/caja-dropbox 0.7.1-2 (3)
    Dropbox for Linux - Caja extension (MATE File Manager)
aur/dolphin-box-plugin-git 20110404-1 (153)
    Dropbox integration for the dolphin file manager
aur/dolphin-dropbox-plugin-hg 27-1 (2)
    KDE Dolphin plugin for Dropbox
aur/dropbox 1.4.20-1 (3061)
    A free service that lets you bring your photos, docs, and videos anywhere and share them easily.
aur/dropbox-cli 1-13 (491)
    Command line interface for dropbox
aur/dropbox-daemon 0.8-8 (139)
    Run Dropbox as a given user at boot.
aur/dropbox-dark-panel-icons 1.0-10 (21)
[...]

Como podemos ver temos muitas opções para mandar instalar é só s informar qual queremos ex

yaourt -S dropbox
[...]

Aqui é somente ir seguindo as instruções ;)

Agora vamos ver os procedimento para mandar instalar o Gnome

Primeiro precisamos mandar instalar o X então vamos lá

pacman -Suy xorg-server xorg-xinit xorg-server-utils  xf86-video-vesa xorg-twm xorg-xclock xterm ttf-dejavu xf86-input-synaptics

Agora vamos pesquisar os possívies drivers para vídeo que temos em repositório

pacman -sS xf86-video
extra/xf86-video-apm 1.2.5-2
    X.org Alliance ProMotion video driver
extra/xf86-video-ark 0.7.5-2 (xorg-drivers xorg)
    X.org ark video driver
extra/xf86-video-ast 0.97.0-2 (xorg-drivers xorg)
    X.org ASPEED AST Graphics video driver
extra/xf86-video-ati 1:6.14.6-2 (xorg-drivers xorg)
    X.org ati video driver
extra/xf86-video-chips 1.2.5-2
    X.org Chips and Technologies video driver
extra/xf86-video-cirrus 1.5.1-2 (xorg-drivers xorg)
    X.org Cirrus Logic video driver
extra/xf86-video-dummy 0.3.6-2 (xorg-drivers xorg)
    X.org dummy video driver
extra/xf86-video-fbdev 0.4.3-2 (xorg-drivers xorg)
    X.org framebuffer video driver
extra/xf86-video-glint 1.2.8-2 (xorg-drivers xorg)
    X.org GLINT/Permedia video driver
extra/xf86-video-i128 1.3.6-2 (xorg-drivers xorg)
    X.org Number 9 I128 video driver
extra/xf86-video-i740 1.3.4-2
    X.org Intel i740 video driver
extra/xf86-video-intel 2.20.12-1 (xorg-drivers xorg)
    X.org Intel i810/i830/i915/945G/G965+ video drivers
extra/xf86-video-mach64 6.9.3-2 (xorg-drivers xorg)
    X.org mach64 video driver
extra/xf86-video-mga 1.6.2-2 (xorg-drivers xorg)
    X.org mga video driver
extra/xf86-video-modesetting 0.5.0-1 (xorg-drivers xorg)
    X.org generic modesetting video driver
extra/xf86-video-neomagic 1.2.7-3 (xorg-drivers xorg)
    X.org neomagic video driver
extra/xf86-video-nouveau 1.0.3-1
    Open Source 2D acceleration driver for nVidia cards
extra/xf86-video-nv 2.1.20-2 (xorg-drivers xorg)
    X.org nv video driver
extra/xf86-video-openchrome 0.3.1-2 (xorg-drivers xorg)
    X.Org Openchrome drivers
extra/xf86-video-r128 6.9.1-2 (xorg-drivers xorg)
    X.org ati Rage128 video driver
extra/xf86-video-rendition 4.2.5-2
    X.org Rendition video driver
extra/xf86-video-s3 0.6.5-2
    X.org S3 video driver
extra/xf86-video-s3virge 1.10.6-2
    X.org S3 Virge video driver
extra/xf86-video-savage 2.3.6-2 (xorg-drivers xorg)
    X.org savage video driver
extra/xf86-video-siliconmotion 1.7.7-2 (xorg-drivers xorg)
    X.org siliconmotion video driver
extra/xf86-video-sis 0.10.7-2 (xorg-drivers xorg)
    X.org SiS video driver
extra/xf86-video-sisimedia 0.9.1-4
    X.org SiS 671 video driver
extra/xf86-video-sisusb 0.9.6-2
    X.org SiS USB video driver
extra/xf86-video-tdfx 1.4.5-2 (xorg-drivers xorg)
    X.org tdfx video driver
extra/xf86-video-trident 1.3.6-3 (xorg-drivers xorg)
    X.org Trident video driver
extra/xf86-video-tseng 1.2.5-2
    X.org tseng video driver
extra/xf86-video-unichrome 0.2.7-7
    Unichrome video drivers for X.Org
extra/xf86-video-v4l 0.2.0-11 (xorg-drivers xorg)
    X.org v4l video driver
extra/xf86-video-vesa 2.3.2-2 (xorg-drivers xorg) [instalado]
    X.org vesa video driver
extra/xf86-video-vmware 12.0.2-2 (xorg-drivers xorg)
    X.org vmware video driver
extra/xf86-video-voodoo 1.2.5-2 (xorg-drivers xorg)
    X.org 3dfx Voodoo1/Voodoo2 2D video driver

Temos uma boa quantidade por padrão, se estiver utilizando uma ATI precisamos instalar o seguinte pacote

pacman -Suy xf86-video-ati

Se estiver utilizando uma Nvidia precisamos instalar o seguinte pacote

pacman -Suy xf86-video-nouveau

Ou caso ela de suporte a 3D precisamos instalar

pacman -Suy xf86-video-nv

Os pacotes que estou referênciando são os OpenSource temos os proprietarios em repositório também caso ache necessário utilizar

Caso esteja utilizando uma Intel podemos instalar o seguinte pacote

pacman -Suy xf86-video-intel

Ou em alguns casos vamos precisar do seguinte pacote

pacman -Suy xf86-video-i740

Para quem esta utilizando placas SIS temos os seguintes pacotes que podemos utilizar

pacman -Suy xf86-video-sis

Ou em alguns casos vamos precisar do seguinte pacote

pacman -Suy xf86-video-sisimedia

Ou ainda em alguns casos vamos precisar do seguinte pacote

pacman -Suy xf86-video-sisusb

Agora vamos mandar instalar o gnome e suas dependências

pacman -Suy gnome gnome-extra gnome-tweak-tool gdm

Vamos ser questionados sobre quais pacotes vamos querer somente pressione ENTER e ENTER para instalarmos todos

Agora vamos mandar ativar o gdm na inicialização do sistema

systemctl enable gdm

Agora vamos inserir na inicialização do nosso usuário a configuração do gnome

echo "exec ck-launch-session gnome-session" >> /home/douglas/.xinitrc

Agora vamos deixar o padrão de novos usuários o gnome

echo "exec ck-launch-session gnome-session" >> /etc/skel/.xinitrc

Agora vamos mandar instalar o Alsa

pacman -Suy alsa-utils alsa-oss alsa-plugins

Agora vamos mandar reiniciar o sistema para testar

reboot

Temos mais uma opção muito show de bola pra shell, para quem trabalha muito com o shell precisamos sempre de ferramentas que nós ajudem então temos o zsh

Vamos instalar ele

pacman -Suy zsh

Agora vamos mudar o shell do usuário root

chsh -s /bin/zsh root

Agora vamos obter um arquivo personalizado dele eu peguei o padrão que eu utilizo do Arch Linux

wget -c http://www.douglas.wiki.br/Downloads/scripts/zshrc -O /root/.zshrc

Agora vamos fazer logout e logar novamente

logout

Agora vamos copiar essa configuração para o nosso usuário douglas

cp /root/.zshrc /home/douglas/

Agora vamos acertar as permissões desse arquivo

chown douglas:users /home/douglas/.zshrc

Agora vamos mudar o shell do usuário douglas

chsh -s /bin/zsh douglas

Agora vamos copiar essa configuração do zshrc para os novos usuários

cp /root/.zshrc /etc/skel

Está pronto o nosso Arch Linux ;)

MATE

Agora vamos adicionar um repositório extra em nosso Arch Linux

vim /etc/pacman.conf
[...]
#No final do arquivo adicione as linhas abaixo
[archlinuxfr]
SigLevel    = Optional TrustAll
Server = http://repo.archlinux.fr/$arch

Agora vamos mandar instalar o yaourt e mais alguns pacotes básicos

pacman -Suy yaourt rsync pacman-color nmap tcpdump
pacman-key --init && pacman-key --populate archlinux && pacman-key --refresh-keys
pacman -Suy xorg-server xorg-xinit xorg-server-utils  xf86-video-vesa xorg-twm xorg-xclock xterm ttf-dejavu xf86-input-synaptics
pacman -Suy mate mate-extra  mate-applet-lockkeys mate-applet-softupd  mate-applet-streamer mate-color-manager  mate-accountsdialog faience-icon-theme \
mate-disk-utility  mate-mplayer mate-nettool mate-themes-extras gnome-main-menu  variety slim archlinux-themes-slim faenza-icon-theme 

HAbilitando o slim

systemctl enable slim.service

Ajustando o tema

cp -Rfa /usr/share/slim/themes/default{,.bkp}
rm -rf /usr/share/slim/themes/default/*
cd /usr/share/slim/themes/default
cp ../archlinux-darch-white/* .

Referências