<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Bruno Torres ponto netkernel &#187; Bruno Torres ponto net</title>
	<atom:link href="http://brunotorres.net/tag/kernel/feed" rel="self" type="application/rss+xml" />
	<link>http://brunotorres.net</link>
	<description>Textos infreqÃ¼entes sobre a web</description>
	<lastBuildDate>Thu, 24 Mar 2011 05:54:38 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>RSS com as versÃµes mais atuais do kernel do linux</title>
		<link>http://brunotorres.net/rss-kernel</link>
		<comments>http://brunotorres.net/rss-kernel#comments</comments>
		<pubDate>Fri, 20 Aug 2004 05:23:38 +0000</pubDate>
		<dc:creator>Bruno Torres</dc:creator>
				<category><![CDATA[atom]]></category>
		<category><![CDATA[feeds]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[web]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Vi em um site, um script que gerava um RSS com as versÃµes mais recentes do kernel do Linux. Como eles nÃ£o quiseram passar o cÃ³digo e julguei essa ser uma tarefa fÃ¡cil, resolvi fazer o meu tambÃ©m. O script Ã© bem simples, feito em PHP, nÃ£o sei se da melhor forma que poderia ser [...]]]></description>
			<content:encoded><![CDATA[<p>Vi em um <a href="http://www.vivalinux.com.ar/article-kernel-rss-feed.html">site</a>, um script que gerava um RSS com as versÃµes mais recentes do kernel do Linux.
<!--<a id="gotocontentlink" href="#post-content">Pular anúncios</a>--><div class="adpostsearch">
<div>
<script type="text/javascript"><!--
google_ad_client = "pub-6502782542223555";
/* adPostSearch */
google_ad_slot = "4051981144";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div></div><!--<a name="post-content"></a>-->

<p>
Como eles nÃ£o quiseram passar o cÃ³digo e julguei essa ser uma tarefa fÃ¡cil, resolvi fazer o meu tambÃ©m.</p>
<p>O <a href="/scripts/kernelrss.txt">script</a> Ã© bem simples, feito em PHP, nÃ£o sei se da melhor forma que poderia ser feito, mas pelo menos funciona&#8230;hehe
</p>
<p>
Se vocÃª tiver alguma idÃ©ia de como melhorar, ou tiver um melhor que esse, me diga.
</p>
<p>
Este <a href="/scripts/kernelrss.txt">script</a> Ã© distribuido por uma <a href="http://creativecommons.org/licenses/by-nc-sa/2.0/br/">licenÃ§a</a> <a href="http://www.creativecommons/">Creative Commons</a>, como todo o conteÃºdo deste site.
</p>
<p>
Se quiser ter uma cÃ³pia dele no seu site, fique a vontade.
</p>
<p>
O RSS gerado Ã© da versÃ£o 2.0, mas Ã© simples adaptÃ¡-lo para 0.91 ou 1.0, se for necessÃ¡rio.
</p>
<p>
VocÃª pode acessar os feeds pelas URLs:
</p>
<p><a href="/rss/kernel">www.brunotorres.net/rss/kernel</a> (versÃµes estÃ¡veis do kernel) ou</p>
<p><a href="/rss/kernel-patch">www.brunotorres.net/rss/kernel-patch</a> (Ãºltimos patches &#8211; <em>instÃ¡veis</em> &#8211; para as versÃµes estÃ¡veis).</p>
<p>
Espero que seja Ãºtil!
</p>
<p><strong>[update]</strong> Acertei o script para considerar os 2.x.x-rcx como versÃµes de patch tb. Tinha esquecido deles!</p>
<div id="crp_related"><h3>Leia tambÃ©m:</h3><ul><li><a href="http://brunotorres.net/compilar-kernel-24" rel="bookmark" class="crp_title">Compilando o kernel do linux</a></li><li><a href="http://brunotorres.net/compilar-kernel26" rel="bookmark" class="crp_title">Como compilar o kernel 2.6</a></li><li><a href="http://brunotorres.net/velox-linux" rel="bookmark" class="crp_title">Velox no Linux</a></li><li><a href="http://brunotorres.net/module-init-tools" rel="bookmark" class="crp_title">module-init-tools</a></li><li><a href="http://brunotorres.net/analise-google-dois" rel="bookmark" class="crp_title">Novo Script de anÃ¡lise de ranking Google</a></li><li><a href="http://brunotorres.net/montar-ntfs-linux" rel="bookmark" class="crp_title">Como montar partiÃ§Ãµes NTFS no linux</a></li><li><a href="http://brunotorres.net/martin-michlmayr" rel="bookmark" class="crp_title">Martin Michlmayr &#8211; LÃ­der do projeto Debian GNU/Linux</a></li><li><a href="http://brunotorres.net/saiu-debian-sarge" rel="bookmark" class="crp_title">Saiu o Sarge, nova versÃ£o do Debian GNU/Linux</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://brunotorres.net/rss-kernel/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Como montar partiÃ§Ãµes NTFS no linux</title>
		<link>http://brunotorres.net/montar-ntfs-linux</link>
		<comments>http://brunotorres.net/montar-ntfs-linux#comments</comments>
		<pubDate>Thu, 18 Mar 2004 05:26:57 +0000</pubDate>
		<dc:creator>Bruno Torres</dc:creator>
				<category><![CDATA[gnulinux]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[modules]]></category>
		<category><![CDATA[ntfs]]></category>
		<category><![CDATA[windows]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Uma dÃºvida muito frequente dos novos usuÃ¡rios de linux Ã© como montar partiÃ§Ãµes windows, principalmente NTFS. Neste artigo veremos como montar e dar acesso a essa partiÃ§Ã£o para usuÃ¡rios comuns. Para este artigo vamos assumir que a partiÃ§Ã£o que serÃ¡ montada Ã© /dev/hda1 e o ponto de montagem Ã© /win. Mude esses valores de acordo [...]]]></description>
			<content:encoded><![CDATA[<p>Uma dÃºvida muito frequente dos novos usuÃ¡rios de linux Ã© como montar partiÃ§Ãµes windows, principalmente NTFS. Neste artigo veremos como montar e dar acesso a essa partiÃ§Ã£o para usuÃ¡rios comuns.<!--<a id="gotocontentlink" href="#post-content">Pular anúncios</a>--><div class="adpostsearch">
<div>
<script type="text/javascript"><!--
google_ad_client = "pub-6502782542223555";
/* adPostSearch */
google_ad_slot = "4051981144";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div></div><!--<a name="post-content"></a>-->

<p>Para este artigo vamos assumir que a partiÃ§Ã£o que serÃ¡ montada Ã© /dev/hda1 e o ponto de montagem Ã© /win. Mude esses valores de acordo com a sua necessidade.</p>
<p>Primeiro vocÃª deve verificar se o seu kernel tem suporte ao sistema de arquivos ntfs. Tente</p>
<p><span class="prompt">[root@host] # </span><kbd>mount -t ntfs /dev/hda1 /win</kbd></p>
<p>se funcionar, ok, o kernel tem suporte. Se retornar uma mensagem de erro do tipo:</p>
<p>
<pre>"mount: fs type ntfs not supported by kernel"</pre>
</p>
<p>vocÃª vai ter que habilitar este suporte.</p>
<p>VÃ¡ ao diretorio onde estÃ¡ o source do kernel</p>
<p><span class="prompt">[root@host] # </span><kbd>cd /usr/src/linux</kbd></p>
<p>e faÃ§a</p>
<p><span class="prompt">[root@host] # </span><kbd>make menuconfig</kbd></p>
<p>Se o seu kernel Ã© 2.4.x, vÃ¡ em</p>
<p>File Systems, e marque a opÃ§Ã£o</p>
<p>NTFS Filesystem Support (read-only) como &#8216;M&#8217;.</p>
<p>Se for 2.6.x, vÃ¡ em</p>
<p>File Systems -> DOS/FAT/NT Filesystems e marque</p>
<p>NTFS File System Support como &#8216;M&#8217;.</p>
<p>Perceba que o suporte nativo do kernel ao NTFS Ã© somente de leitura, o kernel 2.6.x tem um suporte a escrita em NTFS, mas extremamente limitado. Leia o help da opÃ§Ã£o para entender como funciona.</p>
<p>ApÃ³s isso, faÃ§a</p>
<p><span class="prompt">[root@host] # </span><kbd>make modules &amp;&amp; make modules_install</kbd></p>
<p>Pronto. Agora que o seu kernel jÃ¡ tem suporte ao NTFS, vamos ?  montagem.</p>
<p>Para montar a partiÃ§Ã£o com acesso apenas para o usuÃ¡rio root, faÃ§a</p>
<p><span class="prompt">[root@host] # </span><kbd>mount -t ntfs /dev/hda1 /win</kbd></p>
<p>(o parametro &#8216;-t ntfs&#8217; nem sempre Ã© necessÃ¡rio, teste sem ele, geralmente funciona).</p>
<p>O problema Ã© que ter acesso ?  partiÃ§Ã£o apenas como root Ã© complicado. VocÃª pode, por exemplo, ter alguns MP3 e videos nesta partiÃ§Ã£o e querer executÃ¡-los como usuÃ¡rio normal.</p>
<p>Para dar acesso ?  partiÃ§Ã£o para qualquer usuÃ¡rio, faÃ§a o seguinte:</p>
<p><span class="prompt">[root@host] # </span><kbd>mount -t ntfs -o umask=022 /dev/hda1 /win</kbd></p>
<p>A opÃ§Ã£o umask define as permissÃµes que serÃ£o atribuidas aos arquivos da partiÃ§Ã£o. O umask default para a montagem de partiÃ§Ãµes NTFS Ã© 077, o que impossibilita de qualquer usuÃ¡rio, senÃ£o o root, acessar os arquivos desta partiÃ§Ã£o.</p>
<p>O umask funciona da seguinte maneira:</p>
<p>permissÃ£o = permissÃ£o mÃ¡xima &#8211; umask</p>
<p>permissÃ£o mÃ¡xima Ã© 777. No nosso caso, com umask = 022, os arquivos terÃ£o as permissÃµes 777 &#8211; 022, o que resulta em 755, em formato literal r-xr-xr-x, ou seja, todos pode ler e executar os arquivos. Como o sistema de arquivos Ã© apenas de leitura, ninguem tem permissÃ£o de escrita.</p>
<p>E se vocÃª quiser permitir que apenas alguns usuÃ¡rios possam acessar a partiÃ§Ã£o?</p>
<p>FaÃ§a o seguinte: crie um grupo, por exemplo, ntfs e adicione a ele os usuÃ¡rios que vocÃª deseja que possam acessar a partiÃ§Ã£o:</p>
<p><span class="prompt">[root@host] # </span><kbd>groupadd ntfs</kbd></p>
<p><span class="prompt">[root@host] # </span><kbd>usermod -G ntfs user</kbd></p>
<p>O primeiro comando cria o grupo ntfs e o segundo adiciona o usuÃ¡rio user a este grupo. Repita o segundo comando para todos os usuÃ¡rios que vocÃª deseja que tenham acesso ?  partiÃ§Ã£o.</p>
<p>Agora nÃ³s precisamos saber qual o gid (group id, numero de identificaÃ§Ã£o do grupo) de ntfs. Para isso fazemos:</p>
<p><span class="prompt">[root@host] # </span><kbd>cat /etc/group | grep ntfs | cut -d: -f 3</kbd></p>
<p>Esse comando retornarÃ¡ o gid do grupo ntfs, vou usar como exemplo gid=1003.</p>
<p>Vamos montar a partiÃ§Ã£o usando o grupo ntfs como dono da partiÃ§Ã£o:</p>
<p><span class="prompt">[root@host] # </span><kbd>mount -o gid=1003,umask=027 /dev/hda1 /win</kbd></p>
<p>Usamos gid=1003 para indicar que o grupo  ao qual pertence a partiÃ§Ã£o Ã© o de gid 1003, ou seja, ntfs; e umask=027 para dar acesso apenas a root e aos usuÃ¡rios pertencentes ao grupo ntfs, negando acesso aos demais usuarios.</p>
<p>Para facilitar a sua vida e fazer com que a partiÃ§Ã£o seja montada automaticamente na inicializaÃ§Ã£o, adicione a seguinte linha ao arquivo /etc/fstab:</p>
<p>Para montar a partiÃ§Ã£o apenas para root</p>
<p>/dev/hda1 /win /ntfs defaults 0 0</p>
<p>Para acesso a qualquer usuÃ¡rio</p>
<p>/dev/hda1 /win ntfs umask=022,auto 0 0</p>
<p>Para dar acesso apenas ao grupo ntfs</p>
<p>/dev/hda1 /win ntfs gid=1003,umask=027,auto 0 0</p>
<div id="crp_related"><h3>Leia tambÃ©m:</h3><ul><li><a href="http://brunotorres.net/velox-linux" rel="bookmark" class="crp_title">Velox no Linux</a></li><li><a href="http://brunotorres.net/escrita-particoes-ntfs-linux-captive" rel="bookmark" class="crp_title">Suporte a escrita em partiÃ§Ãµes NTFS no Linux com o Captive</a></li><li><a href="http://brunotorres.net/compilar-kernel26" rel="bookmark" class="crp_title">Como compilar o kernel 2.6</a></li><li><a href="http://brunotorres.net/module-init-tools" rel="bookmark" class="crp_title">module-init-tools</a></li><li><a href="http://brunotorres.net/particionamento-disco" rel="bookmark" class="crp_title">Particionamento de disco</a></li><li><a href="http://brunotorres.net/links" rel="bookmark" class="crp_title">Entendendo os links e links simbÃ³licos</a></li><li><a href="http://brunotorres.net/pipes-redirecionamentos" rel="bookmark" class="crp_title">Usando pipes e redirecionamentos no linux</a></li><li><a href="http://brunotorres.net/compilar-programas" rel="bookmark" class="crp_title">Como compilar programas a partir do cÃ³digo fonte</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://brunotorres.net/montar-ntfs-linux/feed</wfw:commentRss>
		<slash:comments>33</slash:comments>
		</item>
		<item>
		<title>module-init-tools</title>
		<link>http://brunotorres.net/module-init-tools</link>
		<comments>http://brunotorres.net/module-init-tools#comments</comments>
		<pubDate>Tue, 16 Mar 2004 15:16:44 +0000</pubDate>
		<dc:creator>Bruno Torres</dc:creator>
				<category><![CDATA[gnulinux]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[kernel-2.6]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[modules]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Recebi vÃ¡rios e-mails de pessoas que leram o artigo sobre Como compilar o kernel 2.6 e tÃªm dÃºvidas em relaÃ§Ã£o ao module-init-tools. Vou tentar explicar como obter e instalar este programa. O kernel 2.6 trouxe consigo diversas mudanÃ§as, uma delas foi o formato dos mÃ³dulos (Ã€ primeira vista nota-se a mudanÃ§a da extensÃ£o de .o [...]]]></description>
			<content:encoded><![CDATA[<p>Recebi vÃ¡rios e-mails de pessoas que leram o artigo sobre <a class="normal" href="/gnulinux/compilar-kernel/2.6">Como compilar o kernel 2.6</a> e tÃªm dÃºvidas em relaÃ§Ã£o ao module-init-tools.<!--<a id="gotocontentlink" href="#post-content">Pular anúncios</a>--><div class="adpostsearch">
<div>
<script type="text/javascript"><!--
google_ad_client = "pub-6502782542223555";
/* adPostSearch */
google_ad_slot = "4051981144";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div></div><!--<a name="post-content"></a>-->

<p>Vou tentar explicar como obter e instalar este programa.</p>
<p>O kernel 2.6 trouxe consigo diversas mudanÃ§as, uma delas foi o formato dos mÃ³dulos (Ã€ primeira vista nota-se a mudanÃ§a da extensÃ£o de .o para .ko) que agora passaram a ser gerenciados por uma ferramenta chamada module-init-tools.</p>
<p>Esta ferramenta Ã© similar ?  usada no kernel 2.4 e conta com os mesmos comandos &#8211; modprobe, insmod, depmod e lsmod &#8211; portanto para o usuÃ¡rio a mudanÃ§a Ã© transparente.</p>
<p>Ã‰ necessÃ¡rio que se instale o module-init-tools antes de instalar o kernel 2.6. Se vocÃª jÃ¡ compilou o kernel e na hora de instalar os mÃ³dulos (make modules-install), recebeu uma mensagem de erro similar a essa:</p>
<p>
<pre>Warning: you may need to install module-init-tools
See http://www.codemonkey.org.uk/docs/post-halloween-2.6.txt
INSTALL drivers/net/dummy.ko
INSTALL drivers/usb/host/ohci-hcd.ko
if [ -r System.map ]; then /sbin/depmod -ae -F System.map 2.6.4-ck1; fi</pre>
</p>
<p>seguida por diversos erros de &#8220;unresolved symbols&#8221;, nÃ£o se desespere, vocÃª nÃ£o precisa compilar o kernel novamente, simplesmente instale o module-init-tools e rode novamente make modules_install.</p>
<p>Obtendo o module-init-tools:</p>
<p>VocÃª pode obter o module-init-tools de duas formas, um pacote binÃ¡rio especÃ­fico para a sua distribuiÃ§Ã£o, ou o cÃ³digo fonte.</p>
<p>Neste artigo vou me referir apenas ao cÃ³digo fonte, que pode ser instalado em qualquer distribuiÃ§Ã£o. Se vocÃª preferir instalar o pacote binÃ¡rio, procure nos repositÃ³rios oficiais da sua distro.</p>
<p>InstalaÃ§Ã£o:</p>
<p>Baixe o <a class="normal" href="http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/">cÃ³digo fonte do module-init-tools</a>. A versÃ£o mais atual Ã© a 3.0 e o arquivo se chama module-init-tools-3.0.tar.bz2.</p>
<p>Descompacte o arquivo:</p>
<p><span class="prompt">[root@host] # </span><kbd>tar jxvf module-init-tools-3.0.tar.bz2</kbd></p>
<p>Entre no diretÃ³rio:</p>
<p><span class="prompt">[root@host] # </span><kbd>cd module-init-tools-3.0</kbd></p>
<p>Configure, compile e instale:</p>
<p><span class="prompt">[root@host] # </span><kbd>./configure --prefix=/usr --bindir=/bin --sbindir=/sbin --sysconfdir=/etc</kbd></p>
<p><span class="prompt">[root@host] # </span><kbd>make</kbd></p>
<p><span class="prompt">[root@host] # </span><kbd>make install</kbd></p>
<p>ExplicaÃ§Ã£o:</p>
<ul>
<li>prefix: o local onde serÃ¡ instalado o programa</li>
<li>bindir: onde serÃ£o instalados os binÃ¡rios.</li>
<li>sbindir: onde serÃ£o instalados os binÃ¡rios que serÃ£o usados apenas por root.</li>
<li>sysconfdir: localizaÃ§Ã£o dos arquivos de configuraÃ§Ã£o.</li>
</ul>
<p>ApÃ³s compilado e instalado, apenas volte para o diretÃ³rio do source do kernel</p>
<p><span class="prompt">[root@host] # </span><kbd>cd /usr/src/linux</kbd></p>
<p>e instale os mÃ³dulos</p>
<p><span class="prompt">[root@host] # </span><kbd>make modules_install</kbd></p>
<p>Pronto. Agora vocÃª pode usar o seu novo kernel sem problemas.</p>
<div id="crp_related"><h3>Leia tambÃ©m:</h3><ul><li><a href="http://brunotorres.net/compilar-kernel26" rel="bookmark" class="crp_title">Como compilar o kernel 2.6</a></li><li><a href="http://brunotorres.net/velox-linux" rel="bookmark" class="crp_title">Velox no Linux</a></li><li><a href="http://brunotorres.net/montar-ntfs-linux" rel="bookmark" class="crp_title">Como montar partiÃ§Ãµes NTFS no linux</a></li><li><a href="http://brunotorres.net/compilar-programas" rel="bookmark" class="crp_title">Como compilar programas a partir do cÃ³digo fonte</a></li><li><a href="http://brunotorres.net/links" rel="bookmark" class="crp_title">Entendendo os links e links simbÃ³licos</a></li><li><a href="http://brunotorres.net/driver-ati-linux" rel="bookmark" class="crp_title">Driver de vÃ­deo da ATI &#8211; InstalaÃ§Ã£o</a></li><li><a href="http://brunotorres.net/pipes-redirecionamentos" rel="bookmark" class="crp_title">Usando pipes e redirecionamentos no linux</a></li><li><a href="http://brunotorres.net/filtros-texto-um" rel="bookmark" class="crp_title">Filtros p/ processamento de texto em Linux &#8211; Parte 1</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://brunotorres.net/module-init-tools/feed</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
		<item>
		<title>Como compilar o kernel 2.6</title>
		<link>http://brunotorres.net/compilar-kernel26</link>
		<comments>http://brunotorres.net/compilar-kernel26#comments</comments>
		<pubDate>Sat, 13 Mar 2004 05:26:28 +0000</pubDate>
		<dc:creator>Bruno Torres</dc:creator>
				<category><![CDATA[compilation]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gnulinux]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[kernel-2.6]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[make]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Neste artigo vou ensinar a compilar o kernel do linux da versÃ£o 2.6.x e mostrar as diferenÃ§as desta versÃ£o para a anterior, 2.4.x. Compilar o kernel do linux Ã© uma tarefa que se aprende com o tempo, depois de vÃ¡rias tentativas. Mas os problemas geralmente se resumem Ã  configuraÃ§Ã£o e nao Ã  compilaÃ§Ã£o. Vou tentar [...]]]></description>
			<content:encoded><![CDATA[<p>Neste artigo vou ensinar a compilar o <a class="normal" href="http://www.kernel.org">kernel do linux</a> da versÃ£o 2.6.x e mostrar as diferenÃ§as desta versÃ£o para a anterior, 2.4.x.<!--<a id="gotocontentlink" href="#post-content">Pular anúncios</a>--><div class="adpostsearch">
<div>
<script type="text/javascript"><!--
google_ad_client = "pub-6502782542223555";
/* adPostSearch */
google_ad_slot = "4051981144";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div></div><!--<a name="post-content"></a>-->

<p>Compilar o kernel do linux Ã© uma tarefa que se aprende com o tempo, depois de vÃ¡rias tentativas. Mas os problemas geralmente se resumem Ã  configuraÃ§Ã£o e nao Ã  compilaÃ§Ã£o. Vou tentar dar umas dicas referentes ?  configuraÃ§Ã£o, mas lembre-se que cada maquina usa uma configuraÃ§Ã£o diferente por isso tenha em mÃ£os toda a configuraÃ§Ã£o do seu computador e nÃ£o desista na primeira tentativa.</p>
<p>Para compilar vocÃª vai precisar do <a class="normal" href="http://gcc.gnu.org">gcc</a> (A documentaÃ§Ã£o do kernel recomenda a versÃ£o 2.95 do gcc, mas eu tenho compilado com sucesso o kernel com as versÃµes 3.2 e 3.3 e muitas distros fazem isso tambÃ©m, a dica Ã© tentar compilar com a versÃ£o mais atual do gcc, se der algum problema compile com a 2.95), do <a class="normal" href="http://www.gnu.org/software/ncurses/ncurses.html">Ncurses</a> (geralmente um pacote chamado libncurses-dev ou Ncurses-devel), do <a class="normal" href="http://freshmeat.net/redir/gnumake/3538/url_homepage/make">make</a> e do module-init-tools.</p>
<p>Qualquer dÃºvida sobre os pacotes necessÃ¡rios para compilar o kernel, leia o arquivo /usr/src/linux/Documentation/Changes.</p>
<p>Vou usar como referÃªncia o <a class="normal" href="http://www.kernel.org">kernel</a> da versÃ£o 2.6.4 baixado do <a class="normal" href="http://www.kernel.org">kernel.org</a>.</p>
<p>Baixe o source do kernel (clique no &#8216;F&#8217; ao lado da versÃ£o do kernel que vocÃª deseja baixar. O &#8216;F&#8217; significa &#8216;Full source&#8217;). Copie o arquivo baixado para /usr/src:</p>
<p><span class="prompt">[root@host] # </span><kbd>cp linux-2.6.4.tar.bz2 /usr/src</kbd></p>
<p>e decompacte-o:</p>
<p><span class="prompt">[root@host] # </span><kbd>cd /usr/src</kbd></p>
<p><span class="prompt">[root@host] # </span><kbd>tar jxvf linux-2.6.4.tar.bz2</kbd></p>
<p>Para facilitar, crie um link simbÃ³lico para o diretÃ³rio que foi criado chamado &#8216;linux&#8217;. Se jÃ¡ existir, remova e crie novamente:</p>
<p><span class="prompt">[root@host] # </span><kbd>rm /usr/src/linux</kbd></p>
<p><span class="prompt">[root@host] # </span><kbd>ln -s /usr/src/linux-2.6.4 /usr/src/linux</kbd></p>
<p>Como a maioria de nÃ³s vai compilar o kernel em desktop, vou usar o patch do <a class="normal" href="http://kernel.kolivas.org">Con Kolivas</a>, que otimiza o kernel para operaÃ§Ãµes comuns de desktop. NÃ£o Ã© obrigatÃ³rio, mas eu recomendo que use este patch, pois ele melhora bastante o desempenho.</p>
<p>Baixe o arquivo <a class="normal" href="http://ck.kolivas.org/patches/2.6/2.6.4/2.6.4-ck1/patch-2.6.4-ck1.bz2">patch-2.6.4-ck1.bz2</a> e copie-o tambÃ©m para /usr/src</p>
<p><span class="prompt">[root@host] # </span><kbd>cp patch-2.6.4-ck1 /usr/src</kbd></p>
<p>descompacte-o</p>
<p><span class="prompt">[root@host] # </span><kbd>bunzip2 patch-2.6.4-ck1.bz2</kbd></p>
<p>e aplique o patch no source do seu kernel</p>
<p><span class="prompt">[root@host] # </span><kbd>cd /usr/src/linux</kbd></p>
<p><span class="prompt">[root@host] # </span><kbd>patch -p1 &lt; ../patch-2.6.4-ck1</kbd></p>
<p>Agora vamos ?  configuraÃ§Ã£o. Estando em /usr/src/linux, digite</p>
<p><span class="prompt">[root@host] # </span><kbd>make mrproper</kbd></p>
<p>para limpar as configuraÃ§Ãµes e depois</p>
<p><span class="prompt">[root@host] # </span><kbd>make menuconfig</kbd></p>
<p>Existem outras maneiras de configurar o kernel, inclusive em modo grÃ¡fico, mas aqui vou me referir apenas ao menuconfig.</p>
<p>Como disse anteriormente, esta parte depende muito da mÃ¡quina em questÃ£o. Ã‰ necessÃ¡rio que vocÃª selecione todas as opÃ§Ãµes referentes ao seu hardware e os sistemas de arquivo que vocÃª usa. No menuconfig um &#8216;*&#8217; significa que a opÃ§Ã£o serÃ¡ compilada dentro da imagem do kernel, um &#8216;M&#8217; significa que serÃ¡ compilado como um mÃ³dulo externo.</p>
<p>O sistema de arquivos que a sua partiÃ§Ã£o linux usa deve ser marcado como &#8216;*&#8217;, bem como suporte a IDE (ou SCSI se for o caso). O restante das opÃ§Ãµes podem ser escolhidas como mÃ³dulo, vocÃª escolhe.</p>
<p>Lembre-se que se vocÃª selecionar alguma opÃ§Ã£o como mÃ³dulo, deve marcar a opÃ§Ã£o</p>
<p>Loadable Module Support -> Enable loadable module support,</p>
<p>Loadable Module Support -> Module unloading</p>
<p>e</p>
<p>Loadable Module Support -> Automatic kernel module unloading.</p>
<p>Depois publicarei um artigo mostrando com mais detalhes a configuraÃ§Ã£o.</p>
<p>Salve a configuraÃ§Ã£o. Agora vamos compilar.</p>
<p>A compilaÃ§Ã£o dos kernels da versÃ£o 2.6 Ã© um pouco diferente da 2.4. NÃ£o existe mais o comando make dep e tem alguns outros alvos (make help exibe as opÃ§Ãµes disponÃ­veis).</p>
<p>Vamos por partes:</p>
<p>A primeira coisa a fazer Ã© criar a imagem &#8216;bootÃ¡vel&#8217; do kernel:</p>
<p><span class="prompt">[root@host] # </span><kbd>make bzImage</kbd></p>
<p>Este comando pode demorar bastante tempo dependendo da mÃ¡quina usada. Se a sua mÃ¡quina for antiga arrume algo pra fazer pois Ã© tedioso ficar assistindo ?  compilaÃ§Ã£o.</p>
<p>ApÃ³s terminado esse comando a imagem do kernel gerada Ã© gravada em /usr/src/linux/arch/i386/boot/bzImage</p>
<p>O prÃ³ximo passo Ã© compilar os mÃ³dulos (aquelas opÃ§Ãµes selecionadas como &#8216;M&#8217; na configuraÃ§Ã£o). Se vocÃª nao selecionou nada como &#8216;M&#8217; (o que nÃ£o Ã© comum), pode pular essa parte.</p>
<p><span class="prompt">[root@host] # </span><kbd>make modules</kbd></p>
<p>E agora instale os mÃ³dulos criados:</p>
<p><span class="prompt">[root@host] # </span><kbd>make modules_install</kbd></p>
<p>Se vocÃª nÃ£o tiver instalado o pacote module-init-tools, vai receber uma mensagem de erro ao final do make modules_install. Se isso acontecer, instale o <a class="normal" href="http://www.brunotorres.net/gnulinux/module-init-tools">module-init-tools</a> pois sem ele o kernel 2.6 nao vai funcionar.</p>
<p>Tudo certo atÃ© aqui? ParabÃ©ns, o seu kernel estÃ¡ compilado. Vamos agora configurar o nosso sistema para poder &#8216;bootar&#8217; este novo kernel.</p>
<p>Copie os arquivos de imagem, configuraÃ§Ã£o e o System.map para /boot</p>
<p><span class="prompt">[root@host] # </span><kbd>cp /usr/src/linux/arch/i386/boot/bzImage<br />
 /boot/vmlinuz-2.6.4</kbd></p>
<p><span class="prompt">[root@host] # </span><kbd>cp /usr/src/linux/.config /boot/config-2.6.4</kbd></p>
<p><span class="prompt">[root@host] # </span><kbd>cp /usr/src/linux/System.map /boot/System.map-2.6.4</kbd></p>
<p>Vamos configurar agora o gerenciador de boot para usar esse novo kernel. Ã‰ importante que vocÃª mantenha a versÃ£o antiga do kernel intocada para poder inicializar o linux em caso de erros no kernel novo.</p>
<p>Se vocÃª usa o <acronym title="LInux LOader">LILO</acronym>, edite o arquivo /etc/lilo.conf com o seu editor de textos preferido.</p>
<p>Saiba qual a partiÃ§Ã£o onde seu linux estÃ¡ instalado. Ã‰ algo como /dev/hdax, onde x Ã© um nÃºmero. Olhe no lilo.conf na parte referente ao outro kernel e use a mesma partiÃ§Ã£o na nova configuraÃ§Ã£o. Vou usar /dev/hda2 como referÃªncia:</p>
<p>A configuraÃ§Ã£o ficarÃ¡ assim:</p>
<p>
<pre>image /boot/vmlinuz-2.6.4
    root=/dev/hda2
    label=Linux-2.6.4
    read-only</pre>
</p>
<p>Salve o arquivo e execute o comando /sbin/lilo para gravar a nova configuraÃ§Ã£o</p>
<p><span class="prompt">[root@host] # </span><kbd>/sbin/lilo</kbd></p>
<p>Se o seu gerenciador de boot Ã© o <acronym title="GRand Unified Bootloader">GRUB</acronym>, edite o arquivo /boot/grub/grub.conf ou /boot/grub/menu.lst. Veja qual a partiÃ§Ã£o onde seu linux estÃ¡ instalado. O GRUB usa uma configuraÃ§Ã£o um pouco diferente, do tipo (hdx,y), onde x Ã© a interface IDE e o y Ã© o numero da partiÃ§Ã£o. Neste caso /dev/hda2 = (hd0,1). Vou usar /dev/hda2 como exemplo mas lembre-se de trocar para a partiÃ§Ã£o que vocÃª usa.</p>
<p>A entrada no arquivo ficarÃ¡ assim:</p>
<p>title Linux-2.6.4</p>
<p>root (hd0,1)</p>
<p>kernel /boot/vmlinuz-2.6.4 root=/dev/hda2 ro</p>
<p>Salve o arquivo e pronto. O GRUB nao necessita que seja rodado nenhum comando apos a alteraÃ§Ã£o.</p>
<p>Para quem deseja usar o gcc-2.95 para compilar o kernel:</p>
<p>Se vc usa normalmente o gcc versÃ£o 3.2 ou 3.3 mas deseja compilar o kernel com o 2.95 seguindo as recomendaÃ§Ãµes da documentaÃ§Ã£o, faÃ§a o seguinte:</p>
<p>Instale o <a class="normal" href="http://gcc.gnu.org/gcc-2.95/">gcc-2.95</a>.  Vamos assumir que ele seja instalado em /usr/bin/gcc-2.95, substitua pelo local correto da sua instalaÃ§Ã£o.</p>
<p>Para usÃ¡-lo para compilar o kernel, basta passar o parametro &#8216;CC&#8217; para o make, assim:</p>
<p> <span class="prompt">[root@host] # </span><kbd>make CC=/usr/bin/gcc-2.95 bzImage</kbd></p>
<p><span class="prompt">[root@host] # </span><kbd>make CC=/usr/bin/gcc-2.95 modules</kbd></p>
<p><span class="prompt">[root@host] # </span><kbd>make CC=/usr/bin/gcc-2.95 modules_install</kbd></p>
<p>Espero ter sido claro na minha explicaÃ§Ã£o.</p>
<div id="crp_related"><h3>Leia tambÃ©m:</h3><ul><li><a href="http://brunotorres.net/module-init-tools" rel="bookmark" class="crp_title">module-init-tools</a></li><li><a href="http://brunotorres.net/velox-linux" rel="bookmark" class="crp_title">Velox no Linux</a></li><li><a href="http://brunotorres.net/montar-ntfs-linux" rel="bookmark" class="crp_title">Como montar partiÃ§Ãµes NTFS no linux</a></li><li><a href="http://brunotorres.net/driver-ati-linux" rel="bookmark" class="crp_title">Driver de vÃ­deo da ATI &#8211; InstalaÃ§Ã£o</a></li><li><a href="http://brunotorres.net/compilar-programas" rel="bookmark" class="crp_title">Como compilar programas a partir do cÃ³digo fonte</a></li><li><a href="http://brunotorres.net/links" rel="bookmark" class="crp_title">Entendendo os links e links simbÃ³licos</a></li><li><a href="http://brunotorres.net/compilar-kernel-24" rel="bookmark" class="crp_title">Compilando o kernel do linux</a></li><li><a href="http://brunotorres.net/pipes-redirecionamentos" rel="bookmark" class="crp_title">Usando pipes e redirecionamentos no linux</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://brunotorres.net/compilar-kernel26/feed</wfw:commentRss>
		<slash:comments>35</slash:comments>
		</item>
		<item>
		<title>Compilando o kernel do linux</title>
		<link>http://brunotorres.net/compilar-kernel-24</link>
		<comments>http://brunotorres.net/compilar-kernel-24#comments</comments>
		<pubDate>Mon, 08 Mar 2004 04:25:53 +0000</pubDate>
		<dc:creator>Bruno Torres</dc:creator>
				<category><![CDATA[compilation]]></category>
		<category><![CDATA[gcc]]></category>
		<category><![CDATA[gnulinux]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[make]]></category>

		<guid isPermaLink="false"></guid>
		<description><![CDATA[Este Ã© um artigo que publiquei hÃ¡ um tempo no linuxdicas ensinando como compilar o kernel do linux. O artigo vale apenas para as versÃµes 2.4 do kernel do linux, mas como ainda Ã© bastante comum usar essa versÃ£o, vale a pena dar uma conferida. Em breve publicarei um artigo atualizado para a versÃ£o 2.6. [...]]]></description>
			<content:encoded><![CDATA[<p>Este Ã© um artigo que publiquei hÃ¡ um tempo no <a class="normal" href="http://www.linuxdicas.com.br">linuxdicas</a> ensinando como compilar o kernel do linux.<!--<a id="gotocontentlink" href="#post-content">Pular anúncios</a>--><div class="adpostsearch">
<div>
<script type="text/javascript"><!--
google_ad_client = "pub-6502782542223555";
/* adPostSearch */
google_ad_slot = "4051981144";
google_ad_width = 336;
google_ad_height = 280;
//-->
</script>
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div></div><!--<a name="post-content"></a>-->

<p>O artigo vale apenas para as versÃµes 2.4 do  <a class="normal" href="http://www.kernel.org">kernel</a> do linux, mas como ainda Ã© bastante comum usar essa versÃ£o, vale a pena dar uma conferida.<br />
Em breve publicarei um artigo atualizado para a versÃ£o 2.6.<br />
Por enquanto confira este <a href="http://www.linuxdicas.com.br/article226.html">artigo</a> e boa compilaÃ§Ã£o!</p>
<div id="crp_related"><h3>Leia tambÃ©m:</h3><ul><li><a href="http://brunotorres.net/module-init-tools" rel="bookmark" class="crp_title">module-init-tools</a></li><li><a href="http://brunotorres.net/rss-kernel" rel="bookmark" class="crp_title">RSS com as versÃµes mais atuais do kernel do linux</a></li><li><a href="http://brunotorres.net/compilar-kernel26" rel="bookmark" class="crp_title">Como compilar o kernel 2.6</a></li><li><a href="http://brunotorres.net/montar-ntfs-linux" rel="bookmark" class="crp_title">Como montar partiÃ§Ãµes NTFS no linux</a></li><li><a href="http://brunotorres.net/velox-linux" rel="bookmark" class="crp_title">Velox no Linux</a></li><li><a href="http://brunotorres.net/compilar-programas" rel="bookmark" class="crp_title">Como compilar programas a partir do cÃ³digo fonte</a></li><li><a href="http://brunotorres.net/tabelas-estilo-zebra" rel="bookmark" class="crp_title">Tabelas estilo &#8220;zebra&#8221;</a></li><li><a href="http://brunotorres.net/saiu-debian-sarge" rel="bookmark" class="crp_title">Saiu o Sarge, nova versÃ£o do Debian GNU/Linux</a></li></ul></div>]]></content:encoded>
			<wfw:commentRss>http://brunotorres.net/compilar-kernel-24/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

