<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-11289548</id><updated>2011-11-23T06:19:49.609+08:00</updated><title type='text'>Enjoy Linux, yet another niche!</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>34</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-11289548.post-115522710188304259</id><published>2006-08-11T00:21:00.000+08:00</published><updated>2006-08-11T00:25:02.556+08:00</updated><title type='text'>Support promiscuous mode in AODV</title><content type='html'>To add promiscuous mode to AODV, just do the following:&lt;br /&gt;1. &lt;span style="color: rgb(51, 51, 255);"&gt;ns-mobilenode.tcl&lt;/span&gt; :    &lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;    # Special processing for AODV&lt;/span&gt;&lt;br /&gt;   &lt;span style="color: rgb(51, 204, 0);"&gt; set aodvonly [string first "AODV" [$agent info class]] &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;    if {$aodvonly != -1 } {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;        $agent if-queue [$self set ifq_(0)]   ;# ifq between LL and MAC&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;        $agent install-tap [$self set mac_(0)] ;# add this to install tap for AODV&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;    }&lt;/span&gt;&lt;br /&gt;2. &lt;span style="color: rgb(51, 51, 255);"&gt;aodv.h&lt;/span&gt;:&lt;br /&gt;    &lt;span style="color: rgb(51, 204, 0);"&gt;class AODV:public Tap, public Agent {...};&lt;/span&gt;&lt;br /&gt;   &lt;br /&gt;and overload virtual function tap(const Packet *packet)&lt;br /&gt;&lt;br /&gt;3. &lt;span style="color: rgb(51, 51, 255);"&gt;aodv.cc&lt;/span&gt;&lt;br /&gt;     &lt;span style="color: rgb(51, 204, 0);"&gt; else if(argc == 3) {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;        ....&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;    else if (strcasecmp(argv[1], "install-tap") == 0)   // install tap for AODV&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;    {&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;      mac_ = (Mac*) TclObject::lookup(argv[2]);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;      mac_-&gt;installTap(this);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;      return TCL_OK;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;    }&lt;/span&gt;&lt;br /&gt;finally, implement tap function in aodv is ok.&lt;br /&gt;&lt;br /&gt;I've tested it in aodv (ns2.26).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-115522710188304259?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/115522710188304259/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=115522710188304259' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/115522710188304259'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/115522710188304259'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2006/08/support-promiscuous-mode-in-aodv.html' title='Support promiscuous mode in AODV'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-115338230338134612</id><published>2006-07-20T15:54:00.000+08:00</published><updated>2006-07-20T15:58:23.810+08:00</updated><title type='text'>Troubleshooting for updating from Breeze (Ubuntu 5.04) to Dapper (Ubuntu 6.06)</title><content type='html'>After apt-get dist-upgrade, wireless card sucks. It appears work but fails to connect with AP. Finally got a clue from &lt;a href="http://www.ubuntuforums.org/showthread.php?t=150627"&gt;here&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;&lt;strong style="color: rgb(51, 204, 0);"&gt;Re: breezy - dapper upgrade broke wireless&lt;/strong&gt;                           &lt;hr style="color: rgb(51, 204, 0);" size="1"&gt;    &lt;!-- / icon and title --&gt;         &lt;!-- message --&gt;   &lt;div style="color: rgb(51, 204, 0);" class="ubuntu_messagebody id=" post_message_1009971=""&gt;I had the same problem with my lucent wlan card. The problem was, that additionally to orinoco the module hostap was loaded.&lt;br /&gt;&lt;br /&gt;I got my card working with blacklisting the hostap driver (Is AFAIK only needed if you want to emulate an AP with your prism 2 wlan card.):&lt;br /&gt;&lt;br /&gt;To blacklist hostap add the two lines:&lt;br /&gt;&lt;br /&gt;blacklist hostap&lt;br /&gt;blacklist hostap_cs&lt;br /&gt;&lt;br /&gt;to /etc/modprobe.d/blacklist&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Now wifi works fine, cheers!&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-115338230338134612?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/115338230338134612/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=115338230338134612' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/115338230338134612'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/115338230338134612'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2006/07/troubleshooting-for-updating-from.html' title='Troubleshooting for updating from Breeze (Ubuntu 5.04) to Dapper (Ubuntu 6.06)'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-115140724781318129</id><published>2006-06-27T18:46:00.000+08:00</published><updated>2007-03-25T08:27:17.316+08:00</updated><title type='text'>Extend ns2 to support multi-channle multi-interface for wireless networks</title><content type='html'>Inspired from &lt;a href="http://www.ecsl.cs.sunysb.edu/multichannel/" target="_blank"&gt;Hyacinth: An IEEE 802.11-based Multi-channel Wireless Mesh Network&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;The following modifications can be applied to ns-2.26. It should be applicable to 2.1b8a and 2.1b9 as well, but &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;NOT&lt;/span&gt; to 2.28 and later version as I observed there is modification to the low level config of wireless channels in both tcl and c++ and I haven't figured it out.&lt;br /&gt;&lt;br /&gt;At least following files should be modified:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);" &gt;tcl/lib/&lt;/span&gt;&lt;span style="color:darkred;"&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;ns-lib.tcl&lt;/span&gt; &lt;/span&gt;: Add multiple interfaces&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;################################### BEGIN ###########################&lt;br /&gt;...&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Simulator instproc phyType  {val} { $self set phyType_  $val }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Simulator instproc antType  {val} { $self set antType_  $val }&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Simulator instproc channel {val} {$self set channel_ $val}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;#WHQ IMWN: &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;Simulator instproc channel2 {val} {$self set channel2_ $val}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;Simulator instproc channel3 {val} {$self set channel3_ $val}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;Simulator instproc channel4 {val} {$self set channel4_ $val}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;Simulator instproc channel5 {val} {$self set channel5_ $val}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;#WHQ IMWN: &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Simulator instproc channelType {val} {$self set channelType_ $val}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Simulator instproc topoInstance {val} {$self set topoInstance_ $val}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Simulator instproc node-config args {&lt;br /&gt;$self instvar addressType_  routingAgent_ propType_  macTrace_   routerTrace_ agentTrace_ movementTrace_ channelType_ channel_ &lt;span style="color: rgb(102, 51, 102);"&gt;channel2_ channel3_ channel4_ channel5_&lt;/span&gt;  chan &lt;span style="color: rgb(102, 51, 102);"&gt;chan2 chan3 chan4 chan5&lt;/span&gt; topoInstance_ propInstance_ mobileIP_ rxPower_  txPower_ idlePower_ satNodeType_ eotTrace_&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;elseif {[info exists channel_]} {&lt;br /&gt;     # Multiple channel, multiple interfaces&lt;br /&gt;     set chan $channel_&lt;br /&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;if{[info exists &lt;span style="color:purple;"&gt;channel2_&lt;/span&gt;]} {&lt;br /&gt;set chan2 &lt;span style="color:purple;"&gt;$channel2_&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;if{[info exists &lt;span style="color:purple;"&gt;channel3_&lt;/span&gt;]} {&lt;br /&gt;set chan2 &lt;span style="color:purple;"&gt;$channel3_&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;if{[info exists &lt;span style="color:purple;"&gt;channel4_&lt;/span&gt;]} {&lt;br /&gt;set chan2 &lt;span style="color:purple;"&gt;$channel4_&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;if{[info exists &lt;span style="color:purple;"&gt;channel5_&lt;/span&gt;]} {&lt;br /&gt;set chan2 &lt;span style="color:purple;"&gt;$channel5_&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;..&lt;/span&gt; .&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Simulator instproc create-wireless-node args {&lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;$self instvar routingAgent_ wiredRouting_ propInstance_ llType_&lt;/span&gt; \&lt;/span&gt;&lt;br /&gt;    macType_ ifqType_ ifqlen_ phyType_ chan &lt;span style="color:purple;"&gt;chan2 chan3 chan4 chan5&lt;/span&gt; antType_ energyModel_     inic_tialEnergy_ txPower_ rxPower_ idlePower_     topoInstance_ level1_ level2_ inerrProc_ outerrProc_ FECProc_&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;...&lt;br /&gt;&lt;span style="color:red;"&gt;# Add main node interface&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;$node add-interface $chan $propInstance_ $llType_ $macType_ \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            $ifqType_ $ifqlen_ $phyType_ $antType_ \&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;            $inerrProc_ $outerrProc_ $FECProc_&lt;/span&gt;&lt;br /&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;$node add-interface &lt;span style="color:purple;"&gt;$chan2&lt;/span&gt; $propInstance_ $llType_ $macType_         $ifqType_ $ifqlen_ $phyType_ $antType_         $inerrProc_ $outerrProc_ $FECProc_&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;$node add-interface &lt;span style="color:purple;"&gt;$chan3&lt;/span&gt; $propInstance_ $llType_ $macType_         $ifqType_ $ifqlen_ $phyType_ $antType_         $inerrProc_ $outerrProc_ $FECProc_&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;$node add-interface &lt;span style="color:purple;"&gt;$chan4&lt;/span&gt; $propInstance_ $llType_ $macType_         $ifqType_ $ifqlen_ $phyType_ $antType_         $inerrProc_ $outerrProc_ $FECProc_&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;$node add-interface &lt;span style="color:purple;"&gt;$chan4&lt;/span&gt; $propInstance_ $llType_ $macType_         $ifqType_ $ifqlen_ $phyType_ $antType_         $inerrProc_ $outerrProc_ $FECProc_&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;################################### END ###########################&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;tcl/lib/ns-mobilenode.tcl&lt;/span&gt;: set up hooks with trace objects&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;################################### BEGIN ###########################&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;Node/MobileNode instproc add-target-rtagent { agent port } {&lt;br /&gt;$self instvar imep_ toraDebug_&lt;br /&gt;&lt;br /&gt;set ns [Simulator instance]&lt;br /&gt;set newapi [$ns imep-support]&lt;br /&gt;set namfp [$ns get-nam-traceall]&lt;br /&gt;&lt;br /&gt;set dmux_ [$self demux]&lt;br /&gt;set classifier_ [$self entry]&lt;br /&gt;&lt;br /&gt;# let the routing agent know about the port dmux&lt;br /&gt;$agent port-dmux $dmux_&lt;br /&gt;&lt;br /&gt;if { [Simulator set RouterTrace_] == "ON" } {&lt;br /&gt;#&lt;br /&gt;# Send Target&lt;br /&gt;#&lt;br /&gt;if {$newapi != ""} {&lt;br /&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;#set sndT [$self mobility-trace Send "RTR"]&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;set sndT1 [$self mobility-trace Send "RTR"]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;set sndT2 [$self mobility-trace Send "RTR"]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;set sndT3 [$self mobility-trace Send "RTR"]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;set sndT4 [$self mobility-trace Send "RTR"]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;set sndT5 [$self mobility-trace Send "RTR"]&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;br /&gt;} else {&lt;br /&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;#set sndT [cmu-trace Send "RTR" $self]&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;set sndT1 [cmu-trace Send "RTR" $self]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;set sndT2 [cmu-trace Send "RTR" $self]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;set sndT3 [cmu-trace Send "RTR" $self]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;set sndT4 [cmu-trace Send "RTR" $self]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;set sndT5 [cmu-trace Send "RTR" $self&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;if { $namfp != "" } {&lt;br /&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;#$sndT namattach $namfp&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$sndT1 namattach $namfp&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$sndT2 namattach $namfp&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$sndT3 namattach $namfp&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$sndT4 namattach $namfp&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$sndT5 namattach $namfp&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;if { $newapi == "ON" } {&lt;br /&gt;$agent target $imep_(0)&lt;br /&gt;$imep_(0) sendtarget $sndT&lt;br /&gt;# second tracer to see the actual&lt;br /&gt;# types of tora packets before imep packs them&lt;br /&gt;if { [info exists toraDebug_] &amp;&amp;amp; $toraDebug_ == "ON"} {&lt;br /&gt;set sndT2 [$self mobility-trace Send "TRP"]&lt;br /&gt;$sndT2 target $imep_(0)&lt;br /&gt;$agent target $sndT2&lt;br /&gt;}&lt;br /&gt;} else {  ;#  no IMEP&lt;br /&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;#$agent target $sndT&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$agent down-target-1 $sndT1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$agent down-target-2 $sndT2&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$agent down-target-3 $sndT3&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$agent down-target-4 $sndT4&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$agent down-target-5 $sndT5&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;#$sndT target [$self set ll_(0)]&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$sndT1 target [$self set ll_(0)]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$sndT2 target [$self set ll_(1)]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$sndT3 target [$self set ll_(2)]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$sndT4 target [$self set ll_(3)]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$sndT5 target [$self set ll_(4)]&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;br /&gt;#&lt;br /&gt;# Recv Target&lt;br /&gt;#&lt;br /&gt;if {$newapi != ""} {&lt;br /&gt;set rcvT [$self mobility-trace Recv "RTR"]&lt;br /&gt;} else {&lt;br /&gt;set rcvT [cmu-trace Recv "RTR" $self]&lt;br /&gt;}&lt;br /&gt;if { $namfp != "" } {&lt;br /&gt;$rcvT namattach $namfp&lt;br /&gt;}&lt;br /&gt;if {$newapi == "ON" } {&lt;br /&gt;[$self set ll_(0)] up-target $imep_(0)&lt;br /&gt;$classifier_ defaulttarget $agent&lt;br /&gt;# need a second tracer to see the actual&lt;br /&gt;# types of tora packets after imep unpacks them&lt;br /&gt;# no need to support any hier node&lt;br /&gt;if {[info exists toraDebug_] &amp;&amp;amp; $toraDebug_ == "ON" } {&lt;br /&gt;set rcvT2 [$self mobility-trace Recv "TRP"]&lt;br /&gt;$rcvT2 target $agent&lt;br /&gt;$classifier_ defaulttarget $rcvT2&lt;br /&gt;}&lt;br /&gt;} else {&lt;br /&gt;$rcvT target $agent&lt;br /&gt;$classifier_ defaulttarget $rcvT&lt;br /&gt;$dmux_ install $port $rcvT&lt;br /&gt;}&lt;br /&gt;} else {&lt;br /&gt;#&lt;br /&gt;# Send Target&lt;br /&gt;#&lt;br /&gt;# if tora is used&lt;br /&gt;if { $newapi == "ON" } {&lt;br /&gt;$agent target $imep_(0)&lt;br /&gt;# second tracer to see the actual&lt;br /&gt;# types of tora packets before imep packs them&lt;br /&gt;if { [info exists toraDebug_] &amp;&amp;amp; $toraDebug_ == "ON"} {&lt;br /&gt;set sndT2 [$self mobility-trace Send "TRP"]&lt;br /&gt;$sndT2 target $imep_(0)&lt;br /&gt;$agent target $sndT2&lt;br /&gt;}&lt;br /&gt;$imep_(0) sendtarget [$self set ll_(0)]&lt;br /&gt;&lt;br /&gt;} else {  ;#  no IMEP&lt;br /&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;#$agent target [$self set ll_(0)]&lt;br /&gt;#puts "Adding 5 targets to routing agent!\n"&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$agent down-target-1 [$self set ll_(0)]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$agent down-target-2 [$self set ll_(1)]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$agent down-target-3 [$self set ll_(2)]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$agent down-target-4 [$self set ll_(3)]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;$agent down-target-5 [$self set ll_(4)]&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:red;"&gt;#Add &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;multiple interface support&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; &lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span style="color:red;"&gt;&lt;/span&gt;&lt;br /&gt;}&lt;br /&gt;#&lt;br /&gt;# Recv Target&lt;br /&gt;#&lt;br /&gt;if {$newapi == "ON" } {&lt;br /&gt;[$self set ll_(0)] up-target $imep_(0)&lt;br /&gt;$classifier_ defaulttarget $agent&lt;br /&gt;# need a second tracer to see the actual&lt;br /&gt;# types of tora packets after imep unpacks them&lt;br /&gt;# no need to support any hier node&lt;br /&gt;if {[info exists toraDebug_] &amp;&amp;amp; $toraDebug_ == "ON" } {&lt;br /&gt;set rcvT2 [$self mobility-trace Recv "TRP"]&lt;br /&gt;$rcvT2 target $agent&lt;br /&gt;[$self set classifier_] defaulttarget $rcvT2&lt;br /&gt;}&lt;br /&gt;} else {&lt;br /&gt;$classifier_ defaulttarget $agent&lt;br /&gt;$dmux_ install $port $agent&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;################################### END ###########################&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Then in routing protocol or whereever the packet will be sent to different NIC,  define  coresponding downtarget for each interface to send out packet like (in header file):&lt;br /&gt;&lt;span style="color:green;"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;NsObject *downtarget1_;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;NsObject *downtarget2_;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;NsObject *downtarget3_;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;NsObject *downtarget4_;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;NsObject *downtarget5_;&lt;br /&gt;&lt;/span&gt; &lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;/span&gt; &lt;/span&gt;&lt;span style="color:green;"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;&lt;/span&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;Then get the corresponding objects from Tcl from &lt;span style="color: rgb(153, 0, 0);"&gt;command(int argc, const char*const* argv),  &lt;span style="color: rgb(0, 153, 0);"&gt;for example in AODV:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 51, 255); font-weight: bold;"&gt;aodv/aodv.cc&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;################################### BEGIN ###########################&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;int&lt;br /&gt;AODV::command(int argc, const char*const* argv) {&lt;br /&gt;if(argc == 2) {&lt;br /&gt;Tcl&amp; tcl = Tcl::instance();&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;else if(argc == 3) {&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;// &lt;span style="color: rgb(204, 0, 0);"&gt;multi-channel support&lt;/span&gt;&lt;br /&gt;       else if (strcasecmp (argv[1], "down-target-1") == 0) {&lt;br /&gt;           downtarget1_ = (NsObject *) TclObject::lookup(argv[2]);&lt;br /&gt;           return TCL_OK;&lt;br /&gt;       }&lt;br /&gt;       else if (strcasecmp (argv[1], "down-target-2") == 0) {&lt;br /&gt;           downtarget2_ = (NsObject *) TclObject::lookup(argv[2]);&lt;br /&gt;           return TCL_OK;&lt;br /&gt;       }&lt;br /&gt;       else if (strcasecmp (argv[1], "down-target-3") == 0) {&lt;br /&gt;           downtarget3_ = (NsObject *) TclObject::lookup(argv[2]);&lt;br /&gt;           return TCL_OK;&lt;br /&gt;       }&lt;br /&gt;       else if (strcasecmp (argv[1], "down-target-4") == 0) {&lt;br /&gt;           downtarget4_ = (NsObject *) TclObject::lookup(argv[2]);&lt;br /&gt;           return TCL_OK;&lt;br /&gt;       }&lt;br /&gt;       else if (strcasecmp (argv[1], "down-target-5") == 0) {&lt;br /&gt;           downtarget5_ = (NsObject *) TclObject::lookup(argv[2]);&lt;br /&gt;           return TCL_OK;&lt;br /&gt;       }&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;...&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;################################### END ###########################&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;When send out the packet to different interface, just call one of them:&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt; downtarget1_-&gt;recv(p, (Handler *)0);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt; downtarget2_-&gt;recv(p, (Handler *)0);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt; downtarget3_-&gt;recv(p, (Handler *)0);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt; downtarget4_-&gt;recv(p, (Handler *)0);&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 153);"&gt; downtarget5_-&gt;recv(p, (Handler *)0);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally, in the &lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;running script&lt;/span&gt;,  configure each node with multiple interface and channel-assign-to-interface:&lt;br /&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;################################### BEGIN ###########################&lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;...&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;#Creating Channel&lt;/span&gt;&lt;br /&gt;set chan_0_ [new $val(chan)]&lt;br /&gt;set chan_1_ [new $val(chan)]&lt;br /&gt;set chan_2_ [new $val(chan)]&lt;br /&gt;set chan_3_ [new $val(chan)]&lt;br /&gt;set chan_4_ [new $val(chan)]&lt;br /&gt;&lt;br /&gt;...&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:green;"&gt;$ns_ node-config -channel $chan_3_ &lt;span style="color:purple;"&gt;-channel2&lt;/span&gt; $chan_11_ &lt;span style="color:purple;"&gt;-channel3&lt;/span&gt; $chan_12_ &lt;span style="color:purple;"&gt;-channel4&lt;/span&gt; $chan_12_ &lt;span style="color:purple;"&gt;-channel5&lt;/span&gt; $chan_12_&lt;br /&gt;...&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 255);"&gt;################################### END ###########################&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;If you use &lt;span style="font-style: italic;"&gt;802.11 DCF MAC&lt;/span&gt;, following changes are necessary to avoid error:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="font-weight: bold; color: rgb(51, 51, 255);"&gt;mac/mac-802_11.cc&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;#include "arp.h"&lt;br /&gt;#include "ll.h"&lt;br /&gt;#include "mac.h"&lt;br /&gt;#include "mac-timers.h"&lt;br /&gt;#include "mac-802_11.h"&lt;br /&gt;#include "cmu-trace.h"&lt;br /&gt;&lt;br /&gt;/*&lt;br /&gt;multi-interface support&lt;br /&gt;*/&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;#define NUM_NICS    5&lt;br /&gt;&lt;br /&gt;&lt;span dragover="true" style="color: rgb(0, 153, 0);"&gt;...&lt;br /&gt;&lt;br /&gt;int&lt;br /&gt;Mac802_11::command(int argc, const char*const* argv)&lt;br /&gt;{&lt;br /&gt; if (argc == 3) {&lt;br /&gt;     if (strcmp(argv[1], "log-target") == 0) {&lt;br /&gt;         logtarget_ = (NsObject*) TclObject::lookup(argv[2]);&lt;br /&gt;         if(logtarget_ == 0)&lt;br /&gt;             return TCL_ERROR;&lt;br /&gt;         return TCL_OK;&lt;br /&gt;     } else if(strcmp(argv[1], "nodes") == 0) {&lt;br /&gt;         if(cache_) return TCL_ERROR;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;/* multiple interface support&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;            cache_node_count_ = atoi(argv[2]);&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt; */&lt;/span&gt;&lt;br /&gt;       &lt;span style="color: rgb(153, 51, 153);"&gt;  cache_node_count_ = atoi(argv[2]) * NUM_NICS;&lt;/span&gt;&lt;br /&gt;         cache_ = new Host[cache_node_count_ + 1];&lt;br /&gt;         assert(cache_);&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;void&lt;br /&gt;Mac802_11::recv_timer()&lt;br /&gt;{&lt;br /&gt;...&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;/* multiple interface support&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;*/&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;//    if(dst != (u_int32_t)index_) {&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(153, 51, 153);"&gt;if((dst/NUM_NICS) != (u_int32_t)(index_/NUM_NICS)) {&lt;/span&gt;&lt;br /&gt;      set_nav(mh-&gt;dh_duration);&lt;br /&gt;  }&lt;br /&gt;...&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color:darkred;"&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-115140724781318129?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/115140724781318129/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=115140724781318129' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/115140724781318129'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/115140724781318129'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2006/06/extend-ns2-to-support-multi-channle.html' title='Extend ns2 to support multi-channle multi-interface for wireless networks'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-113584784229607149</id><published>2005-12-30T01:15:00.000+08:00</published><updated>2007-02-27T06:30:26.853+08:00</updated><title type='text'>install ns2.26 in Ubuntu</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Objective: install ns-allinone-2.26 in Ubuntu 5.10 Breezy&lt;br xmlns="http://www.w3.org/1999/xhtml"/&gt;Software needed: gcc-3.3, g++-3.3 (ns2.26 cannot be compiled with gcc &amp;gt;= 4.0), build-essential, autoconf, automaken, libxt-dev(tk need it), libxmu-dev(nam need it)&lt;br/&gt;To do:&lt;br/&gt;1. &lt;span style="color: rgb(204, 0, 0);"&gt;apt-get install build-essential&lt;/span&gt;&lt;br/&gt;2. &lt;span style="color: rgb(204, 0, 0);"&gt;apt-get install gcc-3.3 g++-3.3 autoconf automake-1.9 libxt-dev&lt;/span&gt;&lt;br/&gt;3. go to /usr/bin, del softlink to &lt;span style="color: rgb(51, 255, 51);"&gt;gcc&lt;/span&gt;, &lt;span style="color: rgb(51, 255, 51);"&gt;g++&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br/&gt;4. &lt;span style="color: rgb(204, 0, 0);"&gt;ln -s gcc-3.3 gcc&lt;/span&gt;&lt;br/&gt;5. &lt;span style="color: rgb(204, 0, 0);"&gt;ln -s g++-3.3 g++&lt;/span&gt;&lt;br/&gt;6. vi .bash_profile and add:&lt;br/&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;export CC=gcc-3.3&lt;br/&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;export CXX=g++-3.3&lt;br/&gt;&lt;br/&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;That's all. Then compile ns as instruction.&lt;/span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-113584784229607149?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/113584784229607149/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=113584784229607149' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/113584784229607149'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/113584784229607149'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/12/install-ns226-in-ubuntu.html' title='install ns2.26 in Ubuntu'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-112969996571911049</id><published>2005-10-19T21:31:00.000+08:00</published><updated>2005-10-19T13:35:11.900+08:00</updated><title type='text'>Post blog from writely</title><content type='html'>&lt;div xmlns="http://www.w3.org/1999/xhtml"&gt;Just read an article "&lt;a href="http://www.xyzcomputing.com/index.php?option=content&amp;amp;task=view&amp;amp;id=453&amp;amp;Itemid=26&amp;amp;limit=1&amp;amp;limitstart=0" target="blank_" title="flyover test"&gt;Interview with Tony Bove, Author of Just Say No to Microsoft&lt;/a&gt; &lt;span id="KonaBody"&gt;&lt;font size="3" style="COLOR: #cc6600; FONT-STYLE: italic"&gt;&lt;span style="FONT-WEIGHT: bold"/&gt;&lt;/font&gt;". Tony thinks Ajax-based web applications will prevail in the next few years. &lt;/span&gt;&lt;a href="http://www.writely.com" target="blank_" title="Writely"&gt;Writely&lt;/a&gt; is mentioned as an example. So I just give it a try. I use it to edit this blog and post it with a click. So let's check it out.&lt;br/&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-112969996571911049?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/112969996571911049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=112969996571911049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112969996571911049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112969996571911049'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/10/post-blog-from-writely.html' title='Post blog from writely'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-112960632119441856</id><published>2005-10-18T11:17:00.000+08:00</published><updated>2005-10-18T11:35:04.206+08:00</updated><title type='text'>Chinese display in Ubuntu 5.10 Breezy</title><content type='html'>Since utf-8 is adopted by Ubuntu by default, several popular softwares I use are impacted that cannot decide the encoding of Chinese characters. However, these softwares already build in support for configurable encoding.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;XMMS&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;option-&gt;preferences-&gt;Audio I/O plugins-&gt;MPEG layer 1/2/3..-&gt;configure-&gt;Title:&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;tick &lt;/span&gt;Override default ID3V2 encoding, &lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;encoding name:&lt;/span&gt; GBK&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;vim&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;code class="example"&gt;set encoding=utf-8&lt;br /&gt;set fileencoding=GBK&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-112960632119441856?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/112960632119441856/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=112960632119441856' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112960632119441856'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112960632119441856'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/10/chinese-display-in-ubuntu-510-breezy.html' title='Chinese display in Ubuntu 5.10 Breezy'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-112945962187747200</id><published>2005-10-16T18:42:00.000+08:00</published><updated>2005-10-18T11:17:16.320+08:00</updated><title type='text'>manually set cpu frequency</title><content type='html'>If you are like me that treasure my laptop very much and hate to hear the fans soaring, you can try it.&lt;br /&gt;&lt;br /&gt;create a simple bash file like this:&lt;br /&gt;#cpulow&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;echo 1200000 &gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;1200000 is the lowest availabe frequency for my cpu (P4-M). Put this file to /usr/local/bin and chmod +x. Simple?&lt;br /&gt;&lt;br /&gt;#cpuhigh&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;echo 1600000 &gt; /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;With these two files, I can manually control how far the cpu should run. Don't forget to remove &lt;span style="color: rgb(153, 51, 0);"&gt;powernowd&lt;/span&gt; service from service in Ubuntu.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;-- update --&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;I found powernowd service cannot be just stopped since acpi modules are also loaded by this script to start the service. I think it's not difficult to modify the script to just stop powernowd deamon and exec cpulow meanwhile. To be updated later.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-112945962187747200?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/112945962187747200/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=112945962187747200' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112945962187747200'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112945962187747200'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/10/manually-set-cpu-frequency.html' title='manually set cpu frequency'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-112939855980724070</id><published>2005-10-16T01:01:00.000+08:00</published><updated>2005-10-16T01:52:43.506+08:00</updated><title type='text'>Install Ubuntu 5.10 (Breezy) on Compaq N800v</title><content type='html'>There are some reasons prompting me to abandon Gentoo on my laptop, the specific optimization to the desktop by Ubuntu is one of them.&lt;br /&gt;&lt;br /&gt;The actually installation should be as smooth as stated, but I still get frustrated for quite a few hours :(&lt;br /&gt;&lt;br /&gt;So one thing that I get more confirmed is: cdrom is the last storage you should try.&lt;br /&gt;&lt;br /&gt;1. download iso image from ubuntu website, smooth&lt;br /&gt;&lt;br /&gt;2. &lt;span style="color: rgb(204, 0, 0); font-weight: bold; font-style: italic;"&gt;md5 check&lt;/span&gt; passes&lt;br /&gt;&lt;br /&gt;3. &lt;span style="color: rgb(102, 102, 102);"&gt;burn it into cd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. boot with cd, pcmcia wireless card auto recognized and DHCP config successfully which means I can connect to Internet&lt;br /&gt;&lt;br /&gt;5. Partition:&lt;br /&gt;40 GB hdd:&lt;br /&gt;hda1: WinXP root, fat32, primary, bootable&lt;br /&gt;hda2: shared by windows and linux, fat32, logic&lt;br /&gt;hda6: 30M, ext3, /boot, logic&lt;br /&gt;hda7: 6.7G, the root for ubuntu, reizser, /, logic&lt;br /&gt;&lt;br /&gt;6. start install, failed at base system install, pool/main/l/linux-sources/linux-image.... md5 check &lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(204, 0, 0); font-style: italic;"&gt;failed&lt;/span&gt;&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;7. burn another 2 cds the next day and repeat previous steps, failed again! /pool/main/linux-sources/linux-head... md5 check &lt;span style="font-style: italic;font-size:130%;" &gt;&lt;span style="color: rgb(153, 0, 0);"&gt;failed&lt;/span&gt;&lt;/span&gt;!&lt;br /&gt;&lt;br /&gt;So far, I have no confidence in cdrom any more. Since the md5 check for the downloaded iso image has no problem, it must be in the burning procedure. Since the failed parts for 2 cds are different but near, I bet it's the cdrw's step increasing speed working mode harms it. Maybe I'll have to use my cdrw for some time, but remember to burn it steadily!&lt;br /&gt;&lt;br /&gt;8. After research and experiment, finally get it clear how to install linux from image directly.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.ubuntu.org.cn/download/installformharddisk/grldr"&gt;grub &lt;/a&gt;is needed to load bootable environment. Fortunately, even installation failed, ubuntu still gives you all the options for the installation which allow me to directly jump to the grub installation. And it recognizes WinXP installed and configures it automatically.&lt;br /&gt;&lt;br /&gt;9. To start bootable environment, two files are needed:&lt;span style="color: rgb(51, 204, 0);"&gt; initrd.gz&lt;/span&gt;    and &lt;span style="color: rgb(51, 204, 0);"&gt;vmlinuz &lt;span style="color: rgb(0, 0, 0);"&gt;(or &lt;/span&gt;linux&lt;span style="color: rgb(0, 0, 0);"&gt; for netboot version)&lt;/span&gt;&lt;/span&gt;. However, there are several versions of them.&lt;br /&gt;&lt;br /&gt;First, in the cdrom, under &lt;span style="color: rgb(153, 0, 0);"&gt;install&lt;/span&gt;, that two are for cdrom install which means the environment is set to insall linux from linux.&lt;br /&gt;&lt;br /&gt;In &lt;span style="color: rgb(153, 0, 0);"&gt;install/netboot/ubuntu-installer/i386&lt;/span&gt;, the two are for network install. Using them, no cd and no image are needed for the whole install, only network!&lt;br /&gt;&lt;br /&gt;However, what I needed cannot be found in the image itself. The version for install from harddisk image can be downloaded at any ubuntu mirror, under directory &lt;span style="color: rgb(51, 204, 0);"&gt;ubuntu/dists/breezy(the version)/main/installer-i386/current/images/&lt;span style="font-style: italic; font-weight: bold;"&gt;hd-media&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;br /&gt;(surely I get information from the name)&lt;br /&gt;&lt;br /&gt;To summarize, these two files are programs that guild linux install procedure after enter the bootable environment. Since for different method of install, specific procedure should be provided, the more important issue I guess is to keep these files as small as possible to be fit into any pc. So different versions instead of one versatile with different interfaces are provided.&lt;br /&gt;&lt;br /&gt;10. copy these two files to the first primary partition which is also a bootable partition, the grub can get it then. &lt;span style="color: rgb(204, 102, 0);"&gt;/dev/hda1&lt;/span&gt; is the one for my laptop. Then put the iso image file under the top directory in any of your partitions (but its file system must be recognized by the bootable environment, ubuntu in this case, fat32, ext3, reizser..)&lt;br /&gt;&lt;br /&gt;11.  reboot laptop, upon promtion by grub, press &lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;c&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;then input three commands:&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;grub&gt; kernel (hd0,0)/vmlinuz root=/dev/ram ramdisk_size=20000 devfs=mount,dall&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;grub&gt; initrd (hd0,0)/initrd.gz&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;grub&gt; boot&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;It's not difficult to understand the commands. (hd0,0) indicates the hdd devise and the partion that store the files.&lt;br /&gt;&lt;br /&gt;12. laptop reboot now and you'll be lead into the harddisk install program now which is slightly different from the one by cdrom install. It will search all reconizable partitions and find the right iso image and the following procedures are just as smooth as it should be. Huhu~~, finally get Ubuntu on my laptop!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:180%;"&gt;Reference:&lt;/span&gt;&lt;br /&gt;&lt;a href="https://wiki.ubuntu.com/Installation/FromWindows"&gt;ubuntu wiki&lt;/a&gt;&lt;br /&gt;&lt;a href="http://marc.herbert.free.fr/linux/win2linstall.html"&gt;Install GNU/Linux without any CD, floppy, USB-key, nor any other removable media&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-112939855980724070?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/112939855980724070/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=112939855980724070' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112939855980724070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112939855980724070'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/10/install-ubuntu-510-breezy-on-compaq.html' title='Install Ubuntu 5.10 (Breezy) on Compaq N800v'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-112884624903887927</id><published>2005-10-09T15:57:00.000+08:00</published><updated>2005-10-09T16:24:09.046+08:00</updated><title type='text'>Auto backup</title><content type='html'>using &lt;a href="http://email.cleancode.org"&gt;email&lt;/a&gt; &amp; &lt;a href="ftp://ftp.isc.org/isc/cron"&gt;crontab&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;1. edit configure files under &lt;span style="color: rgb(153, 51, 0);"&gt;/etc/email/&lt;/span&gt; to set up the email account used to store the backup files.&lt;br /&gt;&lt;br /&gt;2. write a shell script like this:&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;#! /bin/sh&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;# commands to set up backup files, e. g, grab &lt;/span&gt;&lt;a style="color: rgb(0, 102, 0);" href="http://del.icio.us"&gt;del.icio.us&lt;/a&gt;&lt;span style="color: rgb(0, 102, 0);"&gt; posts&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;curl --user &lt;span style="color: rgb(204, 51, 204);"&gt;username&lt;/span&gt;:&lt;span style="color: rgb(204, 51, 204);"&gt;password&lt;/span&gt; -o "$MYPATH/myDelicious.xml" -O 'http://del.icio.us/api/posts/all'&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;# mail it to my gmail account&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;# get the date &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;DATE="$(date)"&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;email -s "delicious backup @ $DATE" email@gmail.com -b --attach "$MYPATH/myDelicious.xml"&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;-b&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;means blank email,&lt;/span&gt; &lt;span style="color: rgb(0, 0, 153);"&gt;--attach&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0);"&gt;followed by the attached files.&lt;br /&gt;&lt;br /&gt;3. set cron to run the script everyday in the night&lt;br /&gt;edit your crontab file&lt;br /&gt;&lt;span style="color: rgb(102, 0, 0);"&gt; #  crontab -e&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;then input:&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;30 2 * * * /usr/local/bin/myBackup&lt;/span&gt;&lt;br /&gt;means to exec the script everyday at 2:30 am.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-112884624903887927?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/112884624903887927/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=112884624903887927' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112884624903887927'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112884624903887927'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/10/auto-backup.html' title='Auto backup'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-112873469333547076</id><published>2005-10-08T09:22:00.000+08:00</published><updated>2005-10-14T15:11:26.393+08:00</updated><title type='text'>mount bin/cue &amp; disc image conversion</title><content type='html'>&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Directly mount .bin image:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;$:&gt;emerge &lt;/span&gt;&lt;a style="color: rgb(153, 0, 0);" href="http://www.cdemu.org/"&gt;cdemu&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;$:&gt;modprobe cdemu&lt;br /&gt;&lt;br /&gt;$:&gt;cdemu 0 [image.cue]&lt;br /&gt;&lt;br /&gt;$:&gt;mount -t iso9660 /dev/cdemu/0 /mnt/cdrom&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;However, I still cannot find any method to directly mount Alcohoc .img file in Linux. A feasible way is to convert it to iso image first. (&lt;a href="https://wiki.ubuntu.com/ManageDiscImages"&gt;Ubuntu wiki&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;# emerge &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;ccd2iso&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;usage:  &lt;span style="color: rgb(153, 51, 0);"&gt;ccd2iso &lt;.img filename&gt; &lt;.iso filename&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 153);font-size:130%;" &gt;Also find how to convert .bin image to iso image:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;# emerge bchunk&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;usage: &lt;/span&gt;bchunk myimage.bin myimage.cue myimage&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Convert DMG(compressed z-lib) to ISO:&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-size:100%;"&gt;download perl script &lt;a href="http://vu1tur.eu.org/tools/"&gt;here&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;usage: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;dmg2iso.pl &lt;filename.dmg&gt; &lt;filename.iso&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;   &lt;h3 id="head-541785e26430692ef54726fee2989444235a16bf-3"&gt;&lt;br /&gt;&lt;/h3&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-112873469333547076?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/112873469333547076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=112873469333547076' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112873469333547076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112873469333547076'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/10/mount-bincue-disc-image-conversion.html' title='mount bin/cue &amp; disc image conversion'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-112870652213542470</id><published>2005-10-08T01:13:00.000+08:00</published><updated>2005-10-08T12:29:33.930+08:00</updated><title type='text'>Wine configure for Chinese Display</title><content type='html'>Wine has cancel the use of &lt;span style="color: rgb(102, 0, 0);"&gt;config &lt;/span&gt;file after 20050628 and use registry to store the user setting. So I try to solve two problems after I installed Wine and try to run SourceInsight.&lt;br /&gt;&lt;br /&gt;1. the fonts look vague&lt;br /&gt;2. Chinese display&lt;br /&gt;&lt;br /&gt;Got a &lt;a href="http://moto.debian.org.tw/viewtopic.php?t=7164"&gt;solution&lt;/a&gt; from a Taiwan forum:&lt;br /&gt;&lt;br /&gt;&lt;span class="postbody"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;~/.wine/user.reg&lt;br /&gt;&lt;span style="color: rgb(204, 51, 204);"&gt;//to mirror windows common fonts to my favorite in Linux&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[Software\\Wine\\Fonts\\Replacements]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;"System"="SimSun"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;"Arial"="Bitstream Vera Sans"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;"Fixedsys"="SinSun"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;"Microsoft Sans Serif"="Bitstream Vera Sans"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;"MS UI Gothic"="Bitstream Vera Sans"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;"Tahoma"="Tahoma"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;"Terminal"="Bitstream Vera Sans"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;"MingLiU"="MingLiU"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;"PmingLiU"="PMingLiU"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;// set default browser&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[Software\\Wine\\WineBrowser]&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;"Browsers"="firefox-bin"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;// if you feel not comfortable for the vague fonts, set it&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;[Software\\Wine\\X11 Driver] 1128697012&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;"ClientSideAntiAliasWithRender"="N"&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 0, 0);" class="postbody"&gt;~/.wine/system.reg&lt;br /&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;//change dialogue window font size&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; [System\\CurrentControlSet\\Hardware Profiles\\Current\\Software\\Fonts]&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;"LogPixels"=dword:00000082&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);" class="postbody"&gt;~/.wine/driver_c/windows/win.ini&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;&lt;span style="color: rgb(153, 51, 153);"&gt;//change other font size&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);font-family:宋体;" &gt; [Desktop]&lt;br /&gt;menufontsize=13&lt;br /&gt;messagefontsize=13&lt;br /&gt;statusfontsize=13&lt;br /&gt;IconTitleSize=13&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 51, 0);"&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;However, I found above modifications become invalid after running wine. All reg files are rolled back. Actually the valid method is run &lt;span style="color: rgb(0, 0, 153);"&gt;regedit &lt;span style="color: rgb(204, 0, 0);"&gt;and modify it in accordance with the above metioned. \\ seperate the tree branches in register table as in Windows. Finally I find the modifications reflect on the reg files. &lt;span style="color: rgb(255, 0, 0);"&gt;(now I confirm the changes are discarded because there is still a wine instance running, so make sure no wine is running before try to modify .reg files)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Finally I found still not so satifacotry with the display effect, the English fonts in the dialogue window look twisted and vague. So I tried to copy all fonts under my Linux to&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;driver_c/windows/fonts&lt;/span&gt;, &lt;span style="color: rgb(0, 0, 0);"&gt;now it looks almost exactly as it is in Windows.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-112870652213542470?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/112870652213542470/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=112870652213542470' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112870652213542470'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112870652213542470'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/10/wine-configure-for-chinese-display.html' title='Wine configure for Chinese Display'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-112657572939188239</id><published>2005-09-13T09:34:00.000+08:00</published><updated>2005-09-13T09:49:03.623+08:00</updated><title type='text'>Operate Creative Zen Micro in Linux! Cool!</title><content type='html'>Glad to find my Zen Micro supported in Linux!!&lt;br /&gt;&lt;br /&gt;Check it &lt;a href="http://gnomad2.sourceforge.net/"&gt;here&lt;/a&gt;:&lt;br /&gt;&lt;br /&gt;You can also find it in gentoo, a simple emerge will do all the works, thanks to gentoo!&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Working Devices:&lt;/b&gt;&lt;br /&gt;Creative Nomad Jukebox 1 (aka D.A.P.)&lt;br /&gt;Creative Nomad Jukebox 2&lt;br /&gt;Creative Nomad Jukebox 3&lt;br /&gt;Creative Nomad Jukebox Zen&lt;br /&gt;Creative Nomad Jukebox Zen USB 2.0&lt;br /&gt;Creative Nomad Jukebox Zen NX&lt;br /&gt;Creative Nomad Jukebox Zen Xtra&lt;br /&gt;Dell Digital Jukebox ("Dell DJ")&lt;br /&gt;Creative Nomad Jukebox Zen Touch&lt;br /&gt;&lt;span style="color: rgb(51, 255, 51); font-weight: bold;"&gt; Creative Nomad Jukebox Zen Micro&lt;/span&gt;&lt;br /&gt;(Without the 2.x MTP/PlaysForSure upgrade!)&lt;br /&gt;Second Generation Dell DJ&lt;br /&gt;(Without the MTP/PlaysForSure upgrade!)&lt;br /&gt;Dell Pocket DJ&lt;br /&gt;(Without the MTP/PlaysForSure upgrade!)&lt;br /&gt;&lt;br /&gt;It's also a surprise that I find file transfer rate is more than 2MB using gnomad, and it's faster than I transfer files using either WMP10 or Creative origin software as I always complain such a USB 2.0-support device.&lt;br /&gt;&lt;br /&gt;Yet still some bugs exist, one biggest problem is when I try to delete one or several songs from the device, a window pops up prompting for confirm, after I click yes, it just freezes there and I have to kill the process. The device may still appear to be in Docked mode for which I have to remove the battery to reset it. Anyway, deletion operation can be easily performed from the device itself. This bug has been reported several times and I expect it to be solved soon.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-112657572939188239?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/112657572939188239/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=112657572939188239' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112657572939188239'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112657572939188239'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/09/operate-creative-zen-micro-in-linux.html' title='Operate Creative Zen Micro in Linux! Cool!'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-112573301975468365</id><published>2005-09-03T15:31:00.000+08:00</published><updated>2005-09-03T15:36:59.760+08:00</updated><title type='text'>package operation in Gentoo</title><content type='html'>search software with keyword:&lt;br /&gt; Gentoo: emerge -s &lt;keyword&gt; &lt;br /&gt;Debian: apt-cache search &lt;keyword&gt;&lt;br /&gt; FreeBSD: make search name=&lt;keyword&gt; 或&lt;br /&gt; ports_glob &lt;keyword&gt; -- need portupgrade &lt;br /&gt; &lt;br /&gt;  Install software:&lt;br /&gt; Gentoo: emerge &lt;package&gt;&lt;br /&gt; Debian: apt-get install &lt;package&gt;&lt;br /&gt; FreeBSD: portinstall &lt;package&gt; &lt;br /&gt; &lt;need&gt; &lt;br /&gt; &lt;br /&gt;remove package:&lt;br /&gt; Gentoo: emerge unmerge &lt;package&gt;&lt;br /&gt; Debian: apt-get remove &lt;package&gt;&lt;br /&gt; FreeBSD: pkg_deinstall &lt;package&gt; &lt;br /&gt; &lt;need&gt; &lt;br /&gt; &lt;br /&gt;  Update single package:&lt;br /&gt; Gentoo: emerge -u &lt;package&gt;&lt;br /&gt; Debian: ?&lt;br /&gt; FreeBSD: portupgrade &lt;package&gt; &lt;br /&gt; &lt;need&gt; &lt;br /&gt; &lt;br /&gt;  check what packages will be impacted by updating all installed packages:&lt;br /&gt; Gentoo: emerge -puDv world&lt;br /&gt; Debian: apt-get -u dist-upgrade&lt;br /&gt; FreeBSD: portupgrade -arnv&lt;br /&gt; &lt;br /&gt;update the system:&lt;br /&gt; Gentoo: emerge -u --deep world&lt;br /&gt; Debian: apt-get dist-upgrade&lt;br /&gt; FreeBSD: make world ; portupgrade -ar &lt;br /&gt; &lt;need&gt; &lt;br /&gt; &lt;br /&gt;query  installed packages:&lt;br /&gt; Gentoo: emerge -pe world 或 qpkg -I -v&lt;br /&gt; Debian: dpkg --get-selections&lt;br /&gt; FreeBSD: pkg_info &lt;br /&gt; &lt;br /&gt;  check the dependency of package:&lt;br /&gt; Gentoo: qpkg -f &lt;filename&gt; &lt;br /&gt; (need gentoolkit)&lt;br /&gt; Debian: dpkg -S &lt;filename&gt;&lt;br /&gt; FreeBSD: pkg_info -W &lt;filename&gt; &lt;br /&gt; &lt;br /&gt;  check the components of a package:&lt;br /&gt; Gentoo: qpkg -l &lt;pkg&gt;&lt;br /&gt; Debian: ?&lt;br /&gt; FreeBSD: pkg_info -L &lt;pkg&gt; &lt;br /&gt; &lt;br /&gt;   check the components of a package with keyword&lt;br /&gt; Gentoo: qpkg -I | grep &lt;keyword&gt; (qpkg  -v to check version) &lt;br /&gt; Debian: &lt;br /&gt; FreeBSD: pkg_info | grep &lt;keyword&gt; &lt;br /&gt; &lt;br /&gt;  query the introduction to package with keyword&lt;br /&gt; Gentoo: emerge -S &lt;keyword&gt; &lt;br /&gt;Debian: ? &lt;br /&gt; FreeBSD: make search key=&lt;filename&gt; &lt;br /&gt; &lt;br /&gt;remove package without dependency:&lt;br /&gt; Gentoo: emerge -C &lt;pkg&gt; &lt;br /&gt; Debian: &lt;br /&gt; FreeBSD: pkg_delete -f &lt;pkg&gt;&lt;br /&gt; &lt;br /&gt;rebuild the system:&lt;br /&gt; Gentoo: emerge -e world&lt;br /&gt; Debian: ?&lt;br /&gt; FreeBSD: make world ; portupgrade -arf &lt;br /&gt; &lt;need&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-112573301975468365?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/112573301975468365/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=112573301975468365' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112573301975468365'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112573301975468365'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/09/package-operation-in-gentoo.html' title='package operation in Gentoo'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-112168922760911173</id><published>2005-07-18T20:19:00.000+08:00</published><updated>2005-07-18T20:20:27.616+08:00</updated><title type='text'>Play ape in xmms</title><content type='html'>wget &lt;a href="http://membres.lycos.fr/mazzaru/libmacinput.so.gz" target="_blank"&gt;http://membres.lycos.fr/mazzaru/libmacinput.so.gz&lt;/a&gt;&lt;br /&gt; chmod 755 libmacinput.so&lt;br /&gt; mv libmacinput.so ~/.&lt;span style="color: rgb(255, 163, 79);"&gt;&lt;b&gt;xmms&lt;/b&gt;&lt;/span&gt;/Plugins/&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-112168922760911173?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/112168922760911173/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=112168922760911173' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112168922760911173'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/112168922760911173'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/07/play-ape-in-xmms.html' title='Play ape in xmms'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111467354303183157</id><published>2005-04-28T15:27:00.000+08:00</published><updated>2005-10-18T19:30:11.436+08:00</updated><title type='text'>mount and umount</title><content type='html'>USB harddisk is becoming a necessity for file transfer. In linux, I'll be likely to encounter a problem, when I try to umount the usb disk, a message will pop up said the device is busy.&lt;br /&gt;What you must do before remove it is to make sure all the process using this device has quitted. To check which process is still using this device, you can use command fuser:&lt;br /&gt;#fuser -m /USB (/USB is the directory I mount my usb disk into)&lt;br /&gt;The process number accordingly will be listed, then you can just close the program belongs to it or give it a simple kill.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;---update---&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# sync&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;before kill any process so all content will be flushed and no data is lost.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111467354303183157?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111467354303183157/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111467354303183157' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111467354303183157'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111467354303183157'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/04/mount-and-umount.html' title='mount and umount'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111391707310380049</id><published>2005-04-19T21:21:00.000+08:00</published><updated>2005-04-19T21:24:33.103+08:00</updated><title type='text'>File Sharing between Linux/Win</title><content type='html'>A easy way is to install samba in Linux and start samba service if to share files on Linux.&lt;br /&gt;&lt;br /&gt;To access the files shared by samba in Linux, it's simple as using \\hostname\sharefolder in windows.&lt;br /&gt;&lt;br /&gt;To access files shard by Linux through samba or Windows file sharing, can use smbmount to mount a remote directory to a local mount point.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111391707310380049?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111391707310380049/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111391707310380049' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111391707310380049'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111391707310380049'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/04/file-sharing-between-linuxwin.html' title='File Sharing between Linux/Win'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111225176904498962</id><published>2005-03-31T14:19:00.000+08:00</published><updated>2005-03-31T14:49:29.046+08:00</updated><title type='text'>VNC with SSH</title><content type='html'>Want to connect to Linux in your Win OS without tedious config? Try Vnc. Try to use without compromising your security principle, VNC + SSH may be an option.&lt;br /&gt;&lt;br /&gt;1. Install vnc&lt;br /&gt;There are several free distributions: &lt;a href="http://www.tightvnc.com/"&gt;Tightvnc, Realvnc.&lt;/a&gt;&lt;br /&gt;Follow the installation guilde and config &lt;span style="color: rgb(153, 0, 0);"&gt;~/.vnc/xstartup&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;#!/bin/sh&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;xrdb $HOME/.Xresources&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;#xsetroot -solid grey&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;#xterm -geometry 80x24+10+10 -ls -title "$VNCDESKTOP Desktop" &amp;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;#twm &amp;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;unset SESSION_MANAGER&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;gnome-session &amp;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;#startkde &amp; ( for kde)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. In Win OS, use &lt;a href="www.vandyke.com/products/securecrt"&gt;SecureCRT&lt;/a&gt; to tunnel vnc request from local host (Win) to secure port in remote host (Linux).&lt;br /&gt;Install SecureCRT with commandline support and add it to PATH. Then write a script to establish the secure tunnel&lt;br /&gt;&lt;span style="font-size:-1;"&gt;&lt;span style="color:#008000;"&gt;&lt;span style="font-weight: bold;"&gt;secureCRT /SSH2 /L greenw /I "D:/id_rsa.pub" /P 22 /Z 5 /LOCAL 5901:xxx.xxx.xxx.xxx:5908 xxx.xxx.xxx.xxx&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;You can check secureCRT options about the command line above.&lt;br /&gt;/I    the path store the public key&lt;br /&gt;/P   the SSH listenning port number in remote host, 22 is default in Linux&lt;br /&gt;/Z   compression level&lt;br /&gt;/LOCAL map the local port 5901 to remote host port 5908&lt;br /&gt;&lt;br /&gt;3. vncserver use port number starting from 5900, if you start vncserver with &lt;span style="color: rgb(102, 0, 0);"&gt;vncserver:8&lt;/span&gt;, then vncserver will listen to port 5908; for local vncviewer, you should use &lt;span style="color: rgb(0, 153, 0);"&gt;localhost:1&lt;/span&gt;&lt;br /&gt;and you can see the remote desktop in a secure way.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111225176904498962?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111225176904498962/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111225176904498962' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111225176904498962'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111225176904498962'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/vnc-with-ssh.html' title='VNC with SSH'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111218923627286786</id><published>2005-03-30T21:18:00.000+08:00</published><updated>2005-03-30T21:27:16.273+08:00</updated><title type='text'>How to use Gnome desktop in Win XP</title><content type='html'>In Win XP, a X Server is needed such as &lt;span style="color: rgb(255, 0, 0);"&gt;Xmanager&lt;/span&gt; (&lt;a href="http://www.netsarang.com"&gt;http://www.netsarang.com&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;In Linux host (Gentoo in this article), follow these procedures to set up XDMCP:&lt;br /&gt;1. edit &lt;span style="color: rgb(153, 0, 0);"&gt;/etc/inittab&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;id:5:initdefault&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. edit &lt;span style="color: rgb(153, 0, 0);"&gt;/etc/X11/gdm/gdm.conf&lt;/span&gt;&lt;br /&gt;in [xdmcp] section&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;Enable=true&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. set up iptables to allow connections to x client to be passed&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;#iptables -A INPUT -p udp -s 0/0 -d 0/0 --dport 177 -j ACCEPT&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;#iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport telnet -j ACCEPT&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;#iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport ssh -j ACCEPT&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;#iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport login -j ACCEPT&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;#iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport exec -j ACCEPT&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;#iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport shell -j ACCEPT&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;#iptables -A INPUT -p tcp -s 0/0 -d 0/0 --dport 7100 -j ACCEPT&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally, restart linux and Xmanager should be able to connect to Gnome in Linux. Comes the beautiful desktop.. Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111218923627286786?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111218923627286786/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111218923627286786' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111218923627286786'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111218923627286786'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/how-to-use-gnome-desktop-in-win-xp.html' title='How to use Gnome desktop in Win XP'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111209589141821752</id><published>2005-03-29T19:29:00.000+08:00</published><updated>2005-03-29T19:31:31.420+08:00</updated><title type='text'>Start vncserver with Gnome</title><content type='html'>edit &lt;span style="color: rgb(153, 0, 0);"&gt;~/.vnc/xstartup&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;xrdb $HOME/.Xresources&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;unset SESSION_MANAGER &lt;span style="color: rgb(0, 0, 0);"&gt;(if you can only see a gray plate and a cursor after loginning with vncviewer, you may need to try this)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;gnome-session &amp;amp;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111209589141821752?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111209589141821752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111209589141821752' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111209589141821752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111209589141821752'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/start-vncserver-with-gnome.html' title='Start vncserver with Gnome'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111167239660210938</id><published>2005-03-24T21:35:00.000+08:00</published><updated>2005-03-25T15:15:10.146+08:00</updated><title type='text'>Gentoo Installation from Stage 1 using Knoppix - Install Gentoo Base System</title><content type='html'>1. Copy DNS Info&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span class="input"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;cp -L /etc/resolv.conf /mnt/gentoo/etc/resolv.conf&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. &lt;/span&gt;Mounting the proc Filesystem (from knoppix)&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);" class="input"&gt;mount -o bind /proc /mnt/gentoo/proc&lt;/span&gt;&lt;br /&gt;&lt;/pre&gt; 3. Entering the new Environment&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);" class="input"&gt;chroot /mnt/gentoo /bin/bash&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);" class="input"&gt;env-update&lt;/span&gt;&lt;br /&gt;* Caching service dependencies...&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);" class="input"&gt;source /etc/profile&lt;/span&gt;&lt;/pre&gt; 4. Updating the Portage tree&lt;br /&gt;&lt;pre&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span class="input"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;emerge --sync&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. &lt;/span&gt;Configuring the USE variable in /etc/make.conf&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;USE="gtk gnome qt -kde -dvd alsa -cdr cjk nls zh_CN zh_TW ldap X"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;6. Optional: GLIBC Locales&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);" class="input"&gt;mkdir /etc/portage&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);" class="input"&gt;echo "sys-libs/glibc userlocales" &gt;&gt; /etc/portage/package.use&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span class="input"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;nano -w /etc/locales.build&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;en_US/ISO-8859-1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;en_US.UTF-8/UTF-8&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;en_HK/ISO-8859-1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;en_PH/ISO-8859-1&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;zh_CN/GB2312&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;zh_CN/GB18030&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;zh_CN/GBK&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;7. &lt;/span&gt;Progressing from Stage1 to Stage2 -&lt;span class="input"&gt; &lt;/span&gt;Bootstrapping the System&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);" class="input"&gt;cd /usr/portage&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span class="input"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;scripts/bootstrap.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;8. &lt;/span&gt;Building the System&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);" class="input"&gt;emerge system&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111167239660210938?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111167239660210938/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111167239660210938' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111167239660210938'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111167239660210938'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/gentoo-installation-from-stage-1-using_24.html' title='Gentoo Installation from Stage 1 using Knoppix - Install Gentoo Base System'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111167125092158371</id><published>2005-03-24T20:53:00.000+08:00</published><updated>2005-03-24T22:01:07.416+08:00</updated><title type='text'>Gentoo Installation from Stage 1 using Knoppix - Preparation</title><content type='html'>&lt;p&gt;Preface:&lt;br /&gt;After the windows XP declined my login request unreasonablly after I reinstalled SP1 in my Compaq N800v laptop which has the autherized Windows XP Professional installed, I'm tired of Windows finally. It's time to get power from Linux!&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Partitions in my hdd:&lt;/p&gt; &lt;p&gt;hda1 fat32 WinXP 6448.62 MB&lt;br /&gt;hda5 fat32 Data 26398.32 MB&lt;br /&gt;hda6 ext3 /boot 30 MB&lt;br /&gt;hda7 ReiserFS / 6448.62 MB&lt;br /&gt;hda8 Linux Swap 727.7 MB&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;1. Boot with Knoppix&lt;br /&gt;By default Knoppix boots into a KDE 3.0 desktop. The first thing I did was open a konsole and typed &lt;span class="code"&gt;sudo passwd root&lt;/span&gt;. This lets you set the root password for Knoppix. &lt;/p&gt;    &lt;p&gt; Next, I &lt;span class="code"&gt;su&lt;/span&gt; to root and typed &lt;span class="code"&gt;usermod -d /root -m root&lt;/span&gt;. This sets user roots home directory to /root (the Gentoo way) from /home/root (the Knoppix way). If you do not do this, then you will receive errors when emerging about "/home/root: not found" or something to that effect. &lt;/p&gt;    I then typed &lt;span class="code"&gt;exit&lt;/span&gt; and then &lt;span class="code"&gt;su&lt;/span&gt; back into root. This loads the change that was made with the usermod command. Now create the &lt;span class="path"&gt;/mnt/gentoo&lt;/span&gt; mountpoint using &lt;span class="code"&gt;mkdir&lt;br /&gt;&lt;br /&gt;2. download stage1 tarball&lt;br /&gt;&lt;/span&gt; &lt;pre&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;# &lt;/span&gt;&lt;span class="input"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;tar -xvjpf stage?-*.tar.bz2&lt;/span&gt;&lt;br /&gt;3. Install Portage&lt;br /&gt;&lt;/span&gt;&lt;span class="input"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;tar -xvjf /mnt/gentoo/portage-20041202.tar.bz2 -C /mnt/gentoo/usr&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. Edit &lt;span style="color: rgb(204, 153, 51);"&gt;/mnt/gentoo/etc/make.conf&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;# These settings were set by the catalyst build script that automatically built this stage&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;# Please consult /etc/make.conf.example for a more detailed example&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;CFLAGS="-O3 -march=pentium4 -fomit-frame-pointer -pipe"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;CHOST="i686-pc-linux-gnu"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;CXXFLAGS="${CFLAGS}"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;#LDFLAGS="-Wl,-O1"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;ACCEPT_KEYWORDS="~x86"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;GENTOO_MIRRORS="http://mirror.averse.net/pub/gentoo"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;#PORTAGE_BINHOST="http://mirror.averse.net/pub/gentoo"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;SYNC="rsync://rsync.gentoo.org/gentoo-portage"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;USE="gtk gnome qt -kde -dvd alsa -cdr cjk nls zh_CN zh_TW ldap X"&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111167125092158371?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111167125092158371/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111167125092158371' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111167125092158371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111167125092158371'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/gentoo-installation-from-stage-1-using.html' title='Gentoo Installation from Stage 1 using Knoppix - Preparation'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111070176194534645</id><published>2005-03-13T16:16:00.000+08:00</published><updated>2005-03-13T16:30:15.726+08:00</updated><title type='text'>A snapshot of my desktop (post from Hello)</title><content type='html'>&lt;a href="http://photos1.blogger.com/img/61/4093/640/Screenshot-1.jpg"&gt;&lt;img style="border: 1px solid rgb(0, 0, 0); margin: 2px;" src="http://photos1.blogger.com/img/61/4093/320/Screenshot-1.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Post photo from Hello&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111070176194534645?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111070176194534645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111070176194534645' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111070176194534645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111070176194534645'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/snapshot-of-my-desktop-post-from-hello.html' title='A snapshot of my desktop (post from Hello)'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111063209860790372</id><published>2005-03-12T20:42:00.000+08:00</published><updated>2005-03-12T20:54:58.616+08:00</updated><title type='text'>Set up your security rules</title><content type='html'>Security is the one of the most desirable characters of OS, especially you have been tired of keeping patching your WIN..&lt;br /&gt;In the new kernel of Linux, such feature is integrated so that packet filtering can be performed at the kernel level.&lt;br /&gt;&lt;br /&gt;1.To define the rules of defendance, you need to install iptables first.&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;#emerge iptables&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;2. Then add it to system starting service&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;#rc_update add iptables default&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3. edit config file contain rules&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;#/ect/init.d/iptables save&lt;/span&gt;&lt;br /&gt;you'll get a default config file in &lt;span style="color: rgb(153, 0, 0);"&gt;/var/lib/iptables/rules-save&lt;/span&gt;&lt;br /&gt;I'll define my security rules in this file&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;# Generated by iptables-save v1.2.11 on Sat Mar 12 20:34:16 2005&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;*nat&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;:PREROUTING ACCEPT [80:11499]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;:POSTROUTING ACCEPT [4:240]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;:OUTPUT ACCEPT [0:0]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;COMMIT&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;# Completed on Sat Mar 12 20:34:16 2005&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;# Generated by iptables-save v1.2.11 on Sat Mar 12 20:34:16 2005&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;*mangle&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;:PREROUTING ACCEPT [100:12984]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;:INPUT ACCEPT [23:2505]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;:FORWARD ACCEPT [0:0]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;:OUTPUT ACCEPT [16:1184]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;:POSTROUTING ACCEPT [16:1184]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;COMMIT&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;# Completed on Sat Mar 12 20:34:16 2005&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;# Generated by iptables-save v1.2.11 on Sat Mar 12 20:34:16 2005&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;*filter&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;:INPUT ACCEPT [1:28]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;:FORWARD ACCEPT [0:0]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;:OUTPUT ACCEPT [16:1184]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;:RH-Lokkit-0-50-INPUT - [0:0]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[23:2505] -A INPUT -j RH-Lokkit-0-50-INPUT &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[0:0] -A FORWARD -j RH-Lokkit-0-50-INPUT &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[0:0] -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 23 -j ACCEPT &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[8:480] -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 0:1023 --tcp-flags SYN,RST,ACK SYN -j REJECT --reject-with icmp-port-unreachable &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[0:0] -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 2049 --tcp-flags SYN,RST,ACK SYN -j REJECT --reject-with icmp-port-unreachable &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[6:1293] -A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 0:1023 -j REJECT --reject-with icmp-port-unreachable &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[0:0] -A RH-Lokkit-0-50-INPUT -p udp -m udp --dport 2049 -j REJECT --reject-with icmp-port-unreachable &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[0:0] -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 7100 --tcp-flags SYN,RST,ACK SYN -j REJECT --reject-with icmp-port-unreachable &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[0:0] -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 6000:6009 --tcp-flags SYN,RST,ACK SYN -j REJECT --reject-with icmp-port-unreachable &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[0:0] -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 445 --tcp-flags SYN,RST,ACK SYN -j ACCEPT &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[0:0] -A RH-Lokkit-0-50-INPUT -i eth0 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[0:0] -A RH-Lokkit-0-50-INPUT -i eth1 -p udp -m udp --sport 67:68 --dport 67:68 -j ACCEPT &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;[8:704] -A RH-Lokkit-0-50-INPUT -i lo -j ACCEPT &lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;COMMIT&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;# Completed on Sat Mar 12 20:34:16 2005&lt;/span&gt;&lt;br /&gt;It will reject all tcp &amp; udp request destined to all system ports in my pc (0~1023) and allow telnet request to pass through port 23.&lt;br /&gt;Also remember the rules should be defined in a sequence as you desire. So accept tcp request from port 23 must be defined before rejecting all requests to port from 0 to 1023..&lt;br /&gt;&lt;br /&gt;4. start iptables service&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;#/etc/init.d/iptables start&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111063209860790372?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111063209860790372/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111063209860790372' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111063209860790372'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111063209860790372'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/set-up-your-security-rules.html' title='Set up your security rules'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111060573970771090</id><published>2005-03-12T13:32:00.000+08:00</published><updated>2005-03-12T13:35:57.066+08:00</updated><title type='text'>/etc/samba/smb.conf</title><content type='html'>[global]&lt;br /&gt;&lt;br /&gt;   netbios name = greenw&lt;br /&gt;# workgroup = NT-Domain-Name or Workgroup-Name&lt;br /&gt;   workgroup = mygroup&lt;br /&gt;&lt;br /&gt;# server string is the equivalent of the NT Description field&lt;br /&gt;   server string = greenw&lt;br /&gt;&lt;br /&gt;   client code page = 936&lt;br /&gt;&lt;br /&gt;   printcap name = /etc/printcap&lt;br /&gt;   load printers = yes&lt;br /&gt;&lt;br /&gt;   unix charset = "gbk"&lt;br /&gt;   dos charset = "gbk"&lt;br /&gt;   display charset = "gbk"&lt;br /&gt;&lt;br /&gt;   printing = cups&lt;br /&gt;&lt;br /&gt;   log file = /var/log/samba/%m.log&lt;br /&gt;&lt;br /&gt;   encrypt passwords = yes&lt;br /&gt;   smb passwd file = /etc/samba/smbpasswd&lt;br /&gt;&lt;br /&gt;   unix password sync = Yes&lt;br /&gt;   passwd program = /usr/bin/passwd %u&lt;br /&gt;passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*&lt;br /&gt;&lt;br /&gt;   pam password change = yes&lt;br /&gt;&lt;br /&gt;   obey pam restrictions = yes&lt;br /&gt;&lt;br /&gt;   socket options = TCP_NODELAY SO_RCVBUF=8192 SO_SNDBUF=8192&lt;br /&gt;&lt;br /&gt;   username map = /etc/samba/smbusers&lt;br /&gt;   guest ok = yes&lt;br /&gt;   dns proxy = no&lt;br /&gt;&lt;br /&gt;[homes]&lt;br /&gt;   comment = Home Directories&lt;br /&gt;   browseable = yes&lt;br /&gt;   valid users = %S&lt;br /&gt;   create mode = 0664&lt;br /&gt;   writable = yes&lt;br /&gt;   directory mode = 0775&lt;br /&gt;[RH]&lt;br /&gt;      path = /RH/home/greenw&lt;br /&gt;      writeable = yes&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111060573970771090?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111060573970771090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111060573970771090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111060573970771090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111060573970771090'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/etcsambasmbconf.html' title='/etc/samba/smb.conf'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111059781853663158</id><published>2005-03-12T11:13:00.000+08:00</published><updated>2005-03-12T11:46:48.433+08:00</updated><title type='text'>How to set up cvs server</title><content type='html'>1. set up a seperate user to perform cvs operation&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;#groupadd cvs &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt; #useradd cvsroot -g cvs &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt; #passwd cvsroot&lt;/span&gt;&lt;br /&gt;and give user cvs with shell "/bin/false"&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;#mkdir /home/cvsroot&lt;/span&gt;&lt;br /&gt;2. use xinetd to start cvsserver service&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;#emerge xinetd&lt;/span&gt; (if xinetd is not installed)&lt;br /&gt;in &lt;span style="color: rgb(153, 0, 0);"&gt;/etc/xinetd.conf&lt;/span&gt;, comment out &lt;span style="color: rgb(0, 153, 0);"&gt;line only_from      = localhost&lt;/span&gt; if you want to provide services also to other users except this host&lt;br /&gt;edit &lt;span style="color: rgb(153, 0, 0);"&gt;/etc/xinetd.d/cvspserver&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;service cvspserver &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; { &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; disable = no &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; flags = REUSE &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; socket_type = stream &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; wait = no &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; user = root &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; server = /usr/bin/cvs &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; server_args = -f --allow-root=/home/cvsroot pserver &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; log_on_success += USERID &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; log_on_failure += USERID &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; }&lt;/span&gt;&lt;br /&gt;3. init cvs (which will create CVSROOT directory in /home/cvsroot)&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;#cvs -d /home/cvsroot init&lt;/span&gt;&lt;br /&gt;4. add xinetd in init.d&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; #rc-update add xinetd default&lt;/span&gt;&lt;br /&gt;and start xinetd:&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; #/etc/init.d/xinetd start&lt;/span&gt;&lt;br /&gt;5. check whether cvs server is running now&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;#netstat -l | grep cvspserver&lt;/span&gt;&lt;br /&gt;if &lt;span style="color: rgb(0, 153, 0);"&gt;tcp 0 0 *:cvspserver *:* LISTEN&lt;/span&gt; appears, then congratulations!&lt;br /&gt;&lt;br /&gt;btw:&lt;br /&gt;1. check your service port setting (&lt;span style="color: rgb(153, 0, 0);"&gt;/etc/service&lt;/span&gt;) and firewall setting if encountering  any problem&lt;br /&gt;2. if local user encounter  failed to create lock directory error, edit &lt;span style="color: rgb(153, 0, 0);"&gt;/home/cvsroot/CVSROOT/config&lt;/span&gt; and modify the location of lock file which give current user the writting privilege&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111059781853663158?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111059781853663158/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111059781853663158' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111059781853663158'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111059781853663158'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/how-to-set-up-cvs-server.html' title='How to set up cvs server'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111046652583349235</id><published>2005-03-10T22:51:00.000+08:00</published><updated>2005-09-26T20:13:38.460+08:00</updated><title type='text'>Config Gentoo</title><content type='html'>1. Autoloadable modules:&lt;br /&gt;edit &lt;span style="color: rgb(204, 0, 0);"&gt;/etc/modules.autoload.d/kernel-&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;[version]&lt;/span&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;&lt;version&gt;&lt;/version&gt;&lt;/span&gt;&lt;br /&gt;and put the module's name each in one line&lt;br /&gt;eg:&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;nvidia&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;usb_storage&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;ohci_hcd&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;ehci_hcd&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;uhci_hcd&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;then run &lt;span style="color: rgb(204, 0, 0);"&gt;modules-update&lt;/span&gt; to update the setting&lt;br /&gt;&lt;br /&gt;2. Set environmental variables&lt;br /&gt;edit files under &lt;span style="color: rgb(204, 0, 0);"&gt;/etc/env.d&lt;/span&gt; in such format&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;PATH=/usr/local/bin&lt;br /&gt;http_proxy=""&lt;br /&gt;&lt;/span&gt;..&lt;br /&gt;then run &lt;span style="color: rgb(204, 0, 0);"&gt;env-update&lt;/span&gt; &amp; &lt;span style="color: rgb(204, 0, 0);"&gt;source /etc/profile&lt;br /&gt;&lt;br /&gt;3. &lt;span style="color: rgb(0, 0, 0);"&gt;if want to exec some program at the start of os, put them in &lt;span style="color: rgb(204, 0, 0);"&gt;/etc/conf.d/local.start&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;4. &lt;span style="color: rgb(0, 0, 0);"&gt;Global startup script configuration settings in&lt;/span&gt; /etc/rc.conf:&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;EDITOR="/usr/bin/vim"  (set default editor which may be invoked from other program such as crontab)&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(51, 204, 0);"&gt;#EDITOR="/usr/bin/emacs"&lt;/span&gt;&lt;br /&gt; &lt;br /&gt; &lt;span style="color: rgb(51, 204, 0);"&gt;# What display manager do you use ?  [ xdm | gdm | kdm | entrance ]&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(51, 204, 0);"&gt;#DISPLAYMANAGER="xdm"&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(51, 204, 0);"&gt;DISPLAYMANAGER="gdm"&lt;/span&gt;&lt;br /&gt; &lt;span style="color: rgb(51, 204, 0);"&gt;#DISPLAYMANAGER="entrance"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111046652583349235?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111046652583349235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111046652583349235' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111046652583349235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111046652583349235'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/config-gentoo.html' title='Config Gentoo'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111046574806435916</id><published>2005-03-10T22:41:00.000+08:00</published><updated>2005-03-10T22:42:28.066+08:00</updated><title type='text'>/etc/fstab</title><content type='html'># /etc/fstab: static file system information.&lt;br /&gt;# $Header: /home/cvsroot/gentoo-src/rc-scripts/etc/fstab,v 1.14 2003/10/13 20:03:38 azarah Exp $&lt;br /&gt;#&lt;br /&gt;# noatime turns off atimes for increased performance (atimes normally aren't&lt;br /&gt;# needed; notail increases performance of ReiserFS (at the expense of storage&lt;br /&gt;# efficiency).  It's safe to drop the noatime options if you want and to&lt;br /&gt;# switch between notail and tail freely.&lt;br /&gt;&lt;br /&gt;# &lt;fs&gt;              &lt;mountpoint&gt;    &lt;type&gt;      &lt;opts&gt;              &lt;dump/pass&gt;&lt;br /&gt;&lt;br /&gt;/dev/hda6       /       reiserfs    noatime         1 1&lt;br /&gt;/dev/hda5       none        swap        sw          0 0&lt;br /&gt;/dev/cdroms/cdrom0  /mnt/cdrom  iso9660     noauto,ro       0 0&lt;br /&gt;/dev/hda2       /RH         ext3        rw          0 0&lt;br /&gt;/dev/sda2       /USB        vfat        rw,umask=000,user,noauto,iocharset=cp936,codepage=936 0 0&lt;br /&gt;#/dev/fd0       /mnt/floppy auto        noauto          0 0&lt;br /&gt;&lt;br /&gt;# NOTE: The next line is critical for boot!&lt;br /&gt;none            /proc       proc        defaults        0 0&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111046574806435916?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111046574806435916/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111046574806435916' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111046574806435916'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111046574806435916'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/etcfstab.html' title='/etc/fstab'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111042018466412520</id><published>2005-03-10T10:03:00.000+08:00</published><updated>2005-03-10T10:07:34.760+08:00</updated><title type='text'>Sound Mixing with ALSA</title><content type='html'>From: &lt;a href="http://fedoranews.org/contributors/andre_costa/alsa/"&gt;FedoraNews.org&lt;/a&gt;, by Andre Costa&lt;br /&gt;Introduction&lt;br /&gt;&lt;br /&gt;If you have ever seen your DVD-player (xine, mplayer etc.) or IM application (e.g. gaim) hang for no obvious reason, just to see it coming back to life when you close xmms, then this article might interest you.&lt;br /&gt;&lt;br /&gt;This HOWTO will (hopefully) teach you how to setup apps such as xmms, xine and gaim to take advantage of ALSA native sound mixing capabilities, allowing them to send data to sound devices concurrently.&lt;br /&gt;&lt;br /&gt;Even though these apps are used as examples, configuration of any ALSA-aware app should be very similar. Also, everything described here is related to intel8x0 driver, but AFAICS confifuration for other types of hardware should be similar.&lt;br /&gt;&lt;br /&gt;IMPORTANT: the instructions listed below work for me, but I don't have extensive knowledge of ALSA configuration. In fact, the core tips were adapted from nForce section of ALSA documentation. If you have any correction or suggestion, I will be glad to add them to this document.&lt;br /&gt;ALSA sound-mixing configuration&lt;br /&gt;&lt;br /&gt;IMPORTANT: ALSA installation happens at kernel-level and is beyond the scope of this document; please look for some guidance here. I will assume that you already have a working ALSA installation for your hardware.&lt;br /&gt;&lt;br /&gt;First place to go is configuration file ~/.asoundrc (basic docs can be found here).&lt;br /&gt;&lt;br /&gt;Edit the file so that it contains something like this:&lt;br /&gt;&lt;br /&gt;pcm.!default {&lt;br /&gt;type plug&lt;br /&gt;slave.pcm "swmixer"&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;pcm.swmixer {&lt;br /&gt;type dmix&lt;br /&gt;ipc_key 1234&lt;br /&gt;slave {&lt;br /&gt;pcm "hw:0,0"&lt;br /&gt;period_time 0&lt;br /&gt;period_size 1024&lt;br /&gt;buffer_size 4096&lt;br /&gt;rate 44100&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;We have just created two multichannel-enabled devices default and swmixer (NOTE: this configuration is based on the contribution from Kalin Kozhiharov to the nForce section of ALSA documentation).&lt;br /&gt;&lt;br /&gt;Now, all we have to do is configure apps to use ALSA and to use swmixer as the audio device.&lt;br /&gt;Testing&lt;br /&gt;&lt;br /&gt;In order to test the newly created mixing device, you could try:&lt;br /&gt;&lt;br /&gt;aplay -Dplug:swmixer soundfile&lt;br /&gt;&lt;br /&gt;If this works, great, basic functionality is there. Now, to the fun part: try the above command with a lengthy sound file on a window, and try it again on another window, a few seconds apart. If none of them block and no error messages are printed on the terminals, you should hear both sounds files playing concurrently. If this happened, congratulations: you've just mixed your first sound samples =)&lt;br /&gt;&lt;br /&gt;NOTE: you will have to install alsa-utils package in order to have access to aplay&lt;br /&gt;XMMS&lt;br /&gt;&lt;br /&gt;   1. open configuration dialog (CTRL+P)&lt;br /&gt;   2. choose "ALSA x.x.x output plugin [libALSA.so]"&lt;br /&gt;   3. press "Configure" button for advanced configuration&lt;br /&gt;   4. check the "user defined" toggle&lt;br /&gt;   5. replace whatever is on the textbox for your new device swmixer (leave other settings untouched)&lt;br /&gt;&lt;br /&gt;Hopefully xmms is now configured to send sound data to your mixing device. Try playing anything (MP3, Ogg etc.) with xmms; if it works, congratulations, xmms is properly configured.&lt;br /&gt;&lt;br /&gt;NOTE: the above procedure can be performed for any output plugin you use (e.g. Crossfade) as long as the plugin itself is configured to send output to ALSA as described.&lt;br /&gt;Xine&lt;br /&gt;&lt;br /&gt;Xine can be configured two ways: directly on the config file (~/.xine/config) or via the GUI. I will address both options:&lt;br /&gt;&lt;br /&gt;configuration file&lt;br /&gt;&lt;br /&gt;    there are many audio-related settings on the configuration file, and specifically some ALSA settings (they all begin with audio.alsa.*) the ones that need to be changed are audio.alsa_default_device and audio.alsa_front_device.&lt;br /&gt;&lt;br /&gt;    You must point these settings to your new mixing device (swmixer). Mine looks like this:&lt;br /&gt;&lt;br /&gt;# device used for mono output&lt;br /&gt;# string, default: default&lt;br /&gt;audio.alsa_default_device:swmixer&lt;br /&gt;&lt;br /&gt;# device used for stereo output&lt;br /&gt;# string, default: front&lt;br /&gt;audio.alsa_front_device:swmixer&lt;br /&gt;&lt;br /&gt;    Another setting that needs to be adjusted is gui.audio_mixer_method:&lt;br /&gt;&lt;br /&gt;# Audio mixer control method&lt;br /&gt;# { Sound card  Software }, default: 0&lt;br /&gt;gui.audio_mixer_method:Software&lt;br /&gt;&lt;br /&gt;GUI&lt;br /&gt;&lt;br /&gt;    advanced settings are hidden by default, and you must set Configuration experience level on the gui tab of xine preferences dialog to Advanced.&lt;br /&gt;&lt;br /&gt;    After this, scroll down on the same tab and set Audio mixer control method to Software. Last, go to audio tab and set device used for mono output and device used for stereo output to swmixer.&lt;br /&gt;&lt;br /&gt;This should do the trick. Now, test it by playing a movie while your newly-configured xmms is playing some music, and you will hear both sounds merged.&lt;br /&gt;&lt;br /&gt;NOTE: the above setup refers to a standard 2-speaker setup, but you can configure xine for more advanced audio setups like 5.1-channel output. Refer to xine documentation if you need to do it.&lt;br /&gt;gaim&lt;br /&gt;&lt;br /&gt;On gaim's preferences dialog, go to Sounds section, and choose Command on the Sound method setting. Then, on the Sound command textbox, enter:&lt;br /&gt;&lt;br /&gt;aplay -Dplug:swmixer %s&lt;br /&gt;&lt;br /&gt;Now gaim won't hang anymore whenever it plays a sound.&lt;br /&gt;General tips&lt;br /&gt;&lt;br /&gt;    * Any application that allows configuration of an external player application can be configured to use aplay as shown above (I did it for example with GKrellM)&lt;br /&gt;    * applications that have ALSA support builtin (usually) can be configured to use a device different than the default&lt;br /&gt;&lt;br /&gt;Final Words&lt;br /&gt;&lt;br /&gt;This was not the ultimate sound mixing configuration that can be done -- in fact, it is no more than a working solution, maybe there are other better ways of accomplishing the same. JACK is a project which should be followed closely by those interested in working with sound and/or getting the best for their hardware; its development is evolving very fast, and when a stable version arrives it will probably become mainstream (ALSA can already be configured to use JACK).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111042018466412520?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111042018466412520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111042018466412520' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111042018466412520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111042018466412520'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/sound-mixing-with-alsa.html' title='Sound Mixing with ALSA'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111038134245353607</id><published>2005-03-09T23:15:00.000+08:00</published><updated>2005-03-10T10:08:39.570+08:00</updated><title type='text'>中文输入法支持</title><content type='html'>emerge fcitx&lt;br /&gt;Then put the following environmental variables in &lt;span style="color: rgb(204, 0, 0);"&gt;/etc/env.d/99local&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;XMODIFIERS="@im=fcitx"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;XIM=fcitx&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;XIM_PROGRAM=fcitx&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;LC_CTYPE="zh_CN"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Finally, don't forget to run env-update&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111038134245353607?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111038134245353607/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111038134245353607' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111038134245353607'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111038134245353607'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/blog-post.html' title='中文输入法支持'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111037734611681913</id><published>2005-03-09T22:09:00.000+08:00</published><updated>2005-03-09T22:09:06.116+08:00</updated><title type='text'>大幅提高 firefox 页面加载速度</title><content type='html'>步骤:&lt;br /&gt;&lt;br /&gt;   1. 先在地址栏键入about:config&lt;br /&gt;   2. 设置 "network.http.pipelining" 为 "true"&lt;br /&gt;   3. 设置 "network.http.proxy.pipelining" 为 "true"&lt;br /&gt;   4. 设置 "network.http.pipelining.maxrequests" 为 30&lt;br /&gt;   5. 单击右键，选择新建-&gt;整数,命名为 nglayout.initialpaint.delay ,值为 0&lt;br /&gt;&lt;br /&gt;OK.&lt;br /&gt;&lt;br /&gt;限制：如果是拨号上网的话，就算了，只要针对宽带用户。&lt;br /&gt;&lt;br /&gt;原作者: simonhuan&lt;br /&gt;&lt;br /&gt;转自: http://www.linuxsir.org/bbs/showthread.php?t=168799&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111037734611681913?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111037734611681913/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111037734611681913' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111037734611681913'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111037734611681913'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/firefox.html' title='大幅提高 firefox 页面加载速度'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111037462540264663</id><published>2005-03-09T21:23:00.000+08:00</published><updated>2005-03-09T21:23:45.403+08:00</updated><title type='text'>Liferea Feed Reader</title><content type='html'>A free news aggregator for both Linux and Win.&lt;br /&gt;emerge liferea&lt;br /&gt;&lt;br /&gt;Enjoy!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111037462540264663?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111037462540264663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111037462540264663' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111037462540264663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111037462540264663'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/liferea-feed-reader.html' title='Liferea Feed Reader'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111036846904179864</id><published>2005-03-09T19:39:00.000+08:00</published><updated>2005-03-09T19:57:54.293+08:00</updated><title type='text'>/etc/fonts/font.conf</title><content type='html'>&amp;lt ?xml version="1.0"? &amp;gt &lt;br /&gt;&amp;lt !DOCTYPE fontconfig SYSTEM "fonts.dtd" &amp;gt &lt;br /&gt;&amp;lt !-- /etc/fonts/fonts.conf file to configure system font access -- &amp;gt &lt;br /&gt;&amp;lt fontconfig &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt !--&lt;br /&gt; DO NOT EDIT THIS FILE.&lt;br /&gt; IT WILL BE REPLACED WHEN FONTCONFIG IS UPDATED.&lt;br /&gt; LOCAL CHANGES BELONG IN 'local.conf'.&lt;br /&gt;&lt;br /&gt; The intent of this standard configuration file is to be adequate for&lt;br /&gt; most environments.  If you have a reasonably normal environment and&lt;br /&gt; have found problems with this configuration, they are probably&lt;br /&gt; things that others will also want fixed.  Please submit any&lt;br /&gt; problems to the fontconfig bugzilla system located at fontconfig.org&lt;br /&gt;&lt;br /&gt; Note that the normal 'make install' procedure for fontconfig is to&lt;br /&gt; replace any existing fonts.conf file with the new version.  Place&lt;br /&gt; any local customizations in local.conf which this file references.&lt;br /&gt;&lt;br /&gt; Keith Packard&lt;br /&gt;-- &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt !-- Font directory list configured on  -- &amp;gt &lt;br /&gt; &amp;lt dir &amp;gt /usr/share/fonts/Win&amp;lt /dir &amp;gt &lt;br /&gt; &amp;lt dir &amp;gt /usr/X11R6/lib/X11/fonts/Type1&amp;lt /dir &amp;gt &lt;br /&gt; &lt;br /&gt; &amp;lt dir &amp;gt /usr/share/fonts&amp;lt /dir &amp;gt &lt;br /&gt; &amp;lt dir &amp;gt /usr/local/share/fonts&amp;lt /dir &amp;gt &lt;br /&gt; &amp;lt dir &amp;gt /usr/X11R6/lib/X11/fonts/75dpi&amp;lt /dir &amp;gt &lt;br /&gt; &amp;lt dir &amp;gt /usr/X11R6/lib/X11/fonts/100dpi&amp;lt /dir &amp;gt &lt;br /&gt; &amp;lt dir &amp;gt ~/.fonts&amp;lt /dir &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt !--&lt;br /&gt;  Accept deprecated 'mono' alias, replacing it with 'monospace'&lt;br /&gt;-- &amp;gt &lt;br /&gt; &amp;lt match target="pattern" &amp;gt &lt;br /&gt;  &amp;lt test qual="any" name="family" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt mono&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt edit name="family" mode="assign" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt monospace&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt !--&lt;br /&gt;  Accept alternate 'sans serif' spelling, replacing it with 'sans-serif'&lt;br /&gt;-- &amp;gt &lt;br /&gt; &amp;lt match target="pattern" &amp;gt &lt;br /&gt;  &amp;lt test qual="any" name="family" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt sans serif&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt edit name="family" mode="assign" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt sans-serif&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt !--&lt;br /&gt;  Accept deprecated 'sans' alias, replacing it with 'sans-serif'&lt;br /&gt;-- &amp;gt &lt;br /&gt; &amp;lt match target="pattern" &amp;gt &lt;br /&gt;  &amp;lt test qual="any" name="family" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt sans&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt edit name="family" mode="assign" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt sans-serif&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt !--&lt;br /&gt;  Mark common families with their generics so we'll get&lt;br /&gt;  something reasonable&lt;br /&gt;-- &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt !--&lt;br /&gt;  Serif faces&lt;br /&gt; -- &amp;gt &lt;br /&gt; &amp;lt alias &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Tahoma&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt SimSun&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Bitstream Vera Serif&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Times&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Times New Roman&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Nimbus Roman No9 L&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Luxi Serif&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Kochi Mincho&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt AR PL SungtiL GB&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt AR PL Mingti2L Big5&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Baekmuk Batang&amp;lt /family &amp;gt    &lt;br /&gt;  &amp;lt default &amp;gt &amp;lt family &amp;gt serif&amp;lt /family &amp;gt &amp;lt /default &amp;gt &lt;br /&gt; &amp;lt /alias &amp;gt &lt;br /&gt;&amp;lt !--&lt;br /&gt;  Sans-serif faces&lt;br /&gt; -- &amp;gt &lt;br /&gt; &amp;lt alias &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Tahoma&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Bitstream Vera Sans&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Helvetica&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Arial&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Verdana&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Nimbus Sans L&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Luxi Sans&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Kochi Gothic&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt AR PL KaitiM GB&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt AR PL KaitiM Big5&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Baekmuk Dotum&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt SimSun&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt default &amp;gt &amp;lt family &amp;gt sans-serif&amp;lt /family &amp;gt &amp;lt /default &amp;gt &lt;br /&gt; &amp;lt /alias &amp;gt &lt;br /&gt;&amp;lt !--&lt;br /&gt;  Monospace faces&lt;br /&gt; -- &amp;gt &lt;br /&gt;  &amp;lt alias &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Tahoma&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Bitstream Vera Sans Mono&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Courier&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Courier New&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Andale Mono&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Luxi Mono&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Nimbus Mono L&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt NSimSun&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt default &amp;gt &amp;lt family &amp;gt monospace&amp;lt /family &amp;gt &amp;lt /default &amp;gt &lt;br /&gt; &amp;lt /alias &amp;gt &lt;br /&gt;&amp;lt !--&lt;br /&gt;  If the font still has no generic name, add sans-serif&lt;br /&gt; -- &amp;gt &lt;br /&gt; &amp;lt match target="pattern" &amp;gt &lt;br /&gt;  &amp;lt test qual="all" name="family" compare="not_eq" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt Tahoma&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt test qual="all" name="family" compare="not_eq" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt sans-serif&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt test qual="all" name="family" compare="not_eq" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt serif&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt test qual="all" name="family" compare="not_eq" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt monospace&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt edit name="family" mode="append_last" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt sans-serif&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt; &lt;br /&gt;&amp;lt !--&lt;br /&gt;  Some Asian fonts misadvertise themselves as monospaced when&lt;br /&gt;  in fact they are dual-spaced (half and full).  This makes&lt;br /&gt;  FreeType very confused as it forces all widths to match.&lt;br /&gt;  Undo this magic by disabling the width forcing code -- &amp;gt &lt;br /&gt; &amp;lt match target="font" &amp;gt &lt;br /&gt;  &amp;lt test name="family" &amp;gt &amp;lt string &amp;gt GulimChe&amp;lt /string &amp;gt &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt edit name="globaladvance" &amp;gt &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt; &lt;br /&gt; &amp;lt match target="font" &amp;gt &lt;br /&gt;  &amp;lt test name="family" &amp;gt &amp;lt string &amp;gt DotumChe&amp;lt /string &amp;gt &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt edit name="globaladvance" &amp;gt &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt;&lt;br /&gt; &amp;lt match target="font" &amp;gt &lt;br /&gt;  &amp;lt test name="family" &amp;gt &amp;lt string &amp;gt BatangChe&amp;lt /string &amp;gt &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt edit name="globaladvance" &amp;gt &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt;&lt;br /&gt; &amp;lt match target="font" &amp;gt &lt;br /&gt;  &amp;lt test name="family" &amp;gt &amp;lt string &amp;gt GungsuhChe&amp;lt /string &amp;gt &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt edit name="globaladvance" &amp;gt &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt !-- &lt;br /&gt; The Bitstream Vera fonts have GASP entries suggesting that hinting be&lt;br /&gt; disabled below 8 ppem, but FreeType ignores those, preferring to use&lt;br /&gt; the data found in the instructed hints.  The initial Vera release&lt;br /&gt; didn't include the right instructions in the 'prep' table. Fix this&lt;br /&gt; by disabling hinting manually at smaller sizes (&amp;lt  8ppem)&lt;br /&gt; -- &amp;gt &lt;br /&gt; &lt;br /&gt; &amp;lt match target="font" &amp;gt &lt;br /&gt;  &amp;lt test name="family" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt Bitstream Vera Sans&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt test name="pixelsize" compare="less" &amp;gt &lt;br /&gt;   &amp;lt double &amp;gt 7.5&amp;lt /double &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt edit name="hinting" &amp;gt &lt;br /&gt;   &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;  &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt; &lt;br /&gt; &amp;lt match target="font" &amp;gt &lt;br /&gt;  &amp;lt test name="family" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt Bitstream Vera Serif&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt test name="pixelsize" compare="less" &amp;gt &lt;br /&gt;   &amp;lt double &amp;gt 7.5&amp;lt /double &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt edit name="hinting" &amp;gt &lt;br /&gt;   &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;  &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt; &lt;br /&gt; &amp;lt match target="font" &amp;gt &lt;br /&gt;  &amp;lt test name="family" &amp;gt &lt;br /&gt;   &amp;lt string &amp;gt Bitstream Vera Sans Mono&amp;lt /string &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt test name="pixelsize" compare="less" &amp;gt &lt;br /&gt;   &amp;lt double &amp;gt 7.5&amp;lt /double &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt edit name="hinting" &amp;gt &lt;br /&gt;   &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;  &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt; &lt;br /&gt;&amp;lt !--&lt;br /&gt;  Load per-user customization file&lt;br /&gt;-- &amp;gt &lt;br /&gt; &amp;lt include ignore_missing="yes" &amp;gt ~/.fonts.conf&amp;lt /include &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt !--&lt;br /&gt;  Load local system customization file&lt;br /&gt;-- &amp;gt &lt;br /&gt; &amp;lt include ignore_missing="yes" &amp;gt local.conf&amp;lt /include &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt !--&lt;br /&gt;  Alias well known font names to available TrueType fonts&lt;br /&gt;-- &amp;gt &lt;br /&gt; &amp;lt alias &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Times&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt accept &amp;gt &amp;lt family &amp;gt Times New Roman&amp;lt /family &amp;gt &amp;lt /accept &amp;gt &lt;br /&gt; &amp;lt /alias &amp;gt &lt;br /&gt; &amp;lt alias &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Helvetica&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt accept &amp;gt &amp;lt family &amp;gt Verdana&amp;lt /family &amp;gt &amp;lt /accept &amp;gt &lt;br /&gt; &amp;lt /alias &amp;gt &lt;br /&gt; &amp;lt alias &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Arial&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt accept &amp;gt &amp;lt family &amp;gt Verdana&amp;lt /family &amp;gt &amp;lt /accept &amp;gt &lt;br /&gt; &amp;lt /alias &amp;gt &lt;br /&gt; &amp;lt alias &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt Courier&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt accept &amp;gt &amp;lt family &amp;gt Courier New&amp;lt /family &amp;gt &amp;lt /accept &amp;gt &lt;br /&gt; &amp;lt /alias &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt !--&lt;br /&gt; Check user preference to avoid bitmap fonts and replace&lt;br /&gt; bitmap face names with equivalent scalable fonts&lt;br /&gt; -- &amp;gt &lt;br /&gt;&lt;br /&gt; &amp;lt match target="pattern" &amp;gt &lt;br /&gt;         &amp;lt test name="prefer_outline" &amp;gt &lt;br /&gt;                 &amp;lt bool &amp;gt true&amp;lt /bool &amp;gt &lt;br /&gt;         &amp;lt /test &amp;gt &lt;br /&gt;         &amp;lt test name="family" &amp;gt &lt;br /&gt;                 &amp;lt string &amp;gt Helvetica&amp;lt /string &amp;gt &lt;br /&gt;         &amp;lt /test &amp;gt &lt;br /&gt;         &amp;lt edit name="family" mode="prepend" binding="same" &amp;gt &lt;br /&gt;                 &amp;lt string &amp;gt Arial&amp;lt /string &amp;gt &lt;br /&gt;         &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt;&lt;br /&gt; &amp;lt match target="pattern" &amp;gt &lt;br /&gt;         &amp;lt test name="prefer_outline" &amp;gt &lt;br /&gt;                 &amp;lt bool &amp;gt true&amp;lt /bool &amp;gt &lt;br /&gt;         &amp;lt /test &amp;gt &lt;br /&gt;         &amp;lt test name="family" &amp;gt &lt;br /&gt;                 &amp;lt string &amp;gt Times&amp;lt /string &amp;gt &lt;br /&gt;         &amp;lt /test &amp;gt &lt;br /&gt;         &amp;lt edit name="family" mode="prepend" binding="same" &amp;gt &lt;br /&gt;                 &amp;lt string &amp;gt Times New Roman&amp;lt /string &amp;gt &lt;br /&gt;         &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt;&amp;lt !--&lt;br /&gt;  Provide required aliases for standard names&lt;br /&gt;-- &amp;gt &lt;br /&gt; &amp;lt alias &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt serif&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt prefer &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Tahoma&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt SimSun &amp;gt &amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Bitstream Vera Serif&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Times New Roman&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Nimbus Roman No9 L&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Luxi Serif&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Times&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Kochi Mincho&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt AR PL SungtiL GB&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt AR PL Mingti2L Big5&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Baekmuk Batang&amp;lt /family &amp;gt    &lt;br /&gt;  &amp;lt /prefer &amp;gt &lt;br /&gt; &amp;lt /alias &amp;gt &lt;br /&gt; &amp;lt alias &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt sans-serif&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt prefer &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Tahoma&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Bitstream Vera Sans&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Verdana&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Nimbus Sans L&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Luxi Sans&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Arial&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Helvetica&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Kochi Gothic&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt AR PL KaitiM GB&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt AR PL KaitiM Big5&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Baekmuk Dotum&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt SimSun&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt /prefer &amp;gt &lt;br /&gt; &amp;lt /alias &amp;gt &lt;br /&gt; &amp;lt alias &amp;gt &lt;br /&gt;  &amp;lt family &amp;gt monospace&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt prefer &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Tahoma&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt SimSun &amp;gt &amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Bitstream Vera Sans Mono&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Andale Mono&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Courier New&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Luxi Mono&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Nimbus Mono L&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Kochi Gothic&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt AR PL KaitiM GB&amp;lt /family &amp;gt &lt;br /&gt;   &amp;lt family &amp;gt Baekmuk Dotum&amp;lt /family &amp;gt &lt;br /&gt;  &amp;lt /prefer &amp;gt &lt;br /&gt; &amp;lt /alias &amp;gt &lt;br /&gt;&amp;lt !--&lt;br /&gt;  We can't hint CJK fonts well, so turn off hinting for CJK fonts.&lt;br /&gt;  -- &amp;gt &lt;br /&gt; &lt;br /&gt;    &amp;lt match target="font" &amp;gt &lt;br /&gt;       &amp;lt test name="family" compare="eq" &amp;gt &lt;br /&gt;          &amp;lt string &amp;gt Kochi Mincho&amp;lt /string &amp;gt &lt;br /&gt;       &amp;lt /test &amp;gt &lt;br /&gt;       &amp;lt edit name="hinting" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;                 &amp;lt !-- the rh_prefer_bitmaps options (a nonstandard&lt;br /&gt;                      Red Hat extension), controls whether embedded&lt;br /&gt;                      bitmaps, when available are preferred&lt;br /&gt;                      to antialiased rendering. For Japanese,&lt;br /&gt;                      we prefer antialiased rendering -- &amp;gt &lt;br /&gt;       &amp;lt edit name="rh_prefer_bitmaps" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;    &amp;lt /match &amp;gt &lt;br /&gt;    &amp;lt match target="font" &amp;gt &lt;br /&gt;       &amp;lt test name="family" compare="eq" &amp;gt &lt;br /&gt;          &amp;lt string &amp;gt Kochi Gothic&amp;lt /string &amp;gt &lt;br /&gt;       &amp;lt /test &amp;gt &lt;br /&gt;       &amp;lt edit name="hinting" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;       &amp;lt edit name="rh_prefer_bitmaps" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;    &amp;lt /match &amp;gt &lt;br /&gt;    &amp;lt match target="font" &amp;gt &lt;br /&gt;       &amp;lt test name="family" compare="eq" &amp;gt &lt;br /&gt;          &amp;lt string &amp;gt Baekmuk Batang&amp;lt /string &amp;gt &lt;br /&gt;       &amp;lt /test &amp;gt &lt;br /&gt;       &amp;lt edit name="hinting" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;    &amp;lt /match &amp;gt &lt;br /&gt;    &amp;lt match target="font" &amp;gt &lt;br /&gt;       &amp;lt test name="family" compare="eq" &amp;gt &lt;br /&gt;          &amp;lt string &amp;gt Baekmuk Dotum&amp;lt /string &amp;gt &lt;br /&gt;       &amp;lt /test &amp;gt &lt;br /&gt;       &amp;lt edit name="hinting" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;    &amp;lt /match &amp;gt &lt;br /&gt;    &amp;lt match target="font" &amp;gt &lt;br /&gt;       &amp;lt test name="family" compare="eq" &amp;gt &lt;br /&gt;          &amp;lt string &amp;gt Baekmuk Gulim&amp;lt /string &amp;gt &lt;br /&gt;       &amp;lt /test &amp;gt &lt;br /&gt;       &amp;lt edit name="hinting" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;    &amp;lt /match &amp;gt &lt;br /&gt;    &amp;lt match target="font" &amp;gt &lt;br /&gt;       &amp;lt test name="family" compare="eq" &amp;gt &lt;br /&gt;          &amp;lt string &amp;gt Baekmuk Headline&amp;lt /string &amp;gt &lt;br /&gt;       &amp;lt /test &amp;gt &lt;br /&gt;       &amp;lt edit name="hinting" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;    &amp;lt /match &amp;gt &lt;br /&gt;    &amp;lt match target="font" &amp;gt &lt;br /&gt;       &amp;lt test name="family" compare="eq" &amp;gt &lt;br /&gt;          &amp;lt string &amp;gt SimSun&amp;lt /string &amp;gt &lt;br /&gt;       &amp;lt /test &amp;gt &lt;br /&gt;       &amp;lt edit name="hinting" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;    &amp;lt /match &amp;gt &lt;br /&gt;    &amp;lt match target="font" &amp;gt &lt;br /&gt;       &amp;lt test name="family" compare="eq" &amp;gt &lt;br /&gt;          &amp;lt string &amp;gt AR PL Mingti2L Big5&amp;lt /string &amp;gt &lt;br /&gt;       &amp;lt /test &amp;gt &lt;br /&gt;       &amp;lt edit name="hinting" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;    &amp;lt /match &amp;gt &lt;br /&gt;    &amp;lt match target="font" &amp;gt &lt;br /&gt;       &amp;lt test name="family" compare="eq" &amp;gt &lt;br /&gt;          &amp;lt string &amp;gt AR PL KaitiM Big5&amp;lt /string &amp;gt &lt;br /&gt;       &amp;lt /test &amp;gt &lt;br /&gt;       &amp;lt edit name="hinting" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;    &amp;lt /match &amp;gt &lt;br /&gt;    &amp;lt match target="font" &amp;gt &lt;br /&gt;       &amp;lt test name="family" compare="eq" &amp;gt &lt;br /&gt;          &amp;lt string &amp;gt AR PL SungtiL GB&amp;lt /string &amp;gt &lt;br /&gt;       &amp;lt /test &amp;gt &lt;br /&gt;       &amp;lt edit name="hinting" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;    &amp;lt /match &amp;gt &lt;br /&gt;    &amp;lt match target="font" &amp;gt &lt;br /&gt;       &amp;lt test name="family" compare="eq" &amp;gt &lt;br /&gt;          &amp;lt string &amp;gt AR PL KaitiM GB&amp;lt /string &amp;gt &lt;br /&gt;       &amp;lt /test &amp;gt &lt;br /&gt;       &amp;lt edit name="hinting" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;    &amp;lt /match &amp;gt &lt;br /&gt;    &amp;lt match target="font" &amp;gt &lt;br /&gt;       &amp;lt test name="family" compare="eq" &amp;gt &lt;br /&gt;          &amp;lt string &amp;gt ZYSong18030 &amp;gt &amp;lt /string &amp;gt &lt;br /&gt;       &amp;lt /test &amp;gt &lt;br /&gt;       &amp;lt edit name="hinting" mode="assign" &amp;gt &lt;br /&gt;          &amp;lt bool &amp;gt false&amp;lt /bool &amp;gt &lt;br /&gt;       &amp;lt /edit &amp;gt &lt;br /&gt;    &amp;lt /match &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt !-- &lt;br /&gt; Artificial oblique for fonts without an italic or oblique version&lt;br /&gt; -- &amp;gt &lt;br /&gt; &lt;br /&gt; &amp;lt match target="font" &amp;gt &lt;br /&gt;  &amp;lt !-- check to see if the font is roman -- &amp;gt &lt;br /&gt;  &amp;lt test name="slant" &amp;gt &lt;br /&gt;   &amp;lt const &amp;gt roman&amp;lt /const &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt !-- check to see if the pattern requested non-roman -- &amp;gt &lt;br /&gt;  &amp;lt test target="pattern" name="slant" compare="not_eq" &amp;gt &lt;br /&gt;   &amp;lt const &amp;gt roman&amp;lt /const &amp;gt &lt;br /&gt;  &amp;lt /test &amp;gt &lt;br /&gt;  &amp;lt !-- multiply the matrix to slant the font -- &amp;gt &lt;br /&gt;  &amp;lt edit name="matrix" mode="assign" &amp;gt &lt;br /&gt;   &amp;lt times &amp;gt &lt;br /&gt;    &amp;lt name &amp;gt matrix&amp;lt /name &amp;gt &lt;br /&gt;    &amp;lt matrix &amp;gt &amp;lt double &amp;gt 1&amp;lt /double &amp;gt &amp;lt double &amp;gt 0.2&amp;lt /double &amp;gt &lt;br /&gt;     &amp;lt double &amp;gt 0&amp;lt /double &amp;gt &amp;lt double &amp;gt 1&amp;lt /double &amp;gt &lt;br /&gt;    &amp;lt /matrix &amp;gt &lt;br /&gt;   &amp;lt /times &amp;gt &lt;br /&gt;  &amp;lt /edit &amp;gt &lt;br /&gt;  &amp;lt !-- pretend the font is oblique now -- &amp;gt &lt;br /&gt;  &amp;lt edit name="slant" mode="assign" &amp;gt &lt;br /&gt;   &amp;lt const &amp;gt oblique&amp;lt /const &amp;gt &lt;br /&gt;  &amp;lt /edit &amp;gt &lt;br /&gt; &amp;lt /match &amp;gt &lt;br /&gt;&lt;br /&gt; &amp;lt config &amp;gt &lt;br /&gt;&amp;lt !--&lt;br /&gt;  These are the default Unicode chars that are expected to be blank&lt;br /&gt;  in fonts.  All other blank chars are assumed to be broken and&lt;br /&gt;  won't appear in the resulting charsets&lt;br /&gt; -- &amp;gt &lt;br /&gt;  &amp;lt blank &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x0020&amp;lt /int &amp;gt  &amp;lt !-- SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x00a0&amp;lt /int &amp;gt  &amp;lt !-- NO-BREAK SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x00ad&amp;lt /int &amp;gt  &amp;lt !-- SOFT HYPHEN -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x115f&amp;lt /int &amp;gt  &amp;lt !-- HANGUL CHOSEONG FILLER -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x1160&amp;lt /int &amp;gt  &amp;lt !-- HANGUL JUNGSEONG FILLER -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x1680&amp;lt /int &amp;gt  &amp;lt !-- OGHAM SPACE MARK -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2000&amp;lt /int &amp;gt  &amp;lt !-- EN QUAD -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2001&amp;lt /int &amp;gt  &amp;lt !-- EM QUAD -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2002&amp;lt /int &amp;gt  &amp;lt !-- EN SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2003&amp;lt /int &amp;gt  &amp;lt !-- EM SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2004&amp;lt /int &amp;gt  &amp;lt !-- THREE-PER-EM SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2005&amp;lt /int &amp;gt  &amp;lt !-- FOUR-PER-EM SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2006&amp;lt /int &amp;gt  &amp;lt !-- SIX-PER-EM SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2007&amp;lt /int &amp;gt  &amp;lt !-- FIGURE SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2008&amp;lt /int &amp;gt  &amp;lt !-- PUNCTUATION SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2009&amp;lt /int &amp;gt  &amp;lt !-- THIN SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x200a&amp;lt /int &amp;gt  &amp;lt !-- HAIR SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x200b&amp;lt /int &amp;gt  &amp;lt !-- ZERO WIDTH SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x200c&amp;lt /int &amp;gt  &amp;lt !-- ZERO WIDTH NON-JOINER -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x200d&amp;lt /int &amp;gt  &amp;lt !-- ZERO WIDTH JOINER -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x200e&amp;lt /int &amp;gt  &amp;lt !-- LEFT-TO-RIGHT MARK -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x200f&amp;lt /int &amp;gt  &amp;lt !-- RIGHT-TO-LEFT MARK -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2028&amp;lt /int &amp;gt  &amp;lt !-- LINE SEPARATOR -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2029&amp;lt /int &amp;gt  &amp;lt !-- PARAGRAPH SEPARATOR -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x202a&amp;lt /int &amp;gt  &amp;lt !-- LEFT-TO-RIGHT EMBEDDING -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x202b&amp;lt /int &amp;gt  &amp;lt !-- RIGHT-TO-LEFT EMBEDDING -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x202c&amp;lt /int &amp;gt  &amp;lt !-- POP DIRECTIONAL FORMATTING -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x202d&amp;lt /int &amp;gt  &amp;lt !-- LEFT-TO-RIGHT OVERRIDE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x202e&amp;lt /int &amp;gt  &amp;lt !-- RIGHT-TO-LEFT OVERRIDE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x202f&amp;lt /int &amp;gt  &amp;lt !-- NARROW NO-BREAK SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x205f&amp;lt /int &amp;gt  &amp;lt !-- MEDIUM MATHEMATICAL SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2060&amp;lt /int &amp;gt  &amp;lt !-- WORD JOINER -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2061&amp;lt /int &amp;gt  &amp;lt !-- FUNCTION APPLICATION -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2062&amp;lt /int &amp;gt  &amp;lt !-- INVISIBLE TIMES -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x2063&amp;lt /int &amp;gt  &amp;lt !-- INVISIBLE SEPARATOR -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x206A&amp;lt /int &amp;gt  &amp;lt !-- INHIBIT SYMMETRIC SWAPPING -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x206B&amp;lt /int &amp;gt  &amp;lt !-- ACTIVATE SYMMETRIC SWAPPING -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x206C&amp;lt /int &amp;gt  &amp;lt !-- INHIBIT ARABIC FORM SHAPING -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x206D&amp;lt /int &amp;gt  &amp;lt !-- ACTIVATE ARABIC FORM SHAPING -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x206E&amp;lt /int &amp;gt  &amp;lt !-- NATIONAL DIGIT SHAPES -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x206F&amp;lt /int &amp;gt  &amp;lt !-- NOMINAL DIGIT SHAPES -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x3000&amp;lt /int &amp;gt  &amp;lt !-- IDEOGRAPHIC SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0x3164&amp;lt /int &amp;gt  &amp;lt !-- HANGUL FILLER -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0xfeff&amp;lt /int &amp;gt  &amp;lt !-- ZERO WIDTH NO-BREAK SPACE -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0xffa0&amp;lt /int &amp;gt  &amp;lt !-- HALFWIDTH HANGUL FILLER -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0xfff9&amp;lt /int &amp;gt  &amp;lt !-- INTERLINEAR ANNOTATION ANCHOR -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0xfffa&amp;lt /int &amp;gt  &amp;lt !-- INTERLINEAR ANNOTATION SEPARATOR -- &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 0xfffb&amp;lt /int &amp;gt  &amp;lt !-- INTERLINEAR ANNOTATION TERMINATOR -- &amp;gt &lt;br /&gt;  &amp;lt /blank &amp;gt &lt;br /&gt;&amp;lt !--&lt;br /&gt;  Rescan configuration every 30 seconds when FcFontSetList is called&lt;br /&gt; -- &amp;gt &lt;br /&gt;  &amp;lt rescan &amp;gt &lt;br /&gt;   &amp;lt int &amp;gt 30&amp;lt /int &amp;gt &lt;br /&gt;  &amp;lt /rescan &amp;gt &lt;br /&gt; &amp;lt /config &amp;gt &lt;br /&gt;&lt;br /&gt;&amp;lt /fontconfig &amp;gt&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111036846904179864?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111036846904179864/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111036846904179864' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111036846904179864'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111036846904179864'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/etcfontsfontconf.html' title='/etc/fonts/font.conf'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111036786699643038</id><published>2005-03-09T19:19:00.000+08:00</published><updated>2005-09-26T09:12:35.246+08:00</updated><title type='text'>Chinese localization for Gentoo</title><content type='html'>Objective: The system can displace Chinese characters almost as in Windows&lt;br /&gt;1. copy several fonts from $WINDOWS/fonts to Gentoo:&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;simsun&lt;/span&gt;, &lt;span style="color: rgb(153, 0, 0);"&gt;tahoma&lt;/span&gt;, etc., and put them under  a folder under &lt;span style="color: rgb(204, 0, 0);"&gt;/usr/share/fonts&lt;/span&gt;, (I created Win to hold them)&lt;br /&gt;2. Tell X and Xft to locate the new fonts:&lt;br /&gt;edit &lt;span style="color: rgb(204, 0, 0);"&gt;/etc/X11/fs/config&lt;/span&gt;:&lt;br /&gt;..&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;/usr/share/fonts/truetype,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;/usr/share/fonts/Win&lt;/span&gt;,&lt;br /&gt;..&lt;br /&gt;&lt;br /&gt;edit &lt;span style="color: rgb(204, 0, 0);"&gt;/etc/X11/xorg.conf&lt;/span&gt;:&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;Section "Files"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;..&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;FontPath "/usr/share/fonts/Win"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;..&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;EndSection&lt;/span&gt;&lt;br /&gt;also modify the Section Module in this file:&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;Section "Module"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;..&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;Load "xtt"&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);" class="postbody"&gt; Load        "type1"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;..&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;EndSection&lt;/span&gt;&lt;br /&gt;3. modify &lt;span style="color: rgb(204, 0, 0);"&gt;/etc/fonts/fonts.conf&lt;/span&gt; (refer to the attachment)&lt;br /&gt;&lt;br /&gt;4. modify &lt;span style="color: rgb(204, 0, 0);"&gt;/etc/gtk/gtkrc.zh_CN&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt; fontset = "-microsoft-verdana-medium-r-normal--12-*-*-*-*-*-iso8859-1, -misc-simsun-medium-r-normal--12-*-*-*-*-*-gbk-0,*-r-*"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;5. modify &lt;span class="postbody"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;/etc/fonts/local.conf&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;&lt;match target="pattern"&gt; &lt;/match&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;test name="family"&gt; &lt;/test&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;string&gt;SimSun&lt;/string&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;test name="weight" compare="more_eq"&gt; &lt;/test&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;const&gt;bold&lt;/const&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;edit name="family" mode="assign"&gt; &lt;/edit&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;string&gt;SimHei&lt;/string&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;  &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;6. restart X&lt;br /&gt;7. for chinese display in Xmms, in Preference-&gt;Fonts, tick both "Use fontsets" and "Use x font"&lt;br /&gt;and replace the two textbox with&lt;br /&gt;&lt;span style="color: rgb(51, 204, 0);"&gt;-microsoft-verdana-medium-r-normal--12-*-*-*-*-*-iso8859-*,-misc-simsun-medium-r-normal--12-*-*-*-*-*-gbk-*&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;8. for qt program, use &lt;span style="color: rgb(51, 204, 0);"&gt;qtconfig&lt;/span&gt; to configure it&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111036786699643038?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://greenw.blogspot.com/feeds/111036786699643038/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=11289548&amp;postID=111036786699643038' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111036786699643038'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111036786699643038'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/chinese-localization-for-gentoo.html' title='Chinese localization for Gentoo'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-11289548.post-111020465070929563</id><published>2005-03-07T21:37:00.000+08:00</published><updated>2005-03-07T22:10:50.710+08:00</updated><title type='text'>Purpose of setting this blog</title><content type='html'>With the diversity in OS, browser, a problem arises as how to effectively achieve personal data reliably and most importantly: pervasively. Pervasive here means regardless of the device, OS， software, you can still achieve it corretly. Webpage is becoming the lonely island at the other end of various bridges from every corner of the world.&lt;br /&gt;&lt;br /&gt;Hope I can always find Internet available:)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/11289548-111020465070929563?l=greenw.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111020465070929563'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/11289548/posts/default/111020465070929563'/><link rel='alternate' type='text/html' href='http://greenw.blogspot.com/2005/03/purpose-of-setting-this-blog.html' title='Purpose of setting this blog'/><author><name>W.H.Q</name><uri>http://www.blogger.com/profile/09333376586201341474</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='16' src='http://static.flickr.com/32/53613926_4f3521e5fd.jpg?v=0'/></author></entry></feed>
