domingo, 30 de novembro de 2014

crunchbang #! - Instalação e Personalização

Para a versão crunchabng #! waldorf de 64bits.

Instalação

No processo de instalação do crunchbang #! waldorf de 64bits, será utilizado:
  • /dev/sda1 - ext4 para /
  • /dev/sda4 - ext4 para /home

Upgrade para jessie

Após a instalação deve atualizar-se tudo:
sudo apt-get update && sudo apt-get dist-upgrade

Comentar o repositório do crunchbang (manter ativo pode dar problemas) e alterar os repositórios debian para jessie
sudo nano /etc/apt/sources.list:
## CRUNCHBANG
#deb http://packages.crunchbang.org/waldorf waldorf main
#deb-src http://packages.crunchbang.org/waldorf waldorf main

## DEBIAN
deb http://http.debian.net/debian jessie main contrib non-free
#deb http://http.debian.net/debian wheezy main contrib non-free
#deb-src http://http.debian.net/debian wheezy main contrib non-free

## DEBIAN SECURITY
deb http://security.debian.org/ jessie/updates main
#deb http://security.debian.org/ wheezy/updates main
#deb-src http://security.debian.org/ wheezy/updates main


Após a alteração deve atualizar-se tudo:
sudo apt-get update && sudo apt-get dist-upgrade

Sempre que o dist-upgrade der erro, pode tentar corrigir-se com:
sudo apt-get install -f

Depois tentar novamente a atualização até não haver mais erros (caso haja mais erros, tentar corrigir com o comando anterior):
sudo apt-get dist-upgrade

Para resolver este erro é necessário remover os pacotes cb-tint2 tint2conf.
Errors were encountered while processing:
 /var/cache/apt/archives/tint2_0.11+svn20121014-3_amd64.deb


sudo apt-get remove cb-tint2 tint2conf

Depois resta continuar com:
sudo apt-get dist-upgrade


Software Adicional - Instalação automática

A instalação automática de software pressupõe que o mesmo exista nos repositórios. Um repositório interessante para utilizar no âmbito dos programas multimédia é o deb-multimedia.org, que será instalado de seguida.

Repositório Multimédia

Adicionar repositório deb-multimedia:
sudo nano /etc/apt/sources.list.d/multimedia.list
deb http://www.deb-multimedia.org jessie main non-free

sudo apt-get update
sudo apt-get install deb-multimedia-keyring

A partir daqui é possível instalar o software pretendido:

sudo apt-get install redshift openjdk-7-jre owncloud-client libreoffice fotowall shotwell darktable inkscape gthumb scribus audacity audacious avidemux blender mkvtoolnix-gui mediainfo-gui openshot winff-gtk2 arduino fritzing remmina virtualbox

De seguida é descrito o software a instalar com uma breve descrição.

 .:  S o f t w a r e    G e n é r i c o  :. 


RedShift - programa que automaticamente ajusta o gama do monitor para refletir a altura do dia (mais 'quente' à noite e mais 'frio' durante o dia)

OpenJDK 7 JRE  - Java Runtime Environment para executar programas em Java

Owncloud Client - cliente para sincronização com o servidor owncloud

LibreOffice - ferramenta de produtividade com processador de texto, folha de cálculo, apresentações, etc.

 .:  G r á f i c o s  :. 


Fotowall - software para edição rápida de fotomontagens

Shotwell - gestão e organização de fotografias

Darktable - gestão e processamento de fotografias em RAW

Inkscape - edição de imagem vetorial

Gthumb - gestor e editor rápido de fotografias

Scribus - software de paginação

 .:  M u l t i m é d i a  :. 


Audacious - player de música leve e com suporte para receber streaming de radio

Audacity - edição de áudio com captura

Avidemux - edição rápida de vídeos, muito útil para fazer cortes rápidos sem renderizar

Blender - modelação e animação 3D

MKVToolNix - caixa de ferramentas para vídeos em MKV, permite acrescentar e eliminar streams

MediaInfo - Obtém toda a informação de ficheiros multimédia com codecs, bitrates, resoluções, etc

OpenShot - edição simples de vídeo com diversos efeitos e opções faz o render com diversas opções de resolução, qualidade, codec, etc

WinFF - interface para conversão de ficheiros multimédia utilizando o ffmpeg

 .:  D e s e n v o l v i m e n t o  :. 


Arduino IDE - Interface para programação e comunicação com o arduino

Fritzing - Desenho de circuitos eletrónicos

 .:  R e d e  :. 


Remmina - gestão de ligações remotas com suporte para definições de tunneling com SSH

Google Chrome - browser que pode ser instalado pelo auxiliar do crunchbang acessível a partir de:
Network > WWW browsers > Install Google Chrome

 .:  S i s t e m a  :. 


Virtualbox - gestão de máquinas virtuais


Software Adicional - Instalação Manual

Apesar de haver muito software nos repositórios, pode ser necessário ter instalada uma versão específica de um software que lá existe, ou então ter software que não possui repositórios.
Preferencialmente será instalado em /opt.

 .:  S o f t w a r e    G e n é r i c o  :. 


Calibre 2.12 - gestão de livros e outras edições digitais
sudo -v && wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda x:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main('/opt')"

 .:  M u l t i m é d i a  :. 


CeltX 2.97 - software para pré-produção audiovisual: desenvolvimento da narrativa, gestão de personagens, argumento, storyboard, etc. A aplicação web é muito limitativa em relação à versão desktop (muito antiga, é certo). Para obter a versão desktop é necessário descarregar a partir de http://download.celtx.com/2.9.7/Celtx-2.9.7-64.tar.bz2
Extrair com:
tar -jxvf Celtx-2.9.7-64.tar.bz2
E executar a partir da pasta.


Lightworks 12.0.2 - Software de edição avançada de vídeo gratuito pode ser obtido aqui: www.lwks.com/downloads
Depois de descarregado o DEB é necessário instalar e resolver as dependências que faltam instalar:
sudo dpkg -i lwks*
sudo apt-get install -f
Nota: Com a utilização do jessie deixou de funcionar corretamente (ao arrancar abre uma janela em branco e não deixa fazer qualquer interação).

ShotCut 14.11.01 - software para corte de vídeo com render. Está disponível aqui http://www.shotcut.org/bin/view/Shotcut/Download
Extrair com:
tar -jxvf shotcut*
E executar a partir da pasta.

 .:  D e s e n v o l v i m e n t o  :. 


Netbeans IDE 8.0 - IDE para programação e desenvolvimento de aplicações para a web (versão HTML5 + PHP) disponível aqui: https://netbeans.org/downloads/.

RoboCut 1.0.11 - Software para corte de desenhos em SVG em plotters de corte (Silhouette) desenvolvido por  Markus Schulz e disponível aqui: https://gitorious.org/robocut/alpharesearchs-robocut/source/86cd3b3eb5d948606a99d5243efae52a1603e3f2:
É necessário fazer o download, extrair, compilar...

 .:  G r á f i c o s  :. 


Inkscape extension: Neon22 inkscape-jigsaw - Esta extensão permite que o Inkscape possa gerar padrões de puzzle. A extensão está muito bem desenhada e permite controlar todos os aspetos: tamanhos, número de peças, etc... As linhas criadas são otimizadas para o corte.

Instalar a extensão no inkscape: Descarregar o zip a partir de https://github.com/Neon22/inkscape-jigsaw e extrair os ficheiros: Lasercut-jigsaw.inxLasercut-jigsaw.py para a pasta de extensões do inkscape, neste caso: ~/.config/inkscape/extensions.


 .:  R e d e  :. 


Opera 26 - versão estável baseada no chromium webkit. É necessário descarregar a partir daqui: http://www.opera.com/computer/linux
Depois é necessário instalar o .DEB
sudo dpkg -i opera*.deb

Opera 12.16 - última versão estável para Linux com suporte para mail, RSS, notes, etc. É necessário descarregar a partir daqui: http://www.opera.com/download/guide/?ver=12.16 e escolher o formato tar.bz2.
É necessário fazer o download, extrair e instalar



Trobleshooting - Resolução de Problemas

Nesta secção ficam os problemas detetados e, com sorte, a forma de os resolver.

dmenu [Alt+F3]

O menu dinâmico dmenu fornecido pelo pacote suckless-tools fica vazio com o jessie. Para resolver, alterar o ~/.config/dmenu/dmenu-bind.sh para:
nano ~/.config/dmenu/dmenu-bind.sh
exe=`dmenu_path | dmenu_run -b -nb '#151617' -nf '#d8d8d8' -sb '#d8d8d8' -sf '#151617'` && eval "exec $exe"

Opera 12.16 vs Opera 26

A utilização de ambas as versões do opera permitem que toda a gestão de correio, RSS, notas e afins possa ser feita no Opera 12.16 e o resto da navegação com o opera 26.

As configurações do opera 12.16 podem ser efetuadas aquando da instalação a partir do tar.bz2 e, por defeito as configurações (ficheiros, mailboxes, etc) estariam em ~/.opera/ e é aí que também pode ser instalado o programa, podendo ser executado a partir de ~/.opera/bin/opera. Fica assim tudo o que diz respeito ao opera 12.16 restrito à pasta ~/.opera.

As configurações das novas versões do opera agora seguem o standard e ficam em: ~/.config/opera.

Também é possível instalar a versão beta que guarda as definições em ~/config/opera-beta e não gera conflitos com as restantes versões.

Update: Atualmente utilizo as três versões: opera 12.16 para mail, RSS, notas e afins; opera-beta para grande parte da navegação; e opera stable 26 para outra navegação independente.

Aplicações gtk3 com aspeto muito feio

A atualização do software implica que as versões mais recentes de muitos programas utilizem o gtk3, que tem um aspeto muito feio neste setup.
É possível instalar os temas do gnome-themes-standard:
sudo apt-get install gnome-themes-standard

E ativar o Adwaita ou então instalar o tema Adwaita-Dark (que suporta gtk2 e gtk3) a partir daqui [4], descompactar e mover para /usr/share/themes e depois indicar o tema a utilizar pelas aplicações gtk3 em:
nano ~/.config/gtk-3.0/settings.ini
[Settings]
gtk-theme-name=Adwaita-Dark
...

HP 1510 - scan e impressão

A HP recomenda a instalação da versão HPLIP 3.13.8 (para debian wheezy 7.6) e nos repositórios da jessie está a versão:
apt-cache show hplip
Package: hplip
Source: hplip (3.14.6-1)
Version: 3.14.6-1+b2

Assim, resta instalar e utilizar:
sudo apt-get install hplip hplip-gui

Por defeito o utilizador pertence ao grupo scanner:
groups
utilizador: utilizador cdrom floppy sudo audio dip video plugdev fuse scanner bluetooth netdev 

Deve adicionar-se também o grupo lp ao utilizador e depois fazer logout para que seja assumido o novo grupo.
sudo adduser utilizador lp




[1] - zyx @ CrunchBang Linux Forums - [SOLVED] Upgrading to "testing" + #! repo

http://crunchbang.com/forums/viewtopic.php?id=11990

[2] - thevdude @ CrunchBang Linux Forums - HOW-TO Upgrading from #!Stable to #!Testing
http://crunchbang.org/forums/viewtopic.php?id=15249&p=1

[3] - Admin @ Linux Support: How-to Guides, Tips, and News - To Do List After installing Crunchbang Stable Debian Linux OS
https://debianhelp.wordpress.com/2012/10/02/crunchbang-11-waldorf-debian-wheezy-os/

[4] - Tema Adwaita-Dark de Iki Shamuayka @ xfce-look.org
http://xfce-look.org/content/show.php/Adwaita-Dark?content=148170

quinta-feira, 27 de novembro de 2014

rsyslogd em openVZ utiliza 100% de CPU

Num contentor openVZ do ubuntu 14.04 o processo do rsyslogd pode ocupar 100% de CPU.

A solução passa por aceder ao container que contém o processo problemático:
vzctl enter 101

Parar o serviço:
service rsyslog stop

Alterar a configuração do rsyslog:
sed -i -e 's/^\$ModLoad imklog/#\$ModLoad imklog/g' /etc/rsyslog.conf

Arrancar o serviço novamente:
service rsyslog start

Após este procedimento o processo já comporta normalmente.

[1] - Ron Fish @ Turnkey Linux forums - rsyslog spinning CPU on openvz
http://www.turnkeylinux.org/forum/support/20131211/rsyslog-spinning-cpu-openvz

Recuperar um array RAID degradado - mdadm

Num servidor que usa mdadm para utilizar RAID por software foi detetada uma inconsistência no array e foram enviadas duas mensagens automáticas (uma para cada volume do array /dev/md0 e /dev/md1) em tudo semelhantes:
This is an automatically generated mail message from mdadm
running on vs0

A DegradedArray event had been detected on md device /dev/md/0.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [raid1] 
md1 : active raid1 sda2[2]
      976236408 blocks super 1.2 [2/1] [U_]

md0 : active raid1 sda1[2]
      523252 blocks super 1.2 [2/1] [U_]

unused devices:

Ou seja, /proc/mdstat indica que ambos os volumes estão "degraded":
[U_] - indica que uma drive está OK U e outra degradada _ (em caso de falha seria apresentado F)

Mais informações:
mdadm --detail /dev/md0
     Raid Level : raid1
     Array Size : 523252 (511.07 MiB 535.81 MB)
  Used Dev Size : 523252 (511.07 MiB 535.81 MB)
   Raid Devices : 2
  Total Devices : 1
    Persistence : Superblock is persistent

    Update Time : Thu Nov 27 09:38:27 2014
          State : clean, degraded 
 Active Devices : 1
Working Devices : 1
 Failed Devices : 0
  Spare Devices : 0

           Name : vs0:0  (local to host vs0)
           UUID : b053cdfd:6e0a2b48:f10dcc45:23fdc34a
         Events : 185

    Number   Major   Minor   RaidDevice State
       2       8        1        0      active sync   /dev/sda1
       1       0        0        1      removed

Pela informação, a unidade que está ativa é apenas /dev/sda: /dev/sda1 no volume /dev/md0 e /dev/sda2 no volume /dev/md1.
Assim, importa perceber o que se passa com a segunda unidade do array: /dev/sdb.

Utilizar as ferramentas de SMART

A ferramenta smartctl permite obter diversas informações de discos com SMART e efeturar testes.

Para verificar a saúde de uma unidade:
smartctl -H /dev/sdb
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-33-pve] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF READ SMART DATA SECTION ===
SMART overall-health self-assessment test result: PASSED

Teste rápido da unidade:
smartctl --test=short /dev/sdb
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-33-pve] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Short self-test routine immediately in off-line mode".
Drive command "Execute SMART Short self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 2 minutes for test to complete.
Test will complete after Thu Nov 27 10:28:19 2014

Use smartctl -X to abort test.

A unidade fica a efetuar o teste rápido autonomamente  (cerca de 1 minuto).

Para ver o histórico dos testes à drive:
smartctl -a /dev/sdb
(...)
SMART Error Log Version: 1
No Errors Logged

SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Short offline       Completed without error       00%     18225         -
(...)

Teste longo da unidade:
smartctl --test=long /dev/sdb
smartctl 5.41 2011-06-09 r3365 [x86_64-linux-2.6.32-33-pve] (local build)
Copyright (C) 2002-11 by Bruce Allen, http://smartmontools.sourceforge.net

=== START OF OFFLINE IMMEDIATE AND SELF-TEST SECTION ===
Sending command: "Execute SMART Extended self-test routine immediately in off-line mode".
Drive command "Execute SMART Extended self-test routine immediately in off-line mode" successful.
Testing has begun.
Please wait 164 minutes for test to complete.
Test will complete after Thu Nov 27 13:15:45 2014

A unidade fica a efetuar o teste rápido autonomamente  (cerca de 1 minuto).

Para ver o histórico dos testes à drive:
smartctl -a /dev/sdb
SMART Self-test log structure revision number 1
Num  Test_Description    Status                  Remaining  LifeTime(hours)  LBA_of_first_error
# 1  Extended offline    Completed without error       00%     18228         -
# 2  Short offline       Completed without error       00%     18225         -

Se o disco está OK, vamos reconstruir o array.

Reconstruir o Array

Se /dev/sdb1/dev/sdb2 ainda estiverem no array é possível provocar a falha:
mdadm /dev/md0 -f /dev/sdb1
mdadm /dev/md0 -f /dev/sdb2

E depois removê-los do array:
mdadm /dev/md0 -r /dev/sdb1
mdadm /dev/md0 -r /dev/sdb2

Como já estavam removidos do array, é possível colocar a zero o superbloco de cada uma das partições:
mdadm --zero-superblock /dev/sdb1
mdadm --zero-superblock /dev/sdb2

Para os voltar a adicionar ao array:
mdadm --manage -a /dev/md0 /dev/sdb1
mdadm --manage -a /dev/md1 /dev/sdb2

Para ver a evolução da reconstrução do array:
cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sdb2[3] sda2[2]
      976236408 blocks super 1.2 [2/1] [U_]
      [>....................]  recovery =  0.2% (2303296/976236408) finish=169.1min speed=95970K/sec
      
md0 : active raid1 sdb1[3] sda1[2]
      523252 blocks super 1.2 [2/2] [UU]
      
unused devices:

A reconstrução do volume /dev/md0 é muito rápida porque é uma partição pequena.
Já a reconstrução do volumae /dev/md1 é mais demorada.

Após a reconstrução com sucesso é possível observar o estado do array:
cat /proc/mdstat 
Personalities : [raid1] 
md1 : active raid1 sdb2[3] sda2[2]
      976236408 blocks super 1.2 [2/2] [UU]
      
md0 : active raid1 sdb1[3] sda1[2]
      523252 blocks super 1.2 [2/2] [UU]
      
unused devices:

Referências utilizadas:

[1] - Marius Ducea @ MDLog:/sysadmin - Mdadm Cheat Sheet
http://www.ducea.com/2009/03/08/mdadm-cheat-sheet/

[2] - Thomas Niedermeier @ Thomas Krenn - Mdadm recover degraded array
http://www.thomas-krenn.com/en/wiki/Mdadm_recover_degraded_Array

[3] - Vincent Danen @ TechRepublic - Using smartctl to get SMART status information on your hard drives
http://www.techrepublic.com/blog/linux-and-open-source/using-smartctl-to-get-smart-status-information-on-your-hard-drives/

[4] - fjgaude @ ubuntu forums - [SOLVED] Repair Degraded Raid 5 w/ mdadm
http://ubuntuforums.org/showthread.php?t=1293780

sábado, 15 de novembro de 2014

Instalar debian stable a partir do disco

Pretendia reanimar um velho PC que não arranca por USB.

Uma solução para arrancar a instalação é copiar o kernel e ramdisk de instalação e configurar o grub para os utilizar.
Para fazer isto, utilizei um velho CD debian etch (versão 4.0r3) para instalar uma base mínima e assim ter acesso à configuração do grub.

O projeto vai mantendo sempre informação muito pertinente e aqui https://www.debian.org/releases/stable/i386/ch04s04.html.en é possível obter mais informações sobre o arranque da instalação pelo disco.

Após arrancar no novo sistema, foi necessário criar uma pasta e obter os ficheiros necessários a partir de aqui http://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/

mkdir /boot/newinstall

cd /boot/newinstall

wget http://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/initrd.gz

wget http://ftp.debian.org/debian/dists/stable/main/installer-i386/current/images/netboot/debian-installer/i386/linux

Aqui https://www.debian.org/releases/stable/i386/ch05s01.html.en#boot-initrd é possível obter informações sobre a configuração do grub para arranque.
No meu caso, o debian etch ainda utiliza o grub1, pelo que é necessário configurar o ficheiro /boot/grub/menu.lst com o seguinte:
title  New Install
root   (hd0,0)
kernel /boot/newinstall/vmlinuz
initrd /boot/newinstall/initrd.gz

Caso fosse uma distribuição com grub2, no ficheiro /boot/grub/grub.cfg é possível acrescenter:
menuentry 'New Install' {
insmod part_msdos
insmod ext2
set root='(hd0,msdos1)'
linux /boot/newinstall/linux
initrd /boot/newinstall/initrd.gz
}

Basta reiniciar, escolher a opção do grub e a instalação começa!