Instalar o i3wm com Arch Linux
Recentemente escrevi sobre a utilização do i3 no Debian Buster. Continuo a ser um defensor e utilizador do Debian. Recentemente recebi um portátil novo com Windows 10 pré-instalado. A minha ideia inicial era manter este SO nesta máquina, mas este ideia não durou mais do que um par de horas a fazer actualizações. A verdade é que não consigo encaixar o conceito da Microsoft que o Windows é um serviço porque o WINDOWS É UM SISTEMA OPERATIVO!
Portanto, depois de colocar de parte a manutenção do Windows, passei à parte em que decido qual a distribuição que vou experimentar. Decidi não considerar nenhuma distribuição Debian e derivado pois quero aproveitar a oportunidade de testar algo diferente. Depois de considerar um pouco, a minha atenção caiu sobre a distribuição Clear Linux, a distribuição da Intel optimizada para os seus processadores. Os reviews que li deixaram-me com uma ideia favorável sobre esta distribuição e da forma como a Intel está a levar esta por diante. Cheguei mesmo a instalar a versão desktop e server numa máquina virtual para testar o funcionamento. No entanto, passado algum (pouco) tempo acabei por ficar farto por não apresentar nenhum nível de dificuldade. Consideradas das hipóteses, acabei por me decidir por usar o Arch Linux, uma distribuição mantida por uma comunidade activa e dinâmica.
Arranque Arch ISO
Arrancar com a ISO levar-nos-à a um dos seguintes ecrãs:
Teclado
O teclado PT pode ser configurado da seguinte forma:
# ls /usr/share/kbd/keymaps/**/*.map.gz
# loadkeys pt-latin9
Conectividade internet:
# ip link
# ip addr
# ping other_machine_in_network
Se vai ser usada uma rede wireless, é necessário fazer a configuração no portátil.
Configurar a placa wireless
Primeiro determinar o driver:
# lspci -k
06:00.0 Network controller: Intel Corporation WiFi Link 5100
Subsystem: Intel Corporation WiFi Link 5100 AGN
Kernel driver in use: iwlwifi
Kernel modules: iwlwifi
A mensagem devolvida deverá ser parecida a esta. Neste caso o módulo está disponível e em uso. Determina o nome da interface:
# ip link
Obteremos uma lista de interfaces (vou assumir o nome wlan0). Vamos ativar:
# ip link set wlan0 up
Se devolver o erro “SIOCSIFFLAGS: No such file or directory”, procura o firmware.
Sem encryptação
# iw dev wlan0 connect “your_essid”
WEP
# iw dev wlan0 connect “your_essid” key 0:your_key
WPA
Primeiro gera um ficheiro de configuração:
# wpa_passphrase my_essid my_passphrase > /etc/wpa_supplicant/my_essid.conf
Testa-o. Um dos outputs deve dizer “connected”
# wpa_supplicant -c /etc/wpa_supplicant/my_essid.conf -i wlan0
Agora executa em backgriound:
# wpa_supplicant -B -c /etc/wpa_supplicant/my_essid.conf -i wlan0
Activa o DHCP:
# dhclient wlan0
Atualiza o relógio
# timedatectl set-ntp true
Vamos preparar as partições.
Particionar disco
O sistema vai ter 3 partições, a partição dew boot (/boot), de swap e a partição root encriptada (/). Vamos determinar o dispositivo HDD
# lsblk
Na lista podemos ver que o HDD é o ‘/dev/sda’:
Vamos destruir toda a informação existente:
# shred — verbose — random-source=/dev/urandom — iterations=3 /dev/sda
Este passo vai demorar (bastante) tempo.
Vamos criar as partições:
# cfdisk /dev/sda
UEFI
Antes de iniciar, acede ao menu e desabilita o secure boot.
Vamos começar pela partição /boot:
- [New] -> Partition size: 512M -> [Type] -> EFI System
Agora a SWAP partition:
- [New] -> Partition size: 2G ->[Type] -> Linux swap
E finalmente a partição /:
- [New] -> Partition size: 13.5G
Write e quit.
Vamos preparar as partições UEFI e SWAP:
# mkfs.fat -F32 /dev/sda1
# mkswap /dev/sda2
# swapon /dev/sda2
Falta encriptar a partição root.
BIOS
Vamos criar a /boot partition:
- [New] -> Partition size: 512M -> primary -> Bootable
Agora a SWAP partition:
- [New] -> Partition size: 2G -> primary -> [Type] -> Linux swap / Solaris
E finalmente a / partition:
- [New] -> Partition size: 13.5G -> primary
Write e quit.
Finalmente, vamos preparar as partições de boot e swap:
# mkfs.ext4 /dev/sda1
# mkswap /dev/sda2
# swapon /dev/sda2
Vamos agora encriptar a root.
Encriptar root partition
A /boot partition fica como está, mas vamos encriptar a partição /dev/sda3:
# cryptsetup --verbose --cipher aes-xts-plain64 --key-size 512 --hash sha512 --iter-time 5000 --use-random luksFormat /dev/sda3
Agora temos de abrir a partição:
# cryptsetup open — type luks /dev/sda3 cryptroot
Criar o filesystem:
# mkfs.ext4 /dev/mapper/cryptroot
E montar o FS:
# mount /dev/mapper/cryptroot /mnt
# mkdir /mnt/boot
# mount /dev/sda1 /mnt/boot
Instalar sistema base e configuração
# pacstrap /mnt base linux linux-firmware
Criar fstab
# genfstab -U /mnt >> /mnt/etc/fstab
Root no novo sistema
# arch-croot /mnt
Definir timezone, locale e teclado
# ln -sf /usr/share/zoneinfo/Region/City /etc/localtime
# hwclock — systohc
# nano /etc/locale.gen
Descomenatar os locales (pt_PT) e executar:
# locale-gen
Teclado
Vamos tornar as mudanças de teclado permanente:
# nano /etc/vconsole.conf
KEYMAP=pt-latin9
Rede
# nano /etc/hostname
your_host_name
# nano /etc/hosts
127.0.0.1 localhost
::1 localhost
127.0.1.1 myhostname.localdomain myhostname
Wireless
Instala o pacote network manager e o firmware da placa wireless (tal como anteriormente)
# pacman -S networkmanager
Root password
# passwd
Boot loader
Vamos usar o GRUB que suporta UEFI e BIOS. Basta seguir o parágrafo correspondente:
# pacman -S grub
UEFI
Instala as seguintes dependencias:
# pacman -S efibootmgr
# grub-install — target=x86_64-efi — efi-directory=/boot — bootloader-id=GRUB
# grub-mkconfig -o /boot/grub/grub.cfg
BIOS
# grub-install — target=i386-pc /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
Configurar a partição encriptada
Edita o seguinte ficheiro:
# nano /etc/default/grub
E adiciona os parâmetros:
GRUB_CMDLINE_LINUX=”cryptdevice=/dev/sda3:cryptroot”
E também:
# nano /etc/mkinitcpio.conf
Adiciona o hook ‘encrypt’:
HOOKS=(base udev autodetect modconf block encrypt filesystems keyboard fsck)
Regenera o ficheiro mkinitcio:
# mkinitcpio -p linux
# grub-install — recheck /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
Exit e Reboot
# exit
# reboot
Configurar o novo sistema
Configurar rede
Activa dhcp:
# systemclt enable dhcpcd.service
# systemclt start dhcpcd.service
Para configurar WiFi:
# nmtui
E usa o teclado para navegar as opções.
Utilizadores
A conta de ‘root’ não deve ser usada diariamente. Vamos criar uma conta nova e atribuir permissões de sudo:
# pacman -S sudo
# useradd -m username
# passwd username
Adiciona o utilizador à lista dos sudoers:
# visudo
O editor é o ‘vi’. Usa a tecla ‘i’ para isnerir texto e ‘Esc’ para terminar a escrita. ‘:wq’ para gravar e sair ou ‘:q!’ para sair sem gravar e tentar novamente.
Logout e login com o novo utilizador.
Processor microcode
Intel:
# pacman -S intel-ucode
AMD:
# pacman -S amd-ucode
Regenerar GRUB config:
# grub-mkconfig -o /boot/grub/grub.cfg
Instalar i3
Há dois pacotes i3, ‘i3-wm’ e ‘i3-gapps’:
$ sudo pacman -S i3 xorg xorg-xdm dmenu i3status i3lock ttf-dejavu
$ echo “exec i3” > ~/.xsession
$ chmod +x ~/.xsession
Vamos usar o mate-terminal e acrescentar o tab completion de comandos:
$ sudo pacman -S mate-terminal bash-completion
Activa o serviço XDM:
$ sudo systemctl enable xdm.service
Instala polkit para gerir privilégios system wide:
$ sudo pacman -S polkit
Reboot:
$ reboot
Login no XDM e selecciona as opções do i3. Usa a tecla windows como mod para não conflituar com as opções das aplicações. Abre o ficheiro de config do i3 e muda a font:
nano ~/.config/i3/config
Faz ‘mod+shift+r’.
Teclado
A configuração anterior não serve para o Xorg (mais informação aqui). Vamos configurar o teclado para o nosso utilizaod no ‘.xsession’:
$ nano ~/.xsession
Adiciona a linha antes do ‘exec i3’:
setxkbmap your_keyboard_layout
Browser
Escolhe:
$ sudo pacman -S firefox chromium
Som e as teclas multimedia
Instala pulseaudio e o pavucontrol
$ sudo pacman -S pulseaudio pavucontrol
Executa o ‘pavucontrol’ (reboot?) e configura as saídas (remove mute).
Instala o pacote xbindkeys:
$ sudo pacman -S xbindkeys
As teclas multimedia deverão enviar os comandos ‘XF86Audio’ e basta configurar o i3 para reagir a este input. Edita o ficheiro e adiciona as linhas:
$ nano ~/.config/i3/config
# Increase volume
bindsym XF86AudioRaiseVolume exec “pactl set-sink-volume @DEFAULT_SINK@ +5%”# Decrease volume
bindsym XF86AudioLowerVolume exec “pactl set-sink-volume @DEFAULT_SINK@ -5%”# Mute volume
binsym XF86AudioMut exec “pactl set-sink-mute @DEFAULT_SINK@ toggle”
Faz ‘mod+shift+r’ e testa as teclas.
Monitor e brilho
Primeiro e muito importante, obtém o firmware para a placa gráfica (procura) e instala o xrandr e o arandr:
$ sudo pacman -S xorg-xrandr arandr
Escreve ‘xbacklight’ no terminal e deve devolver o brilho actual. Se der mensagem de erro, confirma o firmware. Edita o ficheiro do i3 e adiciona as linhas:
$ nano ~/.config/i3/config
# Increase brightness
bindsym XF86MonBrightnessUp exec “xbacklight -inc 5”# Decrease brightness
bindsym XF86MonBrighnessDown exec “xbacklight -dec 5”
File manager e automount
Há vários gestores de ficheiros. Sugiro o cmanfm
$ sudo pacman -S pcmanfm
Para que o automount funcione temos de o configurar:
$ sudo pacman -S udiskie udisks2 ntfs-3g
Adiciona a linha ao ficheiro ‘~/.xsession’:
udiskie &
Power management
Para obter uma gestão eficiente da bateria, instala o pacote tlp e as sua dependências:
$ sudo pacman -S tlp tlp-rdw
Active e inicia os serviços:
$ sudo systemctl enable tlp.service
$ sudo systemctl start tlp.service
$ sudo systemctl enable tlp-sleep.service
$ sudo systemctl start tlp-sleep.service
Executa ‘sudo tlp-stat’e lê o output. Deve sugerir a instalação de mais dependências para controlo de dispositivos.
Segurança
A encriptação da partição root foi o primeiro passo. Vamos adicionar uma firewall e uma application and system protection system:
$ sudo pacman -S ufw apparmor
Activa UFW:
$ sudo systemctl enable ufw.service
$ sudo systemctl start ufw.service
$ sudo ufw enable
Activa apparmor:
$ sudo systemctl enable apparmor.service
Adiciona ao boot /etc/default/grub:
# grub-install --recheck /dev/sda
# grub-mkconfig -o /boot/grub/grub.cfg
Actualizar sistema
A atualização do sistema faz-se com o comando:
$ sudo pacman -Syu
Instalar pacotes do AUR
Além dos repositórios oficiais Arch há também o repositório AUR que expande o número de pacotes. Para habilitar é necessário instalar os pacotes:
$ sudo pacman -S -- needed base-devel git
Depois basta navegar o repositório. Ao encontrar o pacote pretendido, copiar o URL git e no terminal escrever:
$ git clone package_git_url
Entrar na directoria criada e escrever (sem acesso root):
$ makepkg -si
Conclusão
O Arch Linux é uma distribuição com uma filosofia diferente das distribuições tradicionais. O utilizador típico é alguém que quer controlo sobre o que quer instalado e em execução no computador, sem lixo ou tralhas acrescentadas por imposição do sistema. Esta é a razão pela qual o Arch apresenta como vantagem a leveza (lightweight) e a rapidez. A isto acresce o facto de ser uma ‘rolling release’ o que quer dizer que uma vez instalado não é necessário reinstalar e os pacotes são mantidos nas suas últimas versões.