<?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>SIMOTRONE WEB PAGE &#187; kernel</title>
	<atom:link href="http://www.simotrone.it/tag/kernel/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.simotrone.it</link>
	<description>Simotrone is always here!</description>
	<lastBuildDate>Sat, 04 Feb 2012 18:30:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1</generator>
		<item>
		<title>Cross compiling</title>
		<link>http://www.simotrone.it/2010/09/15/cross-compiling/</link>
		<comments>http://www.simotrone.it/2010/09/15/cross-compiling/#comments</comments>
		<pubDate>Wed, 15 Sep 2010 05:26:58 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[compilare]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=3049</guid>
		<description><![CDATA[Compilando il kernel per gli e3pc su H che si fa prima. Specifichiamo l&#8217;architettura: sim@idrogeno:/usr/src/linux-2.6.35.4$ ARCH=i386 make E diciamo dove vogliamo lib e kernel (e config). sim@idrogeno:/usr/src/linux-2.6.35.4$ INSTALL_MOD_PATH=/home/sim/storage/e3pc/ make modules_install sim@idrogeno:/usr/src/linux-2.6.35.4$ INSTALL_PATH=/home/sim/storage/e3pc/ make install Poi rsync e via.]]></description>
			<content:encoded><![CDATA[<p>Compilando il kernel per gli e3pc su H che si fa prima.</p>
<p>Specifichiamo l&#8217;architettura:</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">sim@idrogeno:/usr/src/linux<span class="nu0">-2.6</span><span class="nu0">.35</span><span class="nu0">.4</span>$ <span class="re2">ARCH=</span>i386 <span class="kw2">make</span></div>
</div>
<p>E diciamo dove vogliamo lib e kernel (e config).</p>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">sim@idrogeno:/usr/src/linux<span class="nu0">-2.6</span><span class="nu0">.35</span><span class="nu0">.4</span>$ <span class="re2">INSTALL_MOD_PATH=</span>/home/sim/storage/e3pc/ <span class="kw2">make</span> modules_install</div>
</div>
<div class="codesnip-container" >
<div class="codesnip" style="font-family: monospace;">sim@idrogeno:/usr/src/linux<span class="nu0">-2.6</span><span class="nu0">.35</span><span class="nu0">.4</span>$ <span class="re2">INSTALL_PATH=</span>/home/sim/storage/e3pc/ <span class="kw2">make</span> <span class="kw2">install</span></div>
</div>
<p>Poi rsync e via.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2010/09/15/cross-compiling/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kernel e lilo</title>
		<link>http://www.simotrone.it/2009/09/08/kernel-e-lilo/</link>
		<comments>http://www.simotrone.it/2009/09/08/kernel-e-lilo/#comments</comments>
		<pubDate>Tue, 08 Sep 2009 05:00:25 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[2.6.30]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[lilo]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[make]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=2204</guid>
		<description><![CDATA[Sto pistolando su un kernel per l&#8217;e3pc (così, per provare il nuovo 2.6.30). Fra me è Sua Maestà il K non c&#8217;è ancora quello che definirei un ottimo rapporto, ma suppongo che alla lunga impareremo a conoscerci (o meglio, IO, umile padawan, troverò un modo per farmi capire a S.M.). Ci sono un sacco di [...]]]></description>
			<content:encoded><![CDATA[<p>Sto pistolando su un kernel per l&#8217;e3pc (così, per provare il nuovo 2.6.30).<br />
Fra me è Sua Maestà il K non c&#8217;è ancora quello che definirei un ottimo rapporto, ma suppongo che alla lunga impareremo a conoscerci (o meglio, IO, umile padawan, troverò un modo per farmi capire a S.M.).</p>
<p>Ci sono un sacco di guide sul web, e come sempre tirare le somme in maniera organica non è banale.<br />
Una lista di comandi come segue SENZA spiegato che significa non ha senso (imho).</p>
<blockquote><p>make clean<br />
$ make dep<br />
$ make bzImage<br />
$ make modules<br />
# make modules_install</p></blockquote>
<p>Una scaletta un po&#8217; più seria (ma sicuramente da perfezionare):<br />
* prendete il kernel nuovo (<a href="http://www.kernel.org/">kernel.org</a>)</p>
<p>* mettete sotto <strong>/usr/src/</strong> e scompattate</p>
<p>* il kernel viene &#8220;partorito&#8221; da una compilazione con <strong># make</strong>. Make si appoggia ad un <strong>Makefile</strong> che si appoggia a sua volta ad un file testuale di configurazione (<strong>.config</strong> nella dir dove ci stanno i sorgenti).</p>
<p>* Si può cambiare qualche aspetto importante andando a modificare le variabili dentro il Makefile (quelle in stampatello all&#8217;inizio). Per esempio:</p>
<pre>VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 29
EXTRAVERSION = .1
NAME = Temporary Tasmanian Devil</pre>
<p>Modificare EXTRAVERSION può risultare molto utile, poichè in <strong>/lib/modules/</strong> vengono caricati i moduli necessari al kernel all&#8217;avvio, e la stringa che forma la dir concatena anche quel parametro (insomma, si possono tenere separati i vari moduli di versione in versione).</p>
<p>* L&#8217;operazione di configurazione del kernel è <strong>fondamentale</strong>, e io la realizzo con un comando: <strong>$ make menuconfig</strong><br />
NOTA: Io uso menu config perchè mi è comodo e usa le solite interfacce coloratine da terminale figlie di ncurses. Ovviamente esistono altre opzioni: dal più testuale config, ai grafici xconfig e gconfig (mai usati, ma sono certo siano esteticamente validi e ugualmente efficaci). Se si vuole caricare una configurazione vecchia (ie: esiste già un .config precedentemente redatto) si puo&#8217; usare il comando<strong> $ make oldconfig</strong>.<br />
NOTA2: Ci sono anche alcune opzioni per creare file .config con caratteristiche standard: <strong>$ make allnoconfig</strong>, <strong>$make allyesconfig</strong>, ecc. Per ulteriori info, leggere il README.</p>
<p>* Dopo aver create il .config, con <strong>$ make</strong> si compila il kernel vero e proprio (che comparirà magicamente sotto arch/x86/boot/bzImage .<br />
ATTENZIONE: basta scrivere $ make per ottenere ciò che in molte guide e&#8217; indicato come $ make dep, $ make bzImage, $ make modules. Insomma, il tutto si è evoluto, e non c&#8217;è più necessità di indicare che è necessario compilare le dipendenze (dep), l&#8217;immagine (bzImage, big compressed image) e i moduli; make già sa, e basta e avanza.<br />
NOTA: Se si vuole avere più output con make, si può dare il comando $ make V=1 (o 2).</p>
<p>* Se si è configurato il kernel in maniera monolitica (cioè all-in-one), si deve spostare il tutto sotto /boot e via. Nel caso si siano indicati dei moduli, bisogna compilarli. il comando è <strong># make modules_install</strong> e, come si evince facilmente, installa i moduli del kernel nel <em>filesystem</em> (sotto /lib/modules/linux-2.x.x.EXTRAVERSION-XXXX).</p>
<p>* Si potrebbe dare anche <strong>$ make install</strong> per installare il kernel compilato nel posto giusto, ma io non mi fido e lo copio a mano (ie: # cp /usr/src/linux-2.xx.xx/arch/x86/boot/bzImage /boot/kernel-2.xx.xx).<br />
NOTA: <strong>$ make install</strong> si basa su <strong>/sbin/installkernel</strong> che viene lanciato da arch/x86/boot/install.sh coi parametri estrapolati dallo script.</p>
<p><strong>system.map</strong> è una mappa di simboli utile al kernel che viene caricata all&#8217;avvio, ma <strong>non</strong> necessaria.</p>
<p>* Nel caso le cose vadano storte (e ci andranno, <em>of course</em>), è necessario ripulire i sorgenti appena compilati e tornare alla situazione iniziale. Soluzione stupida: cancellare tutto e scompattare l&#8217;archivio. Soluzione migliore: usare i comandi di make. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Come si legge nel Makefile:</p>
<pre># Cleaning is done on three levels.
# make clean     Delete most generated files
#                Leave enough to build external modules
# make mrproper  Delete the current configuration, and all generated files
# make distclean Remove editor backup files, patch leftover files and the like</pre>
<p>Di solito sono sufficienti i primi due: se si vuole tenere la configurazione, si lancia <strong>$ make clean</strong>; se si vuole cancellare tutto <strong>$ make mrproper</strong>.</p>
<p>In qualunque caso, ci vengono in aiuto il file README, il Makefile (si puo&#8217; leggere, davvero!) e <strong>$ make help</strong> (le info di cosa puo&#8217; fare il makefile, che forse è meglio che leggere il codice del Makefile. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_razz.gif' alt=':-P' class='wp-smiley' />  ).<br />
Esiste anche la dir <strong>Documentation/</strong> che tiene tante di quelle info da uscirne scoppiati (cominciare dal file <strong>HOWTO</strong>).</p>
<p>Visto che ultimamente ho <em>smandruppato</em> con <a href="http://www.slackware.com">slackware</a> m&#8217;è toccato guardare un po&#8217; <strong>LILO</strong> (LInux LOader). Preferisco GRUB, ma vabbè.<br />
Dunque, lilo è l&#8217;altro (il primo) bootloader. A differenza di grub che si legge il file di configurazione <strong>menu.lst</strong> e questo gli basta, lilo necessita di un file di configurazione <strong>/etc/lilo.conf</strong> (che è molto semplice ed intuitivo da capire) e di una compilazione per essere a posto.<br />
La compilazione la si ottiene dando il comando <strong># lilo</strong>. Se si vuole fare un test (imho fondamentale), meglio postporre al comando il flag <strong>-t</strong>. Il flag <strong>-v</strong> aumenta la verbosità, ovviamente.</p>
<p>Un link da esplorare: <a href="http://kernelnewbies.org/">kernel niubbi</a>.</p>
<p>Robba (vecchia) da leggere:<br />
<a href="http://www.thomashertweck.de/kernel26i.html">Configurare, compilare e installare un kernel 2.6 per (open)SUSE Linux</a> di Thomas Hertweck (2006)<br />
<a href="http://www.pluto.it/files/ildp/HOWTO/KernelAnalysis-HOWTO/KernelAnalysis-HOWTO.html">KernelAnalysis-HOWTO</a> di Roberto Arcomano (2003)<br />
<a href="http://mirrors.kernel.org/LDP/HOWTO/Installation-HOWTO/">The Linux Installation HOWTO</a> di Eric Steven Raymond (2002)</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/09/08/kernel-e-lilo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Slackware su neon</title>
		<link>http://www.simotrone.it/2009/08/30/slackware-su-neon/</link>
		<comments>http://www.simotrone.it/2009/08/30/slackware-su-neon/#comments</comments>
		<pubDate>Sun, 30 Aug 2009 05:25:41 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[2.6.30]]></category>
		<category><![CDATA[e3pc]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[neon]]></category>
		<category><![CDATA[route]]></category>
		<category><![CDATA[slackware]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=2218</guid>
		<description><![CDATA[Ho messo su neon una Slackware (12.2, il 27/8 è uscita la 13). Ho aggiornato il kernel alla versione 2.6.30, e questa è la mia attuale configurazione (ancora da limare, ma c&#8217;è un sacco della roba che conta) &#8211; boota in pochi secondi. Sistemate le rotte (# route add default gw ip_gateway eth0) lynx si [...]]]></description>
			<content:encoded><![CDATA[<p>Ho messo su neon una <a href="http://www.slackware.com/">Slackware</a> (12.2, il 27/8 è uscita la 13).<br />
Ho aggiornato il kernel alla versione 2.6.30, e questa è la mia <a href="/wp-content/e3pc/config-2.6.30.10-e3pc.txt">attuale configurazione</a> (ancora da limare, ma c&#8217;è un sacco della roba che conta) &#8211; boota in pochi secondi.</p>
<p>Sistemate le rotte (<strong># route add default gw ip_gateway eth0</strong>) <a href="http://lynx.isc.org/">lynx</a> si è collegato senza problemi a google e al blog, e mi sono ascoltato un mp3 con <a href="http://mpg321.sourceforge.net/">mpg321</a> (lol) senza problemi (ho dovuto comunque installarmi la libreria <strong>libid3tag.so</strong> che m&#8217;era sfuggita).</p>
<p>Anche se è tutto molto rude, mi sento assai a mio agio. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Vedremo come procede.</p>
<p>(Intanto mi <a href="http://www.array.org/ubuntu/index.html">linko</a> un sito che sull&#8217;e3pc si è sbattuto un casino &#8211; come distro ha scelto ubuntu)</p>
<p>PS: L&#8217;installazione della slack è stata assai liscia: si prepara una chiavetta per il boot e un&#8217;altra dove si mette tutta la distro. Quando si arriva all&#8217;indicazione del source dei pacchetti, si installa la chiavetta e si fa puntare lì il setup, ed il gioco è fatto.</p>
<p>L&#8217;immagine per la chiavetta di boot la si puo&#8217; trovare sul sito slack sotto <a href="ftp://ftp.unina.it/pub/linux/distributions/slackware/slackware-current/usb-and-pxe-installers/">slackware-current/usb-and-pxe-installers</a>. (Il readme dice una cosa importante: <em>The mini image does not contain any installable Slackware package.  In order to install Slackware you will need a local NFS/HTTP/FTP server or another Slackware package source like a prepared local harddisk partition.</em>).</p>
<pre>idrogeno:~# dd if=/home/sim/distro/slack/usbboot.img.1 of=/dev/sdc bs=512
54480+0 records in
54480+0 records out
27893760 bytes (28 MB) copied, 9.14268 s, 3.1 MB/s</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/08/30/slackware-su-neon/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Kernel + iptables</title>
		<link>http://www.simotrone.it/2009/05/04/kernel-iptables/</link>
		<comments>http://www.simotrone.it/2009/05/04/kernel-iptables/#comments</comments>
		<pubDate>Mon, 04 May 2009 06:25:12 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[iptables]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=1843</guid>
		<description><![CDATA[Dopo aver ricompilato il kernel di H avevo qualche problema a far girare iptables come volevo. Essenzialmente Sua Maestà il K non mi prendeva la (fondamentale) riga che gestisce le connessioni già attive. $IPT -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT Poiché il firewall è in effetti gestito a livello di kernel, [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo aver ricompilato il kernel di H avevo qualche problema a far girare <strong>iptables</strong> come volevo.</p>
<p>Essenzialmente Sua Maestà il K non mi prendeva la (fondamentale) riga che gestisce le connessioni già attive.</p>
<pre>$IPT -A INPUT -i eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT</pre>
<p>Poiché il firewall è in effetti gestito a livello di kernel, e l&#8217;errore era su uno stato specifico (<strong>-m state</strong>) era chiaro che m&#8217;ero dimenticato di includere un modulo&#8230; sic.</p>
<p>La prossima volta, meglio ricordarsi di inserire lo <strong>state match support</strong> sotto <strong>Core Netfilter Configuration</strong> (<strong>CONFIG_NETFILTER_XT_MATCH_STATE</strong>).<br />
<span id="more-1843"></span><br />
La diff fra le due configurazioni (ho aggiunto un paio di altre cose, in effetti):</p>
<pre>&lt;pre&gt;idrogeno:/boot# diff config-2.6.29-H-090430 /usr/src/linux/.config
4c4
&lt; # Thu Apr 30 21:03:34 2009
---
&gt; # Sun May  3 14:15:51 2009
62c62
&lt; CONFIG_LOCALVERSION="-H-090430-02"
---
&gt; CONFIG_LOCALVERSION="-H-090430-04"
436c436
&lt; # CONFIG_NETFILTER_XT_MATCH_COMMENT is not set
---
&gt; CONFIG_NETFILTER_XT_MATCH_COMMENT=m
445,446c445,446
&lt; # CONFIG_NETFILTER_XT_MATCH_HELPER is not set
&lt; # CONFIG_NETFILTER_XT_MATCH_IPRANGE is not set
---
&gt; CONFIG_NETFILTER_XT_MATCH_HELPER=m
&gt; CONFIG_NETFILTER_XT_MATCH_IPRANGE=m
459c459
&lt; # CONFIG_NETFILTER_XT_MATCH_STATE is not set
---
&gt; CONFIG_NETFILTER_XT_MATCH_STATE=m
463c463
&lt; # CONFIG_NETFILTER_XT_MATCH_TIME is not set
---
&gt; CONFIG_NETFILTER_XT_MATCH_TIME=m</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2009/05/04/kernel-iptables/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Quando la eth si impagliaccia&#8230;</title>
		<link>http://www.simotrone.it/2008/11/13/bella-cosa-la-scheda-eth-standard/</link>
		<comments>http://www.simotrone.it/2008/11/13/bella-cosa-la-scheda-eth-standard/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 09:17:39 +0000</pubDate>
		<dc:creator>Simotrone</dc:creator>
				<category><![CDATA[Binary People]]></category>
		<category><![CDATA[eth]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[lspci]]></category>
		<category><![CDATA[schede di rete]]></category>

		<guid isPermaLink="false">http://www.simotrone.it/?p=922</guid>
		<description><![CDATA[Dopo qualche casino col kernel e moduli vari, la scheda eth della mobo di kripton si è incasinata e m&#8217;è toccato passare alla Realtek (sempre due schede eth in tasca, sempre!) che non mi delude mai. Ma è bello avere TUTTO l&#8217;hardware funzionante sulla propria box. Quindi solita ricerca a partire da: kripton:~# lspci -nn [...]]]></description>
			<content:encoded><![CDATA[<p>Dopo qualche casino col kernel e moduli vari, la scheda eth della mobo di kripton si è incasinata e m&#8217;è toccato passare alla Realtek (sempre due schede eth in tasca, sempre!) che non mi delude mai.</p>
<p>Ma è bello avere TUTTO l&#8217;hardware funzionante sulla propria box. Quindi solita ricerca a partire da:</p>
<blockquote><p>kripton:~# lspci -nn | grep Eth<br />
00:07.0 Bridge [0680]: nVidia Corporation MCP61 Ethernet [10de:03ef] (rev a2)<br />
01:09.0 Ethernet controller [0200]: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ [10ec:8139] (rev 10)
</p></blockquote>
<p><a href="http://listing.driveragent.com/pci/10de/03ef/104381f7?PHPSESSID=5p1r6v77dafpme5alvf0j3pb60">10de:03ef devices &#8211; nForce 430 (MCP61) Ethernet [ASUSTeK Computer Inc]</a><br />
Ok, i moduli ci sono, dovrebbe fungere tutto. Che cavolo ha sta mobo maledetta? O_o</p>
<p>In <strong>/etc/udev/rules.d/70-persistent-net.rules</strong> c&#8217;e&#8217; l&#8217;associazione fra la scheda e il suo mac address che la individua. E qui vedo la stranezza: due identificazioni per la stessa scheda eth (quella della mobo con chipset nVidia)&#8230; mmm.<br />
Commento le righe che mi sembrano spaiate e scrivo il mac address giusto nella eth0.<br />
[NdSim: <a href="http://www.simotrone.it/2007/10/01/etcudev-e-mac-address/">Avevo già parlato di quel file</a> tempo addietro. Maledetto.]</p>
<p>Rendo buone queste modifiche con </p>
<blockquote><p><strong># /etc/init.d/udev restart</strong></p></blockquote>
<p>Abbatto il modulo che gestisce la scheda eth (<strong>forcedeth</strong>, e c&#8217;e&#8217; scritto anche nel file 70-persistent-net.rules)  con <strong>modprobe -r forcedeth</strong>, e poi lo rimetto up (<strong>modprobe forcedeth</strong>).</p>
<p>Infine con un bell&#8217;<strong>ifconfig -a</strong>. posso constatare che è tutto tornato in ordine: eth0 e 1 sono up. <img src='http://www.simotrone.it/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  Mittico.<br />
Anche questa <em>impagliacciata</em> è stata risolta.</p>
<hr/>
Uno strumento per interrogare le proprie schede ethernet è <a href="http://sourceforge.net/projects/gkernel/">ethtool</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.simotrone.it/2008/11/13/bella-cosa-la-scheda-eth-standard/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

