Archive for Arch Linux

Transmission, mudando o usuário do daemon

Como tenho o Plex Media Server rodando com meu usuário no meu NAS, mesmo tendo meu usuário no grupo transmission, ele não estava conseguindo pegar os novos arquivos baixados pelo transmission.

Desta forma, resolvi mudar o usuário com o qual o daemon do transmission é executado, abaixo segure o procedimento:

# cp /usr/lib/systemd/system/transmission.service /etc/systemd/system/
# vim /etc/systemd/system/transmission.service

Mude:
User=transmission
Para:
User=leandrocarvalho

# cp /usr/lib/tmpfiles.d/transmission.conf /etc/tmpfiles.d/
# vim /etc/tmpfiles.d/transmission.conf

Mude:
d /run/transmission - transmission transmission -
Para:
d /run/transmission 0755 leandrocarvalho transmission - -

# systemd-tmpfiles –clean –create /etc/tmpfiles.d/transmission.conf
# cp -pau /var/lib/transmission/.config/transmission-daemon /home/leandrocarvalho/.config/
# chown leandrocarvalho:transmission -R /home/leandrocarvalho/.config/transmission-daemon/

$ vim .config/transmission-daemon/settings.json

Mude:
"incomplete-dir": "/var/lib/transmission/Downloads",
Para:
"incomplete-dir": "/home/leandrocarvalho/Downloads",

# systemctl daemon-reload
# systemctl disable transmission
# systemctl enable transmission

# ps aux | grep transmission | grep -v grep | tr -s ” ” | cut -d ” ” -f 2 | xargs kill -9
# rm /run/transmission/transmission.pid
# systemctl start transmission

Migração de disco, lvm, criptografia e configurações de serviços

Nos últimos dias o pendrive que estava utilizando como disco principal no meu NAS começou a corromper o sistema após atualizações, creio que o cupado seja o journal do filesystem porém não tive muita paciência para descobrir a real causa, resolvi migrar para um disco do NAS.

Hoje o meu NAS contém um HDD de 250GB e 2 HDDs de 1TB.
Resolvi migrar para o de 250GB e montar um esquema de particionamento mais elaborado, além de usar LVM e Criptografia nos discos extras.

Com o sistema ainda rodando no pendrive, realizei os seguintes passos para migrar de disco.

Reparticionei o disco criando duas partições, uma para o boot e outro para a LVM:
# cfdisk /dev/sdb

Criei um volume físico para LVM:
# pvcreate /dev/sdb2

Verifiquei se foi criado corretamente:
# pvdisplay

Criei o volume lógico e o esquema de particionamento na LVM:
# vgcreate LogVolSystem /dev/sdb2
# lvcreate -L 2G LogVolSystem -n root
# lvcreate -L 2G LogVolSystem -n swap
# lvcreate -L 4G LogVolSystem -n opt
# lvcreate -L 2G LogVolSystem -n tmp
# lvcreate -L 4G LogVolSystem -n usr
# lvcreate -L 4G LogVolSystem -n var
# lvcreate -l 100%FREE LogVolSystem -n home

Formatei as partições e ativei a swap:
# mkfs.ext4 -m 1 -L BOOT /dev/sdb1
# mkfs.ext4 -m 1 -L ROOT /dev/mapper/LogVolSystem-root
# mkfs.ext4 -m 1 -L OPT /dev/mapper/LogVolSystem-opt
# mkfs.ext4 -m 1 -L TMP /dev/mapper/LogVolSystem-tmp
# mkfs.ext4 -m 1 -L USR /dev/mapper/LogVolSystem-usr
# mkfs.ext4 -m 1 -L VAR /dev/mapper/LogVolSystem-var
# mkfs.ext4 -m 1 -L HOME /dev/mapper/LogVolSystem-home
# mkswap -c -L SWAP /dev/mapper/LogVolSystem-swap
# swapon /dev/mapper/LogVolSystem-swap

O esquema ficou da seguinte forma:
/boot : 500MB
/ : 2GB
SWAP : 2GB (Não mais que isso, a regra de 2x a RAM serve para servidores com menos de 1 GB)
/home : O restante livre na LVM (210GB)
/opt : 4GB
/tmp : 2GB em ext4
/usr : 4GB em ext4
/var : 4GB ou mais se disponível em ext4

Agora começando o procedimento de instalação:
# mount /dev/mapper/LogVolSystem-root /mnt/new/

Criando os diretório necessários:
# mkdir -p /mnt/new/{boot,home,opt,usr,var}
# mkdir -m 0755 -p /mnt/new/{dev,run,etc}
# mkdir -m 1777 -p /mnt/new/tmp
# mkdir -m 0555 -p /mnt/new/{sys,proc}

# mount /dev/sdb1 /mnt/new/boot/
# mount /dev/mapper/LogVolSystem-home /mnt/new/home/
# mount /dev/mapper/LogVolSystem-opt /mnt/new/opt/
# mount /dev/mapper/LogVolSystem-tmp /mnt/new/tmp/ -o strictatime,nodev,nosuid,noexec
# mount /dev/mapper/LogVolSystem-usr /mnt/new/usr/
# mount /dev/mapper/LogVolSystem-var /mnt/new/var/

# mount -t proc proc /mnt/new/proc -o nosuid,noexec,nodev
# mount -t sysfs sys /mnt/new/sys -o nosuid,noexec,nodev
# mount -t devtmpfs udev /mnt/new/dev -o mode=0755,nosuid
# mount -t devpts devpts /mnt/new/dev/pts -o mode=0620,gid=5,nosuid,noexec
# mount -t tmpfs shm /mnt/new/dev/shm -o mode=1777,nosuid,nodev,noexec
# mount -t tmpfs run /mnt/new/run -o nosuid,nodev,mode=0755

Criando os diretórios para o pacman:
# mkdir -m 0755 -p /mnt/var/{cache/pacman/pkg,lib/pacman,log}

Como já tinha os pacotes necessários instalados no pendrive, executei o seguinte comando e tirei os pacotes que instalei do AUR (hydra, spindown e plexmediaserver:
# pacman -Syuw –noconfirm
# pacman -Qq > all_pkgs.txt
# for PKG in `cat all_pkg.txt`; do pacman -r /mnt/new/ -Sy –noconfirm $PKG; done
# cp -a /etc/pacman.d/gnupg /mnt/new/etc/pacman.d/

Entrei no chroot:
# cd /mnt/new/
# chroot /mnt/new /bin/bash

Gerei e editei o fstab:
# genfstab -U / >> etc/fstab
# vim etc/fstab

/proc /proc proc rw,nosuid,nodev,noexec,relatime 0 0
/sys /sys sysfs rw,nosuid,nodev,noexec,relatime 0 0
udev /dev devtmpfs rw,nosuid,relatime,size=3980200k,nr_inodes=995050,mode=755 0 0
devpts /dev/pts devpts rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000 0 0
shm /dev/shm tmpfs rw,nosuid,nodev,noexec,relatime 0 0
/run /run tmpfs rw,nosuid,nodev,relatime,mode=755 0 0

# /dev/mapper/LogVolSystem-root LABEL=ROOT
UUID=67c5e549-41a5-43e4-a1e1-32b9c380f469 / ext4 rw,relatime,data=ordered 0 1
# /dev/sdd1 LABEL=BOOT
UUID=9a3e36d1-a24c-4743-8ac6-f8e7ba047a51 /boot ext4 rw,relatime,data=ordered,noexec,nosuid,nodev 0 2
# /dev/mapper/LogVolSystem-home LABEL=HOME
UUID=63eb7f5a-5369-4cb9-a4d7-393da0be62ee /home ext4 rw,relatime,data=ordered,noexec,nosuid,nodev 0 2
# /dev/mapper/LogVolSystem-opt LABEL=OPT
UUID=eab28e23-4ae5-4a1b-a546-4cc920f0a5b0 /opt ext4 rw,relatime,data=ordered,noexec,nosuid,nodev 0 2
# /dev/mapper/LogVolSystem-tmp LABEL=TMP
UUID=6026ccce-f644-4ff3-bd5b-85faacfc676d /tmp ext4 rw,relatime,data=ordered,noexec,nosuid,nodev 0 2
# /dev/mapper/LogVolSystem-usr LABEL=USR
UUID=f57142e7-f4a7-4d06-826d-c0d1d4a31d27 /usr ext4 rw,relatime,data=ordered,nodev 0 2
# /dev/mapper/LogVolSystem-var LABEL=VAR
UUID=d509ba62-493e-435d-95f5-f34d0b2a77e2 /var ext4 rw,relatime,data=ordered,nodev 0 2
# /dev/mapper/LogVolSystem-swap LABEL=SWAP
UUID=8873920c-f4d3-4f46-8877-bacfc37f959f none swap defaults,pri=-2 0 0

Editei a configuração de rede:
# vim /etc/netctl/eth0

Description=’A basic static ethernet connection’
Interface=eth0
Connection=ethernet
IP=static
Address=(‘192.168.1.10/24’)
#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
#Address6=(‘1234:5678:9abc:def::1/64’ ‘1234:3456::123/96’)
#Routes6=(‘abcd::1234′)
#Gateway6=’1234:0:123::abcd’

Para garantir que o nome da interface continuasse eth0 precisamos realizar o seguinte passo:
vim /etc/udev/rules.d/80-net-name-slot.rules

# This file masks persistent renaming rules for network devices. If you
# delete this file, /usr/lib/udev/rules.d/80-net-name-slot.rules may
# rename network devices according to ID_NET_NAME_{ONBOARD,SLOT,PATH}
# properties of your network devices, with priority in that order. See
# the output of ‘udevadm test-builtin net_id /sys/class/net/$interface’
# for details on what that new name might be.
#
# http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames

Habilitamos a interface:
# netctl enable eth0

Agora vamos habilitar multi-user e evitamos habilitar o runlevel da interface gráfica:
# systemctl enable multi-user.target

Verificamos o que tem para iniciar com o sistema:
# ls -l /etc/systemd/system/multi-user.target.wants/

Popular a chaves do pacman:
# pacman-key –init
# pacman-key –populate archlinux

Configurando o sistema:
# vim /etc/hosts

127.0.0.1 archNAS.localdomain archNAS

# vim /etc/hostname

archNAS

# vim /etc/vconsole.conf

KEYMAP=br-abnt2
FONT=
FONT_MAP=
FONT_UNIMAP=

# vim /etc/locale.gen

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

# vim /etc/locale.conf

LANG=en_US.UTF-8
LC_MESSAGES=C
LC_CTYPE=en_US.UTF-8
LC_NUMERIC=en_US.UTF-8
LC_TIME=en_US.UTF-8
LC_COLLATE=en_US.UTF-8
LC_MONETARY=en_US.UTF-8
LC_MESSAGES=en_US.UTF-8
LC_PAPER=en_US.UTF-8
LC_NAME=en_US.UTF-8
LC_ADDRESS=en_US.UTF-8
LC_TELEPHONE=en_US.UTF-8
LC_MEASUREMENT=en_US.UTF-8
LC_IDENTIFICATION=en_US.UTF-8
LC_ALL=en_US.UTF-8

# locale-gen
# ln -s /usr/share/zoneinfo/America/Maceio /etc/localtime
# vim /etc/timezone

America/Maceio

# vim /etc/adjtime

0.000000 1358104440 0.000000
1358104440
UTC

Agora vamos ajustar o mkinitcpio para ativarmos a LVM e a partição USR na inicialização do sistema:
# vim /etc/mkinitcpio.conf

HOOKS=”base udev autodetect modconf block lvm2 filesystems keyboard shutdown fsck usr”

Adicione lvm2, entre block e filesystem para ter suporte a LVM e shutdown, fsck e usr (nesta ordem) para ter suporte a partição usr, que está separada, na inicialização.
Dúvidas sobre estas opções, favor verificar este link e este outro.

Gere novamente a imagem do kernel:
# mkinitcpio -p linux

Edite as opções do grub e gere uma nova configuração:
# vim /etc/default/grub

GRUB_DISABLE_LINUX_UUID=false
GRUB_COLOR_NORMAL=”light-blue/black”
GRUB_COLOR_HIGHLIGHT=”light-cyan/blue”

# grub-mkconfig -o /boot/grub/grub.cfg
# grub-install –recheck /dev/sdb

Mude a senha de root, ajustando permissão no /rooot e copie os arquivos do skel:
# passwd
# chmod 750 /root
# cp -a /etc/skel/.bash* ~/

Agora limite o tempo (em segundos) que o root pode ficar sem digitar nenhum comando e faça logout automático:
# vim .bashrc

TMOUT=60

Crie o usuário e sete uma senha:
# useradd -d /home/leandrocarvalho -k /etc/skel -m -s /bin/bash leandrocarvalho
# passwd leandrocarvalho

Copie o que precisar do outro sistema:
# cp -a /usr/local/sbin/* /mnt/new/usr/local/sbin/
# cp -a /usr/local/bin/* /mnt/new/usr/local/bin/
# cp -a /var/lib/transmission/ /mnt/new/var/lib/

Agora saia do chroot e reboot para entrar já com o novo sistema:
# ^D
# reboot

Agora vamos a configuração dos serviços.
SSH:
# vim /etc/ssh/sshd_config

Port 8822
PermitRootLogin no
AuthorizedKeysFile .ssh/authorized_keys
ChallengeResponseAuthentication no
UsePAM yes
PrintMotd no # pam does that
UsePrivilegeSeparation sandbox # Default for new installations.
Subsystem sftp /usr/lib/ssh/sftp-server
AllowUsers leandrocarvalho

# systemctl enable sshd.service
# systemctl start sshd

NOIP:
# noip2 -C
# systemctl enable noip2.service
# systemctl start noip2

Smartmontools:
# systemctl enable smartd.service
# systemctl start smartd

HDDTEMP:
# systemctl enable hddtemp.service
# systemctl start hddtemp

Instale o spindo do AUR e faça:
# systemctl enable spindown
# vim /etc/spindown.conf

[General]
cycle-time = 60 # Number of seconds between cycles.

idle-time = 3600 # The time in seconds a disk has to be idle before it is spundown.
# Do not use a value that is to small (less than 3600) unless you
# know what you are doing.

syslog = 0 # Turn this on if you want spindown to log messages using syslog.
# You will not want to turn this on if you are trying to spindown
# the disk with the root filesystem on.
[Disk 0]
#id = ata-VB0250EAVER_Z2AYARBD
name = sda
spindown = 1
command = hdparm -y

[Disk 1]
#id = ata-SAMSUNG_HD103SJ_S2NWJ50BB01403
name = sdb
spindown = 1
command = hdparm -y

[Disk 2]
#id = ata-Hitachi_HDT721010SLA360_STF604MR28AR1P
name = sdc
spindown = 1
command = hdparm -y

Ajuste o service, pois o que vem no pacote não funciona adequadamente.
# vim /usr/lib/systemd/system/multi-user.target.wants/spindown.service

[Unit]
Description=Spindown Daemon
After=syslog.target

[Service]
Type=forking
ExecStart=/sbin/spindownd -d -f /run/spindown/spindownd.fifo -c /etc/spindown.conf -p /run/spindown/spindownd.pid
PIDFile=/run/spindown/spindownd.pid

[Install]
WantedBy=multi-user.target

# systemctl start spindown

Samba:
# vim /etc/samba/smb.conf

[global]
workgroup = archNAS
server string = Arch Linux Network Attached Storage
security = user
encrypt passwords = yes
hosts allow = 192.168.1. 127.
log file = /var/log/samba/%m.log
max log size = 50
dns proxy = no
follow symlinks = yes
wide links = yes
unix extensions = no
syslog = 1
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes

# Acesso Irrestrito
[home]
comment = Home NAS
path = /home/leandrocarvalho
valid users = leandrocarvalho
force users = leandrocarvalho
public = no
browseable = no
writable = yes
printable = no
guest ok = no

[disk1]
comment = Disco 1 – 1TB
path = /mnt/disk1
valid users = leandrocarvalho
force users = leandrocarvalho
public = no
browseable = no
writable = yes
printable = no
guest ok = no

[disk2]
comment = Disco 2 – 1TB
path = /mnt/disk2
valid users = leandrocarvalho
force users = leandrocarvalho
public = no
browseable = no
writable = yes
printable = no
guest ok = no

# systemctl enable smbd.service
# smbpasswd -a leandrocarvalho
# systemctl start smbd

Instale o plex do AUR e configure:
# systemctl enable plexmediaserver.service
# vim /etc/conf.d/plexmediaserver

PLEX_MEDIA_SERVER_USER=leandrocarvalho
PLEX_MEDIA_SERVER_HOME=/usr/lib/plexmediaserver

# the number of plugins that can run at the same time
PLEX_MEDIA_SERVER_MAX_PLUGIN_PROCS=10

# ulimit -s $PLEX_MEDIA_SERVER_MAX_STACK_SIZE
PLEX_MEDIA_SERVER_MAX_STACK_SIZE=3000

# where the mediaserver should store the transcodes
PLEX_MEDIA_SERVER_TMPDIR=/home/leandrocarvalho/plexmediaserver/tmp

# uncomment to set it to something else
PLEX_MEDIA_SERVER_APPLICATION_SUPPORT_DIR=”$(awk -F: -v v=${PLEX_MEDIA_SERVER_USER} ‘{if ($1==v) print $6}’ /etc/passwd)/plexmediaserver/var/lib/plexmediaserver”

# systemctl start plexmediaserver

Transmission:
# vim /var/lib/transmission/.config/transmission-daemon/settings.json

“rpc-username”: “leandrocarvalho”,
“rpc-whitelist”: “127.0.0.1, 192.168.1.*, 201.65.63.114, 177.47.181.76”,

# gpasswd -a transmission users
# gpasswd -a leandrocarvalho users
# gpasswd -a leandrocarvalho transmission
# systemctl start transmission

VSFTPD:
# vim /etc/vsftpd.conf

anonymous_enable=YES
anon_root=/mnt/disk1/temp
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
listen=YES

# systemctl start vsftpd

LVM e Criptografia nos outros discos:

# cfdisk /dev/sdb
# cryptsetup luksFormat /dev/sdb1
# cryptsetup luksDump /dev/sdb1
# cryptsetup luksOpen /dev/sdb1 disk1
# ls -a /dev/mapper/
# pvcreate /dev/mapper/disk1
# pvdisplay
# vgcreate LogVolDisk1 /dev/mapper/disk1
# vgdisplay
# lvcreate -l 100%FREE LogVolDisk1 -n lvdisk1
# lvdisplay
# mkfs.ext4 -m 1 -L Disk1 /dev/LogVolDisk1/lvdisk1
# mount /dev/LogVolDisk1/lvdisk1 /mnt/disk1/
# chown -R leandrocarvalho: /mnt/disk1

Se precisar adicione encrypt antes de block, para as partições criptografadas serem inicializadas juntas com o sistema.

# vim /etc/mkinitcpio.conf

HOOKS=”base udev … encrypt block lvm2 filesystems”

Alguns erros foram encontrados durante o boot, seguem os erros e soluções:

ERROS:
1. ERST: Failed to get Error Log Address Range
2. i8042: No controller found
3. ../source3/printing/print_cups.c:151(cups_connect)
../source3/printing/print_cups.c:528(cups_async_callback)
failed to retrieve printer list: NT_STATUS_UNSUCCESSFUL
Unable to connect to CUPS server /var/run/cups/cups.sock:631 – No such file or directory
4. Ignoring unknown parameter “force users”
5. tsc: Fast TSC calibration failed
6. Device: /dev/sdc [SAT], WARNING: A firmware update for this drive may be available,
see the following Seagate web pages:
http://knowledge.seagate.com/articles/en_US/FAQ/207931en
http://knowledge.seagate.com/articles/en_US/FAQ/223651en
7. ata6.00: failed to enable AA (error_mask=0x1)

SOLUÇÕES

1. http://h20000.www2.hp.com/bizsupport/TechSupport/Document.jsp?objectID=c03731635&lang=en&cc=us&taskId=101&prodSeriesId=5268290&prodTypeId=15351
2. Como não existe PS2 no computador esta mensagem é apresentada no log
3. Adicionado as opções:
load printers = no
show add printer wizard = no
printcap name = /dev/null
disable spoolss = yes
4. Mudando de “force users” para “force user”
5. Erro intermitente, não ocorre em todos os boots.
Mas esse problema pode ser resolvido com este link:
http://penguintengil.wordpress.com/2012/11/03/solving-error-0-000000-fast-tsc-calibration-failed-when-booting-in-fedora-16/
6. Precisa atualizar o firmware do HDD
7. Adicionar estas opções na linha do kernel no grub: “ide0=noprobe ide1=noprobe”

Caso você tenha alguma sugestão ou crítica, favor colocar nos comentários.

Instalando Arch Linux no pendrive

No final do ano passado realizei a compra de um HP Proliant N40L [1] [2] [3], como passei quase 3 meses sem internet em casa e estava ansioso para botar para funcionar, resolvi instalar usando os conhecimentos e ferramentas que tinha em mãos (meu notebook, Arch Linux atualizado, um pendrive de 8gb San Cruzer, 2 discos adicionais e o NAS) naquele momento.

Desta resolvi instalar o Arch Linux em um PenDrive e montar um NAS/HTPC caseiro.
Escolhi instalar num pendrive para tentar economizar energia e fazer spindown nos discos caso necessário sem afetar o funcionamento do sistema.
Abaixo mostro um breve resumo do que fiz para deixar o Arch rodando a partir de um pendrive.

Primeiro tive que copiar a mbr existente do disco local (notebook) para o pendrive, isso evita problemas na instalação do grub.

# dd if=/dev/sda of=/dev/sdc bs=512 count=1

Em caso de dúvidas, ver este link e este outro.

Crie as partições /boot, swap e /.
Você pode criar mais partições como /var e /usr para melhorar a segurança caso ache necessário e se seu pendrive possuir espaço suficiente.

# cfdisk /dev/sdc

Formate as partições e ative a swap

# mkfs.ext4 -m 1 -L BOOT /dev/sdc1
# mkfs.ext4 -m 1 -L ROOT /dev/sdc3
# mkswap -L SWAP /dev/sdc2

# swapon /dev/sdc2

Crie os diretórios e monte as partições

# mount /dev/sdc3 /mnt/
# mkdir -p /mnt/boot
# mount /dev/sdc1 /mnt/boot/

# mkdir -m 0755 -p /mnt/{dev,run,etc}
# mkdir -m 1777 -p /mnt/tmp
# mkdir -m 0555 -p /mnt/{sys,proc}

# mount -t proc proc /mnt/proc -o nosuid,noexec,nodev
# mount -t sysfs sys /mnt/sys -o nosuid,noexec,nodev
# mount -t devtmpfs udev /mnt/dev -o mode=0755,nosuid
# mount -t devpts devpts /mnt/dev/pts -o mode=0620,gid=5,nosuid,noexec
# mount -t tmpfs shm /mnt/dev/shm -o mode=1777,nosuid,nodev
# mount -t tmpfs run /mnt/run -o nosuid,nodev,mode=0755
# mount -t tmpfs tmp /mnt/tmp -o mode=1777,strictatime,nodev,nosuid,size=50M

Crie as partições do pacman

# mkdir -m 0755 -p /mnt/var/{cache/pacman/pkg,lib/pacman,log}

Copie o sync do host para o pendrive

# cp -a /var/lib/pacman/sync/ /mnt/var/lib/pacman/

Instale o sistema e pacotes adicionais

# pacman -r /mnt/ -S base –ignore netcfg
# pacman -r /mnt/ -S grub-bios grub-common ntfs-3g fuse iptables vim arch-install-scripts wget mlocate screen

Copie as chaves do host para o pendrive

# cp -a /etc/pacman.d/gnupg /mnt/etc/pacman.d/

Monte o chroot

# cd /mnt/
# chroot /mnt/ /bin/bash

Gere e configure o fstab conforme o funcionamento do seu computador e identificação do device, neste caso, tenho 3 HDs, ajusto o fstab para pegar o UUID e adiciono mais um disco para ser a home do usuário no NAS caseiro.
Para pegar o UUID do disco, use o comando blkid.

# genfstab / >> /etc/fstab
# vim /etc/fstab

/proc                   /proc           proc            rw,nosuid,nodev,noexec,relatime                                 0 0
/sys                    /sys            sysfs           rw,nosuid,nodev,noexec,relatime                                 0 0
udev                    /dev            devtmpfs        rw,nosuid,relatime,size=3980200k,nr_inodes=995050,mode=755      0 0
devpts                  /dev/pts        devpts          rw,nosuid,noexec,relatime,gid=5,mode=620,ptmxmode=000           0 0
shm                     /dev/shm        tmpfs           rw,nosuid,nodev,relatime                                        0 0
/run                    /run            tmpfs           rw,nosuid,nodev,relatime,mode=755                               0 0
/tmp                    /tmp            tmpfs           rw,nosuid,nodev,size=51200k                                     0 0

UUID="8ef1e29a-2330-40ff-a626-0dc212bdce69"             none            swap            defaults
UUID="f6d5e6a2-147a-4cd5-9254-7c5cb84099bc"             /               ext4            rw,relatime,data=ordered,noatime                        0 1
UUID="83e6cddd-a986-41e5-879e-162de68336a0"             /boot           ext4            rw,relatime,data=ordered,noatime,noexec,nosuid,nodev    0 2
UUID="413bda0e-1031-4ca8-9e9d-4d96962b4dcd"             /home           ext4            rw,relatime,data=ordered,noatime,noexec,nosuid,nodev    0 2

Agora continue com a instalação e configure a interface de rede.
Se for dhcp, faça:

# dhcpd eth0

Se for ip fixo, faça:

# ip addr add 192.168.1.12/24 dev eth0
# ip route add default via 192.168.1.1

Configure o resolv.config para usar o DNS do google

# vim /etc/resolv.conf

8.8.8.8
8.8.4.4

Agora inicialize as chaves e depois popule-as:

# pacman-key –init
# pacman-key –populate archlinux

Configuração de rede

# vim /etc/hosts

127.0.0.1       archNAS.localdomain     archNAS

# vim /etc/hostname

archNAS

Configure o NETCFG:

Se você não instalou o netcfg, instale, atualmente é o padrão para configuração de rede no Arch e está incluso no grupo base.

# pacman -S netcfg
# cd /etc/network.d/
# cp examples/ethernet-iproute .

Copiado o exemplo, vamos mudar o nome do profile e editar.

# mv ethernet-iproute eth0
# vim eth0

CONNECTION='ethernet'
DESCRIPTION='A more versatile static ethernet connection using iproute'
INTERFACE='eth0'
IP='static'
# Any valid iproute command can be placed in this array
IPCFG=('addr add dev eth0 192.168.1.10/24 brd +' 'route add default via 192.168.1.1')
DNS=('192.168.1.1')

# vim /etc/conf.d/netcfg

Edite e identifique as interfaces de rede que são usadas no seu computador.
Mantenha AUTO_PROFILES padrão.

E em NETWORKS, tire o last e defina o profile “eth0” que foi criado.

Habilite o netcfg para iniciar no boot.

# systemctl enable netcfg
# systemctl start netcfg

Fontes do console e Keymap

# vim /etc/vconsole.conf

KEYMAP=br-abnt2
FONT=
FONT_MAP=
FONT_UNIMAP=

Configure as locales

# vim /etc/locale.gen

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

# locale -v > /etc/locale.conf

Ajuste o LC_ALL, caso ache necessário e coloque a locale usada no /etc/locale.conf.

LANG=pt_BR.UTF-8
LC_MESSAGES=C
LC_CTYPE="pt_BR.UTF-8"
LC_NUMERIC="pt_BR.UTF-8"
LC_TIME="pt_BR.UTF-8"
LC_COLLATE="pt_BR.UTF-8"
LC_MONETARY="pt_BR.UTF-8"
LC_MESSAGES="pt_BR.UTF-8"
LC_PAPER="pt_BR.UTF-8"
LC_NAME="pt_BR.UTF-8"
LC_ADDRESS="pt_BR.UTF-8"
LC_TELEPHONE="pt_BR.UTF-8"
LC_MEASUREMENT="pt_BR.UTF-8"
LC_IDENTIFICATION="pt_BR.UTF-8"
LC_ALL=pt_BR.UTF-8

# vim /etc/locale.conf
# locale-gen

Ajuste o localtime criando um link simbolico e o adjtime:

# ln -s /usr/share/zoneinfo/America/Maceio /etc/localtime
# vim /etc/timezone

America/Maceio

# adjtime

0.0 0.0 0.0
0
LOCAL

Configure os módulos que você precise para usar o sistema, neste caso vou usar iptables como firewall local e alguns serviços como samba, transmission, etc.

# vim /etc/modules-load.d/firewall.conf

ip_tables
nf_conntrack_netbios_ns
nf_conntrack

Caso queria bloquear algum módulo, crie o arquivo:

# vim /etc/modprobe.d/nobeep.config

blacklist pcspkr

Configurando algumas opções do KERNEL

# vim /etc/mkinitcpio.conf

HOOKS="base udev autodetect pata scsi sata filesystems usbinput fsck usb"

Adicione “usb” ao final pois você está instalando arch num pendrive, desta forma o sistema vai reconhecer os módulos da USB ao iniciar o sistema para bootar normalmente pelo pendrive.

OBS.: Depois de alguns updates no HOOKS “block” substitui pata, scsi, sata e usb, e “keyboard” substitui usbinput, ficando da seguinte forma:

HOOKS="base udev autodetect filesystems keyboard fsck block"

Descomente a linha do COMPRESSION referente ao xz

COMPRESSION="xz"

Agora atualize a imagem do kernel:

# mkinitcpio -p linux

Configurando algumas opções do GRUB

# vim /etc/default/grub
Descomente

GRUB_DISABLE_LINUX_UUID=false
GRUB_COLOR_NORMAL="light-blue/black"
GRUB_COLOR_HIGHLIGHT="light-cyan/blue"

# grub-mkconfig -o /boot/grub/grub.cfg
# grub-install –recheck /dev/sdc

Instale o Microcode da AMD para não visualizar mensagens de error como:
microcode: failed to load file amd-ucode/microcode_amd.bin

# pacman -Sy amd-ucode

Defina a senha de root

# passwd

Adicione um usuário

# useradd -d /home/leandrocarvalho -k /etc/skel -m -s /bin/bash leandrocarvalho
# passwd leandrocarvalho

Defina multi-user.target como run level default (runlevel de 2-3) no lugar do graphics (runlevel 5), para não receber mensagens de warning no boot.

# systemctl enable multi-user.target

Saia do chroot e desmonte todas as partições:

# umount /mnt/proc
# umount /mnt/sys
# umount /mnt/dev/pts
# umount /mnt/dev/shm
# umount /mnt/dev
# umount /mnt/run
# umount /mnt/tmp
# umount /mnt/boot/
# umount /mnt/

Agora, só botar para o pc iniciar pelo pendrive e “correr para o abraço”! 😀
Configuração dos serviços, hardening e otimização do filesystem no pendrive ficará para os próximos post.

Updates mais confiáveis??

Vejo que muitos acabam reclamando de updates no Arch e não é de hoje, eu mesmo já reclamei!!!
Então com o tempo acabamos criando uma rotina de preparação para qualquer tipo de update no Arch Linux.

Abaixo detalho um pouco sobre os passos que realizo para um update consistente e confiável, UTILIZANDO APENAS OS REPOSITÓRIOS ESTÁVEIS (core, extra e community).

Primeiro passo, realizar o download de todos os pacotes:

# pacman -Syuw

Enquanto realizo o download verifico as notícias no site do Arch Linux ou do Arch Linux Brasil com a intenção de verificar se existe algum update problemático ou um update major de algum pacote importante (Gnome, Xorg, LibreOffice, Kernel, etc…).

É interessante também verificar nos fóruns e listas do Arch Linux e Arch Linux Brasil, se alguém passou por algum problema em hardware igual ao seu.

Se ficou constatado que não existe nenhum inconveniente, realizo o update, e se algum problema foi encontrado, tento procurar por soluções tanto nos fóruns quanto nos bugs do Arch Linux.

Se você está usando alguma interface gráfica ou qualquer coisa do tipo, faça logout e vá para algum tty (CTRL+ALT+F1 por exemplo).

# rc.d stop gdm/kdm/afins
# pacman -Su

O pacman mostra o output de todos os pacotes que estão sendo atualizados, se você deixou passar algum, então veja no log do pacman (/var/log/pacman.log), pois se tiver algum update de arquivo de configuração (atualização ou adição de novas opções) é recomendável verificar o impacto disso no sistema.

Verifique também se existe algum .pacnew no sistema e realize um diff.

# cd /
# find ./ -iname *.pacnew
./boot/grub/menu.lst.pacnew
./etc/fstab.pacnew
./etc/login.defs.pacnew
./etc/gshadow.pacnew
./etc/pacman.d/mirrorlist.pacnew
./etc/group.pacnew
./etc/locale.gen.pacnew
./etc/abs.conf.pacnew
./etc/pacman.conf.pacnew
./etc/makepkg.conf.pacnew
./etc/mkinitcpio.conf.pacnew
./etc/rc.conf.pacnew

Vejam a quantidade de *.pacnew em meu sistema…
É altamente recomendável você dar uma olhada em todos e não deixar nada escapar.
Recomendo que ao finalizar a atualização dos arquivos de configuração você mova para algum diretório dentro do /root.

# mkdir pacnew_files
# mv /etc/*.pacnew pacnew_files

Finalizando este passo, verifique no /etc/rc.conf quais arquivos você pode desativar, tipo o daemon do GDM, para realizar o reboot após a atualização. Se você, estiver usando o inicializador via /etc/inittab, comente a linha e mande um reboot.

O intuito disso é você conseguir realizar o boot e verificar se tudo está OK antes de levantar sua interface gráfica sem ter algum problema…
Depois é só reativar os daemons e correr para o abraço.

Outro detalhe importante é, realizar os updates apenas 1 vez por semana.
Coisa que considero interessante para manter o sistema estável.

Agora, se você estiver usando testing!!
Além de realizar os passos descritos, temos que ter em mente o seguinte:

Todo e qualquer problema é de sua responsabilidade.
Realize updates todos os dias.
É fundamental que você reporte o problema, pesquise e divulge soluções.
Acompanhe toda e qualquer modificação através da lista Arch Linux Dev Public e fique de olho no bugs do Arch Linux.

Faça o que muitos não fazem, CONTRIBUA PARA MELHORAR O ARCH LINUX DEIXANDO-O MAIS ESTÁVEL REPORTANDO OS BUGS ENQUANTO USA O TESTING, no lugar de ficar reclamando e dizendo que a distribuição é uma merda.

Se não aguenta usar o testing, use as coisas estáveis e evite dores de cabeça.

Os desenvolvedores e projetos relacionados a distribuição agradecem!

Lembre-se…

Como Judd Vinet, o fundador do projeto Arch Linux falou: “[Arch Linux] is what you make it.”

Este é um dos posts dos quais vou falar sobre manter seu sistema estável e como melhorar a segurança do seu sistema.

E você o que faz pra manter tudo em ordem em seu sistema????

Algumas coisas precisam mudar.

Nos últimos meses, fiquei pensando que rumo dar ao projeto Arch Linux Brasil, muito antes da saída de pessoas como Flores, Thotypous e Kalib.

Como de outras vezes pensei seriamente e muito, sobre a minha saída do projeto. Mas, como vi uma situação meio delicada e não queria ver o mesmo acabar, decidi ficar e tentar segurar a barra, tirar a água do barco que estava para afundar (ou afundou, como já vieram falar, que praticamente não existimos mais e sinceramente, parece verdade).

Desde o surgimento do Arch Linux Brasil em 2006, com a ajuda do Douglas Soares, Hugo Doria, Egon Braun, Israel Jr., Denis Bachmann, Armando, Allen Franco, Anselmo Lacerda e Denis Falqueto, sempre pensei no crescimento e divulgação da distribuição Arch Linux e por que não do Arch Linux Brasil?

Com o passar dos tempos, vi muita coisa mudar, saída do Judd Vinet da liderança do Arch, repositório current virando core e os repositórios/pacotes sendo redefinidos.

Vi também um maldito kernel 2.6.27 quebrar vários sistemas por falta de competência dos desenvolvedores, que acabaram implementando os signoffs (que sinceramente, precisa melhorar essa política).

As coisas foram melhorando, e entre 2008/2009 (creio que foram os melhores anos do Arch Linux Brasil), tivemos desenvolvedores e trusted users no Arch, querendo ou não, acabavam levando o nome do Arch Linux Brasil, tanto para o Brasil quanto para fora.

Boas coisas aconteram, durante esses 5 anos de existência, mas também vieram as responsabilidades, status e visibilidade para o projeto e suas atividades.

Chegou em determinados momentos que várias pessoas começaram a colaborar, projeto crescia e as coisas tomaram outras proporções.
Isso era bom até determinado ponto, onde, começamos a chamar pessoas para integrar a parte “dev” do projeto. Para elas, chegar a este lugar as fizeram diminuir ou até mesmo, pararem e nunca mais colaboraram.

Várias desculpas eram dadas, a cobraça por parte dos usuários que não conseguiam se virar, acabou crescendo e o que era motivo de prazer, virou obrigação e tornando as coisas chatas de se fazerem.

Quando as coisas deixam de ser prazerosas de se fazer, começamos a deixar de lado, não é?

Alguns devs, saíram alegando falta de tempo, outros por não terem mais vontade de colaborar, outros começaram a usar outros sistemas operacionais, muitos problemas aconteceram com os updates da distribuição, e consequentemente muitos usuários começaram a deixar a distribuição.

Não julgo ninguém por isso, mas também, uma coisa me deixou muito chateado nesse tempo. A falta de compromisso de todos, quando digo todos, é todos mesmos, até da minha pessoa.

Quando planejavamos algumas medidas para dar continuidade aos trabalhos que queriamos realizar, muitos ficavam só esperando pelos outros e acabavam também, ganhando os créditos pelo trabalho e não o Arch Linux Brasil.

E estes links [1] e [2] me fizeram pensar, estamos na mesma situação e pra mudar esse quadro, será difícil.

Pergunto, será que tudo que fazemos precisa de retorno?

Acho que essa resposta seria, sim. Pois quando trabalhamos e damos conta do recado, queremos um aumento. Se não queremos um aumento, queremos um simples reconhecimento de um bom trabalho está sendo realizado.

Dizer que o Arch Linux Brasil, está morto, para uns pode ser exagero. Diria que estamos apenas hibernando. E vários fatores nos levaram para o estado atual do projeto e também da distribuição.
Posso citar vários, sendo que apenas 2, podem dar uma ideia.

1- Mentalidade dos desenvolvedores da distribuição Arch Linux;
2- Vontade e estímulo dos usuários da distribuição.

Sempre que reclamo, falo que boa parte dos problemas das distribuições se resume aos usuários da mesma. E parece que com o passar do tempo, a confirmação disto fica mais evidente. Quando deixamos de corresponder as espectativas, as coisas tendem a sair de rumo. É o que acontece hoje.

Falei várias vezes para pessoas próximas a mim, “acerte por 40, 50 anos da sua vida. Se ao final dela você errar ao menos 1 vez, será julgado por este erro, e tudo que você fez, não terá mais valor.”

Quando se acompanha um projeto de perto, sabemos onde estão as falhas, não precisamos fazer chamadas de trabalho ou qualquer coisa do tipo, como deu a entender no link [2].

A vontade de falar mais sobre isso é grande e poderia gerar mais polêmica e até mesmo insatisfação de várias pessoas. Lembrando, apesar do Linus ter conseguido criar o Kernel Linux, se não fossem por seus usuários, o mesmo não chegaria onde está hoje.

Então, o mesmo vale para as outras coisas.

PS.:
Lembrei do Software Freedom Day de 2009, onde Alexos, Gomex, Hugo e Eu conversavamos sobre algumas coisas que falei aqui.
Parece que foi ontem e algumas coisas não mudam. Simplesmente impressionante.

Minha instalação e pós instalação.

No mês de dezembro de 2010, tive que trocar de placa mãe e de vídeo, depois de uma infelicidade ocorrida no meu antigo hardware que contava com uma placa mãe Intel DGP31BR e uma ATI HD RADEON 4550, onde um pequeno rato, entrou no gabinete e fez a festa.

Acabei mudando para uma Gigabyte G31M-ES2L e uma ATI HD RADEON 5670 e ao instalar o Arch, fiquei meio perdido pois, algumas coisas já tinha esquecido e para facilitar, criei um passo-a-passo da minha instalação para ter o sistema básico do Arch e depois, instalar o Xorg, Gnome e cia.

Como essa placa mãe tinha referência como pequeno prodígio das low-end onde coloquei meu processador Core 2 Duo e4500 de 2.2 Ghz para 2.4 Ghz, logo logo vai pra 2.6 e quem sabe 2.8 se tiver coragem de trocar de memória ram com mais qualidade e que aguente o tranco.

Vendo o Planeta Arch Linux Brasil mais especificamente este post do Berlotto, resolvi divulgar meu passo-a-passo.

Instalação

Pequeno lembrete, não irei aborda todo o processo de instalação vou só indicar o que fazer, se quiser saber como instalar o Arch veja este link, esta é a documentação mais atualizada até onde sei.

Inicialmente, após dar boot no computador pelo CD de instalação, escolha a opção referente a arquitetura que você está usando.

Depois que o cd de instalação carregar, logue no ambiente de instalação com o usuario root e execute os seguintes passos:

Alterar o teclado com o comando ‘loadkeys br-abnt2’ (podendo também, usar o comando ‘km’);
Execute o cfdisk, particione o seu HD;
Execute o script de setup com o comando ‘/arch/setup’;
Selecione os pontos de montagem e o tipo de filesystem;
Selecione os pacotes, depois instale;
Instale os pacotes;

Como o SISTEMA BÁSICO (grupo base) é usado quase que 100%, principalmente como dependência de algumas apps para desktop não removo nenhum pacote.
E também, como precisamos compilar alguns pacotes selecionamos junto com o grupo base, o grupo base-devel.
Caso você precise de mais algum pacote, fique atento após a seleção dos grupos base e base-devel, pois existem outros pacotes caso queira conferir, fique esperto.

Nesta parte, é necessario editar pelo menos dois arquivos: locale.gen e rc.conf, o ideal é editar todos que você ache essenciais.
Recomendo fazer uma configuração básica, apenas.

Configure o sistema;
Instale o GRUB;
Reboote o sistema;
Logue no sistema como root;

Verifique se precisa configurar o pacman ou mais alguma outra coisa;
Se você instalou usando o core (recomendo a instalação a partir do core), atualize a distribuição:

# pacman -Syu

Reboot;
Agora configure todo o sistema, conforme seu gosto e necessidade;
Como gosto do vim, vou instalar primeiro o pacote para poder continuar;

# pacman -Sy vim
# cp /usr/share/vim/vim73/vimrc_example.vim ~/.vimrc

Levante os módulos necessários no boot para ter uma inicialização mais rápida (principalmente no udev events):

# pacman -Sy hwdetect
# hwdetect –modules >> /etc/rc.conf

Agora edite o rc.conf e organize-o:

# vim /etc/rc.conf

Crie o usuário para usar o sistema:

# useradd -d /home/nome_do_usuario -m -G audio,wheel,storage,disk,log,optical,power,locate,tty,users,video -r -s /bin/bash nome_do_usuario
# passwd nome_do_usuario

Ao criar um novo usuário você já terá um SISTEMA BÁSICO, totalmente funcional e pronto para instalação de um ambiente gráfico.
Espero que vocês entendam o que é SISTEMA BÁSICO, pois todo dia vejo nego afirmando que Xorg e outras aplicações para desktop serem sistema básico e não são.
Fica a dica ai pro pessoal.

Ambiente Desktop

Vamos começar pelo som do sistema:

# pacman -Sy alsa-lib alsa-utils alsa-oss alsa-plugins
# alsaconf
# alsamixer
# alsactl store
# vim /etc/rc.conf (para adicionar o alsa na array DAEMON)

Como algumas aplicações ainda usam o HAL, vamos instalar alguns pacotes:

# pacman -Sy fam hal dbus

Adicione o fam, hal e dbus na array DAEMON, sempre seguindo a ordem correta dos serviços, hal precisa do dbus para iniciar.

# vim /etc/rc.conf
dbus to $DAEMONS
hal to $DAEMONS
fam to $DAEMONS

Inicie os serviços.

# /etc/rc.d/dbus start
# /etc/rc.d/hal start
# /etc/rc.d/fam start

Instale o Xorg:

Comece a instalação dos pacotes do Xorg e do synaptics (se estiver instalando em um notebook);

# pacman -Sy xorg xf86-input-synaptics xf86-input-mouse xf86-input-keyboard

Agora faça a instalação do driver de vídeo, no meu caso é a catalyst da amd (no desktop), proprietário;
É preciso baixar do AUR os pacotes catalyst-utils e catalyst;

$ cd catalyst-utils
$ makepkg -c
# pacman -U catalyst-utils-10.11-1-x86_64.pkg.tar.xz

Realize os procedimentos mostrados no pos-install do catalyst-utils e continue a instalação do driver;

$ cd ../catalyst
$ makepkg -c
# pacman -U catalyst-10.11-1-x86_64.pkg.tar.xz

OBS.: Como você vai usar o makepkg, configure o makepkg.conf para colocar o source do pacote em um mesmo lugar, evitando fazer downloads desnecessários.

Instale o qt para ter acesso ao “administrador” da placa de video;

# pacman -Sy qt

GNOME

Instalando o Gnome
Grupo Gnome

# pacman -Sy gnome

    * epiphany [TALVEZ]: webrowser do Gnome;
    * gnome-applets [SIM]: applet para as barras do Gnome;
    * gnome-backgrounds [SIM]: papeis de parede;
    * gnome-control-center [SIM]; centro de controle do Gnome;
    * gnome-desktop [SIM]: O desktop do Gnome;
    * gnome-icon-theme [SIM]: icones;
    * gnome-keyring [TALVEZ]: daemon gerenciador de senhas do GNOME;
    * gnome-media [SIM]: pacote multimidia do Gnome;
    * gnome-mime-data [SIM]: banco de tipos de arquivos;
    * gnome-panel [SIM]: painel de controle;
    * gnome-screensaver [SIM]: Controle de screensavers;
    * gnome-session [SIM]: gerenciador de sessoes;
    * gnome-settings-daemon [SIM]: gerenciamento de configuracao;
    * gnome-terminal [SIM]: terminal do gnome
    * gnome-themes [SIM]: temas;
    * gnome2-user-docs [SIM]: documentos sobre o Gnome;
    * metacity [SIM]: Gerenciador de janelas;
    * nautilus [SIM]: gerenciador de arquivos;
    * notification-daemon [SIM]: Framework de notificacoes
    * yelp [SIM]: sistema de ajuda.

Grupo Gnome-extra

# pacman -Sy gnome-extra
# pacman -Sy alacarte bug-buddy cheese deskbar-applet eog evince file-roller gcalctool gconf-editor gdm gedit gnome-audio gnome-netstatus  gnome-nettool gnome-power-manager gnome-system-monitor gnome-utils gucharmap hamster-applet mousetweaks nautilus-sendto seahorse seahorse-plugins sound-juicer totem zenity

    * alacarte [SIM]: editor de menus do Gnome;
    * bug-buddy [TALVEZ]: reportador de bugs;
    * cheese [TALVEZ]: programa para webcam;
    * dasher [NAO]: interface de entrada para pessoas com necessidades especiais;
    * deskbar-applet [SIM]: barra de pesquisa tudo-em-um da barra do Gnome;
    * ekiga [NAO]: Videoconferencia do Gnome (GnomeMeeting);
    * empathy [SIM]: IM;
    * eog [SIM]: eye of Gnome, visualizador de imagens;
    * evince [SIM]: vizualizador de pdf;
    * evolution [NAO]: cliente de mensagens instantâneas;
    * evolution-exchange [NAO]: conector Evolution – MS Exchange;
    * evolution-webcal [NAO]: gerenciador de calendarios web;
    * file-roller [SIM]: manipulador de arquivos compactador;
    * gcalctool [SIM]: calculadora;
    * gconf-editor [SIM]: configurador do Gnome;
    * gdm [SIM]: gerenciador de login do Gnome;
    * gedit [SIM]: editor de texto simples;
    * gnome-audio [SIM]: efeitos sonoros do Gnome;
    * gnome-games [NAO]: jogos;
    * gnome-games-extra-data [NAO]: Dados para os jogos;
    * gnome-mag [NAO]: lente de aumento;
    * gnome-netstatus [SIM]: applet que mostra o status da rede;
    * gnome-nettools [SIM]: ferramente de rede;
    * gnome-power-manager [SIM]: gerenciador de energia;
    * gnome-system-monitor [SIM]: mostra o estado do seu sistema;
    * gnome-utils [SIM]: utilitarios diversos;
    * gok [NAO]: teclado virtual;
    * gucharmap [SIM]: mapa de caracteres;
    * hamster-applet [SIM]: aplicativo de gerenciamento de tempo;
    * libgail-gnome [NAO]: GNOME Accessibility Implementation Library;
    * mousetweaks [SIM]: melhorias de acessibilidade de mouse;
    * nautilus-sendto [SIM]: Nautilus context menu for sending files;
    * orca [NAO]: leitor de tela;
    * seahorse [SIM]: gerenciador de chaves PGP;
    * seahorse-plugins [SIM]:
    * sound-juicer [SIM]: ripador de CDs de audio;
    * tomboy [NAO]: gerenciador de notas rapidas;
    * totem [SIM]: tocador de medias;
    * vinagre [NAO]: cliente VNC;
    * vino [NAO]: servidor VNC;
    * zenity [SIM]: framework de janelas de dialogo;

Pacotes extras para o gnome

# pacman -Sy gnome-system-tools

Complementos do ambiente gráfico

# pacman -Sy gstreamer0.10-plugins

Instalando fontes do ambiente gráfico

# pacman -Sy ttf-dejavu ttf-bitstream-vera

Instalando descompactadores

# pacman -Sy unrar unzip p7zip

Softwares dicionais

# pacman -Sy firefox xchat pidgin chromium emesene
# pacman -Sy vlc comix rhythmbox
# pacman -Sy ntfs-3g
# pacman -Sy thunderbird
# pacman -Sy jre jdk vuze
# pacman -Sy libreoffice libreoffice-extensions (lembre-se libreoffice-extensions é um grupo)
# pacman -Sy abs

Depois disso adicione o módulo fuse na array MODULES do rc.conf e veja qual daemon do avahi vai adicionar a array DAEMON.

# vim /etc/rc.conf
fuse to $MODULES
avahi-daemon to $DAEMONS

Adicionando usuario aos grupos adicionais

# gpasswd -a nome_do_usuario camera,dbus,hal,stb-admin

Do AUR

    * ttf-ms-fonts;
    * flashplugin-prerelease;
    * virtualbox_bin;
    * pms;
    * dropbox

Se você está instalando em um notebook, recomendo o uso do wicd para gerenciar suas interfaces:

# pacman -Sy wicd

Tenha certeza que seu usuario esta no grupo network, e entao abra o /etc/rc.conf e altere a linha:

INTERFACES=(eth0)

Para:

INTERFACES=(!eth0)

E na ultima linha, adicione os servicos, ela deve estar assim:

DAEMONS=(… !network wicd gdm)

Note a ! na frente de network, isso ira desabilitar este servico, salve e feche o arquivo e reinicie o computador.

Algumas observações:

O Teclado no gnome é configurado apartir do GDM ou após a inicialização dele.
Recomendo configurar apartir do GDM, pois ao entrar com a senha, o teclado já vai estar ok.

Se os icones do menu Sistema do gnome não aparecerem execute os seguintes passos:

Application >> System Tools >> Configuration Editor, /desktop/gnome/interface/ e habilite “menus_have_icons”.

Qualquer coisas estranha, verifique primeiro neste link: https://wiki.archlinux.org/index.php/GNOME_2.28_Changes

Bom, é isso. Se tiverem alguma sugestão ou crítica, podem mandar nos comentários.
Até a próxima.

Arch Linux vs. Usuário e Arch Linux vs. Stable

Arch Linux

Arch Linux vs. Usuário, Missão Impossível ao Extremo!!!!

Estou tentando ao máximo possível me libertar da praga de ajudar usuários que não sabem diferenciar um problema de software e um problema causado pela distribuição.

Muitos vivem reclamando que Arch bug isso, bug aquilo, dev isso, dev aquilo. Ver esse tipo de atitude dos usuários, que não tentam pensar ou descobrir as origens do problema, cansa e muito. E O PIOR, não tentam se quer, aprender como funciona o gerenciamento de pacotes e como funciona o desenvolvimento da distribuição, que são pontos importantes para evitar problemas com qualquer distribuição E MUITO MENOS reportam os problemas que acontecem, desse jeito fica complicado, pois ninguém tem bola de cristal.

Bons exemplos disso foram os updates do X.org, quando mudou a forma de detectar os devices e passou a usar o HAL, causando transtorno a algumas pessoas que precisaram aprender a configurar seus teclados e touchpads e atualização do GNOME 2.28. E hoje, é a nova versão do Xorg (xorg-server 1.7.x).

Tenho links de blogs e de fóruns, mas para evitar qualquer tipo de problema não postarei.

Qual o motivo dessa “revolta”?

Primeiro, se o usuário tem problemas com update, ele não procura no site, não assina a lista dev public, não procura no fórum oficial e nem no bugs report da distribuição. Segundo, o infeliz não procura olhar nos logs (do Xorg principalmente), não sabe olhar nos sites dos projetos (como Gnome, Kde, Xfce, etc…) para ver o que mudou de uma versão para outra. Não faz isso e já vai que nem louco postar no fórum, mail-list e perguntar no IRC o motivo do problema, se alguém demora para responder ou ignora, o usuário já sai chingando a distribuição, dizendo que não presta, é bugada, é distro amadora, etc.

Terceiro, Arch é focado basicamente em binários, consequentemente requer bastante cuidado. Não é igual ao Gentoo, onde você pode customizar tudo o que quer e não se preocupar com os updates.

Como no OpenBSD, teoricamente os desenvolvedores das distribuições, sabem o que estão fazendo, e recomendam não customizar tanto um software, e quando fazem essas customizações, muitos usuários não sabem lidar com as ideias dos desenvolvedores e com o pacman (suas configurações). Se você configura uma coisa e não quer que aquela configuração seja atualiza, dê uma olhada na man page do pacman.conf, e observe a opção NoUpgrade, isso é um excelente exemplo da falta de descaso com a distribuição.

Se realmente querem customizar e ainda sim querem usar o Arch, usem o ABS e aprendam também a usar a opção, IgnorePkg junto com NoUpgrade. Sendo assim, aguentem a consequência de fazer o update manualmente. O que acaba nos levando ao Quarto ponto, dependências.

Essas reclamações são as que enchem mais a paciência ou terminam com ela. O que tem de reclamação sobre isso não é brincadeira. Se o senhor não quer dependência X, Y, Z, faça como no lance das customizações.

“Ahhhh mas é o KDE, é muito grande, é um grupo, editar as PKGBUILDS não dá!”

Isso é clássico… KDE hoje é modular, o pacman já suporta split de pacotes, ficando mais fácil essa tarefa.

Quinto ponto, falei acima que é importante você conhecer a distribuição na parte de gerenciamento de pacotes e no desenvolvimento da mesma, em outras distribuições (como Debian, Gentoo e Slackware) os usuários são ligados nesses pontos sendo que no Arch muitos não fazem o mesmo, até hoje não entendo o motivo disso. Qual a diferença do Arch para as outras???

Analisando esses pontos, IMHO… Opinião TOTALMENTE pessoal (só para reforçar), 92% dos casos de problemas causados no Arch é pura culpa do usuário, como tem nos reviews e descrições feitas do Arch, distribuição feita para usuários experientes ou usuários que querem entender como funciona, que querem estudar.

Veja o FAQ do Arch, leia esta pergunta, mais esta e esta aqui. E ENTENDA BEM O QUE É E COMO AS COISAS FUNCIONAM NO ARCH!!!! EVITE PROBLEMAS PARA VOCÊ E PARA OS OUTROS que tentam te ajudar, infeliz!

Padawan, para você conseguir isso, precisa deixar de ser preguiçoso e começar a pensar, ler e saber solucionar seus problemas sozinho.

E agora Mestre Yoda e os outros 8% dos problemas?? Isso fica dividido entre problemas do upstream e falta de massa cinza na cabeça de alguns desenvolvedores. Vamos explicar um fato que engloba esses 2 aspectos e vocês vão entender: Primeiro temos uma thread que fala sobre o teste do novo Xorg e falando dos seus problemas e agora temos outra thread que fala sobre os problemas que o Xorg teve depois que foi movido para o extra.

Agora explicarei os problemas do Arch e do Upstream causadores dos problemas.

O problema do Arch é a falta de planejamento de desenvolvimento, cada um no seu quadrado. Se alguém mantém o Xorg e deixa no testing até que se resolva os problemas dos drivers, ninguém deveria meter o dedão e mover para o extra (que foi o problema dessa nova versão do xorg e pode ser visto nas 2 threads que coloquei aqui). Ninguém quer manter 2 versões de pacotes, a não ser, que seja altamente/extremamente necessário ou não tenha outra saída para resolver os problemas encontrados.

Sempre fui a favor de apenas 5~7 pessoas ajudando a manter o repositório core, assim aumentaria a estabilidade e a compatibilidade dos pacotes, dividir a pequena equipe em subgrupos (Xorg, KDE, Gnome, etc.), como existe no gentoo e debian. Cada um no seu quadrado. Como isso basicamete não existe, acontece esse tipo de problema como o atual do xorg.

Outro quesito importante é a parte de segurança que não é muito o forte do Arch, uma alternativa que ajudaria nisso seria o Sheriff, um software que “faz um diff” de vulnerabilidade entre NetBSD e Arch, feito pelo Paulo “thotypous” Matias, foi bem aceito pela equipe do Arch, só que não vingou e está a um ano sem desenvolvimento. Alguém se habilita a ajudar no projeto??

Segurança deveria ser mais ativo no desenvolvimento do Arch.

Upstream é coisa séria, como esses modificam as coisas, acaba meio que contribuindo e botando em cheque a credibilidade do Arch, pois o Arch bota no repositório e o usuário se vire para se adequar as mudanças dos projetos. Motivo??? Que o Arch não testa os pacotes, será mesmo????

Arch deixa kernel (depois de várias lapadas na cara que os desenvolvedores levaram) por um tempo indeterminado, pode ser de 1 dia a mais de mês no testing e agora temos o kernel-lts (que é uma ótima alternativa). Gnome 2.28.x ficou no unstable por 1 mês, o Kde 4 da mesma forma, Xorg do mesmo jeito e mesmo assim existe problemas, por que isso???

Pelo simples fato do Arch não ter usuários suficientes para ajudar nos testes, como Debian, Gentoo e Slackware tem. Para inicio se o que falei aqui fosse feito tanto por parte dos usuários e dos desenvolvedores, Arch melhoraria mais sua estabilidade e muito sua credibilidade.

Arch Linux vs. Stable

Apesar de tudo que falei acima, considero Arch bem estável.

Muitos usuários reclamam disso por dois motivos, primeiro por querer upstream bem testado (praticamente impossível, pois aqui eles são testados o suficiente para garantir que funcionam) tipo debian e segundo por terem vontade de usarem Arch em servidores.

A primeira já abordei um pouco, a segunda é meio complicada, mas também pega um pouco do que falei acima… Só que o principal para se pensar no segundo motivo, está aqui.

Fora realizar testes antes de jogar em produção, para garantir que a lei de Murphy não te pegue de surpresa. E por favor, saibam usar o ABS + pacman.conf adequadamente.

Como tem no wiki: “Você faz a estabilidade do seu Arch Linux!”

Já que você faz a estabilidade, qual a razão de você acompanhar o update de cada pacote em outras distribuições quando você usa em servidores e não faz no Arch???

Esse é um erro fatal de muitos, como já disse… ABS + pacman.conf na cabeça, pensem nisso. 😉

Bom, por enquanto é isso. Se você não gosta ou não concorda com o que falei aqui sobre o Arch. Melhor você usar Debian!

Arch Linux não é pra qualquer um, ele seleciona bem seus usuários. x)

Saudações,

Leandro “skate_forever” Inácio

Microsoft keyboard Elite Bluetooth

Bom dia,

Já tem um tempinho que não escrevo nada aqui, estava planejando postar umas dicas para iniciantes sobre como comecar a programar, dizendo quais livros, tutoriais, aulas que podemos encontrar por ai, são bons para entender os conceitos básicos (da programacão e da linguaguem que ele pretende aprender) e a syntax. Mas vai ficar para depois…

Agora vamos ao post realmente… Como tenho 2 mouses Microsoft, e estou gostando muito, resolvi comprar um teclado MS também. Um amigo tem alguns contatos e pedi a ele um teclado que fosse confortável e bom, para usar diariamente e dar aquela jogadinha no bom e velho CS.

Acabei pegando um “Microsoft keyboard Elite Bluetooth”. Quando peguei pensei, “como vou fazer pra esse infeliz funcionar no Arch também?”. Até que foi simples, veja como foi…

Vou precisar do dbus, bluez e bluez-hcidump instalados, como já tenho o GNOME instalado, consequentemente já tinha o dbus, mas não tinha o bluez, ou pelo menos, não sabia que tinha.

# pacman -Sy bluez bluez-hcidump

Vai retornar um “reinstall package”, quando vi, achei estranho pois não tinha instalado o bluez antes, quando executei:

$ pacman -Qi bluez

Retornou:

Required By : gvfs

Bom, como já tinha o pacote, só instalei o bluez-hcidump. Feito isso, comecou a brincadeira… Precisei configurar algumas coisas.

Primeiro verifiquei se o dispositivo estava ativo:

# hciconfig

Se ele retornar:

hci0: Type: USB
BD Address: 00:00:00:00:00:00 ACL MTU: 0:0 SCO MTU: 0:0
DOWN
RX bytes:0 acl:0 sco:0 events:0 errors:0
TX bytes:0 acl:0 sco:0 commands:0 errors:0

Será necessário você, levantar o infeliz com:

# hciconfig hci0 up

Para verificar se realmente subiu, use apenas o comando hciconfig, novamente. Agora a parte boa, procurar pelo teclado.

$ hidd scan
00:12:5A:9C:18:DD Microsoft A keyboard

A saída será algo semelhante a essa que você está vendo. Mas quero o teclado funcionando amigão, calma calma, é mais fácil ainda.

# hidd --connect 00:12:5A:9C:18:DD

Você pensou, “Pronto agora tenho meu teclado funcionando!!!! x)”… Ai que você se engana, o bluetooth no linux ainda é um lixo (essa é a minha opinião e já já vão descobrir o por que). Inocente o garotão vai lá e comeca a digitar e nada do teclado funcionar, mas fiz tudo certinho. Nem tudo amigão. x)

Depois que você conectou, verifique se realmente está conectado com:

$ hidd show
00:12:5A:9C:18:DD Microsoft A keyboard that runs over Bluetooth [045e:0099] connected

Tem que mostrar aquela palavrinha mágica ali, connected, “ahhhhh mas não funcionou”. Tente:

# hidd --search
Searching ...
Connecting to device 00:12:5A:9C:18:DD

Pronto, agora você já pode digitar e sair pulando de alegria. x)

Se você quer ter seu teclado funcionando depois do boot, faca o seguinte… Edite o arquivo /etc/conf.d/bluetooth, procure pela variáveis HIDD_ENABLE e HIDD_OPTIONS, descomente ambas e adicione a elas…

HIDD_ENABLE="true"
HIDD_OPTIONS="--connect 00:12:5A:9C:18:DD"

Adicione ao rc.conf no DAEMONS, o bluetooth. Quando reiniciar teoricamente você já deveria ter seu teclado funcionando né??? Mero engano… Aqui só funcionou na base da gambiarra e mesmo assim, tive que botar o bluetooth depois do dbus no rc.conf. Para ter funcionando corretamente, vá ao seu rc.local e adicione “sleep 20” e “/usr/bin/hidd –search”.

Tiveram 3 coisas que não agradou muito, primeiro que precisei dessa bela “gambe”, a segunda é, passou de 3 a 5 minutos sem usar o teclado preciso usar e a terceira, é que preciso usar o outro teclado pra acessar a bios (isso já era esperado) e como fallback quando o bluetooth não funcionar. x)

Se alguém tiver alguma solucao para esses inconvenientes, ficarei grato.

Já ia esquecendo, veja este guia de bluetooth, essa dica e mais esse link do wiki, caso tenha dúvidas.

PS.: Se você sentiu falta dos cedilhas na minha escrita, não se assuste… ele tá saindo assim, ć, por isso não usei. 😉

kernel26-lts???

Simplesmente, PQP! x)

Desculpem o PQP, mas… P. Q. P. !!!!!!!

Isso anima bagarai, e muito, mas muito mesmo… Pra quem acompanha as listas de e-mail do Arch, é indispensável acompanhar a dev public. Você se pergunta, mas qual o motivo desse alarde?????

O motivo é esse aqui, principalmente pra quem roda Arch Linux em servidor (que se conta o número de malucos que já fizeram ou fazem isso, fui um deles e sem arrependimentos) e quer um Arch Linux Stable, ai vem a pergunta, Arch está virando stable???

Sempre achei o Arch muito estável se comparado com várias distribuições. E tão estável quanto, IMHO, Slackware e Gentoo. Não espero uma definição como “Debian Stable” ou coisa do tipo. Sinceramente, espero que o Arch se torne mais estável em pacotes críticos (leia-se, pacotes do repositório core), sim… Contudo, sem mudar o seu estilo, que é o que mais me agrada!!! E é a proposta que o Andreas Radke, desenvolvedor do Arch, enviou para a dev public e pode ser lida aqui!!!

Na minha opinão, não precisaria de um Arch Linux Stable… Precisaria sim, de um controle maior nos pacotes, como já mencionei. Tudo isso que falei, é mencionado nos links, então, sinta-se a vontade e leia e compartilhe sua opinão sobre isso. 😉

Como no post anterior… EU AMO ESSA DISTRIBUIÇÃO E OS PROJETOS QUE ENVOLVEM A MESMA!!!!!!!

Meu próprio descaso…

Putz, demorei mas estamos ai. O post está um pouco longo e de qualquer forma coloquei o que andei fazendo e algumas coisas são interessantes…

Desde maio que não atualizo ou coloco algo aqui no blog, esse é sempre o meu mal. Vão aparecendo coisas e mais coisas pra fazer e estudar e acabo não postando.

Então vamos a um resuminho…

Maio, sinceramente não lembro muito o que fiz, mas tenho certeza que estava preparando alguns postes para o blog… Agora esses postes estão sendo reformulados, adiados e programados.

Junho, comecei a estudar para concurso, pois arrumar um trampo tá meio complicado. Alguns podem falar que é preguiça minha ou qualquer outro motivo para eu não conseguir um emprego, mas espera ai, não é bem assim como vocês estão pensando. Também tive que resolver uns problemas do FIES na caixa, passei 2 semanas sem brincadeira nenhuma, indo a caixa e ninguém sabia como resolver, tive que me virar e descobrir como dar um fim nessa jornada, consegui resolver só que o cara responsável ficou de férias e iria voltar no fim de Julho e não fui mais na caixa, agora tenho que esperar a minha mãe dizer se posso ou não ir assinar a papelada pra começar a pagar.

Teve o FISL, onde os pessoal do Arch Linux Brasil se reuniu e decidiu reestruturar o projeto, a proposta inicial foi enviada a lista e estamos terminando isso. A tradução da newsletter desse mês demorei um pouco para terminar por vários problemas que não merecem ser mencionandos, outras coisas apareceram durante esse periodo que também não merecem serem citadas.

Julho, período de transição e reorganizar do meu cronograma, estudar para concurso e fazer cursinho para o mesmo estão tomando de conta do meu tempo… Sem contar que foi o mês todo entre votação/definição do que iriamos fazer na reestruturação do projeto, faltando agora definir os líderes de cada subprojeto interno. Também tivemos um pequeno problema com o fórum e que precisamos traduzir (e para isso montamos um pequeno grupo), a tradução está atrasada (se alguém estiver afim de ajudar, é só falar), a tradução da newsletter foi boa e sem muitos atrasos. Voltei a praticar jiu jitsu, com o professor Ricardo Feitosa, depois de alguns meses sem treinar.

Agosto, meu time subiu de divisão no campeonato brasileiro, da C para a B, foi uma festa incrível e o maior feito da história dele, no jogo contra o Rio Branco, penso que tive algum ataque no coração, mas não sei ao certo o que aconteceu, passei mal… Só sei que valeu a pena!! x) UhUHuHuhuhuhUhuhuhUh

Os líderes para cada subprojeto interno do Arch Linux Brasil foram definidos, faltando só o de Infraestrutura, vai ter reunião sexta para ver o que acontece, creio que assumirei esse trampo. Estou postando menos no fórum devido a um problema na lista do Arch BR, onde o pessoal queimou ruim por eu ter banido um usuário que ficava levantando postes antigos e por tabela deixei o fórum passando a responsabilidade para o corvolino, já estava de saco cheio do fórum também. Saiu a nova release da ISO do Arch, tá show de bola, vem melhorando a cada release, é bom conferir. 😉

Ia esquecendo, montamos uma nova equipe de tradução para newsletter, tá show de bola, valeu pessoal pelo apoio, agora tá saindo em 3 dias, 4 com a revisão, muito bom isso. x)

Nesse meio tempo, reorganizei meu cronograma e venho estudado de segunda a sexta pela manhã (em dias alternados) Java, C, LPI, SO e raramente Shell Script… E todo dia direito, muito direito penal, processual civil, eleitoral e também português, raciocínio lógico, etc… A coisa tá meio complicada, porém, tenho feito algumas coisas como, uma pequena manutenção no meu AAO, testei o OpenBSD e o Mac OS X, este deu um trampo miserável, algumas releases que baixei funcionava a ethernet e o vídeo, mas não funcionava o som e a wireless, e em outras era o contrário, e em algumas, só o som e o vídeo, acabei desistindo. No OpenBSD só o teclado que não funcionou corretamente.

Ahhh, Tenho pego um pouco Debian e CentOS, pois adotei os mesmos para usar em servidor. Como sou meio louco, tá ai a lista de sistemas operacionais que estou usando e o foco de cada no meu uso:

Uso geral:
1- Arch Linux;
2- OpenBSD (usei no aspire one e tirei, mas vai voltar pra ele novamente, em breve);
3- Windows (jogar um pouco de CS, quando chego do jiu jitsu).

Servidores:
1- Debian;
2- CentOS;
3- OpenBSD (talvez, não pegue ele ainda com esse intuito, mas logo logo será usado como server).

Bom, é isso e logo logo, postarei algumas outras coisas…

Abraços e volte sempre. x)

PS.: Já contei pra vocês que considero o Arch Linux Brasil como um filho??? PQP… Amo esse projeto, a distribuição… E agora me apaixonei pelo OpenBSD (mesmo não sabendo usar direito) e pelo Mac OS X (mas só presta em hardware da apple =/ ). Arch e OpenBSD, são minhas paixões. =***