<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Use the Source, Luke!</title>
	<atom:link href="http://magicyyang.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://magicyyang.wordpress.com</link>
	<description></description>
	<lastBuildDate>Tue, 24 Jan 2006 06:12:23 +0000</lastBuildDate>
	<language></language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='magicyyang.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Use the Source, Luke!</title>
		<link>http://magicyyang.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://magicyyang.wordpress.com/osd.xml" title="Use the Source, Luke!" />
	<atom:link rel='hub' href='http://magicyyang.wordpress.com/?pushpress=hub'/>
		<item>
		<title>How to use Berkeley DB on blackfin</title>
		<link>http://magicyyang.wordpress.com/2006/01/24/how-to-use-berkeley-db-on-blackfin/</link>
		<comments>http://magicyyang.wordpress.com/2006/01/24/how-to-use-berkeley-db-on-blackfin/#comments</comments>
		<pubDate>Tue, 24 Jan 2006 04:15:31 +0000</pubDate>
		<dc:creator>magicyyang</dc:creator>
				<category><![CDATA[Embedded system]]></category>
		<category><![CDATA[Work (on Blackfin)]]></category>

		<guid isPermaLink="false">http://magicyyang.wordpress.com/2006/01/24/how-to-use-berkeley-db-on-blackfin/</guid>
		<description><![CDATA[1. Download Berkeley DB 4.4.20 from http://dev.sleepycat.com/downloads/releasehistorybdb.html, untar it into DBDIR/. 2. In DBDIR/build_unix/ $../dist/configure &#8211;host=bfin-uclinux &#8211;disable-tcl (modify db_config.h here if you want to do customize features) $make We&#8217;ll get all the necessary header files and libdb.a in this same folder after make. 3. Test example In DBDIR/examples_c/getting_started/, run $ bfin-uclinux-gcc gettingstarted_common.c\ example_database_read.c \ -o [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=18&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>1. Download Berkeley DB 4.4.20 from http://dev.sleepycat.com/downloads/releasehistorybdb.html,<br />
untar it into DBDIR/.</p>
<p>2. In DBDIR/build_unix/</p>
<p>$../dist/configure &#8211;host=bfin-uclinux &#8211;disable-tcl</p>
<p>(modify db_config.h here if you want to do customize features)</p>
<p>$make</p>
<p>We&#8217;ll get all the necessary header files and libdb.a in this same folder after make.<br />
3. Test example<br />
In DBDIR/examples_c/getting_started/, run</p>
<p>$ bfin-uclinux-gcc gettingstarted_common.c\<br />
example_database_read.c \<br />
-o  example_database_read  -L../../build_unix\<br />
-ldb -I../../build_unix -lpthread \<br />
-Wl,-elf2flt</p>
<p>$ bfin-uclinux-gcc gettingstarted_common.c\<br />
example_database_load.c \<br />
-o  example_database_load  -L../../build_unix\<br />
-ldb -I../../build_unix -lpthread \<br />
-Wl,-elf2flt</p>
<p>Note that DB needs a set of atomic mutex control functions, but Blackfin doesn&#8217;t have a simple atomic asm instruction, now we use the mutex functions in uclibc/libpthread. That is the reason for &#8220;-lpthread&#8221;.</p>
<p>Copy the generated &#8220;example_database_read&#8221;, &#8220;example_database_load&#8221; and &#8220;inventory.txt&#8221;, &#8220;vendors.txt&#8221; to Blackfin target. Run following to see the result.<br />
$./example_database_load; ./example_database_read</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/magicyyang.wordpress.com/18/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/magicyyang.wordpress.com/18/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/magicyyang.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/magicyyang.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/magicyyang.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/magicyyang.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/magicyyang.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/magicyyang.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/magicyyang.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/magicyyang.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/magicyyang.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/magicyyang.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/magicyyang.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/magicyyang.wordpress.com/18/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/magicyyang.wordpress.com/18/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/magicyyang.wordpress.com/18/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=18&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://magicyyang.wordpress.com/2006/01/24/how-to-use-berkeley-db-on-blackfin/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc91d43cb39aa26697d690f8e79c6903?s=96&#38;d=identicon" medium="image">
			<media:title type="html">magicyyang</media:title>
		</media:content>
	</item>
		<item>
		<title>How is &#8220;ctrl-c&#8221; handled in kernel&#8230;</title>
		<link>http://magicyyang.wordpress.com/2006/01/20/17/</link>
		<comments>http://magicyyang.wordpress.com/2006/01/20/17/#comments</comments>
		<pubDate>Fri, 20 Jan 2006 08:49:46 +0000</pubDate>
		<dc:creator>magicyyang</dc:creator>
				<category><![CDATA[Embedded system]]></category>
		<category><![CDATA[Kernel learning&hacking]]></category>

		<guid isPermaLink="false">http://magicyyang.wordpress.com/2006/01/20/17/</guid>
		<description><![CDATA[This picture shows how &#8220;control-c&#8221; gets into /dev/ttyS0 (that is, /dev/console). The serial driver simply sends char stream to n_tty driver. And n_tty search for all the control characters. When a ctrl-c pushed: n_tty.c:n_tty_receive_break() &#8211;&#62; isig(SIGINT,tty) &#8211;&#62; kill_pg(SIGINT, tty-&#62;pgrp) signal.c:kill_pg() calls signal(SIGINT,task) to interrupt every task has group number of tty-&#62;pgrp. So, if a process [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=17&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>This picture shows how &#8220;control-c&#8221; gets into /dev/ttyS0 (that is, /dev/console).<br />
The serial driver simply sends char stream to n_tty driver. And n_tty search for all the control characters.<br />
<img align="left" src="http://magicyyang.files.wordpress.com/2006/01/fig1.png?w=480" /></p>
<p>When a ctrl-c pushed:<br />
n_tty.c:n_tty_receive_break() &#8211;&gt; isig(SIGINT,tty) &#8211;&gt; kill_pg(SIGINT, tty-&gt;pgrp)<br />
signal.c:kill_pg() calls signal(SIGINT,task) to interrupt every task has group number of tty-&gt;pgrp.</p>
<p>So, if a process has the same group id with the tty, it can be kill by &#8220;ctrl-c&#8221; from that tty, no matter it is in background or foreground. In some old shells without job control feature (such as msh in busybox 1.00), if you start a process in background (with an &#8220;&amp;&#8221;) then list processes with &#8220;ps -j&#8221;, you&#8217;ll find that the &#8220;bg&#8221; process has the same PGID with tty. In this situation, ctrl-c can kill both you fg and bg processes.</p>
<p>Job control is a feature that most of shells have, such bash, ash, or lash in busybox. It assigns a new group id to a background process. Most implemented in this way:<br />
<strong><em> setpgid(child-&gt;pid, newjob-&gt;progs[0].pid);</em></strong><br />
That means set the new background process&#8217;s pgid identical to its pid, which make the process leader of a new process group, and will not be kill by ctrl-c. To these shells, &#8220;&amp;&#8221; means fork/setpgid.</p>
<p>And this topic leads to another interesting topic: How to write a &#8220;standard&#8221; daemon?<br />
1. Parent must exit after fork().<br />
2. call setsid. Which makes the child leader of a new process group <strong>and a new session</strong>,<br />
and detached from the TTY.<br />
3. fork() and exit again, so the new &#8220;grandson&#8221; process is not a session leader and will never<br />
get TTY control again. This step may be unnecessary.<br />
4. chdir(&#8220;/&#8221;);  optional. To avoid possible umount problem.<br />
4. Redirect handle 0,1,2. That is, close and reopen them to /dev/null or some safe files.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/magicyyang.wordpress.com/17/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/magicyyang.wordpress.com/17/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/magicyyang.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/magicyyang.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/magicyyang.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/magicyyang.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/magicyyang.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/magicyyang.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/magicyyang.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/magicyyang.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/magicyyang.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/magicyyang.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/magicyyang.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/magicyyang.wordpress.com/17/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/magicyyang.wordpress.com/17/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/magicyyang.wordpress.com/17/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=17&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://magicyyang.wordpress.com/2006/01/20/17/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc91d43cb39aa26697d690f8e79c6903?s=96&#38;d=identicon" medium="image">
			<media:title type="html">magicyyang</media:title>
		</media:content>

		<media:content url="http://magicyyang.files.wordpress.com/2006/01/fig1.png" medium="image" />
	</item>
		<item>
		<title>Tiny-Gentoo with Qemu howto</title>
		<link>http://magicyyang.wordpress.com/2006/01/11/tiny-gentoo-with-qemu-howto/</link>
		<comments>http://magicyyang.wordpress.com/2006/01/11/tiny-gentoo-with-qemu-howto/#comments</comments>
		<pubDate>Wed, 11 Jan 2006 07:34:47 +0000</pubDate>
		<dc:creator>magicyyang</dc:creator>
				<category><![CDATA[Embedded system]]></category>

		<guid isPermaLink="false">http://magicyyang.wordpress.com/2006/01/11/tiny-gentoo-with-qemu-howto/</guid>
		<description><![CDATA[http://gentoo-wiki.com/TinyGentoo http://www.wplug.org/top/wplug-top018.txt 1. prepare #mkdir tiny-gentoo #cd tiny-gentoo #wget http://gentoo.osuosl.org/experimental/x86/embedded/stages/ stage3-x86-uclibc-2005.0.tar.bz2 #wget http://gentoo.osuosl.org/snapshots/portage-20060102.tar.bz2 #tar xjpf stage*.tar.bz2 #cp -L /etc/resolv.conf etc/resolv.conf #mkdir -p usr/portage #tar xjf portage-20060102.tar.bz2 -C usr2. chroot to tiny-gentoo#chroot . /bin/bash #env-update &#38;&#38; source /etc/profile 3. Make a minimal gentoo #ln -snf /usr/portage/profiles/uclibc/x86/2005.1/ /etc/make.profile #nano /etc/make.conf FEATURES=&#8221;ccache&#8221; USE=&#8221;minimal&#8221; #emerge ccache #emerge -auDN world [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=15&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p><big><a href="http://gentoo-wiki.com/TinyGentoo">http://gentoo-wiki.com/TinyGentoo</a><br />
<a href="http://www.wplug.org/top/wplug-top018.txt">http://www.wplug.org/top/wplug-top018.t</a><a href="http://www.wplug.org/top/wplug-top018.txt">xt</a></big></p>
<p><big>1. prepare</big></p>
<p>#mkdir tiny-gentoo<br />
#cd tiny-gentoo<br />
#wget http://gentoo.osuosl.org/experimental/x86/embedded/stages/<br />
stage3-x86-uclibc-2005.0.tar.bz2<br />
#wget http://gentoo.osuosl.org/snapshots/portage-20060102.tar.bz2<br />
#tar xjpf stage*.tar.bz2<br />
#cp -L /etc/resolv.conf etc/resolv.conf<br />
#mkdir -p usr/portage<br />
#tar xjf portage-20060102.tar.bz2 -C usr<big>2. chroot to tiny-gentoo</big>#chroot . /bin/bash<br />
#env-update &amp;&amp; source /etc/profile</p>
<p><big>3. Make a minimal gentoo </big></p>
<p>#ln -snf /usr/portage/profiles/uclibc/x86/2005.1/ /etc/make.profile<br />
#nano /etc/make.conf<br />
FEATURES=&#8221;ccache&#8221;<br />
USE=&#8221;minimal&#8221;<br />
#emerge ccache<br />
#emerge -auDN world<br />
#etc-update<br />
(#emerge vanilla-sources)<br />
#cp /etc/skel/.bash_profile /etc/skel/.bashrc /root/</p>
<p><big>4. Make the real tiny rootfs</big></p>
<p>#mkdir /rootfs<br />
#mkdir -p /etc/portage<br />
#echo &#8220;sys-apps/baselayout-lite -*&#8221; &gt;&gt; /etc/portage/package.keywords<br />
#nano /etc/make.conf<br />
#ROOT=/rootfs emerge -av baselayout-lite uclibc busybox<br />
<big><br />
5. Chroot to the new /rootfs</big></p>
<p>#chroot /rootfs /bin/ash<br />
#passwd<br />
#addgroup -g 100 users foo<br />
#adduser -h /home/foo -s /bin/ash -G users foo<br />
#exit   (&#8211;this exit to the last chroot box tiny-gentoo)</p>
<p><big>6. Modify the fstab file. </big></p>
<p>#echo &#8220;TinyGentoo&#8221; &gt; /rootfs/etc/hostname<br />
# echo &#8220;/dev/hda      /      ext3      defaults&#8221; &gt;&gt; rootfs/etc/fstab<br />
#chmod 555 /rootfs/proc</p>
<p><big>7. Emerge the wanted packages into /rootfs</big></p>
<p>#ROOT=/rootfs emerge -av net-tools udhcp lynx scrollz dropbear screen</p>
<p>8. Now the /rootfs directory now contains your complete system. Clean it and make a tar ball.</p>
<p># cd /rootfs<br />
# tar -zcf ../rootfs.tgz .<br />
# exit  ( &#8212; exit to your host linux)</p>
<p><big>9. Build the disk img file. (write the rootfs to an img file.)</big></p>
<p># qemu-img create gentoo.img 64M<br />
# mkfs.ext3 -q gentoo.img<br />
# mount -o loop gentoo.img /mnt/floppy<br />
# tar -zxf rootfs.tgz -C /mnt/floppy<br />
# umount /mnt/floppy<br />
<big><br />
10. Build kernel for Qemu</big></p>
<p>The Qemu has following devices:</p>
<ul>
<li>i440FX host PCI bridge and PIIX3 PCI to ISA bridge</li>
<li>Cirrus CLGD 5446 PCI VGA card or dummy VGA card with Bochs VESA extensions</li>
<li>PS/2 mouse and keyboard</li>
<li>2 PCI IDE interfaces with hard disk and CD-ROM support</li>
<li>Floppy disk</li>
<li>NE2000 PCI network adapters</li>
<li>Serial ports</li>
<li>Soundblaster 16 card</li>
</ul>
<p>Just remember to add all the device drivers into kernel, not as modules. And also add ext3 support into the kernel.<br />
Finally we&#8217;ll get kernel/arch/i386/boot/bzImage.</p>
<p><big>11. Boot from Qemu!</big></p>
<p># qemu -hda gentoo.img -kernel bzImage -append    &#8220;root=/dev/hda&#8221;</p>
<pre />
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/magicyyang.wordpress.com/15/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/magicyyang.wordpress.com/15/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/magicyyang.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/magicyyang.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/magicyyang.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/magicyyang.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/magicyyang.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/magicyyang.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/magicyyang.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/magicyyang.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/magicyyang.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/magicyyang.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/magicyyang.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/magicyyang.wordpress.com/15/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/magicyyang.wordpress.com/15/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/magicyyang.wordpress.com/15/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=15&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://magicyyang.wordpress.com/2006/01/11/tiny-gentoo-with-qemu-howto/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc91d43cb39aa26697d690f8e79c6903?s=96&#38;d=identicon" medium="image">
			<media:title type="html">magicyyang</media:title>
		</media:content>
	</item>
		<item>
		<title>Kernel maintiain tools &#8212; Ketchup</title>
		<link>http://magicyyang.wordpress.com/2006/01/04/kernel-maintiain-tools-ketchup-3/</link>
		<comments>http://magicyyang.wordpress.com/2006/01/04/kernel-maintiain-tools-ketchup-3/#comments</comments>
		<pubDate>Wed, 04 Jan 2006 13:24:15 +0000</pubDate>
		<dc:creator>magicyyang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://magicyyang.wordpress.com/2006/01/04/kernel-maintiain-tools-ketchup-3/</guid>
		<description><![CDATA[1. http://www.selenic.com/ketchup/ download. As I tested, now only version 0.9.5 works. http://www.selenic.com/ketchup/wiki/ 2. ketchup -l : list all supported kernel trees. ( like 2.6, 2.6-mm, 2.6-rt, 2.6-git) ketchup -s 2.6:  list the latest version of 2.6 stable tree. ketchup -G 2.6.15.1 : update your kernel (in current directory) to 2.6.15.1, without pgp verify. 3. commands [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=14&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>1. http://www.selenic.com/ketchup/   download. As I tested, now only version 0.9.5 works.<br />
http://www.selenic.com/ketchup/wiki/</p>
<p>2.  ketchup -l  :  list all supported kernel trees. ( like 2.6, 2.6-mm, 2.6-rt, 2.6-git)<br />
ketchup -s 2.6:  list the latest version of 2.6 stable tree.</p>
<p>ketchup -G 2.6.15.1 : update your kernel (in current directory) to 2.6.15.1, without pgp verify.</p>
<p>3.  commands works in a existing kernel folder:<br />
ketchup -m : show current kernel version (actually from the Makefile)<br />
ketchup 2.6-rt : switch to another tree.<br />
ketchup 2.6-tip : update to the latest release.<br />
ketchup 2.6.11-rc3 : Downgrade to a particular release.<br />
ketchup -s 2.6-mm : show latest version of a particular tree.<br />
ketchup -u 2.6-mm : Find the URL for a given version. (find the bz2 package).</p>
<p>-n &#8211;dry-run<br />
don&#8217;t download or apply patches<br />
-p &#8211;show-previous<br />
output version previous to &lt;arg&gt;</p>
<p>4. We can also use ~/.ketchuprc to maintain a localtree. TBD.<br />
It can be used with quilt . TBD.</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/magicyyang.wordpress.com/14/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/magicyyang.wordpress.com/14/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/magicyyang.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/magicyyang.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/magicyyang.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/magicyyang.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/magicyyang.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/magicyyang.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/magicyyang.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/magicyyang.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/magicyyang.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/magicyyang.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/magicyyang.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/magicyyang.wordpress.com/14/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/magicyyang.wordpress.com/14/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/magicyyang.wordpress.com/14/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=14&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://magicyyang.wordpress.com/2006/01/04/kernel-maintiain-tools-ketchup-3/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc91d43cb39aa26697d690f8e79c6903?s=96&#38;d=identicon" medium="image">
			<media:title type="html">magicyyang</media:title>
		</media:content>
	</item>
		<item>
		<title>Quilt Howto</title>
		<link>http://magicyyang.wordpress.com/2006/01/04/quilt-howto/</link>
		<comments>http://magicyyang.wordpress.com/2006/01/04/quilt-howto/#comments</comments>
		<pubDate>Wed, 04 Jan 2006 09:45:14 +0000</pubDate>
		<dc:creator>magicyyang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://magicyyang.wordpress.com/2006/01/04/quilt-howto/</guid>
		<description><![CDATA[Make a patch fits quilt:&#160; Use unified diffs (diff -Nurd &#60;old file&#62; &#60;new file&#62;)<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=11&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Make a patch fits quilt:&nbsp;  <br />Use unified diffs (diff -Nurd &lt;old file&gt; &lt;new file&gt;)</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/magicyyang.wordpress.com/11/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/magicyyang.wordpress.com/11/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/magicyyang.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/magicyyang.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/magicyyang.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/magicyyang.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/magicyyang.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/magicyyang.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/magicyyang.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/magicyyang.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/magicyyang.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/magicyyang.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/magicyyang.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/magicyyang.wordpress.com/11/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/magicyyang.wordpress.com/11/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/magicyyang.wordpress.com/11/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=11&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://magicyyang.wordpress.com/2006/01/04/quilt-howto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc91d43cb39aa26697d690f8e79c6903?s=96&#38;d=identicon" medium="image">
			<media:title type="html">magicyyang</media:title>
		</media:content>
	</item>
		<item>
		<title>Get my palm m500 sync to ubuntu!</title>
		<link>http://magicyyang.wordpress.com/2006/01/04/get-my-palm-m500-sync-to-ubuntu/</link>
		<comments>http://magicyyang.wordpress.com/2006/01/04/get-my-palm-m500-sync-to-ubuntu/#comments</comments>
		<pubDate>Wed, 04 Jan 2006 08:04:16 +0000</pubDate>
		<dc:creator>magicyyang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://magicyyang.wordpress.com/2006/01/04/get-my-palm-m500-sync-to-ubuntu/</guid>
		<description><![CDATA[1. delete /dev/ttyUSB* 2. add one file &#8220;/etc/udev/rules.d/10-custom.rules&#8221; BUS=&#8221;usb&#8221;, SYSFS{product}=&#8221;Handspring*&#8221;, KERNEL=&#8221;ttyUSB*&#8221;, NAME{ignore_remove}=&#8221;pilot&#8221;, MODE=&#8221;666&#8243; After these 2 steps, any time I push &#8220;Hotsync&#8221; in crandle, /dev/ttyUSB0 and ttyUSB1 will be installed. (Remember to add your user to &#8220;root&#8221; gourp). 3. Set jpilot, gnome-pilot to sync with /dev/pilot. Enable conduits in Evolution. Add &#8220;pilot sync&#8221; applet into [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=10&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>1. delete /dev/ttyUSB*<br />
2. add one file &#8220;/etc/udev/rules.d/10-custom.rules&#8221;<br />
BUS=&#8221;usb&#8221;, SYSFS{product}=&#8221;Handspring*&#8221;, KERNEL=&#8221;ttyUSB*&#8221;, NAME{ignore_remove}=&#8221;pilot&#8221;, MODE=&#8221;666&#8243;<br />
After these 2 steps, any time I push &#8220;Hotsync&#8221; in crandle, /dev/ttyUSB0 and ttyUSB1 will be installed. (Remember to add your user to &#8220;root&#8221; gourp).</p>
<p>3. Set jpilot, gnome-pilot to sync with /dev/pilot.<br />
Enable conduits in Evolution.<br />
Add &#8220;pilot sync&#8221; applet into gnome panel.</p>
<p>4. The ubuntu kernel 2.6.12 USB driver just fails to install palm device from time to time. Use following instructions to reset the USB driver.</p>
<p>rmmod uhci-hcd<br />
rmmod ehci-hcd<br />
modprobe uhci-hcd<br />
modprobe ehci-hcd</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/magicyyang.wordpress.com/10/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/magicyyang.wordpress.com/10/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/magicyyang.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/magicyyang.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/magicyyang.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/magicyyang.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/magicyyang.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/magicyyang.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/magicyyang.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/magicyyang.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/magicyyang.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/magicyyang.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/magicyyang.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/magicyyang.wordpress.com/10/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/magicyyang.wordpress.com/10/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/magicyyang.wordpress.com/10/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=10&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://magicyyang.wordpress.com/2006/01/04/get-my-palm-m500-sync-to-ubuntu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc91d43cb39aa26697d690f8e79c6903?s=96&#38;d=identicon" medium="image">
			<media:title type="html">magicyyang</media:title>
		</media:content>
	</item>
		<item>
		<title>A little bit analysis of OE</title>
		<link>http://magicyyang.wordpress.com/2006/01/04/a-little-bit-analysis-of-oe/</link>
		<comments>http://magicyyang.wordpress.com/2006/01/04/a-little-bit-analysis-of-oe/#comments</comments>
		<pubDate>Wed, 04 Jan 2006 03:05:26 +0000</pubDate>
		<dc:creator>magicyyang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://magicyyang.wordpress.com/2006/01/04/a-little-bit-analysis-of-oe/</guid>
		<description><![CDATA[&#160; Architecture:&#160; 1. $BBPATH variable used by bitbake to find conf/local.conf and conf/bitbake.conf files. (And also defines the $TOPDIR for bitbake? I am not sure). It contains two positions: build/ and openembedded/, both of them have a conf/ folder. &#160;2. conf/bitbake.conf: defines many variables used by bitbake and openembedded. Normally doesn&#8217;t need to be modified. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=9&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&nbsp; Architecture:&nbsp; <br />1. $BBPATH variable used by bitbake to find conf/local.conf and conf/bitbake.conf files. (And also defines the $TOPDIR for bitbake? I am not sure). It contains two positions: build/ and openembedded/, both of them have a conf/ folder. </p>
<p>&nbsp;2. conf/bitbake.conf: defines many variables used by bitbake and openembedded. Normally doesn&#8217;t need to be modified. It also includes some other conf files, such as <br />conf/local.conf,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8212;actually it is build/conf/local.conf.&nbsp; Needs to be modified.<br />conf/build/${BUILD_SYS}.conf&nbsp;&nbsp;&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8212;&#8211;doesn&#8217;t exists. Seems not important.<br />conf/target/${TARGET_SYS}.conf&nbsp;&nbsp; &#8212;&#8212;&#8212;&#8211; doesn&#8217;t exists. Seems not important? <br />conf/machine/${MACHINE}.conf&nbsp;&nbsp; &#8212;&#8211; in openembedded/conf/machine, ${MACHINE} defined in local.conf.<br />conf/distro/${DISTRO}.conf&nbsp;&nbsp; &#8212;&#8212;&#8211; in openembedded/conf/machine, ${DISTRO} defined in local.conf.</p>
<p>&nbsp;3. Install:<br />&nbsp; required software:&nbsp; 
<pre>apt-get install python python-dev python-psyco ccache patch m4 sed bison make \wget bzip2 cvs gawk libc6-dev g++ subversion sharutils coreutils \docbook openjade quilt libmpfr-dev libpcre3-dev unzip subversion</pre>
<p>&nbsp; svn(subversion) -&gt; bitbake <br /><tt>svn&nbsp;co&nbsp;svn://svn.berlios.de/bitbake/trunk/bitbake<br />cd bitbake<br /></tt>$ ./setup.py install &#8211;prefix=/usr/local &#8211;install-data=/usr/local/share
<pre>Build bitbake documents:$ cd /stuff/bitbake$ make -C doc/manual # optional, takes some time$ # make sure that you have configured sudo properly$ sudo ./setup.py install$ make -C doc/manual clean #optional$ sudo mv /usr/doc/bitbake-1.0 /usr/local/share/doc # optional$ sudo rmdir /usr/doc # optional. Might fail if there are other documents installed here

 Install Monotone  <tt>apt-get&nbsp;install&nbsp;monotone

 Monotone -&gt; OpenEmbedded</tt>monotone --db=/stuff/oe.db pull monotone.vanille.de "org.openembedded.{dev,dreambox}"</pre>
<p>monotone &#8211;db=/stuff/oe.db checkout &#8211;branch=org.openembedded.dev<tt> <br /></tt>
<pre>monotone --db=/stuff/oe.db pull monotone.vanille.de org.openembedded.{dev,dreambox} (cd /stuff/org.openembedded.dev; monotone update)(cd /stuff/org.openembedded.dreambox; monotone update)</pre>
<p><tt></tt></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/magicyyang.wordpress.com/9/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/magicyyang.wordpress.com/9/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/magicyyang.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/magicyyang.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/magicyyang.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/magicyyang.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/magicyyang.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/magicyyang.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/magicyyang.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/magicyyang.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/magicyyang.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/magicyyang.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/magicyyang.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/magicyyang.wordpress.com/9/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/magicyyang.wordpress.com/9/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/magicyyang.wordpress.com/9/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=9&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://magicyyang.wordpress.com/2006/01/04/a-little-bit-analysis-of-oe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc91d43cb39aa26697d690f8e79c6903?s=96&#38;d=identicon" medium="image">
			<media:title type="html">magicyyang</media:title>
		</media:content>
	</item>
		<item>
		<title>Use &#8220;Performancing&#8221; firefox extension to add blog!</title>
		<link>http://magicyyang.wordpress.com/2005/12/31/use-performancing-firefox-extension-to-add-blog/</link>
		<comments>http://magicyyang.wordpress.com/2005/12/31/use-performancing-firefox-extension-to-add-blog/#comments</comments>
		<pubDate>Sat, 31 Dec 2005 11:00:08 +0000</pubDate>
		<dc:creator>magicyyang</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://magicyyang.wordpress.com/2005/12/31/use-performancing-firefox-extension-to-add-blog/</guid>
		<description><![CDATA[&#160; This is really exciting! &#160; &#160; Test&#160; color &#160;&#160; a&#160; underline &#160;&#160; b&#160; Italic &#160;&#160; c&#160; quote<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=7&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>&nbsp; This is really exciting! <br />&nbsp; <br /><big></big><big>&nbsp; Test&nbsp; color</p>
<p></big>
<ul>
<li><big></big><big>&nbsp;&nbsp; a&nbsp; underline<br /></big></li>
<li><big></big><big>&nbsp;&nbsp; b&nbsp; Italic</big><big></big><big></big></li>
<li><big></big><big>&nbsp;&nbsp; c&nbsp; quote</big></li>
</ul>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/magicyyang.wordpress.com/7/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/magicyyang.wordpress.com/7/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/magicyyang.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/magicyyang.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/magicyyang.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/magicyyang.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/magicyyang.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/magicyyang.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/magicyyang.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/magicyyang.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/magicyyang.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/magicyyang.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/magicyyang.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/magicyyang.wordpress.com/7/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/magicyyang.wordpress.com/7/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/magicyyang.wordpress.com/7/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=magicyyang.wordpress.com&amp;blog=17102&amp;post=7&amp;subd=magicyyang&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://magicyyang.wordpress.com/2005/12/31/use-performancing-firefox-extension-to-add-blog/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://1.gravatar.com/avatar/fc91d43cb39aa26697d690f8e79c6903?s=96&#38;d=identicon" medium="image">
			<media:title type="html">magicyyang</media:title>
		</media:content>
	</item>
	</channel>
</rss>
