sábado, 12 de dezembro de 2009

Seria engraçado se não fosse triste ... Especificação de Software

A figura abaixo, diz tudo ...
Engraçado, mas vais dizer que não é assim mesmo ?
Para não perder mais a figura resolvi colocá-la aqui no blog:

segunda-feira, 7 de dezembro de 2009

software q é possível mandar e-mail em modo texto no ubuntu 9.04

Após penar muito, consegui finalmente chegar a uma linha de comando que me enviasse um e-mail com anexo:

Foi ela:
$
mpack -s "ASSUN
TOSemAssunto" /home/danilomatias/Documentos/shell-profissional.zip danilomatias19@gmail.com



Para isso tive que instalar o mpack
(#apt-get update
#apt-get upgrade
#apt-get install ssmtp mapack)

Após instalar isso configurei o ssmtp:
O mutt é um pé no saco, pq vc tem que confugurar, e pelo menos no meu caso, não funcionou ...
por isso parti para o mpack ...
Mas pra poder utilizá-lo tive que ir atrás de como configurar o ssmtp:

O ssmtp é extremamente leve possui apenas dois aquivos de configuração, que, pelo menos no ubuntu 9.04, se encontram na pasta: /etc/ssmtp/

Esses arquivos são:
revaliases e ssmtp.conf

O conteúdo deles:
No revaliases têm:

"
#--------
#apenas troque o nome do seu e-mail ...
root:danilomatias19@gmail.com:smtp.gmail.com:465
#--------"


o ssmtp.conf tem:

"mailhub=smtp.gmail.com:465
rewriteDomain=gmail.com
hostname=localhost
FromLineOverride=NO
UseTLS=YES
AuthUser=danilomatias19@gmail.com
AuthPass=MinhaSenhadoGmail"

domingo, 15 de novembro de 2009

Apenas alguns links sobre jquery em javascript

http://visualjquery.com/
http://blogueando.com.br/design/paginacao-com-javascript-jquer/

http://simplesideias.com.br/redescobrindo-o-javascript-com-jquery/

http://blog.klaus.pro.br/2007/ler/javascript-e-com-jquery/index.html

http://jquery.blog.dada.net/tag/jquery

http://www.nidez.com.br/javascript/jquery-adicionar-remover-campos-atraves-de-selectbox/



http://www.studioaweb.com.br/blog/2009/04/tutorial-jquery-javascript-iniciante/



http://imasters.uol.com.br/artigo/10690/javascript/visao_geral_sobre_o_jquery/

http://www.slideshare.net/harlley/javascript-e-jquery-para-webdesigners


http://www.tidbits.com.br/click-calendario-plugin-de-jquery-para-calendarios-em-portugues


http://f.simplesideias.com.br/jquery/show-hide.html

http://f.simplesideias.com.br/jquery/json-content.html

http://f.simplesideias.com.br/jquery/html-content.html

http://f.simplesideias.com.br/jquery/list-items.html


http://f.simplesideias.com.br/jquery/list-items.html


http://f.simplesideias.com.br/jquery/iteration.html


http://f.simplesideias.com.br/jquery/table-row.html


http://f.simplesideias.com.br/jquery/zebra-table.html


http://f.simplesideias.com.br/jquery/ready.html

http://docs.jquery.com/Plugins


http://pt.wikipedia.org/wiki/Modelo_de_Objeto_de_Documentos



http://simplesideias.com.br/usando-jquery-na-pratica/


http://www.codigofonte.net/dicas/javascript/310_jquery-o-que-e-e-como-usar


http://www.google.com.br/search?hl=pt-BR&client=firefox-a&rls=com.ubuntu:pt-BR:unofficial&hs=LZ&q=como+usar+jquery+em+javascript&start=10&sa=N

http://docs.jquery.com/Main_Page


http://docs.jquery.com/Tutorials

http://jquery.com/


http://www.google.com.br/search?hl=pt-BR&client=firefox-a&rls=com.ubuntu:pt-BR:unofficial&hs=LZ&q=como+usar+jquery+em+javascript&start=10&sa=N


Lembrando q sem usar framework vc demora muito pra codificar coisas simples ...!

sexta-feira, 13 de novembro de 2009

Linha de comando pra saber o tamanho do maior arquivo do sistema operacional ubuntu 9.04

Essa porcaria de linha de comando já me fez falta:

Mas em fim, para saber o tamanho do maior arquivo da pasta atual:

$ ls -l | awk '{print $5 }' | sort -n | tail -1

Para Saber os 10 maiores da pasta em ordem crescente:

$ ls -l | awk '{print $5 }' | sort -n | tail -10


Para saber os tamanho dos 10 maiores arquivos do sistema em ordem crescente:


$ls -lRa | awk '{print $5 }' | sort -n | tail -10


Para o maior do sistema:

Explicando a linha de comando acima:

$ls - lRa retorna todas as pastas e arquivos do sistema Sendo a primeira coluna as permissões em (wxr d) ( o modo do arquivo ) se é diretório (pasta) ou não (d) a segunda coluna é o número de ligações para o arquivo , a terceira coluna é o nome do proprietário do arquivo, a quarta é o nome do grupo ao qual o arquivo pertence, a quinta é o tamanho do arquivo em bytes, a sexta é o rótulo de tempo e a sétima é a outra parte do rótulo de tempo e a oitava é nome do arquivo


Como deseja-se saber apenas qual é o tamanho do maior arquivo seleciona-se a coluna 5, para isso utiliza-se do comando awk o {pint $5} é para selecionar apenas a coluna de tamanho, feito isso, ordena-se de maneira numérica (-n) com o comando sort
como precisa-se filtrar ainda mais a busca manda mostrar apenas os últimas 10 tamanhos com o comando tail

Se fosse mostrar os 10 menores arquivos utilizaria-se do head -10
de maneira que a linha de comando para mostrar o tamanho dos 1000 menores arquivos do sitema ficaria:


$ls -lRa | awk '{print $5 }' | sort -n | head -1000


Mas se você quer saber o nome dos 10 maiores arquivos, bem como o tamanho utilize:
$ls -lRa | awk '{print $5 $8 }' | sort -n | tail -10



Pra quem não sabe, na verdade awk é uma linguagem de programação:

para mais detalhes acesse:

http://www.inf.pucrs.br/~manssour/AWK/index.html



A linha abaixo é mais interessante:

$ ls -lRa | awk '{print $5"\t"$8"\t"$1"\t"$2"\t"$3"\t"$4"\t"$6"\t"$7 }' | sort -n |more| tail -100


Essa linha mostra os 100 maiores arquivos em ordem crescente ...


Após a dica do Professor Rafael Obelheiro ( de como encontrar os 5 processos que mais "consomem CPU e memória ..."):

"dica é ordenar os processos por consumo de CPU/memória:

$ ps axuwww | sort -k 3 -n # CPU
$ ps axuwww | sort -k 4 -n # memória

Você pode usar o tail para pegar as últimas N linhas da saída,
e cut/awk para selecionar os campos que interessam."


Cheguei as seguintes linhas de comando úteis, para ordenar os 50 processos que mais "consomem CPU e memória":

CPU:

ps axuwww | sort -k 4 -n |more| tail -5 |awk '{print$3"%CPU \t"$4"%MEM \t Command: "$11" \t"$12"\t PID:"$2"\t USER: "$1"\t STAT: "$8"\t Start: "$9"\t Time: "$10"\t VSZ: "$5"\t RSS: "$6"\t TTY: "$7 }'

Memória:

ps axuwww | sort -k 3 -n |more| tail -5 |awk '{print$3"%CPU \t"$4"%MEM \t Command: "$11" \t"$12"\t PID:"$2"\t USER: "$1"\t STAT: "$8"\t Start: "$9"\t Time: "$10"\t VSZ: "$5"\t RSS: "$6"\t TTY: "$7 }'







Já aproveitando ...
Para se realizar operações matemáticas:

$ echo $((1+2))
3


note que $() é para apresentar um comando qualquer e dentro de $() tem (), isso é para chamar o interpretador de operações aritméticas ...

Não é atoa que para fazer um simples incremento tenha que fazer na shell:

j12=$(($j12+1));

Outro detalhe interessante é o usar o if, normalmente usar o comando test

if test $k3 -eq $j12;
then k3=$(($k3+3));# echo -e " $j12 -eq $k3 \n k3=$k3 j12=$j12\n k é igual a j12 \n \n";
if test $k3 -gt 1;
then j12a=$(($j12a+1)); echo -e " zip FotosLivros.$j12a.zip $file2 $file2b $file2c ... \n ";
zip FotosLivros.$j12a.zip $file2 $file2b $file2c;

fi;

fi;



finalizar com fi

colocar o then se tiver else colocar o else também ...!


O test serve para testar operações aritméticas, comparações e por ai vai ...!



Outra coisinha interessante é o sed

$ echo "danilo matias o cara"|sed 's/a/4/g'
d4nilo m4ti4s o c4r4

s é para dizer que é stream substitui todos os a's por 4 o g é para dizer que são todas as ocorrências ...


Como usar o sed com um arquivo com muitas coisas para substituir ...:


$sed -f SaidaParaSed2HTML2 ArquivoAcolocarOsAcentos.html >> ArquivoComOsAcentosEmHTML.html



Ode o arquivo SaidaParaSed2HTML2. contém:


s/Á/\Á/g
s/á/\á/g
s/Â/\Â/g
s/â/\â/g
s/À/\À/g
s/à/\à/g
s/Å/\Å/g
s/å/\å/g
s/Ã/\Ã/g
s/ã/\ã/
s/Ä/\Ä/g
s/ä/\ä/g
s/Æ/\Æ/g
s/æ/\æ/g
s/É/\É/g
s/é/\é/g
s/Ê/\Ê/g
s/ê/\ê/g
s/È/\Egrave;/g
s/è/\è/g
s/Ë/\Ë/g
s/ë/\ë/g
s/Ð/\Ð/g
s/ð/\ð/g
s/Í/\Í/g
s/í/\í/g
s/Î/\Î/g
s/î/\î/g
s/Ì/\Ì/g
s/ì/\ì/g
s/Ï/\Ï/g
s/ï/\ï/g
s/Ó/\Ó/g
s/ó/\ó/g
s/Ô/\Ô/g
s/ô/\ô/g
s/Ò/\Ò/g
s/ò/\ò/g
s/Ø/\Ø/g
s/ø/\ø/g
s/Õ/\Õ/g
s/õ/\õ/g
s/Ö/\Ö/g
s/ö/\ö/g
s/Ú/\Ú/g
s/ú/\ú/g
s/Û/\Û/g
s/û/\û/g
s/Ù/\Ù/g
s/ù/\ù/g
s/Ü/\Ü/g
s/ü/\ü/g
s/Ç/\Ç/g
s/ç/\ç/g
s/Ñ/\Ñ/g
s/ñ/\ñ/g
s/®/\®/g
s/©/\©/g
s/Ý/\Ý/g
s/ý/\ý/g
s/Þ/\Þ/g
s/þ/\þ/g
s/ß/\ß/g



o \& é para o & não ser reconhecido como um comando & do linux












Linha de comando para tirar todas as linhas do arquivo:
teste.txt e salvar no arquivo temp.txt:
$tr '\n' ' ' < teste.txt > temp.txt



















http://marofeiros.vilabol.uol.com.br/huffman.htm



Algoritmo de Huffman

A compressão pelo algoritmo de Huffman reduz o tamanho do codigo usado para representar os símbolos de um alfabeto. Símbolos do alfabeto que ocorrem frequentemente são atribuidos por codigos mais curtos. A estratégia geral é permitir ao tamanho do codigo variar de caracter para caracter e de assegurar que o codigo utilizado seja menor.

A compressão de Huffman é feita através da construção de uma árvore binaria usando um simples conjunto de exemplo. Isso é feito arranjando os símbolos do alfabeto em ordem decrescente de probabilidade. Então repetidamente adicionando duas menores probabilidades e reorganizando. Este processo se repete até a soma das probabilidades dos dois últimos símbolos ser igual a 1. Uma vez que este processo seja feito, uma árvore binaria de Huffman é possível ser gerada.

Se não for obtido uma probabilidade de 1 nos dois últimos símbolos, provavelmente existe um erro no processo.

Essa probabilidade de 1 que forma o último símbolo, é a raiz da árvore binária. Os códigos resultantes são formados traçando a árvore a partir da raiz até os últimos ramos de código depois de assumir os 0s e 1s as sub-divisões.

Um exemplo passo-a-passo da consntrução de uma árvore binária de Huffman é mostrada abaixo:

Dados um conjunto de símbolos com uma lista de relativas probabilidades de ocorrência com uma mensagem.

m0 m1 m2 m3 m4
0.10 0.36 0.15 0.2 0.19

(1) Liste os símbolos em ordem decrescente de probabilidade.

m1 m3 m4 m2 m0
0.36 0.20 0.19 0.15 0.10

(2) Pegue os dois símbolos com a menor probabilidade. De ao símbolo combinado, um novo nome.

m2 m0
0.15 0.10

Combina formando:

A
0.25

(3) A nova lista obtida eh mostrada abaixo. Repetindo o passo anterior nos dará um novo símbolo para as próximas duas possibilidades mais baixas.

m1 A m3 m4
0.36 0.25 0.20 0.19


m3 m4
0.20 0.19

Combina formando:

B
0.39

(4) Uma nova lista é obtida. Repetindo o passo anterior nos dará um novo símbolo para as próximas duas possibilidades mais baixas.

B m1 A
0.39 0.36 0.25


m1 A
0.36 0.25

Combina formando:

C
0.61

(5)Finalmente há apenas um par faltando e nós simplesmente os combinamos e nomeamos como um novo símbolo.

B C
0.39 0.61

Combina formando

D
1.0

(6) Tendo terminado estes passos nós temos:

(7)Agora, uma árvore de Huffman pode ser construída, 0s e 1s são atribuídos para as subdivisões.

(8)Os códigos resultantes são formados traçando a árvore desde a raiz até o fim dos códigos.

Símbolos Probabilidades Códigos

m0 0.10 011
m1 0.36 00
m2 0.15 010
m3 0.20 10
m4 0.19 11

Note que a compressão é arquivada alocando símbolos de ocorrências frequentes com códigos menores.




















sexta-feira, 6 de novembro de 2009

Apenas alguns links sobre openbsd ...

Como estou pensando seriamente em migrar para o openbsd ...
Ai vão os links:


http://www.openbsd.org/faq/pt/faq5.html


http://www.openbsd.org/pt/index.html


http://pwsys.com.br/openbsd/faq/pt/faq4.html


http://openbsd.nuug.no/faq/pt/faq9.html

http://www.vivaolinux.com.br/artigo/Compilando-o-Kernel-do-OpenBSD-4.3-(GENERIC)/


http://www.openbsd.org/faq/pt/


http://apostilas.fok.com.br/manual-do-php/install.unix.openbsd.php



http://www.google.com.br/search?hl=pt-BR&client=firefox-a&rls=com.ubuntu:pt-BR:unofficial&q=como+compilar+e+instalar+openbsd&start=30&sa=N


http://www.freebsd.org/



http://www.daemonnews.org/


http://www.fugspbr.org/



http://www.freebsddiary.org/




http://www.freebsdwiki.net/index.php/Main_Page






http://wiki.freebsd.org/




/tutoriais/jarbasteixeira/tomcatcomjava001.asp


http://www-142.ibm.com/software/products/br/pt/appserv-was

http://www.juliobattisti.com.br/tutoriais/jarbasteixeira/websphere001.asp

http://www-142.ibm.com/software/dre/ecatalog/Detail.wss?locale=pt_BR&synkey=X298293D67655A34&S_TACT=105AGX63&S_CMP=DLDTA


http://blog.openarch.com.br/category/java/page/2/


http://www.google.com.br/search?hl=pt-BR&lr=lang_pt&client=firefox-a&rls=com.ubuntu:pt-BR:unofficial&q=tomcat+no+openbsd+%2Bopenbsd+%2Btomcat+%2Bjboss&start=30&sa=N


http://www.vivaolinux.com.br/artigo/Compilando-o-Kernel-do-OpenBSD-4.3-(GENERIC)/




http://ftp.giga.net.tw/#openbsd







http://www.rau-tu.unicamp.br/openbsd/read.php?tid=4&qid=133&key=


http://www.rau-tu.unicamp.br/openbsd/read.php?tid=4&qid=92&key=


http://www.rau-tu.unicamp.br/openbsd/read.php?tid=4&qid=174&key=

http://www.rau-tu.unicamp.br/openbsd/read.php?tid=6&qid=360&key=

http://www.rau-tu.unicamp.br/openbsd/read.php?tid=6&qid=132&key=



http://www.rau-tu.unicamp.br/openbsd/


http://www.openbsd-br.org/?q=node/16


http://www.postami.com/systems/OpenBSD/070.html


http://www.intricatesoftware.com/OpenBSD/java/jdk14.html

quinta-feira, 8 de outubro de 2009

Lista de interrupções disponíveis no Ubuntu 9.04 GNU/Linux no meu Notebook - Itautec Infoway W7650

Para mais detalhes o produto é esse aqui:

http://www.itautecshop.com.br/Loja/SimpleProduct.aspx?ProductID=IN678&Categoria=Notebooks
O Processador é outro, o Sistema operacional utilizado é o: Ubuntu 9.04
http://www.ubuntu.com/getubuntu/download

Estava pesquisando um pouquinho de como executar programas feitos em linguagemd e montagem assembly, acabei sendo lembrado das interrupções, fiquei curioso de saber quais sãos as interrupçoes que meu processador oferece, os dados do meu processador são:
Foram obtidos através do comando:
# cat /proc/cpuinfo
na shell:

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Pentium(R) Dual CPU T2390 @ 1.86GHz
stepping : 13
cpu MHz : 1867.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm
bogomips : 3724.10
clflush size : 64
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Pentium(R) Dual CPU T2390 @ 1.86GHz
stepping : 13
cpu MHz : 800.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm
bogomips : 3723.94
clflush size : 64
power management:

Vamos as interrupções finalmente:
A lista delas, foi obtida através do comando na shell:

$ cat /proc/interrupts

CPU0 CPU1
0: 1033491 1033271 IO-APIC-edge timer
1: 2626 2568 IO-APIC-edge i8042
8: 1 0 IO-APIC-edge rtc0
9: 0 0 IO-APIC-fasteoi acpi
12: 566 543 IO-APIC-edge i8042
14: 25743 25584 IO-APIC-edge ata_piix
15: 37975 37795 IO-APIC-edge ata_piix
16: 0 0 IO-APIC-fasteoi uhci_hcd:usb3
18: 141975 141173 IO-APIC-fasteoi ehci_hcd:usb1, uhci_hcd:usb7
19: 0 0 IO-APIC-fasteoi uhci_hcd:usb6
21: 0 0 IO-APIC-fasteoi uhci_hcd:usb4
22: 122357 121815 IO-APIC-fasteoi HDA Intel
23: 86928 86792 IO-APIC-fasteoi ehci_hcd:usb2, uhci_hcd:usb5
2300: 544557 538294 PCI-MSI-edge i915@pci:0000:00:02.0
2301: 1 0 PCI-MSI-edge eth0
2302: 0 0 PCI-MSI-edge pciehp
2303: 0 0 PCI-MSI-edge pciehp
NMI: 0 0 Non-maskable interrupts
LOC: 1085650 1228288 Local timer interrupts
RES: 463890 451948 Rescheduling interrupts
CAL: 68 74 Function call interrupts
TLB: 5289 6267 TLB shootdowns
SPU: 0 0 Spurious interrupts
ERR: 0
MIS: 0


Da pra perceber claramente quem é a cpu mestre e a escravo ( Master - slave ) ai né ...
São relativamente poucas interrupções ...
Tá mas pra que isso é útil ?
Pra programar em assembly, utiliza-se bastante de interrupções ...
Mas se você programa em C, C++, Java e por ai vai, não existe a necessidade mínima de saber quais as interrupções do Processador ...
Bem até a próxima ...!


Aquele abraço e se cuida!



++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Próximo passo reativar ssh no desktop compilar o kernel dele e colocar ele pra acessar da web ...!
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

segunda-feira, 5 de outubro de 2009

apenas um link para: GCC: Mitos e Fatos

Pra quem quer compilar o código gcc para outras plataformas basta usar o parâmetro -m a arquitetura de processador desejada
por exemplo, para gera o código assembly (.s) que simplesmente mostra na tela algo, para a plataforma pentium 3 usou-se se seguinte linha na interface de comando ( shell ...):

$gcc -Wall -march=pentium3 -O3 1.c -S ; ls; cat 1.s; echo ""; echo "";

para gerar o executável:http://http://www.microchip.co

gcc -Wall -march=pentium3 -O3 1.c -o 1 ; ls; cat 1.s; ech; echo ""; echo "";./1;echo ""; echo "";

Mas Chega de enrolação vamos ao link:

http://www.gentoobr.org/artigos/gcc-mitos-e-fatos/

http://www.voti.nl/swp/
http://www.microchip.com/forums/tm.aspx?m=112347

domingo, 4 de outubro de 2009

1 tentativa de compilaçao do Kernel Frustrada !

Finalmente após tentar tentar e tentar consegui compilar o kernel

Fiz até um shell script e coloquei em:

http://danilomatias.net76.net/sistemasOperacionais/livres/linux/ubuntu/compilarKernel4.sh

Recomendo fortemene seguir as dicas de:

http://www.vivaolinux.com.br/artigo/Recompilando-o-Kernel-no-Ubuntu-Linux-9.04/?pagina=2


e:

http://linux.lcc.ufmg.br/index.php?option=com_content&view=article&id=53:compilando-o-kernel-do-linux-26x&catid=40:compilacao

Não vejo necessidade de detalhar o procedimento de Compilação aqui, pois já estão devidamente referenciados nos links mencionados ...!

Um abraço e até a próxima ...




***********************************************************************************************
***********************************************************************************************
***********************************************************************************************
***********************************************************************************************
***********************************************************************************************
***********************************************************************************************
***********************************************************************************************

Não tem jeito mesmo terei que ler mais para compilar o meu kernel acredito q em umas 3 semanas resolva tentar compilá-lo novamente ...:
Estou até desenvolvendo um shell script para facilitar o meu trabalho ...:

O script até agora está assim:

***********************************************************************************************
***********************************************************************************************

echo " ********************************************************************" ;
echo " obetendo as configurações do seu hardaware:";
echo " " ;
echo " ********************************************************************" ;
echo " " ;

echo "sudo lshw -html >> lshw.html" ;
sudo lshw -html >> lshw.html
echo " firefox lshw.html & " ;
echo " " ;
echo " ">>configurHw.txt ;
echo " ********************************************************************">>configurHw.txt ;
echo " " >>configurHw.txt ;
echo " Configuração do Hardaware" >>configurHw.txt ;
echo " " >>configurHw.txt ;
echo " ********************************************************************" >>configurHw.txt ;
echo " ">>configurHw.txt ;
echo " " >>configurHw.txt ;
echo " Placa Mãe: ">>configurHw.txt ;
echo " Placa Mãe: ";
echo " " >>configurHw.txt ;
echo " " ;
echo " sudo lspci | grep IDE >>configurHw.txt " ;
echo " sudo lspci | grep IDE " >>configurHw.txt;
echo "">>configurHw.txt;
sudo lspci | grep IDE;
sudo lspci | grep IDE>>configurHw.txt;
echo "">>configurHw.txt;
echo "">>configurHw.txt;
echo " " ;
firefox lshw.html &
echo " " ;
echo " Placa de áudio: ">>configurHw.txt ;
echo " Placa de áudio: ";
echo " " >>configurHw.txt ;
echo " " ;
echo " sudo lspci | grep Multimedia >>configurHw.txt " ;
echo " sudo lspci | grep Multimedia " >>configurHw.txt;
echo "">>configurHw.txt;
echo "";
sudo lspci | grep Multimedia;
sudo lspci | grep Multimedia>>configurHw.txt;
echo "">>configurHw.txt;
echo "">>configurHw.txt;
echo " " ;
echo " " ;
echo " Placa de rede:: ">>configurHw.txt ;
echo " Placa de rede: ";
echo " " >>configurHw.txt ;
echo " " ;
echo " sudo lspci | grep Ethernet >>configurHw.txt " ;
echo " sudo lspci | grep Ethernet " >>configurHw.txt;
echo "">>configurHw.txt;
echo "";
sudo lspci | grep Ethernet;
sudo lspci | grep Ethernet>>configurHw.txt;
echo "">>configurHw.txt;
echo "">>configurHw.txt;
echo " " ;
echo " " ;

echo " USB:">>configurHw.txt ;
echo " USB: ";
echo " " >>configurHw.txt ;
echo " " ;
echo " sudo lspci | grep USB >>configurHw.txt " ;
echo " sudo lspci | grep USB " >>configurHw.txt;
echo "">>configurHw.txt;
echo "";
sudo lspci | grep USB;
sudo lspci | grep USB>>configurHw.txt;
echo "">>configurHw.txt;
echo "">>configurHw.txt;
echo " " ;
echo " " ;
echo " Hard Disk - HD:">>configurHw.txt ;
echo " Hard Disk - HD: ";
echo " " >>configurHw.txt ;
echo " " ;
echo " sudo dmesg | grep hda >>configurHw.txt " ;
echo " sudo dmesg | grep hda " >>configurHw.txt;
echo "">>configurHw.txt;
echo "";
sudo dmesg | grep hda;
sudo dmesg | grep hda>>configurHw.txt;
echo "">>configurHw.txt;
echo "">>configurHw.txt;
echo " " ;
echo " " ;
echo " Hard Disk - HD - ou cd olhar pra ver ...:">>configurHw.txt ;
echo " Hard Disk - HD- ou cd olhar pra ver ...: ";
echo " " >>configurHw.txt ;
echo " " ;
echo " dmesg | grep hdb >>configurHw.txt " ;
echo " dmesg | grep hdb " >>configurHw.txt;
echo "">>configurHw.txt;
echo "";
sudo dmesg | grep hdb;
sudo dmesg | grep hdb>>configurHw.txt;
echo "">>configurHw.txt;
echo "">>configurHw.txt;
echo " " ;
echo " " ;
echo " Hard Disk - HD - ou cd olhar pra ver ...:">>configurHw.txt ;
echo " Hard Disk - HD- ou cd olhar pra ver ...: ";
echo " " >>configurHw.txt ;
echo " " ;
echo " dmesg | grep sdb >>configurHw.txt " ;
echo " dmesg | grep sdb " >>configurHw.txt;
echo "">>configurHw.txt;
echo "";
sudo dmesg | grep sdb;
sudo dmesg | grep sdb>>configurHw.txt;
echo "">>configurHw.txt;
echo "">>configurHw.txt;
echo " " ;
echo " " ;
echo " Hard Disk - HD - ou cd olhar pra ver ...:">>configurHw.txt ;
echo " Hard Disk - HD- ou cd olhar pra ver ...: ";
echo " " >>configurHw.txt ;
echo " " ;
echo " dmesg | grep sda >>configurHw.txt " ;
echo " dmesg | grep sda " >>configurHw.txt;
echo "">>configurHw.txt;
echo "";
sudo dmesg | grep sda ;
sudo dmesg | grep sda >>configurHw.txt;
echo "">>configurHw.txt;
echo "">>configurHw.txt;
echo " " ;
echo " " ;
echo "Dados Sobre a cpu " ;
echo "Dados Sobre a cpu " >>configurHw.txt;
echo " " ;
echo " " ;
echo " cat /proc/cpuinfo >>configurHw.txt " ;
echo " cat /proc/cpuinfo " >>configurHw.txt;
echo "">>configurHw.txt;
echo "";
sudo cat /proc/cpuinfo ;
sudo cat /proc/cpuinfo >>configurHw.txt;
echo "">>configurHw.txt;
echo "">>configurHw.txt;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " Conferindo o resultado no arquivo configurHw.txt" ;
echo " " ;
echo " sudo gedit configurHw.txt &" ;
echo " " ;
sudo gedit configurHw.txt &
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;


sudo cd /usr/src/linux
echo " " ;
echo " sudo cp .config .config-old" ;
echo " " ;
sudo cp .config .config-old
echo " " ;
echo " sudo cp .config-old .config-old.old" ;
echo " " ;
sudo cp .config-old .config-old.old
echo " " ;
echo " sudo mv .config-old /usr/src/config-old" ;
echo " " ;
sudo mv .config-old /usr/src/config-old
echo " " ;
echo " " ;#Backup da configuracao atual limpando as configurações antigas:
echo " ********************************************************************" ;
echo " Backup da configuracao atual limpando as configurações antigas:";
echo " " ;
echo " ********************************************************************" ;
echo " " ;

echo "cd /usr/src/linux " ;
echo " " ;
sudo cd /usr/src/linux
echo " " ;
echo " sudo cp .config .config-old" ;
echo " " ;
sudo cp .config .config-old
echo " " ;
echo " sudo cp .config-old .config-old.old" ;
echo " " ;
sudo cp .config-old .config-old.old
echo " " ;
echo " sudo mv .config-old /usr/src/config-old" ;
echo " " ;
sudo mv .config-old /usr/src/config-old
echo " " ;
echo " " ;



#Para compilar um novo kernel remove o link simbólico:
echo " ********************************************************************" ;
echo " Para compilar um novo kernel remove o link simbólico:";
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo "sudo rm /usr/src/linux " ;
echo " " ;
sudo rm /usr/src/linux
echo " " ;
#Descompaca o novo kernel em /usr/src e criar um novo link simbólico :
echo " ********************************************************************" ;
echo " Descompaca o novo kernel em /usr/src e criar um novo link simbólico : ";
echo " " ;
echo " ********************************************************************" ;
echo " sudo ln -sf /usr/src/linux-2.6.31.3-smp /usr/src/linux" ;
echo " " ;
sudo ln -sf /usr/src/linux-2.6.31.3-smp /usr/src/linux
echo " " ;
#sudo ln -sf /usr/src/linux-2.6.30.1-smp /usr/src/linux
echo " " ;
#Limpe as configuracoes antigas:
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " Limpe as configuracoes antigas:" ;
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " sudo make clean " ;
echo " " ;
sudo make clean
echo " " ;
echo "make mrproper " ;
echo " " ;
sudo make mrproper
echo " " ;
echo " " ;

#sudo make clean
#make clean
#make mrproper


echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " Recupere a config atual e faça as alterações necessárias" ;
echo " " ;
echo " ********************************************************************" ;
echo " " ;

#Recupere a config atual e faça as alterações necessárias:
echo "sudo cp /usr/src/config-old /usr/src/linux/.config " ;
echo " " ;
sudo cp /usr/src/config-old /usr/src/linux/.config
echo " " ;
echo "sudo make menuconfig " ;
echo " " ;
sudo make menuconfig
echo " " ;

#sudo cp /usr/src/config-old /usr/src/linux/.config
#sudo make menuconfig

#Compilando o kernel :

echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " Compilando o kernel ... :" ;
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo "sudo make " ;
echo " " ;
sudo make;
echo " " ;
echo "make modules " ;
echo " " ;
sudo make modules;
echo " " ;
echo "sudo make modules_install " ;
echo " " ;
sudo make modules_install
echo " " ;



#make
#make modules
#make modules_install
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " Copiar imagem para /boot:" ;
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " sudo cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.31.3-smp" ;
echo " " ;
sudo cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.31.3-smp
echo " " ;
#Copiar imagem para /boot:

#cp /usr/src/linux/arch/i386/boot/bzImage /boot/vmlinuz-2.6.30.1-smp
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " Vai precisar criar ramdisk. Leia /boot/README.initrd." ;
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo "sudo cd /boot " ;
sudo cd /boot;
echo " " ;
echo " " ;
#Vai precisar criar ramdisk. Leia /boot/README.initrd.

#cd /boot

#Fazer um backup do initrd.gz original, pode ser com link simbolico tambem.
echo " ********************************************************************" ;
echo " " ;
echo " Fazer um backup do initrd.gz original, pode ser com link simbolico tambem.." ;
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo "sudo cp initrd.gz initrd.gz-orig " ;
echo " " ;
sudo cp initrd.gz initrd.gz-orig
echo " " ;
#cp initrd.gz initrd.gz-orig
sudo cp initrd.gz-orig initrd.gz-orig-orig
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " Criar o initrd:" ;
#Criar o initrd:
echo " " ;
echo " ********************************************************************" ;
echo " " ;
#mkinitrd.yaird -c -k 2.6.31.3-smp -m ext4 -f ext4 -r /dev/sda1
echo " sudo mkinitrd.yaird -o /boot/initrd.img-2.6.31.3-smp 2.6.31.3-smp" ;
sudo mkinitrd.yaird -o /boot/initrd.img-2.6.31.3-smp 2.6.31.3-smp
echo " " ;
#mkinitrd -c -k 2.6.30.1-smp -m ext3 -f ext3 -r /dev/sda1
#----- mkinitrd.yaird
echo " ********************************************************************" ;
echo " " ;
echo " --Aqui a cima o 2.6.31.3-smp voce verifica em /lib/modules o nome correto; " ;
#Aqui a cima o 2.6.30.1-smp voce verifica em /lib/modules o nome correto; ext3 se for seu sistema de arquivos e /dev/sda1 a particao Linux.
####--Aqui a cima o 2.6.31.3-smp voce verifica em /lib/modules o nome correto;
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " sudo ls -la" ;
sudo ls -la
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " Renomeia o initrd.gz recém criado: " ;
#Renomeia o initrd.gz recém criado
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " sudo cp initrd.gz initrd.gz-new " ;
#cp initrd.gz initrd.gz-new
sudo cp initrd.gz initrd.gz-new
sudo cp 2.6.31.3-smp 2.6.31.3-smp.backup
sudo cp /boot/initrd.img-2.6.31.3-smp /boot/initrd.img-2.6.31.3-smp.backup
#Renomeia o initrd.gz recém criado
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " " ;
echo " sudo ls -la" ;
sudo ls -la
echo " " ;
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " Recupera o initrd.gz original:" ;
#Recupera o initrd.gz original:
echo " " ;
echo " sudo cp initrd.gz-orig initrd.gz " ;
sudo cp -v initrd.gz-orig initrd.gz
#cp initrd.gz-orig initrd.gz
echo " " ;
echo "Copia o /usr/src/linux/System.map para /boot " ;
#Copia o /usr/src/linux/System.map para /boot
echo " " ;
#cp /usr/src/linux/System.map /boot/System.map-2.6.30.1-smp
#---# sudo cp -v /usr/src/linux/System.map /boot/System.map-2.6.31.3-smp
echo " " ;
echo " sudo cp -v /usr/src/linux/System.map /boot/System.map-2.6.31.3-smp" ;
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " " ;
echo " sudo ls -la" ;
sudo ls -la
echo " " ;
echo " " ;
echo " Cria o link simbolico: " ;
#Cria o link simbolico:
echo " " ;
echo "sudo ln -sfv /boot/System.map-2.6.31.3-smp /boot/System.map " ;
echo " " ;
sudo ln -sfv /boot/System.map-2.6.31.3-smp /boot/System.map
#ln -sf /boot/System.map-2.6.30-smp /boot/System.map
#--#sudo ln -sfv /boot/System.map-2.6.31.3-smp /boot/System.map
echo " " ;
echo "Edite o GRUB, acrescentando o kernel novo compilado: " ;
echo " " ;
echo " Após editado salve o arquivo e o Feche" ;
echo " " ;
echo " " ;
echo " image = /boot/vmlinuz-2.6.30.1-smp" ;
echo " " ;
echo " root = /dev/sda1" ;
echo " " ;
echo "label = LinuxNV " ;
echo " " ;
echo " initrd = /boot/initrd.gz-new" ;
echo " " ;
echo " read-only" ;
echo " " ;
echo " " ;
echo " title UbuntuDM kernel 2.6.31.3 compiladorPorMim09Out2009" ;
echo " " ;
echo "root (hd0,0) " ;
echo " " ;
echo "kernel /boot/bzImageDM-2.6.30 root=/dev/sda1 ro locale=pt_BR single " ;
echo " " ;
echo " initrd /boot/initrd.img-2.6.31.3-smp" ;
echo " " ;
echo "quiet " ;
echo " " ;
echo "savedefault " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;

initrd /boot/initrd.img-2.6.31.3-smp

title UbuntuDM GNU/Linux, kernel 2.6.28-11-generic
root (hd0,0) #2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR quiet splash
initrd /boot/initrd.img-2.6.28-11-generic
quiet #adicionei
savedefault


#title UbuntuDM kernel 2.6.30 compiladorPorMim04Out2009
root (hd0,0) #2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/bzImageDM-2.6.30 root=/dev/sda1 ro locale=pt_BR single
initrd /boot/initrd.img-2.6.28-11-generic
quiet #adicionei
savedefault




echo " COmo gosto de Editar no Gedit ai vai:" ;
echo " " ;
echo " sudo gedit /boot/grub/menu.lst" ;
echo " " ;
sudo gedit /boot/grub/menu.lst
echo "Finalmente Pronto. " ;
echo " " ;
echo " " ;
echo " " ;
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " " ;
echo " ********************************************************************" ;
echo " " ;
echo " ********************************************************************" ;
echo " " ;



















Edita o lilo, acrescentando o kernel novo compilado:

vim /etc/lilo.conf

image = /boot/vmlinuz-2.6.30.1-smp
root = /dev/sda1
label = LinuxNV
initrd = /boot/initrd.gz-new
read-only

Reinstala o lilo:

#/sbin/lilo

Pronto.
***********************************************************************************************
***********************************************************************************************


O arquivo configurHw.txt gerado até agora foi:

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

********************************************************************

Configuração do Hardaware

********************************************************************


Placa Mãe:

sudo lspci | grep IDE

00:1f.2 IDE interface: Intel Corporation 82801HBM/HEM (ICH8M/ICH8M-E) SATA IDE Controller (rev 04)


Placa de áudio:

sudo lspci | grep Multimedia



Placa de rede::

sudo lspci | grep Ethernet

04:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8055 PCI-E Gigabit Ethernet Controller (rev 13)


USB:

sudo lspci | grep USB

00:1a.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #4 (rev 04)
00:1a.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #5 (rev 04)
00:1a.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #2 (rev 04)
00:1d.0 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #1 (rev 04)
00:1d.1 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #2 (rev 04)
00:1d.2 USB Controller: Intel Corporation 82801H (ICH8 Family) USB UHCI Controller #3 (rev 04)
00:1d.7 USB Controller: Intel Corporation 82801H (ICH8 Family) USB2 EHCI Controller #1 (rev 04)


Hard Disk - HD:

sudo dmesg | grep hda

[ 9.386206] hda_codec: Unknown model for ALC268, trying auto-probe from BIOS...


Hard Disk - HD - ou cd olhar pra ver ...:

dmesg | grep hdb



Hard Disk - HD - ou cd olhar pra ver ...:

dmesg | grep sdb

[ 8.087120] sd 2:0:0:0: [sdb] Attached SCSI removable disk


Hard Disk - HD - ou cd olhar pra ver ...:

dmesg | grep sda

[ 2.202876] sd 0:0:0:0: [sda] 234441648 512-byte hardware sectors: (120 GB/111 GiB)
[ 2.202893] sd 0:0:0:0: [sda] Write Protect is off
[ 2.202895] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 2.202921] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2.202989] sd 0:0:0:0: [sda] 234441648 512-byte hardware sectors: (120 GB/111 GiB)
[ 2.203004] sd 0:0:0:0: [sda] Write Protect is off
[ 2.203007] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[ 2.203032] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[ 2.203036] sda: sda1 sda2 < sda5 sda6 > sda3 sda4
[ 2.258384] sd 0:0:0:0: [sda] Attached SCSI disk
[ 10.054111] Adding 1951856k swap on /dev/sda6. Priority:-1 extents:1 across:1951856k
[ 10.657234] EXT4 FS on sda1, internal journal on sda1:8
[ 11.629190] EXT4 FS on sda5, internal journal on sda5:8


Dados Sobre a cpu
cat /proc/cpuinfo

processor : 0
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Pentium(R) Dual CPU T2390 @ 1.86GHz
stepping : 13
cpu MHz : 1867.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 0
cpu cores : 2
apicid : 0
initial apicid : 0
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm
bogomips : 3723.90
clflush size : 64
power management:

processor : 1
vendor_id : GenuineIntel
cpu family : 6
model : 15
model name : Intel(R) Pentium(R) Dual CPU T2390 @ 1.86GHz
stepping : 13
cpu MHz : 1867.000
cache size : 1024 KB
physical id : 0
siblings : 2
core id : 1
cpu cores : 2
apicid : 1
initial apicid : 1
fdiv_bug : no
hlt_bug : no
f00f_bug : no
coma_bug : no
fpu : yes
fpu_exception : yes
cpuid level : 10
wp : yes
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm constant_tsc arch_perfmon pebs bts pni dtes64 monitor ds_cpl est tm2 ssse3 cx16 xtpr pdcm lahf_lm
bogomips : 3723.93
clflush size : 64
power management:



+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++


Mas ainda faltam muitoas informações por isso tenho que ler muito mais ...!
Atualizado 09: 20: AM - 08/out/2009

Abração
Bem até a próxima ...!

------------------------------------------------------------------------------------------------



Após o domingo inteiro pra compilar ..., descobri q tenho q tentar de novo ..., ms uma hora eu consigo ... e qdo consegui coloco aqui ..., carreguei muitos módulos ai esta dando loop nesses módulos ...!

Demora a beça pra compilar kernel ..., mas tenho coisas a bça pra fazer outra hora tento novamente ...!
Quando conseguir fazer funcionar coloco aqui passo a passo como fazer ...


Abração e até a próxima ...!

Compilei pela segunda vez, e dessa vez obtive o erro que se encontra ai acima:

Error 13: Ivalid or unsupported executable format

Press any key to continue ...


Pra voce saber o conteudo do meu /boot/grub/menu.lst

*****************************************************************
danilomatias@danilomatias-laptop:/boot/grub$ cat menu.lst
# menu.lst - See: grub(8), info grub, update-grub(8)
# grub-install(8), grub-floppy(8),
# grub-md5-crypt, /usr/share/doc/grub
# and /usr/share/doc/grub-doc/.

## default num
# Set the default entry to the entry number NUM. Numbering starts from 0, and
# the entry number 0 is the default if the command is not used.
#
# You can specify 'saved' instead of a number. In this case, the default entry
# is the entry saved with the command 'savedefault'.
# WARNING: If you are using dmraid do not use 'savedefault' or your
# array will desync and will not let you boot your system.
default 0

## timeout sec
# Set a timeout, in SEC seconds, before automatically booting the default entry
# (normally the first entry defined).
timeout 7

## hiddenmenu
# Hides the menu by default (press ESC to see the menu)
#hiddenmenu

# Pretty colours
#color cyan/blue white/blue

## password ['--md5'] passwd
# If used in the first section of a menu file, disable all interactive editing
# control (menu entry editor and command-line) and entries protected by the
# command 'lock'
# e.g. password topsecret
# password --md5 $1$gLhU0/$aW78kHK1QfV3P2b2znUoe/
# password topsecret

#
# examples
#
# title Windows 95/98/NT/2000
# root (hd0,0)
# makeactive
# chainloader +1
#
# title Linux
# root (hd0,1)
# kernel /vmlinuz root=/dev/hda2 ro
#

#
# Put static boot stanzas before and/or after AUTOMAGIC KERNEL LIST

### BEGIN AUTOMAGIC KERNELS LIST
## lines between the AUTOMAGIC KERNELS LIST markers will be modified
## by the debian update-grub script except for the default options below

## DO NOT UNCOMMENT THEM, Just edit them to your needs

## ## Start Default Options ##
## default kernel options
## default kernel options for automagic boot options
## If you want special options for specific kernels use kopt_x_y_z
## where x.y.z is kernel version. Minor versions can be omitted.
## e.g. kopt=root=/dev/hda1 ro
## kopt_2_6_8=root=/dev/hdc1 ro
## kopt_2_6_8_2_686=root=/dev/hdc2 ro
# kopt=root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR

## default grub root device
## e.g. groot=(hd0,0)
# groot=2decc5a5-bad0-4eae-a6c0-997f0cf99b98

## should update-grub create alternative automagic boot options
## e.g. alternative=true
## alternative=false
# alternative=true

## should update-grub lock alternative automagic boot options
## e.g. lockalternative=true
## lockalternative=false
# lockalternative=false

## additional options to use with the default boot option, but not with the
## alternatives
## e.g. defoptions=vga=791 resume=/dev/hda5
# defoptions=quiet splash

## should update-grub lock old automagic boot options
## e.g. lockold=false
## lockold=true
# lockold=false

## Xen hypervisor options to use with the default Xen boot option
# xenhopt=

## Xen Linux kernel options to use with the default Xen boot option
# xenkopt=console=tty0

## altoption boot targets option
## multiple altoptions lines are allowed
## e.g. altoptions=(extra menu suffix) extra boot options
## altoptions=(single-user) single
# altoptions=(recovery mode) single

## controls how many kernels should be put into the menu.lst
## only counts the first occurence of a kernel, not the
## alternative kernel options
## e.g. howmany=all
## howmany=7
# howmany=all

## should update-grub create memtest86 boot option
## e.g. memtest86=true
## memtest86=false
# memtest86=true

## should update-grub adjust the value of the default booted system
## can be true or false
# updatedefaultentry=false

## should update-grub add savedefault to the default options
## can be true or false
# savedefault=false

## ## End Default Options ##
title Ubuntu GNU/Linux, kernel 2.6.28-15-generic #altereipravernoqdava
root (hd0,0) # or alter for whatever hard disk and partition number you have #root 2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/vmlinuz-2.6.28-15-generic root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR quiet splash
initrd /boot/initrd.img-2.6.28-15-generic
quiet #adicionei
savedefault


title UbuntuDM GNU/Linux, kernel 2.6.28-15-generic
root (hd0,0) #2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/vmlinuz-2.6.28-15-generic root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR quiet splash
initrd /boot/initrd.img-2.6.28-15-generic
quiet #adicionei
savedefault

title UbuntuDM GNU/Linux, kernel 2.6.28-15-generic (recovery mode)
root (hd0,0) #2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/vmlinuz-2.6.28-15-generic root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR single
initrd /boot/initrd.img-2.6.28-15-generic
quiet #adicionei
savedefault


title UbuntuDM GNU/Linux, kernel 2.6.28-14-generic
root (hd0,0) #2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/vmlinuz-2.6.28-14-generic root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR quiet splash
initrd /boot/initrd.img-2.6.28-14-generic
quiet #adicionei
savedefault


title UbuntuDM GNU/Linux, kernel 2.6.28-14-generic (recovery mode)
root (hd0,0) #2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/vmlinuz-2.6.28-14-generic root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR single
initrd /boot/initrd.img-2.6.28-14-generic
quiet #adicionei
savedefault


title UbuntuDM GNU/Linux, kernel 2.6.28-13-generic
root (hd0,0) #2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/vmlinuz-2.6.28-13-generic root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR quiet splash
initrd /boot/initrd.img-2.6.28-13-generic
quiet #adicionei
savedefault


title UbuntuDM GNU/Linux, kernel 2.6.28-13-generic (recovery mode)
root (hd0,0) #2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/vmlinuz-2.6.28-13-generic root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR single
initrd /boot/initrd.img-2.6.28-13-generic
quiet #adicionei
savedefault


title UbuntuDM GNU/Linux, kernel 2.6.28-11-generic
root (hd0,0) #2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR quiet splash
initrd /boot/initrd.img-2.6.28-11-generic
quiet #adicionei
savedefault


title UbuntuDM GNU/Linux, kernel 2.6.28-11-generic (recovery mode)
root (hd0,0) #2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/vmlinuz-2.6.28-11-generic root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR single
initrd /boot/initrd.img-2.6.28-11-generic
quiet #adicionei
savedefault


title UbuntuDM kernel 2.6.30 compiladorPorMim04Out2009
root (hd0,0) #2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/bzImageDM-2.6.30 root=/dev/sda1 ro locale=pt_BR single
initrd /boot/initrd.img-2.6.28-11-generic
quiet #adicionei
savedefault


title UbuntuDM GNU/Linux, kernel memtest86+
root (hd0,0) #2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/memtest86+.bin
quiet #adicionei
savedefault


### END DEBIAN AUTOMAGIC KERNELS LIST

# This is a divider, added to separate the menu items below from the Debian
# ones.
title Other operating systems:
root


# This entry automatically added by the Debian installer for a non-linux OS
# on /dev/sda3
title Microsoft Windows XP Professional
rootnoverify (hd0,2)
savedefault
makeactive
chainloader +1

danilomatias@danilomatias-laptop:/boot/grub$

*****************************************************************

O que tenho em /boot:
Resultado do comando ls -la:

____________________________________________________________________

danilomatias@danilomatias-laptop:/boot$ ls -la
total 60152
drwxr-xr-x 3 root root 4096 2009-10-05 23:11 .
drwxr-xr-x 21 root root 4096 2009-09-07 17:41 ..
-rw-r--r-- 1 root root 529118 2009-04-17 00:41 abi-2.6.28-11-generic
-rw-r--r-- 1 root root 528128 2009-06-30 18:56 abi-2.6.28-13-generic
-rw-r--r-- 1 root root 528128 2009-07-24 23:12 abi-2.6.28-14-generic
-rw-r--r-- 1 root root 528310 2009-09-09 09:56 abi-2.6.28-15-generic
-rw-r--r-- 1 root root 75811 2009-10-05 23:11 bzImageDM-2.6.30
-rw-r--r-- 1 root root 96795 2009-04-17 00:41 config-2.6.28-11-generic
-rw-r--r-- 1 root root 96768 2009-06-30 18:56 config-2.6.28-13-generic
-rw-r--r-- 1 root root 96768 2009-07-24 23:12 config-2.6.28-14-generic
-rw-r--r-- 1 root root 96804 2009-09-09 09:56 config-2.6.28-15-generic
drwxr-xr-x 2 root root 4096 2009-10-02 13:00 grub
-rw-r--r-- 1 root root 7543838 2009-07-03 15:41 initrd.img-2.6.28-11-generic
-rw-r--r-- 1 root root 7555175 2009-07-17 08:14 initrd.img-2.6.28-13-generic
-rw-r--r-- 1 root root 7558155 2009-09-09 09:05 initrd.img-2.6.28-14-generic
-rw-r--r-- 1 root root 6579422 2009-10-02 05:01 initrd.img-2.6.28-15-generic
-rw-r--r-- 1 root root 6579544 2009-09-26 09:09 initrd.img-2.6.28-15-generic.bak
-rw-r--r-- 1 root root 128796 2009-03-27 14:15 memtest86+.bin
-rw-r--r-- 1 root root 1456232 2009-04-17 00:41 System.map-2.6.28-11-generic
-rw-r--r-- 1 root root 1449810 2009-06-30 18:56 System.map-2.6.28-13-generic
-rw-r--r-- 1 root root 1449836 2009-07-24 23:12 System.map-2.6.28-14-generic
-rw-r--r-- 1 root root 1450680 2009-09-09 09:56 System.map-2.6.28-15-generic
-rw-r--r-- 1 root root 3226354 2009-10-05 23:11 System.map-2.6.30
-rw-r--r-- 1 root root 1074 2009-04-17 00:43 vmcoreinfo-2.6.28-11-generic
-rw-r--r-- 1 root root 1074 2009-06-30 18:58 vmcoreinfo-2.6.28-13-generic
-rw-r--r-- 1 root root 1074 2009-07-24 23:13 vmcoreinfo-2.6.28-14-generic
-rw-r--r-- 1 root root 1074 2009-09-09 09:58 vmcoreinfo-2.6.28-15-generic
-rw-r--r-- 1 root root 3501776 2009-04-17 00:41 vmlinuz-2.6.28-11-generic
-rw-r--r-- 1 root root 3488208 2009-06-30 18:56 vmlinuz-2.6.28-13-generic
-rw-r--r-- 1 root root 3490224 2009-07-24 23:12 vmlinuz-2.6.28-14-generic
-rw-r--r-- 1 root root 3491312 2009-09-09 09:56 vmlinuz-2.6.28-15-generic

____________________________________________________________________

Alguém ai pode me dar uma ajuda ? O que pode ser que está ocorrendo ?

Calculando o valor de PI com milhares de casas decimais no shell scripct em modo texto

Achei essa simples linha de comando em um fórum do VOL - Viva o linux -> http://www.vivaolinux.com.br/
Bem a linha foi:

$ time echo "scale=10000; 4*a(1)" | bc -l
o Resultado dessa linha foi:


3.141592653589793238462643383279502884197169399375105820974944592307\
81640628620899862803482534211706798214808651328230664709384460955058\
22317253594081284811174502841027019385211055596446229489549303819644\
28810975665933446128475648233786783165271201909145648566923460348610\
45432664821339360726024914127372458700660631558817488152092096282925\
40917153643678925903600113305305488204665213841469519415116094330572\
70365759591953092186117381932611793105118548074462379962749567351885\
75272489122793818301194912983367336244065664308602139494639522473719\
07021798609437027705392171762931767523846748184676694051320005681271\
45263560827785771342757789609173637178721468440901224953430146549585\
37105079227968925892354201995611212902196086403441815981362977477130\
99605187072113499999983729780499510597317328160963185950244594553469\
08302642522308253344685035261931188171010003137838752886587533208381\
42061717766914730359825349042875546873115956286388235378759375195778\
18577805321712268066130019278766111959092164201989380952572010654858\
63278865936153381827968230301952035301852968995773622599413891249721\
77528347913151557485724245415069595082953311686172785588907509838175\
46374649393192550604009277016711390098488240128583616035637076601047\
10181942955596198946767837449448255379774726847104047534646208046684\
25906949129331367702898915210475216205696602405803815019351125338243\
00355876402474964732639141992726042699227967823547816360093417216412\
19924586315030286182974555706749838505494588586926995690927210797509\
30295532116534498720275596023648066549911988183479775356636980742654\
25278625518184175746728909777727938000816470600161452491921732172147\
72350141441973568548161361157352552133475741849468438523323907394143\
33454776241686251898356948556209921922218427255025425688767179049460\
16534668049886272327917860857843838279679766814541009538837863609506\
80064225125205117392984896084128488626945604241965285022210661186306\
74427862203919494504712371378696095636437191728746776465757396241389\
08658326459958133904780275900994657640789512694683983525957098258226\
20522489407726719478268482601476990902640136394437455305068203496252\
45174939965143142980919065925093722169646151570985838741059788595977\
29754989301617539284681382686838689427741559918559252459539594310499\
72524680845987273644695848653836736222626099124608051243884390451244\
13654976278079771569143599770012961608944169486855584840635342207222\
58284886481584560285060168427394522674676788952521385225499546667278\
23986456596116354886230577456498035593634568174324112515076069479451\
09659609402522887971089314566913686722874894056010150330861792868092\
08747609178249385890097149096759852613655497818931297848216829989487\
22658804857564014270477555132379641451523746234364542858444795265867\
82105114135473573952311342716610213596953623144295248493718711014576\
54035902799344037420073105785390621983874478084784896833214457138687\
51943506430218453191048481005370614680674919278191197939952061419663\
42875444064374512371819217999839101591956181467514269123974894090718\
64942319615679452080951465502252316038819301420937621378559566389377\
87083039069792077346722182562599661501421503068038447734549202605414\
66592520149744285073251866600213243408819071048633173464965145390579\
62685610055081066587969981635747363840525714591028970641401109712062\
80439039759515677157700420337869936007230558763176359421873125147120\
53292819182618612586732157919841484882916447060957527069572209175671\
16722910981690915280173506712748583222871835209353965725121083579151\
36988209144421006751033467110314126711136990865851639831501970165151\
16851714376576183515565088490998985998238734552833163550764791853589\
32261854896321329330898570642046752590709154814165498594616371802709\
81994309924488957571282890592323326097299712084433573265489382391193\
25974636673058360414281388303203824903758985243744170291327656180937\
73444030707469211201913020330380197621101100449293215160842444859637\
66983895228684783123552658213144957685726243344189303968642624341077\
32269780280731891544110104468232527162010526522721116603966655730925\
47110557853763466820653109896526918620564769312570586356620185581007\
29360659876486117910453348850346113657686753249441668039626579787718\
55608455296541266540853061434443185867697514566140680070023787765913\
44017127494704205622305389945613140711270004078547332699390814546646\
45880797270826683063432858785698305235808933065757406795457163775254\
20211495576158140025012622859413021647155097925923099079654737612551\
76567513575178296664547791745011299614890304639947132962107340437518\
95735961458901938971311179042978285647503203198691514028708085990480\
10941214722131794764777262241425485454033215718530614228813758504306\
33217518297986622371721591607716692547487389866549494501146540628433\
66393790039769265672146385306736096571209180763832716641627488880078\
69256029022847210403172118608204190004229661711963779213375751149595\
01566049631862947265473642523081770367515906735023507283540567040386\
74351362222477158915049530984448933309634087807693259939780541934144\
73774418426312986080998886874132604721569516239658645730216315981931\
95167353812974167729478672422924654366800980676928238280689964004824\
35403701416314965897940924323789690706977942236250822168895738379862\
30015937764716512289357860158816175578297352334460428151262720373431\
46531977774160319906655418763979293344195215413418994854447345673831\
62499341913181480927777103863877343177207545654532207770921201905166\
09628049092636019759882816133231666365286193266863360627356763035447\
76280350450777235547105859548702790814356240145171806246436267945612\
75318134078330336254232783944975382437205835311477119926063813346776\
87969597030983391307710987040859133746414428227726346594704745878477\
87201927715280731767907707157213444730605700733492436931138350493163\
12840425121925651798069411352801314701304781643788518529092854520116\
58393419656213491434159562586586557055269049652098580338507224264829\
39728584783163057777560688876446248246857926039535277348030480290058\
76075825104747091643961362676044925627420420832085661190625454337213\
15359584506877246029016187667952406163425225771954291629919306455377\
99140373404328752628889639958794757291746426357455254079091451357111\
36941091193932519107602082520261879853188770584297259167781314969900\
90192116971737278476847268608490033770242429165130050051683233643503\
89517029893922334517220138128069650117844087451960121228599371623130\
17114448464090389064495444006198690754851602632750529834918740786680\
88183385102283345085048608250393021332197155184306354550076682829493\
04137765527939751754613953984683393638304746119966538581538420568533\
86218672523340283087112328278921250771262946322956398989893582116745\
62701021835646220134967151881909730381198004973407239610368540664319\
39509790190699639552453005450580685501956730229219139339185680344903\
98205955100226353536192041994745538593810234395544959778377902374216\
17271117236434354394782218185286240851400666044332588856986705431547\
06965747458550332323342107301545940516553790686627333799585115625784\
32298827372319898757141595781119635833005940873068121602876496286744\
60477464915995054973742562690104903778198683593814657412680492564879\
85561453723478673303904688383436346553794986419270563872931748723320\
83760112302991136793862708943879936201629515413371424892830722012690\
14754668476535761647737946752004907571555278196536213239264061601363\
58155907422020203187277605277219005561484255518792530343513984425322\
34157623361064250639049750086562710953591946589751413103482276930624\
74353632569160781547818115284366795706110861533150445212747392454494\
54236828860613408414863776700961207151249140430272538607648236341433\
46235189757664521641376796903149501910857598442391986291642193994907\
23623464684411739403265918404437805133389452574239950829659122850855\
58215725031071257012668302402929525220118726767562204154205161841634\
84756516999811614101002996078386909291603028840026910414079288621507\
84245167090870006992821206604183718065355672525325675328612910424877\
61825829765157959847035622262934860034158722980534989650226291748788\
20273420922224533985626476691490556284250391275771028402799806636582\
54889264880254566101729670266407655904290994568150652653053718294127\
03369313785178609040708667114965583434347693385781711386455873678123\
01458768712660348913909562009939361031029161615288138437909904231747\
33639480457593149314052976347574811935670911013775172100803155902485\
30906692037671922033229094334676851422144773793937517034436619910403\
37511173547191855046449026365512816228824462575916333039107225383742\
18214088350865739177150968288747826569959957449066175834413752239709\
68340800535598491754173818839994469748676265516582765848358845314277\
56879002909517028352971634456212964043523117600665101241200659755851\
27617858382920419748442360800719304576189323492292796501987518721272\
67507981255470958904556357921221033346697499235630254947802490114195\
21238281530911407907386025152274299581807247162591668545133312394804\
94707911915326734302824418604142636395480004480026704962482017928964\
76697583183271314251702969234889627668440323260927524960357996469256\
50493681836090032380929345958897069536534940603402166544375589004563\
28822505452556405644824651518754711962184439658253375438856909411303\
15095261793780029741207665147939425902989695946995565761218656196733\
78623625612521632086286922210327488921865436480229678070576561514463\
20469279068212073883778142335628236089632080682224680122482611771858\
96381409183903673672220888321513755600372798394004152970028783076670\
94447456013455641725437090697939612257142989467154357846878861444581\
23145935719849225284716050492212424701412147805734551050080190869960\
33027634787081081754501193071412233908663938339529425786905076431006\
38351983438934159613185434754649556978103829309716465143840700707360\
41123735998434522516105070270562352660127648483084076118301305279320\
54274628654036036745328651057065874882256981579367897669742205750596\
83440869735020141020672358502007245225632651341055924019027421624843\
91403599895353945909440704691209140938700126456001623742880210927645\
79310657922955249887275846101264836999892256959688159205600101655256\
375676

real 4m59.177s
user 4m46.538s
sys 0m1.172s

Impresssionante não ? Em apenas 5 minutos calculou-se 10068
casas decimais de PI ...
O detalhezinho foi que eu contei se tinham mais de 10000 casas e realmente tinham, o resultado esta ai em cima para provar ...! Se quizer contar também fique a vontade ...!

Com o superPi no windows em quanto tempo se faz isso ?

Estou testando agora
$time echo "scale=9999; 4*a(1)" | bc -l

sexta-feira, 2 de outubro de 2009

Error 11: Unrecognized device string na inicialização do GRUB do Ubuntu 9.04



Ontem ao atualizar o Grub através das atualizações automáticas do ubuntu, acabei percebendo que meu ubuntu simplesmente não acessada mais devido ao seguinte erro, conforme tela acima:

Error 11: Unrecognized device string

Press any key to continue ...

Após um dia inteiro Vasculhando cheguei a página:

https://lists.ubuntu.com/archives/universe-bugs/2009-April/072106.html


O erro se deu justamente devido a um BUG na nova versão do GRUB 2 : GRand Unified Bootloader

Após ler muito percebi que deveria editar o arquivo menu.lst que se encontrava em:
/boot/grub/

O Problema seria como editar o arquivo, sendo que nem o sistema operacional conseguia utilizar ...
A solução foi, dar o boot com o live cd do Ubuntu 9.04 identificar em que partição do meu HD estava instalado o meu ubuntu 9.04 ... descobri através do montar e desmontar partições que estava em sda1
Apenas lembrando que $ são operações de superUsuário ( usuário root, raiz ..., administrador ... )
Logo para montar a partição dei o comando na shell
#sudo su
$mkdir /media/sda1/
$mount /dev/sda1/ /media/sda1/
Naveguei até o diretório onde estava o meu arquivo menu.lst, pois haveria de editá-lo
$ cd /media/sda1/boot/grub/
Mudei as permissões para que qualquer um pudesse editálo:
$ chmod 0777 menu.lst
Pronto bastava abrir com o gedit e alterar a linha:
root 2decc5a5-bad0-4eae-a6c0-997f0cf99b98
nessa linha deve haver de onde o boot deve iniciar no meu caso, como a partição é sda1 e só possuo um hd sata tive que alterar a linha para:

root (hd0,0)

onde hd0 indica que inicia do primeiro hd e 0 a primeira partição, se o ubuntu estivesse na segunda partição seria root (hd0,1) na terceira (sda3) root (hd0,2) e assim sucessivamente...
Tive que acrescentar as seguintes linhas:

quiet
savedefault


De maneira que o que era:
...
## ## End Default Options ##
title Debian GNU/Linux, kernel 2.6.28-15-generic
root 2decc5a5-bad0-4eae-a6c0-997f0cf99b98
kernel /boot/vmlinuz-2.6.28-15-generic root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR quiet splash
initrd /boot/initrd.img-2.6.28-15-generic



Virou:


## ## End Default Options ##
title Ubuntu GNU/Linux, kernel 2.6.28-15-generic #altereipravernoqdava
root (hd0,0)
kernel /boot/vmlinuz-2.6.28-15-generic root=UUID=2decc5a5-bad0-4eae-a6c0-997f0cf99b98 ro locale=pt_BR quiet splash
initrd /boot/initrd.img-2.6.28-15-generic
quiet #adicionei
savedefault

Salvei o arquivo e rebootei e tive a agradável surpresa funcionou ...

Bem agora acabarei de editar esse bug da alteração do menu.lst
e mudarei novamene a permissão para 0644

$ chmod 0644 menu.lst

É coisa até meio idiota, alterar um arquivo, mda da um frio na barriga não ver seu sistema iniciar ...
Bem talvez ajude alguém ...

terça-feira, 29 de setembro de 2009

links para algo que me chamou a atenção na aula de SOP

Comentou-se brevemente sobre os endereços de memória onde estão mapeados os registradores de status controle e dados .. resolvi colocar aqui, pois não dará tempo de editar antes de começar a aula ..
Bom ai vão os links ...:

http://www.google.com.br/#hl=pt-BR&q=programando+a+porta+paralela+em+c+%2Bstatus+%2Bregistrador&meta=&fp=43b6c9b7b8acf940

http://www.jobtecltda.com.br/paralela/paralela.htm

http://www.jobtecltda.com.br/paralela/paralela_2.htm

http://zz2kzq.site90.com/CursoHtml/Modulo04/Modulo004Aula001.htm

http://zz2kzq.site90.com/CursoHtml/Modulo04/Modulo004Aula002.htm

http://www.qualidata.com.br/~fabricio/html/programacao.html

http://paginas.ucpel.tche.br/~rafaelte/portap.html


http://paginas.ucpel.tche.br/~rafaelte/portap.html

http://www.qualidata.com.br/~fabricio/html/bookmarks.html

http://ocw.mit.edu/OcwWeb/Electrical-Engineering-and-Computer-Science/index.htm

segunda-feira, 28 de setembro de 2009

Revolta







Esse vídeo é uma resposta pra quem acha que minha vida é fácil, que sou folgado como alguns são, que não ajudam os pais ...
Pedalo diariamente 12 Km para chegar na Faculdade mais 12 pra voltar, algumas vezes debaixo de chuva ...
Hoje, pedalei 6 Km estourou o pneu, tive q empurrar por mais 6 Km debaixo de chuva ...

As vezes fico sem almoçar, por que a faculdade é de tempo integral ...
Quando simplesmente esses bundões, não tem o que fazer, ficam dizendo que a vida da gente é fácil, por dizermos que não queremos mais responsabilidades, pois não sou burro como eles de assumir compromissos precipitadamente ..., meu coração só balança por pessoas realmente lindas ...
Quando simplesmente não existe ninguém têm fibra suficiente pra aguentar quebrar concreto de madrugada o pai, é obrigado a me chamar ...

Quem muito fala é por que pouco faz ...

sábado, 26 de setembro de 2009

Apenas alguns links sobre compilação do kernel do linux

VideoTutorial de Instalación de Gentoo, partes 6 al 10:
http://diagonalasterisco.blogspot.com/2009/03/videotutorial-de-instalacion-de-gentoo.html

http://www.linuxabordo.com.br/wiki/index.php?title=Main_Page

http://free-electrons.com/training/

http://www.emdebian.org/






http://imasters.uol.com.br/noticia/143/linux/compilando_e_instalando_o_kernel_do_linux/


http://www.debian.org/releases/2.2/sparc/ch-post-install.pt.html


http://pt.wikibooks.org/wiki/Guia_foca_Linux/Iniciante%2BIntermedi%C3%A1rio/Kernel_e_m%C3%B3dulos/Recompilando_o_Kernel


http://www.gdhpress.com.br/ferramentas/leia/index.php?p=cap2-15



http://br.kernelnewbies.org/faqs/compilando-o-kernel


http://br.kernelnewbies.org/faqs/compilando-o-kernel


http://www.ibm.com/developerworks/br/library/l-embedded-distro/index.html


http://users.rcn.com/rneswold/avr/x1885.html#TBLGCCOPTIONS


http://packages.debian.org/pt-br/lenny/gcc-avr


http://packages.debian.org/pt-br/lenny/gcc-avr


http://users.rcn.com/rneswold/avr/


http://www.casainho.net/tiki-view_blog_post.php?postId=6


https://launchpad.net/ubuntu/+source/gcc-avr



http://www.embeddedarm.com/products/board-detail.php?product=TS-7800



http://busybox.net/downloads/


http://ymorin.is-a-geek.org/dokuwiki/projects/crosstool


http://www.ibm.com/developerworks/offers/techbriefings/?S_TACT=105AGY79&S_CMP=EDU

http://www.ibm.com/developerworks/linux/library/l-initrd.html


http://www.ibm.com/developerworks/linux/library/l-linuxboot/

http://www.ibm.com/developerworks/br/library/l-embedded-distro/section6.html



http://www.pdf-search-engine.com/gcc-avr-pdf.html

quarta-feira, 23 de setembro de 2009

Palavras mais buscadas no google:

No Brasil, 2008, foi um grande ano para as buscas!
Há mais brasileiros do que nunca com acesso à Internet, agora somos cerca de 48 milhões de usuários segundo dados IBOPE/NetRatings. E o ano foi agitado por eleições municipais, olimíadas, crise econômica, eleições norte-americanas e muitas novidades. O Google Zeitgeist mostra os principais interesses dos brasileiros na web, as buscas que mais cresceram, as que perderam popularidade em relação ao ano anterior e o dia a dia de quem acompanha futebol, política, economia e as celebridades.
Maiores Subidas (Fastest Rising)

1. jogos de meninas
2. naruto
3. you tube
4. claro
5. youtube
6. jogos
7. jogo
8. esporte
9. tradutor
10. o dia

Mais Pesquisados (Most Popular)

1. orkut
2. jogos
3. download
4. fotos
5. youtube
6. videos
7. musicas
8. musica
9. msn
10. globo

Relacionada com o Google

1. google maps
2. tradutor
3. google earth
4. orkut
5. google videos
6. google talk
7. youtube
8. chrome
9. gmail
10. google toolbar

Futebol

1. são paulo futebol
2. santos
3. futebol ao vivo
4. futebol feminino
5. palmeiras
6. flamengo
7. futebol americano
8. federação paulista
9. corinthians
10. campeonato brasileiro

Eleições 2008

1. resultado
2. vereadores
3. candidatos
4. apuração
5. eleição municipal
6. eleição para prefeito
7. obama
8. lei seca
9. tribunal superior eleitoral
10. lula

Celebridades

1. juliana paes
2. juliana knust
3. malu mader
4. dudu azevedo
5. britney spears
6. amy winehouse
7. deborah seco
8. vanessa hudgens
9. sabrina sato
10. michael buble







Extraído de:
http://www.google.com/intl/en/press/zeitgeist2008/#top

terça-feira, 22 de setembro de 2009

Bibliotecas Compartilhadas

Link interessante ...,

http://augustocampos.net/revista-do-linux/005/bibliotecas.html



Para garantir que o conteúdo não será perdido reproduzi ele aqui.

Bibliotecas Compartilhadas
Entenda como diversos programas podem compartilhar bibliotecas comuns economizando recursos

Ricardo Caratti
caratti@inep.gov.br

Em programação, entende-se por bibliotecas, arquivos que contêm um conjunto de módulos ou membros de códigos pré-compilados reutilizáveis. Esses códigos podem ser usados por vários programas sem a necessidade de detalhes de sua implementação. A grande vantagem de usar uma biblioteca, é que uma vez fabricada, não será mais preciso compilar, bastando simplesmente ligá-la ao programa desejado. Dessa forma, existe uma grande vantagem em usar bibliotecas, pois uma vez implementada ou adquirida de terceiros, o desenvolvedor pode se abstrair dos detalhes e concentrar-se somente no problema principal. A tabela da página ao lado ilustra o uso de uma biblioteca compartilhada.

Note que "Meu Programa" necessitou usar uma função X e um procedimento Y. Entende-se por função, um procedimento ou uma rotina que retorna um valor. Sabendo que essas rotinas existem na biblioteca, para usá-las, basta fazer referência à biblioteca durante a compilação do programa principal.

Em Linux, pode-se desenvolver dois tipos de bibliotecas. A biblioteca de ligação estática e a biblioteca de ligação dinâmica. As bibliotecas estáticas são ligadas ao programa e fazem parte do arquivo executável. Já as bibliotecas dinâmicas são ligadas em tempo de execução, ou seja, a ligação ocorre por demanda. Portanto, não fazem parte do programa principal, reduzindo assim o tamanho do arquivo executável.

Optar pelo uso de bibliotecas estáticas ou dinâmicas depende muito do que se pretende. Em geral, pode-se obter o mesmo resultado usando uma ou outra técnica. Bibliotecas estáticas deixam o código executável mais livre da configuração do ambiente, ou seja, todo o código que o programa precisa para ser executado já se encontra no próprio executável. Ao contrário, quando se faz uso de bibliotecas compartilhadas, o programa é dividido em um módulo principal e em um ou mais módulos que serão ligados dinamicamente. Considerando que bibliotecas compartilhadas podem ser usadas por mais de um programa ao mesmo tempo, elas ocupam menos memória RAM, menos espaço em disco, menos recursos do sistema, é mais simples fazer manutenção.

Resumindo, bibliotecas são arquivos que contêm módulos reutilizáveis pré-compilados que serão usados por desenvolvedores de aplicações. Elas podem ser classificadas em estáticas e compartilhadas. Ao optar por bibliotecas estáticas, ela passará a fazer parte do corpo do programa principal, liberando-o assim do ambiente de configuração do sistema. Ao contrário, bibliotecas compartilhadas ligam-se ao programa principal dinamicamente, ou seja, um módulo só será ligado ao programa principal se for solicitado. Com isso, bibliotecas compartilhadas consomem menos recursos do sistema operacional além de facilitarem a substituição de módulos defeituosos sem a necessidade de compilar novamente todos os outros módulos ou sistemas envolvidos.

Para ilustrar o desenvolvimento de bibliotecas compartilhadas, será utilizado o ambiente de desenvolvimento na linguagem C que vem com a própria distribuição Linux.

Será criado um procedimento que mostrará o resultado da soma de dois valores e uma função que dirá qual o maior valor.

Note pelo fonte a seguir, que não existe nada incomum no desenvolvimento das rotinas.

Fonte: MinhaLib.c
#include
#include
#include
/* Dados dois argumentos inteiros, a e b, imprime a soma. */
void MinhaProcSoma( int a, int b)
{
int c;
c = a + b;
printf("\n a + b = %d \n", c);
}
/* Dado dois argumentos inteiros, a e b, retorna o maior valor */
int MinhaFuncMaiorValor( int a, int b)
{
if ( a >= b)
return a;
else
return b;
}

É preciso agora tornar a função e o procedimento disponíveis para qualquer programa. Para tanto, é preciso compilá-lo utilizando a seguinte linha de comando:

#gcc -fPIC -c MinhaLib.c

Para obter mais detalhes sobre as opções de compilação do C da GNU utilize o comando man gcc. Um manual completo das opções do compilador será mostrado.

Após a compilação, um arquivo MinhaLib.o será gerado.

Até agora, tudo que se tem é um módulo compilado com um procedimento e uma função. Nessa forma, é possível utilizar MinhaLib.o como uma biblioteca estática. Bastando para isso, ligá-la ao programa principal da seguinte forma:

#gcc -o ProgPrincipal ProgPrincipal.c MinhaLib.o

Para fazer uso dos benefícios de bibliotecas compartilhadas, é preciso ir um pouco mais além. Para tanto, é preciso usar a seguinte linha de comando:

#gcc -shared -Wl,-soname,libMinhaLib.so.1 -o libMinhaLib.so.1.0

MinhaLib.o

Apesar de não ser obrigatório iniciar o nome de uma biblioteca compartilhada com lib, é muito desejável, já que é o padrão de algumas ferramentas do Linux como veremos mais adiante. Pelo comando acima, será criada uma biblioteca com o nome de libMinhaLib.so.1.0. O sistema operacional irá reconhecê-la pelo nome de libMinhaLib.so.1. Isso também não é obrigatório, mas é bom usar esse padrão para ficar de acordo com as normas de desenvolvimento do Linux.

Na realidade, o Linux usa o seguinte padrão para bibliotecas compartilhadas:

libaaa.so.b.c.ddd

* libaaa.so é o nome da biblioteca;
* b é um número que indicará a maior versão;
* c é um número que indicará a menor versão;
* ddd é um número que informa a "release".



Uma vez desenvolvidas as rotinas e criada a biblioteca compartilhada, é preciso publicá-la. Para tanto será preciso escolher um diretório onde suas bibliotecas ficarão. De preferência utilize /usr/local/lib. Utilizando um editor de texto de sua preferência, altere o arquivo /etc/ld.so.conf adicionando na última linha o diretório /usr/local/lib.

Mova a biblioteca compartilhada libMinhaLib.so.1.o para /usr/local/lib

#mv libMinhaLib.so.1.o /usr/local/lib



em seguida execute o comando:


# /sbin/ldconfig



o utilitário ldconf irá a todos os diretórios existentes referenciados em ld.so.conf e carregará todas as bibliotecas compartilhadas que iniciarem com lib, criando também um link que de acordo com o exemplo será libMinhaLib.so.1. Também será criada uma referência para cada biblioteca compartilhada em /etc/ld.so.cache. Isso permitirá que ela seja carregada toda vez que o sistema iniciar.

Após executar ldconfig, verifique no diretório /usr/local/lib os sequintes arquivos:

* libMinhaLib.so.1(Link criado pelo ldconfig);
* libMinhaLib.so.1.o a biblioteca criada por você.



Veja o teste do uso da biblioteca na figura 1, abaixo.

Figura 1
Programa de Teste (TestaProc.c):
#include
#include
int main()
{
void *descritor;
void (*PonteiroParaMinhaProcSoma)( int a, int b);
int (*PonteiroParaMinhaFuncMaiorValor( int a, int b);
int x, y, MaiorValor;
x = 10; /* Somente para exemplo */
y = 11; /* Somente para exemplo */
/* Abre a biblioteca compartilhada */
if ( descritor = dlopen("MinhaLib.so.1.0",RTLD_LAZY))
{
PonteiroParaMinhaProcSoma = dlsym(descritor,"MinhaProcSomal");
PonteiroParaMinhaFuncMaiorValor =
dlsym(descritor,"MinhaFuncMaiorValor");
/* Chamada a MinhaProcSoma */
(*PonteiroParaMinhaProcSoma)( 2, 4 );
(*PonteiroParaMinhaProcSoma)( x, y );
/* Chamada a MinhaFuncMaiorValor */
MaiorValor = (*PonteiroParaMinhaFuncMaiorValor)(x,y);
printf("\nO Maior valor é: %d", MaiorValor);
}
else
{
printf("\nErro ao tentar usar a biblioteca dinâmica\n");
printf("\n%s\n",dlerror() );
return 0;
}
}



Compile esse programa com:

# gcc -o TesteProc TesteProc.c -ldl



Para executar faça:

# ./TestaProc



O exemplo mostrará o seguinte resultado:

a + b = 6
a + b = 21



O maior valor é: 11

Para efeito prático, altere o procedimento MinhaProcSoma em MinhaLib.c da seguinte forma:

c = b - a;
printf("\n b - a = %d \n", c);



Execute os passos a seguir:

# gcc -fPIC -c MinhaLib.c
# gcc -shared -Wl,-soname,libMinhaLib.so.1 -o libMinhaLib.so.1.0 MinhaLib.o
# mv libMinhaLib.so.1.o /usr/local/lib




Execute novamente o programa TestaProc da seguinte forma:

# ./TestaProc


Resultado:

b - a = 2
b - a = 1



O maior valor é: 11

Note que não foi preciso compilar novamente o programa TestaProc. Nesse caso, a ligação à biblioteca alterada MinhaLib, foi efetuada em tempo de execução.

Concluindo, o Linux bem como outros ambientes Unix facilitam o uso e o desenvolvimento de bibliotecas compartilhadas. Dentre as vantagens em usar essas bibliotecas, destaca-se a facilidade de manutenção de sistemas, considerando, é claro, que para tanto basta trocar o módulo defeituoso sem a necessidade de re-compilar todos os outros módulos que o compõem.



=============================================================
| ____________________________ ______________________ |
| | | | | |
| | Meu Programa | | Biblioteca | |
| | (Programa Principal) | | (Coleção de módulos) | |
| |____________________________| |______________________| |
| ____________________________ ______________________ |
| | | | | |
| | Chamada a Função X() | <=> | Função X() | |
| | A = X() | |______________________| |
| |____________________________| |
| ____________________________ ______________________ |
| | | | | |
| | Chamada ao Procedimento Y()| <=> | Procedimento Y() | |
| |____________________________| |______________________| |
| ____________________________ ______________________ |
| | | | | |
| | | | Procedimento Y() | |
| |____________________________| |______________________| |
| |
=============================================================


Tabela de observações

#include
Declarações das funções para manipulação de bibliotecas dinâmicas

dlopen (const char*filename, int flag)
Carrega uma biblioteca Compartilhada

void * dlsym(void *handle, char *symbol)
Obtém o endereço do procedimento dentro da biblioteca compartilhada

const char *dlerror()
Retorna uma string contendo o erro ou NULL se tudo OK

int dlclose(void *handle)
Fecha a biblioteca



para saber mais

* Wall, Watson, and Whitis. Linux Programming. Sams, 1999
* Barkakati, Naba. Red Hat Linux Secrets, Info World - IDG Books, 2ª Edição, 1999