<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>i386 &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/i386/</link>
	<description>Feed of posts on WordPress.com tagged "i386"</description>
	<pubDate>Sat, 11 Oct 2008 12:43:22 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Atheros AR242x / 5007EG en Ubuntu Hardy &amp; Intrepid 32 bits]]></title>
<link>http://trescuartos.wordpress.com/?p=37</link>
<pubDate>Thu, 09 Oct 2008 02:02:44 +0000</pubDate>
<dc:creator>sonycrocket</dc:creator>
<guid>http://trescuartos.es.wordpress.com/2008/10/09/atheros-ar242x-5007eg-en-ubuntu-hardy-intrepid-32-bits/</guid>
<description><![CDATA[
Debido a la gran cantidad de personas que se han colgado con el driver de MadWifi para las tarjetas]]></description>
<content:encoded><![CDATA[<p style="text-align:center;"><a href="http://trescuartos.wordpress.com/files/2008/09/atheros.jpg"><img class="alignnone size-full wp-image-18" title="atheros" src="http://trescuartos.wordpress.com/files/2008/09/atheros.jpg" alt="" width="203" height="200" /></a></p>
<p>Debido a la gran cantidad de personas que se han colgado con el driver de <strong>MadWifi </strong>para las tarjetas Atheros que hoy por hoy son muy comunes. Decidí hacer esta guia para usuarios de <strong>Ubuntu 32Bits</strong> ( i386, i586, i686) funciona tanto como para <strong>Hardy Heron 8.04</strong> como para <strong>Intrepid Ibex 8.10</strong></p>
<p>Si usted tiene Ubuntu de 64Bits, haga <a href="http://trescuartos.wordpress.com/2008/09/26/atheros-ar242x-5007eg-en-ubuntu-hardy-64-bits/">click aqui</a></p>
<p><strong>1 - Instalar lo necesario desde la Terminal<br />
</strong></p>
<p>$sudo apt-get install build-essential linux-restricted-modules-$(uname -r)</p>
<p><strong>2 - Sacar el modulo ndiswrapper </strong>(por las dudas)</p>
<p>$sudo nano /etc/modprobe.d/blacklist</p>
<p>y agregar al final del archivo:  blacklist ndiswrapper</p>
<p>Ahora solo resta sacar los drivers del Restricted Hardware Drivers de Ubuntu:</p>
<p>Van a Sistema -&#62;Administracion -&#62;Hardware Drivers  o Controlador de Drivers Restringidos</p>
<p>(Ubuntu lo tengo en ingles, pero creo que es facil de darse cuenta. El icono es una placa de circuitos con un candado <img class="wp-smiley" src="http://s.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif" alt="-D" /> )</p>
<p>Ahi en el programa deshabilitan  Atheros Wireless Driver (ath_pci) y Atheros Hal (ath_hal)  … los tienen que desmarcar y aceptar los cambios.</p>
<p><strong>3 - Instalar el driver madwifi para Atheros desde el snapshot usando la Terminal<br />
</strong></p>
<p>$wget http://snapshots.madwifi.org/madwifi-hal-0.10.5.6/madwifi-hal-0.10.5.6-<a class="changeset" title="3832 from trunk." href="http://madwifi.org/changeset/3835">r3835</a>-20080801.tar.gz</p>
<p>$tar -zxvf madwifi-hal-0.10.5.6-<a class="changeset" title="3832 from trunk." href="http://madwifi.org/changeset/3835">r3835</a>-20080801.tar.gz<br />
$cd madwifi-hal-0.10.5.6-<a class="changeset" title="3832 from trunk." href="http://madwifi.org/changeset/3835">r3835</a>-20080801<br />
$sudo make<br />
$sudo make install<br />
$sudo modprobe ath_pci<br />
$sudo modprobe ath_hal</p>
<p>Y finalmente agregan el modulo para que cargue al inicio del sistema</p>
<p>$sudo nano /etc/modules</p>
<p>y al final ponen:  ath_pci</p>
<p>Reiniciar y listo!</p>
<p>Advertencia: si cambia la version del Kernel deberá recompilar el driver , paso numero <strong>3</strong></p>
<p>En Intrepid Ibex no es necesario esto último :-)</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Comenzando con Kubuntu 8.04 con kde3.5]]></title>
<link>http://xifx.wordpress.com/?p=8</link>
<pubDate>Sun, 14 Sep 2008 02:42:24 +0000</pubDate>
<dc:creator>infiernox</dc:creator>
<guid>http://xifx.es.wordpress.com/2008/09/13/comenzando-con-kubuntu-804-con-kde35/</guid>
<description><![CDATA[Al instalar Kubuntu uno de inmediato trata de moverse en el sistema, investigando y ver como funcion]]></description>
<content:encoded><![CDATA[<p>Al instalar <a href="http://www.kubuntu.com">Kubuntu</a> uno de inmediato trata de moverse en el sistema, investigando y ver como funciona un sistema operativo que es distinto a windows....</p>
<p>Al menos a mi me costo bastante ya que tuve unas clases donde me enseñaban a utilizar la consola pero no entendi casi nada por lo que opte por instalarlo en mi computador para probar como era realmente. El resultado no se hizo esperar y me encanto este sistema operativo (desde entonces lo uso y ahora mismo les escribo desde este)...</p>
<p>Pero vamos al grano:</p>
<p>Tenemos recien instalado el kubuntu... lo primero que debemos hacer es ver la forma de conectarnos a internet...</p>
<p><strong>RED</strong></p>
<p>Lo más facil y lo que recomiendo es irnos directamente al menu K (es como el boton Inicio de windows), ahi buscamos "Configuración del sistema" y encontramos muchos iconos utiles con los cuales podemos modificar nuestro kubuntu....vamos a configuraciones de red y deberiamos encontrarnos con la tarjeta de red...</p>
<p>Ahi tendremos que editar la cuestiones basicas si es que tenemos una direccion ip estatica si estamos en una lan.. en caso no estarlo no tenemos que modificar nada.</p>
<p><a href="http://xifx.wordpress.com/files/2008/09/red.png"><img class="alignnone size-medium wp-image-11" title="red" src="http://xifx.wordpress.com/files/2008/09/red.png?w=300" alt="" width="300" height="187" /></a><br />
Ahora si estamos conectados via coneccion Adsl debemos conectarnos a traves de coneccion PPPoE que debe hacerse a traves del siguiente comando en consola:</p>
<blockquote><p>$ sudo pppoe</p></blockquote>
<p><a href="http://xifx.wordpress.com/files/2008/09/pppoe.png"><img class="alignnone size-medium wp-image-10" title="pppoe" src="http://xifx.wordpress.com/files/2008/09/pppoe.png?w=300" alt="" width="300" height="187" /></a></p>
<p>Seguir las instrucciones del instalador y estariamos con internet.</p>
<p><strong>DRIVERS DE VIDEO NVIDIA/ATI</strong></p>
<p>Hay varias manera de instalar los drivers de video, ahora explicare la mas sencilla para ambas tarjetas de video.</p>
<p><em>ENVYNG<br />
</em></p>
<p>La instalacion de este es bastante sencilla y facil... accedemos a la consola e ingresamos lo siguiente.</p>
<blockquote><p>sudo apt-get install envyng-core envyng-qt</p></blockquote>
<p>y luego en el Menu K/Sistema buscamos:</p>
<p>EnvyNG</p>
<p><a href="http://xifx.wordpress.com/files/2008/09/envyng.png"><img class="alignnone size-medium wp-image-12" title="envyng" src="http://xifx.wordpress.com/files/2008/09/envyng.png?w=300" alt="" width="300" height="187" /></a></p>
<p>Luego de haberlo instalado ya tenemos el menu grafico y ponemos la primera opcion tanto para nvidia o ati, luego de reiniciar tendremos los drivers graficos.</p>
<p><strong>GESTOR ADEPT</strong></p>
<p>Como se habran dado cuenta existe en Menu K/Sistema este programa, lo que primero vemos al abrirlo es que es muy util a la hora de instalar paquetes de manera grafica, más lenta pero podemos ver lo que vamos a instalar y tener una pequeña descripcion de estos.</p>
<p>con este podemos instalar... elfirefox (buscar firefox xd)</p>
<p>el mozilla thunderbird (buscar thunderbird xd)</p>
<p>etc etc... lo que se te ocurra probablemente pueda estar en el repositorio.</p>
<p><strong>CODECS y MULTIMEDIA</strong></p>
<p>Para instalar los codecs propios de windows y que no son propiamente gratuitos instalaremos los del repositorio de Medibuntu...</p>
<p>para ello en la consola pondremos:</p>
<blockquote>
<pre>$ sudo wget http://www.medibuntu.org/sources.list.d/hardy.list -O /etc/apt/sources.list.d/medibuntu.list</pre>
</blockquote>
<p>y luego hay que poner la llave:</p>
<blockquote>
<pre>sudo apt-get update &#38;&#38; sudo apt-get install medibuntu-keyring &#38;&#38; sudo apt-get update</pre>
</blockquote>
<p>Asi ya tenemos en el repositorio todos los codecs pero para tener realmente instalados los codecs debemos hacer lo siguiente</p>
<blockquote>
<pre>$ sudo apt-get install libdvdcss2
$ sudo apt-get install w32codecs</pre>
</blockquote>
<p>asi ya tenemos los drivers de video y los de dvd instalados....</p>
<p>Algunos reproductores recomendados que ya vienen en los repositorios y pueden ser agregados con el Gestor Adept son:</p>
<p>Amarok (en Kubuntu ya viene)</p>
<p>VLC (Reproductor de videos y peliculas excelente)</p>
<p>Eso por ahora....y Disfruten de Kubuntu que muchas aplicaciones quedan por descubrir e ire poniendo en este blog.</p>
<p>Saludos</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Do you want to automate the installation process without using your Windows Installer CD?]]></title>
<link>http://techsupportquery.wordpress.com/?p=211</link>
<pubDate>Tue, 09 Sep 2008 14:58:53 +0000</pubDate>
<dc:creator>Marlon</dc:creator>
<guid>http://techsupportquery.es.wordpress.com/2008/09/09/do-you-want-to-automate-the-installation-process-without-using-your-windows-installer-cd/</guid>
<description><![CDATA[Scenario: Installation of some device drivers like the legacy hardware always asking for a Windows C]]></description>
<content:encoded><![CDATA[<p><strong><span style="text-decoration:underline;">Scenario:</span></strong> Installation of some device drivers like the legacy hardware always asking for a Windows CD Installer to be inserted into your Optical Drive for the completion of the installation process. The question is, can we automate this process; meaning we will not be using any Windows Installer. My answer is Yes, we can automate it.</p>
<p><strong><span style="text-decoration:underline;">Here's how:</span></strong></p>
<p>1. First of, you need to copy the entire folder of \i386 into your Windows Installer CD to your harddrive. I recommend putting it in your C:\ Drive.</p>
<p>2. Next, once copied we need to edit the Registry of your Windows. <strong>Note: Editting a Registry is crucial, you must backup that registry before doing some changes, and this is highly recommended.</strong></p>
<p>3. To edit, click Start, click Run then type regedit.</p>
<p>4. A Registry Editor dialog box will appear.</p>
<p>5. Next click on HKEY_LOCAL_MACHINE/SOFTWARE/MICROSOFT/WINDOWS NT/CURRENTVERSION and on the left pane, right-mouse click SourcePath then click Modify, just replace the value of the drive FROM E:\i386 where E:\ is the drive letter of your optical drive TO C:\i386 where we copied the entire folder.</p>
<p>Or you can use the Find command using the keyword "Sourcepath" and by pressing F3 to repeat the process until you reach the right Folders and descriptions.</p>
<p>That's it.</p>
<p>For more information feel free to email me at marlonmacam@aol.com</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[problems...]]></title>
<link>http://gentoomythtv.wordpress.com/?p=32</link>
<pubDate>Fri, 22 Aug 2008 16:48:13 +0000</pubDate>
<dc:creator>niko86</dc:creator>
<guid>http://gentoomythtv.es.wordpress.com/2008/08/22/problems/</guid>
<description><![CDATA[after compiling gcc and glibc, i just found out that apparently i386 is not supported anymore.  
thi]]></description>
<content:encoded><![CDATA[<p>after compiling gcc and glibc, i just found out that apparently i386 is not supported anymore.  <img class="middle" src="http://mythtvblog.datenkeller.at/rsc/smilies/icon_censored.gif" alt="XX" /><br />
this is interesting, because every packet seemed to be ok with i386 chost, only glibc complained..<br />
it might be useful to tell people that they are using a deprecated chost before they compile packets for hours....<br />
however, i changed the chost to i586 and started recompiling binutils, gcc and glibc.<br />
just follow this guide:<br />
<a href="http://www.gentoo.org/doc/en/change-chost.xml">http://www.gentoo.org/doc/en/change-chost.xml</a><br />
i am quite happy that i documented every little pitfall there is when installing gentoo on via c3 ezra cpus....<br />
if i have to reinstall some time it will be usefull.</p>
<p>as promised here is the kernel config for the epia m9000 board with everything enabled what this board supports.<br />
<a href="http://mythtvblog.datenkeller.at/media/blogs/a/c3.ezra.kernel.config.tar.gz">Download</a></p>
<p><em>update:</em><br />
after several hours of compiling, i decided to do a fresh install, which did not solve the problem as you can read in the next post.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Guida per principianti a GNU/Linux: la memoria virtuale]]></title>
<link>http://guiodic.wordpress.com/?p=299</link>
<pubDate>Sun, 10 Aug 2008 14:12:52 +0000</pubDate>
<dc:creator>guiodic</dc:creator>
<guid>http://guiodic.es.wordpress.com/2008/08/10/guida-per-principianti-a-gnulinux-la-memoria-virtuale/</guid>
<description><![CDATA[La &#39;traduzione&#39; da memoria virtuale a memoria fisica
Molti, intuitivamente, sanno a cosa ser]]></description>
<content:encoded><![CDATA[[caption id="" align="aligncenter" width="403" caption="La &#39;traduzione&#39; da memoria virtuale a memoria fisica"]<img src="http://www.cs.nyu.edu/courses/fall99/V22.0436-001/virtual-memory.png" alt="La traduzione da memoria virtuale a memoria fisica" width="403" height="437" />[/caption]
<p>Molti, intuitivamente, sanno a cosa serve lo <strong>swap</strong> con GNU/Linux. Non è, o non dovrebbe essere, un concetto nuovo per chi viene da Windows. Anche il sistema operativo della Microsoft usa un file di swap come memoria virtuale. La differenza principale è che GNU/Linux usa, di norma, una partizione separata anche se è possibile fargli usare un file su una partizione già esistente.<!--more--></p>
<p>Ma vediamo più precisamente come funziona la memoria virtuale. Supponiamo di avere 1 GB di memoria RAM e una partizione di swap anch'essa di 1 GB. Questo è quello che vedranno i programmi:</p>
<p style="text-align:center;"><img class="aligncenter size-full wp-image-300" src="http://guiodic.wordpress.com/files/2008/08/memoria_virt.png" alt="" width="290" height="68" /></p>
<p>In altre parole, per i programmi esistono 2 GB di memoria, né più, né meno. Come è vista la cosa, invece, dal processore?</p>
<p style="text-align:center;"><img class="aligncenter size-full wp-image-301" src="http://guiodic.wordpress.com/files/2008/08/screenshot1.png" alt="" width="299" height="107" /></p>
<p style="text-align:justify;">Quando un programma tenterà di accedere alla parte dei 2 GB contenuta nello swap, il processore caricherà il "pezzo" che interessa al programma nella memoria RAM, in modo del tutto trasparente all'applicazione.</p>
<p style="text-align:justify;">Esistono diverse strategie per gestire questo meccanismo. A noi basta sapere che esso è in parte hardware (ovvero gestito dal processore stesso) e in parte software. C'è quindi un programma che "sa" che la realtà è diversa (ovvero che i due GB sono in realtà uno in RAM e l'altro sul disco) e <strong>questa parte è il kernel</strong>.</p>
<p style="text-align:justify;">Il kernel, a differenza del resto dei programmi, infatti, gira in una particolare modalità del processore, chiamata <em><strong>kernel mode</strong></em> o anche, nel caso dei processori Intel dal 386 in poi (e compatibili), <em><strong>modalità protetta</strong></em>.</p>
<p style="text-align:justify;">In questa modalità il processore mette "a nudo" la realtà sottostante, mentre nello <strong>user mode</strong> crea una realtà "virtuale" (come appunto la memoria virtuale). La modalità protetta è anche quella che permette una gestione avanzata del <strong>multitasking</strong>.</p>
<p style="text-align:justify;">Appurata questa differenza, nel prossimo post spiegherò la differenza tra i <strong>kernel monolitici</strong> e i le architetture a <strong>microkernel</strong>.</p>
<p style="text-align:justify;">Intanto però vediamo quali sono i parametri interessanti per la memoria virtuale in GNU/Linux.</p>
<p style="text-align:justify;">Per prima cosa occorre dire che il kernel Linux può usare anche più di un'area di swap contemporaneamente.</p>
<p style="text-align:justify;">Supponiamo di aver creato una partizione swap con un programma come <strong>gparted</strong> e di volerla attivare. Basterà dare:</p>
<p style="text-align:justify;padding-left:30px;"><code>sudo swapon /dev/sdXY</code></p>
<p style="text-align:justify;">dove sdXY è il dispositivo associato alla partizione creata, ad esempio sda3.</p>
<p style="text-align:justify;">Per disattivarla:</p>
<p style="text-align:justify;padding-left:30px;"><code>sudo swapoff /dev/sdXY</code></p>
<p style="text-align:justify;">Possiamo rendere permanente l'attivazione tramite la tabella delle partizioni contenuta in /etc/fstab. Ci basterà aggiungere una riga del tipo:</p>
<p style="text-align:justify;padding-left:30px;"><code>/dev/sdXY   none    swap    sw   0   0</code></p>
<p>Infine, vediamo come modificare la politica di swap, ovvero fare in modo che il processore usi il più possibile la memoria RAM e solo in caso di estrema necessità lo swap.</p>
<p>Ci basterà modificare un file virtuale della directory <em>/proc/sys</em> (<a href="http://guiodic.wordpress.com/2008/08/07/guida-per-principianti-a-gnulinux-navigare-nelle-directory/" target="_blank">ricordate?</a>)</p>
<p style="padding-left:30px;"><code>sudo echo 20 &#62; /proc/sys/vm/swappiness</code></p>
<p>Questo comando semplicemente scrive "20" nel file <em>swappiness</em>, solo che questo non è un file qualsiasi, ma un file virtuale che rappresenta un parametro di funzionamento del kernel. Ecco un esempio di come sia elegante e semplice gestire "tutto come un file". Il valore normale è 60, quindi 20 abbassa l'utilizzo dello swap. Questo avviene però a discapito della <strong>cache</strong>, un meccanismo che in sostanza serve a immagazzinare i dati più usati nella RAM in modo da non doverli leggere dall'hard disk.</p>
<p style="text-align:justify;">
<p style="text-align:justify;">
]]></content:encoded>
</item>
<item>
<title><![CDATA[Dans un système amd64, installé la racine d'un jail en i386]]></title>
<link>http://mitik974.wordpress.com/2008/07/15/dans-un-systeme-amd64-installe-la-racine-dun-jail-en-i386/</link>
<pubDate>Tue, 15 Jul 2008 09:36:32 +0000</pubDate>
<dc:creator>mitik974</dc:creator>
<guid>http://mitik974.es.wordpress.com/2008/07/15/dans-un-systeme-amd64-installe-la-racine-dun-jail-en-i386/</guid>
<description><![CDATA[Bonjour, alors avant de commencé vérifier bien que le kernel est bien compilé avec l&#8217;option]]></description>
<content:encoded><![CDATA[<p>Bonjour, alors avant de commencé vérifier bien que le kernel est bien compilé avec l'option "COMPAT_IA32".</p>
<p>Pour recevoir ma base jail j'ai choisit de mettre sur un disque à part, pour pouvoir facilement la remettre en place en cas de réinstallation :) .</p>
<pre># cd /usr/src
# make TARGET_ARCH=i386 TARGET=i386 buildworld
# make TARGET_ARCH=i386 TARGET=i386 installworld DESTDIR=/mnt/60GO/jails/
  192.168.0.3
# ln -s /mnt/60GO/jails/192.168.0.3/libexec/ld-elf.so.1 /mnt/60GO/jails/
  192.168.0.3/libexec/ld-elf32.so.1</pre>
<p>Voila tout vous pouvez maintenant vous livrez aux joies du jail avec un système 32bits.</p>
<p>ps: quelques utilitaires ne fonctionnerons pas (top,w,ps,etc...) parce qu'ils demande des information du kernel mais le kernel retourneras toujours des données en 64bits... Je n'ai pas trouvé de solution à ce jour...</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Reaching beyond the top of the stack -- illegal or just bad style?]]></title>
<link>http://jpassing.wordpress.com/?p=68</link>
<pubDate>Fri, 27 Jun 2008 13:50:42 +0000</pubDate>
<dc:creator>jpassing</dc:creator>
<guid>http://jpassing.es.wordpress.com/2008/06/27/reaching-beyond-the-top-of-the-stack-illegal-or-just-bad-style/</guid>
<description><![CDATA[The stack pointer, esp on i386, denotes the top of the stack. All memory below the stack pointer (i.]]></description>
<content:encoded><![CDATA[<p>The stack pointer, esp on i386, denotes the top of the stack. All memory below the stack pointer (i.e. higher addresses) is occupied by parameters, variables and return addresses; memory above the stack pointer must be assumed to contain garbage.</p>
<p>When programming in assembly, it is equally easy to use memory below and above the stack pointer. Reading from or writing to addresses beyond the top of the stack is unusual and under normal circumstances, there is little reason to do so. There are, however, situations -- <i>rare</i> situations -- where it may tempting to temporarily use memory beyond the top of the stack.</p>
<p>That said, the question is whether it is really just a convention and good style <i>not</i> to grab beyond the stack of the stack or whether there are actually reasons why doing so could lead to problems.</p>
<p>When trying to answer this question, one first has to make a distinction between user mode and kernel mode. In user mode Windows, I am unable to come up with a single reason of why usage of memory beyond the top of the stack could lead to problems. So in this case, it is probably merely bad style. </p>
<p>However, things are different in kernel mode. </p>
<p>In one particular routine I recently wrote, I encountered a situation where temporarily violating the rule of not reaching beyond the top of the stack came in handy. The routine worked fine for quite a while. In certain situations, however, it suddenly started to fail due to memory corruption. Interestingly enough, the routine did not fail <i>always</i>, but still rather frequently. </p>
<p>Having identified the specific routine as being the cuplrit, I started single stepping the code. Everything was fine until I reached the point where the memory above the stack pointer was used. The window span only a single instruction. Yet, as soon as I had stepped over the two instructions, the system crashed. I tried it multiple times, and it was prefectly reproduceable when being single-stepped.</p>
<p>So I took a look at the stack contents after every single step I took. To my surprise, as soon as I reached the critical window, the contents of the memory location just beyond the current stack pointer suddenly became messed. Very weird.</p>
<p>After having been scratching my head for a while, that suddenly started to made sense: I was not the only one using the stack -- in between the two instructions, an interrupt must have occured and been dispatched. As my thread happened to be the one currently running, it was my stack that has been used for dispatching it. This also explains why it did not happened always unless I was single-stepping the respective code.</p>
<p>When an interrupt occurs and no privilege-level change has to be performed, the CPU will push the EFLAGS, CS and EIP registers on the stack. That is, the stack of whatever kernel thread happens to be the one currently running on this CPU is reused and the memory locations beyond the stack pointer will be overwritten by these three values. So what I initially interpreted as garbage, actually were the contents of EFLAGS, CS and EIP.</p>
<p>On Windows NT, unlike some other operating systems (FreeBSD, IIRC), handling the interrupt, which involves runing the interrupt service routine (ISR) occurs on the same stack as well. The following stack trace, taken elsewhere, shows an ISR being executed on the stack of the interrupted thread:</p>
<blockquote><pre>
f6bdab4c f99bf153 i8042prt!I8xQueueCurrentMouseInput+0x67
f6bdab78 80884289 i8042prt!I8042MouseInterruptService+0xa58
<b>f6bdab78 f6dd501a nt!KiInterruptDispatch+0x49</b>
f6bdac44 f6dd435f driver!Quux+0x11a
f6bdac58 f6dd61db driver!Foobar+0x6f
...
</pre>
</blockquote>
<p>Morale of the story: Using memory beyond the current stack pointer is not only bad practice, it is actually illegal when done in kernel mode.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Install Windows Tanpa CD Rom Cara Kedua]]></title>
<link>http://mustfree.wordpress.com/?p=27</link>
<pubDate>Wed, 11 Jun 2008 02:32:43 +0000</pubDate>
<dc:creator>mustfree</dc:creator>
<guid>http://mustfree.es.wordpress.com/2008/06/11/install-windows-tanpa-cd-rom-cara-kedua/</guid>
<description><![CDATA[Berikut saya coba tulis langkah-langkah install windows pada laptop/pc tanpa harus menggunakan cd ro]]></description>
<content:encoded><![CDATA[<p>Berikut saya coba tulis langkah-langkah install windows pada laptop/pc tanpa harus menggunakan cd rom. Cara pertama bisa dilihat <a href="http://mustfree.wordpress.com/2008/04/01/tutorial-install-windows-pada-asus-eee-pc/">disini</a>.</p>
<p>Cara kedua ini prinsipnya sama dengan cara pertama yang sudah saya tulis beberapa waktu lalu. Perbedaanya hanya pada pembuatan "disk booting" menggunakan flash disk. Jika pada cara pertama menggunakan aplikasi physdiskwrite dan sebuah image dos, maka cara kedua ini menggunakan aplikasi HPUSB flash. Keunggulan cara kedua ini adalah bahwa flashdisk yang dijadikan "boot disk" tetap akan bisa diisi oleh file lain, misalnya file installer windows. Pada cara pertama yang menggunakan physdiskwrite, flashdisk akan diformat dan seolah menjadi disket 3,5", dengan kapasitas hanya 1,44MB  dan tidak bisa diisi dengan file lain. Tetapi untuk menggunakan cara kedua ini kita harus memiliki 'DOS system files' yang akan dituliskan ke dalam flash disk.</p>
<p>So, dengan cara kedua ini kita hanya perlu memformat flashdisk sekali saja. Dan flashdisk tersebut bisa digunakan kembali kapan saja tanpa harus memformat ulang untuk membuat disk booting.</p>
<p>Berikut langkah-langkahnya :</p>
<p>1. Siapkan flashdisk, sebaiknya kapasitas minimal 1GB.<br />
2. Download aplikasi HPUSB flash <a href="http://www.4shared.com/account/file/50999104/48a25e0c/hpusb.html" target="_blank">disini</a><br />
3. Download DOS system file, saya telah mengupload satu contoh DOS system file, silakan download <a href="http://www.4shared.com/account/file/50999049/53bd8d82/dos.html" target="_blank">disini</a><br />
4. Ekstrak kedua file tersebut ke komputer.<br />
5. Jalankan aplikasi HPUSB flash dengan klik ganda pada file HPUSBFW.EXE<br />
akan tampak tampilan seperti ini :<br />
<a href="http://mustfree.wordpress.com/files/2008/06/hpusb.jpg"><img class="alignnone size-medium wp-image-28" src="http://mustfree.wordpress.com/files/2008/06/hpusb.jpg?w=224" alt="HP USB Flash Utility" width="224" height="300" /></a><br />
6. Pilih device, pastikan sesuai dengan flash disk yang akan anda format.<br />
7. Cek pada pilihan Create a DOS startup disk, kemudian pada pilihan "using DOS system files located at" klik tombol sebelah kanan (browse) dan arahkan pada direktori hasil ekstrak dari file dos.zip pada langkah ke-3 di atas.<br />
8. Setelah semua benar, kemudian klik Start. Tunggu sampai proses format selesai.<br />
9. Setelah proses format selesai, copy-kan file-file yang ada pada direktori DOS (hasil download) ke flashdisk, kecuali file COMMAND.COM, IO.SYS, dan MSDOS.SYS (sudah tercopy sewaktu proses format).</p>
<p>Langkah pembuatan boot-disk selesai, anda tinggal meng-copy file installer windows ke flash disk tersebut. Caranya copy direktori i386 beserta file dan sub direktori di dalamnya dari CD installer windows ke dalam flash disk (gunakan windows eksplorer). Setelah selesai, anda siap menginstall windows ke PC/Laptop. Caranya mirip dengan tutorial install windows yang pernah saya tulis sebelumnya.<br />
Untuk install pada Asus EEE, langkahnya sebagai berikut :<br />
1. Pasang flash disk booting pada Laptop yang akan diinstal.<br />
2. Saat tampil logo Asus EEE, tekan Esc. Pilih booting dari flashdisk.<br />
3. Setelah masuk ke C prompt ( C: ), hapus semua partisi bawaan linux xandros pada Asus EEE. Caranya dengan ketik perintah<br />
<code>FDSIK.exe</code>.<br />
Setelah semua partisi terhapus, buat satu partisi tunggal, dan set atribut ke Active (perlu restart supaya partisi yang baru bisa dikenali oleh system)<br />
4. Tekan esc untuk keluar dari menu Fdisk. Kemudian format partisi yang tadi kita buat. Caranya ketik perintah<br />
<code>FORMAT D: /s</code><br />
Tunggu sampai proses format selesai.<br />
5. Copy file himem.sys, config.sys, dan smartdrv.exe ke hardisk. Caranya ketik perintah<br />
<code>copy himem.sys D:</code><br />
<code>copy config.sys D:</code><br />
<code>copy smartdrv.exe D:</code><br />
Jangan lupa selalu tekan enter di akhir setiap perintah tersebut.<br />
5. Dari sini Laptop EEE sudah bisa booting tanpa flashdisk. Restart EEE. Biarkan booting dari Hardisk.<br />
6. Setelah proses boot selesai, anda akan masuk ke C: kembali. Ketikkan perintah<br />
<code>smartdrv</code><br />
kemudian enter.<br />
7. Pindah ke direktori dimana file installer windows berada. Ketik perintah<br />
<code>D:</code><br />
kemudian enter.<br />
8. Pada D prompt ( D: ) ketik perintah<br />
<code>cd i386</code><br />
kemudian enter.<br />
9. Ketik perintah<br />
<code>winnt.exe</code><br />
kemudian enter.<br />
Anda akan masuk ke menu instalasi windows. Dari sini anda tinggal mengikuti langkah-langkah yang ada pada layar monitor sampai selesai instalasi windows.</p>
<p>Demikian cara kedua install windows tanpa CD Rom. Semoga bermanfaat.</p>
<p>Catatan :<br />
1. Cara ini tidak hanya berlaku untuk laptop Asus EEE saja, tapi juga bisa digunakan pada laptop atau PC lain sepanjang mendukung booting dari Flash disk.<br />
2. Ada kasus dimana FDISK tidak bisa menge-set partisi hardisk menjadi aktif. Hal ini karena FDISK membaca flashdisk sebagai fixed disk 1, sementara hardisk sebagai fixed disk 2. Jika demikian, maka gunakan aplikasi physdiskwrite seperti saya tulis pada <a href="http://mustfree.wordpress.com/2008/04/01/tutorial-install-windows-pada-asus-eee-pc/">cara install pertama</a>. Dengan physdiskwrite, flashdisk akan terbaca sebagai floppy drive A, sedangkan hardisk sebagai fixed disk 1, sehingga bisa di-set ke aktif.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Finding linux-gate.so.1 in Assembly]]></title>
<link>http://shaurz.wordpress.com/?p=18</link>
<pubDate>Mon, 02 Jun 2008 11:03:46 +0000</pubDate>
<dc:creator>shaurz</dc:creator>
<guid>http://shaurz.es.wordpress.com/2008/06/02/finding-linux-gateso1-in-assembly/</guid>
<description><![CDATA[A question was posted to reddit and I couldn&#8217;t help but indulge my curiosity. System calls on ]]></description>
<content:encoded><![CDATA[<p>A <a href="http://reddit.com/info/6liv1/comments/">question</a> was posted to reddit and I couldn't help but indulge my curiosity. System calls on Linux x86 traditionally use the interrupt vector 0x80. Modern processors have special system call instructions which are much faster, so Linux has an entry point called "linux-gate.so.1" (a virtual DSO) which will choose the best system call method for your machine. I found a webpage which explains <a href="http://www.trilithium.com/johan/2005/08/linux-gate/">about linux-gate</a> and another which explains <a href="http://manugarg.googlepages.com/aboutelfauxiliaryvectors">how to find the ELF auxv</a> (auxiliary vector) which contains the address of the entry point. So I put together a small assembly program which finds the linux-gate syscall entry point and uses it to print a message to stdout. I haven't written any assembly for quite a while :-) Use <a href="http://flatassembler.net/">FASM</a> to assemble the code.</p>
<p><strong>Download:</strong> <a href="http://www.iogopro.co.uk/blog/files/linuxgate.asm">linuxgate.asm</a></p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Folder Size]]></title>
<link>http://grimmm.wordpress.com/?p=194</link>
<pubDate>Mon, 19 May 2008 10:51:11 +0000</pubDate>
<dc:creator>grimmm</dc:creator>
<guid>http://grimmm.es.wordpress.com/2008/05/19/folder-size/</guid>
<description><![CDATA[Lun, 2008/05/19 - 12:51 — Grimmm

     
Os presento una extensión para el Explorador de archivos ]]></description>
<content:encoded><![CDATA[<p><span class="submitted">Lun, 2008/05/19 - 12:51 — Grimmm</span></p>
<p><img src="http://grimmm.wordpress.com/files/2008/04/superadmin.gif" alt="" /></p>
<p style="text-align:right;"><img src="http://grimmm.wordpress.com/files/2008/04/app_0.gif" alt="" /> <img src="http://grimmm.wordpress.com/files/2008/05/i386.gif" alt="" /> <img src="http://grimmm.wordpress.com/files/2008/05/x64.gif" alt="" /> <img src="http://grimmm.wordpress.com/files/2008/04/win.gif" alt="" /> <img src="http://grimmm.wordpress.com/files/2008/04/en.gif" alt="" /> <img src="http://grimmm.wordpress.com/files/2008/04/es.gif" alt="" /></p>
<p><a href="http://grimmm.files.wordpress.com/2008/05/iconofoldersize.png"><img class="alignleft alignnone size-medium wp-image-195" style="float:left;" src="http://grimmm.wordpress.com/files/2008/05/iconofoldersize.png?w=144" alt="" width="144" height="80" /></a>Os presento una <strong>extensión para el Explorador</strong> de archivos de Windows, tanto para 64bits como para 32bits. Es ideal para los que quieren <strong>ver el tamaño de las carpetas desde la vista de detalles.</strong> También mostrará información relacionada al número de archivos, <strong>subcarpetas y atributos</strong>.</p>
<p><!--more--></p>
<p>Cuando estamos dentro de un directorio y seleccionamos la <strong>Vista de Detalles (Clic Derecho -» Ver -» Detalles)</strong> veremos la información con respecto a los archivos,<strong> fecha de creacion y modificación, tipo,  nombre</strong>... pero, que pasa si queremos saber el <strong>tamaño de una carpeta</strong>, el número de subcarpetas o quizás la cantidad de archivos en ella. Pues, tendriamos que hacer clic derecho en la carpeta e ir a <strong>Propiedades</strong>. Ahora bien, y si queremos <strong>comparar tamaños de las carpetas,</strong> seria muy <strong>tedioso </strong>tener que hacerlo con el menu de Propiedades, seleccionando cada carpeta por separado. Es por eso que el desarrollador <strong><a href="http://foldersize.sourceforge.net/" target="_blank">Brian Oraas</a> </strong>(enlace a su página) ha creado esta <strong>extension</strong>, la cual añadirá varias columnas a la Vista de Detalles: <strong>tamaño de carpeta, número de subcarpetas, cantidad de archivos.</strong></p>
<h3>Instalación:</h3>
<p>Simplemente se ejecuta el archivo .msi y se siguen las instrucciones que nos da el instalador. Una vez instalado es recomendable que reinicies tu equipo.</p>
<h3>Uso:</h3>
<p>Para este punto ya debes tener todo instalado. Entonces abres cualquier carpeta que quieras, haz clic derecho, clic en <em>Ver </em>y luego clic <em>Detalles.</em></p>
<p>Descargar <a href="http://switch.dl.sourceforge.net/sourceforge/foldersize/FolderSize-2.4.msi">Folder Size v2.4(32 bits):</a> <img src="http://grimmm.wordpress.com/files/2008/04/win.gif" alt="" /> <img src="http://grimmm.wordpress.com/files/2008/05/i386.gif" alt="" /> <img src="http://grimmm.wordpress.com/files/2008/04/en.gif" alt="" /> <img src="http://grimmm.wordpress.com/files/2008/04/es.gif" alt="" /></p>
<p>Descargar <a href="http://mesh.dl.sourceforge.net/sourceforge/foldersize/FolderSize-x64-2.4.msi">Folder Size v2.4(64 bits)</a>: <img src="http://grimmm.wordpress.com/files/2008/04/win.gif" alt="" width="24" height="15" /> <img src="http://grimmm.wordpress.com/files/2008/05/x64.gif" alt="" /> <img src="http://grimmm.wordpress.com/files/2008/04/en.gif" alt="" /> <img src="http://grimmm.wordpress.com/files/2008/04/es.gif" alt="" /></p>
<address>Fuente <a href="http://www.scenebeta.com/noticia/folder-size" target="_blank">www.SceneBeta.com</a></address>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Wesnoth 1.3.7 nel repository per Debian e Ubuntu]]></title>
<link>http://notoriousxl.wordpress.com/2007/09/01/wesnoth-137-nel-repository-per-debian-e-ubuntu/</link>
<pubDate>Sat, 01 Sep 2007 17:08:52 +0000</pubDate>
<dc:creator>notoriousxl</dc:creator>
<guid>http://notoriousxl.es.wordpress.com/2007/09/01/wesnoth-137-nel-repository-per-debian-e-ubuntu/</guid>
<description><![CDATA[Già da un po&#8217; di giorni ho aggiornato il repository all&#8217;ultima versione di sviluppo di ]]></description>
<content:encoded><![CDATA[<p>Già da un po' di giorni ho aggiornato il repository all'ultima versione di sviluppo di Wesnoth (ma mi sono dimenticato di segnalarlo qui :mrgreen: ); trovate il pacchetto .deb all'indirizzo <a href="http://download.tuxfamily.org/wesnothrepos/debian/binary/wesnoth-unstable_1.3.7_i386.deb">http://.../wesnoth-unstable_1.3.7_i386.deb</a>, ma, come al solito, consiglio di <a href="http://wesnothrepos.tuxfamily.org/?page_id=4&#38;lang_view=it" title="Guida al repository">installarlo tramite repository</a>.</p>
<p>Dovrei fare, a giorni, anche il pacchetto per powerpc.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Installing Solaris 10 on a x86 box]]></title>
<link>http://jangestre.wordpress.com/2007/07/29/installing-solaris-10-on-a-x86-box/</link>
<pubDate>Sun, 29 Jul 2007 06:48:58 +0000</pubDate>
<dc:creator>jangestre</dc:creator>
<guid>http://jangestre.es.wordpress.com/2007/07/29/installing-solaris-10-on-a-x86-box/</guid>
<description><![CDATA[Howto Install Solaris 10 on a x86 machine.
My machine&#8217;s specification:
Intel Celeron 1.8 Ghz
3]]></description>
<content:encoded><![CDATA[<p style="margin-bottom:0;">Howto Install Solaris 10 on a x86 machine.</p>
<p style="margin-bottom:0;">My machine's specification:</p>
<p style="margin-bottom:0;">Intel Celeron 1.8 Ghz</p>
<p style="margin-bottom:0;">384 MB RAM</p>
<p style="margin-bottom:0;">2 100 GB Hard drive</p>
<p style="margin-bottom:0;">NVIDIA TNT RIVA 32MB</p>
<p style="margin-bottom:0;">Dual boot Windows XP and CentOS 5</p>
<p style="margin-bottom:0;">Although I have experience installing Linux and FreeBSD, this is my first attempt to install Solaris on my x86 box which has Windows XP and CentOS 5 installed, since I have no more space to accommodate all three OS, I had to overwrite the Linux partition with Solaris. First thing I noticed upon booting into the CD installer is the GRUB boot loader, I thought Solaris has its own boot loader, anyways I pressed &#60;Enter&#62; to immediately load Solaris, so let's begin.</p>
<p style="margin-bottom:0;">The first screen will ask you to choose what installation mode you like, I chose [1] which is Solaris Interactive, since I only have 384MB of RAM I was notified that it needs at least 400MB of RAM to proceed with the graphical installation so I had to bear with the text based interactive install. Next screen says it's beginning system identifcation, waited several minutes for this part to finish then on with the next screen which will ask you to select a language.</p>
<p style="margin-bottom:0;">I chose [0] which is English then the Solaris Installation Program screen loads informing you that there will no mouse (text based , what do you expect :D ) then press F2 to continue. Next screen will load saying that it's identifying the system ( networked or non-networked, time zone, date and time), press F2 again to continue</p>
<pre>Enter Hostname:</pre>
<pre>home.solaris.local</pre>
<p style="margin-bottom:0;">Press F2 to continue and the next screen will ask you to confirm the information you entered, press F2 again to continue</p>
<pre>Time Zone:</pre>
<p style="margin-bottom:0;">move to choose your time zone using the arrow keys and press spacebar to enable it, again press F2 to continue</p>
<pre>Country or Region:</pre>
<p style="margin-bottom:0;">Highlight the country using the arrow key and press the spacebar to enable it, press F2 to continue</p>
<pre>Date and Time:</pre>
<p style="margin-bottom:0;">Press F2 again to confirm and continue, after that the screen to enter them machine's root password appears, you have to enter the password twice and press F2 to continue, the next screen says Identifying the system again?, press F2 again to continue, it will then ask you to enable remote services, just accept the default which is “yes” then press F2 again to continue, the Solaris Interactive Installation screen loads, press F2 to select Standard then it will ask you whether you want the CD installer to eject automatically, choose automatic which is the default ( This didn't work, the CD didn't eject automatically, too bad!). After this, the Reboot After Installation screen loads, choose automatic which is the default, one thing you have to do is to remove the CD installer before rebooting or else the entire installation process repeats! Press F2 then F2_OK to continue.</p>
<p style="margin-bottom:0;">Solaris Interactive Installation screen loads and since I already installed Solaris before I wrote this Howto it presented two options, i.e, asking you whether to F2_upgrade or F4_fresh-install, I chose F4 other it should be just F2 fresh install. Then initialization begins...License screen loads and you have to accept the license of course! Then Select Geographic Region &#60; North America&#62; then press F2 to continue and select System Locale, just accept the default POSIX C © , again press F2 to continue and select products, I just pressed F2 to continue, Additional Products screen loads, just press F2 to continue then the Select Software screen loads, I chose the default Entire Distribution ( I want to tinker the whole nine yards).</p>
<p style="margin-bottom:0;">Partitioning &#62; Select Disk partitioning and since I have two drives I was presented with these options:</p>
<ul>
<li>
<pre>c0d0</pre>
</li>
<li>
<pre>c0d1</pre>
</li>
</ul>
<p style="margin-bottom:0;">You will notice that it is entirely different from what you and me are used to, in Solaris you ought to know about “Slices” too same thing I've experienced with FreeBSD, slices overcome the deficiencies of the partitioning scheme which Linux and Windows are using i.e., you can only create four primary partitions. Inside the each slice, you can create as many partitions as you like, now back with the installation, since I would like to dual boot Windows and Solaris, I allocated the last partition on my first drive to accommodate Solaris, this is how I done it.</p>
<p style="margin-bottom:0;">After customizing my hard drive using fdisk, the following is my partitioning layout:</p>
<ol>
<li>
<p style="margin-bottom:0;">NTFS</p>
</li>
<li>
<p style="margin-bottom:0;">NTFS</p>
</li>
<li>
<p style="margin-bottom:0;">NTFS</p>
</li>
<li>
<p style="margin-bottom:0;">SOLARIS &#60;- before this filesystem was created, I deleted the last partition and the created a new one with the SOLARIS filesystem.</p>
</li>
</ol>
<p style="margin-bottom:0;">Press F2 again and again to continue, when you arrive at the auto-layout filesystem screen, just press F2 to automatically layout the filesystem, again press F2 to continue until you reached the screen wherein you will be asked to review the choices you made on previous screens, then after reviewing, press F2 to begin the installation.</p>
<p style="margin-bottom:0;">I waited for several minutes until I was greeted that the installation succeeded, this is where the install process should have automatically ejected the CD but sadly it didn't so I ejected it manually, the machine rebooted and GRUB loads, press Enter or wait ten seconds to load Solaris, the kdmconfig X Server Selection screen loads asking which X server do you want to install, Xsun or Xorg, I chose Xsun and press F2 to continue and the next screen loads telling me to view and edit Window system configuration, I chose “No Changes needed, test/save and exit” then pressed F2 again to continue, Window System Configuration test page loads, press F2 to test and click Yes if OK.</p>
<p style="margin-bottom:0;">It will then ask you if you need to override system's default NFS version 4, just accept the default which is [No]. Then Starting Solaris Installation Launcher in Commad line mode loads:</p>
<p style="margin-bottom:0;">Insert CD2 then Select Media [1], press Enter and press c to continue, repeat these process for the remaining CD's (5 CD). It took me almost two hours to finish this installation process( that long huh!), then it will ask you to reboot the machine, then Solaris starts to load and now I am presented with the Login Screen, I entered root as username as mysecret as password respectively and I was asked to choose whether to load the Java Desktop 3 or CDE, I chose JDS3 for this, afterwards the GUI loads, one thing I've noticed is that JDS3 is just GNOME stable version.</p>
<p style="margin-bottom:0;">Now you might be wondering why am logging in as root and not as an ordinary user, well there was no ordinary user created during installation because that's the way Sun wants it! You have to create an ordinary user using smc ( Sun Management Console) or the useradd utility but too bad, smc didn't worked for me, it's always telling me that the wbem might not be running so I need to restart the wbem service and restart smc but to no avail, so I decided to go with the good old utility useradd but I encountered another problem using useradd, it won't create the user that I need to create, so I've googled for reasons why it isn't working and I came across this article that /etc/auto_home and /etc/auto_master needs to be edited and all configuration should be commented out in order for the useradd utility to work properly, after making the modifications to the said file, I rebooted the machine and open a shell and created my desired users using this format:</p>
<pre># useradd -d /export/home/user1 -s /usr/bin/bash -m user1</pre>
<p style="margin-bottom:0;">and used the passwd command to change the password for the user, you will noticed that the user's home directory resides on /export/home/username instead of /home/username, this is how Solaris filesystem was designed so if you have questions, ask them not me :D .</p>
<p style="margin-bottom:0;">That's all there is to it.</p>
<p style="margin-bottom:0;">Cheers!</p>
<p style="margin-bottom:0;">
]]></content:encoded>
</item>
<item>
<title><![CDATA[Usare pacchetti personalizzati per Slackware, e crearne di nuovi dai sorgenti]]></title>
<link>http://emanuele2.wordpress.com/2006/09/12/usare-pacchetti-personalizzati-per-slackware-e-crearne-di-nuovi-dai-sorgenti/</link>
<pubDate>Tue, 12 Sep 2006 14:58:54 +0000</pubDate>
<dc:creator>Emanuele Cipolla</dc:creator>
<guid>http://emanuelecipolla.net/2006/09/12/usare-pacchetti-personalizzati-per-slackware-e-crearne-di-nuovi-dai-sorgenti/</guid>
<description><![CDATA[Il mio flirt con Debian stable + backports è durato molto poco, purtroppo.  
In realtà la colpa è]]></description>
<content:encoded><![CDATA[<p>Il <a href="/2006/09/08/unire-i-vantaggi-di-debian-stable-ai-pacchetti-aggiornati-di-testing-e-sid/">mio flirt</a> con <a href="http://www.debian.org/">Debian</a> stable + backports è durato <em>molto</em> poco, purtroppo. :-(</p>
<p>In realtà la colpa è mia: dovevo informarmi meglio sui problemi che <a href="http://www.cups.org/">CUPS</a> 1.2 sta creando ad alcuni utenti per quel che riguarda la stampa in rete (urge, a questo punto, sottolineare che invece, da locale, il funzionamento di CUPS+Gutenprint era perfetto). Se non fosse stato per questo, avrei tenuto il sistema così com'era: rapido nelle risposte e completo. Ribadisco: se non ci sono problemi di sorta, Debian stable + backports è la scelta migliore, specie su computer su cui Ubuntu (la mia distribuzione di riferimento per il segmento desktop) risulta troppo pesante, a causa delle marcate ottimizzazioni della libreria C e di numrosi altri componenti basilari del sistema.</p>
<p>Ho imparato a non formalizzarmi troppo, nè a fissarmi sul fare <em>tinkering</em> all'infinito: c'è un limite fisiologico oltre il quale le cose <strong>devono</strong> funzionare. Inoltre, la mia priorità, avendo un everything server piuttosto che un router (come la maggior parte delle persone che scelgono di crearsi una rete locale) è quella di avere un sistema snello: se poi ci scappa una buona interfaccia grafica, bene, altrimenti va bene lo stesso.</p>
<p>Sono, quindi, ripassato a <a href="http://www.slackware.com">Slackware</a> (che, fino ad ora, è stata la distribuzione che ha meglio performato sul mio vecchio Celeron 300 Mhz). La tradizione di stabilità ed estrema flessibilità della distribuzione non è messa in discussione da nessuno; in parte, però, il prezzo di questa flessibilità viene pagato con un sistema di gestione dei pacchetti chiaramente di livello <em>diverso</em> rispetto a quello, per esempio, di Debian.</p>
<p>Il vero problema, infatti, risiede nella mancanza di supporto al <em>dependency tracking</em>: in pratica, il sistema di gestione dei pacchetti non si occupa di verificare se sono presenti tutti quei componenti di sistema atti a fare funzionare un particolare componente di sistema. Tale controllo è <strong>deliberatamente</strong> lasciato all'utente. Inoltre, poichè Slackware è un progetto gestito da un solo individuo, Patrick J. Volkerding, si rende necessaria una selezione accurata dei pacchetti da introdurre nella distribuzione base, così che PJV non risulti sommerso dal mantenimento di una collezione sterminata di pacchetti.</p>
<p>Purtroppo, però, non sempre sono rose e fiori: in alcuni scenari, il fatto di doversi occupare di ricercare le dipendenze a mano, e, se non le si riesce a sistemarle tutte, doversele ricompilare dai sorgenti, risulta poco pratico. Eppoi, non tutti hanno la pazienza (e le risorse hardware) di chi utilizza Gentoo :-D (scherzo, ovviamente, sulla pazienza: resta però il fatto che dover ricompilare l'intero sistema su qualcosa di più lento di un Pentium III è una strada poco praticabile).<br />
<!--nextpage--></p>
<h3>Usare pacchetti personalizzati</h3>
<p>Per sopperire a questi problemi, numerosi gruppi di utenti hanno creato collezioni di pacchetti personalizzati. Secondo me, la più riuscita di queste è quella resa disponibile dal portale <a href="http://www.slacky.it/">Slacky.it</a>, che, almeno nei miei test, si è distinta per coerenza organizzativa e per il fatto che i pacchetti nuovi tendono a non distruggere l'intero sistema (come, ahimè, accade per quella di <a href="http://linuxpackages.net">LinuxPackages</a>, che è sicuramente più ampia, ma poco gestibile col sistema automatizzato, molto simile a una nostra vecchia conoscenza, che vedremo fra un attimo).</p>
<p>Inoltre, un altro limite delle utility di gestione dei pacchetti in Slackware è la mancanza di un tool centralizzato per reperire i pacchetti (e, ovviamente, le loro dipendenze). Ci vengono in aiuto, però, due utility, l'una alternativa all'altra: <a href="http://swaret.sf.net/">swaret</a> e <a href="http://software.jaos.org/#slapt-get">slapt-get</a>.</p>
<p>La mia scelta, dato il mio amore per il sistema APT, è ricaduta su quest'ultimo. Come vedremo, la configurazione è estremamente simile a quella della sua controparte Debian (di cui non rappresenta, però, un derivato: si tratta di un clone, progettato per emulare il <em>look&#38;feel</em> del solo apt-get: niente apt-cache, apt-cdrom, apt-... per ora :-( ).</p>
<ol>
<li>1. Fate l'accesso come root.</li>
<li>2. Scaricate la versione più recente di slapt-get per la vostra architettura (per chi scrive, la 0.9.11e su i386), e installatela:
<pre>wget
http://software.jaos.org/slackpacks/10.2/slapt-get-0.9.11e-i386-1.tgz
installpkg slapt-get-0.9.11e-i386-1.tgz</pre>
</li>
<li>Modificate il file /etc/slapt-get/slapt-getrc e fatelo diventare simile a quello che segue:
<pre>WORKINGDIR=/var/slapt-get
EXCLUDE=loadlin,pcmcia-cs,^kernel-.*,^alsa-.*,.*-[0-9]dl$,^devs$,^udev$,
aaa_elflibs,x86_64
SOURCE=ftp://ftp.unina.it/pub/linux/distributions/slackware/slackware-10.2/
SOURCE=ftp://ftp.unina.it/pub/linux/distributions/slackware/slackware-10.2/extra/
SOURCE=ftp://ftp.unina.it/pub/linux/distributions/slackware/slackware-10.2/testing/
SOURCE=ftp://ftp.unina.it/pub/linux/distributions/slackware/slackware-10.2/pasture/
SOURCE=http://www.slacky.it/download
SOURCE=http://software.jaos.org/slackpacks/10.2/</pre>
<ul>
<li>se desiderate che slapt-get gestisca anche gli aggiornamenti del kernel, togliete
<pre>^kernel-.*,^alsa-.*,.*-[0-]dl$,^devs$,^udev$</pre>
</li>
<li>se state utilizzando un portatile, sarebbe meglio togliere
<pre>pcmcia-cs</pre>
</li>
<li>se state utilizzando un port di Slackware su architetture non x86, fareste meglio a blacklistare i pacchetti che non appartengono alla vostra architettura: nella mia limitata esperienza con detti port non ufficiali, questo problema non si pone con i "repository ufficiali" (ovverosia i mirror da cui scaricate la distribuzione), ma potrebbe porsi nel caso di eventuali repository utente (credo non nel caso di Slacky.it, ma tenete presente che non so quali architetture siano presenti nel suo repository). Ad esempio, se state usando Slamd64, sostituite
<pre>x86_64</pre>
<p>con</p>
<pre>i486,i686</pre>
<p>e simili.</li>
</ul>
</li>
<p>Alcune note riguardanti la riga EXCLUDE (che indica a slapt-get a proposito di quali pacchetti <strong>non</strong> prelevare informazioni:</p>
<li>Adesso eseguite il comando:
<pre>slapt-get --update</pre>
<p>che farà esattamente quello che ci aspettiamo: scaricherà le informazioni sui pacchetti dai repository alla directory specificata in WORKINGDIR (di default /var/slapt-get, ma può essere una qualunque, basta che root vi abbia accesso).</li>
</ol>
<p>E questa è una. Se vorrette installare nuovi pacchetti, vi basterà fare <em>slapt-get --install [pacchetto]</em>; per effettuare aggiornamenti, sono disponibili le opzioni <em>--upgrade</em> e <em>--dist-upgrade</em>, che hanno la stessa valenza delle corrispettive in apt per Debian: la prima aggiornerà solo i programmi, la seconda anche componenti di sistema (come il kernel o la GNU C library).<br />
<!--nextpage--></p>
<h3>Creare pacchetti personalizzati</h3>
<p>Può capitare, però, che neanche i repository personalizzati possano esservi d'aiuto nel reperire un pacchetto, o, peggio ancora, una particolare <em>versione</em> del pacchetto. Facciamo un esempio: io sono in possesso di uno scanner Canon CanoScan LIDE 35. Questa periferica è divenuta (quasi pienamente) supportata in <a href="http://www.sane-project.org/">SANE</a> soltanto a partire dalla versione 1.0.17 dei backend (per chi viene da Windows, qualcosa di simile all'interfaccia di gestione "Scanner e fotocamere digitali", mentre SANE è, in tutto e per tutto, un'alternativa superpotenziata, indipendente dalla piattaforma e dalla GUI di TWAIN). Inoltre, questa particolare versione (o una più recente) di SANE mi serve <strong>solo</strong> sul computer su cui esso è fisicamente collegato (la novella Slackware box). Questo perchè, per fare il fico (e alla faccia di chi ancora si ostina a usare Windows ;-) ), posso controllare  lo scanner da un altro computer con il backend net - cosa che mi evita di trascinarmi la periferica assieme al portatile, su cui è, peraltro, installata <a href="http://www.kubuntu.org/">Kubuntu</a> 6.06 Dapper Drake, che la supporta perfettamente.</p>
<p>Ora, per quanto noi possiamo essere bravissimi a compilare software dai sorgenti (e credetemi, si tratta di un procedimento facilissimo, soprattutto grazie ai potenti strumenti di autoconfigurazione degli stessi che la maggior parte dei progetti mette a disposizione, non ultimo il famosissimo script di shell <em>configure</em>), dobbiamo anche pensare in chiave futura: Slackware 11.0, infatti, include, SANE 1.0.17, che è perfetto per lo scanner in questione - e noi vogliamo la possibilità di poter tornare ad un package certificato da Patrick J. Volkerding - che di certo sarà più leggero ed efficiente di quello che noi potremo creare.</p>
<p>A noi, però, lo scanner serve adesso! :-D</p>
<p>Faremo in modo, quindi, di creare un pacchetto .tgz in tutto e per tutto equivalente a quelli visti sinora, così che potremo rimuoverlo facilmente con un bel colpo di <em>removepkg</em> quando lo riterremo più opportuno.</p>
<p>Prenderò l'esempio di SANE (che è, tra l'altro, uno dei pacchetti che credo distribuirò tramite il mio <a href="http://www.gsdefender.co.nr/">sito Web</a>, data l'elevata utilità): ne preleveremo i sorgenti, li compileremo e creeremo il pacchetto.</p>
<p>Come è ovvio, altri software potrebbero richiedere un livello di adattamento diverso da quello mostrato nell'esempio (per dire, diverse opzioni da passare a <em>configure</em>, o ulteriori operazioni preliminari): in ogni caso, i passaggi a partire dal punto 5 (escluso i l 6) sono pressochè universali, indipendenti da quale software si sta preparando.</p>
<ol>
<li>Scarichiamo i sorgenti di SANE (l'ultima versione, per chi scrive, è la 1.0.18 per i backend, e la 1.0.14 per i frontend):
<pre>wget http://alioth.debian.org/download.php/1669/sane-backends-1.0.18.tar.gz
wget http://alioth.debian.org/download.php/1140/sane-frontends-1.0.14.tar.gz</pre>
</li>
<li>Decomprimiamo i backend, e spostiamoci nella directory che viene creata:
<pre>tar xfz sane-backends-1.0.18.tar.gz; cd sane-backends-1.0.18*/</pre>
</li>
<li>Configuriamo i sorgenti e iniziamo la compilazione. Attenzione a non scegliere il filesystem /usr/local, poichè vogliamo che i componenti risultino <em>logicamente</em> integrati nella distribuzione principale.
<pre>./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var; make; make install</pre>
</li>
<li><em><strong>(passaggio non sempre necessario)</strong></em> SANE rappresenta un caso particolare: infatti, mentre a livello sorgente esistono due pacchetti distinti e separati, ed una stretta dipendenza dei frontends da una versione installata (i.e. reperibile in /usr/*) dei backends, i pacchetti precompilati, di solito (ed è anche il caso di Slackware), sono unici, e installano sia gli uni che gli altri. Per poter, quindi, far trovare ai frontend la versione da noi compilata dei frontend (e quindi permettere la <em>loro</em> compilazione) dovremo fare un
<pre>make install</pre>
</li>
<li>Creiamo, se non l'abbiamo già fatto prima, una directory in cui porre tutti i file che dovranno far parte del pacchetto, e indichiamo a make di <em>creare una gerarchia di filesystem</em>tale da poter essere incorporata nel nostro pacchetto - poichè, in pratica, è come se facessimo credere al tool che la / si trova da un'altra parte), in questo modo:
<pre>mkdir -p $HOME/pacchetti/sane; make install DESTDIR=$HOME/pacchetti/sane</pre>
</li>
<li>Ripetiamo dal passaggio 1 al passaggio 5 (escluso il 4) per sane-frontends-1.0.14.tar.gz</li>
<li>Spostiamoci nella directory che contiene i file da includere nel pacchetto, e creiamo una subdirectory /install:
<pre>cd $HOME/pacchetti/sane; mkdir install</pre>
</li>
<li>Creiamo un file di testo, slack-desc, nella directory install, scrivendo quanto segue:
<pre># HOW TO EDIT THIS FILE:
# The "handy ruler" below makes it easier to edit a package description.  Line
# up the first '&#124;' above the ':' following the base package name, and the '&#124;' on
# the right side marks the last column you can put a character in.  You must make
# exactly 11 lines for the formatting to be correct.  It's also customary to
# leave one space after the ':'.   

    &#124;-----handy-ruler------------------------------------------------------&#124;
sane: sane (Scanner Access Now Easy) - backends v1.0.18, frontends v1.0.14
sane:
sane: SANE is a universal scanner interface that provides standardized
sane: access to any raster image scanner hardware, such as flatbed scanners,
sane: hand-held scanners, video and still cameras, frame-grabbers, and other
sane: similar devices.
sane:
sane: This package has been built on an i686 Slackware 10.2 box, and requires
sane: libgphoto2 from the Slacky.it (http://www.slacky.it/) repository.
sane:
sane:</pre>
</li>
<li>Usciamo dall'editor.</li>
<li>Spostiamoci nella directory parent, e avviamo <em>makepkg</em>, specificando il nome del pacchetto da creare:
<pre>cd ..; makepkg sane-1.0.18-i686-1.tgz</pre>
</li>
</ol>
<p>Vi verranno poste alcune semplici domande: rispondete sì alla richiesta di cancellare i link simbolici (verranno ricreati per mezzo di uno script che sarà salvato in ./install/doinst.sh - script che potrete modificare a vostro piacimento in seguito, magari ricreando successivamente il pacchetto), e in breve tempo dovreste avere un pacchetto pronto da installare e gestire con le usuali utility di manutenzione Slackware (installpkg, removepkg, ...).</p>
<p>Hope this helps! :-D</p>
<p><em>(Edit del 24/09/2006: Alcuni pacchetti creati da me sono, da oggi, disponibili <a href="http://www.mediafire.com/?sharekey=e8dc9861b7196c0591b20cc0d07ba4d27ee533d6a70c91f7" target="_blank">qui</a>.)</em></p>
]]></content:encoded>
</item>

</channel>
</rss>
