Finalmente resolvi bater um pouco a cabeça e tentar habilitar a função de journaling em FreeBSD (um pouco movido pela inveja de ver isso funcionado em Linux, um pouco porque essa foi uma das "top" features do FreeBSD-7.0). O grande desafio foi fazer isso em um sistema já ativo. Já havia deixada uma partição livre, /dev/ad4s1h, com 360 MB livres, mas descobri que precisava de uma relação de partição/partição para ter o journaling ativado.
Meu disco usava a seguinte separação de slices:
Descobri que o sistema de label de slices do BSD ainda mantém a limitação de 8 slices por partição, o que restringe somente ao uso das letras a-h. Com isso esgotado, as alternativas de criar ad4s1i, ad4s1j e assim por diante, impossível.
Buscando na rede, descobri que a forma de fazer isso seria atribuindo o tamanho total de disco a ser alterado para ad4s1h e depois aplicando o disklabel sobre o mesmo, na forma "disklabel -e ad4s1h", onde novamente a letras de a-h estão disponíveis. Com isso, criei os labels ad4s1ha, ad4s1hb, ad4s1hc, ad4s1hd, ad4s1he, ad4s1hf e ad4s1hg, para cada um corresponder ao seu journal, com 50MB.
O passo seguinte foi criar e ativar o journal. Seguindo a man page, gjournal (8), segui os passos como abaixo (após o boot em single mode):
gjournal load gjournal label -f ad4s1d ad4s1hd
gjournal label -f ad4s1e ad4s1he
gjournal label -f ad4s1f ad4s1hf
gjournal label -f ad4s1g ad4s1hg
tunefs -J enable -n disable ad4s1d.journal
tunefs -J enable -n disable ad4s1e.journal
tunefs -J enable -n disable ad4s1f.journal
tunefs -J enable -n disable ad4s1g.journal
Fiz as alterações correspondentes no /etc/fstab:
/dev/ad4s1b none swap sw 0 0
/dev/ad4s1a / ufs rw 1 1
/dev/ad4s1f.journal /home ufs async,rw 2 2
/dev/ad4s1d.journal /tmp ufs async,rw 2 2
/dev/ad4s1g.journal /usr ufs async,rw 2 2
/dev/ad4s1e.journal /var ufs async,rw 2 2
linprocfs /compat/linux/proc linprocfs rw 0 0
proc /proc procfs rw 0 0
O primeiros boot falharam devido ao fato de que "gjournal load" não existe em nenhum ponto do rc.conf. Fiz uma alteração em "/etc/rc.d/fsck" para que isso funcionasse (linhas 30-32):
28 fsck_start()
29 {
30 # patch to force gjournal load
31 echo -n 'Load gjournal (as patch): '
32 /sbin/gjournal load
33
34 if [ "$autoboot" = no ]; then
35 echo "Fast boot: skipping disk checks."
Ainda não descobri como ativar a partição raiz, "/", com journaling também, mas só o fato de ter feito isso com a demais já fez muita diferença: o sistema ficou muito mais rápido.
Se tiver tentando instalar FreeBSD num laptop Compaq nc6440, veja como em:
FreeBSD STABLE-7.0 and Laptop Compaq NC6400
Para o modelo nc6220, veja:
Brincando com meu antigo companheiro de consultorias, o iBook xuxu, comecei a quebrar a cabeça para fazer rodar um programa, um script, direto via interface gráfica, simplesmente com um clique. Acabei encontrando a linguagem, mais que natural, do Applescript. A linguagem é tão fácil que algumas coisas óbvias ficam difíceis.
Para criar shell scripts (ou inicialização de algum aplicativo java, como era meu caso), basta o código:
do shell script "/patch/script.sh"
Encontrei na net outro trecho de código simplesmente hilário...
say "Dum dum dum dum dum dum dum he he he ho ho ho fa lah lah lah lah lah lah fa lah full hoo hoo hoo" using "Cellos"
Para quem quiser descobrir mais, aqui segue o manual:
Reativando meu velho iBook G3, resolvi investir um pouco mais de tempo no brinquedo. Como não serei o usuário direto, estou procurando formas de melhorar seu uso. Entre os problemas que vi, o uso de acentos em português foi o mais gritante.
O suporte nativo é feito através do uso de "special keys" usando combinações. Felizmente encontrei uma alternativa muito melhor, habilitando as "dead-keys":"
No momento teclo a partir do mesmo e tudo (em relação à acentuação) funciona corretamente :-)
This article is kindly linked by:
|
Barely finished my last article about FreeBSD (PRERELEASE at that time) on Compaq laptops, and my computer was replaced (as part of Company refresh policy). I was upgraded to a laptop Compaq NC 6400.
As any good lazy Unix sysadmin (and clever), I just recovered a backup from my previous model (nc 6220). It worked *almost fine*. Just a few adjustments were needed.
Previously I wrote about my quest, getting FreeBSD up and running. As such, let me start describing a little better this laptop hardware:
First thing, I had to move my partitions from /dev/ad0 to /dev/ad4since they use the new SATA interface. A boot with recovery disk was enough to achieve this.
First boot was ok, but far from fine. Screen came up weirdly, caused by xorg.conf, due the chipset swap from i810 to i915. And also the physical screen size was different from old 14".
Seeking in google, I found the following links:
Last resource was really handy. I could realize screen was 1280x800 instead. And some Linux procedures (not so few nowadays) helped me to make a roadmap to have FreeBSD successfully installed.
To achieve an optimal usage, add the following lines in /boot/loader.conf:
i915_load="YES"
It'll load all required modules (drm and so on).
Through ports, install package sysutils/915resolution. Then add the following lines to /etc/rc.conf:
i915resolution_enable="YES" i915resolution_modes="3c" i915resolution_width=1280 i915resolution_height=800
This will be enough to fix the poorly effect from xorg usage only.
Just add the following line to /boot/loader.conf:
snd_hda_load="YES"
This one was a little bit trick. I had to add the following lines to /boot/loader.conf:
wlan_wep_load="YES" wlan_scan_sta_load="YES" if_ath_load="YES" legal.intel_wpi.license_ack=1 wpifw_load="YES" if_wpi_load="YES" wlan_load="YES" wlan_amrr_load="YES" firmware_load="YES"
The last statement, firmware_load isn't needed since legal.intel_wpi.license_ack is in place, but it didn't hurt me to include there :-)
As a plus, I added package sysutils/lineakd to make all internet keys useful (they were dead before). I configured /usr/local/etc/lineakkb.def as described in Linux article, just appending the following lines:
[HP-NC6400] brandname = "Hewlett Packard" modelname = "Compaq NC6400" [KEYS] Information = 245 Wireless = 133 Presentation = 205 Mute = 160 VolumeDown = 174 VolumeUp = 176 [END KEYS] [END HP-NC6400]
It worked fine.
It works by default once ACPI is enabled. Just check the following line in your boot messages:
SMP: AP CPU #1 Launched! I've seen lately a lot of kernel messages as below: acpi_tz0: _CRT value is absurd, ignored (256.0C) acpi_tz0: _CRT value is absurd, ignored (256.0C) acpi_tz0: _CRT value is absurd, ignored (256.0C) acpi_tz0: _CRT value is absurd, ignored (256.0C) acpi_tz0: _CRT value is absurd, ignored (256.0C) acpi_tz0: _CRT value is absurd, ignored (256.0C) acpi_tz0: _CRT value is absurd, ignored (256.0C)
It's harmless, but annoying. I tried to remove it setting sysctl with hw.acpi.thermal.polling_rate=0, but it didn't work...
Just loaded as before, as bge0.
Remains as a dream. Not working and crashing everything, as before. Some day it'll be fixed... For now, I need to shutdown my laptop every time. At least it isn't crashing on boot as before.
Not working and just detected as generic USB. Since I don't use so much those things, I really don't care about it. Maybe it would useful for internal modem, but since wireless broadband is becoming popular, I really don't think I'll need it soon.
Entre meus momentos de ócio, tento gastar o mesmo com o chamada "ócio criativo" (como define Domenico de Masi), onde ao invés de ficar assistindo TV, busco artigos na Internet, leio livros, etc. Entre essas buscas por algo para meu tempo sem labuta, dei de encontro com o o artigo Cooking with Linux - Eye-Popping Panels, escrito por Marcel Gagné, na Linux Journal.
Já tentei utilizar o Beryl, mas achei muito gasto de CPU para uns poucos efeitos 3D. Dessa vez tive impressões melhores e resolvi tentar seguir as dicas de Marcel. O ksmoothdock eu já tinha instalado (via ports), mas nunca usei muito seriamente. Como combinava com meu ambiente KDE, alterei a barra padrão para o topo do desktop e o adicionei como padrão na parte mais baixa. Apenas precisei fazer um link simbólico dentro de .kde/Autostart/para o binário e isso já fez o trabalho de iniciar a barra junto com resto.
O 3ddesktop necessitou de um pouco mais elaboração. Precisei associar o botão F2 ao comando (3ddesk) e criar um comando "3ddesk --acquire" em .kde/Autostart/para adquirir as telas. Somente isso e está pronto para usar, com resultados impressionantes.
Trabalhar no fim de semana não é fácil pra ninguém. Mas não disseram que precisava ser um inferno. Como diz o anúncio da security list da Debian: "You know the drill...".
Não me lembro de ter tido esse problema antes, mas para tudo sempre existe a primeira vez....
Apr 7 12:43:56 musashi root: WARNING: system temperature too high, shutting down soon!
Apr 7 12:43:56 musashi kernel:
Apr 7 12:43:56 musashi root: WARNING: system temperature too high, shutting down soon!
Perdi tudo que estava trabalhando, mas não perdi o laptop :-)
Surpresa ao fazer o update dos sources do sistema:
20080226: FreeBSD 7.0-RELEASE
Sem perda de tempo, "make buildworld" e vamos lá!
This article is linked by:
|
{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:
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:
If you could go further then me, don't hesitate to share your success :-)
Com o crescimento do projeto Mambo, que criou um braço GPL chamado Joomla, está cada vez mais difícil encontrar módules e outros *add-ons*.
Após uma longa busca, consegui achar um link interessante sobre isso, onde tudo está resumido para busca:
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 bytes255 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.
#! /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
Page 26 of 31