<?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</title>
	<atom:link href="http://www.politreco.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.politreco.com</link>
	<description>by Lucas De Marchi</description>
	<lastBuildDate>Tue, 20 Mar 2012 17:30:48 +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>ELC 2012</title>
		<link>http://www.politreco.com/2012/03/elc-2012/</link>
		<comments>http://www.politreco.com/2012/03/elc-2012/#comments</comments>
		<pubDate>Tue, 20 Mar 2012 17:30:48 +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=702</guid>
		<description><![CDATA[Hey, this is my feedback of ELC 2012. If you didn&#8217;t read the first part, about ABS 2012, you can read the previous post first. ELC is one of my favorite conferences as I can meet several talented people and have good talks about Linux in embedded devices. This time was not an exception and [...]]]></description>
			<content:encoded><![CDATA[<p>Hey, this is my feedback of ELC 2012. If you didn&#8217;t read the first part, about ABS 2012, you can read the <a href="http://www.politreco.com/2012/03/android-builders-summit-2012/">previous post</a> first.</p>
<p>ELC is one of my favorite conferences as I can meet several talented people and have good talks about Linux in embedded devices. This time was not an exception and I enjoyed very much. The main reason I was there was because I was going to present kmod, the new tool to manage kernel modules. But that would be only on the last day of the conference. Let&#8217;s start from the beginning.</p>
<p>To open the conference Jon Corbet gave his usual kernel report starting from January 2011 and going on through the events in each month: the mess in ARM, death of the big kernel lock, userspace code in kernel tree (should we put libreoffice there, too?) and so on. Following this keynote I went to see <a href="https://events.linuxfoundation.org/events/embedded-linux-conference/pallardy">Saving the Power Consumption of the Unused Memory</a>. Loïc Pallard from ST-Ericsson talked about how memory consumption in increasingly important in embedded devices for the total power consumption. We are going from the usual 512 MB on smartphones to 2 ~ 4 GB of DDR RAM. There are some techniques to reduce this the power drained and he presented the PASR framework, that allows the kernel to turn on/off specific banks/dies of memory since not all of them is used all the time. Later on talking to the guys from Chromium OS I realized that this is especially true when the device is sleeping. We may want to discard  caches (therefore use much less memory when in sleep mode) and then turn off banks not used. In my opinion the battery consumption is one of the most important today for embedded Linux devices: I&#8217;m tired to have to charge my smartphone every day or every X hours. I hope we can improve the current state by using techniques as the one presented in this talk.</p>
<p>In <a href="https://events.linuxfoundation.org/events/embedded-linux-conference/hudson">Embedded Linux Pitfalls</a> Sean Hudson from Mentor Graphics shared his experience while coming from closed embedded solutions to open source ones. Nice talk! I think people doing closed development should see presentations like this: one of the main reasons for failing in opensource is not being able to talk to each other: HW guys not talking to SW guys, NIH, not playing the rules of the communities and therefore having to carry a lot of patches, etc. I&#8217;ve always been involved with opensource so I don&#8217;t know very well how things work for companies doing closed development, but I do know that more often than not we see those companies trying to participate in communities/opensource and failing miserably. In my opinion one of the main reason is because they fail to talk, discuss and agree on the right solution with communities.</p>
<p>One of the best talks in ELC 2012 was <a href="https://events.linuxfoundation.org/events/embedded-linux-conference/mckenney">Making RCU Safe for Battery-Powered Devices</a>. Paul McKenney is one of the well known hackers of the Linux kernel, maintaining the RCU subsystem. Prior to this talk I had no idea RCU had anything to do with power consumption. He went through a series of slides showing how and why RCU got rewritten several times in the past years, how he solved the problems reported by community and how things get much more complicated with preemption and RT. He finished his presentation saying that the last decade was the most important of his carrier and that is because of the feedback he got from RCU being used in real life. I&#8217;d really love to see more people from Academia realizing this.</p>
<p>The next day Mike Anderson gave a great keynote about <a href="https://events.linuxfoundation.org/events/embedded-linux-conference/anderson1">The Internet of things</a>.  Devices in Internet are surpassing the number of people connected and soon they will be much more important. It&#8217;s a great opportunity for embedded companies and for Linux to become the most important Operating System in the world. <a href="http://www.nextnature.net/2012/03/internet-traffic-is-now-51-non-human/">Recent news</a> about this are already telling us that 51% of the Internet traffic is non-human (although we can&#8217;t classify all of that as &#8220;good traffic&#8221;). Following his keynote I went to see Thomas Petazzoni from Free Electrons talk about Buildroot. I like Buildroot&#8217;s simplicity and from what Thomas said this is one thing they care about: Buildroot is a rootfs generator and not a meta-distro like openembedded. There were at least 3 people asking if Buildroot could support binary packages and he emphasized that it was a design decision not to support them. I like this: use the right tool for the each job. I already used Buildroot before to create a rootfs using uClibc and it was great to see that it was already packaging the last version of kmod before I went to ELC.</p>
<p>In the end of the second day I participated in <a href="https://events.linuxfoundation.org/events/embedded-linux-conference/rowand">Real-Time (BoFs)</a> with Frank Rowand. It was great to have Steven Rostedt and Paul McKenney there as they contributed a lot to the discussion, pointing out the difficulties in RT, the current status of RT_PREEMPT patches regarding mainline and forecasts of when it will be completely merged. There were some discussions about &#8220;can we really trust in RT Linux? How does it compare with having an external processor doing the RT tasks?&#8221;. In the end people seemed to agree that it all boils down about what do you have in your kernel (you probably don&#8217;t want to enable crappy drivers), how do you tolerate fails (hard-RT vs soft-RT) and that RT is not a magic flag that you turn on and it&#8217;s done: it demands profiling, kernel and application tuning and expertise in the field. People gave several examples of devices using the RT_PREEMPT patches: from robots and aircrafts  in the space to cameras (the Sony cameras given away on the last day were 1 of the examples).</p>
<p>On Friday, the last day of the conference, I was much more worried about my presentation in the end of the day than with other talks. Nonetheless I couldn&#8217;t miss Koen Kooi from Texas Instruments <a href="https://events.linuxfoundation.org/events/embedded-linux-conference/kooi">talking about Beaglebone</a>. It&#8217;s a very interesting device for those who like to DIY: it&#8217;s much smaller than its brothers like Beagleboard and Pandaboard and still has enough processing power for lots of applications. Koen was displaying his slides using <a href="http://nodejs.org/">node.js</a> running on a Beaglebone. What I do like to see though is barebox replacing u-boot as the bootloader. If you attended Koen&#8217;s talk on ELCE last year, you know u-boot is one of the culprits for a longer boot. Jason from TI kindly gave me a Beaglebone so I can use it for testing kmod; when I have some spare time I&#8217;ll take a look on the things missing for using barebox on it, too.</p>
<p>The last talk of the conference was mine: <strong><a href="https://events.linuxfoundation.org/events/embedded-linux-conference/de-marchi">Managing Kernel Modules With kmod</a>.</strong> I received a good feedback from people there: they liked the idea behind kmod &#8211; designing a library and then the tools on top of that. I had some issues with my laptop in the middle of my presentation, but it all went well. I could show how kmod works, the details behind the scenes, the short history of the projects and how it&#8217;s replacing a well known piece of  userspace tools of Linux in all major desktop and embedded distros. When I was showing the timeline of the project I remember Mike Anderson saying: &#8220;tell us when it will be done&#8221;. I can&#8217;t really say it&#8217;s done now, but after the conference we already had versions 6 and 7 and contrary to other releases in the latest versions the number of commits is very small. After 3~4 months the project is reaching a maintenance phase as I said it would. If you would like to see my slides, <a href="https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_marchi.pdf">download it here</a> or see it online below. You can also watch the video of my talk as well as all the others in <a href="http://video.linux.com/categories/2012-embedded-linux-conference">LF&#8217;s video website</a>.</p>
<p><iframe src="https://docs.google.com/presentation/embed?id=18zDcz7aDfjQOT-nuKtf9rGvF8bTC9_ZdC0c-Z46OpNk&amp;start=false&amp;loop=false&amp;delayms=3000" frameborder="0" width="480" height="389"></iframe></p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2012/03/elc-2012/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Android Builders Summit 2012</title>
		<link>http://www.politreco.com/2012/03/android-builders-summit-2012/</link>
		<comments>http://www.politreco.com/2012/03/android-builders-summit-2012/#comments</comments>
		<pubDate>Sat, 17 Mar 2012 12:25:59 +0000</pubDate>
		<dc:creator>Lucas De Marchi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[kernel]]></category>
		<category><![CDATA[profusion]]></category>

		<guid isPermaLink="false">http://www.politreco.com/?p=695</guid>
		<description><![CDATA[Four weeks ago, from Februart 13rd to Februrary 17th I was at Android Builders Summit and Embedded Linux Conference in San Francisco. I was a bit busy these last weeks so I didn&#8217;t have an opportunity to write here about the conferences as I usually do. I was going to do a post about both [...]]]></description>
			<content:encoded><![CDATA[<p>Four weeks ago, from Februart 13rd to Februrary 17th I was at Android Builders Summit and Embedded Linux Conference in San Francisco. I was a bit busy these last weeks so I didn&#8217;t have an opportunity to write here about the conferences as I usually do. I was going to do a post about both the conferences, but after writing a little bit I realized it would be very big. So I split in 2 and here is the one for ABS 2012; the other <a href="http://thedoghousediaries.com/3474" target="_blank">is coming soon</a>.</p>
<p>This was my first time at Android Builders Summit. Since in the end of last year I participated in a project modifying Android internals, I felt it would be really good to be in touch with people doing the same things and learn with them. Before going there I was already surprised that Google was not sponsoring the conference, but there I was astonished that there was nobody from Android&#8217;s team and I don&#8217;t remember talking to Googlers, too. I don&#8217;t know what happened but it would be really good for the next conference if Google could be part of the conference since for the very nature of how they manage the project they are the people pushing the platform forward.</p>
<p>In the first day of the conference Greg Kroah-Hartman, Tim Bird and Zach Pfeffer answered the question &#8220;<a href="https://events.linuxfoundation.org/events/android-builders-summit/android-mainline-panel" target="_blank">Android and the Linux Kernel Mainline: Where Are We</a>&#8220;: it&#8217;s done. Well, not totally done, but most of the code needed in kernel is already in mainline: except for some pieces that render your device useful it&#8217;s already possible to boot Android userspace with a mainline kernel. I think the main point of this effort is to allow companies and enthusiasts to use features from the mainline kernel and newer versions than the ones available on AOSP. As the diff between mainline and Android&#8217;s kernel decreases it&#8217;s much easier to deploy an Android device with a different kernel. More details can be found in <a href="http://lwn.net/Articles/481661/">http://lwn.net/Articles/481661/</a>.</p>
<p>From the other talks I attended on the first day, the one that caught my eyes was <a href="https://events.linuxfoundation.org/events/android-builders-summit/thompson">USB Device Support Workshop</a>. Bernie Thompson from Plugable talked a bit about the lack of proper support in Android to deal with kernel modules: it&#8217;s really hard for device maker companies like his own to have products working on Android. And it&#8217;s not because they aren&#8217;t committed to developing Linux device drivers but because of the lack of support in Android to easily deal with kernel drivers: either the external device is supported by the company shipping the Android product or there&#8217;s no way for example to plug in an external camera and get it to work. Audience was a bit confused saying that that was a Linux problem and some voices telling that in Windows lands that doesn&#8217;t happen. Not true. Linux supports more devices that any other operating system in the world, however Android is currently missing some tools to profit from it. After some discussion Bernie prepared some tables with USB devices that people could hack on, get it supported in Linux/Android, etc.</p>
<p>On the second day I attended <a href="https://events.linuxfoundation.org/events/android-builders-summit/mauerer">Real-Time Android</a>, particularly because of my involvement with real-time since I graduated at university and because I was curious about applying it to Android. As I said one of the benefits of  having Android kernel closer to mainline is that it&#8217;s easier to do things like this. Wolfgang Mauerer from Siemens applied the RT_PREEMPT patches to Android&#8217;s kernel so you could have a real-time embedded system and still use Android&#8217;s app. As I was expecting RT would be applied for native applications, not java based ones.</p>
<p><a href="https://events.linuxfoundation.org/events/android-builders-summit/costillo">Topics in Designing An Android Sensor Subsystem: Pitfalls and Considerations</a> was advanced talk about Sensors in Android and how one would choose one strategy over another and the tradeoffs between battery life, sample rate,  external co-processor, DIY or license the algorithms used, etc. It was not a talk for the regular Joe doing an app that uses the Android&#8217;s Sensors API  (that was what I knew about it) but more for people creating devices that would like to use sensors.</p>
<p>It was a conference different from the conferences I&#8217;m used to attend like ELC/LinuxCon: there was very few people who I already knew and I had the feeling that we were talking about a product from someone else, not a product we were helping to develop &#8211; instead we were having talks about how to hack a platform we do not own. In general I liked the talks I could attend and talking to people at the corridors. They even gave me some insights for my talk about kmod, later on Friday at ELC. I&#8217;ll talk more about it on the next post.</p>
<p>For those wanting to see the slides/videos, Linux Foundation made them available at <a href="http://video.linux.com/categories/2012-android-builders-summit" target="_blank">their site</a> &#8211; go on and see for yourselves.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2012/03/android-builders-summit-2012/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>ANNOUNCE: codespell 1.4</title>
		<link>http://www.politreco.com/2012/03/announce-codespell-1-4/</link>
		<comments>http://www.politreco.com/2012/03/announce-codespell-1-4/#comments</comments>
		<pubDate>Sat, 03 Mar 2012 00:06:09 +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=687</guid>
		<description><![CDATA[codespell 1.4 is out! Nothing really new, just a maintenance release: 1 bug fix and some new entries to the dictionary. See the entire announcement on its mailing list. As per patches I&#8217;m receiving it seems that codespell is being successfully used by opensource projects. I&#8217;m glad codespell can help those projects, particularly people who don&#8217;t have [...]]]></description>
			<content:encoded><![CDATA[<p>codespell 1.4 is out! Nothing really new, just a maintenance release: 1 bug fix and some new entries to the dictionary. See the entire announcement on its <a href="http://groups.google.com/group/codespell/browse_thread/thread/35f5572eb201f9ce">mailing list</a>.</p>
<p>As per patches I&#8217;m receiving it seems that codespell is being successfully used by opensource projects. I&#8217;m glad codespell can help those projects, particularly people who don&#8217;t have English as their mother tongue as I don&#8217;t. It&#8217;s also an opportunity to people starting on a project, <a href="http://www.politreco.com/2011/11/linuxcon-brazil/">as I said in last LinuxCon Brazil</a>.</p>
<p>I&#8217;m not submitting patches anymore to Linux kernel myself using codespell because after doing that twice I started to receive a lot of emails from people using get_maintainer script. It&#8217;s very annoying to filter the good emails (that were indeed addressed to me) from that that I was in CC just because there was a misspelling that my patch fixed. Since that patch touched 2463 files, it&#8217;s very common to have my name in the output of get_maintainer <img src='http://www.politreco.com/wp-includes/images/smilies/icon_sad.gif' alt=':-(' class='wp-smiley' /> . I&#8217;m still trying to figure out how to properly filter that without losing important emails. Any tips (I&#8217;m a GMail user)?</p>
<p>Back to codespell announcement, the only missing item in TODO is to be able to separate comments, strings and source code in order to fix misspellings only in the first 2. Nonetheless codespell seems to be doing a good job without that feature and unless someone step in to implement it without impacting the parse time too much, my plan is to keep as is.</p>
<p>Go get it (and package for your distro) while it&#8217;s fresh!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2012/03/announce-codespell-1-4/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<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>Having fun in the sky</title>
		<link>http://www.politreco.com/2011/12/having-fun-in-the-sky/</link>
		<comments>http://www.politreco.com/2011/12/having-fun-in-the-sky/#comments</comments>
		<pubDate>Mon, 12 Dec 2011 19:56:24 +0000</pubDate>
		<dc:creator>Lucas De Marchi</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[vacations]]></category>

		<guid isPermaLink="false">http://www.politreco.com/?p=604</guid>
		<description><![CDATA[No words to describe free fall. If you never did, you should be rethinking your next vacations]]></description>
			<content:encoded><![CDATA[<p>No words to describe free fall. If you never did, you should be rethinking your next vacations <img src='http://www.politreco.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> </p>
<p style="text-align: center;"><a href="http://www.politreco.com/wp-content/uploads/2011/12/GOPR45121.jpg"><img class="aligncenter size-full wp-image-606" title="falling 1" src="http://www.politreco.com/wp-content/uploads/2011/12/GOPR45121.jpg" alt="" width="480" height="360" /></a></p>
<p style="text-align: center;"><a href="http://www.politreco.com/wp-content/uploads/2011/12/vlcsnap-2011-12-12-17h55m13s231.png"><img class="aligncenter size-full wp-image-609" title="vlcsnap-2011-12-12-17h55m13s231" src="http://www.politreco.com/wp-content/uploads/2011/12/vlcsnap-2011-12-12-17h55m13s231.png" alt="" width="512" height="288" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.politreco.com/2011/12/having-fun-in-the-sky/feed/</wfw:commentRss>
		<slash:comments>1</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>
	</channel>
</rss>

