Se tiver alguma dúvida, consulte os PDFs em inglês disponibilizados no fim do post.
*---*---*---*---*---*---*---*---*---*---*
2. Requisitos para Compilar e Utilizar o KernelEsse capítulo descreve os programas que você precisa para configurar um kernel, compilá-lo e inicializá-lo com sucesso. É uma boa idéia consultar os arquivos
Documentation/Changes para verificar o número especifico da versão que você tem de cada ferramenta descrita nesse capítulo. Esse capítulo foi baseado no kernel 2.6.18 e descreve as versões das ferramentas que funcionam com esse kernel. Se você está usando um kernel diferente, por favor verifique se você tem as versões certas como especificadas nesses arquivos ou algumas coisas podem não funcionar corretamente e pode ser bem difícil determinar o que deu errado.
Ferramentas para Compilar o KernelA maioria das distribuições Linux oferecem um opção d instalação para instalar uma gama de pacotes de modificações do kernel. Se a sua distribuição fornece essa opção, é mais fácil instalar isso em vez de tentar catar individualmente todos os programas que são necessários para essa tarefa.
Somente três pacotes são necessários para compilar um kernel com sucesso: um compilador, um linker e a ferramenta
make. Essa seção descreve o conteúdo de cada pacote.
CompiladorO kernel Linux está escrito na linguagem de programação C, com uma pequena quantidade de linguagem assembly em alguns lugares. Para compilar o kernel, o compilar em C gcc deve ser usado. A maioria das distribuições Linux tem um pacote entitulado gcc que deverá ser instalado. Se você quiser baixar o compilador e compilá-lo você mesmo, você pode encontrá-lo em
http://gcc.gnu.org.
Para a versão 2.6.18 do kernel, a versão 3.2 do
gcc é a mais antiga que pode compilar corretamente um kernel funcional. Esteja avisado que instalar a versão mais recente do
gcc nem sempre é uma boa idéia. Algumas das versões mais novas do
gcc não compilam o kernel corretamente, portanto, ao menos que você queira ajudar o debug do compilador, não é recomendável que você as experimente.
Para determinar qual versão do
gcc você tem no seu sistema, rode o seguinte comando:
$ gcc --versionLinkerO compilador C,
gcc, não faz toda a compilação por si só. Ele necessita de um conjunto de ferramentas adicional conhecido como
binutils para linkar e montar os arquivos fonte. O pacote
binutils também contém ferramentas úteis que podem manipular arquivos de objetos de diversas maneiras, como visualizar o conteúdo de uma biblioteca.
O
binutils pode ser encontrado normalmente num pacote chamado (sem surpresas)
binutils. Se você quiser baixar e instalar o pacote você mesmo, você pode encontrá-lo em
http://www.gnu.org/software/binutils.
Para a versão 2.6.18 do kernel, a versão 2.12 do
binutils é a mais antiga que pode linkar o kernel corretamente. Para ver qual versão do
binutils você tem instalada no seu sistema, rode o seguinte comando:
$ ls -vmakeO
make é uma ferramenta que percorre a árvore do código do kernel para determinar quais arquivos precisam ser compilados, para então chamar o compilador e outras ferramentas de compilação para fazerem a tarefa na construção do kernel. O kernel exige a versão GNU do
make, que pode ser normalmente encontrado num pacote chamado
make na sua distribuição.
Se você deseja baixar e instalar o
make você mesmo, você pode encontrá-lo em
http://www.gnu.org/software/make.
Para a versão 2.6.18 do kernel, a versão 3.79.1 do
make é a mais antiga a compilar o kernel corretamente. É recomendado que você instale a última versão estável do
make, já que as versões mais novas são famosas por serem mais rápidas no processo de compilação de arquivos.
Para ver qual a versão do
make que você tem em seu sistema, rode o comando a seguir:
$ make --versionFerramentas para Utilizar o KernelEnquanto a versão do kernel que está rodando normalmente não afeta qualquer aplicação do usuário, existe um pequeno número de programas que realmente dependem de certa versão do kernel. Essa seção descreve várias ferramentas que provavelmente já estão instaladas no seu sistema Linux. Se você atualizar o seu kernel para uma versão diferente daquela que veio com a sua distribuição, alguns desses pacotes possivelmente precisarão ser atualizado para que o sistema funcione da forma apropriada.
util-linuxO pacote
util-linux é uma coleção de pequenas ferramentas que fazem uma grande quantidade de tarefas. A maioria dessas ferramentas lidam com a montagem e criação de partições de discos e com a manipulação do relógio do hardware no sistema.
Se você deseja baixar e instalar o
util-linux você mesmo, você pode encontrá-lo em
http://www.kernel.org/pub/linux/utils/util-linux.
Para a versão 2.6.18 do kernel, a versão 2.10 do
util-linux é a mais antiga que funciona corretamente. É recomendado que você instale a última versão desse pacote, já que a nova versão suporta novas funções adicionadas ao kernel. A montagem com a opção bind é um exemplo de uma opção dos novos kernels e uma nova versão do
util-linux é necessária para ter essas funções funcionando corretamente.
Para ver qual a versão do
util-linux você tem instalada no seu sistema, rode o seguinte comando:
$ fdformat --versionmodule-init-toolsO pacote
module-init-tools é necessário se você deseja usar os módulos do kernel Linux. Um módulo do kernel é um pedaço de código carregado que pode ser adicionado ou removido do kernel enquanto o kernel está rodando. É útil compilar drivers de dispositivos como módulos e então carregar apenas aqueles que correspondem ao hardware presente no sistema. Todas as distribuições Linux usam módulos para carregar apenas os drivers e opções necessários para o sistema baseado no hardware presente, em vez de ser forçado a compilar todos os drivers e opções possíveis no kernel como um grande código único. Os módulos economizam memória por carregar apenas o código que é necessário para controlar a máquina da forma apropriada.
O processo de carregamento de módulos do kernel sofreu uma mudança radical na série 2.6 do kernel. O linker para o módulo (o código que decodifica todos os símbolos e descobre como unir os pedaços na memória) agora está acoplado no kernel, o que torna as ferramentas do userspace bem pequenas. Distribuições antigas têm um pacote chamado
modutils que não funcionam corretamente com o kernel 2.6. O pacote
module-init-tools é o pacote que você precisa para fazer o kernel 2.6 funcionar corretamente com os módulos.
Se você quiser baixar e instalar o pacote
module-init-tools você mesmo, você pode encontrá-lo em
http://www.kernel.org/pub/linux/utils/kernel/module-init-tools.
Para a versão 2.6.18 do kernel, a versão 0.9.10 do
module-init-tools é a mais antiga a funcionar corretamente. É recomendado que a última versão desse pacote esteja instalada, já que novas funções adicionadas ao kernel podem ser usadas pela versão mais recente desse pacote. Colocar os módulos na blacklist previne que eles sejam carregados automaticamente pelo pacote
udev é uma das opções que está presente na mais recente versão do
module-init-tools, porém não está nas versão antigas.
Para ver qual versão do
module-init-tools está instalada no seu sistema, rode o seguinte comando:
$ depmod -VFerramentas Específicas para Sistemas de ArquivosUma grande gama de ferramentas específicas para certos sistemas de arquivos são necessárias para criar, formatar, configurar e consertar partições de discos. O pacote
util-linux tem algumas dessas ferramentas, mas alguns dos sistemas de arquivos mais populares têm pacotes separados que contém os programas necessários.
Ext2/Ext3/Ext4Os sistemas de arquivos
Ext3 e o experimental
Ext4 são atualizações do
Ext2 e podem ser gerenciados com a mesma ferramenta. Qualquer versão recente de uma ferramenta para o
Ext2 também consegue funcionar com os outros dois sistemas de arquivos.
Para trabalhar com qual um desses sistemas de arquivos, você deve ter o pacote
e2fsprogs. Se você deseja baixar e instalar esse pacote você mesmo, você pode encontrá-lo em
http://e2fsprogs.sourceforge.net.
Para a versão 2.6.18 do kernel, a versão 1.29 do
e2fsprogs é a mais antiga a funcionar corretamente com o kernel. É altamente recomendável que você use a versão mais nova para aproveitar as vantagens das novas funções dos sistemas de arquivos
Ext3 e
Ext4.
Para ver qual versão do
e2fsprogs você tem instalado no seu sistema, rode o seguinte comando:
$ tune2fsJFSPara usar o sistema de arquivos da IBM, o JFS, você deve ter o pacote
ifsutils. Se você deseja baixar e instalar o pacote você mesmo, você pode encontrá-lo em
http://jfs.sourceforge.net.
Para a versão 2.6.18 do kernel, a versão 1.1.3 do
ifsutils é a mais antiga a funcionar corretamente com o kernel. Para ver qual versão do
ifsutils você tem no seu sistema, rode o seguinte comando:
$ fsck.jfs -VReiserFSPara usar o sistema de arquivos ReiserFS, você deve ter o pacote
reiserfsprogs. Se você deseja baixar e instalar esse pacote você mesmo, você pode encontrá-lo em
http://www.namesys.com/download.html.
Para a versão 2.6.18 do kernel, a versão 3.6.3 do
reiserfsprogs é a mais antiga a funcionar corretamente com o kernel. Para ver qual versão do
reiserfsprogs você tem no sistema, rode o seguinte comando:
$ reiserfsck -VXFSPara usar o sistema de arquivos XFS da SGI, você deve ter o pacote
xfsprogs. Se você deseja baixar e instalar esse pacote você mesmo, você pode encontrá-lo em
http://oss.sgi.com/projects/xfs.
Para a versão 2.6.18 do kernel, a versão 2.6.0 do
xfsprogs é a mais antiga a funcionar corretamente com o kernel. Para ver qual versão do
xfsprogs você tem instalada no sistema, rode o seguinte comando:
$ xfs_db -VQuotasPara usar a funcionalidade quotas do kernel, você deve ter o pacote
quota-tools*. Esse pacote inclui programas que lhe permitem configurar quotas para o usuários, fornece estatísticas sobre a quantidade de quota que está sendo utilizada por usuários diferentes e avisa quando as pessoas ficam muito próximas de atingir a quota disponível do sistema de arquivos.
Se você deseja baixar e instalar esse pacote você mesmo, você pode encontrá-lo em
http://sourceforge.net/projects/linuxquota.
Para a versão 2.6.18 do kernel, a versão 3.09 do
quota-tools é a mais antiga a funcionar corretamente com o kernel. Para ver qual versão do
quota-tools você tem em seu sistema, rode o comando seguinte:
$ quota -V*: Algumas distribuições, particularmente o Debian, chamam esse pacote de quota em vez de quota-tools.NFSPara usar o sistema de arquivos NFS, você deve ter o pacote
nfs-utils*. Esse pacote inclui programas que lhe permitem montar partições NFS como um cliente e rodar um servidor NFS.
Se você deseja baixar e instalar esse pacote você mesmo, você pode encontrá-lo em
http://nfs.sf.net.
Para a versão 2.6.18 do kernel, a versão 1.0.5 do
nfs-utils é a mais antiga a funcionar corretamente com o kernel. Para ver qual versão do
nfs-utils você tem em seu sistema, rode o seguinte comando:
$ showmount --version*: Algumas distribuições, particularmente o Debian, chamam esse pacote de nfs-common em vez de nfs-utils.Outras FerramentasExistem vários outros programas importantes que estão estreitamente ligados à versão do kernel. Esses programas normalmente não são necessários para que o kernel funcione corretamente, mas eles habilitam o acesso a diferentes tipos hardware e funções.
udevO
udev é um programa que habilita o Linux forneça um sistema de nomeação de dispositivos persistente no diretório
/dev. Ele também fornece um
/dev dinâmico, parecido com o antigo (e agora removido) sistema de arquivos
devfs. Quase todas as distribuições Linux utilizam o
udev para gerenciar o diretório
/dev, então ele é necessário para iniciar a máquina corretamente.
Infelizmente, o
udev depende da estrutura do
/sys, que é conhecido por mudar de tempos em tempos com as versões do kernel. Algumas dessas mudanças no passado foram conhecidas por quebrar o
udev, então a sua máquina não irá iniciar corretamente. Se você tem a última versão do
udev recomendada para o eu kernel e está tendo problemas no funcionamento, por favor comunique os desenvolvedores do
udev na lista de email disponível em
linux-hotplug-devel@lists.sourceforge.net.
É altamente recomendado que você usa a versão do
udev que vem com a sua distribuição Linux, já que ele está altamente ligado ao processo de boot da distribuição. Mas se você deseja atualizar o
udev por sua conta e risco, você pode encontrá-lo em
http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html.
Para a versão 2.6.18 do kernel, a versão 081 do
udev é a mais antiga a funcionar corretamente com o kernel. É recomendado que você use a última versão do
udev, afinal ele funcionará melhor com os kernels mais novos, devido à mudanças de como o
udev e o kernel se comunicam.
Para ver qual a versão do
udev que você tem instalada no seu sistema, rode o seguinte comando:
$ udevinfo -VFerramentas de ProcessosO pacote
procps inclui as ferramentas comumente usadas
ps e
top, como também muitas outras ferramentas úteis para gerenciar e monitoras processos que estão rodando no sistema.
Se você deseja baixe e instalar esse pacote por você mesmo, você pode encontrá-lo em
http://procps.sourceforge.net.
Para a versão 2.6.18 do kernel, a versão 3.2.0 do
procps é a mais antiga a funcionar corretamente. Para ver qual é a versão do
procps que está instalada no seu sistema, rode o seguinte comando:
$ ps --versionFerramentas PCMCIAPara utitizar dispositivos PCMCIA corretamente com o Linux, um programa que ajuda o userspace deve ser utilizado para configurar os dispositivos. Para versões antigas do kernel, esse programa era chamado de
pcmcia-ss, mas foi substituído por um sistema muito mais simples chamado
pcmciautils. Se você deseja utilizar dispositivos PCMCIA, você deve ter esse pacote instalado para que eles funcionem corretamente.
Se você deseja baixar e instalar esse pacote você mesmo, você pode encontrá-lo em
ftp://ftp.kernel.org/pub/linux/utils/kernel/pcmcia.
Para a versão 2.6.18 do kernel, a versão 004 do
pcmciautils é a mais antiga a funcionar corretamente com o kernel. Mas a versão mais recente é recomendada para tirar vantagem das novas funções no subsistema PCMCIA, como o carregamento automático do driver quando um novo dispositivo é encontrado.
Para ver qual é a versão do
pcmciautils que você tem instalada em seu sistema, rode seguinte comando:
$ pccardctl -V*---*---*---*---*---*---*---*---*---*---*
PDF em inglês - Chapter 2: Requirements for Building and Using the Kernel*---*---*---*---*---*---*---*---*---*---*
Qualquer correção, crítica & derivados, nos comentários por favor. Agradecido.