Claro! Eu compilei mais do que meu quinhão de kernels.
Primeiro, você precisa ter certeza de ter a fonte do seu kernel no seu disco rígido. Procure por um pacote chamado "kernel-source" ou algo assim. Na minha caixa do Slackware, isso instala a fonte completa do kernel não modificada em /usr/src/linux-x.x.xx.x
. Muitas vezes, diferentes distros terão kernels corrigidos ou configurações personalizadas. Na maior parte do tempo, você encontrará esses dados salvos no arquivo /boot/config
.
Se você não quer mexer com as pastas do sistema, sugiro que copie o código-fonte do kernel para um local temporário antes de tentar a compilação:
$ cp -rp /usr/src/linux-2.6.33.4 /tmp/kernel-build
$ cd /tmp/kernel-build
Em seguida, você precisará entrar no menu de configuração do kernel:
$ make menuconfig
Isso fará uma compilação inicial do sistema de menu de configuração e o levará ao menu de configuração:
.config - Linux Kernel v2.6.33.4 Configuration
------------------------------------------------------------------------------
l---------------------- Linux Kernel Configuration -----------------------+
| Arrow keys navigate the menu. <Enter> selects submenus --->. |
| Highlighted letters are hotkeys. Pressing <Y> includes, <N> excludes, |
| <M> modularizes features. Press <Esc><Esc> to exit, <?> for Help, </> |
| for Search. Legend: [*] built-in [ ] excluded <M> module < > |
| +---------------------------------------------------------------------+ |
| | General setup ---> | |
| | [*] Enable loadable module support ---> | |
| | -*- Enable the block layer ---> | |
| | Processor type and features ---> | |
| | Power management and ACPI options ---> | |
| | Bus options (PCI etc.) ---> | |
| | Executable file formats / Emulations ---> | |
| | -*- Networking support ---> | |
| | Device Drivers ---> | |
| | Firmware Drivers ---> | |
| | File systems ---> | |
| | Kernel hacking ---> | |
| | Security options ---> | |
| | -*- Cryptographic API ---> | |
| | [*] Virtualization ---> | |
| | Library routines ---> | |
| | --- | |
| | Load an Alternate Configuration File | |
| | Save an Alternate Configuration File | |
| +---------------------------------------------------------------------+ |
+-------------------------------------------------------------------------+
| <Select> < Exit > < Help > |
+-------------------------------------------------------------------------+
Para carregar a configuração atual do kernel (para que tudo que você esteja trabalhando ainda funcione assim que você instalar o novo kernel e inicializar a partir dele), selecione Load an Alternate Configuration File
e digite "/boot/config".
Em seguida, navegue pelos menus até a opção que deseja ativar e pressione a barra de espaço até que seja "*" (compilado no kernel) ou "M" (compilado como modprobe
-able kernel module).
Quando tiver tudo certo, saia do configurador e digite:
$ make bzImage
Isto fará a imagem do kernel. Instale-o lendo atentamente as páginas lilo
ou grub
man.