sexta-feira, 2 de julho de 2010

Boa noite, meus caros.

Mais um postzinho pra gente começar bem o fim de semana.
Desculpe a demora pela postagem, mas... emprego novo, sabe como é, preciso me dedicar a aprender o serviço.

Enfim, como prometido, um estudo de caso.
O meu caso.
Comprei um micro novo e instalei Gentoo nele (já tá funcionando redondinho), então, irei apresentar como consegui os dados dele necessários para a instalação do Gentoo.

A plataforma utilizada foi um LiveCD do Ubuntu, versão 10.04, com kernel 64 bits genérico.

Bem, começando com o básico:

-- Processador

O processador que comprei foi um AMD Phenom II X4 945. Quais informações dele eu preciso? Flags de processamento e arquitetura.
A arquitetura é o mais fácil de todos... na Wikipédia mesmo você consegue achar a informação de que os Phenom II fazem parte dos lançamentos AMD que consistem da arquitetura AMD64, ou x86_64.
Caso você esteja com dificuldade de encontrar qual arquitetura é utilizada no seu processador, pesquise em inglês. Geralmente documentos técnicos são escritos em inglês e portanto é mais fácil de encontra-los assim.

Quanto às flags que o processador suporta, você pode abrir um terminal (Aplicações → Acessórios → Terminal) e digitar os seguintes comandos:

$ sudo su /*torne-se root*/
# cat /proc/cpuinfo |grep flags /*cat pode ser usado para pegar a saída de um comando e joga-lo na tela */

O resultado do comando será mais ou menos esse (variará conforme a quantidade de núcleos ou de processadores que você tiver):

flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm 3dnowext 3dnow constant_tsc rep_good nonstop_tsc extd_apicid pni monitor cx16 popcnt lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw ibs skinit wdt

Só a primeira parte já é o suficiente. O resto é repetido, se você tiver dois ou mais processadores iguais ou um processador com vários núcleos.
Nesta parte a informação que temos aí são as flags ("bandeiras" que sinalizam algo) das capacidades de nosso processador.
Por exemplo, fpu indica que nosso processador tem um Float Point Unit, ou Unidade de Ponto Flutuante, uma unidade de cálculos matemáticos bem "rapidinha" integrada ao processador. Se quisermos utiliza-la (e vamos querer!) teremos de habilitar mais tarde no kernel o FPU e desabilitar a emulação de FPU (opção para processadores sem FPU integrada).

Outras instruções (flags) que você pode notar de interessante são a pat (memória extendida), MMX, SSE, SSE2, HT (Hyper Transport), MMX Extended, 3D Now! Extended, 3D Now!, SSE4A, 3D Now! Prefetch... só pra citar os mais conhecidos.
Fique tranquilo que você não precisará decorar nada disso, só vai usar estas informações BEM mais tarde.

Outra informação importante que temos de conseguir são nossos chipsets, como o Linux os reconhece.
Para tanto, você pode usar o comando:

# lspci


Isso vai fazer com que todos os componentes encontrados no barramento PCI sejam listados (lspci = list pci).
A saída do comando será algo parecido com isto:


Host bridge: Advanced Micro Devices [AMD] RS780 Host Bridge
PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (int gfx)
PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 2)
PCI bridge: Advanced Micro Devices [AMD] RS780 PCI to PCI bridge (PCIE port 3)
SATA controller: ATI Technologies Inc SB700/SB800 SATA Controller [IDE mode]
USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
USB Controller: ATI Technologies Inc SB700 USB OHCI1 Controller
USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller
USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI0 Controller
USB Controller: ATI Technologies Inc SB700 USB OHCI1 Controller
USB Controller: ATI Technologies Inc SB700/SB800 USB EHCI Controller
SMBus: ATI Technologies Inc SBx00 SMBus Controller (rev 3a)
IDE interface: ATI Technologies Inc SB700/SB800 IDE Controller
Audio device: ATI Technologies Inc SBx00 Azalia (Intel HDA)
ISA bridge: ATI Technologies Inc SB700/SB800 LPC host controller
PCI bridge: ATI Technologies Inc SBx00 PCI to PCI Bridge
USB Controller: ATI Technologies Inc SB700/SB800 USB OHCI2 Controller
Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] HyperTransport Configuration
Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Address Map
Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] DRAM Controller
Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Miscellaneous Control
Host bridge: Advanced Micro Devices [AMD] K10 [Opteron, Athlon64, Sempron] Link Control
VGA compatible controller: ATI Technologies Inc Radeon HD 3300 Graphics
Audio device: ATI Technologies Inc RS780 Azalia controller
Ethernet controller: Realtek Semiconductor Co., Ltd. RTL8111/8168B PCI Express Gigabit Ethernet controller (rev 02)
SATA controller: JMicron Technology Corp. JMB361 AHCI/IDE (rev 02)
IDE interface: JMicron Technology Corp. JMB361 AHCI/IDE (rev 02)


Essa parte da saída diz também os endereços lógicos dos barramentos, mas eu suprimi para não atrapalhar na informação crucial.
Pegando um exemplo dali de cima:


IDE interface: ATI Technologies Inc SB700/SB800 IDE Controller


O Linux reconheceu minha controladora IDE corretamente, sendo que ela é controlada pelo chipset sul (ponte sul) da placa mãe, que é realmente uma SB700/SB900.

Tendo em mãos estas informações, já podemos começar a pensar na nossa instalação do Gentoo.
O primeiro de tudo é baixar um stage são e saudável dos mirrors do Gentoo, de preferência bem atualizados, em http://www.gentoo.org/main/en/mirrors2.xml .
Entre no link e em seguida no mirror mais próximo de você. Eu escolhi o da Universidade do Paraná, que está bem perto daqui.
Entrando no FTP, baixe um stage e um snapshot do Portage, bem atualizados.

Você não precisa baixar agora um kernel, pois o Gentoo baixará um dos repositórios para você compilar já com alguns patchs de correção aplicados.

Agora chegou a hora de formatar o HD.
Tendo escolhido já o tipo de partição que você vai usar, você vai seguir este pequeno esquema para participar:

1 - Backup dos dados importantes para o LiveCD ou pendrive.
2 - Reparticionamento do HD usando o CFDisk, que é "simplão".
3 - Formatação com o sistema de arquivos desejado

Para fazer o backup, basta acessar a unidade normalmente e copiar os dados. Sem mistério.
Para o particionamento, entraremos no CFDisk, pelo comando:

# cfdisk /dev/xdy


O quê pôr no lugar do XdY?
Essa é sua unidade de disco rígido, seu HD.
No lugar do X, você vai pôr S ou H, dependendo. S para discos SATA (e SATA II) e H para discos IDE.
No lugar do Y, você vai pôr a, b, c, d... conforme for sua unidade. Se ela estiver como master ou for a primeira do slot, vai A. Se for secundária, vai B e assim por diante.
Por exemplo, um disco SATA master na SATA 1 seria: /dev/sda
Um disco IDE master na IDE 1 seria: /dev/hda
Um disco IDE escravo na IDE1 seria: /dev/hdb

O mesmo vale para o SATA.

Entrando no CFDisk, delete as partições, crie as partições no esquema necessário (espero que você saiba já que precisar de uma partição para o sistema e se tiveres pouca RAM, uma partição para usar de espaço de troca) e escreva as mudanças no disco.

Para formatar, você vai usar o aplicativo mkfs.
Por exemplo, para formatar um disco em ReiserFS3, você usará o comando:

# mkfs.reiserfs /dev/xdyz

No lugar do Z você põe o número da partição. Se a partição raíz for a primeira vai um 1, se for a segunda vai um 2 e assim por diante.
Como em: /dev/sdb2 → Disco SATA escravo, segunda partição

Depois de executar o comando, dar um YES para ele continuar a formação, você está pronto para iniciar a instalação do Gentoo.
Mas essa fica pro próximo post.

Um abraço!

sábado, 19 de junho de 2010

Preparando o Terreno

Boa noite, futuros gentooístas.

Hoje trarei algumas dicas de como preparar o terreno para a chegada do grande Pinguím Engenheiro em suas vidas.

Primeiramente, você deve ter um profundo conhecimento do seu sistema e suas necessidades para com o computador.
Os itens abaixo devem ser de seu conhecimento:

Modelo da placa mãe;
Modelo do processador;
Arquitetura do processador;
Chipsets da placa mãe (ponte norte e sul);
Placa de vídeo;
Placa de som;
Placa de rede;
Qual a conexão dos seus periféricos (mouse, teclado e outros);
Capacidades da sua placa de vídeo, placa mãe e processador.
Quais sistemas de arquivos você pretende usar.
Se você pretende usar máquinas virtuais.
Se você pretende usar compartilhamentos como o Samba.

Por quê você precisa saber essas coisas?
Você precisará, na instalação, compilar seu kernel. E nada melhor do que dedicar um bom tempo ao kernel, já que ele representará boa parte da sua caminhada, correto?
Você também precisará disso para brincar com suas USE flags, mais para frente. Lá eu explico o que são e para quê servem.

Agora, explicando exatamente o que você precisa fazer de início.
Você precisa baixar, dos espelhos oficiais do Gentoo, um snaptshot do Portage (mais atualizado o possível) e um stage3. Aqui entra a arquitetura do seu processador.
A arquitetura do seu processador (i386, i586, i686, x86, AMD64, IA64) é a arquitetura que seu processador entende e usará para criar seus binários. Ele vai compilar os códigos fonte de forma que fique mais fácil e mais rápido para que ele (seu processador) entenda e execute.
Você também precisará, de preferência, acessar o Handbook do Gentoo específico para a sua arquitetura.

Não sabe qual sua arquitetura? Esta pode ser facilmente encontrada na internet.
Por exemplo, quem usa um AMD Duron 1.8 GHz pode usar um stage com arquitetura x86 (que é genérica para processadores 32 bits baseados no 80x86 da Intel).
Já quem usa um Celeron D vai querer usar um stage com a arquitetura EM64T, a implementação da Intel de 64 bits.
Quem usa um AMD Phenom II, como eu, poderá usar um AMD64 tranquilamente.

Se tiverem alguma dúvida, podem perguntar nos comentários que eu responderei no próximo post.
E por falar nele, no próximo post a gente já começa com um estudo de caso. Vou apresentar os métodos que usei para conseguir as informações necessárias de meu computador novo.

Abraço!

sábado, 12 de junho de 2010

Primeiro Passo - A Decisão

Eu vou usar Gentoo.

Conseguiu dizer isto com força e vontade? Então acostume-se com a ideia: você vai usar o Gentoo.
A primeira parte do processo de instalação do Gentoo é relativamente simples: conhecer os pormenores que acarretam do uso do Gentoo e se conformar (ou alegrar-se) com eles.

Destes então vou explicar as características do Gentoo.

  1. O Gentoo é uma meta-distribuição. Isso quer dizer que o Gentoo terá características diferentes para cada um que o utilizar, em vista de sua alta capacidade de se modificar às intenções do usuário.
  2. O Gentoo é uma distribuição rolling release. Isto quer dizer que você não precisa reinstalar o Gentoo a cada nova versão lançada porque bastará atualizar seus pacotes para que você tenha o "novo Gentoo". Felizmente, o processo de atualização do Gentoo quando lançada uma major release (a exemplo: Ubuntu Chimpanzé para Ubuntu Babuíno) é idêntico ao de uma version release (de mozilla-firefox-3.0 para mozilla-firefox 3.1.5, por exemplo), tornando tudo mais simples.
  3. O Gentoo tem alguns arquivos básicos de configuração que são considerados global sets, interferem no sistema todo. Estes arquivos devem ser configurados com o máximo de cuidado o possível.
  4. O Gentoo não tem uma comunidade absurdamente ativa como a de outras distribuições como o Ubuntu, mas não é só pelo baixo número de usuários. O perfil de usuário do Gentoo é aquele que já entende um bocado de Unix, Linux e POSIX, sabe se virar e pesquisar no Google e principalmente LE O MANUAL DO APLICATIVO. Por isso não se vê tanto usuário de Gentoo pedindo ajuda.
  5. Boa parte dos problemas que você terá decorrem das más escolhas que você fez. Portanto, TODOS OS PROBLEMAS são reversíveis, contornáveis ou corrigíveis. Não se desespere, não precisa reiniciar a instalação por causa de uma lib quebrada.
  6. USEs são mandamentos. Você dita os mandamentos do seu sistema e portanto, qualquer pecado dele é culpa SUA. Preste atenção quando for configurar o Gentoo.
  7. Após instalado e configurado, os problemas com o Gentoo são aproximadamente NENHUM. Minha avó usa o computador que montei para ela até hoje e está usando Gentoo. Ela adora sites de receitas...
  8. Não desista. A instalação do Gentoo é demorada, cansativa e EXIGE pesquisa. Se você não tem paciência, pior para você, vai ter de comprar uns livros para ler. A instalação em uma máquina razoável demora de 3 a 4 dias.
  9. Mantenha sempre um liveCD intacto com a mesma arquitetura do seu Gentoo (por exemplo, x86_64). Sempre que der algum problema no seu Gentoo e você não souber resolver e estiver sem o X, você pode entrar pelo liveCD e corrigir usando chroot.
  10. Não tenha vergonha de admitir que cometeu um erro para si mesmo. Estes dias eu "gaguejei" no make.conf do meu Gentoo e não conseguia instalar nada. Digitei duas vezes o mesmo repositório (ao invés de rsync.br.gentoo, digitei rsync.rsync.br.gentoo) e um amigo que entende bem menos que eu me corrigiu. Shame on me? Que nada.
Tendo isto em mente, você pode começar a reunir as ferramentas necessárias para a instalação.

Eu recomendo:

  1. LiveCD do Ubuntu 10.04 da arquitetura necessária (x86 ou amd64).
  2. Stage3 (será explicado o que é) da sua arquitetura.
  3. Snapshot do Portage.
  4. Manual da placa mãe e demais componentes offboard.
  5. Garrafa de café. Cheia. De café.
  6. Paciência.
Só isso? É, só isso.
A instalação do Gentoo se baseia na descompactação do stage e do Portage, configuração básica, compilação do kernel e instalação de um gerenciador de boot. Para tanto, é necessário que você já esteja utilizando um ambiente Linux favorável a esta instalação.
Para isso você vai usar o liveCD do Ubuntu. É o suficiente para ter um Firefox funcional para ouvir música enquanto instala e pesquisar no Google.

A instalação do Gentoo é distribuida em stages, que são conjuntos de pacotes pré compilados na arquitetura escolhida para prover um funcionamento inicial do sistema. Recomendo o stage3 (mais completo) porque é o único atualmente suportado pelo Gentoo (oficialmente) e não faz sentido usar o stage1 (menos completo) porque de qualquer maneira você vai ter de recompilar o sistema todo.

O stage3 vem com softwares básicos para o funcionamento inicial do sistema e serão recompilados (recriados) conforme suas escolhas de sistema.

O Portage é o gerenciador de pacotes do Gentoo e sua interface de uso mais comum é o emerge (aka apt-get). Com ele você vai poder gerir seus pacotes de instalação. Ele também vai interpretar suas opções quanto ao sistema e vai preparar os pacotes para aquelas opções.

O snapshot do Portage é um portage já com uma árvore de pacotes inicial para você poder fazer sua primeira atualização, tornando tudo único para seu hardware.

Os manuais da placa-mãe e dos componentes offboad são necessários para a hora da compilação do kernel. Você terá de especificar com exatidão cada pedaço do seu computador para que nada fique desativado por engano e não tenha suporte a coisas que você nunca vai usar, desperdiçando espaço em disco e desempenho do sistema.

Café e paciência... você vai precisar. Acha que eu consegui fazer a instalação do Gentoo em 2 dias como? 48h são o suficiente para instalar o básico. Sem dormir, claro.

O Ubuntu também vai ajudar nesta parte. Com o Ubuntu você poderá ver como o Linux reconhece seu hardware. Há comandos específicos para mostrar quais componentes de hardware foram reconhecidos, que módulos (drivers) eles utilizam, o que não foi reconhecido e até coisas que não estão nos manuais, como por exemplo os chips de monitoramento de tensão e temperatura inclusos na placa mãe e demais componentes.

Recomendo uma leitura superficial do handbook do Gentoo da arquitetura específica que você vai usar, apenas para se situar como é a instalação.

Nos próximos posts, se um amigo meu concordar, utilizarei o micro dele como cobaia para a instalação do Gentoo. Portanto, descreverei todos os passos para a instalação (assim como está no handbook) mas explicando o porquê de cada decisão e qual a decisão adequada para outras arquiteturas/hardwares.
Também explicarei cada parte da compilação do kernel, o que precisa ou não ser habilitado. Demais configurações do Gentoo propriamente também.

Aguardo vocês no próximo post!

Tlaloc.