2008-11-22

Desativando teclas de desligar o computador no teclado do KDE

A tecla para desligar o computador via teclado é uma legítima idéia de jerico. Para desativá-la no KDE, deve-se editar /etc/kde3/kpowersaverc e mudar:

ActionOnPowerButton=SHUTDOWN

para:

ActionOnPowerButton=LOGOUT_DIALOG

2008-10-18

Compilando um kernel com suporte a memória ruim

Se um computador está com uma parte da memória ruim (detectado via memtest86+), pode-se compilar um kernel que seja capaz de isolar essa memória ruim e somente usar o resto, não sendo necessário trocar o pente de memória.

  1. Instalar os pacotes necessários: linux-image-2.6.26-1-686, linux-source-2.6.26, kernel-package, kernel-patch-badram, memtest86+:
    apt-get install linux-image-2.6.26-1-686 linux-source-2.6.26 \
    kernel-package kernel-patch-badram memtest86+
  2. Verificar se o patch de badram correspondente ao kernel sendo instalado (por exemplo BadRAM-2.6.26.1.patch.gz) existe no diretório /usr/src/kernel-patches/diffs/badram/:
    ls /usr/src/kernel-patches/diffs/badram
    Caso contrário, baixar e aplicar o patch para suporte a BadRAM de http://rick.vanrein.org/linux/badram/download.html

  3. Executar make-kpkg no diretório fonte:
    cd /usr/src
    sudo tar -xjf linux-source-2.6.26.tar.bz2
    cd /usr/src/linux-source-2.6.26
    sudo cp /boot/config-2.6.26-1-686 .config
    sudo make-kpkg --revision 1.Bello --initrd --added-patches badram binary-arch
    Work around bad spots in RAM (BADRAM) [Y/n/?] (NEW) Y
  4. Instalar o novo kernel e headers recém criados:
    sudo dpkg -i /usr/src/linux-image-2.6.26_1.Bello_i386.deb
    sudo dpkg -i /usr/src/linux-headers-2.6.26_1.Bello_i386.deb
  5. Modificar /etc/lilo.conf para conter as linhas:
    default=Badram_2.6.26
    image=/boot/vmlinuz-2.6.26
    label=Badram_2.6.26
    initrd=/boot/initrd.img-2.6.26 append="badram=0x141ab2ac,0xfffffffc,0x0c863094,0xfffffffc,0x20bf1b34,0xfffffffc,0x22101c94,0xfa501ffc,0x2799ded4,0xfffffffc"
    optional
    restricted
  6. Executar Lilo:
    sudo lilo

2008-08-12

Usando o Dosemu

O Dosemu é um emulador DOS para Linux. Para instalá-lo, deve-se usar:

sudo apt-get install dosemu
Arquivos de configuração:
  • /etc/dosemu/dosemu.users: define quais usuários podem fazer o quê (ver /usr/share/doc/dosemu/README-tech.txt.gz#2.1)
  • /etc/dosemu/global.conf
  • /etc/dosemu/dosemu.conf
  • ~/.dosemurc
  • /etc/dosemu/freedos/autoexec.bat
  • /etc/dosemu/freedos/config.sys
  • ~/.dosemurc

2008-07-06

DVD9 para DVD5: Coisas que podem dar errado

No processo de converter DVD9 em DVD5, algumas coisas podem não funcionar direito. Eis uma lista de problemas encontrados e como resolvê-los:

  • Um arquivo de áudio (AC3) está corrompido: O arquivo no formato AC3 é composto por uma série de frames que começam com os bytes [0b 77]. Às vezes, é necessário eliminar o lixo que aparece antes do primeiro frame. Para isso, deve-se determinar a posição do primeiro byte válido (o primeiro 0b seguido por 77 do primeiro frame) e eliminar o que vem antes. Uma maneira é:
    inicial=`hexdump -e "\"%_ad \" 1/1 \"%02x\n\"" ARQ.ac3 \
    | awk '/ 77$/ {if (OK==1) print $1}; {OK=0}; / 0b$/ {OK=1}' \
    | head -1`
    tail -c +$inicial ARQ.ac3 >arqtemp.ac3
    mv arqtemp.ac3 ARQ.ac3
  • As legendas estão transparentes: às vezes os arquivos PNG contendo as legendas podem estar com o texto semi-transparente. Neste caso, é necessário converter cada um dos PNGs, eliminando a transparência do texto (mas não do fundo):
    for i in DIR/sub*.png; do
    convert $i -channel Alpha -level 99%,100% arqtemp.png
    mv arqtemp.png $i
    done
  • Preciso eliminar uma parte do video: Às vezes, pode ser desejável eliminar parte de uma trilha. Essa parte pode estar no início, meio ou fim. Segue a seqüência de passos necessária para eliminar um pedaço no início:
    1. Extrair os canais (vídeo, áudio e legendas)
    2. Eliminar os primeiros DELTA segundos do canal de vídeo:
      ffmpeg -i ARQ.m2v -ss DELTA -vcodec copy arqtemp.m2v
      mv arqtemp.m2v ARQ.m2v
    3. Eliminar os primeiros DELTA segundos dos canais de áudio:
      ffmpeg -i ARQ.ac3 -ss DELTA -acodec copy arqtemp.ac3
      mv arqtemp.ac3 ARQ.ac3
    4. Modificar o tempo das legendas em DIR/sub.xml:
      delta=DELTA
      cat DIR/sub.xml | perl -e '
      while (<stdin>) {
      if (!/start=.*end=/) {
      print($_);
      } else {
      $s = $_;
      $s =~ s/.* start="([0-9:.]*)".*/$1/;
      @s = split(/:/, $s);
      $s = $s[0] * 3600 + $s[1] * 60 + $s[2] - '$delta';
      $s = sprintf("%02d:%02d:%05.2f", $s / 3600,
      ($s % 3600) / 60, 0.0 + $s - int($s / 60) * 60);
      $e = $_;
      $e =~ s/.* end="([0-9:.]*)".*/$1/;
      @e = split(/:/, $e);
      $e = $e[0] * 3600 + $e[1] * 60 + $e[2] - '$delta';
      $e = sprintf("%02d:%02d:%05.2f", $e / 3600,
      ($e % 3600) / 60, 0.0 + $e - int($e / 60) * 60);
      $l = $_;
      $l =~ s/start="[0-9:.]*"/start="$s"/;
      $l =~ s/end="[0-9:.]*"/end="$e"/;
      print ($l);
      }
      }' \
      >arqtemp.xml
      mv arqtemp.xml DIR/sub.xml
    5. Modificar o tempo dos capítulos em dvd.xml.

  • As cores da legenda estão erradas: O problema é na definição de cores do arquivo palette.rgb. Para gerar um arquivo que produza legendas com as cores certas, deve-se primeiro gerar um com as cores erradas, identificar a posição de cada cor e depois substituir a cor no arquivo palette.rgb pela cor correta:
    1. Gerar um arquivo palette.rgb com o seguinte conteúdo:
      ff0000
      ff8000
      ffc000
      ffff00
      c0ff00
      00ff00
      00ffc0
      00ffff
      00c0ff
      0080ff
      0000ff
      8000ff
      c000ff
      ff00ff
      ff00c0
      ff0080
    2. Extrair as legendas de um canal da forma usual:
      mkdir -p tNsS
      spuunmux -o tNsS/sub -s S -p palette.rgb tN.mpg
    3. Abrir um dos arquivos PNG gerados (por exemplo, tNsS/sub00000.png) e verificar a cor das letras, do contorno e, se houver, dos pontos de transição entre as letras e o contorno.
    4. Substituir o arquivo palette.rgb por um que tenha as seguintes cores:
      • ffc000 no lugar da cor das letras
      • 000000 no lugar da cor do contorno das letras
      • 806000 no lugar da cor dos pontos de transição entre as letras e o contorno, se houver
      • 00ff00 em todas as outras posições
    5. Extrair as legendas de todos os canais desejados normalmente.
    6. Abrir um dos novos arquivos PNG gerados (por exemplo, tNsS/sub00000.png) e verificar se as cores estão corretas. Se não estiverem, alguma coisa foi feita errada (ver também observação sobre legendas transparentes).

2008-07-05

Passos para reduzir DVD9 para DVD5

Obs: A informação aqui postada não deve ser utilizada para fazer cópias não autorizadas de material protegido.

Para criar uma imagem ISO que caiba em 4.7GB a partir de uma imagem ISO maior, pode-se proceder da seguinte forma:

  1. Decidir quais trilhas do DVD devem ser copiadas e, para cada uma delas, quais canais de áudio e quais canais de legenda e em qual ordem (por exemplo: audio 1 em inglês, audio 2 em português; legenda 1 em português, legenda 2 em inglês). Defina também a lista de capítulos de cada trilha. Alguns programas para auxiliar na decisão:
    lsdvd -x ARQ.iso
    tcprobe -i ARQ.iso -T N -H 100
  2. Extrair as trilhas selecionadas da imagem ISO para arquivos MPEG:
    tccat -i ARQ.iso -t dvd -T N,-1 -L >tN.mpg
  3. Extrair o canal de vídeo de cada trilha:
    tcextract -i tN.mpg -x mpeg2 -t vob >tN.m2v
  4. Extrair os canais de áudio de cada trilha:
    tcextract -i tN.mpg -x ac3 -t vob -a A >tNaA.ac3
  5. Criar um arquivo de paleta para extrair as legendas. Um que geralmente funciona é:
    cat >palette.rgb <<EOF
    000000
    000000
    ffc000
    808080
    808080
    808080
    808080
    808080
    806000
    ffc000
    808080
    808080
    808080
    ffc000
    000000
    808080
    EOF
  6. Extrair as legendas (subtítulos) de cada trilha para arquivos PNG dentro de um subdiretório:
    mkdir -p tNsS
    spuunmux -o tNsS/sub -s S -p palette.rgb tN.mpg
  7. Se necessário, reduzir o bitrate β dos canais de áudio (β=192 parece adequado):
    ffmpeg -v 0 -y -i tNaA.ac3 -f ac3 -acodec ac3 -ab βk nNaA.ac3
  8. Calcular o fator de redução Φ necessário para os canais de vídeo:

    Φ = ΣVi / (4500000000 - ΣAij - ΣSijk)

    onde:

    Vi = Tamanho do arquivo do canal de vídeo (m2v) da trilha i.
    Aij = Tamanho do arquivo do canal de áudio (ac3) j da trilha i (depois de reduzir o bitrate).
    Sijk = Tamanho do arquivo (png) k das legendas j da trilha i.

  9. Se o fator de redução for maior que 1, reduzir o tamanho dos canais de vídeo:
    tcrequant -f Φ -d 0 -i tN.m2v -o nN.m2v
  10. Para cada trilha, determinar o deslocamento Δ em segundos entre o canal de vídeo e os canais de áudio, usando a informação gerada por:
    tcprobe -i tN.mpg
    O deslocamento será:

    Δ = PTSv - PTSa

    onde:

    PTSv = PTS do canal de vídeo
    PTSa = PTS dos canais de áudio (devem ser aproximadamente iguais)

  11. Combinar o canal de vídeo e os canais de áudio (0, 1, etc.) de cada título:
    mplex -f 8 -S 0 -o nN.mpg -O Δs nN.m2v nNa0.ac3 nNa1.ac3 ...
  12. Adicionar cada canal de legendas (0, 1, etc.) a cada título:
    mv nN.mpg xN.mpg
    spumux -m dvd -s 0 tNs0/sub.xml <xN.mpg >nN.mpg
    mv nN.mpg xN.mpg
    spumux -m dvd -s 1 tNs1/sub.xml <xN.mpg >nN.mpg
    ...
  13. Obter a informação necessária sobre o vídeo para o arquivo XML (formato, aspecto, widescreen, resolução) de uma das seguintes formas:
    tcprobe -i ARQ.iso -T N 2>&1 | grep video
    tcprobe -i nN.mpg 2>&1
  14. Criar um arquivo XML contendo a descrição de como deve ser gerado o DVD. O exemplo abaixo gera uma estrutura de DVD no diretório DIR. Ao iniciar, são selecionados o primeiro canal de áudio (inglês) e o primeiro canal de legenda (português), e a primeira trilha inicia automaticamente. O vídeo está em formato NTSC 16:9 (quando visto em 4:3, coloca barras horizontais) e resolução 720x480. Há dois canais de áudio (inglês e português) e dois canais de legenda (português e inglês). Há três trilhas, armazenadas nos arquivos n1.mpg, n2.mpg e n3.mpg, com capítulos a cada meia hora (na primeira trilha) ou a cada 10 minutos (nas demais). Ao terminar uma trilha, a próxima inicia automaticamente, voltando ao início no final.
    <dvdauthor dest="DIR">
    <vmgm>
    <fpc>{ audio=0; subtitle=64; jump title 1; }</fpc>
    </vmgm>
    <titleset>
    <titles>
    <video format="ntsc" aspect="16:9" widescreen="nopanscan" resolution="720x480" />
    <audio lang="en" />
    <audio lang="pt" />
    <subpicture lang="pt" />
    <subpicture lang="en" />
    <pgc>
    <vob file="n1.mpg" chapters="00:00:00.000,00:30:00.000,01:00:00.000,01:30:00.000" />
    <post>jump title 2;</post>
    </pgc>
    <pgc>
    <vob file="n2.mpg" chapters="00:00:00.000,00:10:00.000,00:20:00.000" />
    <post>jump title 3;</post>
    </pgc>
    <pgc>
    <vob file="n3.mpg" chapters="00:00:00.000,00:10:00.000,00:20:00.000,00:30:00.000" />
    <post>jump title 1;</post>
    </pgc></titles>
    </titleset>
    </dvdauthor>
  15. Criar a estrutura de DVD usando o arquivo XML acima:
    dvdauthor -x dvd.xml
  16. Criar a nova imagem ISO do DVD (usar o título de lsdvd ou definir um novo):
    genisoimage -dvd-video -V "TITULO" -o ARQNOVO.iso DIR/

2008-03-31

Formato MPEG-1

O Formato MPEG-1 é muito parecido com o MPEG-2. Segue a interpretação dos bits:

MPEG-1 PACK:

  • 0..3: 00 00 01 ba
  • 4..8: 0010SSS1 SSSSSSSS SSSSSSS1 SSSSSSSS SSSSSSS1
  • 9..11: 1RRRRRRR RRRRRRRR RRRRRRR1
S = SCR (System Clock Reference), 33 bits, 90 kHz
R = Multiplex Rate, 22 bits, unidades de 50 bits por segundo (> 0)

SYSTEM HEADER:

  • 0..3: 00 00 01 bb

END CODE:
  • 0..3: 00 00 01 b9

Fonte: http://www.andrewduncan.ws/MPEG/MPEG-1_Picts.html
http://neuron2.net/library/mpeg2/iso13818-1.pdf

(Obs: No MPEG-1 Pack, a multiplex rate não é x400, e sim x50 bits/s)

2008-03-21

Formato MPEG-2

Os arquivos MPEG-2 têm um formato que não é muito fácil de achar na Internet. Cada arquivo é formado por uma série de packs, de tipos diversos. Cada pack tem um header, seguido do seu conteúdo. O formato dos packs é o seguinte:

Pack header:

  • 0..3: 00 00 01 ba
  • 4..9: 01SSS1SS SSSSSSSS SSSSS1SS SSSSSSSS SSSSS1EE EEEEEEE1
  • 10..12: MMMMMMMM MMMMMMMM MMMMMM11
  • 13: xxxxxLLL
  • ?: ff ...
S = SCR (System Clock Reference), 33 bits, 90 kHz
E = SCR extension, 9 bits, 27 MHz (0-299, somado a SCR)
M = Program Mux Rate, 22 bits, unidades de 50 bits por segundo (> 0)
x = Reservado, 5 bits
L = Pack stuffing length, 3 bits: Número de bytes de enchimento (ff) que seguem

System header:
  • 0..3: 00 00 01 bb
  • 4..5: HHHHHHHH HHHHHHHH
  • 6..8: 1RRRRRRR RRRRRRRR RRRRRRR1
  • 9: AAAAAAFC
  • 10: LK1VVVVV
  • 11: Pxxxxxxx
  • ?: NLoop
H = Header length, 16 bits (número de bytes)
R = Rate bound, 22 bits
A = Audio bound, 6 bits
F = Fixed flag
C = CSPS flag
L = Audio lock flag
K = Video lock flag
V = Video bound, 5 bits
P = Packet rate restriction flag
x = Reservado, 7 bits

NLoop:
  • 0: IIIIIIII
  • 1..2: 11SZZZZZ ZZZZZZZZ
  • 3: IIIIIIII
  • 4..5: 11SZZZZZ ZZZZZZZZ
  • ...
I = Stream ID
S = P-STD buffer bound scale
Z = P-STD buffer size bound

http://www.ietf.org/mail-archive/web/avt/current/msg01807.html
http://www.cs.ucl.ac.uk/teaching/GZ05/10-system-streams.pdf
http://www.codeproject.com/KB/audio-video/program_stream_analyzer.aspx
http://osdir.com/ml/video.dvbcut.user/2006-01/msg00006.html
http://dvd.sourceforge.net/dvdinfo/index.html
http://en.wikipedia.org/wiki/Program_Stream
http://www.codeproject.com/KB/audio-video/mpegaudioinfo.aspx

2008-02-27

Incluindo mapas do Google numa página

Os mapas do google podem ser incluidos numa página. O primeiro passo é pegar uma chave em http://code.google.com/apis/maps/signup.html, que vale para um diretório de um site e seus subdiretórios. Por exemplo, a chave para http://flaviobello.blogspot.com/ é:

ABQIAAAAw_p9eDbkwTneuB0--hXZcBS7fJfltfKGu7qGU5ECdwSrRGff1BQWDRxsX2R-gEP5DLDtVfsSpJ_Deg

Depois, deve-se incluir um mapa numa página. Há várias formas de fazer isso. Um mapa estático pode ser incluído de forma bastante simples:

  1. Imagem estática:

    <img width="400" height="300"
    src="http://maps.google.com/staticmap?
    center=-29.17,-51.52&
    zoom=14&
    size=300x200&
    key=ABQIAAAAw_p9eDbkwTneuB0--hXZcBS7fJfltfKGu7qGU5ECdwSrRGff1BQWDRxsX2R-gEP5DLDtVfsSpJ_Deg">

    Opções:

    • Tipo de mapa (padrão=roadmap)
      maptype=mobile


    • Marcadores (TamanhoCorAlfa={, mid, small, tiny}{black, brown, green, purple, yellow, blue, gray, orange, red, white}{, a..z})
      markers=-29.174656,-51.521947,greenp
      |-29.164749,-51.525981,bluee
      |-29.17,-51.526,yellow
      |-29.17,-51.524,midyellow
      |-29.17,-51.522,smallyellow
      |-29.17,-51.520,tinyyellow


    • Caminhos
      path=rgba:0x0000ff80,weight:5
      |-29.174656,-51.521947
      |-29.17,-51.526
      |-29.17,-51.520
      |-29.164749,-51.525981


    • Localização
      hl=cn





  2. Iframe embutido:

    <iframe width="400" height="300"
    src="http://maps.google.com/?
    ll=-29.17,-51.52&
    z=14&
    t=h&
    output=embed&
    ie=UTF8&
    s=AARTsJqzARj-Z8VnW5pkPMLMmZbqrJcYpw"></iframe>









2008-02-24

Configuração do roteador wireless D-Link DI-524

Para reiniciar o roteador D-Link DI-524, pressionar o botão de reset (ao lado da entrada de força) por 10 segundos e depois esperar até a luz WLAN parar de piscar. Depois, ligar um computador diretamente a ele e acessar http://192.168.0.1/, com login admin e senha em branco.

Para uma configuração rápida, clicar em Run Wizard (na aba Home/Wizard), executando os passos:

  1. Set password: Não esquecer da senha nova!
  2. Choose time zone: (GMT-03:00) Buenos Aires, Georgetown, Brasilia
  3. Select internet connection type (WAN): PPP over Ethernet
  4. Set PPPoE: Username e senha do provedor
  5. Set wireless connection: Network ID (SSID)=ZBF; Channel=6; Security=WPA-PSK; Preshare key=Outra senha!
  6. Aguardar 20 segundos e depois: Restart
A configuração completa segue:
  • Home/Wireless: Wireless=Enabled; Network ID(SSID)=ZBF; Channel=6; Security: WPA-PSK/WPA2-PSK; Preshare Key=*SENHA-WIRELESS*
  • Home/WAN: WAN Settings=PPPoE; PPP over Ethernet=Dynamic PPPoE; Username=*LOGIN-PROVEDOR*; Password=*SENHA-PROVEDOR*; Service name=(em branco); Maximum idle time=5; MTU=1452; Connect mode select=Always-on; Do not change the TTL value=enabled; IGMP=enabled
  • Home/LAN: IP Address=192.168.0.1; Subnet mask=255.255.255.0; Domain Name=(em branco)
  • Home/DHCP: DHCP Server=Enabled; Starting IP address=192.168.0.100; Ending IP Address=192.168.0.199; Lease time=1 week; Static DHCP=(adicionar IPs de computadores conhecidos, começando por 51)
A configuração acima usa o sistema WPA2-PSK, que é o mais seguro para uma rede caseira. Pode não funcionar bem com placas mais antigas.

2008-02-23

Rede wireless no HP Pavilion dv1000 (dv1217us) usando Debian Linux

O dispositivo wireless é o Intel PRO/Wireless 2200BG:

$ lspci
02:06.0 Network controller: Intel Corporation PRO/Wireless 2200BG Network Connection (rev 05)

O módulo a ser carregado é o ipw2200. O site oficial do driver está em http://ipw2200.sourceforge.net/. O kernel 2.6.22 (e acima, suponho) já vem com o módulo. Entretando, os arquivos de firmware não vêm com o Debian. Na primeira tentativa, ocorreram os seguintes erros:

$ sudo modprobe ipw2200
ieee80211_crypt: registered algorithm 'NULL'
ieee80211: 802.11 data/management/control stack, git-1.1.13
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.0kmq
ipw2200: Copyright(c) 2003-2006 Intel Corporation
ACPI: PCI Interrupt 0000:02:06.0[A] -> GSI 18 (level, low) -> IRQ 20
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: ipw2200-bss.fw request_firmware failed: Reason -2
ipw2200: Unable to load firmware: -2
ipw2200: failed to register network device
ACPI: PCI interrupt for device 0000:02:06.0 disabled
ipw2200: probe of 0000:02:06.0 failed with error -5

Estavam faltando os arquivos de firmware. O arquivo com o firmware ipw2200-fw-3.0.tgz pode ser baixados do site do driver, aqui, após aceitar a licença da Intel. O conteúdo do arquivo deve ser descompactado no diretório /lib/firmware:

$ sudo tar -xvzf ipw2200-fw-3.0.tgz -C /lib/firmware --strip 1
ipw2200-fw-3.0/ipw2200-bss.fw
ipw2200-fw-3.0/ipw2200-sniffer.fw
ipw2200-fw-3.0/LICENSE.ipw2200-fw
ipw2200-fw-3.0/ipw2200-ibss.fw

Após a instalação do firmware, o módulo ipw2000 passou a funcionar:

$ sudo modprobe -r ipw2200
ieee80211_crypt: unregistered algorithm 'NULL'
$ sudo modprobe ipw2200 led=1
ieee80211_crypt: registered algorithm 'NULL'
ieee80211: 802.11 data/management/control stack, git-1.1.13
ieee80211: Copyright (C) 2004-2005 Intel Corporation <jketreno@linux.intel.com>
ipw2200: Intel(R) PRO/Wireless 2200/2915 Network Driver, 1.2.0kmq
ipw2200: Copyright(c) 2003-2006 Intel Corporation
ACPI: PCI Interrupt 0000:02:06.0[A] -> GSI 18 (level, low) -> IRQ 20
ipw2200: Detected Intel PRO/Wireless 2200BG Network Connection
ipw2200: Detected geography ZZM (11 802.11bg channels, 0 802.11a channels)
udev: renamed network interface eth1 to eth2

Feito isso, a interface wireless deve ser configurada. Isso envolve a instalação dos pacotes wpasupplicant e wireless-tools:

$ sudo apt-get install wpasupplicant wireless-tools

A interface de rede deve ser configurada em /etc/network/interfaces:

auto eth2
iface eth2 inet dhcp
  wpa-ssid "ZBF"
  wpa-key-mgmt WPA-PSK
  wpa-proto WPA2
  wpa-pairwise CCMP
  wpa-group CCMP
  wpa-psk "*SENHA-WIRELESS*"
  pre-up echo 1 > /sys/bus/pci/drivers/ipw2200/0000\:02\:06.0/led

A configuração acima usa o sistema WPA2-PSK, que é o mais seguro para uma rede caseira. Não funciona se o roteador wireless não estiver configurado da mesma forma. Se o roteador estiver configurado para WPA-PSK (mais antigo), retirar as linhas wpa-proto, wpa-pairwise e wpa-group.

A configuração correta pode ser verificada da seguinte forma:

$ sudo ifdown eth2
$ sudo ifup eth2
$ sudo iwconfig eth2
$ sudo iwlist eth2 wpakeys
$ sudo wpa_cli status