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!

segunda-feira, 6 de outubro de 2014

Bash: hosts ativos


arp-scan --interface=eth0 192.168.0.0/24 | grep 192. | sort -n | uniq -w 15 | wc -l

  • Listar máquinas ativas
arp-scan --interface=eth0 192.168.0.0/24
  • Apresentar apenas as linhas que contenham "192."
 grep 192.
  • Ordenar
 sort -n
  • Apresentar apenas linhas únicas (sem IP repetido => primeiros 15 caracteres únicos)
uniq -w 15
  •  Contar as linhas (seja IP's únicos)
wc -l

sexta-feira, 5 de setembro de 2014

Terminar Sessões Remotas em W2K3

Para listar as sessões de ambiente remoto num servidor windows 2003 server executar na linha de comandos:
> qwinsta

Serão depois listadas as sessões ativas e a indicação do ID de cada uma.

Para terminar sessões basta executar o comando rwinsta seguido do ID da sessão, normalmente 1 ou 2:
> rwinsta 1

domingo, 8 de junho de 2014

CrunchBang 11 waldorf - LiveUSB Persistente

A utilização de um sistema operativo persistente numa pen drive USB permite executar o sistema operativo em diferentes computadores e guardar todas as alterações efetuadas ao mesmo na mesma pen drive.

No caso do CrunchBang existem também diversos guias mas para versões diferentes ou então com métodos que me pareceram menos óbvios. Assim, e após muitas pesquisas e análises encontrei este guia [1] que contém informação importantíssima, nomeadamente a indicação que o CrunchBang utiliza um sistema antigo do Debian Live (que serve de base ao ambiente live do CrunchBang) e, assim, a documentação oficial do projeto Debian Live [2] não é suportada pelo CrunchBang.

Setup da Pen

Criar as partições necessárias

Serão utilizadas duas partições:
  1. A primeira partição será ext2 com a label persistence e que terá todo o espaço disponível na pen subtraindo o espaço necessário para gravar o ISO.
  2. A segunda partição ext2 e com espaço para gravar o ISO.

Atenção ao caminho do device da pen!

$ sudo fdisk /dev/sdX
n - criar nova partição
p - partição primária
0 - início da partição
+3GB - espaço a ocupar
a - ativar flag de boot para poder arrancar por pen
n - criar nova partição
p - partição primária
[enter] - aceitar início da partição (setor a seguir ao último da anterior)
[enter] - aceitar final da partição (último setor do volume)
w - escrever as alterações a tabela de partições
q - sair

Escrever ISO do CrunchBang para a segunda partição

Caso a segunda partição esteja montada deve ser desmontada antes de se escrever o ISO.

Atenção ao caminho do device da pen!

$ dd if=crunchbang-11-20130506-amd64.iso of=/dev/sdX2; sync
1513472+0 records in
1513472+0 records out
774897664 bytes (775 MB) copied, 359.334 s, 2.2 MB/s


Criar o filesystem para a persistência


Atenção ao caminho do device da pen!

$ mkfs.ext2 -L persistence /dev/sdX1

Configurar a persistência

Há várias hipóteses de configuração da persistência da informação e tal tem que ser feito no ficheiro live-persistence.conf (porque o CrunchBang utiliza uma versão antiga do debian live, senão seria o ficheiro persistence.conf como é documentado oficialmente) na raiz da primeira partição (designada de persistence). Assim, é necessário montar esta partição para que se possa criar e editar o ficheiro.

Persistência Total
Neste caso todos os ficheiros que são alterados ou criados são copiados e guardados na pen. É possível atualizar o sistema, instalar outros programas e alterar configurações e manter tudo isso na pen. Para tal, o ficheiro live-persistence.conf deverá ter apenas uma linha com:
/        union

Persistência Parcial
Se não for pretendido guardar toda a informação é possível definir apenas as definições dos utilizadores e indicar apenas a pasta /home para persistência.

No exemplo seguinte, o ficheiro live-persistence.conf as pastas /home e /opt serão montadas com a opção bind (que é a opção por defeito e pode ficar apenas com o caminho da pasta) pois no ISO não existem informações dos novos utilizadores que serão criados nem software instalado em /opt (esta é uma opção minha, explicada mais à frente na Instalação de Software).
A pasta /boot/grub também será montada desta forma pois é lá que se encontra o grub.cfg responsável pelo arranque da pen (será explicado de seguida em Instalar e Configurar o GRUB) e que assim poderá ser editado facilmente também a partir do sistema persistente.
A opção de montagem das restantes pastas é union que faz a reunião (em tudo análogo à reunião da teoria de conjuntos na matemática) dos ficheiros existentes no ISO com os que ficam na pen nas mesmas pastas, poupando-se assim bastante espaço na pen, pois apenas ficam guardados os novos ficheiros ou os que forem alterados.

/home
/opt
/boot/grub
/etc union
/usr union
/var union
/bin union
/sbin union


Tudo o que for guardado fora destes locais será descartado quando o computador for desligado ao reiniciado.

Nota: Até agora não foi necessário incluir outras pastas, mas com instalações de mais software é provável que seja necessário acrescentar ao live-persistence.conf as pastas /lib, /lib32 ou /lib64 como union.
Também será óbvio que caso sejam configurados serviços ou programas que necessitem guardar informação noutras pastas, as mesmas sejam acrescentadas, por exemplo: /srv ou /root.

Instalar e Configurar o GRUB

A partir deste momento é necessário instalar o GRUB e configurá-lo para que a pen possa arrancar em modo persistente ou efetuar um arranque live.

A documentação relativa ao GRUB2 (1.99) existente na comunidade ubuntu [3] e do dedoimedo [4]. ajuda muito na configuração do GRUB.

Outra ajuda está no ficheiro ISO do CrunchBang em /isolinux/live.cfg.

As opções para o boot de persistência e a forma de funcionamento estão no projeto debian live [2].


Atenção ao caminho do device da pen!


$ grub-install --force --no-floppy --root-directory=/media/persistence /dev/sdX
$ nano /media/persistence/boot/grub/grub.cfg
set timeout=5
set default=0

menuentry "#! 11 - waldorf 64bits - Persistence" {
  linux (hd0,2)/live/vmlinuz boot=live config persistence
  initrd (hd0,2)/live/initrd.img
}

menuentry "#! 11 - waldorf 64bits - Live" {
  linux (hd0,2)/live/vmlinuz boot=live config            
  initrd (hd0,2)/live/initrd.img
}

Nota: Ainda falta confirmar se a partir do sistema live da pen dá para fazer uma instalação limpa num computador.

Configuração do ambiente com persistência

Gestão de utilizadores

É conveniente criar um novo utilizador pois por defeito o ambiente live do CrunchBang permite autologin do utilizador crunchbang e cuja password é live.

Acrescentar o utilizador user e fazer dele colocá-lo como sudoer:
$ sudo adduser user
$ sudo adduser user sudo

Acrescentar uma password à conta de root:
$ sudo su
$ passwd

Remover o utilizador crunchbang (depois de ter trocado para o utilizador criado anteriormente):
$ sudo deluser crunchbang

Para desativar o autologin e alterar o utilizador por defeito é necessário ir a System > User Login Settings e alterar conforme o pretendido.

Teclado

Para definir o teclado português é necessário alterar o ficheiro /etc/default/keyboard e depois reiniciar o computador ou então executar o comando udevadm.
$  sudo nano /etc/default/keyboard
...
XKBLAYOUT=pt
...


$ sudo udevadm trigger --subsystem-match=input --action=change


 Atualização do sistema

$ sudo apt-get update
$ sudo apt-get upgrade


Instalação de software

A instalação de software através de apt-get install irá acrescentar informação à pen, normalmente nas pastas /usr e /var.

Caso se pretenda instalar software extra que não está nos repositórios ou versões mais atualizadas destes é possível instalá-los manualmente em /opt, o que também irá ocupar espaço na pen.

Dúvidas, Problemas e Pensamentos

Depois deste setup não tive ainda grandes problemas, mas deverão surgir com uma utilização do persistente mais intensiva...

De futuro falta garantir que a utilização do ambiente live da pen permite instalar fisicamente uma nova máquina com o crunchbang.

Falta ainda saber se a adição de mais software necessitará da utilização persistente de mais pastas (/lib e afins) na pen.

Referências e Hiperligações


domingo, 20 de abril de 2014

ubuntu server 14.04 LTS + miniDLNA 1.1.2

Instalação do serviço MiniDLNA numa máquina virtual com ubuntu server 14.04 LTS 64bits.

0. Index

1. Instalar MiniDLNA
2. Configurar o MiniDLNA
3. Utilizar o serviço MiniDLNA
4. Outras opções

1. Instalar MiniDLNA

1.1. Descarregar código-fonte


$ tar zxvf minidlna-1.1.2.tar.gz
$ cd minidlna-1.1.2

1.2. Compilar em ubuntu server 14.04 LTS 64 bits

  • Instalar pacotes para compilação:

# apt-get install autoconf autopoint gcc make gettext


  • Criar ficheiros de configuração para a compilação:
$ sh autogen.sh


  • Instalar dependências necessárias para a compilação:
# apt-get install libavcodec-dev libavformat-dev libavutil-dev libjpeg-dev libsqlite3-dev libexif-dev libid3tag0-dev libogg-dev libvorbis-dev libflac-dev

  • Compilar:
$ ./configure
$ make
$ make install


1.3. Copiar ficheiros necessários

  • Copiar binário do serviço:
# cp minidlnad /usr/local/sbin/

  • Copiar script do serviço e configurar o arranque automático com o sistema:
# cp linux/minidlna.init.d.script /etc/init.d/minidlna
# chmod 755 /etc/init.d/minidlna
# update-rc.d minidlna defaults

  • Copiar ficheiro de configuração:
# cp minidlna.conf /etc/

2. Configurar o MiniDLNA

O ficheiro de configuração /etc/minidlna.conf permite especificar o funcionamento do serviço, devendo ser personalizado:
  • Localização da base de dados relativa aos ficheiros e localização do log:
db_dir=/var/cache/minidlna
log_dir=/var/log

  • Modo automático de descoberta de ficheiros e o tempo para descoberta:
inotify=yes
notify_interval=30

  • Pastas a partilhar (é possível especificar diferentes pastas para diferentes tipos de media, conforme é explicado no próprio ficheiro de configuração):
media_dir=/srv/media

  • Nome do servidor na rede
friendly_name=DLNA Server

3. Utilizar o serviço MiniDLNA

Após a instalação e configuração é possível arrancar o serviço com:
# service minidlna start

O primeiro arranque irá demorar algum tempo até estar concluída a indexação dos ficheiros existentes, é possível acompanhar o desempenho através do comando top e esperando que o minidlna deixe de ocupar o processador de forma intensiva.

Após a indexação é possível aceder ao serviço nos dispositivos com suporte para DLNA.

4. Outras opções

  • Para reiniciar o serviço:
# service minidlna restart

  • Para reconstruir a base de dados:
# service minidlna stop
# minidlna -R
# service minidlna start

sábado, 8 de março de 2014

Plotter de Corte: Silhouette Portrait em Linux

Plotter de Corte

Uma plotter de corte permite cortar diversos materiais: tecido, papel, vinil, cartão, etc. E pode assumir a forma de uma impressora que, em vez de ter tinteiros para imprimir, tem apenas uma lâmina de corte ajustável.

Possuem diversas características como: materiais passíveis de serem cortados, largura máxima suportada, comprimento máximo suportado, etc.

A Silhouette Portrait é uma plotter de corte básica (corta apenas até 21cm de largura) com ligação USB e que funciona muito bem em Linux.

Existem outras alternativas, até mais baratas, mas que têm subjacentes modelos de negócio fechados e/ou focados apenas em sistemas operativos fechados (Windows ou Mac).

Por exemplo, muitas não permitem que sejam utilizados SVG criados pelos utilizadores, pelo que são muito limitadas no tipo de formas que podem cortar pois é necessário que os utilizadores comprem "moldes" digitais (no fundo ficheiros vetoriais) em sites oficiais para que a plotter os possa depois executar (estranhíssimo ecossistema, mas de certo muito rentável para as marcas).

Como a Silhouette Portrait pode ser comandada por software open source com suporte para SVG torna-se a solução ideal para dar largas à imaginação!

Software

0. CrunchBang Waldorf - Sistema operativo baseado em Debian com interface gráfica muito leve providenciada por OpenBox, conky e tint2.

1. Inkscape - para edição vetorial dos cortes a fazer.
Tudo deve ser convertido em paths (caminhos), incluindo as letras.
Os bitmaps podem ser facilmente vetorizados pelo Inkscape, com resultados variáveis.
No final basta guardar o desenho como SVG, tendo em atenção o tamanho do desenho e o tamanho do material a cortar.

2. Robocut - ferramenta que carrega ficheiros SVG e opera a plotter de corte.
É necessário descarregar o código fonte e compilar, mas é muito fácil de cumprir em 4 ou 5 passos.
A aplicação carrega o ficheiro SVG do Inkscape e permite cortar selecionando o tipo de material e os valores de velocidade e pressão a serem utilizados.
Na aplicação dá para ver os cortes que serão feitos (quando são vários aparecem multicoloridos) e dá para ver uma animação de como serão feitos os cortes para confirmar se está tudo bem.
Na interface não indica nada sobre a plotter, mas o que é certo é que funciona direitinho sem problemas.

3. Inkcut - extensão para o inkscape que permite tratar de tudo sem sair do inkscape.
Como não funcionou direto não perdi mais tempo com ela (ainda falta testar algumas configurações para ver se dá).
Há também outra questão que se prende com a conversão do cógigo HPGL (gerado pela extensão a partir do SVG) para GPGL (que é muito parecido e converte-se apenas com algumas substituições diretas de comandos) que é usado pela plotter.
No site é indicado que a Cameo (a irmã mais velha da Portrait) é suportada.

quinta-feira, 13 de fevereiro de 2014

Acesso remoto sem utilização de passwords

Criar as chaves para o utilizador atual:
cd .ssh
ssh-keygen -t rsa -b 4096
[Não introduzir pass-phrase]
ssh-copy-id admin@192.168.1.1

No servidor criar ficheiro remote
nano ~/remote

Com o conteúdo:

# For remote control
admin ALL = NOPASSWD:ALL

Copiar o ficheiro para o host (-t para escrever a password uma última vez para execução como sudo no host):

ssh -t admin@192.168.1.1 "sudo scp admin@server.local:~/remote /etc/sudoers.d; sudo chmod 0440 /etc/sudoers.d/remote;sudo service sudo restart"

Testar
ssh -t admin@192.168.1.1 "sudo ls"

Batch:
for IP in {1..14};do ssh-copy-id admin@192.168.1."$IP";ssh -t admin@192.168.1."$IP" "sudo scp admin@server.local:~/remote /etc/sudoers.d; sudo chmod 0440 /etc/sudoers.d/remote;sudo service sudo restart"; done

Migração de Servidor GNU/Linux


rsync -rtavP -e ssh «pasta_a_mover» root@«newserver»:«pasta_de_destino»

2. Fazer o export das Bases de Dados
Para BD grandes pode utilizar-se a compressão.

3. Fazer o import dos ficheiros anteriores