This article is linked by:

http://tuxmobil.org/hp_compaq.html

 

http://tuxmobil.org/mobile_bsd.html

{mosimage} In this article I'll break my style and write in english since its aimed to describe my experience with a laptop Compaq nc6220 and FreeBSD-7.0-PRERELEASE. Hopefully it can be a source of information for further reference.

This a standard laptop from the company (Ericsson). It isn't exactly powerfull but can help you to have your work done. It's equiped with:

  • Processor Pentium Mobile 1.73 GHz
  • 512 MB RAM
  • 40 GB Hard-disk
  • 14" screen
  • bluetooth
  • 3 usb ports
  • serial port
  • vga and s-video outputs
  • CD/DVD reader (yes, reader-only)
  • SD Memory card reader
  • Gigabit Ethernet port
  • Internal Modem

I found some other descriptions mismatching my configuration. It's probably because its a corporate machine and better improvements like wi-fi and CD writer were just removed. Sad but that's my reality.

Initially I installed FreeBSD-6.0 on it. Since then I've coming upgrading, over and over. I was running FreeBSD-6.3-RC1 when I decide to move on, for FreeBSD-7.0 (CURRENT at that time). As any upgrade, it was painfull.

I could use alternative hardware for a few purpouses, like a PCMCIA interface for Wi-Fi, but some internal parts didn't work at all. I was force to completely disable ACPI since it was hanging it each 15 seconds. I found unplug the power cable could fix it, but it was an annoying task to be done frequently. I could found some discussions about this issue,. but no effective fix was provided until now.

Right now the current status follows:

  • Wi-Fi via DWL-G650 (D-Link): working with if_ath.ko
  • Sound board Intel 82830M/MG AC '97:working with snd_ich.ko
  • Video card Intel 82915GM (915GM GMCH): working with i810 driver (xorg)
  • ACPI: not working (In fact you must disable it at all)
  • Gigabit Ethernet Interface: working with bge driver
  • SD Card Reader: not working
  • Internal modem: not working

If you could go further then me, don't hesitate to share your success :-)

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.

Uma das melhores aquisições em minhas viagens foi o HD externo de 160 GB da Iomega. Pequeno, leve e suportado pelo FreeBSD:

umass0: Iomega Iomega HDD USB2.0 Drive, rev 2.00/2.40, addr 2 
da0 at umass-sim0 bus 0 target 0 lun 0
da0: Fixed Direct Access SCSI-0 device
da0: 40.000MB/s transfers
da0: 152627MB (312581808 512 byte sectors: 255H 63S/T 19457C)

Ao formatar, decidi criar uma instalação de Ubuntu sobre o mesmo, utilizando uma partição (da0s1) como raiz, outra (da0s2) maior como home, uma para troca com usuários de windows (da0s6) e uma última com o que sobrou (da0s7), que ficou como "/mnt/ots".

Utilizando o fdisk-linux, disponível no ports, é possível criar e depois visualizar as partições.

musashi# fdisk-linux -l /dev/da0 

Disk /dev/da0: 160.0 GB, 160041885696 bytes

255 heads, 63 sectors/track, 19457 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Device Boot Start End Blocks Id System
/dev/da0s1 1 608 4883728+ 83 Linux
/dev/da0s2 609 12766 97659135 83 Linux
/dev/da0s3 12767 19457 53745457+ 5 Extended
/dev/da0s5 12767 12888 979933+ 82 Linux swap
/dev/da0s6 18242 19457 9767488+ b Win95 FAT32
/dev/da0s7 12889 18241 42997941 83 Linux
Partition table entries are not in disk order

Sendo que o tipo Ext3 (Journalling) é suportado pelo FreeBSD, nada melhor que o utilizar para guardar os dados, fazendo todo sincronismo de UFS para Ext3 e tendo um sistema backup, em Linux, disponível no HD externo.

Para fazer o mount/umount, criei um pequeno script, que segue abaixo, já que o sistema de automount não reconheçe perfeitamente os devices e respectivos pontos de montagem, fora o fato do mesmo alterar a posição de da0 para da1 ou qualquer outro da, dependendo de qual outro dispositivo estiver conectado.

mount_iomega.sh

#! /bin/sh 
case $1 in
    -m) ;;

    -u) ;;
     *) echo "Use: $0 [-m|-u]"
        echo " -m: mount disks "
        echo " -u: umount disks "
        exit 1
        ;;
esac

echo "Finding Iomega"
### Finding device
umass=`dmesg | grep -i iomega | tail -1|awk -F":" '{print $1}'`
umass_id=`echo $umass | sed 's/umass//'`
device=`dmesg | grep "umass-sim$umass_id" | tail -1 |awk '{print $1}'`

if [ ! $umass_id ] ; then
    echo "Impossible to find Iomega device"
    exit 1
fi

case $1 in
    -m) echo "Checking partitions"
        for id in 1 2 7
            do
            fsck.ext3 -y /dev/${device}s${id}
        done
        for id in 6
            do
            fsck_msdosfs -y /dev/${device}s${id}
        done
        echo "Mounting partitions"
        mount | grep "/dev/${device}s1" > /dev/null 2>&1
        if [ $? -ne 0 ]; then
            mount_ext2fs /dev/${device}s1 /mnt/ext2
        fi
        mount | grep "/dev/${device}s2" > /dev/null 2>&1
        if [ $? -ne 0 ]; then
            mount_ext2fs /dev/${device}s2 /mnt/ext2/home
        fi
        mount | grep "/dev/${device}s7" > /dev/null 2>&1
        if [ $? -ne 0 ]; then
            mount_ext2fs /dev/${device}s7 /mnt/ext2/mnt/ots
        fi
        mount | grep "/dev/${device}s6" > /dev/null 2>&1
        if [ $? -ne 0 ]; then
            mount_msdosfs -u 1000 -g 100 -o longnames -m 777 /dev/${device}s6 /mnt/msdos
        fi
        ;;

    -u) for dir in msdos ext2/mnt/ots ext2/home ext2
            do
            echo "Umounting: /mnt/$dir"
            umount /mnt/$dir
        done
        ;;
esac

 

Finalmente aumentei meu arsenal de brinquedos. Novo PSP Slim. Conexão WLAN e USB. Através dessa, funciona perfeitamente com BSD:

umass0: Sony "PSP" Type A, rev 2.00/1.00, addr 2 
da0 at umass-sim0 bus 0 target 0 lun 0 da0: <SONY "PSP" MS 1.00> 
Removable Direct Access SCSI-0 device da0: 40.000MB/s transfers 
da0: 61MB (126848 512 byte sectors: 64H 32S/T 61C) 

Pode ser acessado com:

 mount_msdosfs -o longnames -m 777 /dev/da0s1 /mnt/PSP 

Minha diversão agora é tentar acertar a codificação de filmes para assistir no PSP, já que o mesmo tem saída pra TV (e claro que comprei o cabo :-).

A melhor dica que encontrei foi em:

Tentei fazer um resample de um vídeo para adequar ao PSP, mas falhou com o seguinte erro:

 helio@musashi:torrents$ ffmpeg -i Video.mp4 -r 29 -b 768k -ar 24000 -ab 64k -s 320x240 M4V00001.MP4 
FFmpeg version SVN-r10657, Copyright (c) 2000-2007 Fabrice Bellard, et al. 
configuration: --cc=cc --prefix=/usr/local --make=gmake --disable-debug --enable-memalign-hack --enable-shared --enable-pp 
--extra-cflags=-I/usr/local/include/vorbis -msse -I/usr/local/include --extra-ldflags=-L/usr/local/lib -la52 --extra-libs=-pthread
--enable-gpl --enable-pthreads --mandir=/usr/local/man --enable-liba52 --enable-liba52bin --enable-libfaad --enable-libfaadbin
--enable-libgsm --enable-libmp3lame --enable-libogg --enable-libtheora --enable-libvorbis --enable-libx264 --enable-libxvid
libavutil version: 49.5.0
libavcodec version: 51.44.0
libavformat version: 51.14.0
built on Nov 17 2007 21:27:40, gcc: 3.4.6 [FreeBSD] 20060305
Input #0, mov,mp4,m4a,3gp,3g2,mj2, from 'Video.mp4': Duration: 01:38:49.8, start: 0.000000, bitrate: 775 kb/s
Stream #0.0(eng): Video: h264, yuv420p, 320x176, 25.00 fps(r) Stream #0.1(eng): Audio: mpeg4aac, 48000 Hz, stereo
File 'M4V00001.MP4' already exists. Overwrite ? [y/N] y
Output #0, mp4, to 'M4V00001.MP4': Stream #0.0(eng): Video: mpeg4, yuv420p, 320x240, q=2-31, 768 kb/s, 29.00 fps(c)
Stream #0.1(eng): Audio: 0x0000, 24000 Hz, stereo, 64 kb/s
Stream mapping: Stream #0.0 -> #0.0 Stream #0.1 -> #0.1
Compiler did not align stack variables. Libavcodec has been miscompiled and may be very slow or crash. This is not a bug in libavcodec,
but in the compiler. You may try recompiling using gcc >= 4.2.
Do not report crashes to FFmpeg developers.
Unsupported codec for output stream #0.1

Consegui arrumar refazendo a instalação do ffmpeg via ports:

root@musashi# cd /usr/ports/multimedia/ffmpeg root@musashi# env CC=gcc4.2 make build deinstall install clean 

Com isso o filme foi resampleado (existe isso?), mas não foi aceito no PSP... brinquedo novo é assim :-)

 -rwxr-xr-x 1 helio users 1555 Nov 4 2001 nsbm2html
-rwxr-xr-x 1 helio users 154 Oct 4 2001 admin-linux-br
-rwx------ 1 helio users 49 May 6 2001 pop.secure.sh
-rwxr-xr-x 1 helio users 651 Dec 7 2000 housemailer.sh
-rwxr-xr-x 1 helio users 1044 Oct 29 1997 getmail.sh
Esse getmail.sh foi realmente meu primeiro script...

O legal de usar "tar" para fazer backup (e também restaurar) é que vc consegue manter a data de criação do arquivo. Olhando em meu laptop, achei alguns beeeem antigos:

-rwxr-xr-x 1 helio users 181 Dec 12 2003 speedyteste.sh
 -rwxr-xr-x 1 helio users 67 Nov 18 2003 coreclean.sh
 -rwxr-xr-x 1 helio users 350 Sep 24 2003 mywget
 -rwxr-xr-x 1 helio users 1908 Sep 23 2003 jisql
 -rwxr-xr-x 1 helio users 282 Jun 16 2003 dvd-rip_pt.sh
 -rwxr-xr-x 1 helio users 5380 Jun 3 2003 tcp_queue_test
 -rw-r--r-- 1 helio users 4458 Jun 3 2003 tcp_queue_test.c
 -rwxr-xr-x 1 helio users 111 May 27 2003 xquake2.sh
 -rwxr-xr-x 1 helio users 1091 May 20 2003 change_bg.py
 -rwxr-xr-x 1 helio users 1063 Apr 27 2003 make_downloads.py
 -rwxr-xr-x 1 helio users 629 Apr 21 2003 avi_enconder.sh
 -rwxr-xr-x 1 helio users 242 Apr 21 2003 dvd-rip.sh
 -rwxr-xr-x 1 helio users 7887 Apr 21 2003 dvd2divxscript.pl
 -rwxr-xr-x 1 helio users 51 Apr 3 2003 mygcc
 -rwxr-xr-x 1 helio users 111 Mar 25 2003 hgcc.sh
 -rwxr-xr-x 1 helio users 1017 Feb 25 2003 pimpoplayer.py
 -rwxr-xr-x 1 helio users 653 Dec 11 2002 pythonget.py
 -rwxr-xr-x 1 helio users 2814 Nov 21 2002 aph_preenche.py
 -rwxr-xr-x 1 helio users 809 Nov 19 2002 get_storeproc.sh
 -rwxr-xr-x 1 helio users 377 Nov 19 2002 isql_safe
 -rwxr-xr-x 1 helio users 480 Nov 13 2002 myisql
 -rwxr-xr-x 1 helio users 647 Nov 1 2002 asse.sh
 -rwxr-xr-x 1 helio users 20 Oct 2 2002 pfctl
 -rwxr-xr-x 1 helio users 2519 Aug 14 2002 velox-auth.py
 -rwx------ 1 helio users 13885 Aug 8 2002 stat.pl
 -rwxr-xr-x 1 helio users 1700 Aug 1 2002 changepasswdial.py
 -rwxr-xr-x 1 helio users 83 Jul 30 2002 evol-kill.sh
 -rwxr-xr-x 1 helio users 2762 Jul 25 2002 http_teste.py
 -rwxr-xr-x 1 helio users 115 Jul 3 2002 planta_dsl_teste.sh
 -rwxr-xr-x 1 helio users 166 Apr 9 2002 bookmarksupdate.sh
 -rwxr-xr-x 1 helio users 1805 Jul 17 2001 id-velox.sh
 -rwxr-xr-x 1 helio users 123 Jun 18 2001 wordview.sh
 -rwxr-xr-x 1 helio users 275 May 21 2001 Xterm
 -rwxr-xr-x 1 helio users 261 May 21 2001 Xterm-ROOT

Devo ter alguns de 1997 em outro backup, do antigo servidor de casa :-)

Da última compilação de kernel:

Copyright (c) 1992-2007 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 6.3-PRERELEASE #1: Sat Nov 10 13:01:13 CST 2007 root@musashi:/usr/src/sys/i386/compile/GENERIC
WARNING: MPSAFE network stack disabled, expect reduced performance.
ACPI APIC Table: Timecounter "i8254" frequency 1193182 Hz quality
0 CPU: Intel(R) Pentium(R) M processor 1.73GHz (1729.18-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0x6d8 Stepping = 8
[...]

  A tag 6.3-PRERELEASE já diz tudo. Se bem que eu provavelmente vá pular direto pro release 7.0... mais emocionante.

Após uma longa e dura peregrinação, de loja em loja, de site em site, consegui achar uma webcam compatível com FreeBSD, através do driver pwc.ko (disponível no ports, multimedia/pwcbsd). Comprei uma Webcam Trust WB-1200p por € 9,00.

Minha primeira decepção foi quando conectei a câmera na usb, já conservando a caixa, plástico, etc, para o caso de uma eventual devolução. A mensagem que recebi do sistema ficou muito aquém do que esperava:

ugen0: Pixart Imaging Inc. CIF Single Chip, rev 1.10/1.00, addr 2

Para minha surpresa (e total desagrado), não foi criado o dispositivo /dev/video0 ou algo parecido, mas somente o mais genérico dos USBs. Voltei ao site do driver:

http://info.iet.unipi.it/~luigi/FreeBSD/usb-cameras.html

para verificar se tinha comprado uma câmera de mesmo nome, mas versão de hardware diferente (ploduto cinez...). Vi que realmente estava certo, hardware correto...

 port 2 addr 2: full speed, power 500 mA, 
config 1, CIF Single Chip(0x2468), Pixart Imaging Inc.(0x093a), rev 1.00

Tentei fazer meu Ekiga usar a webcam e... nada. Testei o aplicativo qcamshot e... nada. Finalmente testei o programa spca5view e... funcionou!!!

helio@musashi:~$ spca5view -d /dev/ugen0 -a 
USB SPCA5XX camera found.
Pixart PAC207BCA [spca5xx_probe:8263]
Camera type GBRG [spca5xx_getcapability:2241] maxw 352 maxh 288 minw 160 minh 120
calculating frame rate...
just a moment please...........2.24(fps)

Infelizmente a danada da webcam faz jus ao preço: imagens distorcidas, péssima captura, baixa quantidade de frames (apesar que isso se deve mais ao driver), enfim... uma webcam de € 9,00.

Outra decepção ficou por conta dos aplicativos, raros os que reconheçem o dispositivo e fazem uso dele. Será que isso será corrigido no release 7.0? Enquanto isso, vou me divertindo com imagens distorcidas de mim mesmo, talvez geradas pela webcam, talvez pelo driver, talvez pela minha pessoa. Quem sabe?

Faz tempo que instalei o grub, boot loader muito flexível e fácil de configurar, no meu FreeBSD, aliás desde que era 6.1-RELEASE. Agora que estou totalmente atualizado como 6.2-STABLE, isso tornou-se ponto de honra. Infelizmente o erro abaixo insistia em ocorrer ao tentar instalar o mesmo na MBR:

musashi# grub-install hd0 
GNU GRUB version 0.97 (640K lower / 3072K upper memory)
[ Minimal BASH-like line editing is supported. For the first word, TAB lists possible command completions.
Anywhere else TAB lists the possible completions of a device/filename. ]
grub> root (hd0,0,a)
Filesystem type is ufs2, partition type 0xa5
grub> setup --stage2=/boot/grub/stage2 --prefix=/boot/grub (hd0)
Checking if "/boot/grub/stage1" exists... yes
Checking if "/boot/grub/stage2" exists... yes
Checking if "/boot/grub/ufs2_stage1_5" exists... yes
Running "embed /boot/grub/ufs2_stage1_5 (hd0)"... failed (this is not fatal)
Running "embed /boot/grub/ufs2_stage1_5 (hd0,0,a)"... failed (this is not fatal)
Running "install --stage2=/boot/grub/stage2 /boot/grub/stage1 (hd0)
/boot/grub/stage2 p /boot/grub/menu.lst "... failed
Error 29: Disk write error
grub> quit

Eu já tinha tido o desprazer de ver esse erro anteriormente, mas achava que era relacionado com a versão do grub (como descrito em algumas listas). Dessa vez, sapeando no Google, que já começa a trazer muito mais ruído que informação, encontrei esse link:

How To Dual Boot FreeBSD and Windows XP using GRUB


Por um grande acaso vi a variável kern.geom.debugflags com um parâmetro configurado. Não tive dúvidas e segui o mesmo.

musashi# sysctl kern.geom.debugflags=16 
kern.geom.debugflags: 0 -> 16

Resultado: sou um feliz usuário com um novo boot loader, o qual vou colocar uma bela tela gráfica :-) Só espero que meu sistema funcione amanhã, já que eu ainda não desliguei o mesmo...

musashi# grub-install /dev/ad0 
Installation finished. No error reported.
This is the contents of the device map /boot/grub/device.map.
Check if this is correct or not. If any of the lines is incorrect, fix it and re-run the script `grub-install'.
(fd0) /dev/fd0
(hd0) /dev/ad0

Logo na visita ao NOC da Itália, tive a agradável surpresa que o método de acesso à rede cabeada, leia-se switches fast/giga/ethernet, tinha mudado para usar autenticação via 802.1X.

Como já tinha trabalhado anteriormente com a mesma solução durante meus tempos de D-Link, achei que ia ser fácil.

Primeiramente tentei o seguinte comando:

musashi# wpa_supplicant -i bge0 -c ~helio/IEEE8021X/wpa_supplicant.conf 
ioctl[SIOCG80211, op 16]: Invalid argument Failed to initialize driver interface

Qual não foi minha surpresa... Não tinha funcionado. Tentei verificar o erro mais de perto com a opção "-dd" (extra debug):

Initializing interface (2) 'bge0' 
EAPOL: SUPP_PAE entering state
DISCONNECTED EAPOL: KEY_RX
entering state NO_KEY_RECEIVE
EAPOL: SUPP_BE
entering state INITIALIZE EAP: EAP
entering state DISABLED EAPOL: External notification - portEnabled=0
EAPOL: External notification - portValid=0
ioctl[SIOCG80211, op 16]: Invalid argument
wpa_driver_bsd_init: failed to get roaming state: Invalid argument
Failed to initialize driver interface
Failed to add interface bge0
Cancelling scan request

A mensagem ioctl[SIOCG80211, op 16] me fez pensar sobre driver. Verifiquei a versão no ports, e realmente era muito mais antiga que a versão atual. Baixei manualmente e compilei. Consegui fazer rodar, mas dessa vez utilizando o comando:

musashi# wpa_supplicant -i bge0 -D wired -c ~helio/IEEE8021X/wpa_supplicant.conf

Com a opção -D wired consegui forçar o uso da interface de rede. Só restava verificar se meu arquivo de configuração estava correto ou não.

musashi# ./wpa_supplicant -i bge0 -D wired -c /tmp/wpa.conf -dd 
Initializing interface 'bge0' conf '/tmp/wpa.conf' driver 'wired' 
   ctrl_interface 'N/A' bridge 'N/A' 
Configuration file '/tmp/wpa.conf' -> '/tmp/wpa.conf' 
Reading configuration file '/tmp/wpa.conf' 
ctrl_interface='/var/run/wpa_supplicant' 
ctrl_interface_group='0' (DEPRECATED) 
eapol_version=1 
ap_scan=0 
fast_reauth=1 
Line: 12 - start of a new network block ssid - hexdump_ascii(len=0): key_mgmt: 0x8 
eap methods - hexdump(len=16): 00 00 00 00 19 00 00 00 00 00 00 00 00 00 00 00 
phase2 - hexdump_ascii(len=13): 61 75 74 68 3d 4d 53 43 48 41 50 56 32 
auth=MSCHAPV2 identity - hexdump_ascii(len=4): 75 73 65 72 
user password - hexdump_ascii(len=4): [REMOVED] 
Priority group 0 id=0 ssid='' 
Initializing interface (2) 'bge0' 
EAPOL: SUPP_PAE entering state DISCONNECTED 
EAPOL: KEY_RX entering state NO_KEY_RECEIVE 
EAPOL: SUPP_BE entering state INITIALIZE 
EAP: EAP entering state DISABLED 
EAPOL: External notification - portEnabled=0 
EAPOL: External notification - portValid=0 
wpa_driver_wired_init: Added multicast membership with SIOCADDMULTI 
Own MAC address: 00:14:c2:e7:d2:55 
Setting scan request: 0 sec 100000 usec 
Using existing control interface directory. 
ctrl_interface_group=0 
ctrl_iface bind(PF_UNIX) failed: Address already in use 
ctrl_iface exists, but does not allow connections - assuming it was leftover from 
   forced program term ination 
Successfully replaced leftover ctrl_iface socket '/var/run/wpa_supplicant/bge0' 
Added interface bge0 
EAPOL: External notification - portControl=Auto 
Already associated with a configured network - generating associated event 
Association info event State: DISCONNECTED -> ASSOCIATED 
Associated to a new BSS: BSSID=01:80:c2:00:00:03 
No keys have been configured - skip key clearing 
Network configuration found for the current AP 
EAPOL: External notification - portControl=Auto 
Associated with 01:80:c2:00:00:03 
EAPOL: External notification - portEnabled=0 
EAPOL: External notification - portValid=0 
EAPOL: External notification - portEnabled=1 
EAPOL: SUPP_PAE entering state CONNECTING 
EAPOL: SUPP_BE entering state IDLE 
EAP: EAP entering state INITIALIZE 
EAP: EAP entering state IDLE Cancelling scan request 
EAPOL: startWhen --> 0 
EAPOL: SUPP_PAE entering state CONNECTING 
EAPOL: txStart TX EAPOL - hexdump(len=4): 01 01 00 00 
EAPOL: startWhen --> 0 
EAPOL: SUPP_PAE entering state CONNECTING 
EAPOL: txStart TX EAPOL - hexdump(len=4): 01 01 00 00 
EAPOL: idleWhile --> 0 
EAP: EAP entering state FAILURE CTRL-EVENT-EAP-FAILURE EAP authentication failed 
EAPOL: SUPP_PAE entering state AUTHENTICATING 
EAPOL: SUPP_BE entering state FAIL 
EAPOL: SUPP_PAE entering state HELD 
EAPOL: SUPP_BE entering state IDLE 
EAPOL: startWhen --> 0 

Apesar da interface ter sido inicializada corretamente e enviando o primeiro frame, o switch respondia com a solicitação de "identity" que nunca ocorria, ficando a interface sempre em "startWhen --> 0". Busquei vários sites e não encontrei nenhuma resposta satisfatória. Aparentemente o driver de ethernet do FreeBSD não é capaz de utilizar uma chamada ioctl para detectar que um frame foi recebido pela interface.

A única solução que encontrei, não muito elegante, foi inicialiar um linux via quemu com uma interface tap0 em bridge. O wpa_supplicant do Linux funcionou corretamente e pude auntenticar na rede. O método de autenticação foi bem simples, onde segue o arquivo de configuração:

eapol_version=1 
ap_scan=0
fast_reauth=1
network={
key_mgmt=IEEE8021X
eap=PEAP
identity="DOMAIN\login"
phase2="auth=MSCHAPV2"
password="password"
}

Tudo atualizado via cvsup e compilado. Deve ter levado uns 10 dias no total (incluindo o ports).

Copyright (c) 1992-2007 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 6.2-STABLE #2: Wed Mar 21 12:55:18 BRST 2007 Este endereço de email está sendo protegido de spambots. Você precisa do JavaScript ativado para vê-lo.:/usr/src/sys/i386/compile/MUSASHI
WARNING: debug.mpsafenet forced to 0 as ipsec requires Giant
WARNING: MPSAFE network stack disabled, expect reduced performance.
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

Faz tempo que não publico nada, então não fiquem com a impressão que tudo falhou no upgrade. Realmente demorou e encontrei o seguinte erro:

---> Cleaning out obsolete shared libraries 
[Updating the pkgdb <format:bdb_btree> in /var/db/pkg ... - 823 packages found (-0 +1) . done]
[...]
* misc/kdeaddons3 (kdeaddons-3.5.5)
---> Packages processed: 18 done, 652 ignored, 143 skipped and 4 failed
** Could not clean up temporary directory: Directory not empty
- /var/tmp/portupgradeviBK2OZ6

Como o símbolo "!" mostra, realmente alguns aplicativos falharam. Removi o xine e recompilei a libkde3 com um "make work; make deinstall; make install". Depois disso tudo funcionou. No fim ainda subi o sistema para um 6.2 STABLE. Agora só alegria, até o próximo upgrade :-)

Ano novo, vida nova, sistema novo... com a chegada de 2007, resolvi encarar a atualização de meu FreeBSD, de 6.1 para 6.2 (que no momento encontra-se ainda em RC2, mas acho que pouca coisa vai mudar). E também fazer minha primeira postagem de 2007 :-)

 

Ao invés de iniciar pelo sistema, resolvi começar pelos aplicativos, autilizando primeiramente o ports. Pelas minhas experiências anteriores, a atualização é o único ponto fraco do FreeBSD. Comparando com Debian, com seu sistema via apt, é realmente chato, moroso, e frequentemente com falhas o sistema de atualização dos BSDs. Mesmo assim resolvi encarar o ports, já que o mesmo se encontra em FROZEN para o lançamento do release 6.2.

 

Antes de iniciar, busquei algumas dicas de atualização e achei a página

http://sig9.com/articles/ports-howto

com um howto sobre atualização do ports. Como não era exatamente o que eu pensava em fazer, resolvi seguir, pois aparenta ser uma solução bem simples.

 

Já tinha feito a atualização do ports via portsnap, usando as opções fetch e depois extract, então somente refiz o INDEX para iniciar a atualização.

Alterei a sequência de comandos para:

portupgrade -arRP && pkgdb -F && pkgdb -fu

A opção -P do portupgrade faz com que seja buscado primeiramente o pacote já compilado antes de re-compilar a partir dos fontes. Isso tornaria a atualização mais rápida, porém...

---> Fetching the package(s) for 'ctags-5.6' (devel/ctags) 
---> Fetching ctags-5.6 fetch:
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-6.1-release/All/ctags-5.6.tbz:
File unavailable (e.g., file not found, no access)

O sistema continua buscando packages-6.1-release, o que é correto já que ainda não foi atualizado, mas os pacotes compilados só estão disponiveis pro release 6.2... sendo assim, não consegui poupar o tempo que queria...

Até o momento a atualização dos aplicativos já consumiu 20 horas, sem vistas de acabar. Ao menos está indo de uma forma menos traumáticas que das outras vezes. Vamos ver qual vai ser o resultado final...

Joomla templates by a4joomla