{"id":396,"date":"2013-02-25T10:01:15","date_gmt":"2013-02-25T13:01:15","guid":{"rendered":"http:\/\/www.viazap.com.br\/?p=396"},"modified":"2013-02-25T10:01:15","modified_gmt":"2013-02-25T13:01:15","slug":"compilando-kernel-no-debian-squeeze","status":"publish","type":"post","link":"https:\/\/blog.clusterweb.com.br\/?p=396","title":{"rendered":"Compilando kernel no Debian Squeeze"},"content":{"rendered":"<p><b>Procedimentos<\/b><\/p>\n<p>1. Instalar os pacotes necess\u00e1rios:<\/p>\n<p><strong># apt-get update<br \/>\n# aptitude safe-upgrade<\/strong><\/p>\n<p>Tem alguns pacotes a mais do que o necess\u00e1rio, mas neste caso, o que abunda n\u00e3o prejudica.<\/p>\n<p><strong># aptitude install build-essential module-init-tools kernel-package initramfs-tools libaal-dev wget liblzo2-dev gzip expectk libncurses5-dev dpatch udev<\/strong><\/p>\n<p>2. Fazer o download do kernel desejado no site <a href=\"http:\/\/www.kernel.org\/\">kernel.org<\/a>.<\/p>\n<p>O download pode ser feito via navegador ou pelo terminal. No terminal, utiliza-se o pacote <em>wget<\/em>:<\/p>\n<p><strong># wget http:\/\/caminho_completo_do_kernel<\/strong><\/p>\n<p>Exemplo:<\/p>\n<p><strong># wget<\/strong> <a href=\"http:\/\/www.kernel.org\/pub\/linux\/kernel\/v3.0\/linux-3.7.6.tar.bz2\">http:\/\/www.kernel.org\/pub\/linux\/kernel\/v3.0\/linux-3.7.6.tar.bz2<\/a><\/p>\n<p>Obs.: O kernel ser\u00e1 baixado no diret\u00f3rio\/pasta onde voc\u00ea estiver.<\/p>\n<p><strong># ls<\/strong>\u00a0\u00a0#Para ver o arquivo baixado<\/p>\n<p>3. Descompactar o arquivo do kernel:<\/p>\n<p><strong># tar -jxvf nome_do_arquivo.tar.bz2<\/strong>\u00a0\u00a0#Para arquivos: .tar.bz2<br \/>\n<strong># tar -vzxf nome_do_arquivo.tar.gz<\/strong>\u00a0\u00a0#Para arquivos: .tar.gz<br \/>\n<strong># ls<\/strong>\u00a0\u00a0#Para ver o arquivo descompactado<\/p>\n<p>4. Copiar o kernel para o diret\u00f3rio <em>\/usr\/src<\/em> (diret\u00f3rio\/pasta padr\u00e3o de compila\u00e7\u00e3o do kernel no <em>Debian<\/em>):<\/p>\n<p><strong># cp -R linux-x.x.x \/usr\/src<\/strong><br \/>\n<strong># cd \/usr\/src<\/strong>\u00a0\u00a0#Entrar no diret\u00f3rio<br \/>\n<strong># ls<\/strong>\u00a0\u00a0#Verificar se o arquivo foi copiado<\/p>\n<p>5. Nas op\u00e7\u00f5es de configura\u00e7\u00e3o (<em>make menuconfig<\/em>), as op\u00e7\u00f5es marcadas com &#8220;M&#8221; indicam que a instala\u00e7\u00e3o se dar\u00e1 como m\u00f3dulos, ou seja, n\u00e3o far\u00e3o parte do bloco monol\u00edtico do kernel.<\/p>\n<p>As op\u00e7\u00f5es marcadas com &#8220;*&#8221; (asterisco) indicam que ser\u00e3o instaladas dentro do kernel, ou seja, far\u00e3o parte do bloco monol\u00edtico do kernel, e os drivers e m\u00f3dulos iniciar\u00e3o junto com o sistema. Em alguns casos, isto \u00e9 interessante para melhorar o desempenho.<\/p>\n<p>Executar os comandos abaixo em sequ\u00eancia (aguardar o final ap\u00f3s cada comando e sempre ler as mensagens de retorno para ver se deu algum erro):<\/p>\n<p><strong># ln -s linux-x.x.x linux<\/strong>\u00a0\u00a0#Cria um link simb\u00f3lico necess\u00e1rio para a compila\u00e7\u00e3o<br \/>\n<strong># ls<\/strong>\u00a0\u00a0#Confirmar se o arquivo foi criado<br \/>\n<strong># cd linux<\/strong>\u00a0\u00a0#Entra no diret\u00f3rio criado<br \/>\n<strong># make-kpkg clean<\/strong>\u00a0\u00a0#Limpa prov\u00e1veis compila\u00e7\u00f5es anteriores<br \/>\n<strong># make mrproper<\/strong>\u00a0\u00a0#Limpa prov\u00e1veis compila\u00e7\u00f5es anteriores<br \/>\n<strong># make menuconfig<\/strong>\u00a0\u00a0#Entra nas configura\u00e7\u00f5es do kernel<\/p>\n<p>Para alterar de &#8220;M&#8221; para &#8220;*&#8221; e vice-versa, \u00e9 s\u00f3 pressionar a barra de espa\u00e7os.<\/p>\n<p>V\u00e1 em &#8220;Processor type and features&#8221;, e marque (barra de espa\u00e7os) a op\u00e7\u00e3o que corresponde ao processador da m\u00e1quina.<\/p>\n<p>Mais abaixo, v\u00e1 em &#8220;Timer frequency&#8221;. Se a sua instala\u00e7\u00e3o for do tipo servidor marque, a op\u00e7\u00e3o 100 HZ (isso melhorar\u00e1 o tempo de resposta do servidor para as requisi\u00e7\u00f5es). Para Desktop, deixe como est\u00e1.<\/p>\n<p>Retorne ao menu principal.<\/p>\n<p>V\u00e1 em: Networking support \u2192 Networking options \u2192 Network packet filtering framework (netfilter) \u2192 IP: netfilter configuration<\/p>\n<p>Verifique se &#8220;IPv4 connection tracking support (required for NAT)&#8221; est\u00e1 marcada.<\/p>\n<p>Mais abaixo, marque as op\u00e7\u00f5es:<\/p>\n<blockquote><p>IPv4 NAT<br \/>\nMASQUERADE target support<br \/>\nNETMAP target support<br \/>\nREDIRECT target support<\/p><\/blockquote>\n<p>Volte ao menu principal.<\/p>\n<p>V\u00e1 em &#8220;File Systems&#8221;, marque os sistemas de arquivo utilizados no particionamento da instala\u00e7\u00e3o com: &#8220;*&#8221;<\/p>\n<p>Mais abaixo, v\u00e1 em &#8220;Native language support&#8221; e marque com &#8220;*&#8221; as op\u00e7\u00f5es:<\/p>\n<blockquote><p>Codepage 860 (Portuguese)<br \/>\nASCII (United&#8230;)<br \/>\nNLS 8859-1 (Latin 1, &#8230;)<br \/>\nNLS UTF-8<\/p><\/blockquote>\n<p>Retorne ao menu principal dando EXIT. Ap\u00f3s o \u00faltimo EXIT, aparecer\u00e1 a janela &#8220;Do you wish&#8230;&#8221;, deixe como: &#8220;Yes&#8221;<\/p>\n<h1>Compila\u00e7\u00e3o<\/h1>\n<p>6. Compile:<\/p>\n<p><strong># make config_debug_section_mismatch=y<\/strong>\u00a0\u00a0#Compila e previne poss\u00edveis erros durante a compila\u00e7\u00e3o, dever\u00e1 demorar de uma a duas horas<br \/>\n<strong># make modules<\/strong>\u00a0\u00a0#Compila os m\u00f3dulos<br \/>\n<strong># make modules_install<\/strong>\u00a0\u00a0#Instala os m\u00f3dulos<br \/>\n<strong># make install<\/strong>\u00a0\u00a0#Instala o kernel<br \/>\n<strong># cd \/lib\/modules<\/strong>\u00a0\u00a0#Entrar no diret\u00f3rio<br \/>\n<strong># ls<\/strong>\u00a0\u00a0#Confirmar que foi criado o arquivo x.x.x, no caso, 3.7.6<br \/>\n<strong># mkinitramfs -o \/boot\/initrd.img-x.x.x \/lib\/modules\/x.x.x<\/strong>\u00a0\u00a0#Cria a imagem do kernel<br \/>\n<strong># cd \/boot<\/strong>\u00a0\u00a0#Entrar no diret\u00f3rio \/boot e conferir se o arquivo foi criado<br \/>\n<strong># cd<\/strong>\u00a0\u00a0#Entra no diret\u00f3rio raiz<br \/>\n<strong># update-grub<\/strong>\u00a0\u00a0#Atualiza o GRUB<br \/>\n<strong># shutdown -r now<\/strong>\u00a0\u00a0#Reinicia<\/p>\n<p>Ao reiniciar, o novo kernel dever\u00e1 aparecer nas op\u00e7\u00f5es do <em>GRUB<\/em>.<\/p>\n<p>Depois, atualize o sistema (opcional):<\/p>\n<p><strong># aptitude update<br \/>\n# aptitude safe-upgrade<\/strong><\/p>\n<p>Em caso de erro em alguma etapa da compila\u00e7\u00e3o:<\/p>\n<ul>\n<li>Apague os arquivos criados do novo kernel dentro dos diret\u00f3rios: <strong>\/boot<\/strong> e <strong>\/lib\/modules<\/strong><\/li>\n<li>Recomece a partir do comando: <strong>make-kpkg clean<\/strong> (estando dentro do link: <em>linux<\/em>)<\/li>\n<\/ul>\n<p>E seja feliz com seu novo e atualizado kernel.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Procedimentos 1. Instalar os pacotes necess\u00e1rios: # apt-get update # aptitude safe-upgrade Tem alguns pacotes a mais do que o necess\u00e1rio, mas neste caso, o que abunda n\u00e3o prejudica. # aptitude install build-essential module-init-tools kernel-package initramfs-tools libaal-dev wget liblzo2-dev gzip expectk libncurses5-dev dpatch udev 2. Fazer o download do kernel desejado no site kernel.org. O [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1,51],"tags":[66,17,15,50],"class_list":["post-396","post","type-post","status-publish","format-standard","hentry","category-viazap","category-linux-linuxrs","tag-compilacao","tag-debian","tag-kernel","tag-squeeze"],"_links":{"self":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/396","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=396"}],"version-history":[{"count":1,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/396\/revisions"}],"predecessor-version":[{"id":397,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=\/wp\/v2\/posts\/396\/revisions\/397"}],"wp:attachment":[{"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=396"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=396"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.clusterweb.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=396"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}