Compilando o kernel do Linux
Autor: Dayce Silva | Publicado: 2011-07-11T23:51:00-03:00

Neste artigo de hoje estaremos ensinando a compilar o kernel passo a passo. Não é&nbsp;muito difícil, acompanhe e você poderá resolver a maioria dos seus problemas de "drivers".&nbsp;
6.1 Desenvolvimento&nbsp;No kernel, você poderá configurar a base do sistema. Tudo o que você precisa para&nbsp;ter devices funcionando está no Kernel. Por exemplo, é nele que se configura portas&nbsp;paralelas, sistemas de arquivos, placas de rede, etc.&nbsp;
A versão atual do Kernel é a 2.2.14. O primeiro número indica a versão de&nbsp;desenvolvimento, como um software normal, que começou com 0 (2 seriam 200% pronto, do&nbsp;projeto original). O segundo número indica o progresso do desenvolvimento. Se este&nbsp;segundo número for par, indica que é uma versão estável, ou seja, pode-se usar sem&nbsp;problemas. Se for ímpar, cuidado, pois é uma versão instável e somente use-a se você for&nbsp;ajudar no desenvolvimento do Kernel. Já o último número indica as correções de erro desde&nbsp;
o 0 (o 14, neste caso, indica que houveram 14 correções de erro desde o 2.2.0).&nbsp;Se você ainda não pegou a última versão do Kernel, verifique em&nbsp;http://www.olinux.com.br/pegueolinux. Lá está indicado onde você pode pegar a última&nbsp;versão estável do Kernel.&nbsp;
6.2 Descompactando o Kernel&nbsp;O Kernel do Linux deve ser descompactado no diretório /usr/src. Mas antes, você&nbsp;precisa se logar como root. Assim:&nbsp;
$ su&nbsp;Password:&nbsp;#&nbsp;

Agora, entre no dir /usr/src:&nbsp;# cd /usr/src&nbsp;

Muito bem, descompacte o Kernel (em .tar.gz) neste diretório.&nbsp;
O exemplo a seguir supõe que o usuário luke baixou o Kernel em seu HOME: /&nbsp;home/luke. Exemplo:&nbsp;
# tar xvfz /home/luke/linux-2.2.14.tar.gz&nbsp;
Isto cria o diretório chamado linux. Entre nele para começarmos a compilar:&nbsp;
# cd linux&nbsp;
Agora você tem várias opções para começar a configuração:&nbsp;
No Console (precisa da libncurses4):&nbsp;# make menuconfig&nbsp;

No Console, sem gráficos:&nbsp;

# make config&nbsp;
No ambiente gráfico X Window System:&nbsp;# startx&nbsp;Abra um terminal e digite:&nbsp;# make xconfig&nbsp;

Na minha opinião, o melhor é o xconfig. Se não der, use o menuconfig que também é&nbsp;bom.&nbsp;
6.3 Configurando&nbsp;Vou mostrar como configurar usando a opção xconfig para um usuário comum.&nbsp;
Na configuração para compilação do Kernel, você tem 3 opções para cada item: y&nbsp;(sim), m (módulo) ou n (não). Se você marcar y, o item marcado será embutido dentro do&nbsp;Kernel, ou seja, quando o sistema iniciar, este item será iniciado também. Se você marcar m,&nbsp;estará indicando que deve-se compilar o item como módulo, ou seja, que você vai ter a&nbsp;opção de carregar/descarregar o item da memória quando bem desejar.&nbsp;
Já se você marcar n, o item não será compilado.&nbsp;
Para obter ajuda em uma subopção (item), basta clicar no botão HELP que estiver ao&nbsp;lado dela. Lembre-se disso, pois é sempre importante consultar a ajuda em caso de dúvida.&nbsp;
Aqui está o xconfig:&nbsp;
•&nbsp;Code maturity level options&nbsp;Nesta opção há somente uma subopção. Deixe-a negada.&nbsp;•&nbsp;Processor type and features&nbsp;
Aqui, na primeira opção, você escolhe qual o tipo do seu processador. Na&nbsp;segunda opção deixe 1 Gb. Na terceira, marque não (a não ser que possua um computador&nbsp;antigo como um 386). Na quarta e na quinta, deixe não. Fica assim:&nbsp;
•&nbsp;Loadable module support&nbsp;Marque sim apenas na primeira opção (enable loadable module support). Deixe as&nbsp;outras duas com não.&nbsp;
•&nbsp;General setup&nbsp;Aqui você vai configurar várias opções importantes para o sistema.&nbsp;•&nbsp;Marque com y: Networking support, PCI support, PCI quirks, Backwardcompatible&nbsp;/proc/pci, System V IPC, Sysctl support, Kernel support for ELF&nbsp;binaries, Parallel port support e Pc-style hardware.&nbsp;•&nbsp;Se você quiser também pode configurar o Advanced Power Management&nbsp;caso você use notebook.&nbsp;Fica assim:&nbsp;

•&nbsp;Aqui você diz se quer suporte a Plug and Play embutidos no Kernel. Marque&nbsp;y nas duas subopções.&nbsp;
•&nbsp;Block devices (Aqui você configura devices com transferência em bloco, como&nbsp;disquete, CDROM, etc.)&nbsp;•&nbsp;Marque com y: Normal PC floppy disk support, Enhaced IDE/MFM/...,&nbsp;Include IDE/ATA-2 DISK support, Include IDE/ATAPI CDROM support,&nbsp;CMD640..., RZ100..., Generic PCI IDE chipset support, Generic PCI busmaster&nbsp;DMA support, Use DMA by default when available e RAM disk&nbsp;support.&nbsp;Dê uma olhada:&nbsp;
•&nbsp;Networking options (Aqui você configura as opções de network. Se você estiver&nbsp;perdido, lembre-se do HELP.)&nbsp;•&nbsp;Marque com y: Packet socket, Unix domain sockets, TCP/IP networking e&nbsp;Allow large windows... (caso tenha 16 Mb ou mais de RAM).&nbsp;•&nbsp;Nesta opção você pode configurar também o Appletalk se quiser se&nbsp;comunicar com um Mac.&nbsp;•&nbsp;SCSI support&nbsp;•&nbsp;Se você possuir algum dispositivo SCSI, configure-o aqui. Marque n na&nbsp;primeira subopção caso contrário.&nbsp;
•&nbsp;Network device support&nbsp;•&nbsp;Aqui você configura o suporte a alguns protocolos e devices de rede.&nbsp;•&nbsp;Marque com y a primeira opção e "PPP (point-to-point) protocol". Marque&nbsp;com m "Dummy net driver support".&nbsp;•&nbsp;Ethernet (10 or 100 Mbits)&nbsp;•&nbsp;Configure aqui sua placa de rede compatIvel com Ethernet, marcando a&nbsp;primeira opção com y e escolhendo sua placa dentre as listadas.&nbsp;•&nbsp;Caso não possua uma placa de rede Ethernet, marque n na primeira opção.&nbsp;•&nbsp;Mais rede&nbsp;•&nbsp;Você pode configurar Appletalk devices, Wan, Token Ring nas respectivas&nbsp;opções.&nbsp;•&nbsp;Conexão remota&nbsp;•&nbsp;Você pode configurar Radio amador (Amateur Radio support) e ISDN nas&nbsp;respectivas opções.&nbsp;•&nbsp;IrDA subsystem support&nbsp;•&nbsp;Aqui você pode configurar os protocolos para comunicação através de Infra&nbsp;Vermelho (Infra Red).&nbsp;•&nbsp;Também terá que configurar "Infrared-port devices drivers", caso configure o&nbsp;que foi descrito acima.&nbsp;•&nbsp;Character Device&nbsp;•&nbsp;Aqui você configura os devices de caracter, como terminais, impressoras,&nbsp;etc.&nbsp;•&nbsp;Marque com y: Virtual Terminal, Support dor console on virtual terminal,&nbsp;Standard/generic (dumb) serial support, UNIX98 PTY support, Parallel&nbsp;printer support e Support IEEE1284 status readback.&nbsp;•&nbsp;Video For Linux&nbsp;•&nbsp;Aqui você pode configurar webcams, placas AM/FM e outros devices que&nbsp;dizem respeito à captura de video.&nbsp;
•&nbsp;Joystick support&nbsp;•&nbsp;Aqui você configura vários tipos de Joysticks de jogos.&nbsp;•&nbsp;Se quiser usar joystick, marque a primeira opção com y. Depois escolha seu&nbsp;joystick na lista abaixo (marcando com y).&nbsp;•&nbsp;Filesystem&nbsp;•&nbsp;Aqui você configura os sistemas de arquivos que o Linux vai suportar.&nbsp;•&nbsp;Marque com y: Kernel automounter support, DOS FAT fs support, MSDOS&nbsp;fs support, VFAT (Windows-95) fs support, ISSO 9660 Filesystem support,&nbsp;Microsoft Joliet CDROM extensions, /proc filesystem support, /dev/pty&nbsp;filesystem for UNIX98 Ptys e Second extended fs support.&nbsp;•&nbsp;Network File Systems&nbsp;•&nbsp;Aqui você configura os sistemas de arquivo de rede que o Linux vai&nbsp;suportar.&nbsp;•&nbsp;Native Language Support&nbsp;•&nbsp;Configuração de língua nativa.&nbsp;•&nbsp;Marque com y a opção: "Codepage 860 (Portuguese)".&nbsp;•&nbsp;Console drivers&nbsp;•&nbsp;Marque apenas a opção "VGA text console".&nbsp;•&nbsp;Sound&nbsp;•&nbsp;Se você possui uma placa de som este é o lugar para configurá-la.&nbsp;•&nbsp;Marque com y a primeira opção. Depois escolha a sua placa de som&nbsp;(marcando y) e preencha os campos indicando porta, irq e dma.&nbsp;•&nbsp;Additional low level sound drivers&nbsp;•&nbsp;Aqui você configura alguns detalhes de placas de som, como por exemplo o&nbsp;MIDI das Sound Blaster AWE.&nbsp;6.4 Compilando&nbsp;Depois de configurar tudo, salve a configuração em um arquivo ("Store Configuration&nbsp;to file"). Depois salve e saia ("Save and Exit").&nbsp;
Pronto, agora saia do X para poupar memória: Ctrl + Alt + Backspace.&nbsp;
Execute:&nbsp;

# make dep&nbsp;Quando esta etapa acabar, compile e instale os módulos (marcados com m):&nbsp;

# make modules&nbsp;# make modules_install&nbsp;

Quando acabar com os módulos você irá compilar o Kernel.&nbsp;
Você possui várias opções. Algumas são: bzImage, bzlilo, zImage, etc. Eu costumo&nbsp;usar o bzlilo, pois esta opção compacta bem o Kernel e já o instala para mim&nbsp;automaticamente. Então executo:&nbsp;
# make bzlilo&nbsp;
Espere acabar de compilar. Esta parte demora mesmo (entre 15 minutos e, no&nbsp;máximo, 1 hora, dependendo da velocidade do computador).&nbsp;
Pronto, veja se não deu nenhum erro e... reinicie o computador: Ctrl + Alt + Delete.&nbsp;
Este é o único momento em que o Linux precisa ser reiniciado (o que acontece&nbsp;constantemente em outros sistemas).&nbsp;