<?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>Col senno di poi &#187; polimi</title>
	<atom:link href="http://blog.bardland.org/category/polimi/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.bardland.org</link>
	<description>inno alla procrastinazione</description>
	<lastBuildDate>Tue, 31 Aug 2010 14:31:49 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Voli (quasi) pindarici, ovvero: come una birra Moretti e delle capsule in gomma mi hanno costretto a mettere mano al kernel</title>
		<link>http://blog.bardland.org/2008/01/16/voli-quasi-pindarici-ovvero-come-una-birra-moretti-e-delle-capsule-in-gomma-mi-hanno-costretto-a-mettere-mano-al-kernel/</link>
		<comments>http://blog.bardland.org/2008/01/16/voli-quasi-pindarici-ovvero-come-una-birra-moretti-e-delle-capsule-in-gomma-mi-hanno-costretto-a-mettere-mano-al-kernel/#comments</comments>
		<pubDate>Wed, 16 Jan 2008 12:07:08 +0000</pubDate>
		<dc:creator>bardo</dc:creator>
				<category><![CDATA[g33k1ng around]]></category>
		<category><![CDATA[polimi]]></category>
		<category><![CDATA[uni]]></category>
		<category><![CDATA[backlight]]></category>
		<category><![CDATA[birra]]></category>
		<category><![CDATA[fn]]></category>
		<category><![CDATA[https]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[lcd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[module]]></category>
		<category><![CDATA[moretti]]></category>
		<category><![CDATA[nerd]]></category>
		<category><![CDATA[omnibook]]></category>
		<category><![CDATA[patch]]></category>
		<category><![CDATA[politecnico]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[tastiera]]></category>

		<guid isPermaLink="false">http://www.bardland.org/blog/2008/01/16/voli-quasi-pindarici-ovvero-come-una-birra-moretti-e-delle-capsule-in-gomma-mi-hanno-costretto-a-mettere-mano-al-kernel/</guid>
		<description><![CDATA[È stato un Capodanno difficile per il mio portatile: non ha particolarmente apprezzato la Moretti che gli è stata versata sulla tastiera. In effetti neanche io sono un grande estimatore della suddetta. Un&#8217;azione tempestiva mi ha permesso di salvare quasi tutto, ma un ferito è rimasto sul campo di battaglia: la tastiera, inebriata dall&#8217;alcool, ha [...]]]></description>
			<content:encoded><![CDATA[<p>È stato un Capodanno difficile per il mio portatile: non ha particolarmente apprezzato la Moretti che gli è stata versata sulla tastiera. In effetti neanche io sono un grande estimatore della suddetta. Un&#8217;azione tempestiva mi ha permesso di salvare quasi tutto, ma un ferito è rimasto sul campo di battaglia: la tastiera, inebriata dall&#8217;alcool, ha iniziato a sputare fuori caratteri casuali a gruppi di tre o quattro.</p>
<p>Questo è l&#8217;inizio dell&#8217;odissea: recuperata dell&#8217;acqua demineralizzata ho smontato la tastiera pezzo per pezzo e ci ho dato una bella lavata, ma purtroppo non l&#8217;ho potuta rimontare. Durante il lavaggio, infatti, si sono staccate le capsule di quattro tasti, e finché non avrò deciso qual è il metodo più furbo per reincollarle mi toccherà girare con una tastiera usb nello zaino: non è il massimo della vita, ma fa davvero figo avere la scheda madre a vista e la tastiera retroilluminata <img src='http://blog.bardland.org/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Così armato ero convinto di poter resistere, ma avevo fatto i conti senza l&#8217;oste: la mia tastiera infatti, essendo da desktop, non ha il tasto <em>Fn</em>, che tra le varie cose mi serve a cambiare la luminosità dello schermo. Mi ritrovo quindi con uno schermo semibuio (l&#8217;ultima volta era stato usato di notte) ma poco male, mi dico, tanto posso sempre usare <em>xev</em> per intercettare i keycode e poi rimapparli con <em>xmodmap</em> sui tasti multimediali della tastiera usb. E invece no. Il mio splendido portatile, ho scoperto poche ore fa, non usa un metodo standard per la gestione dell&#8217;acpi, e invece di generare eventi da intercettare richiede un complesso sistema di polling.</p>
<p>Dopo qualche smanettamento infruttuoso mi capita in mano il modulo omnibook: lo usavo tempo fa proprio per gestire certe cose che l&#8217;acpi tradizionale non supporta, come ad esempio la temperatura del processore, la gestione delle ventole, il touchpad&#8230; e, vengo a sapere, lo schermo! Credo di potermela cavare compilandomi il modulo (che ovviamente non è stato inserito nel main tree), ma mi sbaglio di grosso. Le strutture del kernel per la gestione degli schermi lcd sono cambiate parecchio dall&#8217;ultima release del modulo, che risale a quasi un anno fa. Per fortuna nel repository svn sono state fatte le modifiche necessarie, quindi mi basta usare quello.</p>
<p>Sorvolo sulle problematiche tecniche di svn in https sulla rete (mal) proxata del Politecnico (<em>«Grazie amici!»</em>) che mi hanno costretto a patcharmi a mano i file necessari (a me bastava che compilasse, e l&#8217;operazione è stata piuttosto lunga modificando due soli file, non voglio pensare al resto). Procedo dunque pedissequamente all&#8217;inserimento di svariati blocchi del tipo <em>#if LINUX_VERSION_CODE &gt;= KERNEL_VERSION(2,6,21)</em> solo per trovarmi davanti a&#8230; un altro errore di compilazione!</p>
<p>Ora, io non ho mai veramente <em>letto</em> il codice di un modulo del kernel, men che meno mi è capitato di cercato di capire cosa non andasse per metterlo a posto. Questa volta mi è toccato farlo, dato che nessuno aveva ancora messo mano alla cosa. Vado a spulciare <em>linux/backlight.h</em>, <em>drivers/video/backlight/backlight.c</em> e relativi changelog per scoprire che la funzione <em>class_get_devdata(class_device *dev) </em>non si può più utilizzare, perché per le <em>backlit devices</em> è stata definita una funzione dedicata, <em>bl_get_data(backlight_device *bl_dev)</em>, incompatibile con la precedente. Sostituisco, lancio il make&#8230; compila! Certo non significa nulla, bisogna ancora verificare che funzioni&#8230; insmod&#8230; in /proc/omnibook vengono creati tutti i nodi necessari, lcd compreso.</p>
<p><em> [root@paradigm ~]# echo 7 &gt; /proc/omnibook/lcd</em></p>
<p>E luce fu.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.bardland.org/2008/01/16/voli-quasi-pindarici-ovvero-come-una-birra-moretti-e-delle-capsule-in-gomma-mi-hanno-costretto-a-mettere-mano-al-kernel/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>
