<?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>Leong &#187; Linux</title>
	<atom:link href="http://www.leong.nl/category/linux/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.leong.nl</link>
	<description>enjoy life</description>
	<lastBuildDate>Wed, 09 Nov 2011 09:03:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Buildout presentation @ PyGrunn2011</title>
		<link>http://www.leong.nl/2011/06/buildout-presentation-pygrunn2011/</link>
		<comments>http://www.leong.nl/2011/06/buildout-presentation-pygrunn2011/#comments</comments>
		<pubDate>Thu, 30 Jun 2011 20:52:09 +0000</pubDate>
		<dc:creator>Kim Chee Leong</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Django]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[Plone]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.leong.nl/?p=271</guid>
		<description><![CDATA[Van GW20e nieuws De PyGrunn &#8216;Python and friends&#8217; conferentie is gehouden in Het Paleis in Groningen en is bezocht door ruim 80 personen. ﻿Voorafgaand aan de conferentie was er een masterclass van Armin Ronacher. De conferentie is gericht op de Python programmeertaal en verwante technologie. Met sprekers uit Nederland en het buitenland was de Python-community [...]]]></description>
			<content:encoded><![CDATA[<p>Van <a href="http://www.goldmund-wyldebeast-wunderliebe.com/over-ons/news/pygrunn-2011-een-groot-succes">GW20e nieuws</a></p>
<blockquote><p>De PyGrunn &#8216;Python and friends&#8217; conferentie is gehouden in Het Paleis in Groningen en is bezocht door ruim 80 personen. ﻿Voorafgaand aan de conferentie was er een masterclass van Armin Ronacher. De conferentie is gericht op de Python programmeertaal en verwante technologie. Met sprekers uit Nederland en het buitenland was de Python-community goed vertegenwoordigd op PyGrunn. Vanuit Goldmund, Wyldebeast &#038; Wunderliebe heeft Kim Chee Leong een presentatie gegeven over buildout, dit is een tool voor het uitrollen van applicaties.</p>
<p>Goldmund, Wyldebeast &#038; Wunderliebe en Paylogic hebben de conferentie georganiseerd. Vanwege het grote success zal PyGrunn er ook volgend jaar weer zijn.</p></blockquote>
<div style="width:425px" id="__ss_8039168"> <strong style="display:block;margin:12px 0 4px"><a href="http://www.slideshare.net/kaceeleong/buildout-presentation" title="Buildout presentation" target="_blank">Buildout presentation</a></strong> <iframe src="http://www.slideshare.net/slideshow/embed_code/8039168" width="425" height="355" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe>
<div style="padding:5px 0 12px"> View more <a href="http://www.slideshare.net/" target="_blank">presentations</a> from <a href="http://www.slideshare.net/kaceeleong" target="_blank">kaceeleong</a> </div>
</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.leong.nl/2011/06/buildout-presentation-pygrunn2011/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hardening Debian Linux</title>
		<link>http://www.leong.nl/2010/03/hardening-debian-linux/</link>
		<comments>http://www.leong.nl/2010/03/hardening-debian-linux/#comments</comments>
		<pubDate>Tue, 30 Mar 2010 15:12:39 +0000</pubDate>
		<dc:creator>Kim Chee Leong</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[debian ubuntu sysadmin security]]></category>

		<guid isPermaLink="false">http://www.leong.nl/?p=166</guid>
		<description><![CDATA[Last updated: 9 November 2010 Here are a few tips for hardening your Debian/Ubuntu server. SSH key based authentication Only allow logins using public SSH keys. This way we prevent brute force attacks. Create private and public keys using the ssh-keygen command. First copy the public key from your pc to the server using: $ [...]]]></description>
			<content:encoded><![CDATA[<p><em>Last updated: 9 November 2010</em><br />
</p>
<p>Here are a few tips for hardening your Debian/Ubuntu server.</p>
<h2>SSH key based authentication</h2>
<p>Only allow logins using public SSH keys. This way we prevent brute force attacks. Create private and public keys using the <em>ssh-keygen</em> command. First copy the public key from your pc to the server using:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">$ ssh-copy-id <span style="color: #660033;">-i</span> .ssh<span style="color: #000000; font-weight: bold;">/</span>id_rsa.pub user<span style="color: #000000; font-weight: bold;">@</span>host</pre></div></div>

<p>Test if you can login with your public key. The public key is stored in <em>.ssh/authorized_keys</em>. So if you add a new user ask them their pub key and copy this into authorized keys.</p>
<p>Change <em>/etc/sshd_config</em> to disable password based logins:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">ChallengeResponseAuthentication no
PasswordAuthentication no</pre></div></div>

<h2>Filesystem permissions</h2>
<p>The default user permission has umask 022 where other/world user also have access. Using umask 007 the owner en group has rw access, other/world hasn&#8217;t got any access.</p>
<p>Change default umask 022 to 007:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>profile
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>login.defs
<span style="color: #000000; font-weight: bold;">/</span>etc<span style="color: #000000; font-weight: bold;">/</span>init.d<span style="color: #000000; font-weight: bold;">/</span>rc</pre></div></div>

<h2>Mounted volumes must have proper permissions</h2>
<p>Add two mount options in <em>/etc/fstab</em> for partitions that have no suid programs and no device nodes. Options are called nosuid and nodev.</p>
<p>Example:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>sda5       <span style="color: #000000; font-weight: bold;">/</span>tmp            ext3    defaults,nosuid,nodev        <span style="color: #000000;">0</span>       <span style="color: #000000;">2</span>
<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>sda6       <span style="color: #000000; font-weight: bold;">/</span>var            ext3    defaults,nosuid,nodev        <span style="color: #000000;">0</span>       <span style="color: #000000;">2</span>
<span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>sda7       <span style="color: #000000; font-weight: bold;">/</span>data2          ext3    defaults,nosuid,nodev        <span style="color: #000000;">0</span>       <span style="color: #000000;">2</span></pre></div></div>

<h2>Dedicated group for su</h2>
<p>Only allow users in adm group to become root using pam_wheel.</p>
<p>In /etc/pam.d/su uncomment this line and add group part.</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">auth       required   pam_wheel.so <span style="color: #007800;">group</span>=adm</pre></div></div>

<p>Add sysadmins to adm group</p>
<pre>usermod -a -G adm [username]
</pre>
<h2>Separate temp directories for users</h2>
<p>Using pam tmpdir modules each user has a separate tmp dir. So instead of using /tmp for everyone, each user gets a /tmp/user/USERID directory. A user cannot see the temp files of other users.</p>
<p>Install the tmpdir pam module:</p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #c20cb9; font-weight: bold;">apt-get</span> <span style="color: #c20cb9; font-weight: bold;">install</span> libpam-tmpdir</pre></div></div>

<p>Add the following line to <em>/etc/pam.d/common-session</em></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;">session    optional     pam_tmpdir.so</pre></div></div>

<h2>Know when security updates are available</h2>
<p>Keep the packages on the server up to date. Use the mail* to  functionality in crontab to get a automated warning when an update is  available. It saves the hassle for checking manually. It&#8217;s not recommended to run the updates unattended.</p>
<p>Add this script in <em>/usr/local/bin/check_security.sh</em></p>

<div class="wp_syntax"><div class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">#!/bin/sh</span>
<span style="color: #c20cb9; font-weight: bold;">apt-get</span> update <span style="color: #660033;">-qq</span> <span style="color: #660033;">-s</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #000000; font-weight: bold;">/</span>dev<span style="color: #000000; font-weight: bold;">/</span>null <span style="color: #000000;">2</span><span style="color: #000000; font-weight: bold;">&amp;</span>gt;<span style="color: #000000; font-weight: bold;">&amp;</span>amp;<span style="color: #000000;">1</span>
&nbsp;
<span style="color: #007800;">LISTFILE</span>=<span style="color: #007800;">$TMP</span><span style="color: #000000; font-weight: bold;">/</span>check_security.lock
<span style="color: #007800;">UPGRADE_CMD</span>=<span style="color: #ff0000;">&quot;apt-get upgrade -qq -s&quot;</span>
<span style="color: #007800;">MACHINE</span>=<span style="color: #000000; font-weight: bold;">`</span><span style="color: #c20cb9; font-weight: bold;">hostname</span><span style="color: #000000; font-weight: bold;">`</span>
<span style="color: #007800;">LIST</span>=<span style="color: #ff0000;">&quot;&quot;</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">for</span> package <span style="color: #000000; font-weight: bold;">in</span> <span style="color: #000000; font-weight: bold;">`</span><span style="color: #007800;">$UPGRADE_CMD</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">grep</span> <span style="color: #660033;">-e</span> <span style="color: #ff0000;">'^Inst'</span> <span style="color: #000000; font-weight: bold;">|</span> <span style="color: #c20cb9; font-weight: bold;">awk</span> <span style="color: #ff0000;">'{ print $2 }'</span><span style="color: #000000; font-weight: bold;">`</span>;
<span style="color: #000000; font-weight: bold;">do</span>
  <span style="color: #007800;">LIST</span>=<span style="color: #ff0000;">&quot;<span style="color: #007800;">$LIST</span> <span style="color: #007800;">$package</span>&quot;</span>
<span style="color: #000000; font-weight: bold;">done</span>
&nbsp;
<span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-z</span> <span style="color: #ff0000;">&quot;<span style="color: #007800;">$LIST</span>&quot;</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
  <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #660033;">-e</span> <span style="color: #007800;">$LISTFILE</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #c20cb9; font-weight: bold;">rm</span> <span style="color: #660033;">-f</span> <span style="color: #007800;">$LISTFILE</span>
  <span style="color: #000000; font-weight: bold;">fi</span>
  <span style="color: #7a0874; font-weight: bold;">exit</span> <span style="color: #000000;">0</span>
<span style="color: #000000; font-weight: bold;">else</span>
  <span style="color: #000000; font-weight: bold;">if</span> <span style="color: #7a0874; font-weight: bold;">&#91;</span> <span style="color: #000000; font-weight: bold;">!</span> <span style="color: #660033;">-e</span> <span style="color: #007800;">$LISTFILE</span> <span style="color: #7a0874; font-weight: bold;">&#93;</span>; <span style="color: #000000; font-weight: bold;">then</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$LIST</span> <span style="color: #000000; font-weight: bold;">&amp;</span>gt; <span style="color: #007800;">$LISTFILE</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;Please run security updates on <span style="color: #007800;">${MACHINE}</span>!&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #ff0000;">&quot;==========================================&quot;</span>
    <span style="color: #7a0874; font-weight: bold;">echo</span> <span style="color: #007800;">$LIST</span>
  <span style="color: #000000; font-weight: bold;">fi</span>
<span style="color: #000000; font-weight: bold;">fi</span></pre></div></div>

<p>Add the script to crontab for root user.  Enter your e-mail address in the mailto variable. Add the script to crontab. Check each hour is an update is available:</p>
<pre>MAILTO='me@domain.com'
5 * * * * /usr/local/bin/check_security.sh</pre>
<p>Install the nullmailer and  mailutils package to allow mail relaying. Enter the hostname and smtp server in install dialog.</p>
<pre>apt-get install nullmailer mailutils</pre>
<h2>Clean old files/dirs in temp directory</h2>
<p>Remove files and directories older than 30 days. The tmp dir is for temporary files!</p>
<p>Add a shell script in /usr/local/bin/clean_tmp.sh</p>
<pre>#!/bin/bash
# GW20e - KC
# Clean tmp directory, we don't want files/dirs older
# than 30 days.
find /tmp/* -type f -mtime +30 -exec rm -f {} \;
find /tmp/* -type d -mtime +30 -exec rm -rf {} \;
</pre>
<p>Add the script in crontab so it&#8217;s executed every night:</p>
<pre>0  5 * * * /usr/local/bin/clean_tmp.sh &gt; /dev/null</pre>
<h2>Only a minimal set of network services must be provided</h2>
<p>Only run the network services that are needed. Each service can bring in a security risk. Configure the network services so they only listen on specific interfaces.<br />
Run netstat to check which service is listening on what interface. Example:</p>
<pre>server:~# netstat -nlp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 91.194.xxx.xxx:18080    0.0.0.0:*               LISTEN      9544/python2.6
tcp        0      0 91.194.xxx.xxx:5666     0.0.0.0:*               LISTEN      3515/nrpe
tcp        0      0 127.0.0.1:111           0.0.0.0:*               LISTEN      9035/portmap
tcp        0      0 192.168.3.45:8080       0.0.0.0:*               LISTEN      3876/python2.6
tcp        0      0 192.168.3.45:28080      0.0.0.0:*               LISTEN      3875/python2.6
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3714/apache2
tcp        0      0 192.168.3.45:8081       0.0.0.0:*               LISTEN      3877/python2.6
tcp        0      0 192.168.3.45:22         0.0.0.0:*               LISTEN      3505/sshd
tcp        0      0 127.0.0.1:761           0.0.0.0:*               LISTEN      3553/famd
tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      3714/apache2
udp        0      0 127.0.0.1:111           0.0.0.0:*                           9035/portmap</pre>
<p>Disable network services or bind  the service to a specific interface. Normally portmap is listening on all interfaces.</p>
<h3>Bind portmap to localhost loopback</h3>
<p>In the above example portmap is only listening on the localhost loopback. Bind the portmap service to localhost, edit &#8221;/etc/default/portmap&#8221;. Uncomment this line:</p>
<pre>OPTIONS="-i 127.0.0.1"</pre>
<h3>Disable IPv6</h3>
<p>If you&#8217;re not using IPv6, disable it to prevent possible vulnerabilities. Add the following file /etc/modprobe.d/00local</p>
<pre>alias net-pf-10 off
alias ipv6 off
</pre>
<h2>Apache webserver</h2>
<p>Don&#8217;t allow directory indexes by disabling autoindex module</p>
<pre>a2dismod autoindex
/etc/init.d/apache2 restart</pre>
<p>Apache has a separte config file for security. Edit /etc/apache2/conf.d/security and change the following settings:</p>
<pre># Don't give away info about OS and compiled in modules
ServerTokens Prod
# Don't show server version in server-generated pages
ServerSignature Off
# Disables HTTP trace, only used for debuging purposes. Potential security vulnerability.
TraceEnable Off</pre>
<p>This article has good tips for securing the Apache webserver: <a title="Apache security tips" href="http://www.ducea.com/2006/06/08/apache-tips-tricks/">MDLog:/sysadmin &#8211; Apache Tips &amp; Tricks</a>.</p>
<h2>Do a security audit for the system</h2>
<p><a title="lynis security audit" href="http://rootkit.nl/projects/lynis.html">Lynis</a> is an excellent tool to audit the system. Download the latest tarball, decompress and run. Lynis is an auditing tool which tests and gathers (security) information for *nix based systems.</p>
<p>If you want to be on the safe side, and be sure your server is secure, hire an independent company for a security audit.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leong.nl/2010/03/hardening-debian-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Plone Conference 2009 &#8211; Hardening Plone</title>
		<link>http://www.leong.nl/2009/10/plone-conference-2009/</link>
		<comments>http://www.leong.nl/2009/10/plone-conference-2009/#comments</comments>
		<pubDate>Thu, 29 Oct 2009 14:17:38 +0000</pubDate>
		<dc:creator>Kim Chee Leong</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Plone]]></category>

		<guid isPermaLink="false">http://www.leong.nl/?p=137</guid>
		<description><![CDATA[This year I&#8217;m attending the Plone Conference 2009 in Budapest. Today is the second day and as always with Plone conferences the vibe is great and it&#8217;s interesting to see the different talks. Together with my collegue Kees Hink we gave a presentation about Hardening Plone. For a customer who needed a DMS to exchange [...]]]></description>
			<content:encoded><![CDATA[<p>This year I&#8217;m attending the <a title="Plone Conference 2009 - Budapest" href="http://temp.ploneconf2009.org/">Plone Conference 2009</a> in Budapest. Today is the second day and as always with Plone conferences the vibe is great and it&#8217;s interesting to see the different talks.</p>
<p>Together with my collegue <a title="Blog Kees Hink" href="http://keeshink.blogspot.com/">Kees Hink</a> we gave a presentation about Hardening Plone.</p>
<p>For a customer who needed a DMS to exchange documents with third parties we hardened the Plone stack. Several highlights of the hardening part are modifcations in the OS,� two technical audits, a process audit and adding some extra products in Plone. Here&#8217;s is the recorded stream of the presentation: <a href="http://www.ustream.tv/recorded/2446265">http://www.ustream.tv/recorded/2446265</a>. Here are the slides:</p>
<div id="__ss_2595885" style="width: 425px;"><strong style="display: block; margin: 12px 0 4px;"><a title="Hardening Plone, a military-strength CMS" href="http://www.slideshare.net/khink/hardening-plone-a-militarystrength-cms-2595885">Hardening Plone, a military-strength CMS</a></strong><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ploneconf2009hardeningplone-091127062001-phpapp02&amp;rel=0&amp;stripped_title=hardening-plone-a-militarystrength-cms-2595885" /><param name="allowfullscreen" value="true" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=ploneconf2009hardeningplone-091127062001-phpapp02&amp;rel=0&amp;stripped_title=hardening-plone-a-militarystrength-cms-2595885" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="padding: 5px 0 12px;">View more <a href="http://www.slideshare.net/">presentations</a> from <a href="http://www.slideshare.net/khink">khink</a>.</div>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.leong.nl/2009/10/plone-conference-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Karmic Koala and Python setuptools</title>
		<link>http://www.leong.nl/2009/10/ubuntu-karmic-koala-and-python-setuptools/</link>
		<comments>http://www.leong.nl/2009/10/ubuntu-karmic-koala-and-python-setuptools/#comments</comments>
		<pubDate>Mon, 05 Oct 2009 12:06:46 +0000</pubDate>
		<dc:creator>Kim Chee Leong</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[python setuptools eggs bug]]></category>

		<guid isPermaLink="false">http://www.leong.nl/?p=131</guid>
		<description><![CDATA[This weekend I&#8217;ve upgrade my laptop to Ubuntu Karmic Koala. The upgrade was easy and Karmic looks and runs smoother than the previous version. I encountered one small problem with Python setuptools and subversion. I use Setuptools 0.6c9 to create Python eggs. It happens that the latest Setuptools won&#8217;t play well with subversion 1.6 (shipped [...]]]></description>
			<content:encoded><![CDATA[<p>This weekend I&#8217;ve upgrade my laptop to Ubuntu <a title="Ubuntu Linux" href="http://www.ubuntu.com/" target="_blank">Karmic Koala</a>. The upgrade was easy and Karmic looks and runs smoother than the previous version. I encountered one small problem with Python setuptools and subversion.</p>
<p>I use <a title="setuptools" href="http://pypi.python.org/pypi/setuptools/0.6c9" target="_blank">Setuptools 0.6c9 </a>to create Python eggs. It happens that the latest Setuptools won&#8217;t play well with subversion 1.6 (shipped with Karmic).</p>
<p>When creating an egg with:</p>
<p><strong>python setup.py bdist_egg </strong></p>
<p>I got this error:</p>
<p><strong>subversion unrecognized .svn/entries format</strong></p>
<p>You can fix this by running a patch from the setuptools team, <a title="Python setuptools error, Subversion 1.6 entries format 'unrecognized'" href="http://bugs.python.org/setuptools/issue64" target="_blank">download the most recent patch</a> from the issue page. Find out where setuptools lives in your site-packages and apply the patch. <a title="Details on fixing Subversion 1.6 entries format 'unrecognized'" href="http://www.leong.nl/oss/fix-svn1.6-with-setuptools.txt" target="_blank">More details here</a> if you&#8217;re not familiar with site-packages and applying patches.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leong.nl/2009/10/ubuntu-karmic-koala-and-python-setuptools/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>HTC Magic rooting and custom ROMS</title>
		<link>http://www.leong.nl/2009/06/htc-magic-rooting-and-custom-roms/</link>
		<comments>http://www.leong.nl/2009/06/htc-magic-rooting-and-custom-roms/#comments</comments>
		<pubDate>Sat, 20 Jun 2009 21:58:10 +0000</pubDate>
		<dc:creator>Kim Chee Leong</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[Development]]></category>
		<category><![CDATA[Gadgets]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[android phone root htc magic sapphire]]></category>

		<guid isPermaLink="false">http://www.leong.nl/?p=106</guid>
		<description><![CDATA[Update 25 May 2010 &#8211; This information is outdated. Please refer to this page on the XDA Developers forum: http://forum.xda-developers.com/showthread.php?t=529062 Here are the steps to the how-to&#8217;s to get root access to your HTC Magic and load a custom ROM. I took me some time to find all the needed info to do the job. [...]]]></description>
			<content:encoded><![CDATA[<p><img class="attachment wp-att-116 alignright" style="float: right;" src="http://www.leong.nl/wp-content/htc_magic.jpg" alt="htc_magic" width="100" height="100" /></p>
<p><strong>Update 25 May 2010 &#8211; This information is outdated. Please refer to this page on the XDA Developers forum:</strong></p>
<p><strong><a href="http://forum.xda-developers.com/showthread.php?t=529062">http://forum.xda-developers.com/showthread.php?t=529062</a></strong></p>
<p>Here are the steps to the how-to&#8217;s to get root access to your <a title="HTC Magic" href="http://en.wikipedia.org/wiki/HTC_Magic">HTC Magi</a>c and load a custom ROM. I took me some time to find all the needed info to do the job. So I&#8217;m hapy to share it. There&#8217;s a lot of (cluttered) info but most of it is found in multiple page forums. Really great that there lot&#8217;s of people developing and using this stuff but a forum isn&#8217;t the right place for documentation.</p>
<p><em>Note 30-03-2010, the information below is outdated. Please look at the following wiki&#8217;s for more up to date info:</em></p>
<p><em><a title="XDA Developers Wiki about HTC Magic" href="http://wiki.xda-developers.com/index.php?pagename=HTC_Sapphire_Hacking"><span style="color: #000000;">http://wiki.xda-developers.com/index.php?pagename=HTC_Sapphire_Hacking</span></a></em></p>
<p><em><a title="Cyanogenmod custom Android ROM - Wiki" href="http://wiki.cyanogenmod.com/index.php/Main_Page">http://wiki.cyanogenmod.com/index.php/Main_Page</a></em></p>
<h2>Got root?</h2>
<p>Getting root access on the Magic isn&#8217;t so hard. Just install the SDK and USB drivers and push the images to the phone. In the last step is to install haykuro&#8217;s SPL update. This is the bootloader (correct?) and has a very usefull <a title="Nandroid info" href="http://androidcommunity.com/forums/f28/nandroid-v2-0-full-nand-backup-and-restore-tool-9336/">back-up option</a>. It&#8217;s called nandroid and creates back-up images of the system.  After this you have root access from the android debugger on your computer.</p>
<p><a title="Root how-to for HTC Magic" href="http://android-dls.com/wiki/index.php?title=Magic_Rooting">http://android-dls.com/wiki/index.php?title=Magic_Rooting</a></p>
<p>The second step is enabling root access from the phone. This allows you to su from the phone. Needed for installing rooted apps. It opens a security risk as mentioned in the how-to. But there a sudo-like app <a title="Superuser whitelist" href="http://www.cyrket.com/package/org.zenthought.android.su">SuperUser whitelist</a> to prevent unwanted root access (preinstalled on most custom roms). :</p>
<p><a title="Can I haz root?" href="http://android-dls.com/wiki/index.php?title=Magic_Root_Access">http://android-dls.com/wiki/index.php?title=Magic_Root_Access</a></p>
<h2>Custom ROMS</h2>
<p>So now you&#8217;ve got full access to the Magic but stuck with a stock rom from your provider. There are lots of roms floating around for Android but most of them are for the HTC Dream (G1). I found out the hard way by installing a G1 rom, WiFi and other hardware functions aren&#8217;t working. Not so strange with a different kernel etc&#8230;</p>
<p>These are the ROMs that are available at the moment:</p>
<ul>
<li>Google/HTC original stock rom</li>
<li><a title="Hero rom" href="http://forum.xda-developers.com/showthread.php?t=521544">Hero Rom</a>. Android with an updated ui. Shiney and new but it&#8217;s slow and laggy</li>
<li>Google ION rom. ION is a developer phone. <a title="nk02 Google ION (orginal from Haykuro)" href="http://forum.xda-developers.com/showthread.php?t=523971">Customized rom available.</a></li>
<li><a title="Haykuro's HTC Magic roms" href="http://code.google.com/p/sapphire-port-dream/">Haykuro&#8217;s Rom</a>. Haykuro&#8217;s roms are excellent but it seems that he has stopped developing.</li>
<li><a title="smartphone france htc magic rom" href="http://wiki.smartphonefrance.info/(X(1)S(sdzw0c2jcgoe2o55v2lepg45))/firmware-htcmagic.ashx">Smartphone France</a> (<a title="translation in English" href="http://babelfish.yahoo.com/translate_url?doit=done&amp;tt=url&amp;intl=1&amp;fr=bf-home&amp;trurl=http%3A%2F%2Fwiki.smartphonefrance.info%2F(X(1)S(sdzw0c2jcgoe2o55v2lepg45))%2Ffirmware-htcmagic.ashx&amp;lp=fr_en&amp;btnTrUrl=Translate">translation</a>). Customized ION rom, available in EU languages.</li>
</ul>
<p>Sending a rom is really easy, just like in the rooting process with an update.zip on the SD card. Always take care when installing a new rom. Better safe than sorry and check if it works on your Magic/Sapphire/ION. The last thing you want is a bricked phone&#8230;</p>
<p>I tried the Google ION rom and it works well. The benefits of this custom rom are; it&#8217;s faster, rooted, voice commands and more!� This is a good rom but there&#8217;s a HTC soft keyboard instead of Google&#8217;s. I didn&#8217;t like it and replaced it. <a title="Replace HTC keyboard with Google's" href="http://forum.xda-developers.com/showpost.php?p=3965137&amp;postcount=100">Instructions here</a>, you&#8217;ll need a <a href="http://www.droiddeveloper.com/hrbuilds/ionr2-sapphire-signed.zip">specific rom</a> (for extracting system files) or it won&#8217;t work!</p>
<p>I&#8217;m now using the Smartphone France version. The main advantage between above ION rom is this one is, tethering works and a higher version update rate. You won&#8217;t notice anything of the French language (beside a few small apps on the rom).</p>
<p>Also check out my <a title="Delicious" href="http://delicious.com/kcleong/android">Android bookmarks</a>!</p>
<div id="_mcePaste" style="overflow: hidden; position: absolute; left: -10000px; top: 326px; width: 1px; height: 1px;">Haykuro&#8217;s roms are excellent but it seems that he has stopped developing.</div>
]]></content:encoded>
			<wfw:commentRss>http://www.leong.nl/2009/06/htc-magic-rooting-and-custom-roms/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ubuntu release party in Groningen</title>
		<link>http://www.leong.nl/2009/04/ubuntu-release-party-in-groningen/</link>
		<comments>http://www.leong.nl/2009/04/ubuntu-release-party-in-groningen/#comments</comments>
		<pubDate>Thu, 23 Apr 2009 18:59:24 +0000</pubDate>
		<dc:creator>Kim Chee Leong</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.leong.nl/?p=85</guid>
		<description><![CDATA[Vandaag is Ubuntu 9.04 uitgekomen. Deze release is ook bekend als &#8216;Jaunty Jackalope&#8217;. Op donderdag 7 mei 2009 is er een release party georganiseerd door NN-Open. Vanaf 16:00 gaan de deuren open. Kom langs voor een borrel! Release party in agenda NN-Open met locatie details.]]></description>
			<content:encoded><![CDATA[<p>Vandaag is <a href="http://www.ubuntu.com">Ubuntu 9.04</a> uitgekomen. Deze release is ook bekend als &#8216;Jaunty Jackalope&#8217;. Op donderdag 7 mei 2009 is er een <a href="https://wiki.ubuntu.com/JauntyReleaseParties">release party</a> georganiseerd door <a href="http://www.nn-open.org">NN-Open</a>. Vanaf 16:00 gaan de deuren open. Kom langs voor een borrel!</p>
<p><a href="http://www.nn-open.org/Members/dokter/ubuntu-release-party-onder-voorbehoud">Release party in agenda NN-Open met locatie details.</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.leong.nl/2009/04/ubuntu-release-party-in-groningen/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ubuntu Jaunty upgrade with ATI/AMD graphics</title>
		<link>http://www.leong.nl/2009/04/ubuntu-jaunty-upgrade-with-atiamd-graphics/</link>
		<comments>http://www.leong.nl/2009/04/ubuntu-jaunty-upgrade-with-atiamd-graphics/#comments</comments>
		<pubDate>Fri, 17 Apr 2009 18:48:29 +0000</pubDate>
		<dc:creator>Kim Chee Leong</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://www.leong.nl/?p=74</guid>
		<description><![CDATA[Today the release candidate of Ubuntu Jaunty came out. Ofcourse I want to use the latest and greatest Ubuntu! After running &#8216;updatemanager -d&#8217; to do a dist-upgrade I got a warning that fglrx (ATI proprietary driver) wouldn&#8217;t work. Pff so what, I want to upgrade&#8230; Dist-upgrading to Jaunty didn&#8217;t go smooth. But who said this [...]]]></description>
			<content:encoded><![CDATA[<p>Today the release candidate of Ubuntu Jaunty came out. Ofcourse I want to use the latest and greatest Ubuntu! After running &#8216;updatemanager -d&#8217; to do a dist-upgrade I got a warning that fglrx (ATI proprietary driver) wouldn&#8217;t work. Pff so what, I want to upgrade&#8230;</p>
<p>Dist-upgrading to Jaunty didn&#8217;t go smooth. But who said this is a easy road when you try beta stuff. First I had to run the upgrade from the terminal with &#8216;do-release-upgrade&#8217;. When it was finished (to early..) I ended with a broken upgrade. Fortunately I succeeded to upgrade after booting into recovery mode with the option &#8216;fix dpkg&#8217;.</p>
<p>Hmm all seemed well after booting but I endedup with all strange lines on my laptop screen. No login screen, even when I tried the open source ATI driver. Seems the flgrx driver interferes with the radeon driver&#8230;</p>
<p>See: <a href="https://wiki.ubuntu.com/X/Troubleshooting/FglrxInteferesWithRadeonDriver" target="_blank">https://wiki.ubuntu.com/X/Troubleshooting/FglrxInteferesWithRadeonDriver</a></p>
<p>Fixed it with:</p>
<p class="line867">
<pre>  sudo /usr/share/ati/fglrx-uninstall.sh  # (if it exists)
  sudo apt-get remove --purge fglrx*
  sudo apt-get remove --purge xserver-xorg-video-ati xserver-xorg-video-radeon
  sudo apt-get install xserver-xorg-video-ati
  sudo apt-get install --reinstall libgl1-mesa-glx libgl1-mesa-dri xserver-xorg-core
  dpkg-reconfigure xserver-xorg</pre>
<p>Now Jaunty is running like a crazy kralting using open source ati drivers. Compiz works great even with a dual head setup. There one flaw when playing 3D games (like Nexuiz) Ubuntu freezes&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.leong.nl/2009/04/ubuntu-jaunty-upgrade-with-atiamd-graphics/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

