É interessante quando pessoas não versadas sobre a arte zen da computação (sim, é uma arte) usam os sistemas que para nós são parte de nosso dia-à-dia. Coisas bizarras e inusitadas simplesmente não funcionam ou você, ao contrário, nota que alguém usa aquilo para alguma coisa.
Com a dança de cadeiras de máquina, fiquei com os seguintes equipamentos:
Voltando à questão do som, minha esposa veio reclamar da última máquina descrita: o som não funcionava. Eu, como não a utilizo muito (não via prompt, somente remotamente), nunca tinha notado isso. Fui verificar o que havia ocorrido já que o som funcionava perfeitamente na "era Debian" e eu não havia formatado a máquina, apenas realizado um "aptitude dist-upgrade" para Ubuntu (não foi tão fácil assim, mas também não foi tão difícil...).
Primeiramente verifiquei qual interface de som eu tinha instalado (somente lembrava que era on-board em uma placa ASUS A7V8X-X:
picasso:etc# lspci | grep -i multimedia
0000:00:11.5 Multimedia audio controller: VIA Technologies, Inc.
VT8233/A/8235/8237 AC97 Audio Controller (rev 50)
Notei que vários módulos inúteis estavam carregados no kernel, inclusive um redirecionando o som para interface dummy, o que estava causando a "falta de som". Removi os módulos desnecessários e carreguei o módulo snd-via82xx. Para minha surpresa, o som não funcionou...
Escarafunchando pelo google a fora encontrei uma dicas místicas de pessoas que usaram o controle de som do Gnome para configurar a placa. Segui a mesma receita e dessa vez o som funcionou. Verifiquei o que havia alterado e notei que o módulo ad1889 havia sido carregado, o que permitiu que o som funcionasse. Uma vez carregado, pode-se verificar se tudo está corretamente assim:
picasso:etc# cat /dev/sndstat
Sound Driver:3.8.1a-980706 (ALSA v1.0.10rc3 emulation code)
Kernel: Linux picasso 2.6.15-23-k7 #1 SMP PREEMPT Tue May 23 14:20:54 UTC 2006 i686
Config options: 0
Installed drivers:
Type 10: ALSA emulation
Card config: VIA 8235 with AD1980 at 0xe000, irq 201
Audio devices: 0: VIA 8235 (DUPLEX)
Synth devices: NOT ENABLED IN CONFIG
Midi devices: NOT ENABLED IN CONFIG
Timers: 7: system timer
Mixers: 0: Analog Devices AD1980
Depois inclui os módulos necessários para que carregassem no boot assim:
picasso:etc# echo snd-via82xx >> /etc/modules
picasso:etc# echo snd-ad1889 >> /etc/modules
Para evitar que o sistema leia outros módulos e não os que defini, simplesmente renomeei o diretório /etc/modprobe.d para /etc/modprobe.d.sai_seu_feio. Não é uma solução das mais bonitas, mas um dia eu arrumo isso...
Novo trabalho, novos desafios. Umas das primeiras coisas que fiz foi livrar meu laptop dos grilhões que o prendiam e instalar o bom e velho FreeBSD, release 6.1. Bom sistema, tudo funcionando (ou quase tudo). Eis que resolvi recuperar alguns dados que gravei em um DVD:
musashi# ls -skh /cdrom/
ls: Backup-musashi_Win2k-2005-04-17.tar: Value too large to be stored in data type
total 227 227
Backup-musashi_Win2k-2005-04-17.toc.gz
Fora o fato bizarro de eu estar tentando acessar um backup de Windows, achei sacal o problema de não conseguir ler a mídia. Buscando na rede, descobri que existe uma limitação no driver cd9660 para ler arquivos maiores de 2GB.
Uma busca árdua no google me levou ao link:
Apliquei a alteração:
--- sys/isofs/cd9660/cd9660_node.h.org Wed Mar 16 09:09:52 2005
+++ sys/isofs/cd9660/cd9660_node.h Sun Jan 8 00:14:54 2006
@@ -69,7 +69,7 @@
ino_t i_ino; /* inode number of found directory */
long iso_extent; /* extent of file */
- long i_size;
+ u_long i_size;
long iso_start; /* actual start of data of file (may be different */
/* from iso_extent, if file has extended attributes) */
ISO_RRIP_INODE inode;
Ao invés de patch, editei o arquivo não mão, já que alteração era de long para u_long somente. Vamos ver se funciona....
Após um período utilizando o Java 1.5.0 que baixei da IBM, verifiquei que alguns aplicativos não estavam funcionando de acordo. Podendo ou não ser problema da versão do Java, resolvi utilizar a versão anterior: 1.4.2.
Para quem tem um iBook, arquitetura PPC (ou PowerPC), rodando Linux como o meu, sabe que não tem coisa mais chata que buscar alguns aplicativos como Java, Flash, Acroread, etc... Felizmente, no caso do Java, existe um suporte da IBM. Mesmo assim é necessário entrar no site da mesma, registrar-se, e somente aí baixar o aplicativo.
Buscando no respositório não oficial da Debian, encontrei uma alma caridosa que já disponibilizou o pacote pronto:
É possível buscar para todos os releases (atuais) de Debian. Great Work Dude!
Essa visista à Dallas, na verdade Plano, no Texas, EUA, tem sido bastante interessante, além de uma grande tentação. Os aparatos tecnológicos à disposição atraem pelas funcionalidades e pelo preço. Graças à isso, o xuxu já sofreu um belo upgrade de memória (troquei o pente de 256MB para 512MB), uma nova bateria com 2 horas de duração e uma nova fonte de alimentação.
helio@xuxu:~$ uname -a
Linux xuxu 2.6.15-26-powerpc #1 Mon Jul 17 19:51:43 UTC 2006 ppc GNU/Linux
helio@xuxu:~$ cat /proc/meminfo | head -7
MemTotal: 643808 kB
MemFree: 72396 kB
Buffers: 127376 kB
Cached: 206272 kB
SwapCached: 0 kB
Active: 360200 kB
Inactive: 183444 kB
Não bastasse isso, ainda comprei um adaptador de rede USB da Linksys (Linksys USB200M), que não funcionou de cara. No caso, tenho que usar USB pois o meu iBook não tem entrada PCMCIA (isso é chato de vez em quando). Não demorou muito para encontrar alguns links na rede:
Em ambos, aparentemente o módulo asix faria todo o suporte como driver porém:
root@xuxu:~# lsusb
Bus 001 Device 005: ID 13b1:0018 Linksys USB200M 10/100 Ethernet Adapter
Bus 001 Device 001: ID 0000:0000
Bus 002 Device 003: ID 046d:c016 Logitech, Inc. M-UV69a Optical Wheel Mouse
Bus 002 Device 001: ID 0000:0000
root@xuxu:~# modprobe asix
root@xuxu:~# ifconfig usb0
usb0: error fetching interface information: Device not found
root@xuxu:~# dmesg | tail
[ 698.129138] usb 1-1: new full speed USB device using ohci_hcd and address 3
[ 1000.127664] usbcore: deregistering driver asix
[ 1013.215179] usbcore: registered new driver asix
[ 1048.105175] usb 1-1: USB disconnect, address 3
[ 1064.537063] usb 1-1: new full speed USB device using ohci_hcd and address 4
[ 1242.490754] usbcore: registered new driver rtusb
[ 4600.045112] usb 1-1: USB disconnect, address 4
[ 4604.633132] usb 1-1: new full speed USB device using ohci_hcd and address 5
[ 4608.154937] usbcore: deregistering driver asix
[ 4624.399026] usbcore: registered new driver asix
O sistema não chegou a reconhecer. Mas como parece existir um horizonte de possibilidade, vou continuar tentando (mesmo porque o preço fui muito compensador: USD$ 29.99).
Outro brinquedo que me chamou a atenção, mais pelo preço que por funcionalidade (também saiu por USD$ 29.99), foi um Wireless G USB Network Adapter da Belkin. Apesar de também ser uma compra no escuro, sem idéia se iria funcionar ou não em Linux e FreeBSD, resolvi arriscar. Após uma rápida busca na rede, encontrei alguns links muito bons:
A última referência, o HOWTO, é excelente. De cara já vi que é um chip da ralink, o mesmo utilizado no DWL-G122 da D-Link. Ainda não fiz funcionar, mas já decidi que também não vou devolver. Agora é arregaçar as mangas e mandar ver.
Compro ou não compro?
O preço é atrativo e aparentemente funciona com Linux:
Mas será que realmente funciona? E com FreeBSD? Mesmo assim, o preço é muito tentador.
Aparentemente a Telefonica mudou de opinião sobre a politica de bloqueio das portas dentro do range dos "well know services". Recentemente realizei um teste por acaso e descobri minha porta 80, 443 e outras completamente disponíveis na rede. Verificando os logs via webalizer, vi que a quantidade de acessos aumento significante. Olhando cuidadosamente os logs, verifiquei que os ataques também. Mas entre os ataques e a portas liberadas, eu prefiro a segunda alternativa.
Nesse fim de semana resolvi encarar um desafio diferente. Como disse Miod Vallat, em seu artigo que descreve a aventura no novo port do OpenBSD para a arquitetura AViiONs, acabei tendo a chance de ter mais tempo disponível do que eu esperava. Como não sabia muito bem o que fazer com todo esse tempo disponível, assim como o Miod mas dentro de meu nível de mediocridade (quem sou eu para tentar qualquer port de arquitetura), resolvi experimentar outros sabores de Unix em meu laptop, meu iBook 500, um Macintosh. Como o Linux, utilizando o kernel 2.6.15, continuava com os problemas de alocação de memória, resolvi testar os BSDs quando vi o anúncio do FreeBSD 6.1.
De cara descobri que o FreeBSD não suportava a arquitetura powerpc. Apesar de estar descrito no anúncio do release, não foi gerado um cd instalável para versão 6.1, somente 6.0. A versão 6.0 eu já tinha testado na época de seu lançamento. O sistema chega a dar boot, mas para logo após o reconhecimento de hardware. Não busquei muitas alternativas para tentar finalizar a instalação.
Então apontei meus esforços sobre o NetBSD e o OpenBSD.
Baixei todo o release do OpenBSD 3.9 com o wget e armazenei num diretório para instalação. No documento de INSTALL, há uma explicação sobre os procedimentos, principalmente para quem não tem os cds originais. Existe um pequeno iso para dar o boot e iniciar a instalação. Fiz isso e fui brindado com a tela do OpenBSD, com os caracteres em branco e fundo azul (com preto). A instalação ocorreu como na plataforma PC, rápido, fácil e com várias dicas e explicações. Ao final, o sistema retornou ao prompt do OpenBOOT do iBook, já que não estava tão automático assim. Precisei usar um:
boot hd:,ofwboot /bsd
para conseguir dar o boot no disco. De cara já percebi uma grande diferença em relação ao Linux: lentidão. Os caracteres de boot correram de forma muito mais lenta. Não desanimei e iniciei o ambiente gráfico. O mesmo tinha sido configurado corretamente graças ao Xorg, mas novamente percebi a lentidão do sistema. Continuei e iniciei a instalação dos pacotes para deixar o sistema igual ao que tinha anteriormente, com KDE, OpenOffice, etc. Como não queria utilizar o sistema de ports, que demora muito, usei o pkg_add, configurando somente a variável de ambiente para buscar os pacotes no repositório que eu desejava, no caso foi o ftp://ftp.das.ufsc.br/pub/OpenBSD/3.9/powerpc/ . Mas o que realmente me fez desistir foi o passo seguinte, enquanto o sistema instalava o restante dos pacotes. Descobri que as teclas <Ctrl> e <Alt> não tinham sido mapeadas, o que matava o uso do demais consoles, mas deixei isso para depois para configurar via xmodmap. Resolvi então recuperar o backup do sistema, que fiz ante de apagar tudo. Foi aí que a coisa ficou muito ruim. Enquanto o uso do disco foi intensivo, perdi a resposta do sistema. Simplesmente parada. Tive de esperar até o final da recuperação dos 3,5 GB de backup para retomar o controle. Como isso seria um ponto muito negativo e impactante em meu trabalho, resolvi para a experiência do OpenBSD por ali mesmo e partir para outra tentativa.
Durante o tempo que baixei o OpenBSD já iniciei também o download do NetBSD, release 3.0 para macppc, mas ao invés de utilizar o wget em ftp, utilizei o método de bittorrent, que funciona muito mais rápido. Primeiramente o boot já não funcionou (basta precionar a tecla "C" durante a inicialização do laptop, quando toca o sinal de boot). Fui forçado a utilizar o seguinte comando:
boot cd:,\ofwboot.xcf netbsd.macppc
O sistema inicializou com uma interface em caractér de uma forma mais rápida que o OpenBSD, o que me trouxe um certo alívio em minha escolha. A instalação do NetBSD é em modo texto, mas ao contrário do OpenBSD, muito mais intuitiva, por meio de menus. Segui com o particionamento do disco e instalação do sistema sem problemas. Rebootei para iniciar o novo sistema em disco e... nada. A partição de boot, onde o ofwboot.xcf estaria, não foi encontrada. Tentei buscar o mesmo no disco para inicializar manualmente e... não encontrei. Na instalação do OpenBSD, recebi uma mensagem clara de que isso estava ocorrendo, mas não vi nada na instalação do NetBSD. Busquei na documentação algo relativo a isso e também não encontrei nada que pudesse utilizar. Dei boot via cd no modo "Shell" e tentei encontrar alguma maneira de corrigir o sistema. Não consegui achar a maneira correta e, frustrado, desisti.
Peguei novamente meu cd do Ubuntu para ppc (ou powerpc) e refiz a instalação, que ocorreu muito mais facilmente que os BSDs (ponto positivo, admito). Voltei ao sistema "Brezzy", o corrente, uma vez que utilizava uma versão *testing* do próximo release, "Drapper". Terminada a instalação, que levou umas 10 vezes mais tempo, eu já tinha o sistema utilizável, com ambiente gráfico e tudo mais. Realmente algo a se pensar no quesito usabilidade. Quanto ao gerenciamento de memória, deixei isso pra lá, afinal só a aventura por vários sistemas operacionais que isso me proporcionou, já valeu a pena.
Um link interessante enviado pelo amigo PH na lista dos trutas. Conta a história do uso do separador de diretórios do DOS, "\", ao invés do uso do separador "/" do Unix. Bastante interessante.
http://blogs.msdn.com/larryosterman/archive/2005/06/24/432386.aspx
Dica para teste de servidor https. Como o mesmo usa uma sessão criptografada, um simples "telnet server 80" não é possível. Eu lembrava de ter feito algo com o openssl, então , buscando na rede, encontrei a forma de fazer isso (thanks google!):
$ openssl s_client -connect www.gmail.com:443 -state -debug
GET / HTTP/1.0
Fonte: http://httpd.apache.org/docs/2.0/ssl/ssl_faq.html
Atualizado em: Mon Jan 28 16:45:37 BRST 2013
Também utilizo bastante a forma abaixo:
(echo -e "GET / HTTP/1.0\n\n"; sleep 1) | \
openssl s_client -connect www.google.com:443 -state
Dessa forma é possível verificar se a página é carregada corretamente ou não de uma forma mais rápida.
Um link interessante sobre WPA2 e AES para autenticação com sistema de chaves assimétricas e geração de chaves aleatórias. Substitui com muito mais segurança o factível WEP. Infelizmente sua implementação não é tão fácil assim e nem todos equipamentos funcionam a contento. Mas aqui fica a referência.
Diferenças de hardware sempre existiram, mas desde que instalei o Urubuntu, digo, Ubuntu no meu iBook e tudo funcionou exatamente igual ao meu PC, não prestei mais atenção nisso. Até o momento. Brincando com uma DWL-G122, placa Wi-Fi B/G via USB, com revisão de hardware A1, que não é chipset prism e por isso mesmo estava compilando o suporte via ndiswrapper, descobri um pequeno bug na compilação:
/usr/src/modules/ndiswrapper/misc_funcs.c:865:
warning: `regparm' attribute directive ignored
/usr/src/modules/ndiswrapper/misc_funcs.c:873:
warning: `__stdcall__' attribute directive ignored
/usr/src/modules/ndiswrapper/misc_funcs.c:873:
warning: `regparm' attribute directive ignored
{standard input}: Assembler messages: {standard input}:2719: Error: Unrecognized opcode: `movl'
make[2]: *** [/usr/src/modules/ndiswrapper/misc_funcs.o] Error 1 make[1]: ***
[_module_/usr/src/modules/ndiswrapper]
Error 2 make[1]: Leaving directory `/usr/src/linux-source-2.6.12'
make: *** [default] Error 2
Buscando no arquivo misc_funcs.c, verifiquei que fazia parte da seguinte chamada:
#ifdef CONFIG_X86_64 __asm__ __volatile__("movq %%rsp, %0\n" : "=g"(i));
#else __asm__ __volatile__("movl %%esp, %0\n" : "=g"(i));
#endif return (void *)i; }
Código assembly de X86... problema. Tentei compreender o dito e buscar um equivalente. Eis que encontrei o valioso link:
Agora fica a questão: como reescrever isso para PPC???? Será que a brincadeira vale algum tempo em cima disso?
Linux xuxu 2.6.12-10-powerpc #1 Mon Jan 16 17:38:57 UTC 2006 ppc GNU/Linux
Finalmente criei coragem e instalei o Ubuntu em meu laptop, um iBook. Primeiramente fiz um teste com o live cd, que funcionou bem (basta apertar "c" durante o boot do MacOSX para selecionar boot pelo cd). Fiz o bom e velho backup (tar cvf - -C / . | ssh backupserver -l helio "dd of=/usr/local/BKP/xuxu-fullbackup-macosx.tar") e mandei ver. Apanhei um pouco com o particionamento até descobrir que a mídia do cd de instalação estava ruim. Passado por isso, tudo correu normalmente e sem sustos.
Infelizmente acabei errando a restauração do backup e apaguei tudo o que estava salvo, perdendo duas semanas de trabalho e mails, ou seja, nada preocupante. Depois de tudo instalado, atualizei o sistema para o Kubuntu, a versão do Ubuntu baseada no ambiente kde, uma vez que concordo com Linus Torvalds sobre o fato do ambiente Gnome ser extremamente espartano em relação à usabilidade.
Os resultados foram:
Esquema de configuração de switches L-3 da D-Link para OSPF. Testei em um DGS-3324SR, mas deve funcionar em toda linha.
Os passos descritos abaixo são:
1) criar uma VLAN
2) criar uma interface (ipif) para configurar um IP na VLAN
3) remover a porta que será utilizada da VLAN default e adicionar na VLAN criada
4) criar uma área OSPF e adicionar a interface criada (da VLAN) nessa área
Page 33 of 35