<?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>Politreco &#187; profusion</title>
	<atom:link href="http://www.politreco.com/tag/profusion/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.politreco.com</link>
	<description>by Lucas De Marchi</description>
	<lastBuildDate>Fri, 06 Jan 2012 04:50:03 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>ANNOUNCE: kmod 3</title>
		<link>http://www.politreco.com/2012/01/announce-kmod-3/</link>
		<comments>http://www.politreco.com/2012/01/announce-kmod-3/#comments</comments>
		<pubDate>Fri, 06 Jan 2012 04:50:03 +0000</pubDate>
		<dc:creator>Lucas De Marchi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[kmod]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[profusion]]></category>

		<guid isPermaLink="false">http://www.politreco.com/?p=682</guid>
		<description><![CDATA[Hey, kmod 3 is out. Really nice to finish this release. I was hoping to have it between the holidays, but there were some major bugs pending. It&#8217;s nice to see udev from git already using it instead of calling modprobe for each module. Kay reported a hundred less forks on bootup after start using [...]]]></description>
			<content:encoded><![CDATA[<p>Hey, kmod 3 is out. Really nice to finish this release. I was hoping to have it between the holidays, but there were some major bugs pending. It&#8217;s nice to see udev from git already using it instead of calling modprobe for each module. Kay reported a hundred less forks on bootup after start using libkmod and libblkid.</p>
<p>It&#8217;s nice too receive feedback about other architectures that we don&#8217;t have access, too. With kmod 3, sh4 joined the other architectures that were tested with kmod.</p>
<p>Since I&#8217;m already doing the announcements to the mailing lists, I&#8217;ll not repeat the NEWS here. Just look at the <a href="http://www.spinics.net/lists/linux-modules/msg00637.html">archives</a> if you didn&#8217;t receive the email.</p>
<p>Happy new year!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2012/01/announce-kmod-3/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ANNOUNCE: kmod 2</title>
		<link>http://www.politreco.com/2011/12/announce-kmod-2/</link>
		<comments>http://www.politreco.com/2011/12/announce-kmod-2/#comments</comments>
		<pubDate>Wed, 21 Dec 2011 02:40:31 +0000</pubDate>
		<dc:creator>Lucas De Marchi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[kmod]]></category>
		<category><![CDATA[profusion]]></category>

		<guid isPermaLink="false">http://www.politreco.com/?p=664</guid>
		<description><![CDATA[I&#8217;m glad to announce the second version of kmod.  I&#8217;m sorry for not sending the first version to the mailing lists. Now I&#8217;m both writing it here and sending to the mailing list. I thank very much the feedback received for the first version and that now Jon Masters, the maintainer of module-init-tools, is helping us with kmod [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m glad to announce the second version of kmod.  I&#8217;m sorry for not sending the first version to the mailing lists. Now I&#8217;m both writing it here and sending to the mailing list.</p>
<p>I thank very much the feedback received for the first version and that now Jon Masters, the maintainer of module-init-tools, is helping us with kmod and already announced that <a href="http://www.jonmasters.org/blog/2011/12/20/libkmod-replaces-module-init-tools/">kmod will replace module-init-tools in future</a>.</p>
<p>I&#8217;d like to especially thank Tom Gundersen, Dave Reisner, Marco d&#8217;Itri, Jon Masters, Luis Strano, Jan Engelhardt and Kay Sievers who have been extensively testing kmod and helping with compatibility with previous tools. Right now kmod is tested in i686, x86_64, sparcv9, powepc64, s390 and ARM. More testers are greatly appreciated, especially for architectures not mentioned here.</p>
<p>News for this version are (copying from NEWS file):</p>
<p>Some bugs fixed: the worst of them was with an infinite loop when an alias matched more than one module.</p>
<ul>
<li>New APIs in libkmod to:</li>
<ul style="margin-left: 2.5em;">
<li>Get soft dependencies</li>
<li>Get info from module files parsing ELF</li>
<li>Get modversions from files parsing ELF</li>
</ul>
<li>Support to load gzipped kernel modules: kmod can be compiled with support to  gzipped modules by giving the &#8211;enable-zlib flag</li>
<li>Support to forcefully load modules, both vermagic and modversion</li>
<li>Support to force and nowait removal flags</li>
<li>Configuration files are parsed in the same order as modprobe: files are  sorted alphabetically (independently of their dir) and files with the same name obey a precedence order</li>
<li>New tool: kmod-modinfo</li>
<li>kmod-modprobe gained several features to be a 1:1 replacement for modprobe.  The only missing things are the options &#8216;&#8211;showconfig&#8217; and &#8216;-t / -l&#8217;. These  last ones have been deprecated long ago and they will be removed from  modprobe. A lot of effort has been put on kmod-modprobe to ensure it maintains compabitility with modprobe.</li>
<li>linux-modules@vger.kernel.org became the official mailing list for kmod</li>
</ul>
<p>For the next version, we plan to migrate our git repository to kernel.org. Meanwhile, git repository can be found at <a href="http://git.profusion.mobi/cgit.cgi/kmod.git/">http://git.profusion.mobi/cgit.cgi/kmod.git/</a> and packages at <a href="http://packages.profusion.mobi/kmod/">http://packages.profusion.mobi/kmod/</a></p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2011/12/announce-kmod-2/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Given enough eyeballs, all bugs are shallow</title>
		<link>http://www.politreco.com/2011/12/given-enough-eyeballs-all-bugs-are-shallow/</link>
		<comments>http://www.politreco.com/2011/12/given-enough-eyeballs-all-bugs-are-shallow/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 06:59:36 +0000</pubDate>
		<dc:creator>Lucas De Marchi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[kmod]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[profusion]]></category>

		<guid isPermaLink="false">http://www.politreco.com/?p=658</guid>
		<description><![CDATA[So, in last post I said kmod 2 could be released sooner than expected if there were major bugs. Not as much as a surprise, there was 1: depending on the alias passed to the lookup function we were blocked iterating a list. It&#8217;s now fixed in git tree. Thanks to Ulisses Furquim for fixing [...]]]></description>
			<content:encoded><![CDATA[<p>So, in last post I said kmod 2 could be released sooner than expected if there were major bugs. Not as much as a surprise, there was 1: depending on the alias passed to the lookup function we were blocked iterating a list.</p>
<p>It&#8217;s now fixed in git tree. Thanks to Ulisses Furquim for fixing it and Dave Reisner for the bug report. We already have some other great stuff implemented so we&#8217;ll soon have another release.</p>
<p>Another great news is that now we have the maintainer of module-init-tools (Jon Masters) cooperating with us. We will discuss how the two projects will co-exist/merge. So, for now on the official mailing list of the project is linux-modules@vger.kernel.org.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2011/12/given-enough-eyeballs-all-bugs-are-shallow/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ANNOUNCE: kmod 1</title>
		<link>http://www.politreco.com/2011/12/announce-kmod-1/</link>
		<comments>http://www.politreco.com/2011/12/announce-kmod-1/#comments</comments>
		<pubDate>Thu, 15 Dec 2011 02:05:31 +0000</pubDate>
		<dc:creator>Lucas De Marchi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[kmod]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[profusion]]></category>

		<guid isPermaLink="false">http://www.politreco.com/?p=613</guid>
		<description><![CDATA[For some weeks now I and Gustavo Barbieri at ProFUSION have been working on a new library and a set of tools, libkmod and kmod respectively. This is the announcement of its first public release. Overview The goal of the new library libkmod is to offer to other programs the needed flexibility and fine grained [...]]]></description>
			<content:encoded><![CDATA[<p>For some weeks now I and Gustavo Barbieri at ProFUSION have been working on a new library and a set of tools, libkmod and kmod respectively. This is the announcement of its first public release.</p>
<h3>Overview</h3>
<p>The goal of the new library libkmod is to offer to other programs the needed flexibility and fine grained control over insertion, removal, configuration and listing of kernel modules. Using the library, with simple pieces of code it&#8217;s possible to interact with kernel modules and then there&#8217;s no need to rely on other tools for that. This is a thing lacking on Linux for a while and it&#8217;s one of the items in the <a href="http://0pointer.de/blog/projects/plumbers-wishlist.html">Plumber’s Wish List for Linux</a>. Quoting it:</p>
<blockquote><p>provide a proper libmodprobe.so from module-init-tools:<br />
Early boot tools, installers, driver install disks want to access<br />
information about available modules to optimize bootup handling.</p></blockquote>
<p>We went one step further and not only we are able now to give an API to load and remove kernel module, but also all the other common operations are being added to this API. The first user for this API will be udev. In a recent Linux Desktop (and also several embedded systems) when computer is booting up, udev is responsible for checking available hardware, creating device nodes under /dev (or at least configuring their permissions) and loading kernel modules for the available hardware. In a kernel from a distribution it&#8217;s pretty common to put most of the things as modules. Udev reads the /sys filesystem to check the available hardware and tries to load the necessary modules. This translates in hundreds of calls to the modprobe binary, and in several of them just to know the module is already loaded, or it&#8217;s in-kernel. With libkmod it&#8217;s possible for udev with a few lines of code to do all the job, benefiting from the configurations and indexes already opened and parsed. We&#8217;ve been talking to Kay Sievers (udev&#8217;s mantainter) and Lennart Poettering (systemd&#8217;s maintainer) regarding this and we are looking forward to have udev using libkmod soon.</p>
<p><strong>Example code:</strong></p>
<p>To insert a module by name without any options and strange configurations it&#8217;s sufficient to do as following (without treating errors for easy of comprehension &#8211; see the documentation for possible errors):</p>

<div class="wp_syntax"><div class="code"><pre class="c" style="font-family:monospace;">	<span style="color: #993333;">struct</span> kmod_ctx <span style="color: #339933;">*</span>ctx <span style="color: #339933;">=</span> kmod_new<span style="color: #009900;">&#40;</span>NULL<span style="color: #339933;">,</span> NULL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	<span style="color: #993333;">struct</span> kmod_module <span style="color: #339933;">*</span>mod<span style="color: #339933;">;</span>
	kmod_module_new_from_name<span style="color: #009900;">&#40;</span>ctx<span style="color: #339933;">,</span> name<span style="color: #339933;">,</span> <span style="color: #339933;">&amp;</span>mod<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	kmod_module_insert_module<span style="color: #009900;">&#40;</span>mod<span style="color: #339933;">,</span> <span style="color: #0000dd;">0</span><span style="color: #339933;">,</span> NULL<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	kmod_module_unref<span style="color: #009900;">&#40;</span>mod<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
	kmod_unref<span style="color: #009900;">&#40;</span>ctx<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<h3>Tools</h3>
<p>Besides doing the library, we are re-designing the module-init-tools tools on top of the new API we created. With this first version we are already providing compatible binaries for lsmod, rmmod, insmod and modprobe, the last one with some functionality missing. Next versions we plan to fill the gaps with the provided tools and provide all the others like depmod and modinfo.</p>
<h3>License</h3>
<p>We try to avoid issues regarding licences: the library is licensed under &#8220;LGPLv2 or later&#8221; and the tools are under &#8220;GPLv2 or later&#8221;. There&#8217;s still lots of work to be done and places to optimize. We greatly appreciate contribution from other developers.</p>
<h3>Roadmap</h3>
<p>The API is not set on stone and is going to suffer some changes in future releases as we see fit to finish implementing all the tools. Below is the list of the features already implemented</p>
<p><strong>kmod 1</strong></p>
<p>libkmod provides the necessary API for:</p>
<ul style="margin-left: 2.5em;">
<li>List modules currently loaded</li>
<li>Get information about loaded modules such as initstate, refcount, holders, sections, address and size</li>
<li>Lookup modules by alias, module name or path</li>
<li>Insert modules: options from configuration and extra options can be passed, but flags are not implemented, yet</li>
<li>Remove modules</li>
<li>Filter list of modules using blacklist</li>
<li>For each module, get the its list of options and install/remove commands</li>
<li>Indexes can be loaded on startup to speedup lookups later</li>
</ul>
<p>Tools provided with the same set of options as in module-init-tools:</p>
<ul style="margin-left: 2.5em;">
<li>kmod-lsmod</li>
<li>kmod-insmod</li>
<li>kmod-rmmod</li>
<li>kmod-modprobe, with some functionality still missing (use of softdep, dump configuration, show modversions)</li>
</ul>
<p>Following is a rough roadmap for future releases:</p>
<p><strong>kmod 2</strong></p>
<ul style="margin-left: 2.5em;">
<li>Provide the API for features missing in kmod-modprobe, namely: dump configuration and indexes, soft dependencies, install and remove commands. Features relying on ELF manipulation will still be missing;</li>
<li>Provide all the tools available in module-init-tools. Some of them like depmod may be entirely copied from module-init-tools for later convertion;</li>
</ul>
<p><strong>kmod 3</strong></p>
<ul style="margin-left: 2.5em;">
<li>Provide a single <strong>kmod</strong> tool that will abstract all the others, accepting commands like &#8220;kmod list&#8221;, &#8220;kmod remove&#8221;, &#8220;kmod insert&#8221;. Distributions may then use symlinks from current tools to the kmod binary and we can kill the &#8216;kmod-*&#8217; test tools that we are introducing in kmod 1;</li>
</ul>
<p>We thoroughly test the features implemented in kmod, but like any other software it&#8217;s possible to contain bugs that we didn&#8217;t find; we may decide to release new versions between the versions above and then this numbers change. Otherwise kmod 2 will already be sufficient for udev to pick it up as a dependency and start benefiting from the fine grained control over its operations with kernel modules.</p>
<h3>Repositories</h3>
<p>The repository for this project is located at <a href="http://git.profusion.mobi/cgit.cgi/kmod.git/">http://git.profusion.mobi/cgit.cgi/kmod.git/</a></p>
<p>Package with kmod 1 source code can be downloaded from: <a href="http://packages.profusion.mobi/kmod/">http://packages.profusion.mobi/kmod/</a></p>
<h3>Thanks</h3>
<p>Last I&#8217;d like to thank <strong>Kay Sievers</strong> for his support in reviewing code, giving advices and helping to design kmod.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2011/12/announce-kmod-1/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>Becoming social&#8230;</title>
		<link>http://www.politreco.com/2011/12/becoming-social/</link>
		<comments>http://www.politreco.com/2011/12/becoming-social/#comments</comments>
		<pubDate>Fri, 02 Dec 2011 13:12:20 +0000</pubDate>
		<dc:creator>Lucas De Marchi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[profusion]]></category>

		<guid isPermaLink="false">http://www.politreco.com/?p=592</guid>
		<description><![CDATA[I&#8217;ve just installed a plugin in my blog to display the common social sites below each post. From now on, if you like a post you can share it with the world using your preferred social media. I&#8217;m using the Socialize plugin in WordPress. I&#8217;m not sure if it&#8217;s the best one: I just installed [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve just installed a plugin in my blog to display the common social sites below each post. From now on, if you like a post you can share it with the world using your preferred social media.</p>
<p>I&#8217;m using the <strong>Socialize</strong> plugin in WordPress. I&#8217;m not sure if it&#8217;s the best one: I just installed and checked it works. Any advices?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2011/12/becoming-social/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AndroidConf 2011</title>
		<link>http://www.politreco.com/2011/11/androidconf-2011/</link>
		<comments>http://www.politreco.com/2011/11/androidconf-2011/#comments</comments>
		<pubDate>Sat, 26 Nov 2011 19:17:35 +0000</pubDate>
		<dc:creator>Lucas De Marchi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[open source]]></category>
		<category><![CDATA[profusion]]></category>

		<guid isPermaLink="false">http://www.politreco.com/?p=586</guid>
		<description><![CDATA[Hoje dei uma palestra na AndroidConf sobre &#8220;Modificando a API do Android&#8221;. Referências ao projeto que falei sobre AVRCP podem ser encontradas em um post meu anterior. Estou disponibilizando abaixo os slides. EDIÇÃO 02/12/2011: coloquei uma nota no slide 7, relatando o que falei durante a apresentação sobre uso de IDE. Para aqueles que não [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje dei uma palestra na AndroidConf sobre &#8220;Modificando a API do Android&#8221;. Referências ao projeto que falei sobre AVRCP podem ser encontradas em um <a href="http://www.politreco.com/2011/10/avrcp-1-3-on-bluez/" target="_blank">post meu anterior</a>. Estou disponibilizando abaixo os slides.</p>
<p><strong>EDIÇÃO 02/12/2011:</strong> coloquei uma nota no slide 7, relatando o que falei durante a apresentação sobre uso de IDE.</p>
<p><iframe src="https://docs.google.com/presentation/embed?id=1rw8-JpZcdj-g9UXh6oCJ0WI9ZjqdkouAw2wFx8um5rM&amp;start=false&amp;loop=false&amp;delayms=3000" frameborder="0" width="480" height="389"></iframe></p>
<p>Para aqueles que não conseguem visualizar acima, segue o <a href="https://docs.google.com/presentation/pub?id=1rw8-JpZcdj-g9UXh6oCJ0WI9ZjqdkouAw2wFx8um5rM&amp;start=false&amp;loop=false&amp;delayms=3000">link direto</a> para a apresentação.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2011/11/androidconf-2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>LinuxCon Brazil</title>
		<link>http://www.politreco.com/2011/11/linuxcon-brazil/</link>
		<comments>http://www.politreco.com/2011/11/linuxcon-brazil/#comments</comments>
		<pubDate>Sat, 19 Nov 2011 19:54:40 +0000</pubDate>
		<dc:creator>Lucas De Marchi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[profusion]]></category>

		<guid isPermaLink="false">http://www.politreco.com/?p=572</guid>
		<description><![CDATA[I&#8217;m back from LinuxCon Brazil, that was held in Sao Paulo on 17 and 18 November. Before the first keynote, ProFUSION was announced as becoming member of Linux Foundation ! Our logo is already in their members page. It was also a great time to talk again to some developers I met in LinuxCon Europe last month [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m back from LinuxCon Brazil, that was held in Sao Paulo on 17 and 18 November. Before the first keynote, ProFUSION was announced as becoming member of Linux Foundation <img src='http://www.politreco.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ! Our logo is already in their <a href="http://www.linuxfoundation.org/about/members" target="_blank">members page</a>.</p>
<p>It was also a great time to talk again to some developers I met in LinuxCon Europe last month and some that were not present there. One talk I really like was given by Eugeni Dodonov about the Intel Linux Graphics stack. It was a good overview of all the graphics stack in Linux, paying attention to Intel&#8217;s boards and drivers. Gustavo Barbieri talked about HTML5 and WebKit and other 2 ProFUSION&#8217;s employees &#8212; Rafael Antognolli and Bruno Dilly &#8212; presented &#8220;Application Development using Enlightenment Foundation (EFL)&#8221;</p>
<p>This time I also gave a presentation entitled &#8220;How to become an open source developer&#8221;. My focus was on the Brazilian crowd out there, willing to start to contribute to open source projects, looking for a job or just trying to understand why we do open source development. I hope it was useful for them and for you reading this blog, too. So, below are the slides of my presentation:</p>
<p><iframe src="http://docs.google.com/gview?url=http://www.politreco.com/files/presentation-linuxcon-brasil-2011.pdf&#038;embedded=true" style="width:640px; height:480px;" frameborder="0"></iframe></p>
<p>For those of you who can not see the file embedded above or want the direct link, <a title="How to become an open source developer" href="http://www.politreco.com/files/presentation-linuxcon-brasil-2011.pdf" target="_blank">here it&#8217;s in PDF format</a>.</p>
<p>I also talked to some important people regarding a new project of mine. Stay tuned for a new library soon.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2011/11/linuxcon-brazil/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Back from Kernel Summit, LinuxCon Europe and ELCE</title>
		<link>http://www.politreco.com/2011/11/back-from-kernel-summit-linuxcon-europe-and-elce/</link>
		<comments>http://www.politreco.com/2011/11/back-from-kernel-summit-linuxcon-europe-and-elce/#comments</comments>
		<pubDate>Thu, 03 Nov 2011 22:20:47 +0000</pubDate>
		<dc:creator>Lucas De Marchi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[profusion]]></category>

		<guid isPermaLink="false">http://www.politreco.com/?p=557</guid>
		<description><![CDATA[Last week from 23-Oct to 28-Oct I was at 3 conferences in Prague, Czech Republic, together with Gustavo Barbieri, Gustavo Padovan and Ulisses Furquim: the ProFUSION crew in Prague. Starting from Kernel Summit, I had the opportunity to join the Bluetooth Summit and participate in the discussions regarding this subsystem in Linux, both in kernel and user space. We had a [...]]]></description>
			<content:encoded><![CDATA[<p>Last week from 23-Oct to 28-Oct I was at 3 conferences in Prague, Czech Republic, together with Gustavo Barbieri, Gustavo Padovan and Ulisses Furquim: the ProFUSION crew in Prague.</p>
<p>Starting from Kernel Summit, I had the opportunity to join the Bluetooth Summit and participate in the discussions regarding this subsystem in Linux, both in kernel and user space. We had a lot of hot topics to discuss, including the upcoming BlueZ 5.0, Bluetooth 3.0 (high speed), Bluetooth 4.0 (low energy) and I could also demonstrate the work I&#8217;ve been doing with the AVRCP profile. I&#8217;m glad it received a good acceptance from other developers. Some of them I didn&#8217;t know personally such as Luiz von Dentz, Claudio Takahasi, Vinicius Gomes. Others I had the pleasure to meet again like Marcel Holtmann and Johan Hedberg.</p>
<p style="padding-left: 30px;">(We didn&#8217;t discuss only bluetooth related things. We noticed that more than 1/3 of the people there, working in the core of Bluetooth in Linux, was Brazilian and soon we were discussing with Samuel Ortis &#8211; a French, maintainer of ConnMan &#8211; who is the best soccer player <img src='http://www.politreco.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .)</p>
<p>Daniel Wagner from BMW also brought up some interesting scenarios of multiple devices connected through Bluetooth in car kits and helmets (<a href="http://www.ultimatemotorcycling.com/BMW_Sport_Helmet_Bluetooth">like this one</a>): HFP, A2DP, HSP (and maybe also AVRCP?). All of them interacting and working together at the same time. Since the gstreamer conference was also taking place at the same facility we could also discuss with PulseAudio developers. In the end, it seems BlueZ and PulseAudio are working pretty well together, though we still have to polish some rough edges for some use cases like this.</p>
<p>Being at Kernel Summit was a great time to meet developers of other parts of the kernel too, such as Steven Rostetd and Peter Zylstra, with whom I had more contact some time ago when I was working in the Linux scheduler.</p>
<p>When the Kernel Summit was over (on Tuesday), LinuxCon and ELCE were taking off. It was great to have once more these two conferences collocated and being able to attend talks on both of them. There were several talks I&#8217;d like to attend but some of them were overlapping. <del>I&#8217;m looking forward to see the recorded talks later this year</del>[1]. It would be too extensive to detail each one here, so I&#8217;m just detailing some of them that grabbed more attention from me.</p>
<p>Gustavo Barbieri and Sulamita Garcia talked about <strong>Demistifying HTML5</strong> and how it can be used to develop Apps. Gustavo focused on the EFL port of WebKit (in which I&#8217;m one of the developers <img src='http://www.politreco.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> ) and the underlying technologies. It seems like the mentality of &#8220;let&#8217;s do apps in a very high-level language&#8221; instead of &#8220;providing a native language in a sdk&#8221; is coming back. Differently from what happened some years ago, this time maybe it will work out. Only future will show us.</p>
<p>Since this year I got involved with Android and development of the platform, I went to several Android-related talks. <strong>Leveraging Android&#8217;s Linux Heritage</strong> was really good stuff, showing how to replace some parts of the Android platform: bash instead of the I-wanna-be-a-shell that comes with Android by default, putting gstreamer in, optimizing some parts of the code, etc. In the same tune there was another talk entitled <strong>Build Community Android Distribution and Ensure the Quality</strong>. Interesting (but not surprising) to see how hard is to contribute to AOSP and how Android is much different from other open source projects we are used to.</p>
<p>Another interrelated areas that I have interest in (maybe because I work for a company related to embedded systems <img src='http://www.politreco.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> ) are system initialization, fast boot and development boards (such as Pandaboard). Therefore I attended<strong> systemd Administration in the Enterprise</strong> and<strong> Integrating systemd: Booting Userspace in Less Than 1 Second</strong>. The former, given by Lennart and Kay, focused on detailing some systemd features for guys running enterprise servers while in the latter Koen told us about his experience reducing boot time by using systemd in a Pandaboard. In this last talk I also met Jean Christophe, one of the developers of barebox (a bootloader aiming to replace U-Boot). Last time I checked, pandaboard was not in the list of supported boards but I was greatly surprised that now it is. Barebox has the advantages of running with caches enabled, having an architecture much more beautiful and being much faster than u-boot. In summary, IMHO it&#8217;s a bootloader done right.</p>
<p>Other interesting talk was <strong>Tuning Linux For Embedded Systems: When Less is More</strong>, in which Darren Hart gave instructions to reduce boot time and image size in very resource constrained scenarios (he was aiming a rootfs of only 4MB and total boot time under a second). Some key things to know is how to investigate what is not important to the application, what can be removed from kernel/userspace in order to fit the requirements and when to replace, why to replace and what to replace. Last but not least, in <strong>Developing Embedded Linux Devices Using the Yocto Project and What’s new in 1.1</strong> David Stewart gave a <em>status quo</em> of the Yocto project. Interesting how the project evolved over this year and next time someone doing embedded systems think about ruling out its own distro from scratch, it would be good to look at Yocto.</p>
<p>I met a lot of other people for whom I apologize not citing their name here. This post would be yet bigger than it already is. I had a really great time their and I hope to continue going to these conferences. And the next one is <a href="https://events.linuxfoundation.org/events/linuxcon-brazil">LinuxCon Brazil</a>, in which I&#8217;ll talk about <a href="https://events.linuxfoundation.org/events/linuxcon-brazil/marchi">How to Become an Open Source Developer</a>. I look forward to seeing all of you there.</p>
<p>&nbsp;</p>
<p>I&#8217;d like to thank the Linux Foundation for organizing such a great event and ProFUSION to allowing and sponsoring me to be there.</p>
<p>Side note: the problem is that now I want to do a lot of things in different projects without having time to to: systemd, Linux kernel, BlueZ, pandaboard, barebox, Android, etc <img src='http://www.politreco.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>&nbsp;</p>
<p>[1] UPDATE: videos have been published - <a href="http://free-electrons.com/blog/elce-2011-videos/">http://free-electrons.com/blog/elce-2011-videos/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2011/11/back-from-kernel-summit-linuxcon-europe-and-elce/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>AVRCP 1.3 on BlueZ</title>
		<link>http://www.politreco.com/2011/10/avrcp-1-3-on-bluez/</link>
		<comments>http://www.politreco.com/2011/10/avrcp-1-3-on-bluez/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 19:42:50 +0000</pubDate>
		<dc:creator>Lucas De Marchi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[Bluetooth]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[profusion]]></category>

		<guid isPermaLink="false">http://www.politreco.com/?p=532</guid>
		<description><![CDATA[During the past weeks I&#8217;ve been working again on the BlueZ project and now we can finally announce that the AVRCP 1.3 profile is officially supported. Technical background For those who don&#8217;t know what I&#8217;m talking about, here comes a little background for those buzzwords: BlueZ is the user-space part of the Bluetooth® technology stack [...]]]></description>
			<content:encoded><![CDATA[<p>During the past weeks I&#8217;ve been working again on the <a href="http://www.bluez.org/">BlueZ</a> project and now we can finally announce that the AVRCP 1.3 profile is officially supported.</p>
<h2>Technical background</h2>
<p>For those who don&#8217;t know what I&#8217;m talking about, here comes a little background for those buzzwords:</p>
<p>BlueZ is the user-space part of the Bluetooth® technology stack used on Linux and Android. It has support for several Bluetooth profiles such as RFCOMM, HID, PAN, PBAP, OBEX, HFP, A2DP (some of them are implemented as separate projects) that are defined by the <a href="https://www.bluetooth.org">Bluetooh SIG</a>. In simpler terms, BlueZ is what allows your Linux device to do amazing things with Bluetooth technology such as stream stereo music, make phone calls and other wireless magics.</p>
<p>One of these profiles supported by BlueZ is AVRCP (Audio/Video Remote Control Profile), which allows two devices to communicate through Bluetooth technology and exchange commands/messages to control the music/video being played.</p>
<h2>New features</h2>
<p>Until some weeks ago BlueZ only had support for version 1.0 of the AVRCP protocol. This early version allows a Controller device (e.g. a Bluetooth technology-based car kit) to tell the Target device (e.g. a smartphone) to play, pause, go to next music and go to previous music. We&#8217;ve now upstreamed an implementation of AVRCP Version 1.3, which adds some nice features to the previously supported version, such as:</p>
<ul>
<li>Transmitting metadata of the music being played;</li>
<li>Change Application Settings such as Equalizer, Repeat, Shuffle and Scan modes;</li>
<li>Set current status of media playback: playing, stopped, paused, forward-seeking, reverse-seeking.</li>
</ul>
<p>Some time ago I bought a Bluetooth stereo car kit. How boring it was having the ability to stream music from my phone but not see any information regarding who was playing, which album, etc. This is no more. Now we have proper support for AVRCP 1.3 <img src='http://www.politreco.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Our <a title="ProFUSION embedded systems" href="http://profusion.mobi">ProFUSION</a> team utilized the open source baseport for the OMAP™ processor-based Blaze™ mobile development platform from Texas Instruments Incorporated (TI) to help achieve this milestone. Additionally, we worked together with TI on testing and debugging to make this AVRCP 1.3 support a reality. Below you can see yours truly holding a Blaze™ mobile development platform from TI, sending music metadata to a Bluetooth technology-enabled car kit.</p>
<p style="text-align: center;"><a href="http://www.politreco.com/wp-content/uploads/2011/09/android_ti_avrcp_13.jpg"><img class="aligncenter size-full wp-image-542" title="android_ti_avrcp_13" src="http://www.politreco.com/wp-content/uploads/2011/09/android_ti_avrcp_13.jpg" alt="" width="538" height="403" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2011/10/avrcp-1-3-on-bluez/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>ANNOUNCE: codespell 1.2</title>
		<link>http://www.politreco.com/2011/09/announce-codespell-1-2/</link>
		<comments>http://www.politreco.com/2011/09/announce-codespell-1-2/#comments</comments>
		<pubDate>Fri, 30 Sep 2011 15:24:54 +0000</pubDate>
		<dc:creator>Lucas De Marchi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[codespell]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[profusion]]></category>

		<guid isPermaLink="false">http://www.politreco.com/?p=550</guid>
		<description><![CDATA[Since I created a mailing list for codespell, the announcements here will not have as many details as before. Checkout the new version of codespell: http://groups.google.com/group/codespell/browse_thread/thread/bce1a6f83d4bbd85 One of the issues I with codespell was that it was trying to parse cscope.out, since it&#8217;s a text file. On Linux Kernel this file can get very big and [...]]]></description>
			<content:encoded><![CDATA[<p>Since I created a mailing list for codespell, the announcements here will not have as many details as before. Checkout the new version of codespell: <a href="http://groups.google.com/group/codespell/browse_thread/thread/bce1a6f83d4bbd85">http://groups.google.com/group/codespell/browse_thread/thread/bce1a6f83d4bbd85</a></p>
<p>One of the issues I with codespell was that it was trying to parse cscope.out, since it&#8217;s a text file. On Linux Kernel this file can get very big and besides taking much longer, sometimes it was running out of memory <img src='http://www.politreco.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> . Now codespell has an option to ignore files, even text ones. It&#8217;s as easy as passing <strong>&#8211;skip=&#8221;*.eps,cscope.out&#8221;</strong> (notice this is useful for ignoring eps images too). Another useful thing (not much for Linux Kernel though) is proper detection of encoding by using chardet.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2011/09/announce-codespell-1-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

