<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearch/1.1/" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" gd:etag="W/&quot;CEYERHY4fyp7ImA9WhRRFEk.&quot;"><id>tag:blogger.com,1999:blog-21920679</id><updated>2011-11-27T17:01:45.837-08:00</updated><category term="linux" /><category term="ethernet" /><category term="hack" /><category term="toolchain gcc" /><category term="linker" /><category term="toolchain" /><category term="ssh tunneling proxy" /><category term="nginx daemontools" /><category term="Perl" /><category term="website" /><category term="u-boot" /><category term="submission" /><category term="website nginx ec2" /><category term="root" /><category term="driver touchscreen" /><category term="mutt" /><category term="toolchain linker" /><category term="cms" /><category term="trick" /><category term="kernel" /><category term="email" /><category term="gcc" /><category term="network" /><category term="vim" /><category term="udev" /><category term="tools perl" /><category term="interrupt" /><category term="perl regex" /><category term="skbuff" /><category term="suid" /><title>*nix System and Programming</title><subtitle type="html">A blog about the system and programming of *nix environment.

It covers:
* Scripts that I am familiar with include shell scripts, Perl, Python, Tcl/Tk, and PHP.

* Utilities includes sed, grep, awk, cat, tac, ...

* Kernel development and optimization, device driver

* Networking

* Toolchain, build environment</subtitle><link rel="http://schemas.google.com/g/2005#feed" type="application/atom+xml" href="http://nixscripts.blogspot.com/feeds/posts/default" /><link rel="alternate" type="text/html" href="http://nixscripts.blogspot.com/" /><link rel="next" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default?start-index=26&amp;max-results=25&amp;redirect=false&amp;v=2" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><generator version="7.00" uri="http://www.blogger.com">Blogger</generator><openSearch:totalResults>52</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/atom+xml" href="http://feeds.feedburner.com/nixSystemAndProgramming" /><feedburner:info uri="nixsystemandprogramming" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><entry gd:etag="W/&quot;CUEDQ347fyp7ImA9WhdQEks.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-5317852195115531619</id><published>2011-08-13T12:27:00.000-07:00</published><updated>2011-08-13T12:27:52.007-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-08-13T12:27:52.007-07:00</app:edited><title>SSH Tunnelling + SOCKS Proxy browsing</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/5317852195115531619?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/5317852195115531619?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/bdyL4nyK0Wo/ssh-tunnelling-socks-proxy-browsing.html" title="SSH Tunnelling + SOCKS Proxy browsing" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">This is the simplest way to access content not available in your country. For example, if you want to access hulu.com from Canada, you may use this method.



First of all, you need a server running Linux in the US.  You may either have a dedicated server or virtual dedicated server, or your home computer in the US.



From your client side, you need to issue 'ssh -D 9999 user@your_server_ip', so
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Fri_X6SkRgzfqDf2u0rlB64CrtY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Fri_X6SkRgzfqDf2u0rlB64CrtY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Fri_X6SkRgzfqDf2u0rlB64CrtY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Fri_X6SkRgzfqDf2u0rlB64CrtY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/bdyL4nyK0Wo" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2011/08/ssh-tunnelling-socks-proxy-browsing.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkcFQHc5cCp7ImA9WhdSGEw.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-5130573678036339104</id><published>2011-07-27T16:40:00.000-07:00</published><updated>2011-07-27T16:40:11.928-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-07-27T16:40:11.928-07:00</app:edited><title>tmux vs. screen</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/5130573678036339104?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/5130573678036339104?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/nTwYE3DYDt8/tmux-vs-screen.html" title="tmux vs. screen" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I am an experienced GNU screen users for many years.  Recently, I learned to use tmux and found it is a great replacement of screen.

Tmux is originally developed in OpenBSD and was ported to many systems.

The configuration is easy with many configurable options. Here is my startup script of tmux.

#!/bin/bash
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/HIcqktMn85luUlHsV4wyBjS62oA/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HIcqktMn85luUlHsV4wyBjS62oA/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/HIcqktMn85luUlHsV4wyBjS62oA/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/HIcqktMn85luUlHsV4wyBjS62oA/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/nTwYE3DYDt8" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2011/07/tmux-vs-screen.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUYESXY8fyp7ImA9WhZWEE0.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-3413803348669280766</id><published>2011-05-09T22:58:00.000-07:00</published><updated>2011-05-09T22:58:28.877-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2011-05-09T22:58:28.877-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="nginx daemontools" /><title>nginx and daemontools</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/3413803348669280766?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/3413803348669280766?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/RlU0dBuN55E/nginx-and-daemontools.html" title="nginx and daemontools" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">To use nginx with daemontools, the following configuration variable has to be set in your nginx.conf.

daemon off;

The following is the simple /service/nginx/run script to use with daemontools.

#!/bin/sh

exec fghack /usr/sbin/nginx

To get your php-cgi working with nginx, you'd use spawn-fcgi, which is a tool spinned-off from lighttpd.

The /service/php-cgi/run script

#!/bin/sh


&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/eAgBrVoUWe43qN7ck-72tfyGr3Q/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eAgBrVoUWe43qN7ck-72tfyGr3Q/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/eAgBrVoUWe43qN7ck-72tfyGr3Q/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/eAgBrVoUWe43qN7ck-72tfyGr3Q/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/RlU0dBuN55E" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2011/05/nginx-and-daemontools.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DUUGSHs8fyp7ImA9Wx9RE0Q.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-4080557363357325758</id><published>2010-12-14T23:13:00.000-08:00</published><updated>2010-12-14T23:13:49.577-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-14T23:13:49.577-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ssh tunneling proxy" /><title>ssh tunneling is powerful</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/4080557363357325758?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/4080557363357325758?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/og0q-3M31J4/ssh-tunneling-is-powerful.html" title="ssh tunneling is powerful" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">To work from home, we have to use a "svi" service, with dynamic changing password and ssh to a dedicated company server.  It's a bit inconvenience at the beginning, until I found the power of ssh tunneling.


In short, if you have ssh connection, you may setup localforward and then your ssh server is working like a proxy to access the other network.


As we have proxy server to access company 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_MIwiYOTs5eWPEEb_-KQ4gVDEBk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_MIwiYOTs5eWPEEb_-KQ4gVDEBk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_MIwiYOTs5eWPEEb_-KQ4gVDEBk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_MIwiYOTs5eWPEEb_-KQ4gVDEBk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/og0q-3M31J4" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/12/ssh-tunneling-is-powerful.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUYFRHo-cSp7ImA9Wx9REk8.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-364425861997126564</id><published>2010-12-12T22:51:00.000-08:00</published><updated>2010-12-12T22:51:55.459-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-12-12T22:51:55.459-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="website nginx ec2" /><title>web hosting with nginx and Amazon EC2</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/364425861997126564?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/364425861997126564?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/dGYcKBbR6mQ/web-hosting-with-nginx-and-amazon-ec2.html" title="web hosting with nginx and Amazon EC2" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I am doing some test recently on using Amazon's EC2 for website hosting.  The EC2 is a cloud service offered by Amazon.  You have total control, ie, root access to the virtual server hosted by Amazon.  Their current promotion can give you free use for the first year.  That's why I decided to do a trial. Even after the 1st year, if you buy reserved instance from Amazon, it is not expensive 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-ToHJDsfI2IyXWse0ZCrT_sv87c/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-ToHJDsfI2IyXWse0ZCrT_sv87c/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-ToHJDsfI2IyXWse0ZCrT_sv87c/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-ToHJDsfI2IyXWse0ZCrT_sv87c/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/dGYcKBbR6mQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/12/web-hosting-with-nginx-and-amazon-ec2.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0MEQ389fyp7ImA9Wx5aE0k.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-2198463676030695007</id><published>2010-11-09T16:36:00.000-08:00</published><updated>2010-11-09T16:36:42.167-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-11-09T16:36:42.167-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="tools perl" /><title>procmail, Catalyst, and DBIx</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/2198463676030695007?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/2198463676030695007?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/-0tA1ifrbKU/procmail-catalyst-and-dbix.html" title="procmail, Catalyst, and DBIx" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">Stuff I am working on recently.

Procmail

Learned to use procmail to filter my emails. I used procmail and wrote some rules. My recent activity was to create a perl script to do special action once an email is received.  This can be greatly helpful to create trigger system for our infrastructure.

A great glue for various tools.

Catalyst

I am learning Catalyst, the MVC based Perl framework for
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/aar9tDIJ70ZpuDjY-jyhbyWIZSk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aar9tDIJ70ZpuDjY-jyhbyWIZSk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/aar9tDIJ70ZpuDjY-jyhbyWIZSk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/aar9tDIJ70ZpuDjY-jyhbyWIZSk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/-0tA1ifrbKU" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/11/procmail-catalyst-and-dbix.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkQERX0_cSp7ImA9Wx5UGE0.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-8550442568043951924</id><published>2010-10-22T21:31:00.000-07:00</published><updated>2010-10-22T21:31:44.349-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-10-22T21:31:44.349-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="perl regex" /><title>regex</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/8550442568043951924?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/8550442568043951924?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/shuWlTFD9ds/regex.html" title="regex" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I had an interesting regular expression problem this week.

The problem we are trying to solve is simple: to find out the root directory for a software repository.

The assumption of the problem is that all the repository contains a directory like "foo" or "bbb". So, given a full path, we need to find out the parent directory of "foo", or "bbb".  For example, the given directory is "/home/myhome/
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fyq8nIYUuKqE7wPVu1eZyxSbVyg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fyq8nIYUuKqE7wPVu1eZyxSbVyg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fyq8nIYUuKqE7wPVu1eZyxSbVyg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fyq8nIYUuKqE7wPVu1eZyxSbVyg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/shuWlTFD9ds" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/10/regex.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUBRnc9cSp7ImA9Wx5WEUQ.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-1890150358148814085</id><published>2010-09-22T14:50:00.000-07:00</published><updated>2010-09-22T14:50:57.969-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-22T14:50:57.969-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="submission" /><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="kernel" /><title>Linux Kernel Submission</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/1890150358148814085?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/1890150358148814085?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/ZwKHf73CFbA/linux-kernel-submission.html" title="Linux Kernel Submission" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I think it is time to summarize my experience in the submission of bcmring architecture into the linux kernel.

You may find my contribution to the kernel 2.6.32 in the following page. Noted Broadcom ranked No. 4 by lines of changes. Mostly by me. :-)
Linux Kernel Development Statistics

1) subscribe to the arm-linux-kernel mailing list
2) send out your first email asking about other people's 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/4ErmsxceCWo2FJtFgQw3DPhyRrY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4ErmsxceCWo2FJtFgQw3DPhyRrY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/4ErmsxceCWo2FJtFgQw3DPhyRrY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/4ErmsxceCWo2FJtFgQw3DPhyRrY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/ZwKHf73CFbA" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/09/linux-kernel-submission.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEIFRX4_fCp7ImA9Wx5QFEg.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-5994743047422376066</id><published>2010-09-02T11:35:00.000-07:00</published><updated>2010-09-02T11:35:14.044-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-09-02T11:35:14.044-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gcc" /><title>badly punctuated parameter list</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/5994743047422376066?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/5994743047422376066?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/SKZDD_wcdfc/badly-punctuated-parameter-list.html" title="badly punctuated parameter list" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I've encountered some strange problem like

"badly punctuated parameter list" in macro definition for C when I was compiling perl modules on Solaris platform.  After my research, I found that it is due to ancient gcc, like 2.81 can't process the following macro definition.

#define my_snprintf(buffer, len, ...) snprintf(buffer, len, __VA_ARGS__)

You have to change it to a more compatible form 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/-yDWmQYBuovmvp8qI7B_md6BAOo/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-yDWmQYBuovmvp8qI7B_md6BAOo/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/-yDWmQYBuovmvp8qI7B_md6BAOo/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/-yDWmQYBuovmvp8qI7B_md6BAOo/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/SKZDD_wcdfc" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/09/badly-punctuated-parameter-list.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEQAQn4-eCp7ImA9WxFaE00.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-9008352515365531094</id><published>2010-07-16T10:45:00.001-07:00</published><updated>2010-07-16T10:45:43.050-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-16T10:45:43.050-07:00</app:edited><title>hidden arguments, easter egg, or what?</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/9008352515365531094?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/9008352515365531094?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/Ymwg-LMbhcI/hidden-arguments-easter-egg-or-what.html" title="hidden arguments, easter egg, or what?" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I just learned today that there is a hidden argument of 'date' command under Linux.It is 'date --iso=seconds', which is equivalent to 'date +%FT%T%z' command.The '--iso=seconds' argument is not recorded in the manual nor usage help.   However, it is not supported in Solaris. So, I fixed a script problem today by replacing the non-standard --iso=seconds argument with the +%FT%T%z argument for date
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/nfXJ_WpNCjrbCSt-VsTtzj8B-Rk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nfXJ_WpNCjrbCSt-VsTtzj8B-Rk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/nfXJ_WpNCjrbCSt-VsTtzj8B-Rk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/nfXJ_WpNCjrbCSt-VsTtzj8B-Rk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/Ymwg-LMbhcI" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/07/hidden-arguments-easter-egg-or-what.html</feedburner:origLink></entry><entry gd:etag="W/&quot;AkcEQns_cSp7ImA9WxFUFEU.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-2689171818734785665</id><published>2010-06-25T10:46:00.001-07:00</published><updated>2010-06-25T10:46:43.549-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-06-25T10:46:43.549-07:00</app:edited><title>coverity</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/2689171818734785665?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/2689171818734785665?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/bJyV-IbPIN0/coverity.html" title="coverity" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I am recently working on the Coverity Prevent product, which is a static source code analysis tool to identify possible bugs in the source code.  The tool is pretty cool, originally developed in Stanford University. It's gaining a lot of momentum recently with mature products and backed by VC.  Looks like many big companies are jumping onto the board of Coverity.  It's a promising tool.  But I 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/OPBOmj_6yA6GM04LIrQhpZ_IRqU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OPBOmj_6yA6GM04LIrQhpZ_IRqU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/OPBOmj_6yA6GM04LIrQhpZ_IRqU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/OPBOmj_6yA6GM04LIrQhpZ_IRqU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/bJyV-IbPIN0" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/06/coverity.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CEUHRno5cCp7ImA9WxFbFEg.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-4554177895981282943</id><published>2010-06-18T00:26:00.000-07:00</published><updated>2010-07-06T14:37:17.428-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-07-06T14:37:17.428-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linux" /><category scheme="http://www.blogger.com/atom/ns#" term="suid" /><category scheme="http://www.blogger.com/atom/ns#" term="root" /><category scheme="http://www.blogger.com/atom/ns#" term="hack" /><title>How to hack the Linux box to get root permission</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/4554177895981282943?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/4554177895981282943?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/cUEE1jR4WjI/how-to-hack-linux-box-to-get-root.html" title="How to hack the Linux box to get root permission" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">You have a Linux box with you, but you have only a normal user account.  You want to hack this box and get root permission.  Now, you have a solution.

Note. the following procedure works only when you use Grub boot loader. Never tested with Lilo.

1. reboot your machine
2. before boot to Linux, press some key to bring up your boot loader interface
3. press "e" to edit your boot loader line, in 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/_yGoZQKxxoHPnSrVwnoLTMOq6qg/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_yGoZQKxxoHPnSrVwnoLTMOq6qg/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/_yGoZQKxxoHPnSrVwnoLTMOq6qg/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/_yGoZQKxxoHPnSrVwnoLTMOq6qg/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/cUEE1jR4WjI" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/06/how-to-hack-linux-box-to-get-root.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0EBRng9cSp7ImA9WxFXE08.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-1588816303021471484</id><published>2010-05-19T21:27:00.000-07:00</published><updated>2010-05-19T21:27:37.669-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-05-19T21:27:37.669-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mutt" /><category scheme="http://www.blogger.com/atom/ns#" term="email" /><title>mutt, fetchmail, procmail, and mini_sendmail</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/1588816303021471484?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/1588816303021471484?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/vEA2_3pgzaA/mutt-fetchmail-procmail-and.html" title="mutt, fetchmail, procmail, and mini_sendmail" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">In recent days, I've managed to setup mutt, together with fetchmail, procmail, and mini_sendmail in my working environment.

Mutt is my favorite MUA, mail user agent, due to it's simplicity, speed and powerful configuration.
Fetchmail is used to grab mails from pop/imap server and deliver the mails to local directory.
Procmail is used to classify the mails received, based on very flexible regex 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/hB44u4GFpTHJycwVCxRG_10KvCE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hB44u4GFpTHJycwVCxRG_10KvCE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/hB44u4GFpTHJycwVCxRG_10KvCE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/hB44u4GFpTHJycwVCxRG_10KvCE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/vEA2_3pgzaA" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/05/mutt-fetchmail-procmail-and.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0UBRH86fyp7ImA9WxFREUg.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-77732088280234709</id><published>2010-04-24T18:34:00.000-07:00</published><updated>2010-04-24T18:34:15.117-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-04-24T18:34:15.117-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="cms" /><category scheme="http://www.blogger.com/atom/ns#" term="website" /><title>Wordpress vs. Drupal</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/77732088280234709?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/77732088280234709?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/3O0Ha7p_Ago/wordpress-vs-drupal.html" title="Wordpress vs. Drupal" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I recently installed wordpress and drupal on my two websites.
Wordpress on http://alrishachen.com
Drupal on http://alrisha.ca

I'd compare those two popular CMS based on my own experience.

* installation. Both are easy to install/deploy on your hosting server.  You just need to untar the tarball and setup database, usually MySQL based on the document.  Then, you run the install page and input 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/fz6tpP7Aahbw8NEJ0R6uErByzvI/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fz6tpP7Aahbw8NEJ0R6uErByzvI/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/fz6tpP7Aahbw8NEJ0R6uErByzvI/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/fz6tpP7Aahbw8NEJ0R6uErByzvI/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/3O0Ha7p_Ago" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/04/wordpress-vs-drupal.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUDQHs_fip7ImA9WxBbGE0.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-897066206329360609</id><published>2010-03-16T22:37:00.000-07:00</published><updated>2010-03-16T22:37:51.546-07:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-16T22:37:51.546-07:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="linker" /><title>linking with multiple definition of functions</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/897066206329360609?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/897066206329360609?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/Hg7IQN190FQ/linking-with-multiple-definition-of.html" title="linking with multiple definition of functions" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I had fixed a linking problem today.  The problem was caused by multiple definitions of the same function name.  The linker complains about the multiple definitions of the same function.  The solution is to add "-z muldefs" to the LDFLAGS, so that the linker will accept multiple definitions and just link the function it encountered first into the final ELF file.  This maybe dangerous, as your 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Y2CWSgEwO357UgGAult4rhROfR8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y2CWSgEwO357UgGAult4rhROfR8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Y2CWSgEwO357UgGAult4rhROfR8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y2CWSgEwO357UgGAult4rhROfR8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/Hg7IQN190FQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/03/linking-with-multiple-definition-of.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CkYGSXg9fCp7ImA9WxBbEE4.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-9148214659222929386</id><published>2010-03-07T22:35:00.000-08:00</published><updated>2010-03-07T22:35:28.664-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-07T22:35:28.664-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="u-boot" /><title>u-boot works now</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/9148214659222929386?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/9148214659222929386?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/X2uSNA6yi4k/u-boot-works-now.html" title="u-boot works now" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I finally get u-boot working on our bcmring platform on Friday.  I had the hunch on Thursday that the ATAG parameters were not set properly that kernel can't boot.  I used JTAG to examine the memory where the ATAG paramters stored.  By comparing the memory content set by the working boot2 loader and the u-boot, I found that the command line for kernel wasn't set at all in u-boot.  It turns out to
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/3SAhgInrEij21rbk8AziwHJNkzU/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3SAhgInrEij21rbk8AziwHJNkzU/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/3SAhgInrEij21rbk8AziwHJNkzU/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/3SAhgInrEij21rbk8AziwHJNkzU/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/X2uSNA6yi4k" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/03/u-boot-works-now.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUMMR3s9cSp7ImA9WxBUF0o.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-4888817684555931166</id><published>2010-03-04T23:18:00.000-08:00</published><updated>2010-03-04T23:18:06.569-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-03-04T23:18:06.569-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="u-boot" /><category scheme="http://www.blogger.com/atom/ns#" term="kernel" /><title>u-boot again</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/4888817684555931166?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/4888817684555931166?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/2CdD-EBVTGM/u-boot-again.html" title="u-boot again" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I am still working the u-boot project.  After I got the ARM realview ice debugger, my life is easier, but still tough.  I traced the assembly code of Linux kernel and compare the execution of the same kernel booted by both boot2 and u-boot.  As the boot2 can successfully boot the kernel image, I just need to make sure u-boot can get to the same state that u-boot created for the kernel.

I figured
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/P24sRfxzFVGkP9X9F2noZWAfFeE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/P24sRfxzFVGkP9X9F2noZWAfFeE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/P24sRfxzFVGkP9X9F2noZWAfFeE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/P24sRfxzFVGkP9X9F2noZWAfFeE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/2CdD-EBVTGM" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/03/u-boot-again.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQESXs_eSp7ImA9WxBUEEo.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-6015262144844910330</id><published>2010-02-24T21:38:00.000-08:00</published><updated>2010-02-24T21:38:28.541-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-02-24T21:38:28.541-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="u-boot" /><title>u-boot</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/6015262144844910330?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/6015262144844910330?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/WbvtVWcX75s/u-boot.html" title="u-boot" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I have been working on u-boot since last week. I need to port u-boot to our bcmring platform.

We have some example from another team of Broadcom to support u-boot on the 2153 platform, which has a similar ARM core with our bcmring platform.

I got the u-boot to build last week. Since this week, I learned to use JTAG to load the u-boot elf file into the memory of the platform after ddr 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/xHpWCZmeAkQfNq-O_hrX70hXQhE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xHpWCZmeAkQfNq-O_hrX70hXQhE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/xHpWCZmeAkQfNq-O_hrX70hXQhE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/xHpWCZmeAkQfNq-O_hrX70hXQhE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/WbvtVWcX75s" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/02/u-boot.html</feedburner:origLink></entry><entry gd:etag="W/&quot;D0QARXs4eyp7ImA9WxBQFEg.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-1248743491471700830</id><published>2010-01-13T23:49:00.001-08:00</published><updated>2010-01-13T23:49:04.533-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-13T23:49:04.533-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="udev" /><title>udev 150</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/1248743491471700830?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/1248743491471700830?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/aWq4eU_CIyY/udev-150.html" title="udev 150" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I've successfully updated udev for our target from 142 to 150 versions.  I've added three patches to fix the compile errors.  Those patches are introduced because the kernel header used in our toolchain is older than the latest version, like the inotify_init1 system call is not available in our version of toolchain.  I have to use the inotify_init system call instead.

Anyway, it works in my 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/IALXqzpdyQcvNUx5DlU_m_qzjVk/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IALXqzpdyQcvNUx5DlU_m_qzjVk/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/IALXqzpdyQcvNUx5DlU_m_qzjVk/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/IALXqzpdyQcvNUx5DlU_m_qzjVk/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/aWq4eU_CIyY" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/01/udev-150.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CUcMSH89cCp7ImA9WxBQE0s.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-4210221478201081257</id><published>2010-01-12T22:11:00.001-08:00</published><updated>2010-01-12T22:11:29.168-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2010-01-12T22:11:29.168-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="udev" /><title>udev</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/4210221478201081257?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/4210221478201081257?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/JK-kfQgT8zQ/udev.html" title="udev" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I've got udev working on our platform. It's initially ported by an intern, but it seemed not working before he left.  The problem was due to the kernel configuration.  Once I sorted out the proper kernel configuration, udevd started properly and it works.  The ota also worked with the udev.  The previous port of udev was udev 142 version, which is rather old.  I am porting the 150 version to our 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/9NrNnXN0-PxMeeM-Oxfe5eLr6s4/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9NrNnXN0-PxMeeM-Oxfe5eLr6s4/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/9NrNnXN0-PxMeeM-Oxfe5eLr6s4/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/9NrNnXN0-PxMeeM-Oxfe5eLr6s4/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/JK-kfQgT8zQ" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2010/01/udev.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DkUCRHs5fip7ImA9WxBSGUU.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-3052492142106784528</id><published>2009-12-27T22:44:00.000-08:00</published><updated>2009-12-27T23:11:05.526-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-12-27T23:11:05.526-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="gcc" /><category scheme="http://www.blogger.com/atom/ns#" term="toolchain" /><title>Toolchain study digest</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/3052492142106784528?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/3052492142106784528?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/z__W65vFS-0/toolchain-study-digest.html" title="Toolchain study digest" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">Some information I learned recently about GNU GCC toolchain and related topic from the book "Professional Linux Programming".  Although I am familiar with most of the content, I'd just record here for a better memory.

* -fPIC (position independent code), used to generate code can be executed anywhere in the kernel, usually used to generate shared library.

* -shared -o libfoo.so, generate shared
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/VdfFLdN4AOCfKnNZjEbAaFw4Xt8/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VdfFLdN4AOCfKnNZjEbAaFw4Xt8/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/VdfFLdN4AOCfKnNZjEbAaFw4Xt8/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/VdfFLdN4AOCfKnNZjEbAaFw4Xt8/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/z__W65vFS-0" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2009/12/toolchain-study-digest.html</feedburner:origLink></entry><entry gd:etag="W/&quot;DEQARH84eCp7ImA9WxNaFk0.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-2895571163131828842</id><published>2009-11-30T10:30:00.000-08:00</published><updated>2009-11-30T10:39:05.130-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-30T10:39:05.130-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="mutt" /><title>Useful Mutt documents and tips</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/2895571163131828842?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/2895571163131828842?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/ubBPStIw4k4/useful-mutt-documents-and-tips.html" title="Useful Mutt documents and tips" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I have started to use mutt as my main email client for a couple of months.  It is powerful and convenient, especially for me as I am a lover of terminal programs. 

I'd collect mutt relevant document here.

Training your mutt. http://www.linux.com/archive/articles/58760
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/e_KKvctQrK86Wi6iPFu0582lFbE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e_KKvctQrK86Wi6iPFu0582lFbE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/e_KKvctQrK86Wi6iPFu0582lFbE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/e_KKvctQrK86Wi6iPFu0582lFbE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/ubBPStIw4k4" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2009/11/useful-mutt-documents-and-tips.html</feedburner:origLink></entry><entry gd:etag="W/&quot;A0AGRHozcSp7ImA9WxNaFEs.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-8767348714105818091</id><published>2009-11-28T20:42:00.000-08:00</published><updated>2009-11-28T20:42:05.489-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2009-11-28T20:42:05.489-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="vim" /><category scheme="http://www.blogger.com/atom/ns#" term="trick" /><title>Vim tricks</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/8767348714105818091?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/8767348714105818091?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/wY8sV7fgIqg/vim-tricks.html" title="Vim tricks" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I've read another blog today about Efficient Editing with Vim.  I learned some new tricks as the follows.

   * g + h,j,k,l, to move screen line instead of real line. This can be real useful when you are editing an email with long lines.
   * fx, Fx, go forward/backword to the next occurrence of x.
   * (, ), move to the next sentence or the previous sentence
   * xG, goto the xth line, the same 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/zX4o73WALoySAV839pWgO0og5Qs/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zX4o73WALoySAV839pWgO0og5Qs/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/zX4o73WALoySAV839pWgO0og5Qs/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/zX4o73WALoySAV839pWgO0og5Qs/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/wY8sV7fgIqg" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2009/11/vim-tricks.html</feedburner:origLink></entry><entry gd:etag="W/&quot;CU4EQnk5fSp7ImA9WxRUEEU.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-5504875655049317089</id><published>2008-11-19T00:07:00.000-08:00</published><updated>2008-11-19T00:38:23.725-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-19T00:38:23.725-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="kernel" /><title>kernel upgrade to 2.6.27 for mips/arm platform</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/5504875655049317089?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/5504875655049317089?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/G-MBlRb7mic/kernel-upgrade-to-2627-for-mipsarm.html" title="kernel upgrade to 2.6.27 for mips/arm platform" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I have encountered other interesting issue when I was upgrading the kernel from 2.6.23 to 2.6.27 for our MIPS32 platform.1. the timer, as in 2.6.24 or later, the default MIPS timer has been separated from the old timer code.  For our architecture used the default cp0 comparison based timer, we need to enable the r4k timer to get the timer working.  I spend couple of days to understand this change
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/lNR6U4hZA8zxbZU98JL3-3-t5wY/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lNR6U4hZA8zxbZU98JL3-3-t5wY/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/lNR6U4hZA8zxbZU98JL3-3-t5wY/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/lNR6U4hZA8zxbZU98JL3-3-t5wY/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/G-MBlRb7mic" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2008/11/kernel-upgrade-to-2627-for-mipsarm.html</feedburner:origLink></entry><entry gd:etag="W/&quot;C0EAQng9eip7ImA9WxRUEEU.&quot;"><id>tag:blogger.com,1999:blog-21920679.post-381158796929358126</id><published>2008-11-18T23:44:00.000-08:00</published><updated>2008-11-19T00:00:43.662-08:00</updated><app:edited xmlns:app="http://www.w3.org/2007/app">2008-11-19T00:00:43.662-08:00</app:edited><category scheme="http://www.blogger.com/atom/ns#" term="ethernet" /><category scheme="http://www.blogger.com/atom/ns#" term="driver touchscreen" /><category scheme="http://www.blogger.com/atom/ns#" term="kernel" /><title>kernel upgrade to 2.6.27</title><link rel="edit" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/381158796929358126?v=2" /><link rel="self" type="application/atom+xml" href="http://www.blogger.com/feeds/21920679/posts/default/381158796929358126?v=2" /><link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/nixSystemAndProgramming/~3/KwDLp97KXTk/kernel-upgrade-to-2627.html" title="kernel upgrade to 2.6.27" /><author><name>Leo Chen</name><uri>http://www.blogger.com/profile/04022076992281022573</uri><email>noreply@blogger.com</email><gd:image rel="http://schemas.google.com/g/2005#thumbnail" width="23" height="32" src="http://4.bp.blogspot.com/_znlUOz-mvc8/S1Fle2I97LI/AAAAAAAABrc/I_ipmEivg2k/S220/leo_head.png" /></author><content type="html">I had just fixed a network driver bug when I upgrade the kernel from 2.6.23 to 2.6.27 for our MIPS platform. It takes couple of weeks.  The original problem appears when the NAPI was used in network driver and I changed the net_poll function accordingly.  Then, I got kernel panic with memory access failure.  After long time debugging, I found that there is some problem when the driver tries to 
&lt;p&gt;&lt;a href="http://feedads.g.doubleclick.net/~a/Y80OzTW-OHil-OMh8E3lcaap_UE/0/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y80OzTW-OHil-OMh8E3lcaap_UE/0/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;br/&gt;
&lt;a href="http://feedads.g.doubleclick.net/~a/Y80OzTW-OHil-OMh8E3lcaap_UE/1/da"&gt;&lt;img src="http://feedads.g.doubleclick.net/~a/Y80OzTW-OHil-OMh8E3lcaap_UE/1/di" border="0" ismap="true"&gt;&lt;/img&gt;&lt;/a&gt;&lt;/p&gt;&lt;img src="http://feeds.feedburner.com/~r/nixSystemAndProgramming/~4/KwDLp97KXTk" height="1" width="1"/&gt;</content><feedburner:origLink>http://nixscripts.blogspot.com/2008/11/kernel-upgrade-to-2627.html</feedburner:origLink></entry></feed>

