fstrim ou discard no SSD?

Março 18th, 2017 by rudsonalves No comments »

Este post é apenas um pequeno update para a instalação de dispositivos SSD no GNU/Linux. Com o passar dos anos tive a oportunidade de evoluir mais minha compreensão destes dispositivos SSD no GNU/Linux, no entanto, uma vez instalado o sistema fica uma certa inércia para se questionar e mesmo se propor a fazer mudanças no que está funcionando. Como tenho mexido pouco no sistema nos últimos anos, algumas escolhas tomadas em meus textos tem se tornado obsoletas e necessitam de alguma atualização. A parte boa é que as alterações propostas aqui não fazem grandes mudanças no sistema, podendo serem realizadas sem traumas.

» Read more: fstrim ou discard no SSD?

Atheros AR9485 Slackware Current

Janeiro 10th, 2017 by rudsonalves No comments »

Não entrarei em detalhes para a instalação desta wireless, nem mesmo dedicarei tempo para entender o que de fato está acontecendo. Apenas a resolução do problema do note de um amigo para registro e suporte.

Baixe o pacote backports para a versão do kernel que está usando e compile-o com os comandos a seguir:

root@luskan:# VERSION=`uname -r`
root@luskan:# wget https://www.kernel.org/pub/linux/kernel/projects/backports/stable/v${VERSION}/backports-${VERSION}-2.tar.gz
root@luskan:# tar zxvf backports-${VERSION}-2.tar.gz 
root@luskan:# cd backports-${VERSION}-2/
root@luskan:# make defconfig-ath9k
...
root@luskan:# make install

Em seguida reinicie a máquina e tente configurar a rede wireless.

Linux no Avell B155MAX

agosto 28th, 2015 by rudsonalves 13 comments »

No terceiro trimestre de 2014 adquirir um notebook da Avell modelo Titanium B155 MAX. Embora a empresa tenha 9 anos de mercado brasileiro, para mim a Avell era uma completa desconhecida até este último ano. Seu foco é na montagem de notebooks de alto desempenho, especificamente para jogos. A avaliação de seus clientes tem sido muito boa, mas basicamente no uso com o sistema da Janela em jogos.

» Read more: Linux no Avell B155MAX

HPLip e bugs no current

agosto 26th, 2015 by rudsonalves No comments »

Se aventurar com o Slackware-current tem sempre o risco de tropeçar em alguns problemas, quando não diversos. Recentemente (21/08/2015) atualizei minha máquina com o current e dentre os problemas fique sem video (xf86-video-intel) e sem impressora, e provavelmente algum outro problema que não percebi. Mas isto faz parte de diversão e ficar próximo a linha de frente.

» Read more: HPLip e bugs no current

LibreOffice 5.0

agosto 23rd, 2015 by rudsonalves No comments »

Nesta última semana foi lançado o LibreOffice 5.0. Algumas mudanças cosméticas na interface, com botões um pouco maiores e mais e mais outras pequenas mudanças aqui e ali. Mas o grande ganho esta no desempenho, onde conseguiram deixar o código ainda mais rápido e fluido. Tenho usado por toda a semana sem problemas. Aconselho.

LibreOffice 5.0.0, MD5Sum 45a789c045899c26d1956cc2572ac54a

IRPF 2015 em Slackware

Abril 5th, 2015 by rudsonalves No comments »

Não houve muita mudança no processo de instalação do programa de declaração do imposto de renda. No entanto os programas estão um pouco mais maduros e também mudei um pouco o processo de instalação para algo mais simples.

» Read more: IRPF 2015 em Slackware

Preparar um Pendrive com FAT32 a prova de Burrice

Fevereiro 23rd, 2015 by rudsonalves 5 comments »

A muito tempo que não escrevo um script em bash e percebo que estou muito enferrujado. No entanto, depois de algumas tentativas e erros, com muitas consultas ao man e a rede, o script saiu.

A ideia deste script é eliminar um potencial acidente, a qual já me deixou sem sistema operacional e sem meus preciosos documentos, arquivos, planilhas, projetos, …, ao menos umas três vezes ao longo destes últimos 15 anos de computação. A estória somente não foi pior nas últimas ocorrências pois me tornei sistemático o suficiente para manter backups, ao menos bimestrais, nos últimos anos.

O problema vem na execução de comandos básicos como o dd e o fdisk em meros pendrives de uso geral. Procedimentos comuns que devemos fazer sempre que instalamos um sistema novo em alguma máquina, através do pendrive, ou simplesmente se deseja formatar o dispositivo. Não foi uma vez em que troquei o /dev/sdb por um /dev/sda, e neste momento o sistema foi para o saco.

Na última trágica ocasião em que isto aconteceu, me lembro que estava do meio para o final do semestre na universidade, e perdi notas de provas, de trabalhos e outras atividades, enquanto que o meu backup mais recente datava de quase um ano atrás.

Na ocasião fui obrigado a aprender a utilizar o TestDisk para recuperar as informações perdidas do disco rígido recém particionado/formatado e felizmente recuperei a maior parte das informações primordiais. Na ocasião, até pensei em fazer um tutorial a respeito do processo, no entanto o desespero para a recuperação dos dados foi tamanho que achei mais conveniente concentrar minha minha atenção em recuperar os dados, deixando o texto para uma outra ocasião. O TestDisk está anotado em minha lista de futuros artigos.

A intenção deste texto não é ser um texto de orientação a criação de bash scripts, mas apenas documentar uma experiencia em tentar tornar o uso do sistema menos destrutivo, em tarefas básicas.

A Ideia do Script

A ideia do script é que este seja inteligente o suficiente para impedir que erros tolos, como formatar um disco em uso não ocorram. Para isto tracei as seguintes premissas para o script:

  • Não particionar/formatar dispositivos com partições montadas;
  • Não particionar/formatar discos definidos como disco de sistema.

A primeira premissa é feita na linha 18, onde os dispositivos montados são listados na variável MOUNTEDDEVS, através de uma consulta ao comando df.

Quanto à segunda premissa, havia a possibilidade de consultar o arquivo /etc/fstab. Mas devido a possibilidade do uso dos códigos UUID para indicar as partições dos disco, o que virou padrão na maioria das distribuições, optei por adicionar os disco do sistema em uma variável, SYSDEVICES, como dispositivos reservados para o sistema. Esta variável esta definida na linha 20 com os dispositivos sda e sdb, que são os dois discos que compõem o meu sistema.

Como medida de segurança adicional, o aplicativo apenas formata os discos do sistema se estes estiverem desmontados e a opção --force for passada para o script.

Como particionamento/formatação de um dispositivo é algo muito destrutivo, o script ainda irá pedir uma confirmação antes de executar os comandos, linha 88.

O dispositivo a ser particionado/formatado pode ser passado como parâmetro com a opção -d <device>. Se este não for passado, o último dispositivo conectado a uma das portas USB será selecionado com uma consulta nas últimas linhas do comando dmesg, linha 48.

Adicionei ainda: uma opção de warning, -w, para simular os comandos sem de executá-los; uma opção para adicionar um label para o dispositivo, -n; além do help do script, -h.

O script completo segue abaixo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
#!/bin/bash 
#
# Create a new FAT32 partition on the stick and write a FAT32 
# filesystem on it.
#
 
function help()
{
    echo "Use: # `basename $0` [options]:"
    echo "    Where:"
    echo "        -d <device = sda, sdb, sdc, ...>"
    echo "        -n <device name = string>"
    echo "        --force (to force format of SYSDEVICES)"
    echo "        -w (warning mode. Don't format)"
    echo "        -h for help"
}
 
MOUNTEDDEVS=`df -h | grep '^\/dev\/sd[a-z]' | cut -c-8 | sort | uniq | cut -c6-`
FORCE=false
SYSDEVICES="sda sdb"
WARN=false
 
while [ ! -z $1 ]; do
    case $1 in
        '-d')
            DEV=$2
            shift
            ;;
        '-n')
            DEVNAME=$2
            shift
            ;;
        '--force')
            FORCE=true
            ;;
        '-w')
            WARN=true
            ;;
        '-h'|*)
            help
            exit 0
            ;;
    esac
    shift
done
 
if [ -z "$DEV" ]; then
    DEV=`dmesg | tail | grep '\[.*\] *sd[bcdefg]' | rev | cut -d" " -f1 | rev | tr -d ':0123456789' | head -n1`
fi
 
if [ -z "$DEVNAME" ]; then
    DEVNAME="USBDisk"
fi
 
echo -n "Check by mounted devices: "
for dev in $MOUNTEDDEVS; do
    if [ "$dev" == "$DEV" ]; then
        # Abort format of mounted devices
        echo "mounted..."
        echo "Device /dev/$DEV is in use. To format it you need umount all partitions this device before."
        df -h | grep "^\/dev\/$DEV"
        exit 0
    fi
done
echo "Device isn't mounted..."
 
echo -n "Check by System devices: "
SYSDEV=false
for dev in $SYSDEVICES; do
    if [ "$dev" == "$DEV" ]; then
        SYSDEV=true
        if $FORCE; then
            echo "Is a system device, but forced enable..."
            break
        fi
        echo -e "Is a system device...\n"
        echo "Use --force option to format a system device, or edit SYSDEVICES variable in this script."
        exit 0
    fi
done
if ! $SYSDEV; then
    echo "Is not a system device..."
fi
 
echo -ne "\nFormat device /dev/${DEV} with name ${DEVNAME} (y/N)? "
read ANS
 
if [ "$ANS" != "Y" -a "$ANS" != "y" ]; then
    exit 0
fi
 
echo -e "\nClear first 10MB..."
if $WARN; then
    echo "dd if=/dev/zero of=/dev/$DEV bs=1M count=10"
else
    dd if=/dev/zero of=/dev/$DEV bs=1M count=10
fi
 
echo -e "\nRemove partitions in device /dev/${DEV} ..."
 
if $WARN; then
    echo "fdisk /dev/$DEV <<EOF
n
p
1
 
 
t
b
w
EOF"
 
else
    fdisk /dev/$DEV <<EOF
n
p
1
 
 
t
b
w
EOF
fi
 
echo -e "\nFormat device /dev/${DEV}1 with FAT32 filesystem..."
if $WARN; then
    echo "mkdosfs -n ${DEVNAME} -F32 /dev/${DEV}1"
else
    mkdosfs -n ${DEVNAME} -F32 /dev/${DEV}1
fi

Uso do Script

Chamei o script de usbfat32, uma vez que no momento é um script especializado para formatar dispositivos USB em FAT32. Mas é possível que adiante estenda a ideia. As linhas a seguir mostram alguns exemplos de uso:

Limpa a tabela de partição do dispositivo /dev/sdc, formata em FAT32 e configura o nome do dispositivo para ‘Alves’:

root@luskan:# usbfat32 -d sdc -n Alves

LibreOffice e o TexMaths

outubro 26th, 2014 by rudsonalves No comments »

A algum tempo atrás encontrei uma extensão fantástica para escrever equações no Libreoffice, o TexMaths. O projeto está no Sourceforge, como aponta o link atrás.

O TexMaths é um addon para o LibreOffice, com objetivo de prover suporte ao LaTeX no LibreOffice. Desta forma equações em LaTeX podem ser inseridas como imagens SVG ou PNG, enquanto que o código LaTeX é salvo juntamente com o seu texto para futuras alterações.

» Read more: LibreOffice e o TexMaths

LibreOffice sem caracteres gregos minúsculos

agosto 12th, 2014 by rudsonalves No comments »

Recentemente reparei que o LibreOffice havia perdido os caracteres gregos minúsculos no editor de equações. Falo dos caracteres gerados pelos códigos: %pi, %theta, %gamma, e muitos outros, que nas últimas versões simplesmente desapareceram.

Me parece ser um bug recorrente a algumas versões do LibreOffice, mas como havia algum tempo que não editava com tais caracteres, não havia percebido.

A correção felizmente é simples. Basta copiar o arquivo /opt/libreoffice${VERSION}/program/resource/smen-US.res para os sm{LANG}.res que os caracteres gregos minúsculos no editor de equações voltam a funcionar.

Segundo a discussão no Libreoffice-bugs, a resolução funciona bem para todas as línguas.

Acabei de atualizar meus scripts para incluir a correção. Em alguns minutos deve estar disponíveis na rede. No momento estou colocando o novo pacote do libreoffice-4.3.0_pt_BR-x86_64-2.txz no repositório para download.

Fixar a Tamanho do Konsole, Dolphin, …

outubro 31st, 2013 by rudsonalves No comments »

Para quem usa muito o terminal os constantes redimensionamentos deste pode se tornar um incômodo. Nem sempre me lembro de restaurar o terminal a sua dimensão original antes de fechá-lo e em muitos casos necessito redimensioná-lo para usos específicos o que me leva a uma restauração manual do tamanho da janela.

O resultado disto é que ao reabrir o terminal este nunca reabre com as mesmas dimensões que havia iniciado a última seção, forçando mais redimensionamento manual.

» Read more: Fixar a Tamanho do Konsole, Dolphin, …