<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Computer Solutions Blog</title>
	<atom:link href="http://www.computersolutions.cn/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.computersolutions.cn/blog</link>
	<description>Whats happening at Computer Solutions</description>
	<lastBuildDate>Mon, 08 Mar 2010 20:48:16 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Dell Mini 3i / OPhone Hacking thoughts / notes</title>
		<link>http://www.computersolutions.cn/blog/2010/03/dell-mini-3i-ophone-hacking-thoughts-notes/</link>
		<comments>http://www.computersolutions.cn/blog/2010/03/dell-mini-3i-ophone-hacking-thoughts-notes/#comments</comments>
		<pubDate>Mon, 08 Mar 2010 20:48:16 +0000</pubDate>
		<dc:creator>Lawrence Sheed</dc:creator>
				<category><![CDATA[China Related]]></category>
		<category><![CDATA[Technical Mumbo Jumbo]]></category>
		<category><![CDATA[dell mini3i]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[mini3i]]></category>
		<category><![CDATA[ophone]]></category>

		<guid isPermaLink="false">http://www.computersolutions.cn/blog/?p=370</guid>
		<description><![CDATA[Currently I have an iPhone (ancient 2G), and have just bought a Dell Mini3i (600RMB with an 18month contract @ China Telecom), as I donated my 3G iPhone to one of the extended family back home.
The Mini3i runs an Android variant called OPhone.
The 3i is a little underwhelming software wise.
Its quite crap at the moment [...]]]></description>
			<content:encoded><![CDATA[<p>Currently I have an iPhone (ancient 2G), and have just bought a Dell Mini3i (600RMB with an 18month contract @ China Telecom), as I donated my 3G iPhone to one of the extended family back home.</p>
<p>The Mini3i runs an Android variant called OPhone.</p>
<p>The 3i is a little underwhelming software wise.</p>
<p>Its quite crap at the moment as its sitting on Android 1.0 (OPhone 1.0), but for all intents and purposes Android = Ophone its pretty much the same underneath.</p>
<p>There are a bunch of similar phones to this &#8211; the Lenovo O1, LG GW880, Motorola something or other (can&#8217;t be hassled to go look) etc.</p>
<p>While I haven&#8217;t rooted mine just yet, I have been playing around, and reading the Chinese forums.</p>
<p>Boot loader appears to be similar on all the devices &#8211; its made by BORQ&#8217;s in Beijing, and appears to be quite basic.</p>
<p>Motorola and O1 seem to have the best support for now, the main problem in the Chinese forums is people bitching about being stuck on older versions.</p>
<p>Some are running 1.6, most on 1.5, and the unlucky few 1.0 &#8220;Ophone&#8221;<br />
2.0 and 2.1 has yet to hit the mainstream here.</p>
<p>There are people with N1/G5&#8217;s (Nexus 1 / HTC G5) on 2.1 though (yes, thats you in Beijing Tom!), pretty much any phone is available, although anything with wifi is essentially grey import from overseas (HK mostly)</p>
<p>Back to the phone -</p>
<p>Thankfully you can install any apps as apk&#8217;s, no need to hack for that  &#8211; so its fairly easy to get info on the innards.</p>
<p>RootExplorer is your friend <img src='http://www.computersolutions.cn/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>RootExplorer also allows you to remount partitions r/w, so root access is fairly easy too.  There are precompiled su binaries for 1.5 out there, although I&#8217;ve yet to do my phone.</p>
<p>The Dell mini3 is running on a Marvell Tabor.  Fast chip, nice touchscreen, decent resolution, just crap on 1.0.  </p>
<p>Firmware files for most of the &#8220;ophones&#8221; (except motorola) are mff files.</p>
<p>The mff files appear to just be compressed images with instructions for how to write the various partitions out.</p>
<p>eg the Lenovo O1 mff has this in the &#8220;mff&#8221; zip </p>
<p>2010/02/25  10:53       147,111,936 factory_CHERRY.fbf<br />
2010/02/25  10:53               249 factory_CHERRY.mff.mlt<br />
2010/02/25  10:53               364 JADE_EVB_RawNANDx16.ini<br />
2010/02/25  10:53               327 magic_fbf.ini<br />
2010/02/25  10:53             2,692 magic_fbf_inner.ini<br />
2010/02/25  10:53        10,236,719 mfw.pac<br />
2010/02/25  10:53            54,180 MHLV_NTDKB_h.bin<br />
2010/02/25  10:53               176 MHLV_NTDKB_TIM.bin<br />
2010/02/25  10:53               858 NTIM_td.ini</p>
<p>magic_fbf_inner.ini has the layout</p>
<p>[INTEL_FLASH_DEVICE_INPUT_FILE]<br />
Number_of_Images=24</p>
<p>[IMAGE_HEADER_0]<br />
Start_Address=0&#215;240000<br />
Image_Length=0&#215;40000<br />
EraseBlocks=1<br />
WriteImage=0<br />
VerifyWrite=0</p>
<p>[IMAGE_HEADER_1]<br />
Start_Address=0&#215;6900000<br />
Image_Length=0xf00000<br />
EraseBlocks=1<br />
WriteImage=0<br />
VerifyWrite=0</p>
<p>(etc)</p>
<p>Different phones have different firmware writing software, the Motorola&#8217;s are using RSDLite, LG &#8211; SML_OMS, CTHall, others something homegrown called Firebolt, which is written by BORQS.  I have all the firmware tools already, despite the Ophone8 forums lack of courtesy in sharing, grrr.</p>
<p>Most firmware tools appear similar though functionality wise.<br />
Haven&#8217;t played around inside the phone yet to see if its easy to get jtag access, although that was mostly because i couldn&#8217;t work out how to remove the top part without breaking it.</p>
<p>If anyone wants more info, or a firmware dump let me know.</p>
<p>Hopefully there is some interest out there in the English speaking world for these!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.computersolutions.cn/blog/2010/03/dell-mini-3i-ophone-hacking-thoughts-notes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Of Qmail, Zombies and qmail-remote timeout issues.</title>
		<link>http://www.computersolutions.cn/blog/2010/02/of-qmail-zombies-and-qmail-remote-timeout-issues/</link>
		<comments>http://www.computersolutions.cn/blog/2010/02/of-qmail-zombies-and-qmail-remote-timeout-issues/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 04:29:49 +0000</pubDate>
		<dc:creator>Lawrence Sheed</dc:creator>
				<category><![CDATA[Email]]></category>
		<category><![CDATA[Technical Mumbo Jumbo]]></category>
		<category><![CDATA[connection]]></category>
		<category><![CDATA[long]]></category>
		<category><![CDATA[qmail]]></category>
		<category><![CDATA[qmail-remote]]></category>
		<category><![CDATA[timeout]]></category>
		<category><![CDATA[zombies]]></category>

		<guid isPermaLink="false">http://www.computersolutions.cn/blog/?p=355</guid>
		<description><![CDATA[Occasionally even in a well maintained system, qmail has issues.
One semi-common issue I get to see, is when a server we send mail to doesn&#8217;t timeout. This ties up an outgoing mail slot.  Over a period of time, this can lead to issues where the whole outgoing or incoming queue is sitting doing nothing, [...]]]></description>
			<content:encoded><![CDATA[<p>Occasionally even in a well maintained system, qmail has issues.</p>
<p>One semi-common issue I get to see, is when a server we send mail to doesn&#8217;t timeout. This ties up an outgoing mail slot.  Over a period of time, this can lead to issues where the whole outgoing or incoming queue is sitting doing nothing, as every connection is tied up by &#8216;tarpitted&#8217; connections.</p>
<p>Ideally Qmail should be able to cope with these.  There are settings in qmail to control how long a connection takes, and how long it should wait for.  These settings are covered in the following files (usually set in /var/qmail/control)</p>
<p><span id="more-355"></span></p>
<blockquote><p>timeoutconnect &#8211; how long for qmail to wait on initial outgoing connection before trying another mail server.<br />
timeoutremote &#8211; how long to wait before timing out a connected outgoing server.<br />
timeoutsmtpd &#8211; how long for qmail to wait before dropping an incoming connection.</p></blockquote>
<p>In our system, we set these values to:<br />
30 seconds for timeoutconnect<br />
600 seconds for timeoutremote<br />
360 seconds for timeoutsmtpd</p>
<p>In theory timeoutremote should see qmail drop a connection after 10 minutes (600 seconds).<br />
In practice, <strong>qmail doesn&#8217;t</strong>.</p>
<p>Why?</p>
<p>timeoutremote <strong>only</strong> applies if the connection hasn&#8217;t received any data for the timeout period.<br />
<em>It doesn&#8217;t apply to the connection time as a whole</em>.<br />
If the remote end sends some data, the timeout is reset again, and it will wait again for the timeoutremote period.   If the remote server dribbles back an ACK or similar once every few minutes, then it can keep a connection alive for as long as it wants.</p>
<p>This may not happen very often, but it can happen enough to tie up our connection queue over a period of time. I&#8217;ve seen connections go on for as long as days or weeks in practice.</p>
<p>Ideally one should be able to set a proper timeout period in qmail which it adheres to, so that any connection over a certain time period gets killed, or at least set something up in ucspi-tcp, however thats something for another time.</p>
<p>Here is a real world example.  </p>
<p>I&#8217;ve run my kill zombie script in test mode (see bottom of page for the script)</p>
<p><code>/var/qmail/bin/kill-qmail-smtpd-zombies --test<br />
**Running in TEST mode**<br />
Running:  ps ax -o etime,pid,comm --no-heading | grep qmail-remote | grep ':[0-9][0-9]:' | awk '{print }'<br />
-=-=-=-=-=-=-=-=-=-=-<br />
Found zombies, setting up shotgun.<br />
Killing qmail-remote zombies<br />
kill -9 26707<br />
-=-=-=-=-=-=-=-=-=-=-</code></p>
<p>Its come up with a connection thats been running longer than an hour. &#8211; 26707</p>
<p>I&#8217;ll double check to see that its correct</p>
<p><code>ps ax -o etime,pid,comm | grep 26707<br />
   01:39:07 26707 qmail-remote<br />
</code></p>
<p>Yup, qmail-remote has been running for 1hr39minutes on that connection.</p>
<p>Lets check what the connection is</p>
<p><code>ps -ef | grep 26707<br />
root      2964 17112  0 13:01 pts/2    00:00:00 grep 26707<br />
qmailr   26707 21959  0 11:23 ?        00:00:00 qmail-remote bamboo.sz.js.cn  zhangbin@bamboo.sz.js.cn<br />
</code></p>
<p>Hmm, its a known troublesome server <strong>bamboo.sz.js.cn</strong>.<br />
In fact, its the one that caused me to write this article!</p>
<p>Lets watch whats actually happening in real time.</p>
<p><code>strace -p 26707<br />
Process 26707 attached - interrupt to quit<br />
read(3, </code></p>
<p>[wait for a minute or two...]</p>
<p>Still nothing.</p>
<p>Hmm, sitting there waiting for a response to a read.  Guess what happens before the timeout period?<br />
Yup, we receive some more characters just in time to keep the connection up and running&#8230;</p>
<p>We could set the timeoutremote to a lower number, but we do actually have cases where servers genuinely are slow on responses for various spam testing reasons (although they usually pickup speed once they pass those tests), so I prefer another method.</p>
<p>Whats my current (lazy in lieu of patching qmail or ucspi-tcp) solution for this?</p>
<p>A culling the zombies script!</p>
<p>To install in your qmail/bin folder, do the following:</p>
<p><code lang="bash"><br />
cd /var/qmail/bin<br />
wget http://www.computersolutions.cn/blog/wp-content/uploads/2010/02/kill-qmail-zombies.txt<br />
mv kill-qmail-zombies.txt kill-qmail-zombies.sh<br />
chmod 0700 kill-qmail-zombies.sh<br />
</code></p>
<p>The script has a help file built in,  parameters are:<br />
<code lang="bash">./kill-qmail-zombies.sh<br />
--test - Run in test mode (zombie friendly)<br />
--help - Show the help<br />
--force - Kill some zombies!</code></p>
<p>eg</p>
<p><code lang="bash">./kill-qmail-zombies.sh --test</code></p>
<p>You could set this to run every few hours in a cron script, but I <strong>strongly</strong> suggest you test first to see if it works correctly.  See the help file for more info on that.</p>
<p>Script below for those who want to take a look.  Its one of my first shell scripts, so feel free to laugh, and comment accordingly!</p>
<div class="dean_ch" style="white-space: wrap;">
<span class="re3">#!/bin/sh</span></p>
<p><span class="re3"># ===========================</span><br />
<span class="re3"># qmail zombie killer script</span><br />
<span class="re3"># Version: <span class="nu0">1.0</span></span><br />
<span class="re3"># Author: L. Sheed</span><br />
<span class="re3"># Company: Computer Solutions</span><br />
<span class="re3"># URL: http://www.computersolutions.cn</span><br />
<span class="re3"># ===========================</span></p>
<p><span class="re2">PATH=</span>/usr/bin:/bin</p>
<p><span class="kw1">function</span> short_usage<br />
<span class="br0">&#123;</span><br />
<span class="kw2">cat</span> &lt;&lt;- _EOF_<br />
$<span class="nu0">0</span>: missing parameter<br />
Try <span class="st0">&#8216;$0 &#8211;help&#8217;</span> <span class="kw1">for</span> <span class="kw2">more</span> information.</p>
<p>_EOF_<br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">function</span> usage<br />
<span class="br0">&#123;</span><br />
<span class="kw2">cat</span> &lt;&lt;- _EOF_<br />
Parameters:<br />
&#8211;force &nbsp;<span class="kw2">kill</span> qmail-smtpd and qmail-send processes <span class="br0">&#40;</span>aka zombies<span class="br0">&#41;</span> older than <span class="nu0">1</span> hour<br />
&#8211;<span class="kw3">test</span> &nbsp; <span class="kw1">do</span> a <span class="kw3">test</span> run <span class="br0">&#40;</span>no zombie processes will be harmed<span class="br0">&#41;</span><br />
&#8211;<span class="kw3">help</span> &nbsp; show this <span class="kw3">help</span> page</p>
<p>Notes:<br />
Strongly suggest <span class="kw3">test</span> first to see <span class="kw1">if</span> the <span class="kw2">ps</span> line works correct on your system before killing any processes!<br />
eg &#8211; &nbsp;Run the <span class="kw2">ps</span> below on your system, and see <span class="kw1">if</span> the output looks similar</p>
<p><span class="kw2">ps</span> ax -o etime,pid,<span class="kw2">comm</span> &#8211;no-heading | <span class="kw2">grep</span> qmail-smtp<br />
&nbsp; &nbsp; &nbsp; <span class="nu0">04</span>:<span class="nu0">40</span> &nbsp;<span class="nu0">6468</span> qmail-smtpd<br />
&nbsp; &nbsp; &nbsp; <span class="nu0">01</span>:<span class="nu0">47</span> &nbsp;<span class="nu0">7473</span> qmail-smtpd<br />
&nbsp; &nbsp; &nbsp; <span class="nu0">01</span>:<span class="nu0">00</span> &nbsp;<span class="nu0">8142</span> qmail-smtpd<br />
&nbsp; &nbsp; &nbsp; <span class="nu0">01</span>:<span class="nu0">00</span> &nbsp;<span class="nu0">8143</span> qmail-smtpd<br />
&nbsp; &nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">46</span> &nbsp;<span class="nu0">8235</span> qmail-smtpd<br />
&nbsp; &nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">36</span> &nbsp;<span class="nu0">8283</span> qmail-smtpd<br />
&nbsp; &nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">19</span> &nbsp;<span class="nu0">8391</span> qmail-smtpd<br />
&nbsp; &nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">11</span> &nbsp;<span class="nu0">8445</span> qmail-smtpd<br />
&nbsp; &nbsp; &nbsp; <span class="nu0">00</span>:<span class="nu0">07</span> &nbsp;<span class="nu0">8494</span> qmail-smtpd</p>
<p>_EOF_<br />
<span class="br0">&#125;</span></p>
<p><span class="kw1">function</span> zap_the_bastards<br />
<span class="br0">&#123;</span><br />
<span class="re2">PLIST=</span>`<span class="kw2">ps</span> ax -o etime,pid,<span class="kw2">comm</span> &#8211;no-heading | <span class="kw2">grep</span> <span class="re1">$WHAT</span> | <span class="kw2">grep</span> <span class="st0">&#8216;:[0-9][0-9]:&#8217;</span> | <span class="kw2">awk</span> <span class="st0">&#8216;{print $2}&#8217;</span>`</p>
<p><span class="re3">#In <span class="kw3">test</span> mode, show what would be called also</span><br />
<span class="kw1">if</span> <span class="br0">&#91;</span> <span class="st0">&quot;$test&quot;</span> = <span class="st0">&quot;1&quot;</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Running: &nbsp;ps ax -o etime,pid,comm &#8211;no-heading | grep $WHAT | grep &#8216;:[0-9][0-9]:&#8217; | awk &#8216;{print $2}&#8217;&quot;</span><br />
<span class="kw1">fi</span></p>
<p><span class="kw1">if</span> <span class="br0">&#91;</span> -n <span class="st0">&quot;${PLIST:-}&quot;</span> <span class="br0">&#93;</span><br />
<span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;-=-=-=-=-=-=-=-=-=-=-&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Found zombies, setting up shotgun.&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Killing $WHAT zombies&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">for</span> p <span class="kw1">in</span> <span class="re1">$PLIST</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">if</span> <span class="br0">&#91;</span> <span class="st0">&quot;$force&quot;</span> = <span class="st0">&quot;1&quot;</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Kabooom:&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw2">kill</span> <span class="nu0">-9</span> <span class="re1">$p</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">fi</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;kill -9 $p&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw1">done</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;-=-=-=-=-=-=-=-=-=-=-&quot;</span><br />
<span class="kw1">else</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;Good news everybody. &nbsp;No $WHAT zombies found.&quot;</span><br />
<span class="kw1">fi</span><br />
<span class="br0">&#125;</span></p>
<p><span class="re3">## Main</span></p>
<p><span class="re3">#parse our parameters</span><br />
<span class="kw1">if</span> <span class="br0">&#91;</span> ! <span class="re4">$#</span> == <span class="nu0">1</span> <span class="br0">&#93;</span>; <span class="kw1">then</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; short_usage<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">exit</span><br />
<span class="kw1">fi</span></p>
<p><span class="kw1">while</span> <span class="br0">&#91;</span> <span class="st0">&quot;$1&quot;</span> != <span class="st0">&quot;&quot;</span> <span class="br0">&#93;</span>; <span class="kw1">do</span><br />
&nbsp;<span class="kw1">case</span> $<span class="nu0">1</span> <span class="kw1">in</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; &#8211;force <span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;**Running in FORCE mode**&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">force=</span><span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &#8211;<span class="kw3">help</span> <span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; usage<br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">exit</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ;;<br />
&nbsp; &nbsp; &nbsp; &nbsp; &#8211;<span class="kw3">test</span> <span class="br0">&#41;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="kw3">echo</span> <span class="st0">&quot;**Running in TEST mode**&quot;</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">test=</span><span class="nu0">1</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; ;;<br />
&nbsp;<span class="kw1">esac</span><br />
<span class="kw3">shift</span><br />
<span class="kw1">done</span></p>
<p><span class="re3">#do the deed</span><br />
<span class="re2">targets=</span><span class="br0">&#40;</span> <span class="st0">&quot;qmail-remote&quot;</span> <span class="st0">&quot;qmail-smtpd&quot;</span> <span class="br0">&#41;</span></p>
<p><span class="kw1">for</span> target <span class="kw1">in</span> $<span class="br0">&#123;</span>targets<span class="br0">&#91;</span>@<span class="br0">&#93;</span><span class="br0">&#125;</span><br />
<span class="kw1">do</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; <span class="re2">WHAT=</span><span class="re1">$target</span><br />
&nbsp; &nbsp; &nbsp; &nbsp; zap_the_bastards<br />
<span class="kw1">done</span></div>
]]></content:encoded>
			<wfw:commentRss>http://www.computersolutions.cn/blog/2010/02/of-qmail-zombies-and-qmail-remote-timeout-issues/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Happy Chinese New Year!</title>
		<link>http://www.computersolutions.cn/blog/2010/02/happy-chinese-new-year/</link>
		<comments>http://www.computersolutions.cn/blog/2010/02/happy-chinese-new-year/#comments</comments>
		<pubDate>Thu, 11 Feb 2010 07:04:22 +0000</pubDate>
		<dc:creator>Lawrence Sheed</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[2010]]></category>
		<category><![CDATA[cny]]></category>
		<category><![CDATA[year of the tiger]]></category>

		<guid isPermaLink="false">http://www.computersolutions.cn/blog/?p=351</guid>
		<description><![CDATA[Note to clients that we will be closed from 13th  &#8211; 19th February for Chinese New Year.
Urgent issues can be addressed either by sending an email to support@computersolutions.cn or calling my mobile number on 13901 802 269.
Have a good vacation, and a great year of the tiger!

]]></description>
			<content:encoded><![CDATA[<p>Note to clients that we will be closed from 13th  &#8211; 19th February for Chinese New Year.</p>
<p><strong>Urgent</strong> issues can be addressed either by sending an email to support@computersolutions.cn or calling my mobile number on 13901 802 269.</p>
<p>Have a good vacation, and a great year of the tiger!</p>
<p><img class="aligncenter size-full wp-image-352" title="happy tiger style" src="http://www.computersolutions.cn/blog/wp-content/uploads/2010/02/happy-tiger-style.jpg" alt="" width="640" height="200" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.computersolutions.cn/blog/2010/02/happy-chinese-new-year/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Difference between China and the UAE in Blocking</title>
		<link>http://www.computersolutions.cn/blog/2010/02/difference-between-china-and-the-uae-in-blocking/</link>
		<comments>http://www.computersolutions.cn/blog/2010/02/difference-between-china-and-the-uae-in-blocking/#comments</comments>
		<pubDate>Tue, 09 Feb 2010 03:22:16 +0000</pubDate>
		<dc:creator>Lawrence Sheed</dc:creator>
				<category><![CDATA[China Related]]></category>
		<category><![CDATA[Things that will get me censored]]></category>
		<category><![CDATA[censorship]]></category>
		<category><![CDATA[china]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[secrecy]]></category>
		<category><![CDATA[transparency]]></category>
		<category><![CDATA[uae]]></category>

		<guid isPermaLink="false">http://www.computersolutions.cn/blog/?p=346</guid>
		<description><![CDATA[As I&#8217;m currently in the airport, waiting for a flight back to the UAE, I thought I&#8217;d share this small snippet of transparency vs secrecy.
As most China users will know, there is no official agency that &#8220;blocks&#8221; websites.  In fact, most of the time, the government states that sites are not blocked, despite fairly [...]]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;m currently in the airport, waiting for a flight back to the UAE, I thought I&#8217;d share this small snippet of transparency vs secrecy.</p>
<p>As most China users will know, there is no official agency that &#8220;blocks&#8221; websites.  In fact, most of the time, the government states that sites are not blocked, despite fairly obvious proof to the contrary.</p>
<p>China typically asserts that &#8220;connection resets&#8221; to sites like Facebook and Youtube are just network issues, despite those network issues solely appearing at the ip addresses associated with the government firewalls at the gateway routers to overseas.</p>
<p>Here in the UAE (Dubai), the government still blocks, but at least they&#8217;re upfront about it:<br />
See below for an example of a blocked site</p>
<p><img src="http://www.computersolutions.cn/blog/wp-content/uploads/2010/02/uae-content-block.jpg" alt="" title="uae content block" width="625" height="437" class="aligncenter size-full wp-image-347" /></p>
<p>Why is this important?</p>
<p>Transparency is a big problem for western entities doing business in China.  As with the recent Google PR stunt/debacle, most companies have no real mechanism for dealing with arbitrary judgements for / against things that affect their business.</p>
<p>A clear and transparent mechanism for dealing with why sites are blocked, coupled with a delisting mechanism would be a good place to start.  It would also help to defuse the detractors against censorship &#8211; although most countries censor,  China is one of the usual scapegoats picked on.</p>
<p>Maybe if China implemented a what (was blocked) / why (it was blocked) / how (to get unblocked) system, detractors would have less to complain about.</p>
<p>Lawrence.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.computersolutions.cn/blog/2010/02/difference-between-china-and-the-uae-in-blocking/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MMS on 2G iPhone 3.1.2 for China Mobile (CMNET) &#8211; quick howto.</title>
		<link>http://www.computersolutions.cn/blog/2010/01/mms-on-2g-iphone-3-1-2-for-china-mobile-cmnet-quick-howto/</link>
		<comments>http://www.computersolutions.cn/blog/2010/01/mms-on-2g-iphone-3-1-2-for-china-mobile-cmnet-quick-howto/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 10:38:38 +0000</pubDate>
		<dc:creator>Lawrence Sheed</dc:creator>
				<category><![CDATA[Apple]]></category>
		<category><![CDATA[Technical Mumbo Jumbo]]></category>
		<category><![CDATA[Useful Info]]></category>
		<category><![CDATA[2g]]></category>
		<category><![CDATA[china telecom]]></category>
		<category><![CDATA[enable]]></category>
		<category><![CDATA[ipcc]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[mms]]></category>

		<guid isPermaLink="false">http://www.computersolutions.cn/blog/?p=342</guid>
		<description><![CDATA[Although most of my friends are using 3G/s now, I do get the odd 2G phone to play with.
Today I had another crack at enabling MMS on a 2G.  For some reason not much documentation, and too much misinformation out there on the net.
Guaranteed working instructions for China Mobile users below:
Install 3.1.2
Jailbreak with usual [...]]]></description>
			<content:encoded><![CDATA[<p>Although most of my friends are using 3G/s now, I do get the odd 2G phone to play with.</p>
<p>Today I had another crack at enabling MMS on a 2G.  For some reason not much documentation, and too much misinformation out there on the net.</p>
<p>Guaranteed working instructions for China Mobile users below:</p>
<p>Install 3.1.2<br />
Jailbreak with usual steps.<br />
Add cydia.ifoneguide.nl in Cydia / Sources<br />
Wait a bazillion years for cydia to timeout with the various blocked in China repositories.<br />
Click Search<br />
Download Activate 2G MMS<br />
Reboot</p>
<p>Normally we&#8217;d be done, however the MMS settings won&#8217;t let us save a diffferent MMS and GPRS name, so we need to install a specific IPCC (iPhone Carrier Setting file) for China Telecom.<br />
As China Telecom is (at time of writing) not an official iPhone supplier, they don&#8217;t have an IPCC file, so we need to roll our own.</p>
<p>Here&#8217;s one I found earlier &#8211; <a href="http://www.computersolutions.cn/downloads/ChinaMobileCarrierSettingsWithMMS.zip">ChinaMobileCarrierSettingsWithMMS.zip</a></p>
<p>Download that, unzip, and throw on the desktop.</p>
<p>We&#8217;ll need to tell iTunes that its ok to use the IPCC file first, so close iTunes.<br />
Now head off to terminal (or a DOS window  for those on Windows), then paste this in.</p>
<p>Mac users:<br />
defaults write com.apple.iTunes carrier-testing -bool TRUE </p>
<p>Windows users:<br />
(32 bit)<br />
“C:\Program Files\iTunes\iTunes.exe” /setPrefInt carrier-testing 1</p>
<p>(64 bit)<br />
“C:\Program Files (x86)\iTunes\iTunes.exe” /setPrefInt carrier-testing 1</p>
<p>Done?</p>
<p>Ok, now open iTunes again, connect the phone if its not connected, and..</p>
<p>Mac Users:</p>
<p>Press + hold down Alt(option), and Click “Update” </p>
<p>Windows Users:</p>
<p>Press + hold down shift, then Click &#8220;Update&#8221;</p>
<p>iTunes will prompt you for a file.<br />
Choose the IPCC file you downloaded.</p>
<p>Sync the phone.</p>
<p>Finally&#8230; shut the phone off again.</p>
<p>Once you power up again, you should be able to send/ receive MMS!</p>
<p>If its not working for you, check that the settings are in there &#8211; </p>
<p>Settings / General / Network / Cellular Data Network</p>
<p>(anything not listed below should be empty)</p>
<p><strong>Cellular Data</strong><br />
APN ->  cmnet</p>
<p><strong>MMS</strong><br />
APN -> cmwap<br />
MMSC -> http://mmsc.monternet.com<br />
MMS Proxy -> 10.0.0.172<br />
MMS Max Message Size -> 300172</p>
<p>Tested, and working on 2 x 2g iPhones!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.computersolutions.cn/blog/2010/01/mms-on-2g-iphone-3-1-2-for-china-mobile-cmnet-quick-howto/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Domain names, ICP licenses, and other fun in 2010</title>
		<link>http://www.computersolutions.cn/blog/2010/01/domain-names-icp-licenses-and-other-fun-in-2010/</link>
		<comments>http://www.computersolutions.cn/blog/2010/01/domain-names-icp-licenses-and-other-fun-in-2010/#comments</comments>
		<pubDate>Mon, 11 Jan 2010 10:55:54 +0000</pubDate>
		<dc:creator>Lawrence Sheed</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[bureaucracy]]></category>
		<category><![CDATA[china domain registration]]></category>
		<category><![CDATA[cnnic]]></category>
		<category><![CDATA[goverment]]></category>
		<category><![CDATA[icp]]></category>
		<category><![CDATA[mii]]></category>
		<category><![CDATA[miibeian]]></category>

		<guid isPermaLink="false">http://www.computersolutions.cn/blog/?p=335</guid>
		<description><![CDATA[New rules are now in place that restrict applications for Chinese domain names (anything ending in .cn)
CNNIC issued new guidelines for registrars and hosting companies on January 6th / 2010.
Roughly translated, these state:
CNNIC (China&#8217;s Internet Domain Government Agency) wishes promote the standard and healthy application of .CN domain names.
CNNIC aims to coordinate with China&#8217;s review [...]]]></description>
			<content:encoded><![CDATA[<p><strong>New rules are now in place that restrict applications for Chinese domain names (anything ending in .cn)</strong></p>
<p>CNNIC issued new guidelines for registrars and hosting companies on January 6th / 2010.</p>
<p>Roughly translated, these state:</p>
<blockquote><p>CNNIC (China&#8217;s Internet Domain Government Agency) wishes promote the standard and healthy application of .CN domain names.<br />
CNNIC aims to coordinate with China&#8217;s review mechanism for domain name registration information and further crack down on registration of domain names with false information.</p></blockquote>
<p>What this means in non-government-speak is that from now onward new .com.cn and .cn domains cannot be registered unless you are an officially licensed entity within China.<br />
Existing domains can be renewed for the meantime though (pending verification of details/validity).</p>
<p>This has been in process since mid December, as individual registrations were the first to get blocked</p>
<blockquote><p>Chinese domain name supervision organization China Internet Network Information Center announced that starting from 21:00 on December 14, 2009, it closed domain name registrations for individual users who are not purchasing domains on behalf of companies or organizations. Prior to this sudden announcement, China&#8217;s central television station criticized domain name registration service providers and agencies for false, inaccurate or incomplete information in the registration process. </p></blockquote>
<p>More here on that here &#8211; <a href="http://www.chinatechnews.com/2009/12/21/11239-chinese-measures-will-regulate-website-domain-name-registrations">http://www.chinatechnews.com/2009/12/21/11239-chinese-measures-will-regulate-website-domain-name-registrations</a></p>
<p>Entities wishing to register domain names for others will need an ICP许可证 (ICP Xu Ke Zheng).<br />
The ICP许可证 is a commercial licence, which is different from an ICP备案 (ICP Bei An).<br />
We will also be subject to new requirements for new domain registrations (China loves paperwork!)</p>
<blockquote><p>The Notification about further enhancement of auditing domain name registration information</p>
<p>    In order to further enhance the authenticity, accuracy, and integrality of the domain name registration information, now notify as following:</p>
<p>1. Domain name applicants need to submit the formal paper based application material when making the online application to the registrar. The application material includes the original application form with business seal, company business license (photocopy), and registrant ID (photocopy).</p>
<p>2. Registrar should carefully review the application material. When application is deemed qualified, registrar need to submit the application material via fax or E-mail to CNNIC, and withhold the original application material.</p>
<p>3. From the day of the submission of online application, if CNNIC does not receive the formal paper based application material within 5 days or the application material auditing is not qualified, the domain name to be applied will be deleted.</p>
<p>4. The above regulations will be executed since 9:00AM (Beijing Time), Dec 14th, 2009.</p>
<p>If you have any question, free to contact us at 86-10-58813000 or email to service@cnnic.cn.</p></blockquote>
<p><strong>Existing ICP Registrations</strong><br />
In addition to these new rules, all existing domain registrations are being scrutinized carefully, and all details are being verified.<br />
As we have been quite proactive in ensuring that all clients have ICP licensing, and keeping our upstream ISP / contacts at Shanghai Telecom advised of anything information they require ahead of time, we expect that this will cause minimal disruption to our services.<br />
If we do need to verify additional information from clients, please be prompt in forwarding them to us if we do request them, to avoid issues.</p>
<p><strong>New ICP Registrations</strong><br />
Due to the above checks, new ICP registrations (which are required for any domain hosted in China) are taking substantially longer than the normal 2-3 days.   We are currently seeing delays of up to 2 months for new license applications from the MII (Ministry of Information).   We deal with the licensing bureau&#8217;s on a daily basis, and are notified quickly in case of issues, but the current checking requirements are just making everything take rather longer than is usual.  We ask clients to be patient while their ICP registration is in progress.  We are aware that it is not an ideal situation to have to wait for a few weeks, but we are dependent on the government issuing body, who are very very backlogged with work right now.  License applications that are currently in process can be checked by clients at the government website here &#8211; <a href="http://www.miibeian.gov.cn/chaxun/ggcx.jsp">http://www.miibeian.gov.cn/chaxun/ggcx.jsp</a>. </p>
<p>Computer Solutions client ICP Registration site is here &#8211; <a href="http://icp.computersolutions.cn">http://icp.computersolutions.cn/</a>.  New clients can register a user account on our ICP site, and submit an application form from our site.  </p>
]]></content:encoded>
			<wfw:commentRss>http://www.computersolutions.cn/blog/2010/01/domain-names-icp-licenses-and-other-fun-in-2010/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Outgoing TLS port Denial of Service &#8211; Fixed</title>
		<link>http://www.computersolutions.cn/blog/2010/01/outgoing-tls-port-denial-of-service-fixed/</link>
		<comments>http://www.computersolutions.cn/blog/2010/01/outgoing-tls-port-denial-of-service-fixed/#comments</comments>
		<pubDate>Tue, 05 Jan 2010 08:24:17 +0000</pubDate>
		<dc:creator>Lawrence Sheed</dc:creator>
				<category><![CDATA[Service Issues]]></category>
		<category><![CDATA[Technical Mumbo Jumbo]]></category>

		<guid isPermaLink="false">http://www.computersolutions.cn/blog/?p=330</guid>
		<description><![CDATA[Noticed that our incoming TLS connection queue was a little high &#8211; running at 60 concurrent connections for an hour or so.
A check of the queue revealed that all the connections were coming from a single IP &#8211; and were tying up the queue, making it a denial of service attack.  This one ip [...]]]></description>
			<content:encoded><![CDATA[<p>Noticed that our incoming TLS connection queue was a little high &#8211; running at 60 concurrent connections for an hour or so.</p>
<p>A check of the queue revealed that all the connections were coming from a single IP &#8211; and were tying up the queue, making it a denial of service attack.  This one ip address was connecting and reconnecting multiple times, hogging up all the connections.<br />
<span id="more-330"></span><br />
I&#8217;ve blocked that ip address, and restarted the TLS service, its back at normal levels now.</p>
<p>For the interested &#8211; </p>
<p><strong>Connections:</strong></p>
<blockquote><p>mail:/var/log/qmail/qmail-tls# netstat -an &#8211;numeric-ports | grep 587 | grep 58.246.24.242<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:24384     ESTABLISHED<br />
tcp        1      0 61.129.49.190:587       58.246.24.242:39581     CLOSE_WAIT<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:11625     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:42614     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:46630     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:20802     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:51956     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:4463      ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:39878     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:43678     ESTABLISHED<br />
tcp        1      0 61.129.49.190:587       58.246.24.242:39181     CLOSE_WAIT<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:62054     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:64421     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:24326     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:58740     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:25779     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:50209     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:41358     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:32383     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:27925     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:46540     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:7049      ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:13999     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:62962     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:19771     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:43604     ESTABLISHED<br />
tcp        1      0 61.129.49.190:587       58.246.24.242:38757     CLOSE_WAIT<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:39909     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:30470     ESTABLISHED<br />
tcp        1      0 61.129.49.190:587       58.246.24.242:39754     CLOSE_WAIT<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:61393     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:52072     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:22294     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:60398     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:60530     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:36049     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:1426      ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:40190     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:15402     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:23457     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:65187     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:39910     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:23181     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:3286      ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:40540     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:12957     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:39829     ESTABLISHED<br />
tcp        0      0 61.129.49.190:587       58.246.24.242:19748     ESTABLISHED</p></blockquote>
<p><strong>IP Owner:</strong></p>
<blockquote><p>mail:/var/log/qmail/qmail-tls# whois 58.246.24.242</p>
<p>% [whois.apnic.net node-2]<br />
% Whois data copyright terms    http://www.apnic.net/db/dbcopyright.html</p>
<p>inetnum:      58.246.24.240 &#8211; 58.246.24.247<br />
netname:      SH-Ribeira<br />
country:      cn<br />
descr:        Ribeira (Shanghai) Business Consulting Co., Ltd.<br />
admin-c:      YR194-AP<br />
tech-c:       YR194-AP<br />
status:       ASSIGNED NON-PORTABLE<br />
changed:      sh-ipmaster@chinaunicom.cn 20081125<br />
mnt-by:       MAINT-CNCGROUP-SH<br />
source:       APNIC</p></blockquote>
<p>I&#8217;ve sent a note to China Unicom, but don&#8217;t expect any reply.   A google of Ribiera Shanghai doesn&#8217;t reveal any obvious people to complain to either.   </p>
<p>Yet another instance where I should put some active logging into the server to notify me when queue / connection sizes stay at high levels&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.computersolutions.cn/blog/2010/01/outgoing-tls-port-denial-of-service-fixed/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>CSR (Corporate Social Responsibility)</title>
		<link>http://www.computersolutions.cn/blog/2010/01/csr-corporate-social-responsibility/</link>
		<comments>http://www.computersolutions.cn/blog/2010/01/csr-corporate-social-responsibility/#comments</comments>
		<pubDate>Fri, 01 Jan 2010 02:52:50 +0000</pubDate>
		<dc:creator>Lawrence Sheed</dc:creator>
				<category><![CDATA[General Talk]]></category>
		<category><![CDATA[charity]]></category>
		<category><![CDATA[china]]></category>
		<category><![CDATA[computer solutions]]></category>
		<category><![CDATA[csr]]></category>
		<category><![CDATA[library project]]></category>
		<category><![CDATA[lifeline]]></category>
		<category><![CDATA[shanghai]]></category>

		<guid isPermaLink="false">http://www.computersolutions.cn/blog/?p=309</guid>
		<description><![CDATA[Although I&#8217;m loathe to call ourselves a corporation &#8211; we&#8217;re not!, we do try to do the odd bit of good for the community, whether locally, or regionally.
Last year saw our first donation to the Library Project.  The Library Project is a worthy cause, and donates books and libraries to under financed schools and [...]]]></description>
			<content:encoded><![CDATA[<p>Although I&#8217;m loathe to call ourselves a corporation &#8211; we&#8217;re not!, we do try to do the odd bit of good for the community, whether locally, or regionally.<a href="http://www.library-project.org/libraries/chen_jia_gou_elementary_school.html"><img class="alignright size-full wp-image-311" title="sm2" src="http://www.computersolutions.cn/blog/wp-content/uploads/2010/01/sm2.jpg" alt="" width="250" height="188" /></a></p>
<p>Last year saw our first donation to <a href="http://www.library-project.org/">the Library Project</a>.  The Library Project is a worthy cause, and donates books and libraries to under financed schools and orphanages in the developing world.</p>
<p>Computer Solutions donated funds for a Library, which ended up going to Chen Jia Gou Elementary school in Shaanxi province.</p>
<p>Link to our donated library here &#8211; <a href="http://www.library-project.org/libraries/chen_jia_gou_elementary_school.html">http://www.library-project.org/libraries/chen_jia_gou_elementary_school.html</a></p>
<p>We also donate support to a more local cause &#8211; <a href="http://www.lifelineshanghai.com">LifeLine Shanghai</a>.<a href="http://www.lifelineshanghai.com"><img src="http://www.computersolutions.cn/blog/wp-content/uploads/2010/01/lifeline.png" alt="" title="lifeline" width="205" height="110" class="alignleft size-full wp-image-321" /></a></p>
<p>Computer Solutions has been providing complementary IT, and Web Services for a number of years now for Lifeline.  Last year, after a few months of persuasion they finally agreed to let us redesign their existing volunteer created website too.</p>
<p>Our design team took note of LifeLine&#8217;s requirements, and came up with something more visually appealing, with a clearer layout and site structure.   Visit their site here &#8211; <a href="http://www.lifelineshanghai.com">http://www.lifelineshanghai.com</a></p>
<p>Lastly, we also support a cause which donates items and books for schools up in Qinghai.  We&#8217;ve previously donated computers, funds, and other items to help out.  More info about that here: <a href="http://www.tonyphotoshop.com/forum/index.php?topic=4.0">http://www.tonyphotoshop.com/forum/index.php?topic=4.0</a>.  Do your part too, and help out, donations of clothes and other items are very welcome!</p>
<p>Lastly, if you are a charity organization in Shanghai, or China, and would like us to assist you in some way, please contact us.  We&#8217;re more than happy to donate our services to worthy causes.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.computersolutions.cn/blog/2010/01/csr-corporate-social-responsibility/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Samsung N310 (Samsung Go) Hackintosh Installation on Snow Leopard</title>
		<link>http://www.computersolutions.cn/blog/2009/12/samsung-n310-samsung-go-hackintosh-installation-on-snow-leopard/</link>
		<comments>http://www.computersolutions.cn/blog/2009/12/samsung-n310-samsung-go-hackintosh-installation-on-snow-leopard/#comments</comments>
		<pubDate>Wed, 23 Dec 2009 07:52:43 +0000</pubDate>
		<dc:creator>Lawrence Sheed</dc:creator>
				<category><![CDATA[Technical Mumbo Jumbo]]></category>
		<category><![CDATA[Useful Info]]></category>
		<category><![CDATA[hackintosh]]></category>
		<category><![CDATA[instructions]]></category>
		<category><![CDATA[n310]]></category>
		<category><![CDATA[samsung]]></category>
		<category><![CDATA[samsung go]]></category>
		<category><![CDATA[samsung n310]]></category>
		<category><![CDATA[snow leopard]]></category>

		<guid isPermaLink="false">http://www.computersolutions.cn/blog/?p=299</guid>
		<description><![CDATA[
One of my friends brought round a notebook for me to Hackintosh yesterday.  Unlike the usual god no&#8230; kind of options I get given, this is actually a nice machine.
This one is almost as Mac friendly as my current Nano sized Hackintosh (aka Loz&#8217;s Hackbook Nano)
I present the next best thing in Mini Mac&#8217;s [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.computersolutions.cn/blog/wp-content/uploads/2009/12/samsung-n310-300x262.jpg"><img class="alignright size-full wp-image-301" title="samsung-n310-300x262" src="http://www.computersolutions.cn/blog/wp-content/uploads/2009/12/samsung-n310-300x262.jpg" alt="samsung-n310-300x262" width="300" height="262" /></a></p>
<p>One of my friends brought round a notebook for me to Hackintosh yesterday.  Unlike the usual god no&#8230; kind of options I get given, this is actually a nice machine.<br />
This one is almost as Mac friendly as my current Nano sized Hackintosh (aka Loz&#8217;s Hackbook Nano)</p>
<p>I present the next best thing in Mini Mac&#8217;s (until the will it?  won&#8217;t it?  Mac Tablet comes out!) &#8211; The Samsung N310</p>
<p>The Samsung is a generic Atom based Netbook with the following hardware:</p>
<p><strong>CPU</strong> Intel Atom N270, 1600 Mhz<br />
<strong>Chipset</strong> Intel 82945GSE Graphics Controller<br />
<strong>Graphics Card</strong> Intel GMA 950<br />
<strong>Audio</strong> Realtek ALC272<br />
<strong>Wifi</strong> Atheros AR5007EG Wireless<br />
<strong>Ethernet</strong> Marvell Yukon 88E8040 PCI-E Fast Ethernet<br />
<strong>Bluetooth Adapter</strong> USB Based Generic<br />
<strong>Webcam</strong> USB Based Namuga 1.3M</p>
<p>Installation is remarkably easy.<br />
You&#8217;ll need the following things &#8211; an External USB DVD drive, and Snow Leopard.</p>
<p>Download the latest NetbookInstaller ISO from here &#8211; <a href="http://osx.mechdrew.com/downloads/">http://osx.mechdrew.com/downloads/</a><br />
Burn to CD.  Connect your USB drive to the N310, and boot off of the newly burned CD.</p>
<p>Follow the instructions to swap with your Snow Leopard DVD at the appropriate time, and boot into the installer.<br />
Install as normal (in my case, I just wiped the existing partitions, set the boot type to GUID instead of MBR  in Partition, Options, and did a full install)<br />
Once the OS reboots, boot from the NetbookInstaller ISO again, but this time choose the HDD (as we still need to install a valid bootsector for the OS to run)</p>
<p>The OS should boot up ok, fill in the relevant bits and pieces, and get to the desktop screen.<br />
Open up  NetBookMaker from the CD, navigate to the Tools folder and open NetbookInstaller:</p>
<p><em>I did this using 0.8.3RC4, but newer versions should be similar.</em><br />
Click Continue for the Unrecognized Hardware Prompt.</p>
<p>Choose the correct disk in the Volume Dropdown, and<br />
Check Install Chameleon 2 RC3<br />
Check Install General Extensions<br />
Check Generate a System Specific DSDT.AML file.<br />
Uncheck everything else.</p>
<p>Click Install.</p>
<p>It should trundle away for a few minutes, then recommend you reboot.</p>
<p>Remove the NetbookInstaller DVD,  and make sure that you can reboot ok from the Hard Drive</p>
<p>Right now you should have working Webcam, Video, Bluetooth, and Trackpad will support 2 finger scroll (go to System / Preferences/ Trackpad to configure)</p>
<p>We&#8217;re still missing Wifi,  Audio, and you&#8217;ll notice that sleep doesn&#8217;t quite work yet.<br />
To install those, we&#8217;ll need to download some extra Kext&#8217;s, and replace the wifi card.</p>
<p>Wifi &#8211; the original card is a crap atheros.  I couldn&#8217;t be buggered looking for drivers, and immediately swapped it out for a Dell1390 Broadcom card.  Cheap, and the same as real Macbooks, so no driver issues.<br />
The N310 is reasonably easy to disassemble, just remove all the plastic plugs underneath (including the larger feet ones), and remove the screws.  Gently remove the case bottom, and replace the wifi card.<br />
If you use the Dell1390 you won&#8217;t need to install any drivers, they&#8217;re built in, yay!</p>
<p><strong>For the remaining drivers, see below:</strong><br />
Audio &#8211; As I&#8217;m a nice person, I&#8217;ve uploaded the working driver here &#8211; <a href="http://www.kexts.com/view/182-alc272_%28snow_leopard%29.html">http://www.kexts.com/view/182-alc272_%28snow_leopard%29.html</a><br />
Sleep &#8211; Go to <a href="http://www.superhai.com/darwin.html">http://www.superhai.com/darwin.html</a>, and download the 2 Snow Leopard kexts (VoodooBattery.kext, VoodooPowerMini.kext).</p>
<p>Download those to the desktop, unzip the kexts.<br />
Copy to /Extras/GeneralExtensions, then rebuild the Extension cache.</p>
<p>You can do that manually or use a tool.  NetbookInstaller nicely places a program called UpdateExtra into the /Extra folder which can rebuild the Extension cache for you.</p>
<p>Thats pretty much it!</p>
<p><strong><font color=red>If you are having problems with the laptop waking from sleep:</font></strong><br />
I&#8217;ve uploaded a DSDT.aml for the n310 here &#8211; <a href="http://www.computersolutions.cn/downloads/DSDT.aml.N310">DSDT.aml</a>.  you&#8217;ll need to rename it so that the .N310 is removed, and copy into the root folder over the existing DSDT.aml that NetBookMaker may or may not have created.   I&#8217;d appreciate comments as to whether this works for you or not.</p>
<p>Iain in the comments thread was nice enough to email his working sleep DSDT.aml file, can some people try both and see if either work for them?  Also check the BIOS settings as per Iain&#8217;s comment: Enabled EDB. Disabled Legacy USB Support. Enabled USB S3 Wake-Up</p>
<p>Download his <a href="http://www.computersolutions.cn/downloads/DSDT.aml.IAIN.N310">DSDT.aml</a> here. To use, rename file to DSDT.aml, and copy to /Extra, then reboot.</p>
<p><strong>Note: </strong> If you do mess around with DSDT.aml files, please have a working recovery method available that you can access the hard drive with (eg an OSX Install DVD + Boot132 CD).  Apple&#8217;s install DVD can also be used for recovery.</p>
<p>If you find that you can&#8217;t boot after installing the DSDT.aml, boot from the Boot132 CD or USB, then boot into to the OSX install DVD.  Go to terminal in the installer, and delete the offending file, then reboot.</p>
<p>Now you should have a fully working Samsung N310 running OSX Snow Leopard!</p>
<p>I haven&#8217;t bothered messing around with the brightness or volume stuff, but the volume on/off keyboard functions work, as do the trackpad on/off.</p>
<p>Good luck with yours!</p>
<p><strong>Useful links: </strong><br />
<a href="http://www.kexts.com">http://www.kexts.com</a> &#8211; kexts (drivers) for OSX<br />
<a href="http://www.superhai.com/darwin.html">http://www.superhai.com/darwin.html</a> &#8211; Power related drivers for OSX<br />
<a href="http://osx.mechdrew.com/">http://osx.mechdrew.com/</a> &#8211; MechDrew from MyDellMini&#8217;s site on Hackintosh Installs<br />
<a href="http://cid-8b65993ef55cf014.skydrive.live.com/browse.aspx/.Public/OSx86/Snow%20Leopard">http://cid-8b65993ef55cf014.skydrive.live.com/browse.aspx/.Public/OSx86/Snow%20Leopard</a> &#8211; some Czech site hosted on live.com full of goodies/ kexts</p>
]]></content:encoded>
			<wfw:commentRss>http://www.computersolutions.cn/blog/2009/12/samsung-n310-samsung-go-hackintosh-installation-on-snow-leopard/feed/</wfw:commentRss>
		<slash:comments>191</slash:comments>
		</item>
		<item>
		<title>iPhone Model Number Info</title>
		<link>http://www.computersolutions.cn/blog/2009/12/iphone-model-number-info/</link>
		<comments>http://www.computersolutions.cn/blog/2009/12/iphone-model-number-info/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 10:23:53 +0000</pubDate>
		<dc:creator>Lawrence Sheed</dc:creator>
				<category><![CDATA[Useful Info]]></category>

		<guid isPermaLink="false">http://www.computersolutions.cn/blog/?p=297</guid>
		<description><![CDATA[Apple used to have info about where phones came from on their website, but for some reason have now deleted that info.
Below is a list of verified unlocked part numbers.
Hong Kong
MB489ZP/A 8gb blk
MB496ZP/A 16gb blk
MB500ZP/A 16gb white

Same with
ZZ = Macau
ZA = Singapore
here is the list of official unlock units from other countries.
MB489NF/A
MB496NF/A
MB500NF/A
MB489CZ/A
MB496CZ/A
MB500CZ/A
MB490CZ/A
MB497CZ/A
MB501CZ/A
MB489CZ/A
MB496CZ/A
MB500CZ/A
MB489GR/A
MB496GR/A
MB500GR/A
MB489GR/A
MB496GR/A
MB500GR/A
MB489T/A
MB496T/A
MB500T/A
MB489T/A
MB496T/A
MB500T/A
MB489NF/A
MB496NF/A
MB500NF/A
MB489FB/A
MB496FB/A
MB500FB/A
MB489ZP/A
MB496ZP/A
MB500ZP/A
MB489ZA/A
MB496ZA/A
MB500ZA/A
MB489X/A
MB496X/A
MB500X/A
MB489RS/A
MB496RS/A
MB500RS/A
MB489AB/B
MB496AB/B
MB500AB/B
MB489ZA/A
MB496ZA/A
MB500ZA/A
MB489SL/A
MB496SL/A
MB500SL/A
MB489SO/A
MB496SO/A
MB500SO/A
MB489TA/A
MB496TA/A
MB500TA/A
MB489TH/A
MB496TH/A
MB500TH/A
MB489TU/A
MB496TU/A
MB500TU/A
MB489AB/B
MB496AB/B
MB500AB/B
]]></description>
			<content:encoded><![CDATA[<p>Apple used to have info about where phones came from on their website, but for some reason have now deleted that info.<br />
Below is a list of verified unlocked part numbers.</p>
<p>Hong Kong</p>
<p>MB489ZP/A 8gb blk<br />
MB496ZP/A 16gb blk<br />
MB500ZP/A 16gb white<br />
<span id="more-297"></span><br />
Same with<br />
ZZ = Macau<br />
ZA = Singapore</p>
<p>here is the list of official unlock units from other countries.<br />
MB489NF/A<br />
MB496NF/A<br />
MB500NF/A</p>
<p>MB489CZ/A<br />
MB496CZ/A<br />
MB500CZ/A</p>
<p>MB490CZ/A<br />
MB497CZ/A<br />
MB501CZ/A</p>
<p>MB489CZ/A<br />
MB496CZ/A<br />
MB500CZ/A</p>
<p>MB489GR/A<br />
MB496GR/A<br />
MB500GR/A</p>
<p>MB489GR/A<br />
MB496GR/A<br />
MB500GR/A</p>
<p>MB489T/A<br />
MB496T/A<br />
MB500T/A</p>
<p>MB489T/A<br />
MB496T/A<br />
MB500T/A</p>
<p>MB489NF/A<br />
MB496NF/A<br />
MB500NF/A</p>
<p>MB489FB/A<br />
MB496FB/A<br />
MB500FB/A</p>
<p>MB489ZP/A<br />
MB496ZP/A<br />
MB500ZP/A</p>
<p>MB489ZA/A<br />
MB496ZA/A<br />
MB500ZA/A</p>
<p>MB489X/A<br />
MB496X/A<br />
MB500X/A</p>
<p>MB489RS/A<br />
MB496RS/A<br />
MB500RS/A</p>
<p>MB489AB/B<br />
MB496AB/B<br />
MB500AB/B</p>
<p>MB489ZA/A<br />
MB496ZA/A<br />
MB500ZA/A</p>
<p>MB489SL/A<br />
MB496SL/A<br />
MB500SL/A</p>
<p>MB489SO/A<br />
MB496SO/A<br />
MB500SO/A</p>
<p>MB489TA/A<br />
MB496TA/A<br />
MB500TA/A</p>
<p>MB489TH/A<br />
MB496TH/A<br />
MB500TH/A</p>
<p>MB489TU/A<br />
MB496TU/A<br />
MB500TU/A</p>
<p>MB489AB/B<br />
MB496AB/B<br />
MB500AB/B</p>
]]></content:encoded>
			<wfw:commentRss>http://www.computersolutions.cn/blog/2009/12/iphone-model-number-info/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
