sexta-feira, abril 11, 2008

E se eu precisar compilar o kernel? como fazê-lo à maneira do CentOS 5?

Em muitos casos, com hardware muito novo ou muito antigo, é preciso instalar drivers. frequentemente é necessario também compilar o kernel. um dos problemas que encontramos é que os how-tos disponiveis geralmente imaginam que realizamos a instalação completa do sistema, não se lembram que nem sempre temos todos os pacotes ou mesmo que possamos esquecer ou nao saber o nome de um.
Outro problema comum é quem nao existe uma unica maneira de compilar/instalar o kernel. As opcoes podem ser desde fazer tudo dos fontes, instalar patches, baixar os pacotes da propria distro, SRC, e recompilar e por ai vai....
Pense na dor de cabeça....

Neste artigo, pretendo de maneira sucinta e objetiva descrever o procedimento de compilação de instalação do kernel com um driver de rede, "a maneira do CentOS 5", a partir de uma maquina com instalação mínima, mas pode ser facilmente adaptado para outras distros RedHat Based como Fedora e outras versões do CentOS

Mãos a obra!

O procedimento é dividido em 7 partes
  • Preparação
  • Obtenção
  • Personalização
  • Compilação e criação do pacote rpm
  • Instalação
  • Criar imagem de inicialização.
  • Configuração da inicialização

Preparação

Instale os pacotes de desenvolvimento:
obviamente sem eles você não compila, mas se esquecer algum pacote pode ser que ele "pareça" estar compilando tudo, mas podem surgir problemas muitas dores de cabeca serão evitadas com isso (certificar que todos os pacotes necessários a compilação estão instalados)... os erros mais absurdos podem surgir e você nem vai disconfiar de onde eles vem.
vamos lá:

[root@localhost ~]# yum install autoconf automake rpm-build gcc g++ make flex bison gettext ncurses ncurses-devel binutils rpmdevtools rpmdev-setuptree

Outros pacotes serao necessários devido a dependências, em média da um total de 13MB para download.

Obtenção
baixe a versão mais nova do kernel, você irá encontrar ela no http://www.kernel.org

Você pode usar o "links" um navegador em modo texto muito simples de usar, ou então o wget, para usar o wget simplesmente passe a URL do arquivo

wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.24.4.tar.bz2

Para usar o links passe a url da página. (muito util quando vc só tem a interface de texto e não quer copiar uma URL enorme.)

links http://www.kernel.org

baixe o link da versao full (F) mais nova do kernel

Para nosso exemplo, estou baixando a versao 2.6.24.4, um pacote que se chama linux-2.6.24.4.tar.bz2. Vamos descomprirmir o pacote para começar a brincadeira:

tar -xjvf linux-2.6.24.4.tar.bz2
isso vai criar a pasta linux-2.6.24.4


Personalização
entre na pasta criada:
cd linux-2.6.24.4

vamos personalizar o nome do nosso kernel:
edite o arquivo Makefile
acrescente, logo no começo do arquivo na variável EXTRAVERSION, um nome que lhe agrade (ou que identifique uma funcionalidade que voce acrescentará),
por exemplo, "by_charles" (sem aspas e sem espacos), ou "_driver_rede_dlink", ou "i686", ou "support_4GB_RAM", enfim, voce escolhe.
feito isso salve o arquivo e saia.
digite o comando:
make menuconfig
isso irá criar um menu para que voce possa personalizar o seu kernel. navegue nas opções e escolha o que voce precisa integrar, seja driver de rede
opcoes de criptografia... tem muita coisa la. vamos comecar por algo básico, vamos habilitar um driver de rede, geralmente algumas placas da dlink usam o driver sundance
vamos procurar e instalar.
navegue no menu:

Device Driver
Network device support
Ethernet 10 or 100 Mbit
Sundance Alta Support

aqui voce vai verificar 2 opcoes:
uma, definida como * - significa que voce vai incluir o driver no kernel. ou seja, voce simplesmente precisa inserir a placa no slot pci e ela sera detectada normalmente
sem nenhuma outra operacao especial para ativar.

a outra definida como M - significa que o driver vai ser compilado e adicionado como modulo de kernel. assim voce precisa, apos instalar fisicamente a placa (obviametne com o micro desligado),
carregar os drivers com o comando modprobe, pro exemplo (apos ter compilado e instalado seu kernel):
modprobe sundance
ai voce sera capaz de ver sua placa nas opcoes do "ifconfig" ou "ifconfig -a"
caso opte por instalar como modulo, voce precisara acrescentar o driver na lista de modulos carregados automaticamente. (TODO)
optaremos por instalar o driver integrado com o kernel, portanto escolha o "*"
va escolhendo exit ate fechar o assitente. ele deve solicitar opcao para salvar. diga que sim.

Compilacao e criação do pacote rpm
ao sair do make menuconfig digite:

make rpm
--- espere ---
----- espere bem muito -----
-------- pode esperar que vai demorar uns 20 min ateh 1h dependendo da sua maquina ---------
se tudo correr bem ao final ele ira salvar 2 arquivos, o kernel em formato rpm e os fontes do kernel, como src.rpm
o assistnete lhe informara aonde ira armazenar os arquivos

Instalação

agora precisamos instalar os 2.
digite
cd /usr/src/redhat/RPMS/i386/ (isto pode mudar a depender as opcoes do menu, por exemplo, pode ser i686... veja a saida do comando de compilacao)
instale o pacote
rpm -ivh kernel-2.6.24.4_by_charles-1.rpm (alguma coisa interessante com o nome do pacote??? :P, o "-1" final fica por conta do script )
agora instale o source (fontes) é sempre bom pois as vezes é necessario para compilar outros programas. se voce esta compilando o kernel uma vez (e for desenvolvedor)
vai precisar compilar outra coisa, cedo ou tarde :P
cd /usr/src/redhat/SRPMS/
rpm -ivh kernel-2.6.24.4_by_charles-1.src.rpm

quase tudo pronto precisamos apenas criar a imagem de inicializacao

Criar imagem de inicialização.

Volte ao diretorio aonde voce descomprimiu o kernel e executou o comando make ( no meu caso o home do root)
cd
cd linux-2.6.24.4
digite
mkinitrd /boot/initrd-2.6.24.4_by_charles.img 2.6.24.4_by_charles
observer que o primeiro paramentro eh o destino da imagem (deve ser no diretorio /boot e com um nome que lembre o kernel pra vc nao esquecer)
e o segundo a versao do kernel que voce acabou de compilar

Configuração da inicialização
pronto, seu kernel está: personalizado, compilado, criado o pacote, instalado, criada imagem de inicializacao. o que falta agora?
usar!
para usar voce deve acrescentar o kernel nas opcoes do boot loader, no meu caso o grub.
vamos la, eh a parte final e eh bem simples

edite o arquivo
/boot/grub/menu.lst
por seguranca vamos acrescentar o kernel novo na parte final do arquivo assim ele nao sera carregado automaticamente,
se der algum problema voce ainda pode voltar a usar o kernel antigo sem muita dor de cabeça.
no fim do arquivo acrescente as linhas (voce vai notar que a sintaxe do arquivo eh muito facil de entender)
title CentOS (2.6.24.4_by_charles)
root (hd0,0) #verifique nas opcoes acima se o ponto de montagem e esse mesmo
kernel /vmlinuz-2.6.24.4_by_charles ro root=/dev/VolGroup00/LogVol100 #verifique nas opcoes acima se o root eh esse msmo
initrd /initrd-2.6.24.4_by_charles.img

pronto, agora eh so dar um reboot e escolher o kernel novo no grub.
se der algum problema simplesmente reinicia a maquina escolha um kernel funcional e reveja os passos

Uma observação fazendo desta forma eu verifiquei que os modulos de nat do iptables nao foram incluídos, se voce nao for usar o linux num roteador entao nao precisa se preocupar. do contrario volte ao make menuconfig e escolha para ele habilitar o nat, se necessario recompile o kernel e reinstale.








sexta-feira, fevereiro 01, 2008

Instalar a interface grafica numa instalcao do centos/fedora/redhat que foi instalado sem gnome

  • yum update (atualizar o yum);
  • yum upgrade (baixar e instalar os pacotes mais novos);
  • yum install system-config-display (instalar ferramenta para configurar a resolução gráfica do monitor);
  • execute [system-config-display];
  • yum install gnome-desktop gnome-session switchdesk (baixar e instalar o Gnome);
  • execute [switchdesk gnome] (para informar que o ambiente a ser utilizado será o Gnome);
  • instale também o gerenciador de sessões graficas, gdm:
  • yum install gdm
  • execute [startx] (para entrar no Gnome);


Powered by ScribeFire.

sexta-feira, janeiro 18, 2008

funny command

okay, just for my own reference.. how to change windows files permissions using command line:
granting:
cacls file_or_dir /t /p user:f -- it grants full control to directory/file and subdirs to user
cacls file_or_dir /t /e /r user -- it revokes all access from the user to directory.


Powered by ScribeFire.

quarta-feira, dezembro 19, 2007

terça-feira, dezembro 18, 2007

tip of the day - getlibs

well, after spend a lot of time trying to make my 64bit ubuntu as usable as 32bit version (a lot of programs just doesnot work...) i found a very nice solution at least for one of them. skype2.
it calls getlibs. you can get it from:
http://www.boundlesssupremacy.com/Cappy/getlibs/getlibs
then just install skype as usualy (dpkg -i --force-architecture sykpe2.....deb) and calls getlibs to fix the job.
getlibs /usr/bin/skype
well done. that's all. it works!

I read where find it at: http://ubuntuforums.org/showthread.php?t=474790


Powered by ScribeFire.

sexta-feira, dezembro 14, 2007

Firefox extensions

Okay... abaixo minhas extensoes do firefox:
adblock filterset.G
All-in-one sidebar
autocomplete manager
bookmark duplicate detector (acho q vo desligar depois q passei a usar o del.icio.us)
cooliris previews
ctrl tab preview
del.icio.us bookmarks
dictionary tooltip
duplicate tab
firefox showcase
flashgot
google reader watcher
google prevew
image zoom
linkchecker (ve se os links da pagina estao ok)
MR tech local install
noscript
pdfdownload
scribefire (usei pra editar este blog)
securelogin
send page by email
undu closed tabs button
verificação ortográfica pt-br

mais:
mecanismos de busca:
firefox add-on
thunderbird add-ons
baixaki
blogger search
buscape
youtube
yahoo blog search




Powered by ScribeFire.

quarta-feira, dezembro 12, 2007

frases do dia - pra refletir

Numa
viagem, um homem deve andar com um companheiro que tenha a mente
igual ou superior a sua; é melhor viajar sozinho do que
em companhia de um tolo.

(Sakyamuni).

e

Um
bom amigo, que nos aponta os erros e as imperfeições
e reprova o mal, deve ser respeitado como se nos tivesse revelado
o segredo de um oculto tesouro.

(Sakyamuni).




Powered by ScribeFire.

sexta-feira, dezembro 07, 2007

New awesome firefox extensions

well, after tried to use windows live writer for blog publishing I decided to seek for a firefox extension that could do the same.. and I found it! it calls scribefire. makes easy to publish any post in blogger.. strongly recommended.
another extension I downloaded was cooliris (for page preview) and autocomplete manager, and Secure login they are all in mozilla plugin portal.
but Im testing secure login yet... it doesn't seems to work like I thought (like wand in opera browser...) anyway..I'll check this out.



Powered by ScribeFire.

quinta-feira, novembro 29, 2007

Mudança de Firewall - comodo 3!

ok, agora vo mudar de firewall, do comodo 2.4 pra o 3, depois vou postar meus testes.

de volta ao batente!!!

terça-feira, junho 12, 2007

dica - Entrevista com Ted Nelson no brasil

Ontem(segunda 12/06/2007) assisti uma entrevista no roda viva da tv cultura(http://www.tvebrasil.com.br/rodaviva/), do Mr Ted Nelson, um sociólogo, filosofo e consultor de informática, criador de termos como hipertexto e várias outras coisas.. um pensador da área muito importante.
Nela ele se mostra um crítico ferrenho da atual web, detona a web semântica e web 2.0 e explora as limitações ao pensamento impostas pelos sistemas operacionais atuais (mac, windows elinux - que aliás, pra ele são tudo farinha do mesmo saco hehehe).
Ele apresentou uma nova alternativa de organização/indexação de conteúdo pra web, um projeto dele chamado Xanadu tudo de uma forma muito diferente sem ser muito técnico.
recursos que eliminam links quebrados, links de "mão dupla", e coisas do gênero...
Também apresenta uma nova proposta de licenciamento (transcopyrighting) eu achei bastante interessante
abaixo os links. espero que curtam.

http://xanadu.com.au/general/faq.html
http://xanadu.com/


hi there, yesterday (monday 06/12/2007), I watched an interview in roda viva program of cultura tv(http://www.tvebrasil.com.br/rodaviva/), with Mr Ted Nelson, a sociologist, philosopher and informatics consultant, whose created a lot of terms like "hipertext" and "hipermidia" and so on.. a very important thinker.
In interview he shows himself as a hard critic of current web model. Breaks down semantic web and web 2.0 and explore limitations to thinking made by current operating system (mac os, windows and linux - in fact it's all the same thing for him). He introduce a new alternative of indexing/organization of web content, a project called Xanadu, all in a very different way without being to much technical. resources that eliminate broken links, two-way links and others things like these.. he also introduce a new licensing model (transcopyrighting) which I thought is very interesting. below some links
about the project. I hope you enjoy it.
http://xanadu.com.au/general/faq.html
http://xanadu.com/

segunda-feira, junho 11, 2007

Portugues/English

Oi pessoal, de agora em diante vou colocar os textos em ingles e portugues, para que meus amigos ao redor do mundo também possam saber das coisas quem andam acontecendo e entender as dicas que eu colocar aqui :D
brevemente novos posts
xau!

hello there, for now on I'll write the posts in english and portuguese . for my friends around the world can know what's happening with me and understand the tips I write here.
new posts comming soon.
bye

quinta-feira, março 22, 2007

Ambiente de desenvolvimento, outros penduricalhos

bem, pra desenvolver tambem é preciso ler... esqueci de instalar os pacotes pra leitura de pdf e ateh navegador.. pois bem vamos lá:

instalei o pacote xpf e o swiftfox que eh uma versao otimizada do firefox que pode ser baixada no repositorio
deb http://getswiftfox.com/builds/debian unstable non-free

tambem instalei umas ides graficas para facilitar a edicao dos codigos fontes:
vim-gtk e xemacs (com outros pacotes para tcl e C++)
instalei tb o thunar, o gerenciador de arquivos do xfce4
pra garantir que alguma coisa seja produtiva, caso nenhum destes abiente ajude instalei tb o
pacote mc que é mais fraquinho pra edicao mas nao tem a complicacao do vim pra coisas simples.
por hora eh isso.

quarta-feira, março 21, 2007

NS2 - preparando o ambiente de trabalho

bem, o ns ta compilando mas nao vou conseguir ver nada sem o NAM
por isto instalarei o desktop...
so que o pacote xubuntu-desktop traz pacotes além do necessário entao resolvi instalar por partes... como Jack o estripador, ao contrário.

instalei os pacotes: xfce4, xserver-xorg, xdm, xfonts-base e xfs,
vamos ver no q dá

pra instalar o vmware tools vou precisar tb do linux-headers-`uname -r`
vou continuar com a instalacao do vmwaretools e depois vou executar
dpkg-reconfigure -p high xserver-xorg
pra melhorar a resolucao do X

Instalação do NS2

Vou precisar usar o network simulator para minhas pesquisas de mestrado
as distros, em geral, tem o pacote compilado em seu repositorio de binarios
mas eu vou precisar mexer no codigo fonte, por isto eu optei por baixar os fontes direto do site.
apos preparar o ambiente de trabalho eu baixei do Source forge a ultima versao do NS
http://ufpr.dl.sourceforge.net/sourceforge/nsnam/ns-allinone-2.31.tar.gz

precisei instalar algumas dependencias para permitir a compilacao:
xserver-xorg-dev
xlibs-dev

acho q vou ter a instalar uma interface grafica para ver os resultados do NAM.. possivelmente o xubuntu, q eh mais leve q gnome e kde
o xubuntu esta no pacote
xubuntu-desktop
um problema eh que vou ter q descobrir em que repositorio ele está. meu source list aponta dependencias insatisfeitas....

Preparação do ambiente de desenvolvimento no Ubuntu

Escolhi a distro ubuntu dapper, devido a estabilidade, familiaridade e suporte.
instalei uma VM a partir da versao server (iso de 400 MB), e dei um update geral nos pacotes
agora vou instalar os pacotes de desenvolvimento:

aptitude install build-essential
pronto, ai eh so baixar as dependencias do programa q vc vai compilar e mandar construir

De volta a ativa

Bem, estou de volta a ativa, agora bacharel formado e candidato a mestre :D
breve novas noticias

terça-feira, julho 18, 2006

Ainda nao acabou!!

bem tem mais uma semana de trabalho.
ate agora anda tudo bem
a monografia so falta detalhes
o projeto de SD foi bom
e a nota de portugues foi 9.
vamos ver no q vai dar.

quarta-feira, julho 12, 2006

A Defesa foi otima

Graças a Deus deu tudo certo!

Apresentei calmo (apesar de meia hora antes, estar em pânico - Antonio Carlos deu as últimas dicas e eu lembrei de todas!!), apresentei tudo, encadeado, correto. Meu orientador estava lá :D

Ao final o chefe ainda elogiou minha participação ( "de calouro a gerente no projeto".... putz nem eu esperava!), e relembrou os estágios que fizemos (foram uns 5!).
agora eh correr com o relatório e estudar q amanhã tem prova de estatística.

Antonio Carlos, obrigado por tudo.

terça-feira, julho 11, 2006

O fim esta próximo, marcando o começo de uma nova etapa!!!

Bem, apersar de que achei que não iria dar certo, as coisas estão aos poucos progredindo.
Agradeço as conselhos do meu amigo Jefferson ("faça uma coisa de cada vez...") . pode parecer óbvio, mas as vezes é dificil enxergar por onde começar.

Grande Adriano valeu a força tb.
Minha irmã.. apensar da minha impaciencia, meu humor anda alterado com tudo isso q ta acontecendo.. reflexo da pressão.

Mas ainda não acabou de fato.

Estou quase terminando o relatório final (TCC) e vou começar a fazer os slides da defesa (é amanhã!)
A maioria das cadeiras já foi.

Falta apenas apresentar o projeto de sistemas distribuidos (terminar, se der tempo, a implementação do fileserver em RPC...), fazer a defesa e relatório final e por fim uma reposição da primeira prova de estatística ( hauhau ninguém merece..) .

Como plus, teria também uns ajustes no compilador da disciplina de compialdores.. não seria obrigatório, já estou aprovado mas ajudaria a levantar a nota. Em tempos de tentativa de mestrado qualquer décimo conta.

Falei com meu irmão hj.. resposta a um email que havia me mandado a décadas... (acho que envelheci muito essas semanas kkkkkkk) sobre as metas.. talvez um dia agente retorne a esse blog, nesse post, e ele me faça relembrar como estou me sentido agora. Estranhamente calmo. e com certeza com muito sono... vou dormir 3 dias seguidos quando isso tudo acabar.
Quem me acordar eu dou um soco!

ok, de volta aos slides que ainda estamos em guerra!

sexta-feira, junho 23, 2006

Resumo da semana

To tão cansado que to desanimado.
o fim (do curso) está próximo, mas ainda tem muita coisa pra fazer.
tem pouco tempo, to ficando preocupado.
heheh e realmente uma época bem estressante.
Essa semana estudei bem mais profundo outros protocolos de roteamento de redes sem fio. os mais importantes estão na cabeça agora. bem mesmo.
Nas férias preparo uns resumos e posto online. preparei um seminário de um deles. Ao final posto todos os seminários.
o compilador que era pra fazer deu tudo certo. o analisador sintatico pegou tudo, foi bem rapido nao travou uma vez sequer.. bom.
agora eh correr com outros seminários de computadores e sociedades, engenharia de software e relatório final de estágio.
porra!
Ainda tem q estudar pra prova de estatistica e fazer revisao dos textos de portugues...
são essas caderinhas q tiram meu tempo...