<?xml version="1.0" encoding="utf-8" ?> 
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/"
     version="2.0">

    <channel>
        <title>Harald Hoyer - Fedora</title>
        <link>http://www.harald-hoyer.de/fedora/fedora</link>
        <description>Fedora related articles</description>
        <image>        <link>http://www.harald-hoyer.de/fedora/fedora</link>
            <title>Fedora</title> 
            <url>http://www.harald-hoyer.de/logo.png</url>
        </image>
        <language>en-us</language>
        <generator>Plone 2.0</generator>

        
            
                  <item>
                      <title>Ipod m4a to mp3 converter</title>
                      <link>http://www.harald-hoyer.de/personal/blog/ipod-m4a-to-mp3-converter</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/ipod-m4a-to-mp3-converter</guid>
                      <description>Small script to convert m4a to mp3</description>
                      
                          <category>convert</category>
                      
                      
                          <category>Fedora 13</category>
                      
                      
                          <category>Fedora</category>
                      
                      
                          <category>Python</category>
                      
                      
                          <category>ipod</category>
                      
                      
                          <category>mp3</category>
                      
                      
                          <category>m4a</category>
                      
                      <pubDate>Wed, 28 Apr 2010 14:10:00 +0200</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>With Fedora 13 you can connect your ipod and nautilus will show you several folders. One is named "Purchases" and I found several .m4a and .plist files in there. Just put them in a folder and run my <a href="/personal/blog/m4aconvert.py">python script</a> and you will get mp3 files with proper idtags :-)</p>
<p>You might need to install faad2 from rpmfusion and id3v2.</p>
<pre>$ python m4aconvert.py *.plist
</pre>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>[ANNOUNCEMENT] dracut-005</title>
                      <link>http://www.harald-hoyer.de/personal/blog/announcement-dracut-005</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/announcement-dracut-005</guid>
                      <description>dracut version 005 was released today.  </description>
                      
                          <category>Dracut</category>
                      
                      
                          <category>Boot</category>
                      
                      
                          <category>Fedora</category>
                      
                      
                          <category>Linux</category>
                      
                      <pubDate>Fri, 19 Mar 2010 18:00:00 +0100</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>Available in Fedora 13, rawhide and as a tarball on the<a href="http://sourceforge.net/projects/dracut/"> sourceforge project page</a>.</p>
<p>From the NEWS file:</p>
<p>dracut-005<br />==========<br />- add dcb support to dracut's FCoE support <br />- add readonly overlay support for dmsquash<br />- add keyboard kernel modules<br />- dracut.conf: added add_dracutmodules<br />- add /etc/dracut.conf.d<br />- add preliminary IPv6 support<br />- bugfixes<br /><br />dracut-004<br />==========<br />- dracut-lib: read multiple lines from $init/etc/cmdline<br />- lsinitrd and mkinitrd<br />- dmsquash: add support for loopmounted *.iso files<br />- lvm: add rd_LVM_LV and "--poll n"<br />- user suspend support<br />- add additional drivers in host-only mode, too<br />- improved emergency shell<br />- support for compressed kernel modules<br />- support for loading Xen modules<br />- rdloaddriver kernel command line parameter<br />- man pages for dracut-catimages and dracut-gencmdline<br />- bugfixes<br /><br /></p>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Dracut Talk at FOSDEM 2010</title>
                      <link>http://www.harald-hoyer.de/personal/blog/dracut-talk-on-fosdem-2010</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/dracut-talk-on-fosdem-2010</guid>
                      <description>My talk about Dracut at FOSDEM 2010 is now online.</description>
                      
                          <category>Dracut</category>
                      
                      
                          <category>Boot</category>
                      
                      
                          <category>Fedora</category>
                      
                      
                          <category>Linux</category>
                      
                      <pubDate>Fri, 26 Feb 2010 11:15:00 +0100</pubDate>
                      
   <content:encoded>
       <![CDATA[<p>Along with the other <a href="http://meetings-archive.debian.net/pub/debian-meetings/2010/fosdem10/">distribution talks</a> at FOSDEM 2010 a video of my talk about Dracut is now online <a href="http://meetings-archive.debian.net/pub/debian-meetings/2010/fosdem10/high/Dracut_a_generic_modular_initramfs_generation_tool.ogv">highres</a>/<a href="http://meetings-archive.debian.net/pub/debian-meetings/2010/fosdem10/low/Dracut_a_generic_modular_initramfs_generation_tool.ogv">lowres</a>. You might also be interested in the <a href="/personal/files/dracut-fosdem-2010.pdf">slides</a>. And yes, I should not use "whatever" that often :-)</p>
		<div id="video-player" class="mozilla-video-control">
			<video id="video" width="768" height="576" controls="controls">

				<source src="http://meetings-archive.debian.net/pub/debian-meetings/2010/fosdem10/high/Dracut_a_generic_modular_initramfs_generation_tool.ogv" type="video/ogg; codecs=&quot;theora, vorbis&quot;">

					<div class="video-player-no-flash">
					This video requires a browser with support for open video:
					<ul>
					<li><a href="http://www.mozilla.com/firefox/">Firefox</a> 3.5 or greater</li>

					<li><a href="http://www.apple.com/safari/">Safari</a> 3.1 or greater</li>

					</ul>					
					</div>

			</video>

		</div>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>[ANNOUNCEMENT] dracut-003</title>
                      <link>http://www.harald-hoyer.de/personal/blog/dracut-003</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/dracut-003</guid>
                      <description>dracut version 003 was released today.</description>
                      
                          <category>Dracut</category>
                      
                      
                          <category>Boot</category>
                      
                      
                          <category>Fedora</category>
                      
                      
                          <category>Linux</category>
                      
                      <pubDate>Fri, 27 Nov 2009 17:35:00 +0100</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>Available as a <a href="http://admin.fedoraproject.org/updates/dracut-003-1.fc12">F-12 test update</a> and of course in rawhide and as a tarball on the<a href="http://sourceforge.net/projects/dracut/"> sourceforge project page</a>.</p>
<p>To test it on Fedora 12 do (it might take some time until the update is pushed and mirrors are synced):</p>
<pre># yum –enablerepo=updates-testing update dracut
# mv /boot/initramfs-$(uname -r).img /boot/initramfs-old-$(uname -r).img
# dracut /boot/initramfs-$(uname -r).img $(uname -r)
</pre>
<p>Here are the major changes compared to dracut-002:</p>
<ul><li>debian package modules</li><li>dracut.conf manpage</li><li>module 90multipath</li><li>module 01fips</li><li>crypt: ignore devices in /etc/crypttab (root is not in there) unless rd_NO_CRYPTTAB is specified</li><li>kernel-modules: add scsi_dh scsi_dh_rdac scsi_dh_emc</li><li>multinic support</li><li>s390 zfcp support</li><li>s390 dasd support</li><li>s390 network support</li><li>strip kernel modules which have no x bit set</li><li>redirect stdin, stdout, stderr all RW to /dev/console so the user can use "less" to view /init.log and dmesg</li><li>new device mapper udev rules and dmeventd </li><li>fixed dracut-gencmdline for root=UUID or LABEL</li><li>do not destroy assembled raid arrays if mdadm.conf present</li><li>mount /dev/shm</li><li>let udevd not resolve group and user names</li><li>preserve timestamps of tools on initramfs generation</li><li>generate symlinks for binaries correctly</li><li>moved network from udev to initqueue</li><li>mount nfs3 with nfsvers=3 option and retry with nfsvers=2</li><li>fixed nbd initqueue-finished</li><li>improved debug output: specifying "rdinitdebug" now logs to dmesg, console and /init.log</li><li>strip kernel modules which have no x bit set</li><li>redirect stdin, stdout, stderr all RW to /dev/console so the user can use "less" to view /init.log and dmesg</li><li>make install of new dm/lvm udev rules optionally</li><li>new device mapper udev rules and dmeventd</li><li>Fix LiveCD boot regression</li><li>bail out if selinux policy could not be loaded and selinux=0 not specified on kernel command line</li><li>do not cleanup dmraids</li><li>copy over lvm.conf</li></ul>
<p>&nbsp;</p>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Shell Gnome Notification Applet</title>
                      <link>http://www.harald-hoyer.de/personal/blog/shell-gnome-notification-applet</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/shell-gnome-notification-applet</guid>
                      <description>This article shows how to create a small notification applet in shell script with the help of zenity. </description>
                      
                          <category>Fedora</category>
                      
                      <pubDate>Fri, 09 Oct 2009 09:50:00 +0200</pubDate>
                      
   <content:encoded>
       <![CDATA[<p>Because my internet connection is very flaky at the moment, I needed to know, if my internet connection is still up. Because my DSL modem is a&nbsp; Speedport W 503V, which does not run Linux on it, I had to query the connection status in another way. Luckily it has a web interface, which shows the internet status without the need to log in. So I wrote a little shell script which "parses" the html page. In fact the parsing doesn't have to be very sophisticated, it's just a simple grep. Then I found out about zenity, which provides a nice shell interface to create a visual representation on the desktop.&nbsp;&nbsp;</p>
<p>&nbsp;<img class="image-inline" src="/personal/files/ledon.png" alt="" /></p>
<p>&nbsp;<img class="image-inline" src="/personal/files/ledoff.png" alt="" /></p>
<p>&nbsp;The trick is, to open zenity with an extra file descriptor in "--listen" mode. So you can change the state of the notification dynamically. Here is the <a href="/personal/files/internet.sh">simple shell script</a>. Maybe you can tweak it for your needs.</p>]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>[ANNOUNCEMENT] dracut-0.3</title>
                      <link>http://www.harald-hoyer.de/personal/blog/dracut-0.3</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/dracut-0.3</guid>
                      <description>dracut version 0.3 was released today. Dracut is a new initramfs infrastructure. It should replace nash/mkinitrd. Dracut is a feature for Fedora 12.</description>
                      
                          <category>Dracut</category>
                      
                      
                          <category>Boot</category>
                      
                      
                          <category>Fedora</category>
                      
                      
                          <category>Linux</category>
                      
                      <pubDate>Thu, 02 Jul 2009 13:06:36 +0200</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>Here it is, dracut-0.3!
<br />
<br />Featuring booting from all kind of block devices, NFS, iSCSI and NBD.
<br />
<br />Dracut is a new initramfs infrastructure. It should replace nash/mkinitrd.
<br />Dracut is a feauture for Fedora 12 <a class="moz-txt-link-freetext" href="http://fedoraproject.org/wiki/Features/Dracut">http://fedoraproject.org/wiki/Features/Dracut</a></p>
<h3>How to get started, if you want to test.</h3>
<p>
<br />On Fedora 11 or Fedora rawhide (you might have to wait until the mirrors catch up):</p>
<pre># yum install dracut-0.3</pre>
<p>
<br />or download the tarball:
<a class="moz-txt-link-freetext" href="http://harald.fedorapeople.org/downloads/dracut/dracut-0.3.tar.bz2">http://harald.fedorapeople.org/downloads/dracut/dracut-0.3.tar.bz2</a></p>
<pre># tar xzf dracut-0.3.tar.bz2
# cd dracut-0.3
# make install sbindir=/sbin sysconfdir=/etc</pre>
<p>
<br />
To generate a initramfs image, run:</p>
<pre># dracut &lt;imagename&gt; &lt;kernel version&gt;</pre>
<p>
<br />to overwrite an existing image:</p>
<pre># dracut -f &lt;imagename&gt; &lt;kernel version&gt;</pre>
<p>&nbsp;</p>
<p><strong>Update</strong>:<em><br />Ok, it seems the debug dracut module wants to be installed automatically, due to 
a bug.
<br />You either have all binaries which are needed by the dracut debug module, or 
create the images with:
</em>
<br /></p>
<pre># dracut --omit debug &lt;imagename&gt; &lt;kernel version&gt;</pre>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>Try to boot from that image by modifying /etc/grub.conf. Be sure to have a 
fallback entry.
<br />
<br />If you want to boot from network have a look at the manpage.&nbsp;
Basically everything can be specified on the kernel command line.
<br />
<br />Bug reports can be send directly to me (<a class="moz-txt-link-abbreviated" href="mailto:harald@redhat.com">harald@redhat.com</a>) until dracut appears 
in the bugzilla component list.
<br />
<br />Further information about dracut:
<a class="moz-txt-link-freetext" href="http://sourceforge.net/apps/trac/dracut/wiki">http://sourceforge.net/apps/trac/dracut/wiki</a></p>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Dracut</title>
                      <link>http://www.harald-hoyer.de/personal/blog/dracut</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/dracut</guid>
                      <description>Dracut is a new initramfs infrastructure. </description>
                      
                          <category>Dracut</category>
                      
                      
                          <category>Boot</category>
                      
                      
                          <category>Fedora</category>
                      
                      
                          <category>Initramfs</category>
                      
                      
                          <category>Linux</category>
                      
                      <pubDate>Tue, 12 May 2009 16:19:00 +0200</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>Quoting Jeremy Katz:</p>
<blockquote>
<p>As Dave Jones started talking about months ago at Kernel Summit and
LPC, there's a lot of duplication between distros on the tools used to
generate the initramfs as well as the contents and how the initramfs
works.  Ultimately, there's little reason for this not to be something
that is shared and worked on by everyone.  Added to this is the fact
that everyone's infrastructures for this have grown up over a long-ish
period of time without significant amounts of reworking for the way that
the kernel and early boot works these days.</p>
</blockquote>
<p>
Therefore Jeremy Katz started on a project, dracut, to be a new
initramfs tool that can be used across various distributions.</p>
<p>End of March I took over the project. To open up the development and keep it distribution neutral, I created a <a href="http://sourceforge.net/projects/dracut/">sourceforge project</a>. Somehow interest in dracut faded and development stalled. Though, the current state allows booting from several distributions, there is still a lot to do. Have a look at the<a href="http://apps.sourceforge.net/trac/dracut/wiki"> trac wiki</a> and the <a href="http://apps.sourceforge.net/trac/dracut/wiki/TODO">TODO</a> page, if you want to help. Using dracut and obsoleting nash/mkinitrd is a <a href="https://fedoraproject.org/wiki/Features/Dracut">Fedora Feature for F12</a>, so any help is appreciated.</p>
<p>&nbsp;</p>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Added Ubuntu 8.10 and 9.04 to the Bootchart Comparison of popular Linux Distributions</title>
                      <link>http://www.harald-hoyer.de/personal/blog/added-ubuntu-8.10-and-9.04-to-the-bootchart</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/added-ubuntu-8.10-and-9.04-to-the-bootchart</guid>
                      <description></description>
                      
                          <category>Boot Time</category>
                      
                      
                          <category>Fedora</category>
                      
                      
                          <category>Fedora 11</category>
                      
                      
                          <category>Boot</category>
                      
                      
                          <category>Ubuntu</category>
                      
                      
                          <category>Bootchart</category>
                      
                      <pubDate>Fri, 17 Apr 2009 15:59:06 +0200</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>Added Ubuntu 8.10 and 9.04 to the <a href="../../../linux/boot-time-distro-comparison">Bootchart Comparison of popular Linux Distributions.</a> Ubuntu 9.04 seems to be faster as Fedora 11 in first sight, but Ubuntu starts several daemons after the X start. Nevertheless for the user experience it is 4 seconds faster.</p>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Updated the Bootchart Comparison of popular Linux Distributions</title>
                      <link>http://www.harald-hoyer.de/personal/blog/updated-the-bootchart-comparison-of-popular-linux</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/updated-the-bootchart-comparison-of-popular-linux</guid>
                      <description></description>
                      
                          <category>Boot Time</category>
                      
                      
                          <category>Fedora</category>
                      
                      
                          <category>Fedora 11</category>
                      
                      
                          <category>Fedora 10</category>
                      
                      
                          <category>Boot</category>
                      
                      
                          <category>Linux</category>
                      
                      
                          <category>Bootchart</category>
                      
                      <pubDate>Fri, 17 Apr 2009 12:30:00 +0200</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>Added Fedora 10 and Fedora 11 to the <a href="../../linux/boot-time-distro-comparison">Bootchart Comparison of popular Linux Distributions.</a> The good progression in boot time can be seen easily.</p>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Internet with your mobile Phone over Bluetooth with NetworkManager</title>
                      <link>http://www.harald-hoyer.de/personal/blog/internet-with-your-mobile-phone-over-bluetooth</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/internet-with-your-mobile-phone-over-bluetooth</guid>
                      <description></description>
                      
                          <category>Dialup</category>
                      
                      
                          <category>Fedora</category>
                      
                      
                          <category>Mobile</category>
                      
                      
                          <category>Linux</category>
                      
                      
                          <category>Bluetooth</category>
                      
                      
                          <category>Phone</category>
                      
                      
                          <category>Internet</category>
                      
                      
                          <category>NetworkManager</category>
                      
                      <pubDate>Tue, 24 Mar 2009 11:55:00 +0100</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>Sometimes you want to connect to the internet with your mobile phone over bluetooth with your laptop.</p>
<p>To make this task easier I wrote a <a href="dialup-bluetooth.py">small python script</a>. It needs pybluez and bluez.</p>
<pre># yum install pybluez bluez</pre>
<p>Then you can start the python script as root:</p>
<pre># python <a href="dialup-bluetooth.py">dialup-bluetooth.py</a></pre>
<p>It first searches for all bluetooth devices, which provide the Dialup Service, and displays a list, where you can select your mobile.</p>
<p>Then it calls rfcomm and creates a rfcomm tty, which is bound to the bluetooth channel, and inserts a fake serial modem to hal with hal-device.</p>
<p>This triggers NetworkManager, and after 2 seconds your mobile phone should be displayed in the NetworkManager list as a GSM device, which you can configure and use in NetworkManager.</p>
<p>Maybe someone feels like doing a clean implementation, using the D-BUS interface for bluetooth, hal and NetworkManager.</p>
<p>Have fun!</p>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Summary of the Fedora 11 - 20 Seconds Boot Feature - Test Day</title>
                      <link>http://www.harald-hoyer.de/personal/blog/20_Seconds_Boot_Feature_Test_Day</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/20_Seconds_Boot_Feature_Test_Day</guid>
                      <description>This is an analysis of the bootcharts generated on the 20 Seconds Boot Feature - Test Day.</description>
                      
                          <category>Boot Time</category>
                      
                      
                          <category>Fedora</category>
                      
                      
                          <category>Fedora 11</category>
                      
                      
                          <category>Boot</category>
                      
                      
                          <category>Linux</category>
                      
                      
                          <category>Bootchart</category>
                      
                      <pubDate>Mon, 02 Mar 2009 17:54:59 +0100</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>On the <a href="https://fedoraproject.org/wiki/QA/Test_Days/2009-02-19">20 Seconds Boot Feature Test Day</a> a lot of helpful people generated bootcharts from the latest rawhide build in various install configurations like "Desktop", "Server" and "Minimal".</p>
<p>To extract the information from the bootchart logs and analyze them, I wrote a <a href="http://harald.fedorapeople.org/bootcharts/bootana.py">quick and dirty python script</a>.</p>
<p>The network initscript has a variable duration due to external dependencies, like network card negotiation with the switch or getting the IP from the DHCP server (more than 50 seconds sometimes!!!!). Because of this, I have subtracted the duration of it from the resulting time.</p>
<p>Resulting Tables with png bootcharts:</p>
<ul><li> <a title="QA:Testcase bootchart personal" href="http://harald.fedorapeople.org/bootcharts/myservices.html">QA:Testcase_bootchart_personal</a>
</li><li> <a title="QA:Testcase bootchart desktop" href="http://harald.fedorapeople.org/bootcharts/desktop.html">QA:Testcase_bootchart_desktop (with full desktop)</a>
</li><li> <a title="QA:Testcase bootchart desktop" href="http://harald.fedorapeople.org/bootcharts/fulldesktop.html">QA:Testcase_bootchart_full_desktop</a></li><li> <a title="QA:Testcase bootchart server" href="http://harald.fedorapeople.org/bootcharts/server.html">QA:Testcase_bootchart_server</a>
</li><li> <a title="QA:Testcase bootchart minimal" href="http://harald.fedorapeople.org/bootcharts/minimal.html">QA:Testcase_bootchart_minimal</a>
</li></ul>
<p>What we can see from the result, of course disk I/O speed and CPU speed are the major factors, which determine the boot speed.</p>
<p>Other I/O factors include:</p>
<ul><li>disk fragmentation</li><li>type of filesystem used</li></ul>
<p>But that it is not what we are looking for. We want to eliminate unnecessary bottle necks, where neither CPU or I/O is the limiting factor or where unexpected I/O or CPU activities are happening.</p>
<p>For example, as we can see in <a class="moz-txt-link-freetext" href="https://fedoraproject.org/w/uploads/3/3b/Bootchart-a02fad60-dcf8-48d7-9de0-4d67a050313d-desktop.png">https://fedoraproject.org/w/uploads/3/3b/Bootchart-a02fad60-dcf8-48d7-9de0-4d67a050313d-desktop.png</a> restorecon is called in rc.sysinit on /dev , nash-hotplug is running and CPU is 
100% for 4 seconds with practically no disk I/O.</p>
<p>Fortunately this is fixed already in latest mkinitrd by <a class="moz-txt-link-freetext" href="http://git.fedorahosted.org/git/?p=mkinitrd;a=commitdiff;h=d539443a6ebe8868a73daffa88adfc408838bc21;hp=9253a1b55376b491bf612f00ec1d3edc66502a3f">http://git.fedorahosted.org/git/?p=mkinitrd;a=commitdiff;h=d539443a6ebe8868a73daffa88adfc408838bc21;hp=9253a1b55376b491bf612f00ec1d3edc66502a3f</a></p>
<p>This bootchart is especially useful, because the whole boot process is taking so long, because the disk and CPU is so slow.</p>
<p>What we also see, in comparison to other distributions, is the long time spent before rc.sysinit is even started. First there is the kernel loading and initialization and second there is
nash with a whole udev implementation and plymouth started. While nash
is nice to have, because a lot of variants of root devices are
supported, efforts for a <a class="external-link" href="http://lkml.org/lkml/2008/12/17/318">unified cross distribution initrd</a> are
underway. We will see, if that helps or increases boot time in the
future.</p>
<p>
For example on my Dell, the time until rc.sysinit is started varies between 5 and 10 seconds. So this fluctuation has to be recognized when comparing bootcharts (even from the same distribution and machine).</p>
<p>Next thing started after nash is rc.sysinit. There have bugzillas filed against some applications, which do not clean up their state directories, resulting in a long "find and remove" action in rc.sysinit (<a title="https://bugzilla.redhat.com/show_bug.cgi?id=485974" class="external text" href="https://bugzilla.redhat.com/show_bug.cgi?id=485974">var/run/gdm/auth-for* directories not removed.... slows boot)</a></p>
<p>The big thing started in rc.sysinit is, of course, start_udev. start_udev first removes all files in /dev, creates all basic nodes, runs restorecon on them and begins replaying all kernel hotplug events. This triggers module loading and the creation of all hardware device nodes for the hardware found on the system. Module loading is taking the most part of I/O and CPU here. If you consider to speedup modprobe, keep in mind that even loading all modules via insmod by hand takes nearly as much time as using modprobe with dependency resolution and database reading. On my systems the difference between using insmod and modprobe was not recognizable at all. So, I would conclude that most of the time is spent reading the module files from disk and most CPU is spent in the kernel with module and hardware initialization.</p>
<p>Of course some points make your system noticeable slower in this part:</p>
<ul><li>use of /etc/udev/makedev.d/. If there are files in /etc/udev/makedev.d, MAKEDEV is called, which in turn reads a lot of files from /etc/makedev.d, which takes a lot of time on some systems.</li><li>too many scripts in /lib/udev/rules.d or /etc/udev/rules.d. On some systems you do not need all rule files. Some rules are executed on every device added, just to catch a corner case, which might never happen on your system.</li><li>some 3rd party rules are very badly designed and implement a kind of busy polling. Watch out for them and report them to the package owner and/or on bugzilla.<br /></li></ul>
<p>In the example bootchart we can also immediately see the effect of some components, which are slow or can be started on demand:</p>
<ul><li>rpc services (<a title="https://bugzilla.redhat.com/show_bug.cgi?id=479587" class="external text" href="https://bugzilla.redhat.com/show_bug.cgi?id=479587">disturbing hacks to start nfs-utils services on demand (not entirely serious)</a>)</li><li>cupsd (<a title="https://bugzilla.redhat.com/show_bug.cgi?id=480668" class="external text" href="https://bugzilla.redhat.com/show_bug.cgi?id=480668">(RFC, PATCH) start cups on demand, using xinetd</a>)</li><li>fedora-system-keyboard, which starts the whole python interpreter with a lot of I/O happening for that. (<a href="https://bugzilla.redhat.com/show_bug.cgi?id=483817">https://bugzilla.redhat.com/show_bug.cgi?id=483817</a>)<br /></li><li>dellWirelessCtl has a lot of I/O here.</li><li>HAL is growing and growing and takes more and more time to startup.</li><li>NetworkManager starting wpa_supplicant even for static network interfaces which do not require authentication and DHCP. So the service of wpa_supplicant is never used. (<a class="moz-txt-link-freetext" href="https://bugzilla.redhat.com/show_bug.cgi?id=482823">https://bugzilla.redhat.com/show_bug.cgi?id=482823)</a></li><li>Xorg is having a significant time with no I/O and full CPU</li><li>Bluetooth and IRDA being started (<a title="https://bugzilla.redhat.com/show_bug.cgi?id=484345" class="external text" href="https://bugzilla.redhat.com/show_bug.cgi?id=484345">start the bluetooth service via udev</a>)</li><li>cpuspeed with no I/O and CPU</li><li>microcode has a sleep (<a title="https://bugzilla.redhat.com/show_bug.cgi?id=479898" class="external text" href="https://bugzilla.redhat.com/show_bug.cgi?id=479898">microcode_ctl busy polling</a> <a href="https://bugzilla.redhat.com/show_bug.cgi?id=479898">microcode_ctl ships a pointless init script</a>)</li></ul>
<h3>An Ideal Boot Setup</h3>
<p>In an ideally boot setup CPU and I/O is maxed out the whole boot process.</p>
<p>Ways of how to achieve this:</p>
<ul><li>readahead all files used to fill the memory disk cache in parallel to the normal boot process<br /></li><li>avoid sleeps</li><li>run services which do not depend on each other in parallel</li></ul>
<p>An ideal init process would take the premier goal (in the desktop case it would be the login screen), start everything what is needed for it with first priority and start the rest in parallel or delayed with low (I/O and CPU) priority.</p>
<p>What is needed to achieve that:</p>
<ul><li>Dependencies! This is why I once started the LSB Header bugzilla tracker. <a class="moz-txt-link-freetext" href="https://bugzilla.redhat.com/show_bug.cgi?id=246824">https://bugzilla.redhat.com/show_bug.cgi?id=246824</a></li><li>An init process, which knows about the dependencies and the primary goal and sets up the I/O and CPU priorities.</li></ul>
<h3>What you can do now to speed up your boot process</h3>
<ul><li>install and run prelink</li><li>install and run readahead / preload</li><li>maybe defragment a heavy fragmented filesystem?<br /></li></ul>
<h3>What to keep in mind as a developer<br /></h3>
<ul><li>try to start services on demand (might be hardware dependent, use udev/hal or just look in /sys if the hardware is even there)<br /></li><li>do not cause heavy I/O on start up (like reading a whole big databases in memory or reading big log files, or using an interpreter (like fedora-setup-keyboard)), or use a low I/O priority<br /></li><li>do not use sleep 1, if you are busy polling, use "sleep 0.2" or find another mechanism</li></ul>
<ul><li>If your udev rule does not have to be executed at boot time, consider using the ENV{STARTUP}!="1" condition.</li></ul>
<h3>What did the test day achieve?<br /></h3>
<p>As an immediate outcome of the test day, I modified readahead and released readahead-1.4.8 with the following changes:</p>
<ul><li>set low I/O priority (no more regression in boot time with readahead)</li><li>moved data files from /etc/readahead.d to /var/lib/readahead</li><li>don't start readahead from readahead.event, if system has less than 384MB</li></ul>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Fedora 10 - Boot Analysis</title>
                      <link>http://www.harald-hoyer.de/personal/blog/fedora-10-boot-analysis</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/fedora-10-boot-analysis</guid>
                      <description>A brief Fedora 10 boot analysis.</description>
                      
                          <category>Boot Time</category>
                      
                      
                          <category>Fedora</category>
                      
                      
                          <category>Fedora 10</category>
                      
                      
                          <category>linux</category>
                      
                      
                          <category>Boot</category>
                      
                      
                          <category>Linux</category>
                      
                      
                          <category>Bootchart</category>
                      
                      
                          <category>fedora</category>
                      
                      <pubDate>Mon, 15 Dec 2008 16:44:20 +0100</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>Hardware: Asus EeePC 901 with a flash disk.</p>
<p>Time taken from entering the encrypted root disk password until the password can be entered (after pressing return in gdm). The 10 second wait in nash is ignored here (which really annoys me and seems to be fixed in newer mkinitrd versions).</p>
<p>Default Live CD Installation:&nbsp; 39s (<a href="/files/f10boot/bootchart-nonread.png">bootchart</a>)</p>
<p>After installing readahead and running one collection boot process: 36s (<a class="external-link" href="/files/f10boot/bootchart-readahead.png">bootchart</a>)</p>
<p>At this point, I recognized that all processes (like newaliases), which call a fsync(), let the boot process wait until all data is written to disk. This is the same effect as the <a href="http://shaver.off.net/diary/2008/05/25/fsyncers-and-curveballs/">firefox sqlite fsync bug</a>.</p>
<p>Mounting the root filessystem with relatime and turning off ordered data writing for the journal with</p>
<pre># tune2fs -o journal_data_writeback /dev/root</pre>
<p>improved the situation (even though data might be old on the disk after a crash, but ext3 does not force the disk to empty the write cache anyway).</p>
<p>Turning off setroubleshoot and fixing <a title="https://bugzilla.redhat.com/show_bug.cgi?id=476023" class="external free" href="https://bugzilla.redhat.com/show_bug.cgi?id=476023">https://bugzilla.redhat.com/show_bug.cgi?id=476023</a> and <a title="https://bugzilla.redhat.com/show_bug.cgi?id=476028" class="external free" href="https://bugzilla.redhat.com/show_bug.cgi?id=476028">https://bugzilla.redhat.com/show_bug.cgi?id=476028</a>: 32s (<a href="/files/f10boot/bootchart-readahead-nosetrouble.png">bootchart</a>)</p>
<p>Turning off bootchart: 30s</p>
<p>So all in all we have nearly accomplished the <a href="http://fedoraproject.org/wiki/Features/30SecondStartup">30 Second Startup Feature</a>.</p>
<p>To reach the <a href="http://fedoraproject.org/wiki/Features/20SecondStartup">20 Second Startup Feature</a>, we really have to tackle setroubleshootd. Also we might start to move basic services to upstart and start them in parallel (<a href="/files/f10boot/bootchart-readahead-nosetrouble-upstart.png">bootchart</a> with some services moved). Parallel booting will show no benefits with readahead and a small amount of active services, but the more services are turned on, the more you benefit with a parallel boot setup. Moving more basic modules to be compiled in the kernel also would gain some seconds. Speaking about modules, I ported Jakubs modprobe patch to the recent 3.6pre1 module-init-tools version. Though it nearly halves I/O, it would only safe us a fraction of a second here (not recognizable).</p>
<p>In the end, we also have to extend our view to things that happen after the user logs in (<a href="/files/f10boot/bootchart-full.png">bootchart</a>) and do an extended analysis. Work is also in <a href="http://mces.blogspot.com/2008/12/improving-login-time-part-3.html">progress</a> by Gnome developer   <a href="http://mces.blogspot.com/">Behdad Esfahbod</a>.</p>
<p>Follow the <a href="http://thread.gmane.org/gmane.linux.redhat.fedora.devel/100478">discussion</a> on fedora-devel.</p>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Fedora 10 - Disk IO</title>
                      <link>http://www.harald-hoyer.de/personal/blog/fedora-10-disk-io</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/fedora-10-disk-io</guid>
                      <description>Identifying heavy disk IO tasks and reducing IO helps to shorten the boot time on e.g. a Asus EeePC.</description>
                      
                          <category>Boot Time</category>
                      
                      
                          <category>fedora</category>
                      
                      
                          <category>Linux</category>
                      
                      
                          <category>Boot</category>
                      
                      
                          <category>linux</category>
                      
                      
                          <category>Fedora</category>
                      
                      <pubDate>Tue, 02 Dec 2008 17:40:08 +0100</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>Identifying heavy disk IO tasks and reducing IO helps to shorten the boot time on e.g. a Asus EeePC.</p>
<p>To measure IO, I installed a systemtap script to run as soon as rc.sysinit starts.</p>
<pre>#! /usr/bin/env stap
# modified traceio.stp
# Copyright (C) 2007 Red Hat, Inc., Eugene Teo &lt;eteo@redhat.com&gt;
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License version 2 as
# published by the Free Software Foundation.
#

global device_of_interest, dev, reads, writes, total_io

probe begin {
&nbsp; /* Hack! Insert your MAJOR, MINOR of the 
     device you are interested in */
&nbsp; device_of_interest = MKDEV(253, 1)
}

probe vfs.read.return {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (dev == device_of_interest)
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; reads[execname()] += $return
}

probe vfs.write.return {
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (dev == device_of_interest)
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; writes[execname()] += $return
}

probe timer.s(1) {
&nbsp;&nbsp;&nbsp; foreach (p in reads)
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; total_io[p] = 0
&nbsp;&nbsp;&nbsp; foreach (p in writes)
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; total_io[p] = 0
&nbsp;&nbsp;&nbsp; foreach (p in reads)
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; total_io[p] += reads[p]
&nbsp;&nbsp;&nbsp; foreach (p in writes)
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; total_io[p] += 5 * writes[p]
&nbsp;&nbsp;&nbsp; foreach(p in total_io- limit 10)
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; printf("%15s r: %8d KiB w: %8d KiB\n",
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; p, reads[p]/1024,
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; writes[p]/1024)
&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; printf("\n")
&nbsp;&nbsp;&nbsp; # Note we don't zero out reads, writes,
&nbsp;&nbsp;&nbsp; # so the values are cumulative since the script started.
}</pre>
<p>Because on a EeePC disk writes are very slow (5 times slower than reading) they are weighted with factor 5.</p>
<p>From rc.sysinit start to the gdm login screen, the top 5 IO tasks are on my Live-CD standard installation:</p>
<table class="plain">
<tbody>
<tr>
<th>Name</th>
<th>Read KiB</th>
<th>Write KiB</th>
</tr>
<tr>
<td>modprobe</td>
<td>5900</td>
<td>0</td>
</tr>
<tr>
<td>gconfd-2</td>
<td>4827</td>
<td>47</td>
</tr>
<tr>
<td>setroubleshootd</td>
<td>4187</td>
<td>0</td>
</tr>
<tr>
<td>xkbcomp</td>
<td>2961</td>
<td>81</td>
</tr>
<tr>
<td>rpcbind</td>
<td>3248</td>
<td>0</td>
</tr>
</tbody>
</table>
<p>&nbsp;</p>
<ul><li>modprobe: I wonder what happened to <a href="https://www.redhat.com/archives/fedora-devel-list/2008-October/msg00043.html">Jakub's modprobe speedup patches</a>.</li><li>setroubleshootd: should really be more lightweight and needs a cleanup.</li><li>gconfd-2, xkbcomp: Behdad has currently <a href="http://mces.blogspot.com/2008/11/improving-login-time-part-2-gnome.html">been looking at the login process</a>, which hopefully improved the situation a bit.<br /></li><li>rpcbind: will have to investigate, why it reads so much.</li></ul>
<p>Now, if you want to improve Fedora's boot speed, here is a starting point.</p>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Color Management</title>
                      <link>http://www.harald-hoyer.de/personal/blog/color_management</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/color_management</guid>
                      <description>Color Management and Linux</description>
                      
                          <category>fedora</category>
                      
                      
                          <category>Color Management</category>
                      
                      
                          <category>Linux</category>
                      
                      
                          <category>Colorimeter</category>
                      
                      
                          <category>Fedora</category>
                      
                      <pubDate>Fri, 31 Oct 2008 12:50:00 +0100</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>So you took some nice photos, edited them with your favourite Linux photo editor and published them on the web. But then you show your pics to a friend who is running Windows and IE 5 and suddenly your photos look very different. What happened?</p>
<h3>Monitor Colors</h3>
<p>Your monitor colors could be different than the one of your friend. This can be corrected <a href="http://jcornuz.wordpress.com/2007/11/18/use-colorvision-spyder-to-produce-an-icc-monitor-profile-under-argyllcms-linux/">calibrating</a> the monitors with a colorimeter and e.g. Argyll.</p>
<h3>Color Profiles</h3>
<p>Most photos have a color profile embedded. This color profile defines, where the rgb values<a href="http://en.wikipedia.org/wiki/Color_management"> are in the colorspace</a>. Some software is aware of it. Some is not.</p>
<p>Check out this <a href="http://foto.beitinger.de/browser_farbmanagement/index.html">color profile browser test</a>&nbsp; (german only). Especially this picture: <br /><img src="http://foto.beitinger.de/browser_farbmanagement/farbmanagement_test.jpg" alt="" /></p>
<p>or this one:</p>
<p> <img src="https://bugzilla.mozilla.org/attachment.cgi?id=245837" alt="" /></p>
<p>&nbsp;</p>
Color management in Firefox 3 has to be <a href="http://kb.mozillazine.org/Gfx.color_management.enabled">turned on</a> and if you test various GNOME/KDE picture viewer and editors, you will notice that only some of them cope with color management.
]]>
   </content:encoded>
 
                  </item>

            
	   	
        
        
            
                  <item>
                      <title>Python-Slip</title>
                      <link>http://www.harald-hoyer.de/personal/blog/Python-Slip</link>
                      <guid isPermaLink="true">http://www.harald-hoyer.de/personal/blog/Python-Slip</guid>
                      <description>Python-Slip is a python module to ease the use of PolicyKit.</description>
                      
                          <category>fedora</category>
                      
                      
                          <category>linux</category>
                      
                      
                          <category>Fedora</category>
                      
                      
                          <category>policykit</category>
                      
                      
                          <category>Linux</category>
                      
                      <pubDate>Sun, 07 Sep 2008 11:00:00 +0200</pubDate>
                      
   <content:encoded>
       <![CDATA[
<p>On FUDCon Brno 2008, we gave a small overview on how to use PolicyKit to split an application in a two parts with different privileges.</p>
<p>Now, here comes the practical part. Nils Philippsen wrote a small python module, which greatly simplifies the use of PolicyKit for python applications. Downloads, git repo and more information, along with simple example code can be found on <a href="http://fedorahosted.org/python-slip/">http://fedorahosted.org/python-slip/</a></p>
<p>In its current form it uses D-BUS communication to check policykit action_ids, which will change, as soon as the python bindings for PolicyKit will be released (hint, hint!).</p>
<p>If you have questions or patches, just send a mail to <a href="mailto:harald@redhat.com">me</a> or <a href="mailto:nils@redhat.com">Nils</a>.</p>
]]>
   </content:encoded>
 
                  </item>

            
	   	
        


    </channel>

</rss>
