Utilizando boot em HD externo com VirtualBox

Categoria: Linux Publicado: Segunda, 10 Maio 2010 Escrito por Helio Loureiro

Resolvi fazer um upgrade no Ubuntu instalado no meu HD Externo. Afinal o mesmo está com o release 8.10 instalado, mais que desatualizado. Pretendo chegar à versão 10.04, mas a forma de fazer isso já é outro assunto.

Tentei em vão colocar o HD externo, reconhecido como /dev/sdb no OpenSuse 11.2, como um HD, CDROM e FLOPPY para boot. Não consegui diretamente, já que o VirtualBox procurar por um dispositivo com extensão VMDK ou VDI.

Consegui adicionar como dispositivo USB, mas não teve nenhum efeito no boot, que simplesmente falhava (justamente por não ter partição bootável reconhecida).

Googleando pela Internet, encontrei um comando que associa o dispositivo que está em /dev com um arquivo VMDK:

{CODE} VBoxManage internalcommands createrawvmdk -filename /tmp/dev1.vmdk -rawdisk /dev/disk -register {/CODE}

Estava no Fórum do VirtualBox, com uma pergunta relacionada a minha. Era uma dica para MacOSX, mas funcionou perfeitamente para Linux. E deve funcionar também para outros *nix, como FreeBSD e Solaris.

O resultando para mim foi:

{CODE} helio@musashi:Virtualization$ VBoxManage internalcommands createrawvmdk -filename $PWD/Ubuntu-external-disk-sdb.vmdk -rawdisk /dev/sdb -register Sun VirtualBox Command Line Management Interface Version 3.1.6 (C) 2005-2010 Sun Microsystems, Inc. All rights reserved. RAW host disk access VMDK file /usr/local/tmp/Virtualization/Ubuntu-external-disk-sdb.vmdk created successfully. {/CODE}

Após isso, consegui ver a tela de boot (menu do Grub), mas o mesmo parava durante o carregamento do splashscreen.

Resolvi esse problema removendo o suporte à aceleração 3D, depois de uma olhada nos logs. Agora estou rumo ao Ubuntu 10.04!

Laptop uptime

Categoria: Linux Publicado: Sexta, 20 Novembro 2009 Escrito por Helio Loureiro

Já fiz upgrade pra recém lançada versão 11.2. Mas estou gostando do uso do Suse, com zypper. Inclusive consegui uma grande conquista:

7:02pm up 46 days 5:44, 12 users, load average: 0.58, 0.37, 0.16

46 dias sem desligar o sistema...

Placa 3G Sony Ericsson PC300

Categoria: Linux Publicado: Sexta, 31 Julho 2009 Escrito por Helio Loureiro

Finalmente tive a oportunidade de pegar uma das placas 3G, com chip da Claro. Uma das vantagens da migração do FreeBSD pro Linux é justamente a facilidade no reconhecimento de novos hardwares. A placa foi identificada de imediato pelo meu OpenSuse 11:

usb usb7: configuration #1 chosen from 1 choice hub 7-0:1.0: USB hub found hub 7-0:1.0: 1 port detected 
usb usb7: New USB device found, idVendor=1d6b, idProduct=0001 
usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1 
usb usb7: Product: OHCI Host Controller 
usb usb7: Manufacturer: Linux 2.6.25.20-0.4-default ohci_hcd 
usb usb7: SerialNumber: 0000:03:00.1 
usb 6-1: new full speed USB device using ohci_hcd and address 2 
usb 6-1: configuration #2 chosen from 1 choice 
usb 6-1: New USB device found, idVendor=0fce, idProduct=d0b2 
usb 6-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3 
usb 6-1: Product: Sony Ericsson PC300 
usb 6-1: Manufacturer: Sony Ericsson 
usb 6-1: SerialNumber: 3579310101884440 
cdc_acm 6-1:2.1: ttyACM0: USB ACM device 
cdc_acm 6-1:2.3: ttyACM1: USB ACM device 
usbcore: registered new interface driver cdc_acm 
drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters 
usb0: register 'cdc_ether' at usb-0000:03:00.0-1, CDC Ethernet Device, 02:80:37:0a:03:00 
usbcore: registered new interface driver cdc_ether 
usb0: no IPv6 routers present

O driver cdc_acm foi carregado automaticamente.

Para fazer a discagem, instalei o aplicativo wvdial, velho companheiro dos tempos de modem discado, à 14400 bps. Utilizando o wvdialconf, a placa 3G é automagicamente identificada:

Editing `/etc/wvdial.conf'.

Scanning your serial ports for a modem.

Modem Port Scan<*1>: S0   S1
ttyS2<*1>: ATQ0 V1 E1 -- failed with 2400 baud, next try: 9600 baud
ttyS2<*1>: ATQ0 V1 E1 -- failed with 9600 baud, next try: 115200 baud
ttyS2<*1>: ATQ0 V1 E1 -- and failed too at 115200, giving up.
Modem Port Scan<*1>: S3
ttyS4: No such device or address
Modem Port Scan<*1>: S4
ttyS5: No such device or address
Modem Port Scan<*1>: S5
ttyS6: No such device or address
Modem Port Scan<*1>: S6
ttyS7: No such device or address
Modem Port Scan<*1>: S7
WvModem<*1>: Cannot get information for serial port.
ttyACM0<*1>: ATQ0 V1 E1 -- OK
ttyACM0<*1>: ATQ0 V1 E1 Z -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1; -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1; &D2; -- OK
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0 -- OK
ttyACM0<*1>: Modem Identifier: ATI -- PC300
ttyACM0<*1>: Speed 4800: AT -- OK
ttyACM0<*1>: Speed 9600: AT -- OK
ttyACM0<*1>: Speed 19200: AT -- OK
ttyACM0<*1>: Speed 38400: AT -- OK
ttyACM0<*1>: Speed 57600: AT -- OK
ttyACM0<*1>: Speed 115200: AT -- OK
ttyACM0<*1>: Speed 230400: AT -- OK
ttyACM0<*1>: Speed 460800: AT -- OK
ttyACM0<*1>: Max speed is 460800; that should be safe.
ttyACM0<*1>: ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0 -- OK
WvModem<*1>: Cannot get information for serial port.
ttyACM1<*1>: ATQ0 V1 E1 -- OK
ttyACM1<*1>: ATQ0 V1 E1 Z -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1; -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1; &D2; -- OK
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0 -- OK
ttyACM1<*1>: Modem Identifier: ATI -- PC300
ttyACM1<*1>: Speed 4800: AT -- OK
ttyACM1<*1>: Speed 9600: AT -- OK
ttyACM1<*1>: Speed 19200: AT -- OK
ttyACM1<*1>: Speed 38400: AT -- OK
ttyACM1<*1>: Speed 57600: AT -- OK
ttyACM1<*1>: Speed 115200: AT -- OK
ttyACM1<*1>: Speed 230400: AT -- OK
ttyACM1<*1>: Speed 460800: AT -- OK
ttyACM1<*1>: Max speed is 460800; that should be safe.
ttyACM1<*1>: ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0 -- OK

Found an USB modem on /dev/ttyACM0.
Modem configuration written to /etc/wvdial.conf.
ttyACM0: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0"
ttyACM1: Speed 460800; init "ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0"


Esperava ver mais velocidade, mas 460k já é melhor que nada. Infelizmente a configuração padrão não funcionou de jeito nenhum. Vasculhando google afora, encontrei o link de configuração para outro tipo de modem, o E-226:

Adaptei a mesma para o PC300, como mostra meu /etc/wvdial.conf abaixo:

[Dialer Defaults]
Carrier Check = off
Init1 = ATZ
Init2 = ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0
Password = claro
Ask Password = 0
Check Def Route = 1
Phone = *99***1#
Idle Seconds = 0
Modem Type = Analog Modem
Stupid Mode = 1
Compuserve = 0
Baud = 460800
Auto DNS = off
Dial Command = ATDT
Modem = /dev/ttyACM0
ISDN = 0
Username = claro

[Dialer claro3g]
Stupid Mode = on
Password = claro
Auto Reconnect = off
Username = claro
Phone = *99***1#

Também precisei editar o arquivo /etc/ppp/peers/wvdial para desabilitar as opções de compressão:

plugin passwordfd.so
noauth
name wvdial
debug
kdebug 9
record /tmp/pppd.dump
noccp
novj
novjccomp

Com isso consegui a conexão via 3G, bastando digitar wvdial.

--> WvDial: Internet dialer version 1.60
--> Cannot get information for serial port.
--> Initializing modem.
--> Sending: ATZ
ATZ
OK
--> Sending: ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0
ATQ0 V1 E1 S0=0 &C1; &D2; +FCLASS=0
OK
--> Modem initialized.
--> Sending: ATDT*99***1#
--> Waiting for carrier.
ATDT*99***1#
~[7f]}#@!}!}!} }9}#}%B#}%}(}"}'}"}"}&} } } } }%}&n;>}/qzY~
CONNECT
--> Carrier detected.  Starting PPP immediately.
--> Starting pppd at Fri Jul 31 21:34:15 2009
--> Pid of pppd: 14211
--> Using interface ppp0
--> Authentication (CHAP) started
--> Authentication (CHAP) successful
--> local  IP address 189.94.168.217
--> remote IP address 10.64.64.64
--> Script /etc/ppp/ip-up run successful
--> Default route Ok.
--> Nameserver (DNS) Ok.
--> Connected... Press Ctrl-C to disconnect

Não é muito rápido, mas ajuda muito em locais sem opção de Internet, como quando estou dentro do site de clientes.

Migrando para OpenSuse

Categoria: Linux Publicado: Sexta, 10 Julho 2009 Escrito por Helio Loureiro

Depois de mais de 3 anos rodando exclusivamente FreeBSD em meu laptop (sempre na versão RELEASE), finalmente resolvi voltar ao universo Linux. Nada contra os BSDs, especialmente o FreeBSD, mas era isso ou usar Windão, e Vista ainda por cima. Preferi ficar com o Suse, ou melhor, OpenSuse.

Realmente a instalação é bem facilitada. Comecei com o release 10.3, compatível com a versão do Enterprise Suse em uso na empresa, mas vi que o OpenSuse 11.1 também pode ser usado sem problemas (sempre a revelia do depto. de TI).

Filesystems criptografados, hibernação e uso da webcam no skype foram algumas das melhorias conseguidas com Linux. VirtualBox também está funcionando perfeitamente, o que me permite instalar o FreeBSD em uma máquina virtual.

Em semelhança ao Debian/Ubuntu, Suse/OpenSuse utilizam o aplicativo "zypper" para manter e atualizar o sistema. Bem inferior ao sistema do apt-get, mas ainda assim superior ao RPM por si só. Fui levado a versões não funcionais do xorg várias vezes por conta do uso do zypper. Fora que o sistema se perde quando proxy é habilitado ou desabilitado depois do sistema já em funcionamento. Nem o Yast ajuda muito nesse ponto.

O maior problema que passei, ou melhor, ainda passo, é em relação ao Xorg. O upgrade para o release 11.1 fez com que a interface gráfica ficasse tão lenta que era quase impossível sua utilização. glxgears mostrava por volta de 10, até menos, fps. Pelos links abaixo, foi possível ver que é um problema devido a mudança de arquitetura no xorg, da antiga XAA para EXA, causando vários problemas com chipsets Intel, inclusive o 945GM, que tenho no laptop.

Seguindo as dicas do link, consegui melhorar a performance adicionando "INTEL_BATCH=1" no /etc/environment, e modificando o "/etc/X11/xorg.conf" da seguinte forma:


Section "Device" 
    BoardName "945 GM" 
    Driver "intel" 
    Identifier "Device[0]" 
    Screen 0 
    VendorName "Intel" 
    Option "AccelMethod" "EXA" 
    Option "MigrationHeuristic" "greedy" 
    Option "DRI" "True" 
    Option "ExaNoComposite" "false" 
    Option "monitor-LVDS" "Monitor[0]" 
EndSection

Ainda inclui um script para forçar a configuração do registradores do placa de vídeo:

echo "base=0xe0000000 size=0x10000000 type=write-combining" >> /proc/mtrr 

Sendo 0xe0000000o endereçamento da placa de vídeo, que pode ser visto com "lspci -v". Com isso consegui uma performance melhor, como mostra a saída do glxgears:

5630 frames in 5.0 seconds = 1125.839 FPS 
5623 frames in 5.0 seconds = 1124.464 FPS 
5608 frames in 5.0 seconds = 1121.535 FPS 
5598 frames in 5.0 seconds = 1119.583 FPS 
5611 frames in 5.0 seconds = 1121.975 FPS 
5633 frames in 5.0 seconds = 1126.477 FPS 
5631 frames in 5.0 seconds = 1126.196 FPS 
5580 frames in 5.0 seconds = 1115.859 FPS 
5633 frames in 5.0 seconds = 1126.471 FPS 
5519 frames in 5.0 seconds = 1103.767 FPS 
5525 frames in 5.0 seconds = 1104.990 FPS 
5514 frames in 5.0 seconds = 1102.650 FPS 
5468 frames in 5.0 seconds = 1093.563 FPS 
5413 frames in 5.0 seconds = 1082.578 FPS 
5363 frames in 5.0 seconds = 1072.389 FPS 
5516 frames in 5.0 seconds = 1103.187 FPS 
5559 frames in 5.0 seconds = 1111.795 FPS

Infelizmente, após o sistema voltar da hibernação, o problema se repete, mas provavelmente deve depender de alguma atualização do próprio xorg. Enquanto isso, longa vida ao OpenSuse!

Linux em Palm Tungsten E

Categoria: Linux Publicado: Terça, 13 Janeiro 2009 Escrito por Helio Loureiro

 

 Estava buscando atualizações para meu Palm Tungsten E quando encontrei o link abaixo, que mostra o mesmo rodando Linux.

Muito legal, mas pouco informativo, pois somente mostra em funcionamento, mas não traz muita informação de como fazer isso. Uma rápida busca no google forneceu outro link interessante: Palm Tungsten E rodando Linux, no Guia do Hardware. Infelizmente também muito desatualizado, uma vez que o link onde o a imagem bootável está não se encontra mais lá (a imagem, não o link).

Ainda seguindo o tutorial do Guia do Hardware, baixei a versão do Familia-PDA para HP6300. Agora falta acertar o garux para boot. Eu já tinha testado anteriormente, mas só consegui apagar meus arquivos do Palm, seguido de um kernel panic. Vamos ver se consigo mais sucesso dessa vez...