Programação e Linux.

sexta-feira, 19 de junho de 2009

Ubuntu 9.04: Alinhando o Sistema de Arquivos com o Tamanho do erase block do SSD

Lendo sobre outras idéias na internet, eu estava otimizando o meu netbook e sem querer removi alguns arquivos importantes, então resolvi jogar tudo fora e instalar o Ubuntu 9.04 Netbook Remix, otimizando-o desde o início. Diferente do post anterior, não farei um howto completo, postarei aos poucos o que eu achar relevante.

A primeira otimização que pode ser feita antes de instalar o sistema é alinhar sistema de arquivos com o tamanho do erase block do SSD.

Na verdade eu não sei qual o tamanho do erase block do Eee PC 701 4G, mas em geral é um entre 16/32/64/128/256/512KB, usa-se tamanhos maiores para discos maiores, acredito que seja entre 16 e 32, mas sendo pessimista, vou usar 128KB para meu eee pc o que vai fazer com que eu perca alguns megabytes de espaço.

Antes de iniciar o instalador, abra um terminal e faça:

fdisk -H 224 -S 56 /dev/sda

Se preferir, use o cfdisk:

cfdisk -h 224 -s 56 /dev/sda

Faça no mínimo 2 partições, pois a primeira partição não pode ser alinhada, então usaremos uma partição que não sofre muitas alterações como /boot. Eu fiz 3 partições, /boot, / e /home.

Depois edite o /etc/mk2fs.conf e deixe a sessão default como esta:

[defaults]
base_features = sparse_super,filetype,resize_inode,dir_index,ext_attr
blocksize = 4096
inode_size = 256
inode_ratio = 16384
stripe-width=32

Note: 32 * 4096 = 128k

Agora inicie a instalação normalmente, quando aparecer o particionador de discos, escolha o particionamento manual.

Diferente do feito com o ubuntu 8.10, desta vez vou usar o ext4 sem journal (ext4 sem journal é mais rápido que o ext2), mas por conta do kernel do Ubuntu 9.04 ser menor que o 2.6.29, não é possível montar um ext4 sem journal, então vamos remover o journal após a instalação.

Para cada partição (sda1, sda2 e sda3) clique em editar, escolha como sistema de arquivos o ext4, selecione a opção formatar e defina o ponto de montagem corretamente para cada uma.

Após a instalação, instale um kernel igual ou maior que o 2.6.29, eles podem ser obtidos aqui: http://kernel.ubuntu.com/~kernel-ppa/mainline/, até o presente momento deste artigo, o último disponível é o 2.6.30.

wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30/linux-headers-2.6.30-020630-generic_2.6.30-020630_i386.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30/linux-image-2.6.30-020630-generic_2.6.30-020630_i386.deb
wget http://kernel.ubuntu.com/~kernel-ppa/mainline/v2.6.30/linux-headers-2.6.30-020630_2.6.30-020630_all.deb
sudo dpkg -i linux-image-2.6.30-020630-generic_2.6.30-020630_i386.deb linux-headers-2.6.30-020630-generic_2.6.30-020630_i386.deb linux-headers-2.6.30-020630_2.6.30-020630_all.deb

Reinicie seu netbook para saber se está tudo ok.

Agora vamos remover o journal, mas antes, devido a um bug no blkid (não reconhece partições ext4 sem journal), precisamos deixar de usar os UUID para identificar as partições e usar o dispositivos reais (/dev/sdXn). Abra o arquivo /etc/fstab e altere cada UUID=something para /dev/sdXn.

A mesma coisa com o /boot/grub/menu.lst, procure pela linha
# kopt=root=UUID=5632f35f-792c-4997-b22a-7fe6a7050dfe ro

Troque UUID=something pela sua partição /, e adicione rootfstype=ext4, vai ficar mais ou menos assim:

# kopt=root=/dev/sda2 ro rootfstype=ext4

Agora entre em modo single, abra um terminal e faça:
sudo init 1

No menu de recuperação, escolha a opção root - drop to shell prompt. Agora faça:
umount -a
mount / -o remount,ro

Para cada partição remova o journal, no meu caso (sda1, sda2 e sda3) fica assim:
tune2fs -O ^has_journal /dev/sda1
tune2fs -O ^has_journal /dev/sda2
tune2fs -O ^has_journal /dev/sda3

Pronto, pode reiniciar o sistema e usurfruir de um sistema de arquivos rápido e que não diminui a vida útil do seu SSD.

sexta-feira, 22 de maio de 2009

Teclado ABNT2 e VMWare

Este post é para dizer que estou de volta a ativa, comprei um notebook e não dependo mais do computador dos outros :D

Eu já enfrentei problemas por meu teclado ABNT2 não funcionar muito bem nas máquinas guests tanto no vmware player quanto no vmware workstation. A solução que achei foi criar um arquivo $HOME/.vmware/config com o seguinte conteúdo:

xkeymap.keycode.108 = 0x138 # Alt_R
xkeymap.keycode.106 = 0x135 # KP_Divide
xkeymap.keycode.104 = 0x11c # KP_Enter
xkeymap.keycode.111 = 0x148 # Up
xkeymap.keycode.116 = 0x150 # Down
xkeymap.keycode.113 = 0x14b # Left
xkeymap.keycode.114 = 0x14d # Right
xkeymap.keycode.105 = 0x11d # Control_R
xkeymap.keycode.118 = 0x152 # Insert
xkeymap.keycode.119 = 0x153 # Delete
xkeymap.keycode.110 = 0x147 # Home
xkeymap.keycode.115 = 0x14f # End
xkeymap.keycode.112 = 0x149 # Prior
xkeymap.keycode.117 = 0x151 # Next
xkeymap.keycode.78 = 0x46 # Scroll_Lock
xkeymap.keycode.127 = 0x100 # Pause
xkeymap.keycode.133 = 0x15b # Meta_L
xkeymap.keycode.134 = 0x15c # Meta_R
xkeymap.keycode.135 = 0x15d # Menu
xkeymap.keycode.97 = 0x073 # Slash

quinta-feira, 19 de fevereiro de 2009

Computador quebrado - Estou offline

Devido a um acidente (meu notebook pifou o HD), estou sem computador com linux para mexer e poder atualizar o blog. Sem computador virei um offline, ou seja, não esperem respostas de email, msn online, google talk online, etc...

sexta-feira, 23 de janeiro de 2009

Instalando ubuntu 8.10 no Asus Eee PC

Eu adoro programar para sistemas embarcadas e agora estou mexendo num Eee PC 701 (tá certo, não é um sistema embarcado como um Nokia N810 ou um set-top-box de TV digital, mas é pequeno e aberto a possibilidades). Ele vem com uma versão modificada do Xandros que não faz lá muita coisa, então resolvi fazer a experiência de instalar um Ubuntu nele para aprender um pouco mais sobre o Eee PC e tentar fazer algo legal depois.

Eu não testei o eeebuntu ou o ubuntu-eee (agora Easy Peasy) pois queria passar todas as dificuldades, como falei minha intenção é aprender (brincar) sobre o Eee PC e não usá-lo de fato.

Eu possuo um driver de CD externo USB, mas preferi não usar, resolvi instalar o Ubuntu a partir de um cartão SD (acredito que para um pendriver USB também funcionaria).

SIGA ESTAS INSTRUÇÕES SOMENTE SE VOCÊ REALMENTE SABE O QUE ESTÁ FAZENDO, EU (IURI DINIZ) NÃO POSSO SER RESPONSABILIZADO POR QUALQUER DANO TANGÍVEL OU INTANGÍVEL CAUSADO DIRETAMENTE OU INDIRETAMENTE PELAS INFORMAÇÕES AQUI CONTIDAS. AS INSTRUÇÕES AQUI CONTIDAS NÃO POSSUEM QUALQUER TIPO DE GARANTIA TANTO EXPRESSA COMO IMPLÍCITA. AS INSTRUÇÕES DEVEM FUNCIONAR PERFEITAMENTE MAS SE ELAS CAUSAREM ALGUM DANO DE QUALQUER NATUREZA NÃO É MEU PROBLEMA. A INSTALAÇÃO DE SOFTWARE NÃO AUTORIZADO PELO FABRICANTE DO EQUIPAMENTO PODE ACARRETAR NA ANULAÇÃO DE SUA GARANTIA, CONSULTE SEU MANUAL.

Criar um cartão SD/pendriver USB bootável

Como eu já possuía um CD do Ubuntu 8.10 (obrigado Canonical por enviar para minha residência) a maneira mais fácil que eu achei para transformar um cartão SD em um "CD de instalação do Ubuntu" foi usando um software do próprio livecd (use a versão 32bits do livecd).

Vá em Sistema->Administração->Create a USB startup disk
Vai aparecer a seguinte tela:
Plugue o cartão SD (ou pendriver)
Clique em Make Startup Disk e espere (vai demorar uns 30 minutos).

Bootando do cartão SD/pendriver USB

É necessário ir na BIOS do Eee PC e alterar a ordem de boot.

Para entrar no setup do Eee PC pressione F2 durante o boot
Dentro do Setup, vá para a guia Boot.

A guia Boot muda dependendo se um cartão SD está inserido ou não no Eee PC, deixe o cartão SD inserido ou a opção Hard Disk Drivers não aparecerá.
Para fazer boot a partir do cartão SD, deve-se alterar a ordem dos discos em Hard Disk Drivers, USB:USB2.0 CardReader SD0 deve figurar como 1st Drive, em seguida vá em Boot Device Priority e escolha USB:USB2.0 CardReader SD0 como 1st Boot Device.

Para fazer o boot a partir de um pendriver basta ir em Boot Device Priority e escolher Removable Dev. como 1st Boot Device.

Ajustando o ubuntu para que instalador caiba na tela

A resolução do Eee PC 701 é 800 x 480 e o instalador ultrapassa os limites da tela, então vamos fazer alguns ajustes antes de chamar o programa instalador:

Vá em Sistema->Preferências->Aparência

Desligue os efeitos indo em
Efeitos Visuais, selecionando Nenhum. Isto facilita mover janelas que por ventura não se ajustem a tela usando ALT+clique/arraste do mouse.

Em Fontes troque tudo para 8 pts
Edite os painéis para permitir ocultação, clique com o botão direito num local livre do painel superior e escolha Propriedades, selecione Mostrar botões de ocultação
Faça o mesmo para o menu inferior. Vão aparecer setas nas laterais destes painéis, pressione-as.
Chamando o instalador
Agora você pode chamar o instalador via Instalar sistema no computador
Escolha o particionamento manual
Eu escolhi deixar o mesmo tamanho das duas primeiras partições anteriores do Xandros (para fazer unionfs) e apagar as duas ultimas, resultando em 16 MB livres para reserva. Eu também escolhi deixar tudo como ext2 para não desgastar o SSD (o journaling do ext3, reiserfs e etc faz muitas gravações no disco).

Meu particionamento final ficou assim:
Agora é só mandar avançar, o instalador vai reclamar que não existe partição de swap que eu optei por não fazer afim de evitar escritas desnecessárias no SSD, sem swap o sistema não vai conseguir hibernar (suspender em disco), somente suspender em ram, mas o Xandros também não hibernava.
Na tela de adição de usuário, selecione logar automaticamente para deixar a inicialização do Eee PC mais confortável
Agora é só avançar e esperar a instalação terminar
Primeiros ajustes para minimizar as gravações no SSD
Quando a instalação terminar não reinicie ainda, deixe o instalador aberto.

Vamos alterar o fstab, abra um terminal e vire root com sudo -s -H
As partições onde o Ubuntu foi instalado permanecem montadas
Vamos alterar o arquivo /target/etc/fstab, faça nano /target/etc/fstab


Para minimizar as gravações no SSD, adicione noatime as partições ou troque relatime por noatime (as diferenças são poucas, mas eu prefiro o noatime, faça man fstab em um terminal para maiores informações)

Coloque alguns diretório com muita gravação e não muito úteis (pelo menos não para um netbook) em RAM (tmpfs), adicionando as linhas:
tmpfs /var/log tmpfs defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0
Grave o fstab (CTRL+O) e saia (CTRL+X)

Remova o blkid.tab:
rm /target/etc/blkid.tab*
ln -s /dev/null /target/etc/blkid.tab


Remova o mtab:
rm -f /target/etc/mtab
ln -s /proc/mounts /target/etc/mtab


Pronto, agora pode voltar ao instalador e escolher reiniciar.

Lembre-se de ir na BIOS e trocar a ordem de boot novamente.
Instalando um kernel customizado
O kernel padrão que vem no Intrepid não é totalmente compatível com o Eee PC, o wifi por exemplo não funciona, por isso vamos instalar o kernel do pessoal do http://www.array.org/ubuntu, abra um terminal, conecte o Eee PC a internet via rede com fios e faça:

sudo wget http://www.array.org/ubuntu/array-intrepid.list -O /etc/apt/sources.list.d/array-intrepid.list

wget http://www.array.org/ubuntu/array-apt-key.asc -O - | sudo apt-key add -

sudo apt-get update
sudo apt-get install linux-eeepc


Depois de pronto, o próprio Ubuntu vai pedir para reiniciar.
Reinicie e seu hardware vai ser reconhecido.

Ajustes para melhor aproveitamento da tela
Podemos fazer novamente os mesmos ajustes feitos na hora da instalação.

Diminuir a fonte
Vá em Sistema->Preferências->Aparência e em Fontes troque tudo para 8 pts
Deixando o painel mais compacto
O menu padrão do Ubuntu (Aplicativos/Locais/Sistema) ocupa muito espaço, clique com o botão direito do mouse nele e remova-o, no espaço vazio, clique novamente com o botão direito e escolha Adicionar ao painel... na janela que aparece selecione Menu Principal
Remova o painel inferior (botão direito, excluir este painel) e siga o procedimento anterior para adicionar Lista de janelas e Mostrar área de trabalho ao painel superior.

Ajustando o Firefox
A resolução máxima do Eee PC é 800x640 e hoje as páginas da www caminham para uma resolução 1024x768, então precisamos tanto ganhar espaço horizontal quanto vertical.

Para ganhar espaço vertical, temos que diminuir os menus do Firefox a apenas um, para isto instale a extensão tinymenu e o tema classic compact. Após instalar, clique com o botão direito no espaço livre ao ado de menu e clique em personalizar. Selecione a opção Ícones pequenos e Exibir como: Ícones. Em seguida clique e arraste cada ícone da barra logo abaixo de Menu para a barra superior, feche a janela de personalizar e clique com o botão direito na barra de navegação, agora vazia e desative-a. Agora o tema, vá em Menu->Ferramentas->Complementos, cique em Temas, escolha Classic Compact, Usar o tema, Reiniciar o Firefox.
Resultado parcial:

Para ganhar espaço horizontal, temos que que diminuir redimensionar as páginas, mas isto precisa ser feito toda hora, para definir um zoom padrão, temos que instalar a extensão NoSquint. Após instalada, use como padrão 77% para todas as páginas e você conseguirá "simular" a resolução de 1024.

Veja a página do terra com zoom 100%, o site não cabe na tela:
agora com 77%, não existem barras de rolagem horizontais:

Usar Tecla Fn+F5 para entrar em modo Fullscreen
No Xandros, a tecla Fn+F5 abria o monitor do sistema, após instalar o Ubuntu ela não faz nada, vamos alterá-la para tornar os aplicativos Fullscreen, muito mais útil na minha opinião.

Vá em Sistema->Preferências->Atalhos de teclado e procure por Gerenciador de janelas, Alternar modo de tela inteira, clique para alterar o atalho e em seguida pressione Fn+F5.


Colocar o cache do Firefox em tmpfs
Para diminuir as escritas no disco e ainda assim melhorar a velocidade do Firefox, uma boa prática é colocar todo o cache em RAM. Para fazer isto, vá ao endereço about:config, uma página vai perguntar se você deseja continuar, continue, em seguida clique com o botão direito na lista de nomes que aparecem e Nova opção->String..., use o nome browser.cache.disk.parent_directory e o valor /tmp (assumindo que tmp está montado como tmpfs, pode-se usar também /dev/shm).

Opcionalmente ainda em about:config para economizar memória (sacrificado o desempenho) faça:
  • browser.cache.disk.capacity = 8000
  • browser.cache.offline.enable = false
  • browser.cache.memory.enable = false
É bom também apagar o cache na saída do Firefox para poder limpar a RAM, vá em Editar->Preferências, clique em Privacidade, em dados pessoais selecione Limpar dados pessoais ao sair do Firefox e deixe desselecionado Perguntar antes de limpar dados pessoais, clique em Configurar e marque todas as opções.




Habilitando o escalonador de frequências
O processador quem vem no Eee PC e um Celeron M 0.9 GHz mas ele fica travado em 0.6 GHz, o uso de um escalonador de frequências permite utilizarmos o clock de 0.9 GHz do Eee PC e ainda assim economizar energia diminuindo o clock em horários de inatividade

Remova o powernowd e instale o cpufrequtils

sudo apt-get remove powernowd sudo apt-get install cpufrequtils

O módulo do escalonador de frequências do Celeron M não é detectado por padrão, faça:

sudo modprobe p4_clockmod

Para que fique ativo no boot abra o arquivo /etc/modules e adicione:

p4_clockmod
cpufreq_ondemand
cpufreq_userspace
cpufreq_stats
cpufreq_powersave
cpufreq_conservative

depois abra o arquivo /etc/default/cpufrequtils e adicione:

ENABLE="true"
GOVERNOR="ondemand"
MAX_SPEED="0"
MIN_SPEED="0"

Desta forma o escalonador ondemand vai ser usado, ele troca a frequência da CPU dinamicamente de acordo com a carga do sistema. Pode-se usar outro escalonador aqui, faça GOVERNOR="performance" para deixar a CPU no máximo.

Escalonadores de frequência diferentes quando na bateria e quando na tomada.
Pode-se fazer um script em /etc/acpi/ac.d para trocar o escalonador para performance quando conectado na tomada. Crie o arquivo /etc/acpi/ac.d/99-cpu-performance.sh com o seguinte conteúdo:

#!/bin/sh
/usr/bin/cpufreq-set -g performance


Depois faça:
sudo chmod +x /etc/acpi/ac.d/99-cpu-performance.sh

O análogo pode ser feito para usar ondemand quando conectado na bateria fazendo um script no /etc/acpi/battery.d. Crie o arquivo /etc/acpi/battery.d/99-cpu-ondemand.sh com o conteúdo:

#!/bin/sh
/usr/bin/cpufreq-set -g ondemand


Depois faça:
sudo chmod +x /etc/acpi/battery.d/99-cpu-ondemand.sh

Usando o cpufreq-applet
Outra forma é permitir a escolha da frequência de acordo com a necessidade através do applet do Gnome. Clique com o botão direito num espaço vazio da barra do Gnome e escolha adicionar ao painel, na lista escolha Monitor de Graduação de Frequência da CPU.

Ajustes no microfone, desabilitar o pulseaudio
Eu tive problemas com o microfone (Ekiga e Skype) quando o pulse estava como dispositivo padrão alsa, para desabilitar isto abra o arquivo /usr/share/alsa/pulse-alsa.conf e apague ou comente as linhas:

pcm.!default {
type pulse

}


ctl.!default
{

type pulse
}


Ajustando o wireless

O módulo ath5k (kernel 2.6.27-8-eeepc) parece não funcionar bem em velocidades maiores que 11M.

Eu percebi que para até 36M a conectividade funciona, mas em 48M ou 54M não. O pior é que por padrão o Linux vai alterando a velocidade da interface de acordo do com a qualidade do sinal e algumas vezes ele o coloca em 48M ou 54M, deixando o usuário sem conectividade por alguns instantes, mas o suficiente para fazer com que vídeos abertos via compartilhamento (samba) ou sessões VNC apresentem lag.

Para resolver este problema a única forma que achei no momento é fixar a velocidade do wireless através do comando:
sudo iwconfig wlan0 rate 11M fixed

Para que alteração seja permanente adicione este comando ao /etc/rc.local
/sbin/iwconfig wlan0 rate 11M fixed

iwconfig wlan0 rate 36M auto, segundo o manual do iwconfig, deveria fazer com que fossem usados apenas as taxas de transfência até 36M, mas não funcionou.

Contornando problema de ao plugar/desplugar o cabo de força o programa de email é iniciado.

O Eee PC gera eventos diferentes e conflitantes aos de outros notebooks da Asus, por conta disto, o Ubuntu incorretamente pensa que foi pressionada a tecla de abrir o programa de email, existem duas formas de resolver.

Ou removendo arquivo /etc/acpi/events/asus-mail:
sudo rm /etc/acpi/events/asus-mail
sudo /etc/init.d/acpid restart

Ou desativando a tecla email:
gconftool -s /apps/gnome_settings_daemon/keybindings/email -t string ""

Desativando o filtro anti-phishing do Firefox
Fonte: 1, 2 e 3

O Firefox 3 vem, por padrão, com a proteção anti-phishing habiitada, esta proteção, de tempos em tempos, baixa uma lista de sites maliciosos dos servidores do google, então pode-se diminuir as escritas removendo o anti-phishing. Fazendo isto você deixa de receber alertas sobre sites maliciosos, então pense se é isto mesmo que você quer antes de fazer.

Para desabilitar vá em Editar->Preferências e na aba Segurança desmarque as opções Alertar-se o site visitado for um possível foco de ataques e Alertar-se o site visitado for uma possível fraude.

Ajustes no gerenciamento de energia.
Primeiro vamos desativar o modo hibernar pois não temos swap:

gconftool -s /apps/gnome-power-manager/general/can_hibernate -t bool false

Em seguida vamos configurar o ajuste dinâmico de brilho:

# período de inatividade para reduzir brilho configurado para 10 segundos
gconftool -s /apps/gnome-power-manager/backlight/idle_dim_time -t int 10


# ao atingir período de inatividade, nao reduzir brilho quando ligado na tomada
gconftool -s /apps/gnome-power-manager/backlight/idle_dim_ac -t bool false

# ao atingir período de inatividade, reduzir brilho quando ligado na bateria

gconftool -s /apps/gnome-power-manager/backlight/idle_dim_battery -t bool true


# brilho em 0% quando inativo

gconftool -s /apps/gnome-power-manager/backlight/idle_brightness -t int 0


# reduzir brilho quando ligada na bateria

gconftool -s /apps/gnome-power-manager/backlight/battery_reduce -t bool true


# brilho em 100% quando ligado na tomada

gconftool -s /apps/gnome-power-manager/backlight/brightness_ac -t int 100


#brilho em 50% quando ligado na bateria

gconftool -s /apps/gnome-power-manager/backlight/brightness_dim_battery -t int 50

Ajustes no escalonador de disco, configurar elevator=noop
O Eee PC 701 usa um disco SSD que não possui partes móveis, o escalonador de discos padrão do Linux (cfq) é otimizado para discos com partes móveis, vamos usar o escalonador noop (No Operation).

Abra o arquivo /boot/grub/menu.lst, procure por uma linha parecida com:
# kopt=root=UUID=XXX-YYY-ZZZ ro

Adicione no final desta linha elevator=noop, e em seguida chame o update-grub:
sudo update-grub

Agora é só reiniciar o sistema.
(o escalonador pode ser trocado sem reiniciar o sistema, mas é assunto para outro post)

Instalando o netbook remix, uma interface alternativa
Eu prefiro usar a interface netbook-remix do Gnome, ela é mais simples e intuitiva para o Eee PC como no screenshot abaixo:

Primeiro desligue os efeitos visuais pois o compiz não se dar bem com o netbook-remix, vá em Sistema->Preferências->Aparência e na aba Efeitos Visuais, selecione Nenhum.


Para instalar o netbook-remix faça:
# importando a chave B796B6FE como consta em: https://launchpad.net/~netbook-remix-team/+archive
gpg --keyserver keyserver.ubuntu.com --recv-keys B796B6FE

gpg -a --export B796B6FE | sudo apt-key add -


echo 'deb http://ppa.launchpad.net/netbook-remix-team/ubuntu intrepid main' | sudo tee /etc/apt/sources.list.d/netbook-remix


sudo apt-get update

sudo apt-get install go-home-applet human-netbook-theme maximus netbook-launcher window-picker-applet


Agora vamos configurar o gnome para o netbook-remix:
  1. Se você não removeu o painel inferior, remova-o agora.
  2. Configure a tecla Home (a casa entre Fn e Alt) para que ela mostre a área de trabalho
  3. Vá em Sistema->Preferências->Atalhos de teclado, procure e clique em Alternar modo de tela inteira, pressione a tecla Home para configurar o atalho.
  4. Vá em Sistema->Preferências->Sessões
    1. Adicione o netbook-laucher
    2. Adicione o maximus
  5. Remova todos os applets do painel superior.
  6. Adicione os seguintes applets nesta ordem de posicionamento:
    1. Ir a Início
    2. Lista de janelas
    3. Área de notificação
    4. Controle de volume
    5. Relógio
Agora saia da sessão (CTRL+ALT+DEL) e inicie-a novamente.

AVANÇADO: Diminuindo as escritas em disco a um nível paranóico.
O disco SSD pode ter vida útil menor que um HD comum pois as escritas no disco são limitadas, se você é paranóico, podemos fazer com que o disco não tenha escrita nenhuma, vamos deixar o disco inteiro em modo somente leitura.

Entrando no modo single
Muitas alterações a seguir precisam que você altere os pontos de montagem do linux e teste-os, então é recomendado entrar no modo single, para isto vá para o console (CTRL+ALT+F1) e execute:
sudo init 1

Quando o Recovery Menu aparecer na tela selecione Drop to root shell prompt.
DICA: O Ubuntu vem com dois editores que podem ser usados no modo console (sem interface gráfica), o vim ou o nano

Limpeza do /etc/fstab
Se você seguiu este artigo e editou o /etc/fstab durante a instalação é hora de desfazer alguns mount's.

Abra o /etc/fstab e remova ou comente estas linhas:
tmpfs /var/log tmpfs defaults 0 0
tmpfs /var/tmp tmpfs defaults 0 0

Depois faça:
umount /tmp
umount /home
umount /var/log
umount /var/tmp

/ (raiz) como somente leitura

Abra o /etc/fstab e coloque o / como somente leitura, procure por uma linha parecida com:
UUID=XXX-YYY-ZZZ / ext2 notime,errors=remount-ro 0 1

Adicione ro a lista de parâmetros (perto de noatime e erros) deixando-a parecida com isto:
UUID=XXX-YYY-ZZZ / ext2 ro,notime,errors=remount-ro 0 1

/var como tmpfs
O /var é um diretório que escritas são feitas constantemente escritas, então é uma boa idéia deixá-lo em RAM.

Crie um diretório chamado /var.tmp
mkdir /var.tmp

Adicione estas linhas no /etc/fstab:
# /var
tmpfs /var.tmp tmpfs defaults,size=32M 0 0
unionfs /var unionfs defaults,dirs=/var.tmp:/var=ro 0 0

Agora tudo que é novo vai ficar em RAM até no máximo 32MB, lembre-se que isto pode ser ruim ao fazer uma grande atualização no ubuntu.

/media como tmpfs
Ao deixar o / como somete leitura a montagem automática de volumes (pen-driver e cartão SD) para de funcionar, isto é porque o HAL não consegue escrever em /media. Então vamos deixá-lo em RAM também.

Adicione estas linhas no /etc/fstab:
# A rw /media is required for HAL
tmpfs /media tmpfs defaults,size=3M 0 0

/etc/resolv.conf no /tmp
O /etc/resolv.conf é um arquivo alterado constantemente pelo network-manager, como o sistema de arquivos vai estar em somente leitura, o network-manager deixará de funcionar corretamente.

Para consertar faça:
mv /etc/resolv.conf /tmp/
rm -f /etc/recsolv.conf.tmp
ln -s /etc/resolv.conf.tmp /etc/resolv.conf
ln -s /tmp/resolv.conf /etc/resolv.conf.tmp

O problema do /home
O usuário precisa gravar seus arquivos, se você seguiu as instruções deste artigo, o /home está em uma partição separada então não há o que se preocupar, seus arquivos serão salvos.

Contudo o /home também é bastante alterado com configurações e logs, se você for paranóico mesmo vai querer também diminuir estas escritas no /home, uma solução é colocar o /home na RAM e enquanto salva suas coisas importantes no "Home Real".

Crie um home para os arquivos temporários
mkdir /home.tmp

Renomei o /home para /home.real
mv /home /home.real

Recrie o /home
mkdir /home

Adicione estas linhas no /etc/fstab:
# /home
tmpfs /home.tmp tmpfs defaults,size=64M 0 0
unionfs /home unionfs defaults,dirs=/home.tmp:/home.real=ro 0 0

Ainda no /etc/fstab procure por uma linha parecida com:
UUID=XXX-YYY-ZZZ /home ext2 notime 0 1

Troque-a para:
UUID=XXX-YYY-ZZZ /home.real ext2 notime 0 1

Vamos criar o "suporte" ao armazenamento permanente, vá ao seu diretório "real" de seu usuário:
cd /home.real/user

Troque user pelo nome do usuario que você configurou na instalação.

Agora crie links para armazenamento permanente para todos diretórios não ocultos:

PERMANENT_DIR="STORE"

# Check for permanent dir or create it
[ -d "$PERMANENT_DIR" ] || mkdir "$PERMANENT_DIR"

# Remove old links if any
find . -maxdepth 1 -name '[^.]*' -type l | while read i; do
BASE="`basename $i`"
readlink "$i" | egrep "/$PERMANENT_DIR/$BASE\$" >/dev/null && rm -f "$i"
done

# To undo
# #mv STORE/* .
# #exit 0

# Move directories to permanent dir
find . -maxdepth 1 -name '[^.]*' -type d | egrep -v "^./$PERMANENT_DIR\$" | while read i; do
mv "$i" "$PERMANENT_DIR/"
done

# Create links
find "$PWD/$PERMANENT_DIR" -maxdepth 1 -type d | while read i; do
BASE="`basename $i`"
[ -e "$BASE" ] || ln -s "$i" "$BASE"
done
Lembre-se que suas configurações são sempre perdidas a cada reinicialização, mas você pode salvá-las manualmente a qualquer momento, para isto faça (deslogado de preferência):

rsync -a /home/user/.[^.]* /home.real/user/

Instalar novos programas
É impossível instalar novos programas ou alterar algum arquivo do /etc se disco está em modo somente leitura, você pode temporariamente colocá-lo em modo de escrita com:
sudo mount / -o remount,rw

Lembre-se de voltá-lo ao modo somente leitura antes de desligar:
sudo mount / -o remount,ro

Caso não faça isto, da próxima vez que iniciar terá que refazer o passo de configurar o resolv.conf para utilizar o /tmp por conta de um bug no network-manager que cria um novo arquivo ao invés de atualizá-lo.

Problemas ao usar o apt-get
O apt-get usa o /var/cache para baixar arquivos e o /var lota rapidinho, para solucionar o problema temporariamente aumente o tamanho do /var com:
sudo mount /var.tmp -o remount,size=128M

128M é o novo tamanho
.
Após realizar a atualização limpe o cache do apt-get para liberar memória:
sudo apt-get cache clean

Evitando o OOM-Killer
O OOM-killer é chamado toda vez que o sistema precisa de memória e não possui, para resolver este problema o Linux mata um processo.

Algumas práticas para minimizar este problema:
  1. Desative programas residentes desnecessários
    • Desative alguns terminais CTRL+ALT+Fn
        sudo rm /etc/event.d/tty[3-6]
    • Rode o rcconf e desmarque
      • anacron
      • apparmor
      • atd
      • avahi-daemon
      • bootlogd
      • bluetooth
      • pcmciautils
      • cron
      • cups
      • pppd-dns
      • pulseaudio
      • ufw
    • Abra Sistema->Preferências->Sessões e desmarque
      • Área de trabalho remota (vino-server)
      • Assistência Visual
      • Evolution Alarm Notifier (evolution-alarm-notify)
      • Gerenciador Bluetooth (bluetooth-applet)
      • Miniaplicativo da Fila de Impressão (system-config-printer-applet)
      • Miniaplicativo Tracker (tracker-applet)
      • PulseAudio Session Management
      • Tracker (trackerd)
      • Update Notifier (update-notifier)
  2. Use programas leves
    • Que tal deixar o gnome de lado e usar o XFCE (xubuntu)?
  3. Diminuir tamanho máximo dos tmpfs
    • Adicione ao arquivo /etc/defaults/tmpfs
      • SHM_SIZE=8M
        TMPFS_SIZE=4M
        UDEV_SIZE=8M
    • Adicione a todos os tmpfs's a opção size=XXXM no /etc/fstab
Links úteis