Written by: Helio Loureiro
Category: FreeBSD
Hits: 11281

Vendo a chegada do novo release, 7.0, resolvi encarar o upgrade. Uma das novas características que chamou mais minha atenção foi o novo algoritmo escalonador, ULE, não ativo por padrão, mas através da configuração de kernel:

OPTION SCHED_ULE

Sua interação com sistemas multimídia é realmente melhor em quesitos de resposta, algo que supreendeu até em relação ao scheduler do Linux, também capaz tem preempção tempo-real para esse tipo de aplicação.
Apesar de já portado para o também embrionário FreeBSD-6.3, outras vantagens me fizeram optar pelo upgrade (um parto bem doloroso, diga-se de passagem e descrito mais adiante) como suporte melhorados a novos drivers, que fez com que minha interface FastEthernet USB, USB200M, funcionasse sem nenhuma configuração adicional, simplesmente plugando. Esse não foi o único dispositivo, também minhas interfaces wireless USB da Belkin passaram a funcionar sem o uso do ndiswrapper.

Logo de início minha felicidade foi infinita e tive a sensação de ter dado um passo na direção certa ao fazer o upgrade para a versão CURRENT (isso foi em finados de dezembro, antes do lançamento do RC1). Não durou mais que o tempo necessário para começar a descobrir várias aplicações não funcionando corretamente.

Descobri primeiramente que o OpenOffice simplesmente não abria, com um erro de libc. Após uma busca no google, descobri que era necessário reinstalar ou recompilar TODOS os aplicativos novamente. Tarefa ingrata, devido ao tempo que levava, mas eficaz. Infelizmente eu estava em enganado em relação ao segundo.

Umas das aplicações necessárias para meu trabalho é uma aplicação em java que roda sobre sistema "SSL VPN", da Juniper Networks. Ela cria links entre os sistemas de Pré-Pago que gerencio remotamente, localizados em Dallas, US. Como a lei de Murphy costuma ser cruél, justamente o java resolveu não funcionar mais. Como problema pouco é bobagem, para completar minha miséria, encontrei problemas no ports:


 musashi# cd /usr/ports/java/jdk14 
musashi# make build
 ===> jdk-1.4.2p8_10 is marked as broken: Does not compile with GCC 4.2.
 *** Error code 1 Stop in /usr/ports/java/jdk14.

Como o jdk15 eu já tinha instalado e não funcionava corretamente com o "SSL VPN", parti para a compilação do jdk16. Após mais de 4 horas aguardando o fim do mesmo, fiz a alteração através da alteração do link em /usr/local/lib/browser_plugin/libjavaplugin_oji.so apontando para o path /usr/local/jdk1.6.0/jre/plugin/i386/ns7/libjavaplugin_oji.so.

Consegui abrir a aplicação, mas a mesma retorna erro de conexão ao tentar conectar nos servidores, com uma exceção java the http thread. Tentei compilar o jdk14 novamente, mas com outras versões de gcc. Primeiro gcc2.95, seguido pelo gcc4.1 e gcc3.4 (o que funcionou melhor), finalmente o gcc4.3. Todas falharam em algum ponto de compilação. Após várias pesquisas sobre como compilar ou tentar corrigir alguns dos jdk (na verdade 1.4.2 ou 1.6), encontrei uma dica num fórum sobre não utilizar a opção de IPv6 na compilação de qualquer um dos jdk. Tentei a esmo essa solução no jdk15 e consegui fazer a aplicação funcionar (ufffffsss...).

Infelizmente algumas aplicações ainda insistem em não funcionar corretamente. Entre elas está o firefox, que de tempos em tempos dá um crash com o erro abaixo.


 The program 'gecko' received an X Window System error. 
 This probably reflects a bug in the program. 
 The error was 'BadShmSeg (invalid shared segment parameter)'. 
 (Details: serial 31 error_code 177 request_code 146 minor_code 2) 
 (Note to programmers: normally, X errors are reported asynchronously; 
  that is, you will receive the error a while after causing it. 
  To debug your program, run it with the --sync command line option to change this behavior. 
  You can then get a meaningful backtrace from your debugger if you break on the gdk_x_error() function.)

Nem a recompilação foi capaz de amenizar esse problema. Enfim companheiro, a luta continua...

 



Copyright (c) 1992-2008 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 
The Regents of the University of California. All rights reserved. 
FreeBSD is a registered trademark of The FreeBSD Foundation. 
FreeBSD 7.0-PRERELEASE #18: Sat Jan 12 14:16:24 BRST 2008 
This email address is being protected from spambots. You need JavaScript enabled to view it.:/usr/src/sys/i386/compile/MUSASHI Timecounter "i8254" frequency 1193182 Hz quality 
0 CPU: Intel(R) Pentium(R) M processor 1.73GHz (799.68-MHz 686-class CPU) 
Origin = "GenuineIntel" Id = 0x6d8 Stepping = 8 
Features=0xafe9fbff Features2=0x180 
AMD Features=0x100000 real memory = 528285696 (503 MB) 
avail memory = 506576896 (483 MB) 
kqemu version 0x00010300 
kqemu: KQEMU installed, max_locked_mem=253580kB. 
kbd1 at kbdmux0 
ath_hal: 0.9.20.3 (AR5210, AR5211, AR5212, RF5111, RF5112, RF2413, RF5413) 
cpu0 on motherboard 
est0:  on cpu0 
est: CPU supports Enhanced Speedstep, but is not recognized. 
est: cpu_vendor GenuineIntel, msr 6120d2906000612 
device_attach: est0 attach returned 6 
p4tcc0:  on cpu0 
pcib0:  pcibus 0 on motherboard 
pci0:  on pcib0 
vgapci0:  port 0x5000-0x5007 mem 0xd0800000-0xd087ffff,0xc0000000-0xcfffffff,0xd0880000-0xd08bffff 
 irq 10 at device 2.0 on pci0 
agp0:  on vgapci0 
agp0: detected 7932k stolen memory 
agp0: aperture size is 256M 
drm0:  on vgapci0 
info: [drm] AGP at 0xc0000000 256MB 
info: [drm] Initialized i915 1.5.0 20060119 
vgapci1:  mem 0xd0900000-0xd097ffff at device 2.1 on pci0 
pcib1:  irq 10 at device 28.0 on pci0 
pci16:  on pcib1 
pci0:16:0:0: invalid VPD data, remain 0xffff 
bge0:  mem 0xd0000000-0xd000ffff irq 10 at device 0.0 on pci16 
miibus0:  on bge0 
brgphy0:  PHY 1 on miibus0 
brgphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto 
bge0: Ethernet address: 00:14:c2:e7:d2:55 
bge0: [ITHREAD] 
pcib2:  at device 28.1 on pci0 
pci32:  on pcib2 
uhci0:  port 0x2000-0x201f irq 10 at device 29.0 on pci0 
uhci0: [GIANT-LOCKED] 
uhci0: [ITHREAD] 
usb0:  on uhci0 
usb0: USB revision 1.0 
uhub0:  on usb0 
uhub0: 2 ports with 2 removable, self powered 
uhci1:  port 0x2020-0x203f irq 11 at device 29.1 on pci0 
uhci1: [GIANT-LOCKED] 
uhci1: [ITHREAD] 
usb1:  on uhci1 
usb1: USB revision 1.0 
uhub1:  on usb1 
uhub1: 2 ports with 2 removable, self powered 
uhci2:  port 0x2040-0x205f irq 11 at device 29.2 on pci0 
uhci2: [GIANT-LOCKED] 
uhci2: [ITHREAD] 
usb2:  on uhci2 
usb2: USB revision 1.0 
uhub2:  on usb2 
uhub2: 2 ports with 2 removable, self powered 
ehci0:  mem 0xd0980000-0xd09803ff irq 10 at device 29.7 on pci0 
ehci0: [GIANT-LOCKED] 
ehci0: [ITHREAD] 
usb3: EHCI version 1.0 usb3: wrong number of companions (4 != 3) 
usb3: companion controllers, 2 ports each: usb0 usb1 usb2 
usb3:  on ehci0 
usb3: USB revision 2.0 
uhub3:  on usb3 
uhub3: 8 ports with 8 removable, self powered 
pcib3:  at device 30.0 on pci0 
pci2:  on pcib3 
cbb0:  mem 0xd0400000-0xd0400fff irq 11 at device 6.0 on pci2 
cardbus0:  on cbb0 
pccard0:  on cbb0 
cbb0: [ITHREAD] 
pci2:  at device 6.3 (no driver attached) 
pci2:  at device 6.4 (no driver attached) 
pci2:  at device 6.5 (no driver attached) 
pcm0:  port 0x2100-0x21ff,0x2200-0x223f mem 0xd0981000-0xd09811ff,0xd0982000-0xd09820ff irq 11 at device 30.2 on pci0 
pcm0: [ITHREAD] 
pcm0:  
pci0:  at device 30.3 (no driver attached) 
isab0:  at device 31.0 on pci0 
isa0:  on isab0 
atapci0:  port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x2580-0x258f irq 10 at device 31.1 on pci0 
ata0:  on atapci0 
ata0: [ITHREAD] 
ata1:  on atapci0 
ata1: [ITHREAD] pmtimer0 on isa0 
orm0:  at iomem 0xc0000-0xcffff pnpid ORM0000 on isa0 
sc0:  at flags 0x100 on isa0 
sc0: VGA  
vga0:  at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 
atkbdc0:  at port 0x60,0x64 on isa0 
atkbd0:  irq 1 on atkbdc0 kbd0 at atkbd0 
atkbd0: [GIANT-LOCKED] 
atkbd0: [ITHREAD] 
psm0:  irq 12 on atkbdc0 
psm0: [GIANT-LOCKED] 
psm0: [ITHREAD] 
psm0: model IntelliMouse, device ID 3 
ppc0:  at port 0x378-0x37f irq 7 on isa0 
ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode 
ppc0: FIFO with 16/16/8 bytes threshold 
ppbus0:  on ppc0 
lpt0:  on ppbus0 
lpt0: Interrupt-driven port 
ppi0:  on ppbus0 
ppc0: [GIANT-LOCKED] 
ppc0: [ITHREAD] sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 
sio0: type 16550A 
sio0: [FILTER] 
sio1: configured irq 3 not in bitmap of probed irqs 0 
sio1: port may not be enabled 
unknown:  can't assign resources (memory) 
unknown:  can't assign resources (port) 
unknown:  can't assign resources (irq) 
unknown:  can't assign resources (port) 
unknown:  can't assign resources (port) 
sio4:  at port 0x3e8-0x3ef,0x300-0x30f irq 3 drq 3 pnpid SMCf010 on isa0 
sio4: type 16550A 
sio4: [FILTER] 
unknown:  can't assign resources (memory) Timecounters tick every 1.000 msec 
ad0: 38154MB  at ata0-master UDMA100 
acd0: DVDROM  at ata0-slave PIO4 
GEOM_LABEL: Label for provider acd0 is iso9660/WGR614v7. 
Trying to mount root from ufs:/dev/ad0s1a 
WARNING: attempt to net_add_domain(bluetooth) after domainfinalize() 
drm0: [ITHREAD] 
ath0:  mem 0xd0410000-0xd041ffff irq 11 at device 0.0 on cardbus0 
ath0: [ITHREAD] 
ath0: using obsoleted if_watchdog interface 
ath0: Ethernet address: 00:13:46:14:1a:31 
ath0: mac 7.9 phy 4.5 radio 5.6 
ath0: link state changed to UP