<?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:blogger='http://schemas.google.com/blogger/2008' 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-4556963925910772884</id><updated>2026-08-09T18:08:46.019+10:00</updated><category term="Android"/><category term="bash"/><category term="linux"/><category term="solar"/><category term="virtualbox"/><category term="OS-X"/><category term="XML"/><category term="google"/><category term="ubuntu"/><category term="NL"/><category term="Rainwater treatment"/><category term="Ubuntu 10.10"/><category term="blue-green stain"/><category term="electricity"/><category term="energy"/><category term="fairlane"/><category term="fog machine"/><category term="ford"/><category term="fridge"/><category term="howto"/><category term="iphoto"/><category term="lime"/><category term="macbook pro"/><category term="modification"/><category term="modify"/><category term="nexus one"/><category term="osx"/><category term="script"/><category term="DNS resolver"/><category term="Google Wave"/><category term="Picasa"/><category term="applescript"/><category term="backup"/><category term="battery life"/><category term="chrome"/><category term="chromeos"/><category term="copper corrosion"/><category term="csv"/><category term="drobo-fs"/><category term="easter egg"/><category term="feed-in"/><category term="gingerbread"/><category term="guest os-x"/><category term="hash"/><category term="host linux"/><category term="hp"/><category term="iPad"/><category term="install"/><category term="iphone"/><category term="mac"/><category term="macbook pro 9 1"/><category term="nvidia"/><category term="partition"/><category term="photovoltaic"/><category term="powertop"/><category term="rainwater"/><category term="spam"/><category term="strings"/><category term="testing"/><category term="vodafone UK ROM"/><category term="webkit"/><category term="wifi"/><category term="0.1 kWh"/><category term="10.5"/><category term="12.10"/><category term="2.3.3"/><category term="2710"/><category term="5.5"/><category term="BenF"/><category term="CO2"/><category term="CPP"/><category term="DSE"/><category term="DSO201"/><category term="DSO210"/><category term="DTR7100"/><category term="DVB"/><category term="Dick Smith"/><category term="Digital Storage Oscilloscope"/><category term="DockBook"/><category term="Enable Device Power Management by pressing the P key"/><category term="FAIL: http.TestClient"/><category term="G7659"/><category term="GSM Auto (PRL)"/><category term="Google Go"/><category term="GoogleCL"/><category term="H.264"/><category term="I18N"/><category term="ICH7"/><category term="ICH8"/><category term="IDE"/><category term="IR"/><category term="ISC"/><category term="Ken Thompson"/><category term="LPG"/><category term="Light Wells"/><category term="Lorem Ipsum"/><category term="Lotus Notes"/><category term="MAP"/><category term="MArch 1998"/><category term="Manifold absolute pressure"/><category term="Mercurial"/><category term="Microsoft Groove"/><category term="Microsoft Mesh"/><category term="NaCl"/><category term="Native Client"/><category term="Netbook"/><category term="Newsqueak"/><category term="O2"/><category term="O3D"/><category term="OSX RIP"/><category term="PCV"/><category term="Pacific Satellite"/><category term="Plan-9"/><category term="QR codes"/><category term="Ramp"/><category term="Ray Ozzie"/><category term="Replace firmware"/><category term="Rob Pike"/><category term="SATA"/><category term="Sydney"/><category term="Sydney Terminal Station"/><category term="UML"/><category term="Ubuntu 8.10"/><category term="WCDMA Only"/><category term="WCDMA Preferred"/><category term="a200"/><category term="ac2"/><category term="adb"/><category term="ahci"/><category term="all-in-one"/><category term="amazon"/><category term="apache tomcat"/><category term="apple"/><category term="appliance"/><category term="assert"/><category term="australia"/><category term="awk"/><category term="barlow st"/><category term="bath"/><category term="bcc"/><category term="bigw"/><category term="boot stops"/><category term="c"/><category term="c7280"/><category term="camera"/><category term="canon"/><category term="carbonic acid"/><category term="cc"/><category term="chest"/><category term="chroot"/><category term="circumference"/><category term="clean up"/><category term="clockworkmod"/><category term="cloud computing"/><category term="co2 absorption"/><category term="comma removal"/><category term="command line"/><category term="computer science"/><category term="constant-time"/><category term="convert"/><category term="cost"/><category term="credit"/><category term="cyanogenmod"/><category term="data exchange"/><category term="dead touchscreen"/><category term="delete"/><category term="development"/><category term="dg834"/><category term="dg834gv"/><category term="directory to xml"/><category term="disk"/><category term="disk image"/><category term="dock"/><category term="docket"/><category term="drobo"/><category term="droid"/><category term="dromaeo"/><category term="dual boot"/><category term="duplicates"/><category term="efm3607"/><category term="elastichosts"/><category term="elecrolux EWF1282"/><category term="electrolux"/><category term="email"/><category term="energy consumption"/><category term="enterprise"/><category term="erm4307"/><category term="exclamation mark"/><category term="exist"/><category term="fakechroot"/><category term="fakeroot"/><category term="faulty capacitor"/><category term="filter"/><category term="firefox"/><category term="firewall"/><category term="fix"/><category term="flash"/><category term="freezer"/><category term="front loader"/><category term="gas"/><category term="gmail"/><category term="gogrid"/><category term="good hash function"/><category term="google ark"/><category term="google calendar"/><category term="google chart api"/><category term="guest os"/><category term="hewlett"/><category term="how-to"/><category term="hpdskflt.sys"/><category term="huawei"/><category term="iTunes"/><category term="ical"/><category term="ics"/><category term="ideos"/><category term="idle"/><category term="import"/><category term="infrared"/><category term="ink system failure"/><category term="intel GPU"/><category term="intrepid"/><category term="inverter"/><category term="inverter failed"/><category term="jack larson"/><category term="javascript"/><category term="javascript benchmark"/><category term="junk mail"/><category term="keyevent"/><category term="kvm"/><category term="leak"/><category term="leopard"/><category term="lighttpd"/><category term="macros"/><category term="markings"/><category term="mbr"/><category term="missing photos"/><category term="mobilemark"/><category term="natural gas"/><category term="netgear"/><category term="nfs"/><category term="nouveau"/><category term="nut"/><category term="online"/><category term="open"/><category term="open source"/><category term="orbeon"/><category term="originals"/><category term="ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc"/><category term="pH"/><category term="packard"/><category term="passwords"/><category term="pbuilder"/><category term="photos"/><category term="physical"/><category term="physical partition"/><category term="picasaweb"/><category term="power meter"/><category term="power steering"/><category term="power supply"/><category term="powershot"/><category term="price increase"/><category term="printing"/><category term="private data"/><category term="profile"/><category term="pump"/><category term="python"/><category term="quantal"/><category term="quoted string"/><category term="radial"/><category term="refind"/><category term="refit"/><category term="refrigerator"/><category term="remove"/><category term="repair"/><category term="replace"/><category term="restore"/><category term="rolling hash"/><category term="rolling-hash"/><category term="router"/><category term="safari"/><category term="sandpit"/><category term="scientific method"/><category term="sdk"/><category term="se255"/><category term="sed"/><category term="self sufficient"/><category term="sensor"/><category term="set top box"/><category term="setpci"/><category term="silhouette"/><category term="slicing"/><category term="smokeping"/><category term="snd_hda_intel"/><category term="snmp"/><category term="snmp agent"/><category term="snmp to xml"/><category term="snmpbulkwalk"/><category term="snmpd"/><category term="solved"/><category term="source code"/><category term="spell checker"/><category term="spelling corrector"/><category term="stainless"/><category term="stall"/><category term="steve jobs"/><category term="sting"/><category term="streetview"/><category term="substrings"/><category term="syslog"/><category term="syslogd"/><category term="tariff"/><category term="tcptraceroute"/><category term="telnet"/><category term="thermostat"/><category term="time machine"/><category term="tiny"/><category term="tire"/><category term="tires"/><category term="tram"/><category term="treadwear"/><category term="treatment"/><category term="tubeless"/><category term="tyre"/><category term="tyres"/><category term="u8150"/><category term="undervolt"/><category term="unfsd"/><category term="upgrade"/><category term="v8"/><category term="verbose documents"/><category term="vlc"/><category term="vm"/><category term="vm builder"/><category term="vmdk"/><category term="washing machine"/><category term="water consumption"/><category term="westinghouse"/><category term="windows"/><category term="wood"/><category term="x3"/><category term="xen"/><category term="xmlvm"/><category term="xp"/><category term="zombie art"/><title type='text'>Phil at Warrimoo</title><subtitle type='html'>Thoughts, ideas, research and how-to&#39;s - mostly rubbish</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>106</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-9070976045415599168</id><published>2022-04-13T12:31:00.001+10:00</published><updated>2022-04-13T12:31:14.263+10:00</updated><title type='text'>Howto make your OS X swap file on-demand</title><content type='html'>(very old draft)

I like to tweak things. With Linux this is easy but with Apple&#39;s OS X it

&lt;blockquote&gt;sudo nano /System/Library/LaunchDaemons/com.apple.dynamic_pager.plist &lt;/blockquote&gt;

</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/9070976045415599168/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/howto-make-your-os-x-swap-file-on-demand.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/9070976045415599168'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/9070976045415599168'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/howto-make-your-os-x-swap-file-on-demand.html' title='Howto make your OS X swap file on-demand'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-4569054410080292605</id><published>2022-04-13T12:30:00.001+10:00</published><updated>2022-04-13T12:30:31.334+10:00</updated><title type='text'>XML Stylesheet Pretty Printer for any XML File</title><content type='html'>(very old draft)

XML files are hard to read. This is made worse when spaces and newlines are removed.

To make them more readable I have made a simple stylesheet that will indent the XML and format it so it is easy to read.

The XML stylesheet is very simple:

To get the stylesheet, highlight it, copy it and paste it into an empty file called pcSimpleReformat.xsl (you can change the name it you like).

To apply the stylesheet you need an XSL[T] processor such as xsltproc:

&lt;blockquote&gt;xsltproc pcSimpleReformat.xsl someXMLFile.xml&lt;/blockquote&gt;The output will be the easy-to-read version of the the XML file.

A slightly more complicated version follows complete with comments so you can see how it works:

This is the small version. It outputs will formatted text but it is a little verbose.
To download, select the XML code, copy and paste it into a file called pcReformatSimple.xsl

&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;

&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;&lt;a href=&quot;http://www.w3.org/1999/XSL/Transform&quot; target=&quot;_blank&quot;&gt;http://www.w3.org/&lt;wbr&gt;1999/XSL/Transform&lt;/a&gt;&quot;&gt;


&lt;xsl:output method=&quot;xml&quot; indent=&quot;no&quot;/&gt;
&lt;xsl:strip-space elements=&quot;*&quot;/&gt;

&lt;xsl:template match=&quot;@* | text() | comment() | processing-instruction()&quot;&gt;
	&lt;xsl:copy select=&quot;.&quot;/&gt;
&lt;/xsl:template&gt;

&lt;xsl:template match=&quot;*&quot;&gt;
	&lt;xsl:text&gt; &lt;/xsl:text&gt;
	&lt;xsl:for-each select=&quot;ancestor::*&quot;&gt;
		&lt;xsl:text&gt;  &lt;/xsl:text&gt;
	&lt;/xsl:for-each&gt;
	&lt;xsl:copy select=&quot;.&quot;&gt;
		&lt;xsl:apply-templates select=&quot;@*&quot;/&gt;
		&lt;xsl:apply-templates select=&quot;* | text() | comment() | processing-instruction()&quot;/&gt;
	&lt;/xsl:copy&gt;
&lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;


To apply it you would use a command like this:

xsltproc pcReformatSimple.xsl someInputXMLFile.xml

To test that it is working we can apply it twice and compare the output at each stage. If it is working then the intermediate stage should be identical to the final stage. ie. it will reformat an xml file the xml is reformatted
xsltproc pcReformat.xsl q.rng &gt; q1.rng
diff q.rng q1.rng
less q.rng



&lt;?xml version=&quot;1.0&quot; encoding=&quot;ISO-8859-1&quot;?&gt;

&lt;xsl:stylesheet version=&quot;1.0&quot; xmlns:xsl=&quot;&lt;a href=&quot;http://www.w3.org/1999/XSL/Transform&quot; target=&quot;_blank&quot;&gt;http://www.w3.org/&lt;wbr&gt;1999/XSL/Transform&lt;/a&gt;&quot;&gt;


&lt;xsl:output method=&quot;xml&quot; indent=&quot;no&quot;/&gt;

&lt;!-- remove spaces since we will add them in anew --&gt;
&lt;xsl:strip-space elements=&quot;*&quot;/&gt;

&lt;!-- copy attribute, text, comments and processing instructions verbatim --&gt;
&lt;xsl:template match=&quot;@* | text() | comment() | processing-instruction()&quot;&gt;
	&lt;!-- copy current object to the output --&gt;
	&lt;xsl:copy select=&quot;.&quot;/&gt;
&lt;/xsl:template&gt;

&lt;!-- copy elements to the output --&gt;
&lt;xsl:template match=&quot;*&quot;&gt;
	&lt;!-- newline after previous terminating element --&gt;
	&lt;xsl:text&gt;&amp;#10;&lt;/xsl:text&gt;
	&lt;!-- add formating whitespace - 2 spaces per level --&gt;
	&lt;xsl:for-each select=&quot;ancestor::*&quot;&gt;
		&lt;xsl:text&gt;   &lt;/xsl:text&gt;
	&lt;/xsl:for-each&gt;
	&lt;!-- copy current element to the output --&gt;
	&lt;xsl:copy select=&quot;.&quot;&gt;
		&lt;!-- process all attributes for this element first --&gt;
		&lt;xsl:apply-templates select=&quot;@*&quot;/&gt;
		&lt;!-- next process all child elements, text and comments etc. --&gt;
		&lt;xsl:apply-templates select=&quot;* | text() | comment() | processing-instruction()&quot;/&gt;
		&lt;!-- WARNING: complication to make output shorter and simpler --&gt;
&lt;!-- copy leaf elements with 0 or 1 text nodes to the output like this: &lt;leaf/&gt; or &lt;leaf&gt;text&lt;/leaf&gt; --&gt;
		&lt;xsl:if test=&quot;not( count( * ) = 0 and count( text() ) &lt; 2 )&quot;&gt;
			&lt;!-- add formating whitespace to terminating element --&gt;
			&lt;!-- newline after terminating element --&gt;
			&lt;xsl:text&gt;&amp;#10;&lt;/xsl:text&gt;
			&lt;xsl:for-each select=&quot;ancestor::*&quot;&gt;
				&lt;xsl:text&gt;   &lt;/xsl:text&gt;
			&lt;/xsl:for-each&gt;
		&lt;/xsl:if&gt;
	&lt;/xsl:copy&gt;
&lt;/xsl:template&gt;

&lt;/xsl:stylesheet&gt;
</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/4569054410080292605/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/xml-stylesheet-pretty-printer-for-any.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/4569054410080292605'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/4569054410080292605'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/xml-stylesheet-pretty-printer-for-any.html' title='XML Stylesheet Pretty Printer for any XML File'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-6268697475539151634</id><published>2022-04-13T12:29:00.001+10:00</published><updated>2022-04-13T12:29:55.487+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="mac"/><category scheme="http://www.blogger.com/atom/ns#" term="OS-X"/><category scheme="http://www.blogger.com/atom/ns#" term="syslog"/><category scheme="http://www.blogger.com/atom/ns#" term="syslogd"/><title type='text'>Sending syslog messages to a mac</title><content type='html'>(very old draft)

&lt;p&gt;I have a router that is playing-up. It locks-up about once per day. The router is a DG834GV (v1). I recently changed ISPs and the router started to lock-up - it could just be a coincidence. My new ISP resells Telstra&#39;s ADSL(1) service so the DSLAM and probably the port are unchanged.

Anyway, I thought it might be nice to see if there are any syslog messages being sent just before the router locks-up. I have a mac that runs OS-X (currently 10.5.5) that has a syslog server. So I thought I could use it to capture the syslog messages.

The computer said no.

The apple default configuration only logs local syslog messages. A quick google search showed that other people have re-configured it to work so I followed some instructions (which I have modified) I found &lt;a href=&quot;http://steen.lykking.dk/?p=45&quot;&gt;here&lt;/a&gt;:&lt;/p&gt;To enable your Leopard system to receive network syslog messages edit:

&lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;/System/Library/LaunchDaemons/com.apple.syslogd.plist&lt;/code&gt;

Open the &lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;Terminal&lt;/code&gt; application found in &lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;Applications/Utilities&lt;/code&gt;.

Type &lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;sudo nano /System/Library/LaunchDaemons/com.apple.syslogd.plist&lt;/code&gt;

Find this comment: &lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;&quot;Un-comment the following lines to enable the network syslog protocol listener&quot;&lt;/code&gt;. If you can not find this comment, see my note below on my upgraded Tiger system.

Change the next &lt;code style=&quot;color: rgb(153, 0, 0);&quot;&gt;&lt;&lt;/code&gt;&lt;code style=&quot;color: rgb(153, 0, 0);&quot;&gt;!--&lt;/code&gt; into &lt;code style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;&lt;/code&gt;&lt;code style=&quot;color: rgb(204, 0, 0);&quot;&gt;!-- --&gt;&lt;/code&gt; and the following &lt;code style=&quot;color: rgb(204, 0, 0);&quot;&gt;--&gt;&lt;/code&gt; into &lt;code style=&quot;color: rgb(204, 0, 0);&quot;&gt;&lt;&lt;/code&gt;&lt;code style=&quot;color: rgb(204, 0, 0);&quot;&gt;!-- --&gt;&lt;/code&gt;.

Now save the file by holding down the &lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;control&lt;/code&gt; key and pressing &lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;o&lt;/code&gt; to write-out the file and then you can hold &lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;control&lt;/code&gt; and press &lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;x&lt;/code&gt; to exit the editor.

To enable these changes you need to restart the syslog server:

&lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;sudo launchctl unload /System/Library/LaunchDaemons/com.apple.syslogd.plist
sudo launchctl     load /System/Library/LaunchDaemons/com.apple.syslogd.plist&lt;/code&gt;

That should allow your external device to dump it’s log into the system log.

In my case I also needed to enable syslog packets through my manually configured firewall so I executed the following command:

&lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;sudo ipfw add 5 allow log udp from any to any syslog in&lt;/code&gt;

Note: This would need to be re-entered after a re-boot.
I can now see syslog messages from my router being logged to my mac using the &lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;Console&lt;/code&gt; application found in &lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;Applications/Utilities&lt;/code&gt;.

Here is an &lt;font size=&quot;3&quot;&gt;example&lt;/font&gt; of a syslog message from my router:

&lt;code style=&quot;color: rgb(204, 0, 0);&quot;&gt;12/01/09 1:33:55 AM &lt;ddns&gt;IP address is the same, and does not need to be updated!
&lt;/ddns&gt;&lt;/code&gt;
&lt;font style=&quot;font-weight: bold;&quot; size=&quot;5&quot;&gt;Testing&lt;/font&gt;

From a terminal you can issue the following command to send a syslog message to your logger:
&lt;code&gt;&lt;/code&gt;&lt;blockquote&gt;&lt;/blockquote&gt;syslog -s -r yourMacsName.local &quot;some message&quot;

or you can use the IP address of your mac:
&lt;code&gt;
syslog -s -r 10.0.0.1 &quot;some message&quot;&lt;/code&gt;

See the man page for syslog for a full description of the message format.

&lt;font style=&quot;color: rgb(0, 0, 0); font-weight: bold;&quot; size=&quot;5&quot;&gt;Upgraded Tiger Systems

&lt;/font&gt;&lt;font size=&quot;3&quot;&gt;&lt;font style=&quot;color: rgb(0, 0, 0);&quot;&gt;I also have a PowerBook G4 that has been upgraded from Tiger to Leopard and it has a slightly different &lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;3&quot;&gt;&lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;/System/Library/LaunchDaemons/com.apple.syslogd.plist &lt;/code&gt;&lt;font style=&quot;color: rgb(0, 0, 0);&quot;&gt;file.&lt;/font&gt;

&lt;font style=&quot;color: rgb(0, 0, 0);&quot;&gt;The main problem is that it does not appear to have the comment I referred to. So to enable it you need to un-comment the &lt;code&gt;NetworkListener&lt;/code&gt; key and following dict lines.

Unfortunately, I can not get this syslog server to work.


&lt;/font&gt;&lt;/font&gt;&lt;code style=&quot;color: rgb(51, 51, 255);&quot;&gt;&lt;/code&gt;</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/6268697475539151634/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2009/01/sending-syslog-messages-to-mac.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/6268697475539151634'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/6268697475539151634'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2009/01/sending-syslog-messages-to-mac.html' title='Sending syslog messages to a mac'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-2959358766159188552</id><published>2022-04-13T12:27:00.001+10:00</published><updated>2022-04-13T12:27:02.566+10:00</updated><title type='text'>Light Wells</title><content type='html'>(very old draft)

There is some construction work taking place on and under the ramp at Sydney Terminal Station. The work is, I am told, to refurbish rooms under the ramp for the Railway fire department.

Work above these rooms on the ramp revealed Light Wells that had been covered for years - probably over 80 years. These Light Wells consist of a metal frame filled with blocks of coloured glass which allow light to pass through into the rear of the voids under the ramp.

</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/2959358766159188552/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/light-wells.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/2959358766159188552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/2959358766159188552'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/light-wells.html' title='Light Wells'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-259924362189653924</id><published>2022-04-13T12:26:00.000+10:00</published><updated>2022-04-13T12:26:02.567+10:00</updated><title type='text'>Simple Rolling Hash- Part 3</title><content type='html'>(very old draft)

The Rolling Hash&lt;br /&gt;
&lt;br /&gt;
Now that there is a way to remove the first character and append a new last character in constant time to a string hash value, we can also use this hash function suite to perform substring searches in linear time.&lt;br /&gt;
&lt;br /&gt;
To find a substring of length m in a string of length n you might proceed as follows:&lt;br /&gt;
start at the first character of the string&lt;br /&gt;
compare the substring to the string for m characters.&lt;br /&gt;
If same, then the substring is found.&lt;br /&gt;
else, repeat from the next character of the string (stop when there are less than m characters left in the string)&lt;br /&gt;
&lt;br /&gt;
In practice this works well since it is unlikely that more than a few character will match each round so the effective time efficiency is much less than O(n**m). But for some strings, such as DNA which have small alphabets, the number of matches in each round could be large.&lt;br /&gt;
&lt;br /&gt;
But by using a rolling hash this can be reduced to linear-time.&lt;br /&gt;
&lt;br /&gt;
Calculate the hash of the substring we are searching for.&lt;br /&gt;
Start with a hash of the first m characters of the string&lt;br /&gt;
If the hash values match then the substring is found.&lt;br /&gt;
else remove the first character of the string from the hash and add the m+1 th character to the hash.&lt;br /&gt;
Now the hash is of m characters from the next character of the string.&lt;br /&gt;
&lt;br /&gt;
This process is O(N).</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/259924362189653924/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/simple-rolling-hash-part-3.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/259924362189653924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/259924362189653924'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/simple-rolling-hash-part-3.html' title='Simple Rolling Hash- Part 3'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-5319689934761402822</id><published>2022-04-13T12:24:00.001+10:00</published><updated>2022-04-13T12:24:40.331+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="energy"/><category scheme="http://www.blogger.com/atom/ns#" term="fridge"/><category scheme="http://www.blogger.com/atom/ns#" term="modification"/><title type='text'>Reducing Fridge Energy Consumption</title><content type='html'>(very old draft)

For about 12 months our family has tried to reduce our gas and electricity energy consumption. We use gas for hot water, wood for heating and we have no air conditioner so our main electricity consumer was our fridge. I confirmed this by measuring the energy that the fridge used.

We have an old fridge. It is an upside-down model and at least 15 years old - a Westinghouse Silhouette 411L RB411B.



In our situation - on the lowest [power] setting - it consumes about 1360WHr per day which consists of a constant load of 50mA (12.5W) and about 165W when the compressor is running. The power factor for the motor appears to be about 0.66 - of course these figures are rough and really just provide me with a baseline. The compressor typically operated for 11 minutes in every 41 or about 27% of the time.

I began by focusing on the constant 12.5W. What is it? The fridge is not a smart fridge so why does it constantly consume 50mA? This adds up to 300WHr per day or about 22% of the total energy consumption.

This fridge has a cooling plate in the upper section where the milk and eggs are kept. It seems that the design causes ice to build up on the plate which could, if not removed, reduce the efficiency of the fridge. To overcome this, a heating element was installed behind the plate to melt any ice when the compressor stops. The melted ice drips into a gutter and is drained to an evaporator above the motor.

So, I ripped it out. I could have just disconnected it, but I didn&#39;t.

Having removed the defrost element, I had to develop a plan to remove ice from the plate. I achieved this by placing the fridge on a timer which cut power for, initially, 3 hours from about 3AM. This didn&#39;t have a noticeable effect on the operating range of the fridge and it allowed enough time for the ice to melt.

In theory, the fridge should now consume about 1060WHrs - a big difference. But shouldn&#39;t it reduce the energy consumed by more than 12.5W because the heating energy must then be pumped out the next time the compressor runs? If the compressor is like an air-conditioner, then the cooling efficiency is about 2.5 which means that it should take 5W to remove the heat from the defrost element. Therefore the reduction should be more like 17-18W or 410-430WHr per day.

My records aren&#39;t the best, but I think the fridge now consumed 950WHr per day based on a duty cycle of 24%.

My next thought was to insulate the fridge. As I said, it is an old fridge and has the radiator elements on the outside and about 25mm from the back of the fridge. I placed a blanket between the radiator and the fridge and I draped a doona (light weight polyester blanket) over the sides of the fridge. This also had an effect. The on-time reduced to 9 minutes in 43 minutes or about 21%.

The result is an average energy consumption of 810WHr per day - down 40% from my unmodified fridge.

My current challenge is to see if I can do better by controlling when the fridge can operate. The idea is that thermostat is too sensitive and operates when the door is opened and the fridge looses it&#39;s cold air. My calculations suggest that the warmer air from the room doesn&#39;t take much energy to get down to normal fridge temperatures so by making the thermostat a secondary temperature controller I hope to reduce the energy consumption further. It also allows me to have two defrost periods during a day and to ensure that the fridge has plenty of time to adjust to post meal activity as warm foods and goods are placed back into the fridge.

Initial results are promising: without insulation the fridge is consuming about 800WHr per day, so with insulation it should be even lower. The fridge is operating between 4 and 9 degrees Celsius and typically between 5 and 8 degrees.</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/5319689934761402822/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2008/06/reducing-fridge-energy-consumption.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/5319689934761402822'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/5319689934761402822'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2008/06/reducing-fridge-energy-consumption.html' title='Reducing Fridge Energy Consumption'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-9161502033760219994</id><published>2022-04-13T12:23:00.001+10:00</published><updated>2022-04-13T12:23:29.482+10:00</updated><title type='text'>Australian Energy Use</title><content type='html'>(very old incomplete draft)

How much energy does Australia consume and where is it used?

According to the Australian Bureau of Statistics &lt;a href=&quot;http://www.abs.gov.au/AUSSTATS/abs@.nsf/Previousproducts/5F1317BC73AB45A9CA257234002052A8?opendocument&quot;&gt;ABS&lt;/a&gt;, Australia used &lt;font face=&quot;Arial&quot;&gt;5,525 petajoules (PJ) in 2004-2005. A Peta Joule is 1,000,000,000,000,000 Joules (which isn&#39;t that helpful is it?)

1 PJ is 1,000,000,000 MJ. 3.6 MJ is 1kWHr so 1 PJ is 278 Million kWHr.

&lt;/font&gt;&lt;font face=&quot;Arial&quot;&gt;&lt;/font&gt;&lt;font face=&quot;Arial&quot;&gt;The transport sector (including household transport) is the largest end-user of energy, using 1,340 ... The manufacturing sector was the second highest user of energy (1,247 PJ ...). The transport and manufacturing sectors together accounted for 68% of total energy end-use.&lt;/font&gt;&lt;font face=&quot;Arial&quot;&gt;


Domestic energy consumption is 433 PJ (electricity, gas, etc.)

So, if we want to make a difference in terms of our energy consumption - and therefore CO2 emissions - shouldn&#39;t we focus on transport and manufacturing rather than
&lt;/font&gt;&lt;font face=&quot;Arial&quot;&gt;&lt;/font&gt; &lt;a href=&quot;http://www.abs.gov.au/AUSSTATS/abs@.nsf/Previousproducts/5F1317BC73AB45A9CA257234002052A8?opendocument&quot;&gt;&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/9161502033760219994/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/australian-energy-use.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/9161502033760219994'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/9161502033760219994'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/australian-energy-use.html' title='Australian Energy Use'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-593612849495910205</id><published>2022-04-13T12:21:00.001+10:00</published><updated>2022-04-13T12:21:15.092+10:00</updated><title type='text'>SNMP to XML</title><content type='html'>(very old draft - may not be complete)

I wanted to be able to query SNMP data from a device and turn it into XML so that it can be queried with XPath or XQuery.

The idea is to be able to script something like this:
&lt;blockquote&gt;&lt;font style=&quot;font-family: courier new; color: rgb(51, 51, 255);&quot; size=&quot;1&quot;&gt;snmpget -v2c -c$community -OXf $host $oid | ./pc-snmp2xml.sh&lt;/font&gt;
&lt;/blockquote&gt;eg.
&lt;blockquote style=&quot;font-family: courier new; color: rgb(51, 51, 255);&quot;&gt;&lt;font size=&quot;1&quot;&gt;snmpget -v2c -cpublic -OXf 10.0.0.1 ifInOctets.1 | ./pc-snmp2xml.sh&lt;/font&gt;&lt;/blockquote&gt;So,
&lt;blockquote style=&quot;font-family: courier new; color: rgb(51, 51, 255);&quot;&gt;&lt;font size=&quot;1&quot;&gt;snmpget -v2c -cpublic -OXf 10.0.0.1 ifInOctets.1&lt;/font&gt;&lt;/blockquote&gt;might return
&lt;blockquote style=&quot;font-family: courier new; color: rgb(51, 51, 255);&quot;&gt;&lt;font size=&quot;1&quot;&gt;.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets[1] = Counter32: 2606713050&lt;/font&gt;&lt;/blockquote&gt;whereas this
&lt;blockquote style=&quot;font-family: courier new; color: rgb(51, 51, 255);&quot;&gt;&lt;font size=&quot;1&quot;&gt;snmpget -v2c -cpublic -OXf 10.0.0.1 ifInOctets.1 | ./pc-snmp2xml.sh&lt;/font&gt;&lt;/blockquote&gt;returns
&lt;blockquote style=&quot;font-family: courier new; color: rgb(51, 51, 255);&quot;&gt;&lt;font size=&quot;1&quot;&gt;&lt;?xml version=&quot;1.0&quot;?&gt;
&lt;iso&gt;
  &lt;org&gt;
    &lt;dod&gt;
      &lt;internet&gt;
        &lt;mgmt&gt;
          &lt;mib-2&gt;
            &lt;interfaces&gt;
              &lt;ifTable&gt;
                &lt;ifEntry&gt;
                  &lt;ifInOctets&gt;
                    &lt;source rule=&quot;NU&quot; rule-name=&quot;numbers with optional units&quot;&gt;&lt;![CDATA[.iso.org.dod.internet.mgmt.mib-2.interfaces.ifTable.ifEntry.ifInOctets[1] = Counter32: 2606713280]]&gt;&lt;/source&gt;
                    &lt;value oid=&quot;ifInOctets&quot; type=&quot;Counter32&quot; raw=&quot;2606713280&quot; index1=&quot;1&quot;&gt;&lt;![CDATA[2606713280]]&gt;&lt;/value&gt;
                  &lt;/ifInOctets&gt;
                &lt;/ifEntry&gt;
              &lt;/ifTable&gt;
            &lt;/interfaces&gt;
          &lt;/mib-2&gt;
        &lt;/mgmt&gt;
      &lt;/internet&gt;
    &lt;/dod&gt;
  &lt;/org&gt;
&lt;/iso&gt;&lt;/font&gt;&lt;/blockquote&gt;snmpbulkwalk works just as well to convert the whole MIB to XML.

I have tested this script with Apple Time-Capsule, Nortel 425 switch, MacBook Pro, and a Billion 7404 ADSL router.

I had to pre-process the MacBook Pro and Billion router output to remove newline characters and duplicate output respectively.

I wrote the SNMP to XML script in AWK because I thought AWK&#39;s pattern matching and parsing would simplify the task. I&#39;m not convinced, but it was a good learning exercise.

This is the clean-up script.
&lt;blockquote style=&quot;font-family: courier new; color: rgb(51, 51, 255);&quot;&gt;&lt;font size=&quot;1&quot;&gt;#!awk

# This converts snmp output like this:

# .iso.org.dod.internet.mgmt.mib-2.host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunName[4592] = Hex-STRING: 6A 61 76 61 00 00 00 00 00 00 00 00 00 00 00 00
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
# 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

# into this:

# .iso.org.dod.internet.mgmt.mib-2.host.hrSWRun.hrSWRunTable.hrSWRunEntry.hrSWRunName[4592] = Hex-STRING: 6A 61 76 61 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 0
0 00 00 00 00 00 00

# where multiple lines of data are converted into a single line by eliminating the new-line characters

# process expected OID lines that start with .
/^(\.).*/{
  if ( FNR &gt; 1 ) printf &quot;\n&quot; # terminate last OID bu not the first line
  printf &quot;%s&quot;, $0 # start this OID but don&#39;t write a new-line yet
  next
}

# process other lines that we assume are actually part of previous OID
{
  printf &quot;%s&quot;, $0 # continue previous line
}

# terminate the last OID
END{
  printf &quot;\n&quot; # terminate last OID
}  &lt;/font&gt;&lt;/blockquote&gt;




</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/593612849495910205/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/snmp-to-xml.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/593612849495910205'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/593612849495910205'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/snmp-to-xml.html' title='SNMP to XML'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-7075826832157317829</id><published>2022-04-13T12:20:00.001+10:00</published><updated>2022-04-13T12:20:03.855+10:00</updated><title type='text'>Howto make Virtual Machines running in VirtualBox using Physical Partitions on OS-X</title><content type='html'>(very old draft - may not be complete)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;My goal is to run Linux on my new MacBook Pro 9,1.&lt;br /&gt;
&lt;br /&gt;
Whilst I can sort-of can run Linux, it is not really usable until all this new hardware is understood and drivers built to manage it.&lt;br /&gt;
&lt;br /&gt;
So, next best is to run Linux in a VM.&amp;nbsp;&lt;span style=&quot;background-color: white;&quot;&gt;I like FOSS so I will use VirtualBox.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Unfortunately, this seems hard to do, so I have document my approach for others to improve upon.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Requirements&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
1. Run Linux in a VM using VirtualBox running on OS-X&lt;br /&gt;
&lt;br /&gt;
2. Use real/physical disk partitions so that when this laptop is better supported, I will be able to boot into these physical partitions and drop my VirtualBox and OS-X layers&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Times, &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Procedure&lt;/span&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #cc0000; font-size: large;&quot;&gt;Before proceeding, you need to understand that if you or I make a mistake, OS-X partitions, EFI partitions, and any other recovery data on our hard drives could be lost or a pain to recover.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #cc0000; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #cc0000; font-size: large;&quot;&gt;Your setup is likely to be different to mine so don&#39;t simply copy my detail and expect your system to work.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
I have re-partitioned my hard drive as follows:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;rex:~ phil$ diskutil list&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;/dev/disk0&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;#: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; TYPE NAME &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;SIZE &amp;nbsp; &amp;nbsp; &amp;nbsp; IDENTIFIER&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;0: &amp;nbsp; &amp;nbsp; &amp;nbsp;GUID_partition_scheme &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;*500.1 GB &amp;nbsp; disk0&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;1: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;EFI &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 209.7 MB &amp;nbsp; disk0s1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;2: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Apple_HFS Macintosh HD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;70.0 GB &amp;nbsp; &amp;nbsp;disk0s2&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;3: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Apple_Boot Recovery HD &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 650.0 MB &amp;nbsp; disk0s3&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;4: 21686148-6449-6E6F-744E-656564454649 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 200.0 MB &amp;nbsp; disk0s4&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;5: &amp;nbsp; &amp;nbsp; &amp;nbsp; Microsoft Basic Data &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20.0 GB &amp;nbsp; &amp;nbsp;disk0s5&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;6: &amp;nbsp; &amp;nbsp; &amp;nbsp; Microsoft Basic Data &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 20.0 GB &amp;nbsp; &amp;nbsp;disk0s6&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;7: &amp;nbsp; &amp;nbsp; &amp;nbsp; Microsoft Basic Data &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 350.0 GB &amp;nbsp; disk0s7&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp;8: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Linux Swap &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 19.8 GB &amp;nbsp; &amp;nbsp;disk0s8&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Partition 1 is my EFI partition - I don&#39;t want to touch this.&lt;br /&gt;
Partition 2 is my shrunk OS-X partition - again, I&#39;d like to keep this in good working order.&lt;br /&gt;
Partition 3 is OS-X recovery files - probably a CD/DVD image that I also need to keep safe.&lt;br /&gt;
Partition 4 is something that OS-X disk manager created - I&#39;ll leave that alone too.&lt;br /&gt;
Partition 5 already has a mostly-working Linux root file system - I don&#39;t want to mess with this.&lt;br /&gt;
Partition 6 will be my new Virtual Machine root file system (and possibly swap area).&lt;br /&gt;
Partition 7 already is formatted ext4 and has my /home file system - I want to keep this.&lt;br /&gt;
Partition 8 is a Linux swap area I will look at using a bit later.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
So, I only want to work with Partition 6 and 7.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;rex:phys phil$ ls -la /dev/disk0*&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;brw-r----- &amp;nbsp;1 root &amp;nbsp;operator &amp;nbsp; 14, &amp;nbsp; 0 22 Jul 19:47 /dev/disk0&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;brw-r----- &amp;nbsp;1 root &amp;nbsp;operator &amp;nbsp; 14, &amp;nbsp; 2 22 Jul 19:47 /dev/disk0s1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;brw-r----- &amp;nbsp;1 root &amp;nbsp;operator &amp;nbsp; 14, &amp;nbsp; 1 22 Jul 19:47 /dev/disk0s2&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;brw-r----- &amp;nbsp;1 root &amp;nbsp;operator &amp;nbsp; 14, &amp;nbsp; 3 22 Jul 19:47 /dev/disk0s3&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;brw-r----- &amp;nbsp;1 root &amp;nbsp;operator &amp;nbsp; 14, &amp;nbsp; 4 22 Jul 19:47 /dev/disk0s4&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;brw-r----- &amp;nbsp;1 root &amp;nbsp;operator &amp;nbsp; 14, &amp;nbsp; 5 22 Jul 19:47 /dev/disk0s5&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;brw-rw-rw- &amp;nbsp;1 root &amp;nbsp;operator &amp;nbsp; 14, &amp;nbsp; 6 26 Jul 22:37 /dev/disk0s6&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;brw-rw-rw- &amp;nbsp;1 root &amp;nbsp;operator &amp;nbsp; 14, &amp;nbsp; 7 26 Jul 21:51 /dev/disk0s7&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;brw-r----- &amp;nbsp;1 root &amp;nbsp;operator &amp;nbsp; 14, &amp;nbsp; 8 22 Jul 19:47 /dev/disk0s8&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
So that VirtualBox can access these partitions, I ran these commands to give everyone read and write access:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;sudo chmod a+rw /dev/disk0s6&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;sudo chmod a+rw /dev/disk0s7&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: center;&quot;&gt;
&lt;span style=&quot;color: #cc0000;&quot;&gt;Note: I suspect that after a reboot, I will need to re-run these commands - I&#39;ll solve that later.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
Create a new VM in VirtualBox.&lt;br /&gt;
&lt;br /&gt;
I called mine &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;phys&lt;/span&gt;, and told VB it will hold a 64-bit version of Ubuntu.&lt;br /&gt;
I gave it 2048 MB RAM, and told it not to worry about a start-up disk.&lt;br /&gt;
&lt;br /&gt;
I now have a &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;~/VirtualBox/phys&lt;/span&gt; folder for this VM.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;cd ~/VirtualBox/phys&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
VirtualBox needs a VMDK file to tell it how to manage each of these partitions.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;sudo VBoxManage internalcommands createrawvmdk -rawdisk /dev/disk0s6 -filename d0s6.vmdk&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;sudo VBoxManage internalcommands createrawvmdk -rawdisk /dev/disk0s7 -filename d0s7.vmdk&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Since these new files are owned by root, I ran &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;chown&lt;/span&gt; to fix this - you would use your own account name here:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;sudo chown phil:staff d0s6.vmdk&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;sudo chown phil:staff d0s7.vmdk&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This makes 2 VMDK files in my current VM directory.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;rex:phys phil$ ls -la&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;total 56&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;drwxr-xr-x &amp;nbsp;8 phil &amp;nbsp;staff &amp;nbsp; 272 26 Jul 21:31 .&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;drwxr-xr-x &amp;nbsp;7 phil &amp;nbsp;staff &amp;nbsp; 238 26 Jul 22:44 ..&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;-rw-r--r-- &amp;nbsp;1 phil &amp;nbsp;staff &amp;nbsp; 153 23 Jul 01:21 HOWTO.txt&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;drwx------ &amp;nbsp;6 phil &amp;nbsp;staff &amp;nbsp; 204 26 Jul 21:32 Logs&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;-rw------- &amp;nbsp;1 phil &amp;nbsp;staff &amp;nbsp; 633 26 Jul 22:47 d0s6.vmdk&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;-rw------- &amp;nbsp;1 phil &amp;nbsp;staff &amp;nbsp; 634 26 Jul 21:50 d0s7.vmdk&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;-rw------- &amp;nbsp;1 phil &amp;nbsp;staff &amp;nbsp;7524 26 Jul 21:31 phys.vbox&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;-rw------- &amp;nbsp;1 phil &amp;nbsp;staff &amp;nbsp;7524 26 Jul 21:28 phys.vbox-prev&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Now I added these two physical disk descriptions to my VM.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
You do this in Settings - Storage, select SATA, click &#39;Add Attachment&#39; icon, select Hard Disk, and select your VMDK file. I did this for each VMDK file.&lt;br /&gt;
&lt;br /&gt;
You will also need to add your Linux distribution ISO either using a real CD/DVD or using an ISO stored on your file system somewhere.&lt;br /&gt;
&lt;br /&gt;
Don&#39;t forget to make your VM boot from CD/DVD first.&lt;br /&gt;
&lt;br /&gt;
I have been terse here since those actions should be known by anyone who is experienced at creating VMs in VirtualBox.&lt;br /&gt;
&lt;br /&gt;
You can make other changes to your VM if you like, or you can do it later.&lt;br /&gt;
&lt;br /&gt;
You can now boot your VM.&lt;br /&gt;
&lt;br /&gt;
This is where I ran into problems: I could not get Ubuntu to format my &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;d0s6.vmdk&lt;/span&gt; partition during install. Instead, I ran Ubuntu&#39;s live CD and launched Ubuntu&#39;s Disk Utility. It showed 2 disks as expected. I added a GUID partition table to &lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;d0s6.vmdk&lt;/span&gt;, created a 4000 MB swap partition and a 16 GB ext4 root file system. I then formatted the file system.&lt;br /&gt;
&lt;br /&gt;
Now I installed Ubuntu: I told it to use the swap partition, and to use my 16 GB partition for root. To do this I told Ubuntu NOT to format it again since I formatted it earlier.&lt;br /&gt;
&lt;br /&gt;
I also told Ubuntu to use my existing home drive and again, to NOT format it since I want to keep its data.&lt;br /&gt;
&lt;br /&gt;
My install took hours, so be patient.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/7075826832157317829/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2012/07/howto-make-virtual-machines-running-in.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/7075826832157317829'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/7075826832157317829'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2012/07/howto-make-virtual-machines-running-in.html' title='Howto make Virtual Machines running in VirtualBox using Physical Partitions on OS-X'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-5186092311046475618</id><published>2022-04-13T12:18:00.001+10:00</published><updated>2022-04-13T12:18:14.749+10:00</updated><title type='text'>Blue-Green Water - Follow up</title><content type='html'>(Very old draft)&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;After almost 4 weeks, our blue-green stain has not returned.&lt;br /&gt;
&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;The addition of 500 mL of lime raised the pH to nearly 11. Over time this has reduced to below 10 since about 10,000 L of new rain has been collected.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;I also noted that the rain water had a pH of about 6. This was a little surprising since our tank water was pH 4.5.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;In monitoring the treated tank water I have found that the alkalinity of the water decreases to nearly 7 when left for 24 hours or more. I suspect that this is due to the water absorbing CO2 from the air and this may also explain why rain water has a higher pH compared to our tank water - if left, the pH increases as the water&amp;nbsp;absorbs&amp;nbsp;CO2.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div&gt;To help confirm this theory, I left two containers of treated tank water to stand. One was over 300mL (pH=9.94) and the other was less than 60 mL (pH=9.83). Both containers had similar surface areas. The idea is that given the same surface area, the two systems would absorb CO2 at the same rate but due to the different amounts of water, the larger body would change pH more slowly. This is what I observed: the smaller decreased pH to 7.15 in less than 24 hours. The larger body had a pH of 7.49.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
Note: Although the two samples should have started with the same pH I suspect the smaller sample had already absorbed significant CO2 before I measured it. I delayed measurement for 15 minutes.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;/div&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/5186092311046475618/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/blue-green-water-follow-up.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/5186092311046475618'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/5186092311046475618'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2022/04/blue-green-water-follow-up.html' title='Blue-Green Water - Follow up'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-4777183956597569197</id><published>2015-12-20T18:07:00.005+11:00</published><updated>2022-04-13T12:18:48.837+10:00</updated><title type='text'>Howto upgrade Ubuntu that is no longer supported.</title><content type='html'>&lt;span style=&quot;font-family: inherit;&quot;&gt;(very old draft - may not be complete)&lt;/span&gt;&lt;div&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;div style=&quot;color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Adapted from&amp;nbsp;&lt;a href=&quot;http://askubuntu.com/questions/501976/unable-to-upgrade-from-13-04-to-14-04/502029#502029&quot;&gt;http://askubuntu.com/questions/501976/unable-to-upgrade-from-13-04-to-14-04/502029#502029&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;1) Edit apt sources to use &quot;old releases&quot; repositories.&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sudo sed -i -e &#39;s/archive.ubuntu.com\|security.ubuntu.com/old-releases.ubuntu.com/g&#39; /etc/apt/sources.list&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;But your sources.list file may contain other repositories that have, for me, prevented this process from working.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;a) Manually edit &lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/etc/apt/sources.list&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; and comment out these entries&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;deb-src ...&lt;br /&gt;deb http://archive.canonical.com...&lt;br /&gt;deb http://extras.ubuntu.com...&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;and comment out any other repositories that were not converted to &lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;old-releases.ubuntu.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;b) Change any country specific URLs to &#39;US&#39; versions&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;eg. &lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;au.old-releases.ubuntu.com&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; to &lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;old-releases.ubuntu.com&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;2) Update packages&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sudo apt-get update&lt;br /&gt;sudo apt-get dist-upgrade&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;3) Upgrade Ubuntu version&lt;/span&gt;&lt;br /&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sudo do-release-upgrade -d&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/4777183956597569197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2015/12/howto-upgrade-ubuntu-that-is-no-longer.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/4777183956597569197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/4777183956597569197'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2015/12/howto-upgrade-ubuntu-that-is-no-longer.html' title='Howto upgrade Ubuntu that is no longer supported.'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-4260914117684861544</id><published>2015-05-01T22:13:00.000+10:00</published><updated>2015-05-11T02:10:03.728+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="lighttpd"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="smokeping"/><title type='text'>Howto install smokeping on lighttpd on ubuntu 15.04 linux</title><content type='html'>Smokeping is a great network and service monitoring tool. But it only configures correctly if you are using apache.&lt;br /&gt;
&lt;br /&gt;
I want to run a very light web server and therefore you need to do some manual configuration to make it work.&lt;br /&gt;
&lt;br /&gt;
1. Install lighttpd.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo apt-get install lighttpd&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
2. Ensure that http://localhost works. You should get page like this:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr-JNmhUwxGxmrR6lzD6kxycyrr_n_Ujv3-kzRNHKh0aSqi1VFd_nMwgts52w1aMyiqvShPWFE6jLw4baE_15oWZLoabLX94Bgx5T4xR9BynSlauGDCC5H2X2TRc844xBV0B2OQ8cDTxa5/s1600/lighttpd-Screenshot+from+2015-05-01+19:24:31.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;99&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr-JNmhUwxGxmrR6lzD6kxycyrr_n_Ujv3-kzRNHKh0aSqi1VFd_nMwgts52w1aMyiqvShPWFE6jLw4baE_15oWZLoabLX94Bgx5T4xR9BynSlauGDCC5H2X2TRc844xBV0B2OQ8cDTxa5/s320/lighttpd-Screenshot+from+2015-05-01+19:24:31.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
3. Ins&lt;span style=&quot;font-family: Georgia, Times New Roman, serif;&quot;&gt;tall smokeping&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo apt-get install smokeping&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;
4. Enable Lighttpd CGI module&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo lighttpd-enable-mod cgi&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
5. Reload Lighttpd&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo /etc/init.d/lighttpd force-reload&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
6. Ensure that this link brings up a semi-functional page&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;http://localhost/cgi-bin/smokeping.cgi&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Icons and graphs probably do not work.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicGMZgFzIJKURhbuLwKDlX3he_aOoEZMR4F3dTyvpW-nsZ-GlfqUQZciFwXOSyvOTzktCnwIXc7CuJQAV254Y4sdm9wyddv8fQxU3gMngGKoUli9Oc6vjBgaSQUBg6ll20lJLy1x3Buyax/s1600/smoke-ping-no-images-Screenshot+from+2015-05-01+21:53:15.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em; text-align: center;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;204&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEicGMZgFzIJKURhbuLwKDlX3he_aOoEZMR4F3dTyvpW-nsZ-GlfqUQZciFwXOSyvOTzktCnwIXc7CuJQAV254Y4sdm9wyddv8fQxU3gMngGKoUli9Oc6vjBgaSQUBg6ll20lJLy1x3Buyax/s320/smoke-ping-no-images-Screenshot+from+2015-05-01+21:53:15.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIb_xZaOH9rSmDZkiy_jtl81JpVRS-iMryxg0krL3A_cerUIz4h1GBueCeirSDyFCb0kaDg-siInlhBihvI3KYe1Urugq40aF_pHuu-HBgUjc19Q3NgkM9Vf57oKhNzsgNmIyq6bSB-lKy/s1600/smokeping-local-no-images-Screenshot+from+2015-05-01+21:54:06.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;295&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhIb_xZaOH9rSmDZkiy_jtl81JpVRS-iMryxg0krL3A_cerUIz4h1GBueCeirSDyFCb0kaDg-siInlhBihvI3KYe1Urugq40aF_pHuu-HBgUjc19Q3NgkM9Vf57oKhNzsgNmIyq6bSB-lKy/s320/smokeping-local-no-images-Screenshot+from+2015-05-01+21:54:06.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div&gt;
6. Create a directory link in /var/www/ as smokeping to smokeping static page files:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo ln -s /usr/share/smokeping/www /var/www/smokeping&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
7. For some reason, lighttpd base directory is /var/www/html. This needs to be changed to /var/www (which I suspect other packages will be expecting).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Edit /etc/lighttpd/lighttpd.conf&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Change this line:&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;server.document-root = &quot;/var/www/html&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
to:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;server.document-root = &quot;/var/www&quot;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
8. Restart lighttpd and smokeping&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo /etc/init.d/lighttpd restart&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo /etc/init.d/smokeping restart&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Did you get this?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYpuwoGOT-JHXOwyJc6tmVztclGveNOqAZPMcKWiSWRGEeGJ6F3MXIQLK-ad0wz3AKI1uCnmL883EZMdxoQ8uXYM39wJ_84hH8m7QiW_VEL4BOLbYi2XFbuNrkAh8m1TLFDsdwgdHEaSIz/s1600/smokeping-working-Screenshot+from+2015-05-01+21:44:34.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;213&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjYpuwoGOT-JHXOwyJc6tmVztclGveNOqAZPMcKWiSWRGEeGJ6F3MXIQLK-ad0wz3AKI1uCnmL883EZMdxoQ8uXYM39wJ_84hH8m7QiW_VEL4BOLbYi2XFbuNrkAh8m1TLFDsdwgdHEaSIz/s320/smokeping-working-Screenshot+from+2015-05-01+21:44:34.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkRzPxGw7uU1Wq71WNVmEXZl5fFVTrTPAYj0lqD_nrQLAlT30f-vl6uoSN2h3OOBVpoUM2DwyntKtMOb898WO2ZnaW5jK-Tixq42aBNWb0ScP4RWDmp3_cuuH4fdaZYvswz-sY9StsbdpB/s1600/smokeping-host-Screenshot+from+2015-05-01+21:48:17.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;299&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkRzPxGw7uU1Wq71WNVmEXZl5fFVTrTPAYj0lqD_nrQLAlT30f-vl6uoSN2h3OOBVpoUM2DwyntKtMOb898WO2ZnaW5jK-Tixq42aBNWb0ScP4RWDmp3_cuuH4fdaZYvswz-sY9StsbdpB/s320/smokeping-host-Screenshot+from+2015-05-01+21:48:17.png&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Update to enable fastcgi.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I don&#39;t know what fastcgi is, but compared to cgi is is fast.&lt;br /&gt;
&lt;br /&gt;
On my laptop, it is 5 times faster!&lt;br /&gt;
&lt;br /&gt;
1. Copy smokeping.fcgi.dist as smokeping.fcgi&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo cp /var/www/smokeping/smokeping.fcgi.dist /var/www/smokeping/smokeping.fcgi&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
2. Edit smokeping.fcgi to point to your smokeping.cgi script&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;exec /usr/lib/cgi-bin/smokeping.cgi /etc/smokeping/config&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
NOTE: my file had smokeping_cgi. This seems to be wrong and must be changed to smokeping.cgi&lt;br /&gt;
&lt;br /&gt;
3. Modify /etc/lighttpd/conf-available/10-fastcgi.conf&lt;br /&gt;
&lt;br /&gt;
Add this:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;fastcgi.server += (&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &quot;smokeping.fcgi&quot; =&amp;gt; ((&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &quot;socket&quot; &amp;nbsp; =&amp;gt; &quot;/var/run/lighttpd/fcgi.socket&quot;,&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &quot;bin-path&quot; =&amp;gt; &quot;/usr/share/smokeping/www/smokeping.fcgi&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; ))&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
4. Enable Lighttpd FastCGI module&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo lighttpd-enable-mod fastcgi&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
5. Reload Lighttpd&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo /etc/init.d/lighttpd force-reload&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
6. This link should now work&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;http://localhost/smokeping/smokeping.fcgi&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/4260914117684861544/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2015/05/howto-install-smokeping-on-lighttpd-on.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/4260914117684861544'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/4260914117684861544'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2015/05/howto-install-smokeping-on-lighttpd-on.html' title='Howto install smokeping on lighttpd on ubuntu 15.04 linux'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjr-JNmhUwxGxmrR6lzD6kxycyrr_n_Ujv3-kzRNHKh0aSqi1VFd_nMwgts52w1aMyiqvShPWFE6jLw4baE_15oWZLoabLX94Bgx5T4xR9BynSlauGDCC5H2X2TRc844xBV0B2OQ8cDTxa5/s72-c/lighttpd-Screenshot+from+2015-05-01+19:24:31.png" height="72" width="72"/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-7935789985660621594</id><published>2015-03-08T13:13:00.001+11:00</published><updated>2015-05-01T19:15:25.267+10:00</updated><title type='text'>Asus Transformer TX201 - Android + Ubuntu 14.10 Linux</title><content type='html'>&lt;input class=&quot;CfgfKe sk&quot; data-sbxm=&quot;1&quot; data-token-displayname=&quot;Asus&quot; data-token-entity=&quot;#Asus&quot; email=&quot;Asus&quot; style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 1px solid rgb(221, 221, 221); color: #427fed; font-family: Roboto, arial, sans-serif; font-size: 13px; font-stretch: normal; line-height: 1.4; margin: 0px 1px; padding: 0px 1px; vertical-align: baseline; white-space: nowrap;&quot; tabindex=&quot;-1&quot; type=&quot;button&quot; value=&quot;#Asus&quot; /&gt;&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;input class=&quot;CfgfKe sk&quot; data-sbxm=&quot;1&quot; data-token-displayname=&quot;TX201&quot; data-token-entity=&quot;#TX201&quot; email=&quot;TX201&quot; style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 1px solid rgb(221, 221, 221); color: #427fed; font-family: Roboto, arial, sans-serif; font-size: 13px; font-stretch: normal; line-height: 1.4; margin: 0px 1px; padding: 0px 1px; vertical-align: baseline; white-space: nowrap;&quot; tabindex=&quot;-1&quot; type=&quot;button&quot; value=&quot;#TX201&quot; /&gt;&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;&amp;nbsp;The Good and the gooder (and some bad points)&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;GOODER:&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;2 computers in 1. Keyboard is a dual core i5 and tablet is an intel Z2560 (x86)&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;#Android and&amp;nbsp;&lt;/span&gt;&lt;input class=&quot;CfgfKe sk&quot; data-sbxm=&quot;1&quot; data-token-displayname=&quot;Windows&quot; data-token-entity=&quot;#Windows&quot; email=&quot;Windows&quot; style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 1px solid rgb(221, 221, 221); color: #427fed; font-family: Roboto, arial, sans-serif; font-size: 13px; font-stretch: normal; line-height: 1.4; margin: 0px 1px; padding: 0px 1px; vertical-align: baseline; white-space: nowrap;&quot; tabindex=&quot;-1&quot; type=&quot;button&quot; value=&quot;#Windows&quot; /&gt;&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;&amp;nbsp;8 and&amp;nbsp;&lt;/span&gt;&lt;input class=&quot;CfgfKe sk&quot; data-sbxm=&quot;1&quot; data-token-displayname=&quot;Linux&quot; data-token-entity=&quot;#Linux&quot; email=&quot;Linux&quot; style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 1px solid rgb(221, 221, 221); color: #427fed; font-family: Roboto, arial, sans-serif; font-size: 13px; font-stretch: normal; line-height: 1.4; margin: 0px 1px; padding: 0px 1px; vertical-align: baseline; white-space: nowrap;&quot; tabindex=&quot;-1&quot; type=&quot;button&quot; value=&quot;#Linux&quot; /&gt;&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;&amp;nbsp;and whatever else you can install on a x86 PC.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Using android&amp;nbsp;&lt;/span&gt;&lt;input class=&quot;CfgfKe sk&quot; data-sbxm=&quot;1&quot; data-token-displayname=&quot;adb&quot; data-token-entity=&quot;#adb&quot; email=&quot;adb&quot; style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 1px solid rgb(221, 221, 221); color: #427fed; font-family: Roboto, arial, sans-serif; font-size: 13px; font-stretch: normal; line-height: 1.4; margin: 0px 1px; padding: 0px 1px; vertical-align: baseline; white-space: nowrap;&quot; tabindex=&quot;-1&quot; type=&quot;button&quot; value=&quot;#adb&quot; /&gt;&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;&amp;nbsp;you don&#39;t need a cable.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Once you manage to boot from USB,&amp;nbsp;&lt;/span&gt;&lt;input class=&quot;CfgfKe sk&quot; data-sbxm=&quot;1&quot; data-token-displayname=&quot;Ubuntu&quot; data-token-entity=&quot;#Ubuntu&quot; email=&quot;Ubuntu&quot; style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 1px solid rgb(221, 221, 221); color: #427fed; font-family: Roboto, arial, sans-serif; font-size: 13px; font-stretch: normal; line-height: 1.4; margin: 0px 1px; padding: 0px 1px; vertical-align: baseline; white-space: nowrap;&quot; tabindex=&quot;-1&quot; type=&quot;button&quot; value=&quot;#Ubuntu&quot; /&gt;&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;&amp;nbsp;14.10 is trivial to install.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;UPDATE: I upgraded kernel to 3.18 and then 3.19.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Fast switching between Android and Linux (or Windows). Both run at same time or you can shut down one and use other.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Chargers are small and well designed Asus plug-packs - not bricks.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Easy to open Keyboard to change HDD.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Under Linux, everything seems to work. Screen brightness is not working properly, but it does work.&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;UPDATE: Thanks to Viktar Vaŭčkievič and #ArchLinux, I compiled and installed an ALS module which automatically adjusts screen backlight. See&amp;nbsp;https://github.com/victorenator/als.git&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Running linux in&amp;nbsp;&lt;/span&gt;&lt;input class=&quot;CfgfKe sk&quot; data-sbxm=&quot;1&quot; data-token-displayname=&quot;EFI&quot; data-token-entity=&quot;#EFI&quot; email=&quot;EFI&quot; style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 1px solid rgb(221, 221, 221); color: #427fed; font-family: Roboto, arial, sans-serif; font-size: 13px; font-stretch: normal; line-height: 1.4; margin: 0px 1px; padding: 0px 1px; vertical-align: baseline; white-space: nowrap;&quot; tabindex=&quot;-1&quot; type=&quot;button&quot; value=&quot;#EFI&quot; /&gt;&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;&amp;nbsp;mode.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;GOOD:&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;11.6&quot; screen. Could be an inch bigger based on bezel.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Tablet and keyboard have WiFi and Bluetooth.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Tablet&amp;nbsp;&lt;/span&gt;&lt;input class=&quot;CfgfKe sk&quot; data-sbxm=&quot;1&quot; data-token-displayname=&quot;root&quot; data-token-entity=&quot;#root&quot; email=&quot;root&quot; style=&quot;background: rgb(238, 238, 238); border-radius: 2px; border: 1px solid rgb(221, 221, 221); color: #427fed; font-family: Roboto, arial, sans-serif; font-size: 13px; font-stretch: normal; line-height: 1.4; margin: 0px 1px; padding: 0px 1px; vertical-align: baseline; white-space: nowrap;&quot; tabindex=&quot;-1&quot; type=&quot;button&quot; value=&quot;#root&quot; /&gt;&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;&amp;nbsp;is possible.&amp;nbsp;http://forum.xda-developers.com/showpost.php?p=57341475&amp;amp;postcount=27&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;SD card on tablet mounts in Windows/Linux. But Ubuntu keeps opening a file manager every time I switch back from Android.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;UPDATE: Fixed by Control Panel - Details - Removable Media - Tick &#39;Never prompt or start programs on media insertion&#39;&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Linux kernel modules to support device.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Aluminium tablet and keyboard backs.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;BAD:&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Matt screen might be better.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;No 3G or LTE.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Can not connect 3G modem to tablet (so far).&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;No Android update from Asus.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;No keyboard backlight nor fluorescent key labels.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;When screen is open, tablet/screen hinge opens lower than base of keyboard which makes it uncomfortable as a lap-top.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;A bit heavy for it&#39;s size at 1.7 kg (tablet and keyboard)&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Only 2.4GHz WiFi.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;UPDATE: But syslog indicates PC might support 5 GHz.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;Rear camera does not work on PC.&lt;/span&gt;&lt;br /&gt;
&lt;br style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot; /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;WiFi (RTL8821) occasionally locks-up. To fix, remove module, put keyboard to sleep (Fn+f2), wake (power button) and load module. Module is rtl8821ae in my case.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;UPDATE: This only seems to happen (now) when I tether to an iPhone 5s.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;UPDATE: #ArchLinux also had a solution to this - too early for me to confirm that it is fixed. Does not seem to fix.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #404040; font-family: Roboto, arial, sans-serif; font-size: 13px; line-height: 14.5600004196167px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/7935789985660621594/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2015/03/asus-transformer-tx201-android-ubuntu.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/7935789985660621594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/7935789985660621594'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2015/03/asus-transformer-tx201-android-ubuntu.html' title='Asus Transformer TX201 - Android + Ubuntu 14.10 Linux'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-5058183186111500450</id><published>2014-07-03T23:52:00.000+10:00</published><updated>2017-05-02T00:19:18.205+10:00</updated><title type='text'>Howto install OpenWRT on Netgear DG834 or DG834G (v1 or v2)</title><content type='html'>&lt;span style=&quot;font-family: inherit;&quot;&gt;Got a spare Netgear DG834 or DG834G? Want to try OpenWRT? Want an easy process?&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;This assume you are running Ubuntu.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Try this:&lt;/span&gt;&lt;/h2&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;0. Before you start...&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;0.1 Ensure router power plug is secure.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;0.2 Ensure LAN cable is clicked into both router and computer.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;0.3 Ensure your router is working by opening&amp;nbsp;&lt;a href=&quot;http://192.168.0.1/&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;http://192.168.0.1&lt;/a&gt;&amp;nbsp;(or whatever IP address you have changed it to)&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;1. Backup router config in case you want to restore factory firmware.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;2. Factory default router to ensure it&#39;s IP address is 192.168.0.1&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;2.1 Power on router.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;2.2 Hold in reset button until test light (tick) flashes.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;2.3 Wait for router to reboot (I think - might have to power cycle it).&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;3. Run my script to turn on telnet, backup partitions, extract environment file, patch ADAM2 to turn off checksum test, download OpenWRT, split into 2 parts, install patched ADAM2 and OpenWRT parts...&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Note: This is not conventional and may not work. But unless you have some hardware fault or power failure, you can fairly easily recover your Netgear using a Netgear image and a small C program called nftp. I&#39;ll add instructions below.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;3.1 mkdir &lt;working directory=&quot;&quot;&gt;&lt;/working&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;3.2 cd &lt;working directory=&quot;&quot;&gt;&lt;/working&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;3.3 save my script here&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;3.4 Run my script like this:&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;b&gt;bash ./pc-setup-wrt-v2.bash&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;... and follow my instructions.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;4. Boot into OpenWRT&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;4.1 Power cycle router.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;4.2 Connect ethernet port - may take 1-2 minutes first time.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;4.3 Browse to&amp;nbsp;&lt;a href=&quot;http://192.168.1.1/&quot; style=&quot;color: #1155cc;&quot; target=&quot;_blank&quot;&gt;http://192.168.1.1&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;4.4 Follow instructions to set password.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Done.&lt;/span&gt;&lt;/div&gt;
&lt;h2 style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;My Script&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;Save as pc-setup-wrt-v2.bash&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# Factory default router&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; Power on. Hold in reset button until test light (tick) turns on.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# Setup PC ethernet interface use DHCP. Disconnect. Connect - should get 192.168.0.2?&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; router should be 192.168.0.1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# test by pointing browser to 192.168.0.1 - should get Netgear Setup Wizard screen&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# route del default&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;#&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# info stuff here&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# MTDx partitions using 3.??.32? - seems to have 5 mtdx&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# mtd0 &amp;nbsp;0x900d0000,0x903e0000 &amp;nbsp;ROOTFS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# mtd1 &amp;nbsp;0x90020000,0x900d0000 &amp;nbsp;Kernel&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# mtd2 &amp;nbsp;0x90000000,0x90020000 &amp;nbsp;ADAM2&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# mtd3 &amp;nbsp;0x903e0000,0x903f0000 &amp;nbsp;Probably Netgear firmware config&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# mtd4 &amp;nbsp;0x903f0000,0x90400000 &amp;nbsp;Probably ADAM2 config&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# Ordered&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# mtd2 &amp;nbsp;0x90000000,0x90020000 &amp;nbsp;ADAM2&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# mtd1 &amp;nbsp;0x90020000,0x900d0000 &amp;nbsp;Kernel&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# mtd0 &amp;nbsp;0x900d0000,0x903e0000 &amp;nbsp;ROOTFS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# mtd3 &amp;nbsp;0x903e0000,0x903f0000 &amp;nbsp;Probably Netgear firmware config&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# mtd4 &amp;nbsp;0x903f0000,0x90400000 &amp;nbsp;Prob. ADAM2 config&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Install needed packages...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo apt-get install wget&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo apt-get install expect&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo apt-get install mini-httpd&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Get openwrt image - this is for mtd0 and mtd1 so it needs to be split...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;which wget || { echo &quot;ERROR: wget not installed&quot;; exit 1; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;OPENWRT=&quot;openwrt-ar7-squashfs.bin&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;[[ -f ${OPENWRT} ]] \&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; || wget &quot;http://downloads.openwrt.org/backfire/10.03.1/ar7/${OPENWRT}&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Configure this script...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# ip address of router - should be 192.168.0.1 after factory reboot&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;ROUTER=&quot;192.168.0.1&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# ip address on this host - should not need to change&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;HOST=&quot;192.168.0.10&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# port on this host that has ethernet cable to router plugged in - should be same&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;ETH=&quot;eth0&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Configure this script (ROUTER, HOST, and ETH) variables.&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Disconnect from all other networks.&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Next time you run this it will reconfigure your ETH port and &quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;connect to your router.&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;If you have configured variables correctly, comment out next line.&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;exit 0&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Split OpenWRT image file...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;OPEN0=&quot;ow-mtd0.bin&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;OPEN1=&quot;ow-mtd1.bin&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;which dd || { echo &quot;ERROR: dd not installed&quot;; exit 1; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;dd if=${OPENWRT} of=${OPEN1} count=720896 bs=1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;dd if=${OPENWRT} of=${OPEN0} &amp;nbsp;skip=720896 bs=1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Reconfigure ETH port...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;which ifconfig || { echo &quot;ERROR: ifconfig not installed&quot;; exit 1; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo ifconfig ${ETH} ${HOST} netmask 255.255.255.0&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Turn on telnet - assumes your reouter has been factory defaulted...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;LOGIN=&quot;--user=admin --password=password&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;wget -v -O debug.log ${LOGIN} &quot;http://${ROUTER}/setup.cgi?todo=debug&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Telnet to router, and do some heavy stuff - but nothing dangerous...yet...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# Assign an IP address to ADAM2 (patch)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# Backup each MTD Block to RAM&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# Spawn a HTTP Daemon to download MTD Backups&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;which expect || { echo &quot;ERROR: expect not installed&quot;; exit 1; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;which telnet || { echo &quot;ERROR: telnet not installed&quot;; exit 1; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;expect &amp;gt;telnet.log &amp;lt;&lt;eof font=&quot;&quot;&gt;&lt;/eof&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;set timeout 30&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;set send_human {.1 .3 1 .05 2}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;spawn telnet ${ROUTER}; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send_error &quot;Telnet script\n&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;cat /proc/sys/dev/adam2/environment | grep -v \&quot;^my\&quot; &amp;gt; /proc/sys/dev/adam2/environment\r&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;echo \&quot;my_ipaddress ${ROUTER}\&quot; &amp;gt; /proc/sys/dev/adam2/environment\r&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send_error &quot;Cat environment file...\n&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;cat /proc/sys/dev/adam2/environment\r&quot;; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send_error &quot;Copy partitions to tmp...\n&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;dd if=/dev/mtdblock/0 of=/tmp/mtd0.bin\r&quot;; expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;dd if=/dev/mtdblock/1 of=/tmp/mtd1.bin\r&quot;; expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;dd if=/dev/mtdblock/2 of=/tmp/mtd2.bin\r&quot;; expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;dd if=/dev/mtdblock/3 of=/tmp/mtd3.bin\r&quot;; expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;dd if=/dev/mtdblock/4 of=/tmp/mtd4.bin\r&quot;; expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send_error &quot;Copy environment file...\n&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;cat /proc/sys/dev/adam2/environment &amp;gt; /tmp/environment.bak\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;cd /tmp\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send_error &quot;Start web server...\n&quot;;send -h &quot;mini_httpd -p 1080\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;exit\r&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;EOF&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Pull files from router...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;wget ${LOGIN} -O mtd0.bin &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&quot;http://${ROUTER}:1080/mtd0.bin&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;wget ${LOGIN} -O mtd1.bin &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&quot;http://${ROUTER}:1080/mtd1.bin&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;wget ${LOGIN} -O mtd2.bin &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&quot;http://${ROUTER}:1080/mtd2.bin&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;wget ${LOGIN} -O mtd3.bin &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&quot;http://${ROUTER}:1080/mtd3.bin&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;wget ${LOGIN} -O mtd4.bin &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&quot;http://${ROUTER}:1080/mtd4.bin&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;wget ${LOGIN} -O environment.bak &quot;http://${ROUTER}:1080/environment.bak&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;See if correct ADAM2 versio is installed...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;which grep || { echo &quot;ERROR: grep not installed&quot;; exit 1; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;grep &quot;bootloaderVersion.*0.18.01&quot; environment.bak \&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; || { echo &quot;HALT: Boot loader version is not 0.18.01&quot;; exit 1; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;See if ADAM2 is already patched...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;ADAM2NEW=&quot;mtd2.bin.new&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;which md5sum || { echo &quot;ERROR: md5sum not installed&quot;; exit 1; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;MDS2=$( md5sum mtd2.bin | cut -d&#39; &#39; -f1 )&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;if [[ &quot;$MDS2&quot; == &quot;d8a2f4623bf6f64b7427812f0e849aa7&quot; ]]; then&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; echo &quot;mtd2.bin already patched&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; cp mtd2.bin ${ADAM2NEW}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;else&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; echo &quot;mtd2.bin not patched&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; echo &quot;Verify ADAM2 file...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; MDS=$( md5sum mtd2.bin | cut -d&#39; &#39; -f1 )&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; if [[ &quot;$MDS&quot; != &quot;0530bfdf00ec155f4182afd70da028c1&quot; ]]; then&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; echo &quot;HALT: ADAM2 (mtd2.bin) MD5 sum does not match&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; exit 1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; fi&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; echo &quot;Patch ADAM2...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; cp mtd2.bin ${ADAM2NEW}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; printf &#39;\x00\x00\x00\x00&#39; | dd of=${ADAM2NEW} bs=1 seek=14660 count=4 conv=notrunc&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; echo &quot;Verify patched ADAM2...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; MDS2=$( md5sum ${ADAM2NEW} | cut -d&#39; &#39; -f1 )&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; if [[ &quot;$MDS2&quot; != &quot;d8a2f4623bf6f64b7427812f0e849aa7&quot; ]]; then&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; echo &quot;HALT: Modified ADAM2 (${ADAM2NEW}) MD5 sum does not match&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; exit 1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; fi&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;fi&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Kill off any legacy http servers (if we have somehow left them running)...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;killall mini-httpd&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Start local web server...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sudo mini-httpd -p 8000 || { echo &quot;ERROR: mini-httpd did not start&quot;; exit 1; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Download modified ADAM2 and OpenWRT files to router and install them...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;expect &amp;gt;flash.log &amp;lt;&lt;eof font=&quot;&quot;&gt;&lt;/eof&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;set timeout 30&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;set send_human {.1 .3 1 .05 2}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;spawn telnet ${ROUTER}; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send_error &quot;Telnet script to install modified ${ADAM2NEW}\n&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;cd /tmp\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;rm mtd0.bin\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;rm mtd1.bin\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;rm mtd2.bin\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;rm mtd3.bin\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;rm mtd4.bin\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;rm ${ADAM2NEW}\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send_error &quot;Download modified ${ADAM2NEW} from ${HOST}...\n&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;wget http://${HOST}:8000/${ADAM2NEW}\r&quot;; expect &quot;# &quot;; sleep 10;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;dd if=${ADAM2NEW} bs=1 skip=110747 count=5\r&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;expect {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &quot;DG834&quot; { send_error &quot;GOOD: ${ADAM2NEW} contains DG834 string\n&quot;; };&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; timeout { send_error &quot;ERROR: TIMEOUT: Did not get DG834\n&quot;; exit; &amp;nbsp;};&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &quot;# &quot; &amp;nbsp; &amp;nbsp;{ send_error &quot;ERROR: Got prompt instead of DG834\n&quot;; exit; };&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send_error &quot;Install modified ${ADAM2NEW}...\n&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;dd if=${ADAM2NEW} of=/dev/mtdblock/2\r&quot;; expect &quot;# &quot;; sleep 20;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;rm ${ADAM2NEW}\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;rm ${OPEN0}\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send_error &quot;Download ${OPEN0} from ${HOST}...\n&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;wget http://${HOST}:8000/${OPEN0}\r&quot;; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 10;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send_error &quot;Install ${OPEN0}...\n&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;dd if=${OPEN0} of=/dev/mtdblock/0\r&quot;; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 20;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;rm ${OPEN0}\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;rm ${OPEN1}\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send_error &quot;Download ${OPEN1} from ${HOST}...\n&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;wget http://${HOST}:8000/${OPEN1}\r&quot;; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 10;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send_error &quot;Install ${OPEN1}...\n&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;dd if=${OPEN1} of=/dev/mtdblock/1\r&quot;; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 20;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;rm ${OPEN1}\r&quot;; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;expect &quot;# &quot;; sleep 1;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;send -h &quot;reboot\r&quot;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;EOF&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Shutdown local web server...&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;killall mini-httpd&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;All done.&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Power cycle router.&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Reconnect ethernet interface - may take 1-2 minutes&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;echo &quot;Browse to http://192.168.1.1&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;exit 0&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
&lt;span style=&quot;background-color: white; color: #222222; font-family: inherit;&quot;&gt;Basic Configuration Steps&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-color: white; color: #222222;&quot;&gt;
&lt;div style=&quot;font-family: arial, sans-serif; font-size: 13px;&quot;&gt;
Save and Apply after each change.&lt;/div&gt;
&lt;div style=&quot;font-family: arial, sans-serif; font-size: 13px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-family: arial, sans-serif; font-size: 13px;&quot;&gt;
If unsure, power cycle router.&lt;/div&gt;
&lt;div style=&quot;font-family: arial, sans-serif; font-size: 13px;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &amp;quot;arial&amp;quot; , sans-serif; font-size: 13px;&quot;&gt;Set password&lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-family: arial, sans-serif; font-size: 13px;&quot;&gt;
Set timezone&lt;br /&gt;
&lt;div&gt;
Set dropbear (ssh) interface to lan&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Edit LAN interface&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; IP address (WARNING: This gives me most headaches - perhaps leave it alone for a while)&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; (When you save and apply, you may need to disconnect/reconnect ethernet interface on pc)&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; I set MTU to 1474&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Add new (PPPoATM) interface&lt;/div&gt;
&lt;div&gt;
Set username and password&lt;/div&gt;
&lt;div&gt;
Set custom DNS servers to OpenDNS 208.67.222.222 and 208.67.220.220&lt;/div&gt;
&lt;div&gt;
Assign ADSL interface to WAN&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Edit Wifi&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; Enable&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; Set SSID etc.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; Set to WEP and generate WEP hex key somehow.&lt;/div&gt;
&lt;div&gt;
&lt;br clear=&quot;all&quot; /&gt;
&lt;div&gt;
No WPA???&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/5058183186111500450/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2014/07/howto-install-openwrt-on-netgear-dg834.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/5058183186111500450'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/5058183186111500450'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2014/07/howto-install-openwrt-on-netgear-dg834.html' title='Howto install OpenWRT on Netgear DG834 or DG834G (v1 or v2)'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-5232212644084503781</id><published>2014-01-12T18:55:00.001+11:00</published><updated>2014-01-12T21:14:04.160+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="convert"/><category scheme="http://www.blogger.com/atom/ns#" term="disk"/><category scheme="http://www.blogger.com/atom/ns#" term="mbr"/><category scheme="http://www.blogger.com/atom/ns#" term="partition"/><category scheme="http://www.blogger.com/atom/ns#" term="virtualbox"/><category scheme="http://www.blogger.com/atom/ns#" term="vmdk"/><title type='text'>Virtualize an old Windows XP disk partition (howto convert disk partition to virtual disk for VirtualBox)</title><content type='html'>&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;div&gt;
I dug out an old hard disk. I was curious: what gems are stored here?&lt;br /&gt;
&lt;br /&gt;
Turns out there was nothing, but it was in interesting exercise in converting a single disk partition into a VM - something that is not trivial.&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
I
 plugged my old drive into a USB hard disk docking station and had a look. It contained Windows
 XP and Linux from an old PC dating from 2004-2007 I believe.&lt;/div&gt;
&lt;br /&gt;
&quot;Hey!&quot; I thought. I could virtualize this for no good reason and show how easy it is using free and open source software.&lt;/div&gt;
&lt;h3&gt;
Ubuntu Packages&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
I installed VirtualBox and mbr. &lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;h3&gt;
Create VirtualBox VM&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Select New&lt;/li&gt;
&lt;li&gt;Name your VM (say TEST)&lt;/li&gt;
&lt;li&gt;Select Windows and Windows XP&lt;/li&gt;
&lt;li&gt;Set memory size (default is ok)&lt;/li&gt;
&lt;li&gt;Select &#39;do not add a virtual hard drive&#39; - we will create this later in tis VM&#39;s directory.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;h3&gt;
Create Virtual Disk Drive&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
Open a terminal and change to your &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;~/VirtualBox\ VM/TEST&lt;/span&gt;&lt;/span&gt; directory for this example.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Copy and paste my script into your editor.&lt;br /&gt;
&lt;br /&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;DISK=/dev/sdd&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;PART=1&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;printf &quot;Copy boot sector image...\n&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;sudo dd if=$DISK of=mbr.img bs=512 count=1 || { printf &quot;FAILED\n&quot;; exit 1; }&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;printf &quot;Done\n&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;# put &#39;normal&#39; mbr incase grub or something was used&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;printf &quot;Replace MBR code...&quot;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;sudo install-mbr mbr.img -t 36 || { printf &quot;FAILED\n&quot;; exit 1; }&lt;/span&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;blockquote&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;printf &quot;Done\n&quot;&lt;br /&gt;&lt;br /&gt;printf &quot;Copy disk (%s) partition %d...(at 10MB/s 1GB will take 100s)...\n&quot; &quot;$DISK&quot; $PART&lt;br /&gt;PARTIMG=part${PART}.img&lt;br /&gt;sudo dd if=${DISK}${PART} of=$PARTIMG bs=512 || { printf &quot;FAILED\n&quot;; exit 1; }&lt;br /&gt;sudo chown $USER:$USER $PARTIMG&lt;br /&gt;printf &quot;Done\n&quot;&lt;br /&gt;&lt;br /&gt;printf &quot;Make VirtualBox VMDK image with MBR...\n&quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;sudo VBoxManage internalcommands createrawvmdk -filename ./disk.vmdk -rawdisk $DISK -partitions $PART -mbr ./mbr.img || { printf &quot;FAILED\n&quot;; exit 1; }&lt;br /&gt;# VB needs this owned by user&lt;br /&gt;sudo chown $USER:$USER disk-pt.vmdk&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;printf &quot;Done\n&quot;&lt;br /&gt;&lt;br /&gt;# switch to partition image and zero starting offset&lt;br /&gt;# eg. &lt;br /&gt;# from this: RW 8514387 FLAT &quot;/dev/sdd&quot; 63&lt;br /&gt;# to this:   RW 8514387 FLAT &quot;/home/phil/Development/pc-part2disk/part1.img&quot; 0&lt;br /&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;printf &quot;Modify VMDK files to use disk partition image...\n&quot;&lt;br /&gt;sudo cat disk.vmdk | sed &quot;s@\&quot;$DISK.*@\&quot;./$PARTIMG\&quot; 0@&quot; &amp;gt; diskimage.vmdk&lt;br /&gt;sudo chown $USER:$USER diskimage.vmdk&lt;br /&gt;printf &quot;Done\n&quot;&lt;br /&gt;&lt;br /&gt;# remove VB vmdk that points to physical drive - no longer required&lt;br /&gt;sudo rm disk.vmdk&lt;br /&gt;&lt;br /&gt;exit 0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/blockquote&gt;
&lt;div&gt;
&amp;nbsp;Change DISK and PART to suit your case. This example uses disk &lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;/dev/sdd&lt;/span&gt;&lt;/span&gt; and partition 1.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
Also, run &lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;span style=&quot;font-family: &amp;quot;Courier New&amp;quot;,Courier,monospace;&quot;&gt;chmod +x &lt;script filename=&quot;&quot;&gt;&lt;/span&gt;&lt;/font&gt;&lt;br&gt;&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;
Run my script.&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;
It may take a while if you have budget hardware and a USB connected hard drive.&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;&lt;/p&gt;
&lt;p&gt;
You will get some output like this:&lt;/p&gt;
&lt;p&gt;
&lt;br&gt;&lt;/p&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;phil@del:~/VirtualBox VMs/test$ ~/Development/pc-part2disk/pc-part2disk.bash &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;Copy boot sector image...&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;[sudo] password for phil: &lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;1+0 records in&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;1+0 records out&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;512 bytes (512 B) copied, 0.00106311 s, 482 kB/s&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;Done&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;Replace MBR code...Done&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;Copy disk (/dev/sdd) partition 1...(at 10MB/s 1GB will take 100s)...&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;8514387+0 records in&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;8514387+0 records out&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;4359366144 bytes (4.4 GB) copied, 292.02 s, 14.9 MB/s&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;Done&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;Make VirtualBox VMDK image with MBR...&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;RAW host disk access VMDK file ./disk.vmdk created successfully.&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;Done&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;Modify VMDK files to use disk partition image...&lt;/font&gt;&lt;/p&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;Done&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;
If you&lt;font face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt; ls -la&lt;/font&gt;, you should see some new files:&lt;/p&gt;
&lt;blockquote class=&quot;tr_bq&quot;&gt;
&lt;p&gt;
&lt;font size=&quot;2&quot; face=&quot;&amp;quot;Courier New&amp;quot;,Courier,monospace&quot;&gt;phil@del:~/VirtualBox VMs/test$ ls -la&lt;br&gt;total 4257296&lt;br&gt;drwxr-xr-x 2 phil phil&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4096 Jan 12 17:41 .&lt;br&gt;drwxr-xr-x 6 phil phil&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 4096 Jan 12 17:30 ..&lt;br&gt;-rw-r--r-- 1 phil phil&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 650 Jan 12 17:41 diskimage.vmdk&lt;br&gt;-rw------- 1 phil phil&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 64512 Jan 12 17:41 disk-pt.vmdk&lt;br&gt;-rw-r--r-- 1 root root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 512 Jan 12 17:36 mbr.img&lt;br&gt;-rw-r--r-- 1 phil phil 4359366144 Jan 12 17:41 part1.img&lt;br&gt;-rw------- 1 phil phil&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6190 Jan 12 17:32 test.vbox&lt;br&gt;-rw------- 1 phil phil&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 6087 Jan 12 17:32 test.vbox-prev&lt;/font&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;test* files are you VB VM config files.&lt;/li&gt;
&lt;li&gt;mbr.img is your virtual disk MBR (probably not needed anymore).&lt;/li&gt;
&lt;li&gt;partX.img is an image of your windows (in this case) partition.&lt;/li&gt;
&lt;li&gt;disk-pt.vmdk seems to be your new MBR, partition table and possibly 60-odd sectors pulled from your hard disk.&lt;/li&gt;
&lt;li&gt;diskimage.vmdk is a vmdk definition file that makes a virtual hard drive from all these bits.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;h3&gt;
Add Virtual Disk Drive to VM&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;Edit settings on your VM again.&lt;/li&gt;
&lt;li&gt;Under Storage, select your IDE controller, and add and attachment.&lt;/li&gt;
&lt;li&gt;Add a hard disk and select &#39;choose and existing disk&#39;&lt;/li&gt;
&lt;li&gt;Select your diskimage.vmdk file.&lt;/li&gt;
&lt;li&gt;Power on your VM.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;
It will eventually display MBR (and possibly some characters) but after 2 seconds it should start booting your Windows XP VM.&lt;/p&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;p&gt;
For
 me, once I clicked into VM&#39;s window, it took XP about 2 minutes to 
workout how to use my keyboard and mouse so you need to wait.&lt;/p&gt;
&lt;/div&gt;
&lt;p&gt;
Later you can install VB guest additions and things should work better.&lt;/p&gt;
&lt;/script&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/5232212644084503781/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2014/01/virtualize-old-windows-xp-disk.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/5232212644084503781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/5232212644084503781'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2014/01/virtualize-old-windows-xp-disk.html' title='Virtualize an old Windows XP disk partition (howto convert disk partition to virtual disk for VirtualBox)'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-341178270929268061</id><published>2013-06-15T23:46:00.003+10:00</published><updated>2013-06-16T12:29:16.241+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="ahci"/><category scheme="http://www.blogger.com/atom/ns#" term="ICH7"/><category scheme="http://www.blogger.com/atom/ns#" term="ICH8"/><category scheme="http://www.blogger.com/atom/ns#" term="macbook pro"/><category scheme="http://www.blogger.com/atom/ns#" term="setpci"/><title type='text'>Howto enable AHCI Mode MacBookPro1,2 and MacBookPro4,1</title><content type='html'>I added this after&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt; insmod ext2&lt;/span&gt; in grub:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;setpci -s 0:1f.2 90.b=40&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
This sets Intel &lt;a href=&quot;http://www.intel.com.au/content/dam/doc/datasheet/i-o-controller-hub-7-datasheet.pdf&quot;&gt;ICH7&lt;/a&gt;&amp;nbsp;(page 509) or &lt;a href=&quot;http://www.intel.com.au/content/dam/doc/datasheet/intel-io-controller-hub-8-datasheet.pdf&quot;&gt;ICH8&lt;/a&gt;&amp;nbsp;(page 486) controller into AHCI mode.&lt;br /&gt;
&lt;br /&gt;
A similar command will probably work for other ICHx devices.&lt;br /&gt;
&lt;br /&gt;
I got my &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;bus:slot.function&lt;/span&gt; from running &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;lspci&lt;/span&gt; - take value from line that states SATA IDE mode&lt;br /&gt;
&lt;br /&gt;
eg.&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;b&gt;00:1f.2&lt;/b&gt; &lt;b&gt;SATA&lt;/b&gt; controller: Intel Corporation 82801GBM/GHM (&lt;b&gt;ICH7-M&lt;/b&gt; Family) SATA Controller [&lt;b&gt;IDE mode&lt;/b&gt;] (rev 02)&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Both MBP1,2 and MBP4,1 have same &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;bus:slot.function&lt;/span&gt; and use same value (40h) to put controller into AHCI mode.&lt;br /&gt;
&lt;br /&gt;
UPDATE: Should be MacBookPro1,2 not MacBookPro2,1&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/341178270929268061/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/06/howto-enable-ahci-mode-macbookpro21-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/341178270929268061'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/341178270929268061'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/06/howto-enable-ahci-mode-macbookpro21-and.html' title='Howto enable AHCI Mode MacBookPro1,2 and MacBookPro4,1'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-3807524415516982225</id><published>2013-06-03T00:21:00.000+10:00</published><updated>2013-06-03T23:44:08.043+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="adb"/><category scheme="http://www.blogger.com/atom/ns#" term="clockworkmod"/><category scheme="http://www.blogger.com/atom/ns#" term="cyanogenmod"/><category scheme="http://www.blogger.com/atom/ns#" term="dead touchscreen"/><category scheme="http://www.blogger.com/atom/ns#" term="huawei"/><category scheme="http://www.blogger.com/atom/ns#" term="ideos"/><category scheme="http://www.blogger.com/atom/ns#" term="keyevent"/><category scheme="http://www.blogger.com/atom/ns#" term="u8150"/><category scheme="http://www.blogger.com/atom/ns#" term="x3"/><title type='text'>Root Huawei X3 8150 Without Windows or a Working Touchscreen</title><content type='html'>I got some of this from &lt;a href=&quot;http://forum.xda-developers.com/showpost.php?p=21578432&amp;amp;postcount=36&quot;&gt;here&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h2&gt;
Some phone modes&lt;/h2&gt;
&lt;h3&gt;
Enter FASTBOOT Mode&lt;/h3&gt;
Disconnect USB.&lt;br /&gt;
Power-off phone.&lt;br /&gt;
&lt;span style=&quot;color: #990000;&quot;&gt;RED&lt;/span&gt;+VOL-DN+POWER - hold for about 5 seconds. Phone will vibrate and show a white screen with IDEOS displayed.&lt;br /&gt;
Connect USB.&lt;br /&gt;
&lt;h3&gt;
Enter RECOVERY Mode&lt;/h3&gt;
Disconnect USB.&lt;br /&gt;
Power-off phone.&lt;br /&gt;
&lt;span style=&quot;color: #38761d;&quot;&gt;GREEN&lt;/span&gt;+VOL-UP+POWER - hold for about 5 seconds. Phone will vibrate, show a white screen with IDEOS displayed and then show Recovery menu.&lt;br /&gt;
Connect USB.&lt;br /&gt;
&lt;h3&gt;
Enter DOWNLOAD mode&lt;/h3&gt;
Disconnect USB.&lt;br /&gt;
Power-off phone.&lt;br /&gt;
&lt;span style=&quot;color: #990000;&quot;&gt;RED&lt;/span&gt;+&lt;span style=&quot;color: #38761d;&quot;&gt;GREEN&lt;/span&gt;+POWER - hold for a few seconds until screen turns pink/magenta.&lt;br /&gt;
Connect USB.&lt;br /&gt;
&lt;div&gt;
(This does not work for me under Linux)&lt;/div&gt;
&lt;h3&gt;
Replace Stock Recovery with ClockWork Recovery&lt;/h3&gt;
Install Android SDK&lt;br /&gt;
From ubuntu this is very easy now:&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;apt-get install android-tools-adb&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;apt-get install android-tools-fastboot&lt;/span&gt;&lt;br /&gt;
Open root terminal or open terminal and &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sudo su&lt;/span&gt;.&lt;br /&gt;
&lt;br /&gt;
Check that all is well, that USB connection is working and that &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ADB&lt;/span&gt; is correctly installed&lt;br /&gt;
&lt;br /&gt;
Enter RECOVERY mode&lt;br /&gt;
Phone should boot into &#39;Android system recovery&#39;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# adb devices&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;List of devices attached&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;308730C82377&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;recovery&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Enter FASTBOOT mode&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# fastboot erase recovery&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;erasing &#39;recovery&#39;...&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;OKAY [ &amp;nbsp;0.033s]&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;finished. total time: 0.033s&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Get ClockWorkMod Recovery&lt;/div&gt;
&lt;div&gt;
All available Recovery&#39;s are here:&amp;nbsp;&lt;a href=&quot;http://clockworkmod.com/rommanager&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;http://clockworkmod.com/rommanager&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Get ClockWork Recovery fro IDEOS&lt;/div&gt;
&lt;div&gt;
I used &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;http://download2.clockworkmod.com/recoveries/recovery-clockwork-3.0.2.4-ideos.img&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# fastboot flash recovery /home/phil/Downloads/recovery-clockwork-3.0.2.4-ideos.img&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sending &#39;recovery&#39; (3796 KB)...&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;OKAY [ &amp;nbsp;0.255s]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;writing &#39;recovery&#39;...&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;OKAY [ &amp;nbsp;0.806s]&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;finished. total time: 1.061s&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Reboot&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# fastboot reboot&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
Phone should reboot.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Get Root&lt;/div&gt;
&lt;div&gt;
Get files from&amp;nbsp;&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;http://forum.xda-developers.com/attachment.php?attachmentid=416413&amp;amp;d=1286678225&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# adb push ../../rootme/rageagainstthecage-arm5.bin &amp;nbsp;/data/local/tmp&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;127 KB/s (5392 bytes in 0.041s)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# adb ls /data/local/tmp&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;000041fd 00000000 51208853 .&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;000041fd 00000000 51208845 ..&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;000081b6 00001510 4c77ab24 rageagainstthecage-arm5.bin&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# adb shell&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;~ # cd /data/local/tmp&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/data/local/tmp # chmod 0755 rageagainstthecage-arm5.bin&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/data/local/tmp # ./rageagainstthecage-arm5.bin&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/sbin/sh: ./rageagainstthecage-arm5.bin: not found&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I give up. I&#39;ll exit shell and try again.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt; /data/local/tmp # exit&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# adb shell&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;~ # whoami&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;root&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Hmm. It seem I was already root! I suspect that &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;SuperuserOneClick&lt;/span&gt; that I experimented with - but did not log - using &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;mono&lt;/span&gt; under linux may have worked - although I had no indication that it did.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I&#39;ll carry on.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Next I remount &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;mdtblock4&lt;/span&gt; to be able to write to it.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;~ # mount -o rw,remount /dev/block/mdtblock4 /system&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;mount: mounting /dev/block/mdtblock4 on /system failed: Invalid argument&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
But it seems it is not mounted.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;~ # mount &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;rootfs on / type rootfs (rw)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;tmpfs on /dev type tmpfs (rw,relatime,mode=755)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;devpts on /dev/pts type devpts (rw,relatime,mode=600)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;proc on /proc type proc (rw,relatime)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sysfs on /sys type sysfs (rw,relatime)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/dev/block/mtdblock5 on /cache type yaffs2 (rw,nodev,noatime,nodiratime)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;~ # df&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Filesystem &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1K-blocks &amp;nbsp; &amp;nbsp; &amp;nbsp;Used Available Use% Mounted on&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;tmpfs &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;91624 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;32 &amp;nbsp; &amp;nbsp; 91592 &amp;nbsp; 0% /dev&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/dev/block/mtdblock5 &amp;nbsp; &amp;nbsp; 95232 &amp;nbsp; &amp;nbsp; &amp;nbsp;1688 &amp;nbsp; &amp;nbsp; 93544 &amp;nbsp; 2% /cache&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In my case, &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;mtdblock4&lt;/span&gt; is not mounted so I mounted it.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;~ # mount /dev/block/mtdblock4 /system&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;~ # ls /system/&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;app &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; etc &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; lib &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; tts &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; xbin&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;bin &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; fonts &amp;nbsp; &amp;nbsp; &amp;nbsp; lost+found &amp;nbsp;usr&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;build.prop &amp;nbsp;framework &amp;nbsp; media &amp;nbsp; &amp;nbsp; &amp;nbsp; wifi&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Now I realise that I made a typo: I entered &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;mdtblock4&lt;/span&gt; instead of &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;mtdblock4.&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;~ # mount -o rw,remount /dev/block/mtdblock4 /system&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;~ # df&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Filesystem &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1K-blocks &amp;nbsp; &amp;nbsp; &amp;nbsp;Used Available Use% Mounted on&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;tmpfs &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;91624 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;32 &amp;nbsp; &amp;nbsp; 91592 &amp;nbsp; 0% /dev&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/dev/block/mtdblock5 &amp;nbsp; &amp;nbsp; 95232 &amp;nbsp; &amp;nbsp; &amp;nbsp;1688 &amp;nbsp; &amp;nbsp; 93544 &amp;nbsp; 2% /cache&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/dev/block/mtdblock4 &amp;nbsp; &amp;nbsp;174080 &amp;nbsp; &amp;nbsp;131780 &amp;nbsp; &amp;nbsp; 42300 &amp;nbsp;76% /system&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Ok. &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;mtdblock4&lt;/span&gt; is now writeable.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Copy &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;su, busybox, sqlite3, Superuser.apk&lt;/span&gt; to device.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# adb push rootme/su &amp;nbsp;/system/bin/su&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;837 KB/s (26264 bytes in 0.030s)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# adb push SuperOneClickv2.3.3-ShortFuse\ \(1\)/Dependencies/busybox &amp;nbsp;/system/bin/busybox&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;1978 KB/s (1075144 bytes in 0.530s)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# adb push SuperOneClickv2.3.3-ShortFuse\ \(1\)/Dependencies/sqlite3 &amp;nbsp;/system/bin/sqlite3&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;333 KB/s (24120 bytes in 0.070s)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# adb push SuperOneClickv2.3.3-ShortFuse\ \(1\)/Root/ &amp;nbsp;/system/bin/sqlite3&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Superuser.apk &amp;nbsp;su-v1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;su-v2 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# adb push SuperOneClickv2.3.3-ShortFuse\ \(1\)/Root/Superuser.apk &amp;nbsp;/system/app/Superuser.apk&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;2095 KB/s (843503 bytes in 0.393s)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Now to change permissions.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;# adb shell&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;~ # cd /system/bin&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/system/bin # chmod 4755 su&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/system/bin # chmod 4755 busybox&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/system/bin # chmod 4755 sqlite3&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/system/bin # cat /proc/cpu&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/proc/cpu/ &amp;nbsp; &amp;nbsp; /proc/cpuinfo&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
What CPU do we have?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/system/bin # cat /proc/cpuinfo&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Processor&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;: ARMv6-compatible processor rev 2 (v6l)&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;BogoMIPS&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;: 594.73&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Features&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;: swp half thumb fastmult edsp java&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CPU implementer&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;: 0x41&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CPU architecture: 6TEJ&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CPU variant&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;: 0x1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CPU part&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;: 0xb36&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CPU revision&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;: 2&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Hardware&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;: HUAWEI U8150 BOARD&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Revision&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;: 0000&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Serial&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;: 0000000000000000&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Mount &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/data&lt;/span&gt; using ClockWorkMod Recovery&lt;/div&gt;
&lt;div&gt;
(could have done this using adb)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/system/bin # df&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Filesystem &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 1K-blocks &amp;nbsp; &amp;nbsp; &amp;nbsp;Used Available Use% Mounted on&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;tmpfs &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;91624 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;32 &amp;nbsp; &amp;nbsp; 91592 &amp;nbsp; 0% /dev&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/dev/block/mtdblock5 &amp;nbsp; &amp;nbsp; 95232 &amp;nbsp; &amp;nbsp; &amp;nbsp;1688 &amp;nbsp; &amp;nbsp; 93544 &amp;nbsp; 2% /cache&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/dev/block/mtdblock4 &amp;nbsp; &amp;nbsp;174080 &amp;nbsp; &amp;nbsp;133716 &amp;nbsp; &amp;nbsp; 40364 &amp;nbsp;77% /system&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/dev/block/mtdblock6 &amp;nbsp; &amp;nbsp;170624 &amp;nbsp; &amp;nbsp; 12340 &amp;nbsp; &amp;nbsp;158284 &amp;nbsp; 7% /data&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/data&lt;/span&gt; is mounted and this seems to be where settings are stored.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;Open settings using &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sqlite3&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/system/bin # ./sqlite3 /data/data/com.android.providers.settings/databases/settings.db&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;SQLite version 3.6.22&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;Enter &quot;.help&quot; for instructions&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sqlite&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sqlite&amp;gt; .dump&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;BEGIN TRANSACTION;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE TABLE android_metadata (locale TEXT);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;android_metadata&quot; VALUES(&#39;en_AU&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE TABLE system (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(4,&#39;volume_voice&#39;,&#39;4&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(5,&#39;volume_alarm&#39;,&#39;6&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(6,&#39;volume_notification&#39;,&#39;5&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(7,&#39;volume_bluetooth_sco&#39;,&#39;7&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(9,&#39;vibrate_on&#39;,&#39;6&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(10,&#39;mode_ringer_streams_affected&#39;,&#39;166&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(11,&#39;mute_streams_affected&#39;,&#39;46&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(12,&#39;dim_screen&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(13,&#39;stay_on_while_plugged_in&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(14,&#39;screen_off_timeout&#39;,&#39;60000&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(15,&#39;emergency_tone&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(16,&#39;call_auto_retry&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(17,&#39;dtmf_tone_type&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(18,&#39;hearing_aid&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(19,&#39;tty_mode&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(20,&#39;airplane_mode_on&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(21,&#39;airplane_mode_radios&#39;,&#39;cell,bluetooth,wifi&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(22,&#39;airplane_mode_toggleable_radios&#39;,&#39;wifi&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(23,&#39;auto_time&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(24,&#39;screen_brightness&#39;,&#39;77&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(25,&#39;screen_brightness_mode&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(26,&#39;window_animation_scale&#39;,&#39;0.0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(27,&#39;transition_animation_scale&#39;,&#39;0.0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(28,&#39;accelerometer_rotation&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(29,&#39;haptic_feedback_enabled&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(30,&#39;end_button_behavior&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(31,&#39;notification_light_pulse&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(32,&#39;set_install_location&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(33,&#39;default_install_location&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(34,&#39;power_sounds_enabled&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(35,&#39;low_battery_sound&#39;,&#39;/system/media/audio/ui/LowBattery.ogg&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(36,&#39;dock_sounds_enabled&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(37,&#39;desk_dock_sound&#39;,&#39;/system/media/audio/ui/Dock.ogg&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(38,&#39;desk_undock_sound&#39;,&#39;/system/media/audio/ui/Undock.ogg&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(39,&#39;car_dock_sound&#39;,&#39;/system/media/audio/ui/Dock.ogg&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(40,&#39;car_undock_sound&#39;,&#39;/system/media/audio/ui/Undock.ogg&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(41,&#39;lockscreen_sounds_enabled&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(42,&#39;lock_sound&#39;,&#39;/system/media/audio/ui/Lock.ogg&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(43,&#39;unlock_sound&#39;,&#39;/system/media/audio/ui/Unlock.ogg&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(44,&#39;vibrate_in_silent&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(47,&#39;alarm_alert&#39;,&#39;content://media/internal/audio/media/5&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(48,&#39;notification_sound&#39;,&#39;content://media/internal/audio/media/28&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(49,&#39;ringtone&#39;,&#39;content://media/internal/audio/media/55&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(57,&#39;volume_system&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(58,&#39;volume_system_last_audible&#39;,&#39;7&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(59,&#39;volume_ring&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(60,&#39;volume_ring_last_audible&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(61,&#39;mode_ringer&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(62,&#39;volume_music&#39;,&#39;10&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(63,&#39;volume_music_last_audible&#39;,&#39;10&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;system&quot; VALUES(75,&#39;next_alarm_formatted&#39;,&#39;&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;DELETE FROM sqlite_sequence;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;sqlite_sequence&quot; VALUES(&#39;system&#39;,75);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;sqlite_sequence&quot; VALUES(&#39;secure&#39;,25);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;sqlite_sequence&quot; VALUES(&#39;systemex&#39;,1);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE TABLE secure (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(1,&#39;bluetooth_on&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(2,&#39;data_roaming&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(3,&#39;default_input_method&#39;,&#39;com.android.inputmethod.latin/.LatinIME&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(4,&#39;enabled_input_methods&#39;,&#39;com.huawei.inputmethod.hwpal/.PinyinIME:com.android.inputmethod.latin/.LatinIME:com.android.inputmethod.pinyin/.PinyinIME:jp.co.omronsoft.openwnn/.OpenWnnJAJP&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(5,&#39;install_non_market_apps&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(6,&#39;location_providers_allowed&#39;,&#39;gps&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(7,&#39;assisted_gps_enabled&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(8,&#39;network_preference&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(9,&#39;usb_mass_storage_enabled&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(10,&#39;wifi_on&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(11,&#39;wifi_networks_available_notification_on&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(12,&#39;preferred_network_mode&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(13,&#39;cdma_cell_broadcast_sms&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(14,&#39;preferred_cdma_subscription&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(15,&#39;mock_location&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(16,&#39;backup_enabled&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(17,&#39;backup_transport&#39;,&#39;com.google.android.backup/.BackupTransportService&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(18,&#39;mount_play_not_snd&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(19,&#39;mount_ums_autostart&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(20,&#39;mount_ums_prompt&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(21,&#39;mount_ums_notify_enabled&#39;,&#39;1&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(22,&#39;android_id&#39;,&#39;9774d56d682e549c&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(23,&#39;adb_enabled&#39;,&#39;0&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(24,&#39;voice_recognition_service&#39;,&#39;com.google.android.voicesearch/.GoogleRecognitionService&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(25,&#39;throttle_reset_day&#39;,&#39;3&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE TABLE bluetooth_devices (_id INTEGER PRIMARY KEY,name TEXT,addr TEXT,channel INTEGER,type INTEGER);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE TABLE bookmarks (_id INTEGER PRIMARY KEY,title TEXT,folder TEXT,intent TEXT,shortcut INTEGER,ordering INTEGER);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;bookmarks&quot; VALUES(1,&#39;Browser&#39;,NULL,&#39;#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.android.browser/.BrowserActivity;end&#39;,98,NULL);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;bookmarks&quot; VALUES(2,&#39;Contacts&#39;,NULL,&#39;#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.android.contacts/.DialtactsContactsEntryActivity;end&#39;,99,NULL);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;bookmarks&quot; VALUES(3,&#39;Email&#39;,NULL,&#39;#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.android.email/.activity.Welcome;end&#39;,101,NULL);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;bookmarks&quot; VALUES(4,&#39;Gmail&#39;,NULL,&#39;#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.google.android.gm/.ConversationListActivityGmail;end&#39;,103,NULL);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;bookmarks&quot; VALUES(5,&#39;Calendar&#39;,NULL,&#39;#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.android.calendar/.LaunchActivity;end&#39;,108,NULL);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;bookmarks&quot; VALUES(6,&#39;Music&#39;,NULL,&#39;#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.android.music/.MusicBrowserActivity;end&#39;,112,NULL);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;bookmarks&quot; VALUES(7,&#39;Messaging&#39;,NULL,&#39;#Intent;action=android.intent.action.MAIN;category=android.intent.category.LAUNCHER;launchFlags=0x10000000;component=com.android.mms/.ui.ConversationList;end&#39;,115,NULL);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE TABLE systemex (_id INTEGER PRIMARY KEY AUTOINCREMENT,name TEXT UNIQUE ON CONFLICT REPLACE,value TEXT);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;systemex&quot; VALUES(1,&#39;white_languages&#39;,&#39;en_PK,en_AU,en_US,es_ES&#39;);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE INDEX systemIndex1 ON system (name);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE INDEX secureIndex1 ON secure (name);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE INDEX bookmarksIndex1 ON bookmarks (folder);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE INDEX bookmarksIndex2 ON bookmarks (shortcut);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;CREATE INDEX systemexIndex1 ON systemex (name);&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;COMMIT;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
I wonder what &lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;INSERT INTO &quot;secure&quot; VALUES(23,&#39;adb_enabled&#39;,&#39;0&#39;);&lt;/span&gt; is?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I think I want to try this to turn USB Debugging on (based on&amp;nbsp;&lt;a href=&quot;http://stackoverflow.com/questions/10282484/android-adb-turn-on-wifi-via-adb&quot; style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;http://stackoverflow.com/questions/10282484/android-adb-turn-on-wifi-via-adb&lt;/a&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;)&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;&lt;br /&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;update secure &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;border: 0px; color: darkblue; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; value&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;lit&quot; style=&quot;border: 0px; color: maroon; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; &lt;/span&gt;&lt;span class=&quot;kwd&quot; style=&quot;border: 0px; color: darkblue; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;where&lt;/span&gt;&lt;span class=&quot;pln&quot; style=&quot;border: 0px; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;str&quot; style=&quot;border: 0px; color: maroon; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&#39;adb_enabled&#39;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;pun&quot; style=&quot;border: 0px; line-height: 18px; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
So here goes...&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;/system/bin # ./sqlite3 /data/data/com.android.providers.settings/databases/sett&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ings.db&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sqlite&amp;gt; select * from secure&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace;&quot;&gt;;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;1|bluetooth_on|0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;2|data_roaming|0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;3|default_input_method|com.android.inputmethod.latin/.LatinIME&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;4|enabled_input_methods|com.huawei.inputmethod.hwpal/.PinyinIME:com.android.inputmethod.latin/.LatinIME:com.android.inputmethod.pinyin/.PinyinIME:jp.co.omronsoft.openwnn/.OpenWnnJAJP&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;5|install_non_market_apps|0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;6|location_providers_allowed|gps&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;7|assisted_gps_enabled|1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;8|network_preference|1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;9|usb_mass_storage_enabled|1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;10|wifi_on|0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;11|wifi_networks_available_notification_on|1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;12|preferred_network_mode|0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;13|cdma_cell_broadcast_sms|1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;14|preferred_cdma_subscription|0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;15|mock_location|0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;16|backup_enabled|1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;17|backup_transport|com.google.android.backup/.BackupTransportService&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;18|mount_play_not_snd|1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;19|mount_ums_autostart|0&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;20|mount_ums_prompt|1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;21|mount_ums_notify_enabled|1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;22|android_id|9774d56d682e549c&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;23|adb_enabled|1&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;24|voice_recognition_service|com.google.android.voicesearch/.GoogleRecognitionService&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;25|throttle_reset_day|3&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;sqlite&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Reboot phone.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
No good.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I then installed CyanogenMod 7 for Huewei IDEOS 8150.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
It supports adb so I should have done this ages ago.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
I wrote this bash script to begin phone setup without a touchscreen.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;background-color: white; border: 1px inset; color: #222225; font-size: 13px; height: 498px; overflow: auto; padding: 6px; width: 640px;&quot;&gt;#!/bin/bash

adb_sendevent(){
    local -i _a=$1 _k=$2 _v=$3
    printf &quot;$FUNCNAME: _a=%d  _k=%d  _v=%d\n&quot; $_a $_k $_v
    adb shell sendevent &quot;/dev/input/event2&quot; $_a $_k $_v
}

adb_touch1(){
    local -i _a=$1 _x=$2 _y=$3 _w=$4
    #printf &quot;$FUNCNAME: _a=%d  _x=%d  _y=%d  _w=%d\n&quot; $_a $_x $_y $_w
    # send touch event x y
    adb_sendevent 3 0x39 $_a  # start event?
    adb_sendevent 3 0x35 $_x
    adb_sendevent 3 0x36 $_y
    adb_sendevent 3 0x30 $_w  # finger width?
    adb_sendevent 3 0x31 0  # x moved?
    adb_sendevent 3 0x34 0
    adb_sendevent 3 0x32 0  # y moved?
    adb_sendevent 0 0x02 0  # end event?
}

adb_touch(){
    local -i _x=$1 _y=$2 _w=$3
    #adb_sendevent 0 0 0
    adb_touch1 0 $_x $_y   $_w
    adb_touch1 1 0   0x15b 0
    adb_sendevent 0 0 0
}

adb_tap(){
    local -i _x=$1 _y=$2
    adb_touch $_x $_y 0x20
    # android icon selected
    adb_touch $_x $_y 0
}

#0 --&amp;gt;  &quot;KEYCODE_UNKNOWN&quot; 
#1 --&amp;gt;  &quot;KEYCODE_MENU&quot; 
#2 --&amp;gt;  &quot;KEYCODE_SOFT_RIGHT&quot; 
#3 --&amp;gt;  &quot;KEYCODE_HOME&quot; 
#4 --&amp;gt;  &quot;KEYCODE_BACK&quot; 
#5 --&amp;gt;  &quot;KEYCODE_CALL&quot; 
#6 --&amp;gt;  &quot;KEYCODE_ENDCALL&quot; 
#7 --&amp;gt;  &quot;KEYCODE_0&quot; 
#8 --&amp;gt;  &quot;KEYCODE_1&quot; 
#9 --&amp;gt;  &quot;KEYCODE_2&quot; 
#10 --&amp;gt;  &quot;KEYCODE_3&quot; 
#11 --&amp;gt;  &quot;KEYCODE_4&quot; 
#12 --&amp;gt;  &quot;KEYCODE_5&quot; 
#13 --&amp;gt;  &quot;KEYCODE_6&quot; 
#14 --&amp;gt;  &quot;KEYCODE_7&quot; 
#15 --&amp;gt;  &quot;KEYCODE_8&quot; 
#16 --&amp;gt;  &quot;KEYCODE_9&quot; 
#17 --&amp;gt;  &quot;KEYCODE_STAR&quot; 
#18 --&amp;gt;  &quot;KEYCODE_POUND&quot; 
#19 --&amp;gt;  &quot;KEYCODE_DPAD_UP&quot; 
#20 --&amp;gt;  &quot;KEYCODE_DPAD_DOWN&quot; 
#21 --&amp;gt;  &quot;KEYCODE_DPAD_LEFT&quot; 
#22 --&amp;gt;  &quot;KEYCODE_DPAD_RIGHT&quot; 
#23 --&amp;gt;  &quot;KEYCODE_DPAD_CENTER&quot; 
#24 --&amp;gt;  &quot;KEYCODE_VOLUME_UP&quot; 
#25 --&amp;gt;  &quot;KEYCODE_VOLUME_DOWN&quot; 
#26 --&amp;gt;  &quot;KEYCODE_POWER&quot; 
#27 --&amp;gt;  &quot;KEYCODE_CAMERA&quot; 
#28 --&amp;gt;  &quot;KEYCODE_CLEAR&quot; 
#29 --&amp;gt;  &quot;KEYCODE_A&quot; 
#30 --&amp;gt;  &quot;KEYCODE_B&quot; 
#31 --&amp;gt;  &quot;KEYCODE_C&quot; 
#32 --&amp;gt;  &quot;KEYCODE_D&quot; 
#33 --&amp;gt;  &quot;KEYCODE_E&quot; 
#34 --&amp;gt;  &quot;KEYCODE_F&quot; 
#35 --&amp;gt;  &quot;KEYCODE_G&quot; 
#36 --&amp;gt;  &quot;KEYCODE_H&quot; 
#37 --&amp;gt;  &quot;KEYCODE_I&quot; 
#38 --&amp;gt;  &quot;KEYCODE_J&quot; 
#39 --&amp;gt;  &quot;KEYCODE_K&quot; 
#40 --&amp;gt;  &quot;KEYCODE_L&quot; 
#41 --&amp;gt;  &quot;KEYCODE_M&quot; 
#42 --&amp;gt;  &quot;KEYCODE_N&quot; 
#43 --&amp;gt;  &quot;KEYCODE_O&quot; 
#44 --&amp;gt;  &quot;KEYCODE_P&quot; 
#45 --&amp;gt;  &quot;KEYCODE_Q&quot; 
#46 --&amp;gt;  &quot;KEYCODE_R&quot; 
#47 --&amp;gt;  &quot;KEYCODE_S&quot; 
#48 --&amp;gt;  &quot;KEYCODE_T&quot; 
#49 --&amp;gt;  &quot;KEYCODE_U&quot; 
#50 --&amp;gt;  &quot;KEYCODE_V&quot; 
#51 --&amp;gt;  &quot;KEYCODE_W&quot; 
#52 --&amp;gt;  &quot;KEYCODE_X&quot; 
#53 --&amp;gt;  &quot;KEYCODE_Y&quot; 
#54 --&amp;gt;  &quot;KEYCODE_Z&quot; 
#55 --&amp;gt;  &quot;KEYCODE_COMMA&quot; 
#56 --&amp;gt;  &quot;KEYCODE_PERIOD&quot; 
#57 --&amp;gt;  &quot;KEYCODE_ALT_LEFT&quot; 
#58 --&amp;gt;  &quot;KEYCODE_ALT_RIGHT&quot; 
#59 --&amp;gt;  &quot;KEYCODE_SHIFT_LEFT&quot; 
#60 --&amp;gt;  &quot;KEYCODE_SHIFT_RIGHT&quot; 
#61 --&amp;gt;  &quot;KEYCODE_TAB&quot; 
#62 --&amp;gt;  &quot;KEYCODE_SPACE&quot; 
#63 --&amp;gt;  &quot;KEYCODE_SYM&quot; 
#64 --&amp;gt;  &quot;KEYCODE_EXPLORER&quot; 
#65 --&amp;gt;  &quot;KEYCODE_ENVELOPE&quot; 
#66 --&amp;gt;  &quot;KEYCODE_ENTER&quot; 
#67 --&amp;gt;  &quot;KEYCODE_DEL&quot; 
#68 --&amp;gt;  &quot;KEYCODE_GRAVE&quot; 
#69 --&amp;gt;  &quot;KEYCODE_MINUS&quot; 
#70 --&amp;gt;  &quot;KEYCODE_EQUALS&quot; 
#71 --&amp;gt;  &quot;KEYCODE_LEFT_BRACKET&quot; 
#72 --&amp;gt;  &quot;KEYCODE_RIGHT_BRACKET&quot; 
#73 --&amp;gt;  &quot;KEYCODE_BACKSLASH&quot; 
#74 --&amp;gt;  &quot;KEYCODE_SEMICOLON&quot; 
#75 --&amp;gt;  &quot;KEYCODE_APOSTROPHE&quot; 
#76 --&amp;gt;  &quot;KEYCODE_SLASH&quot; 
#77 --&amp;gt;  &quot;KEYCODE_AT&quot; 
#78 --&amp;gt;  &quot;KEYCODE_NUM&quot; 
#79 --&amp;gt;  &quot;KEYCODE_HEADSETHOOK&quot; 
#80 --&amp;gt;  &quot;KEYCODE_FOCUS&quot; 
#81 --&amp;gt;  &quot;KEYCODE_PLUS&quot; 
#82 --&amp;gt;  &quot;KEYCODE_MENU&quot; 
#83 --&amp;gt;  &quot;KEYCODE_NOTIFICATION&quot; 
#84 --&amp;gt;  &quot;KEYCODE_SEARCH&quot; 
#85 --&amp;gt;  &quot;TAG_LAST_KEYCODE&quot;

adb_tap 0x70 0x80  # tap on android icon
adb shell input keyevent 20  # down to &#39;Create&#39;
adb shell input keyevent 20  # down to &#39;Sign in&#39;
adb shell input keyevent 23  # enter
adb shell input text &#39;username@gmail.com&#39;
adb shell input keyevent 20  # down to &#39;password&#39;
adb shell input text &#39;password or 2-factor code&#39;  # 2-factor pw
adb shell input keyevent 23  # enter
adb shell input keyevent 20  # down to &#39;Sign in&#39;
adb shell input keyevent 23  # enter&lt;/pre&gt;
&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;background-color: white; border: 1px inset; color: #222225; font-size: 13px; height: 498px; overflow: auto; padding: 6px; width: 640px;&quot;&gt;My phone is now setup and working.&lt;/pre&gt;
&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;background-color: white; border: 1px inset; color: #222225; font-size: 13px; height: 498px; overflow: auto; padding: 6px; width: 640px;&quot;&gt;&lt;/pre&gt;
&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;background-color: white; border: 1px inset; color: #222225; font-size: 13px; height: 498px; overflow: auto; padding: 6px; width: 640px;&quot;&gt;Now to setup WiFi.&lt;/pre&gt;
&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;background-color: white; border: 1px inset; color: #222225; font-size: 13px; height: 498px; overflow: auto; padding: 6px; width: 640px;&quot;&gt;&lt;/pre&gt;
&lt;pre class=&quot;alt2&quot; dir=&quot;ltr&quot; style=&quot;background-color: white; border: 1px inset; color: #222225; font-size: 13px; height: 498px; overflow: auto; padding: 6px; width: 640px;&quot;&gt;&lt;/pre&gt;
&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/3807524415516982225/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/06/root-huawei-x3-8150-without-windows-or.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/3807524415516982225'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/3807524415516982225'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/06/root-huawei-x3-8150-without-windows-or.html' title='Root Huawei X3 8150 Without Windows or a Working Touchscreen'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-4077302056686427818</id><published>2013-05-31T19:57:00.001+10:00</published><updated>2013-05-31T19:57:55.570+10:00</updated><title type='text'>Install Lubuntu 13.04 on PowerBook G4 17&quot; (REV D? 2005)</title><content type='html'>&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Get ISO from &lt;a href=&quot;http://cdimage.ubuntu.com/lubuntu/releases/raring/release/lubuntu-13.04-desktop-powerpc.iso&quot;&gt;here&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;http://cdimage.ubuntu.com/lubuntu/releases/raring/release/lubuntu-13.04-desktop-powerpc.iso&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Boot ISO (Option-C) when power on or &#39;c&#39; if yaboot is already installed.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #333333; line-height: 1.5;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span style=&quot;background-color: white; color: #333333; line-height: 1.5;&quot;&gt;At the&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; line-height: 1.5;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;tt class=&quot;backtick&quot; style=&quot;border: 0px; color: #333333; font-style: inherit; line-height: 1; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;boot:&lt;/tt&gt;&lt;span style=&quot;background-color: white; color: #333333; line-height: 1.5;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #333333; line-height: 1.5;&quot;&gt;prompt type:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div class=&quot;line862&quot; style=&quot;background-color: white; border: 0px; color: #333333; line-height: 1.5; margin-bottom: 8px; padding: 0px; vertical-align: baseline;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-73&quot; style=&quot;border: 0px; font-style: inherit; line-height: 1; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;pre style=&quot;background-color: #f3f3f3; border: 1px dashed rgb(193, 180, 150); color: #333333; line-height: 16px; margin-bottom: 8px; padding: 4pt; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;span class=&quot;anchor&quot; id=&quot;line-1-4&quot; style=&quot;border: 0px; font-style: inherit; line-height: 1; margin: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;&lt;/span&gt;live video=radeonfb:1024x768-32@60 &lt;/span&gt;&lt;/pre&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;a href=&quot;https://help.ubuntu.com/community/Lubuntu/Documentation/FAQ/PPC&quot;&gt;&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;https://help.ubuntu.com/community/Lubuntu/Documentation/FAQ/PPC&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif;&quot;&gt;Install!&lt;/span&gt;</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/4077302056686427818/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/05/install-lubuntu-1304-on-powerbook-g4-17.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/4077302056686427818'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/4077302056686427818'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/05/install-lubuntu-1304-on-powerbook-g4-17.html' title='Install Lubuntu 13.04 on PowerBook G4 17&quot; (REV D? 2005)'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-8551192558885597005</id><published>2013-04-21T21:04:00.000+10:00</published><updated>2013-04-21T21:04:14.298+10:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="intel GPU"/><category scheme="http://www.blogger.com/atom/ns#" term="macbook pro 9 1"/><category scheme="http://www.blogger.com/atom/ns#" term="nouveau"/><category scheme="http://www.blogger.com/atom/ns#" term="nvidia"/><category scheme="http://www.blogger.com/atom/ns#" term="powertop"/><title type='text'>10W for a MacBook Pro 9,1 Mid 2012 non-retina</title><content type='html'>As measured by PowerTop&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi25Jb8MDekZs35W7hnRyUmAH_Q5rX5bP331vv6naT2qeQKQ8PwY_dYFnT6iVKbBqvwlS9rUcisVHaFsMSD60WhLgwyqZgu5bjViUeNgjr2R1ICj6Wh4zSKxHf8gAygpLzyhKmjhRF5h8yj/s1600/powertop-10.1W-Screenshot+from+2013-04-21+20:53:42.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;419&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi25Jb8MDekZs35W7hnRyUmAH_Q5rX5bP331vv6naT2qeQKQ8PwY_dYFnT6iVKbBqvwlS9rUcisVHaFsMSD60WhLgwyqZgu5bjViUeNgjr2R1ICj6Wh4zSKxHf8gAygpLzyhKmjhRF5h8yj/s640/powertop-10.1W-Screenshot+from+2013-04-21+20:53:42.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
How did I do it?&lt;br /&gt;
&lt;br /&gt;
See &lt;a href=&quot;http://ubuntuforums.org/showthread.php?t=2137538&quot;&gt;here&lt;/a&gt;</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/8551192558885597005/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/04/10w-for-macbook-pro-91-mid-2012-non.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/8551192558885597005'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/8551192558885597005'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/04/10w-for-macbook-pro-91-mid-2012-non.html' title='10W for a MacBook Pro 9,1 Mid 2012 non-retina'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi25Jb8MDekZs35W7hnRyUmAH_Q5rX5bP331vv6naT2qeQKQ8PwY_dYFnT6iVKbBqvwlS9rUcisVHaFsMSD60WhLgwyqZgu5bjViUeNgjr2R1ICj6Wh4zSKxHf8gAygpLzyhKmjhRF5h8yj/s72-c/powertop-10.1W-Screenshot+from+2013-04-21+20:53:42.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-8127491942026059776</id><published>2013-02-23T14:44:00.003+11:00</published><updated>2013-02-23T14:44:38.217+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="dg834"/><category scheme="http://www.blogger.com/atom/ns#" term="dg834gv"/><category scheme="http://www.blogger.com/atom/ns#" term="netgear"/><category scheme="http://www.blogger.com/atom/ns#" term="router"/><category scheme="http://www.blogger.com/atom/ns#" term="telnet"/><title type='text'>Howto Telnet into Netgear DG834GVv1</title><content type='html'>This probably works for any Netgear DG834*&lt;br /&gt;
&lt;br /&gt;
Your default router IP address is 192.168.0.1 unless you have changed it.&lt;br /&gt;
&lt;h3&gt;
Start Telnet Daemon&lt;/h3&gt;
&lt;a href=&quot;http://192.168.0.1/setup.cgi?todo=ping_test&amp;amp;c4_IPAddr=%26/usr/sbin/utelnetd+-d&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;http://192.168.0.1/setup.cgi?todo=ping_test&amp;amp;c4_IPAddr=%26/usr/sbin/utelnetd+-d&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
You may now telnet to your router&#39;s IP address.&lt;br /&gt;
&lt;br /&gt;
eg. &lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;telnet 192.168.0.1&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
NB: This may enable telnet access from any Internet host.&lt;br /&gt;
In my case on a DG834GV v1, I could not connect to my router over Internet.&lt;br /&gt;
&lt;br /&gt;
To run any installed program, use this general form.&lt;br /&gt;
It will launch program and redirect output to&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt; ppp_log.&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;
General Form&lt;/h3&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;http://192.168.0.1/setup.cgi?todo=ping_test&amp;amp;c4_IPAddr=%26&lt;/span&gt;&lt;br /&gt;
&lt;program&gt;+&lt;option&gt;+&lt;option&gt;+%3E+/www/ppp_log&lt;/option&gt;&lt;/option&gt;&lt;/program&gt;&lt;h3&gt;
View ppp_log&lt;/h3&gt;
&lt;a href=&quot;http://192.168.0.1/ppp_log&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;http://192.168.0.1/ppp_log&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;
Read a File&lt;/h3&gt;
eg. to read /etc/hosts&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://192.168.0.1/setup.cgi?todo=ping_test&amp;amp;c4_IPAddr=%26/bin/cat+/etc/hosts+%3E+/www/ppp_log&quot;&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;http://192.168.0.1/setup.cgi?todo=ping_test&amp;amp;c4_IPAddr=%26/bin/cat+/etc/hosts+%3E+/www/ppp_log&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Ignore Ping error message and read &lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;ppp_log&lt;/span&gt;:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;a href=&quot;http://192.168.0.1/ppp_log&quot;&gt;http://192.168.0.1/ppp_log&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h3&gt;
Stop Telnet Daemon&lt;/h3&gt;
&lt;h4&gt;
From telnet session&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;/bin/ps&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Find PID (first number) for utelnetd daemon&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;/bin/kill &lt;pid&gt;&lt;/pid&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
You should see a message on your console like &quot;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;Connection closed by foreign host.&lt;/span&gt;&quot;&amp;nbsp;&lt;/div&gt;
&lt;h4&gt;
Via browser&lt;/h4&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;a href=&quot;http://192.168.0.1/setup.cgi?todo=ping_test&amp;amp;c4_IPAddr=%26/usr/bin/killall+utelnetd&quot;&gt;http://192.168.0.1/setup.cgi?todo=ping_test&amp;amp;c4_IPAddr=%26/usr/bin/killall+utelnetd&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Ensure you can no longer login into your router.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/8127491942026059776/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/02/howto-telnet-into-netgear-dg834gvv1.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/8127491942026059776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/8127491942026059776'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/02/howto-telnet-into-netgear-dg834gvv1.html' title='Howto Telnet into Netgear DG834GVv1'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-2800136043837058002</id><published>2013-01-28T23:32:00.000+11:00</published><updated>2013-01-28T23:32:42.208+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><category scheme="http://www.blogger.com/atom/ns#" term="spell checker"/><category scheme="http://www.blogger.com/atom/ns#" term="spelling corrector"/><category scheme="http://www.blogger.com/atom/ns#" term="tiny"/><title type='text'>Spell checker and corrector in BASH</title><content type='html'>Why? Because it can be done.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
I have used nothing but BASH.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Sample run:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhndThHyaFA4RNjneoCpYAyib5SZ7Wuycvvp6MOhNYs2FzFW7F5QmB6z9jZ2mCRk8qKgR_ceY4Jy4u05e9bHoabqeDGX4dX02rYPgVNBvqYvCU29zS3REhOBv0tg0c7bBuceitAYjVFRml_/s1600/Screenshot+from+2013-01-28+23:24:44.png&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;385&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhndThHyaFA4RNjneoCpYAyib5SZ7Wuycvvp6MOhNYs2FzFW7F5QmB6z9jZ2mCRk8qKgR_ceY4Jy4u05e9bHoabqeDGX4dX02rYPgVNBvqYvCU29zS3REhOBv0tg0c7bBuceitAYjVFRml_/s640/Screenshot+from+2013-01-28+23:24:44.png&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
I tried to make it very feature rich while keeping code to about 100 lines - this version is about 80.&lt;br /&gt;
&lt;br /&gt;
Can you make it smaller?&lt;br /&gt;
&lt;br /&gt;
Features:&lt;br /&gt;
* Auto-corrects if it can only find 1 suggested correction.&lt;br /&gt;
* Lists all words in dictionary that could be corrections and lets user choose or replace word.&lt;br /&gt;
* Suggestions only consider words with single letter deletions, additions or changes.&lt;br /&gt;
* Spelling errors are highlighted in yellow.&lt;br /&gt;
* Corrections are highlighted in green.&lt;br /&gt;
&lt;br /&gt;
Todo:&lt;br /&gt;
* Save result to a file (Currently just displays result on terminal).&lt;br /&gt;
&lt;br /&gt;
I did go a little overboard with processing word case.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;[[ -z &quot;$1&quot; ]] &amp;amp;&amp;amp; echo &quot;Usage: $0 &lt;text file=&quot;&quot;&gt;&quot; &amp;amp;&amp;amp; exit 1&lt;/text&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;ERR=33; COR=32 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # error and corrected colours&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;PS3=&quot;Select or manually enter a correction: &quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;L=&quot;a-zA-Z&#39;&quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# these letters are deemed part of words&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;FINAL=&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;shopt -s extglob&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;shopt -u nocasematch&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;declare -A WORD&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;while read W; do WORD[${W,,}]=${W,,}; done &amp;lt; /usr/share/dict/words&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;function checkSuggestion() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; local p=$1 S=$1 C &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# uses CASE and SUGGEST from caller&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [ -z &quot;${WORD[$p]}&quot; ] &amp;amp;&amp;amp; return 1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # matches word in dict!&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [ $CASE = PROP &amp;nbsp;] &amp;amp;&amp;amp; S=${p^} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # change case to original word&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [ $CASE = CAP &amp;nbsp; ] &amp;amp;&amp;amp; S=${p^^} &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [ $CASE = CAPs &amp;nbsp;] &amp;amp;&amp;amp; { S=${p%%\&#39;*}; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; S=&quot;${S^^}&#39;${p#*\&#39;}&quot;; } &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [ $CASE = LAT &amp;nbsp; ] &amp;amp;&amp;amp; { S=${p##*\&#39;}; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; S=&quot;${p%\&#39;*}&#39;${S^^}&quot;; } &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [ $CASE = OPROP ] &amp;amp;&amp;amp; { S=${p%%\&#39;*}; C=${p#*\&#39;}; S=&quot;${S^^}&#39;${C^}&quot;; &amp;nbsp; &amp;nbsp;} &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; SUGGEST=&quot;${SUGGEST/ $S /} $S &quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # add to suggestion list&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;function getSuggestions() {&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; local W=$1 t l # p&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; SUGGEST=; CASE=LOWER&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [[ $W =~ ^[A-Z][a-z] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;]] &amp;amp;&amp;amp; CASE=PROP &amp;nbsp; # Prop&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [[ $W =~ ^[A-Z][A-Z] &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;]] &amp;amp;&amp;amp; CASE=CAP &amp;nbsp; &amp;nbsp;# CAP&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [[ $W =~ ^[A-Z]\&#39;[a-z] &amp;nbsp; &amp;nbsp; &amp;nbsp;]] &amp;amp;&amp;amp; CASE=PROP &amp;nbsp; # P&#39;rop&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [[ $W =~ &amp;nbsp;[A-Z]\&#39;[a-z]$ &amp;nbsp; &amp;nbsp; ]] &amp;amp;&amp;amp; CASE=CAPs &amp;nbsp; # CAP&#39;s&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [[ $W =~ ^[a-z]\&#39;[A-Z] &amp;nbsp; &amp;nbsp; &amp;nbsp;]] &amp;amp;&amp;amp; CASE=LAT &amp;nbsp; &amp;nbsp;# l&#39;At&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [[ $W =~ ^[A-Z]\&#39;[A-Z][A-Z] ]] &amp;amp;&amp;amp; CASE=CAP &amp;nbsp; &amp;nbsp;# C&#39;AP&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [[ $W =~ ^[A-Z]\&#39;[A-Z][a-z] ]] &amp;amp;&amp;amp; CASE=OPROP &amp;nbsp;# O&#39;Prop&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; W=${W,,} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # lowercase word&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; for (( t=0 ; t&amp;lt;=${#W} ; t++ )); do &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # for each letter position of word, delete|change|insert a letter&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; checkSuggestion ${W:0:t}${W:t+1} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # try deleting letter at position t&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; for l in {a..z} &quot;&#39;&quot;; do &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# try changing and inserting letters&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; checkSuggestion ${W:0:t}$l${W:t+1} &amp;nbsp; # try changing letter&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; checkSuggestion ${W:0:t}$l${W:t} &amp;nbsp; &amp;nbsp; # try inserting letter&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; done&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; done&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;function correctWord() { &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # correct word and return in RET as well as pattern in PAT&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; local W=$1 D1 D2 SUGGEST &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # uses L RESULT&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; getSuggestions &quot;$W&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [[ ! &quot;$RESULT&quot; =~ ([^$L]|^)$W([^$L]|$) ]] &amp;amp;&amp;amp; { printf &quot;ERROR: Could not find [%s] in %s\n&quot; &quot;$W&quot; &quot;$LINE&quot;; exit 1; }&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; D1=&quot;${BASH_REMATCH[1]}&quot;; D2=&quot;${BASH_REMATCH[2]}&quot; &amp;nbsp;# get delimiters around word&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; PAT=&quot;${D1:-#}$W${D2:-%}&quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # match pattern&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; case $SUGGEST in&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&#39;&#39;) echo -e &quot;${RESULT/$PAT/$D1\e[${ERR}m$W\e[0m$D2}&quot; &amp;nbsp; # display line with spelling mistake highlighted&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;read -p &quot;Enter correction [$W]: &quot; RET &amp;lt; /dev/fd/3 &amp;nbsp;# no suggestions - let user correct&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RET=${RET:-$W};;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; +([$L ])\ +([$L ])) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # multiple suggestions&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;echo -e &quot;${RESULT/$PAT/$D1\e[${ERR}m$W\e[0m$D2}&quot; &amp;nbsp; # display line with spelling mistake highlighted&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;select RET in &quot;(IGNORE)&quot; $SUGGEST; do &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# get correction&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;RET=${RET:-$REPLY} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # user entered a word instead&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;[ &quot;$REPLY&quot; = &quot;1&quot; ] &amp;amp;&amp;amp; RET=$W &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # no change&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;break&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;done &amp;lt; /dev/fd/3;;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; *) RET=${SUGGEST// /} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # get single suggestion&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;printf &quot;%b\n&quot; &quot;\e[31mAuto:\e[0m ${RESULT/$PAT/$D1\e[9;${ERR}m$W\e[0;${COR}m $RET\e[0m$D2}&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; esac&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; COL=$COR; [ &quot;$RET&quot; = &quot;$W&quot; ] &amp;amp;&amp;amp; COL=$ERR &amp;nbsp; # if unchanged, highlight in error colour&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; RESULT=&quot;${RESULT/$PAT/$D1\e[${COL}m${RET}\e[0m$D2}&quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; # correct word&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;function correctLine(){&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; local LINE=&quot;$1&quot; W &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# uses RESULT&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; while read -d&#39; &#39; W; do &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # for each word in line&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; [[ -z &quot;$W&quot; || -n ${WORD[${W,,}]} ]] 2&amp;gt; /dev/null &amp;amp;&amp;amp; continue &amp;nbsp;# null or word in dict so ignore it&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; correctWord $W&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; printf &quot;&amp;gt;&amp;gt; %b\n\n&quot; &quot;$RESULT&quot;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; done &amp;lt;&amp;lt;&amp;lt; &quot;$LINE&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;while read LINE; do &amp;nbsp;# for each line&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; RESULT=&quot;$LINE&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; correctLine &quot; ${LINE//[^$L ]/ } &quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# replace punctuation with spaces&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; FINAL+=&quot;$RESULT\n&quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # append corrected line to result&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;done 3&amp;lt;&amp;amp;0 &amp;lt; $1 &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # redirect stdin to /dev/fd/3 for select and read&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;printf &quot;\nCORRECTED TEXT\n\n%b\n&quot; &quot;$FINAL&quot;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/2800136043837058002/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/01/spell-checker-and-corrector-in-bash.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/2800136043837058002'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/2800136043837058002'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/01/spell-checker-and-corrector-in-bash.html' title='Spell checker and corrector in BASH'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhndThHyaFA4RNjneoCpYAyib5SZ7Wuycvvp6MOhNYs2FzFW7F5QmB6z9jZ2mCRk8qKgR_ceY4Jy4u05e9bHoabqeDGX4dX02rYPgVNBvqYvCU29zS3REhOBv0tg0c7bBuceitAYjVFRml_/s72-c/Screenshot+from+2013-01-28+23:24:44.png" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-5851783564066805306</id><published>2013-01-22T22:27:00.001+11:00</published><updated>2013-01-22T22:35:26.757+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="fairlane"/><category scheme="http://www.blogger.com/atom/ns#" term="ford"/><category scheme="http://www.blogger.com/atom/ns#" term="leak"/><category scheme="http://www.blogger.com/atom/ns#" term="NL"/><category scheme="http://www.blogger.com/atom/ns#" term="nut"/><category scheme="http://www.blogger.com/atom/ns#" term="power steering"/><category scheme="http://www.blogger.com/atom/ns#" term="replace"/><title type='text'>Replacing Ford NL Fairlane Power Steering Nut</title><content type='html'>Based on advice from &lt;a href=&quot;http://www.fordmods.com/ford-4l-and-6-cylinder-f1/ef-el-power-steering-hose-o-ring-leaking-t116153.html&quot;&gt;fordmods&lt;/a&gt;, I purchased a&amp;nbsp;&lt;span style=&quot;background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px;&quot;&gt;BA 3F656B&lt;/span&gt;&amp;nbsp;Nut from Ford. $17.&lt;br /&gt;
&lt;br /&gt;
It looks like this one from &lt;a href=&quot;http://www.ebay.com.au/itm/GENUINE-FORD-AU-BA-BF-FALCON-STEERING-HOSE-FITTING-NUT-/300558244136#ht_2736wt_1141&quot;&gt;ebay&lt;/a&gt;:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://i.ebayimg.com/00/$(KGrHqUOKnQE2dbV2lvwBN0htYU3Iw~~_35.JPG&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://i.ebayimg.com/00/$(KGrHqUOKnQE2dbV2lvwBN0htYU3Iw~~_35.JPG&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
My original one looks very different - like this one:&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://i11.photobucket.com/albums/a152/shoey50/leak.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;http://i11.photobucket.com/albums/a152/shoey50/leak.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I cut two grooves on opposite sides into my old nut using a ruby cutting blade and a Dremel.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://www.interaccess.org/blog/wp-content/uploads/2010/05/dremel500-400x278.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;222&quot; src=&quot;http://www.interaccess.org/blog/wp-content/uploads/2010/05/dremel500-400x278.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
I cut carefully using nut&#39;s internal rubber seal groove as a guide. Once I cut into this groove, I stopped cutting. I didn&#39;t cut deep enough to reach the other groove.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
With a length of hardwood resting on concrete floor and cut to length, we used a cold chisel to crack nut in half. We were chiselling on hex part rather than on thread.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://metal.brightcookie.com/shared/toolbook/images/34_cold_chisel.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; src=&quot;http://metal.brightcookie.com/shared/toolbook/images/34_cold_chisel.jpg&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
After a few hits it split.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-kULFZw1Iiko/UP5wbszUzFI/AAAAAAAAV_0/Oh4HueEBByk/s1600/IMG_20130122_214942.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;http://4.bp.blogspot.com/-kULFZw1Iiko/UP5wbszUzFI/AAAAAAAAV_0/Oh4HueEBByk/s320/IMG_20130122_214942.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-bx_0XovDbY8/UP5wbvl_0VI/AAAAAAAAV_s/YKs4nytzTbY/s1600/IMG_20130122_214952.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;http://4.bp.blogspot.com/-bx_0XovDbY8/UP5wbvl_0VI/AAAAAAAAV_s/YKs4nytzTbY/s320/IMG_20130122_214952.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
My original nut had a small white nylon seal. New nut did not have anything like that so I installed a thin rubber o-ring - couldn&#39;t hurt I reasoned.&lt;br /&gt;
&lt;br /&gt;
New nut just slides on to hose and clicks in place.&lt;br /&gt;
&lt;br /&gt;
This is my new nut installed. The blue &#39;cape&#39; is used to keep drips away from&amp;nbsp;alternator.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://4.bp.blogspot.com/-oxnoy5yFAt8/UP5wbsV1tII/AAAAAAAAV_4/AZZzSKC_sQA/s1600/IMG_20130122_214715.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;http://4.bp.blogspot.com/-oxnoy5yFAt8/UP5wbsV1tII/AAAAAAAAV_4/AZZzSKC_sQA/s320/IMG_20130122_214715.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://2.bp.blogspot.com/-J40OxuvxChs/UP5wbv_EapI/AAAAAAAAV_w/rtKsnGvygaY/s1600/IMG_20130122_214721.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;http://2.bp.blogspot.com/-J40OxuvxChs/UP5wbv_EapI/AAAAAAAAV_w/rtKsnGvygaY/s320/IMG_20130122_214721.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;http://1.bp.blogspot.com/-ORuC2nnc95U/UP5wbnzS_JI/AAAAAAAAV_8/rezD5BJYLtU/s1600/IMG_20130122_214728.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;320&quot; src=&quot;http://1.bp.blogspot.com/-ORuC2nnc95U/UP5wbnzS_JI/AAAAAAAAV_8/rezD5BJYLtU/s320/IMG_20130122_214728.jpg&quot; width=&quot;240&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/5851783564066805306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/01/replacing-ford-nl-fairlane-power.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/5851783564066805306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/5851783564066805306'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/01/replacing-ford-nl-fairlane-power.html' title='Replacing Ford NL Fairlane Power Steering Nut'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://4.bp.blogspot.com/-kULFZw1Iiko/UP5wbszUzFI/AAAAAAAAV_0/Oh4HueEBByk/s72-c/IMG_20130122_214942.jpg" height="72" width="72"/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-1796490229749791825</id><published>2013-01-18T13:34:00.000+11:00</published><updated>2013-01-18T13:34:40.314+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="bash"/><category scheme="http://www.blogger.com/atom/ns#" term="csv"/><category scheme="http://www.blogger.com/atom/ns#" term="google calendar"/><category scheme="http://www.blogger.com/atom/ns#" term="ical"/><category scheme="http://www.blogger.com/atom/ns#" term="ics"/><category scheme="http://www.blogger.com/atom/ns#" term="import"/><title type='text'>How to Import Birthdays and Anniversaries into Google Calendar</title><content type='html'>&lt;br /&gt;
This is a quick bash script I made that reads a file of events and creates an ical file suitable for importing into Google Calendar.&lt;br /&gt;
&lt;br /&gt;
Date file supports these event formats:&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;day/month event description&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;day/month/year event description&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: inherit; font-size: small;&quot;&gt;Brief Instructions&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;1. Cut and paste program into a text file.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;2. Save file as &lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;pc-ssv-to-ical.bash&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; (or whatever you like)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;3. In a terminal, &lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;chmod&amp;nbsp;+x&amp;nbsp;pc-ssv-to-ical.bash&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;4. Make an event file (eg. special dates) lile this:&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;1/1 New Year&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;26/1 Australia Day&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;4/4/1914 Someon&#39;es Birthday&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;5/5/1915 Bill/Jill Wedding (1915)&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;5. Run&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;./pc-ssv-to-ical.bash special.dates &amp;gt; cal-import.ics&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;6. Import &lt;/span&gt;&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;cal-import.ics&lt;/span&gt;&lt;span style=&quot;font-family: inherit;&quot;&gt; into a Google Calendar&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;h3&gt;
Script&lt;/h3&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;, Courier, monospace; font-size: x-small;&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;This script takes events from a file and outputs in ical format&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;suitable for importing into a Google Calendar.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;#&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;Copyright (C) 2013 &amp;nbsp;phil colbourn&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;#&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;This program is free software: you can redistribute it and/or modify&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;it under the terms of the GNU General Public License as published by&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;the Free Software Foundation, either version 3 of the License, or&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;(at your option) any later version.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;#&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;This program is distributed in the hope that it will be useful,&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. &amp;nbsp;See the&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;GNU General Public License for more details.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;#&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;A copy of the GNU General Public License can be obtained from&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# &amp;nbsp; &amp;nbsp;&lt;http: licenses=&quot;licenses&quot; www.gnu.org=&quot;www.gnu.org&quot;&gt;.&lt;/http:&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;SSV=$1&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;shopt -s extglob&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# load special dates as day/month[/year] event description&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# eg. 1/5/2004 A Person of Interest&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# eg. 24/5 Not Sure When Born&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# use this to convert SSV to CVS&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;# cat special-dates.ssv | sed &#39;s/ /,/&#39; &amp;gt; special-dates.csv&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;printf &quot;BEGIN:VCALENDAR\nVERSION:2.0\nCALSCALE:GREGORIAN\n&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;IFS+=&quot;,&quot;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;while read DATE EVENT; do&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [[ -z $DATE ]] &amp;amp;&amp;amp; continue &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # ignore null dates&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; # D/M[/Y] format&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; D=&quot;0${DATE%%/*}&quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # get day part&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; D=&quot;${D: -2}&quot; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; M=&quot;${DATE#*/}&quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # get month part&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; M=&quot;0${M%%/*}&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; M=&quot;${M: -2}&quot;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; # M/D[/Y] format&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; #M=&quot;0${DATE%%/*}&quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # get month part&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; #M=&quot;${M: -2}&quot; &amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; #D=&quot;${DATE#*/}&quot; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # get day part&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; #D=&quot;0${D%%/*}&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; #D=&quot;${D: -2}&quot;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; Y=&quot;${DATE/[0-9]?([0-9])[\/][0-9]?([0-9])/}&quot; &amp;nbsp;# get year part&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; Y=${Y//[\/]/} &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;# remove left over /&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&amp;nbsp; &amp;nbsp; [[ -z $Y ]] &amp;amp;&amp;amp; Y=$( date +%Y ) &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; # use this year if none given&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;cat &amp;lt;&lt;eof font=&quot;font&quot;&gt;&lt;/eof&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;BEGIN:VEVENT&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;DTSTART;TZID=Australia/Sydney:${Y}${M}${D}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;DTEND;TZID=Australia/Sydney:${Y}${M}${D}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;RRULE:FREQ=YEARLY&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;DESCRIPTION:${EVENT}${Y:+ ($Y)}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;SUMMARY:${EVENT}${Y:+ ($Y)}&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;END:VEVENT&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;EOF&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;done &amp;lt; $SSV&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;printf &quot;END:VCALENDAR\n&quot;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace; font-size: x-small;&quot;&gt;unset IFS&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;
Notes&lt;/h3&gt;
&lt;div&gt;
1. Code could be simplified if a more strict date format was used. eg. DD/MM[/YYYY]&lt;/div&gt;
&lt;div&gt;
2. Code will need to be changed for M/D[/Y] dates.&lt;/div&gt;
&lt;div&gt;
3. Space separated (SSV) and CSV formats both work. Quoted and double-quoted events also seem to work.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/1796490229749791825/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/01/how-to-import-birthdays-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/1796490229749791825'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/1796490229749791825'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2013/01/how-to-import-birthdays-and.html' title='How to Import Birthdays and Anniversaries into Google Calendar'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-7132178396583552645</id><published>2012-12-16T10:30:00.003+11:00</published><updated>2012-12-16T10:30:18.565+11:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="chroot"/><category scheme="http://www.blogger.com/atom/ns#" term="fakechroot"/><category scheme="http://www.blogger.com/atom/ns#" term="fakeroot"/><category scheme="http://www.blogger.com/atom/ns#" term="linux"/><category scheme="http://www.blogger.com/atom/ns#" term="pbuilder"/><category scheme="http://www.blogger.com/atom/ns#" term="sandpit"/><category scheme="http://www.blogger.com/atom/ns#" term="UML"/><title type='text'>Building and using a Linux UML environment</title><content type='html'>&lt;h3&gt;
Intro&lt;/h3&gt;
I want to test a script that randomly creates files all over a file system.&lt;br /&gt;
&lt;br /&gt;
Naturally, I don&#39;t want to test this on my Linux system.&lt;br /&gt;
&lt;br /&gt;
I tried fakechroot fakeroot chroot and schroot but I could not get them to do what I wanted.&lt;br /&gt;
fakechroot fakeroot chroot in particular allowed access to all files using &#39;/..&#39; - not what I wanted at all.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
Method&lt;/h3&gt;
I&#39;m using pbuilder because it seems easy (once you know how).&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;It can also be run as a user.&lt;/li&gt;
&lt;li&gt;It does not take up much space since UML environment is in a tar gzip file.&lt;/li&gt;
&lt;li&gt;Changes within UML can be saved or lost (default).&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3&gt;
To construct your sandpit&lt;/h3&gt;
I called it &#39;sandpit&#39;, but you can call it what you like. Just replace &lt;i&gt;sandpit&lt;/i&gt; with your preferred name.&lt;br /&gt;
Also, there is nothing stopping you making multiple sandpits.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;pcreate -a amd64 -d lucid sandpit&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
I was running 64 bit Linux so I choose amd64&lt;br /&gt;
I did not care what distro I used so I choose lucid&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
To put/copy files into your sandpit&lt;/h3&gt;
Files in ~/Projects/sandpit are available within your sandpit&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;cp &lt;file&gt; ~/Projects/sandpit/&lt;/file&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
To get into your sandpit&lt;/h3&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ptest -p sandpit&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
After you exit, any changes will be gone.&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;
To save changes in your sandpit&lt;/h3&gt;
&lt;span style=&quot;font-family: Courier New, Courier, monospace;&quot;&gt;ptest -p sandpit --sav&lt;/span&gt;e&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/7132178396583552645/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2012/12/building-and-using-linux-uml-environment.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/7132178396583552645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/7132178396583552645'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2012/12/building-and-using-linux-uml-environment.html' title='Building and using a Linux UML environment'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4556963925910772884.post-396079161632373571</id><published>2012-11-18T23:16:00.001+11:00</published><updated>2012-11-18T23:16:16.302+11:00</updated><title type='text'>Cleaning and Idle Speed Control Valve</title><content type='html'>In a &lt;a href=&quot;http://philatwarrimoo.blogspot.com/2012/10/ford-fairlane-nl-idle-problem.html&quot;&gt;previous post&lt;/a&gt;, I described how my NL Fairlane had an Idle problem and how I eventually got it fixed.&lt;br /&gt;
&lt;br /&gt;
I later concluded that my old ISC must simply be clogged and devised a method to clean it.&lt;br /&gt;
&lt;h3&gt;
Background&lt;/h3&gt;
Idle Speed Control (ISC) valves are also known as Idle Air&amp;nbsp;Controllers&amp;nbsp;(IAC) and Bypass valves (BYP).&lt;br /&gt;
&lt;br /&gt;
There are numerous patents for these devices. Mine is made by&amp;nbsp;&lt;span style=&quot;background-color: white; color: #323d4f; font-family: inherit; line-height: 18.200000762939453px;&quot;&gt;Hitachi, but &lt;a href=&quot;http://www.google.com/patents/US6382587?pg=PA2&amp;amp;dq=6382587&amp;amp;hl=en&amp;amp;sa=X&amp;amp;ei=nemmUJqKEYXwmAXxsoCYDA&amp;amp;ved=0CDQQ6AEwAA#v=onepage&amp;amp;q=6382587&amp;amp;f=false&quot;&gt;this&lt;/a&gt; patent from BLD seems closest:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;These Hitachi patents are also similar: &lt;a href=&quot;http://www.google.com/patents/US5188073?pg=PA4&amp;amp;dq=5188073&amp;amp;hl=en&amp;amp;sa=X&amp;amp;ei=5ummUK7lMKn0mAW09IDQCA&amp;amp;ved=0CDcQ6AEwAA#v=onepage&amp;amp;q=5188073&amp;amp;f=false&quot;&gt;US5188073&lt;/a&gt;,&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;a href=&quot;http://www.google.com/patents/US6571766?pg=PA1&amp;amp;dq=6571766&amp;amp;hl=en&amp;amp;sa=X&amp;amp;ei=KuqmUJyPFYnmmAW-uoGICA&amp;amp;ved=0CDcQ6AEwAA#v=onepage&amp;amp;q=6571766&amp;amp;f=false&quot;&gt;US6571766&lt;/a&gt;, and&amp;nbsp;&lt;a class=&quot;postlink&quot; href=&quot;http://www.google.com/patents/US6065447?pg=PA2&amp;amp;dq=6065447&amp;amp;hl=en&amp;amp;sa=X&amp;amp;ei=m-qmUPeDDcihmQWpzIHwBg&amp;amp;ved=0CDQQ6AEwAA#v=onepage&amp;amp;q=6065447&amp;amp;f=false&quot; style=&quot;background-color: white; margin: 0px; padding: 0px; text-decoration: initial;&quot;&gt;US6065447&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;You can see that there are numerous patents for variations on this theme and I did not find them all.&lt;/span&gt;&lt;br style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px; margin: 0px; padding: 0px;&quot; /&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;Some describe how certain features work, but it seems that my ISC is powered by vacuum and limited by its solenoid.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;These designs have long-thin hollow shafts and tiny vent holes. It is very important to have these clean.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGkapPwOrTii5sYW5BK9EhCM3BtWx4-D0o5_-xmxmp8FBBqe5vPYfM5cvXEBJegbm8B7-w7QRoZleUZQMb5zJm84AOKr-esq-DW9B0QuMyoWeGYcNMyovjGW1PYZJ6pXxfaWj78PW6VrIz/s1600/IMG_20121118_184308.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGkapPwOrTii5sYW5BK9EhCM3BtWx4-D0o5_-xmxmp8FBBqe5vPYfM5cvXEBJegbm8B7-w7QRoZleUZQMb5zJm84AOKr-esq-DW9B0QuMyoWeGYcNMyovjGW1PYZJ6pXxfaWj78PW6VrIz/s320/IMG_20121118_184308.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;One patent discusses how it should keep working even if these holes get blocked - sort of limp-home-mode.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;Inside an ISC&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;I pulled apart an ISC that was supposed to be a replacement part for my car. It did not work and I decided to dismantle it.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoiaetQ_JaLFvbdC-0Hq6EtFAZl58gkq06UnKBiNwlIsThofLB7avO_FZ5biu4OPTS_mjbutgmgCP-_JRHSo8oql7xNLMaZpLVsMvsskMghdbx2UsVLN6QQ26xDdgUokepK8R8n2S6_wBP/s1600/IMG_20121118_184232.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhoiaetQ_JaLFvbdC-0Hq6EtFAZl58gkq06UnKBiNwlIsThofLB7avO_FZ5biu4OPTS_mjbutgmgCP-_JRHSo8oql7xNLMaZpLVsMvsskMghdbx2UsVLN6QQ26xDdgUokepK8R8n2S6_wBP/s320/IMG_20121118_184232.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
A close-up of actual valve, shaft, and diaphragm.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIpMw1yVEnELYQMh3NZzTzCPJzl5u3F7GwouLFQTR2nhNo-HW6e-AxooRcRDmoYODettMBN1hfCJhGs0TURmspvabXuSchoQH6zP_75fGeTMw6MaQeyOIM83Q4mShgi4FDvAZ2Zs_AAXCT/s1600/IMG_20121118_184239.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIpMw1yVEnELYQMh3NZzTzCPJzl5u3F7GwouLFQTR2nhNo-HW6e-AxooRcRDmoYODettMBN1hfCJhGs0TURmspvabXuSchoQH6zP_75fGeTMw6MaQeyOIM83Q4mShgi4FDvAZ2Zs_AAXCT/s320/IMG_20121118_184239.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
These solenoids are complex. What is interesting is that they do not directly move a valve. They simply limit how far its valve can open.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLf-ucujB9JKjY8Z0u71Y1R1LYCH0Yp8ZrxGNsd1VR1s0fufCpSV7tOvsamZplZsgI37KedqEvOg66hIh6rj81MVvg4vbkn6kM9oJ8shjvdASnLdXoVN39cSuzc_U11wlIowOmkNkIukAb/s1600/IMG_20121118_184251.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiLf-ucujB9JKjY8Z0u71Y1R1LYCH0Yp8ZrxGNsd1VR1s0fufCpSV7tOvsamZplZsgI37KedqEvOg66hIh6rj81MVvg4vbkn6kM9oJ8shjvdASnLdXoVN39cSuzc_U11wlIowOmkNkIukAb/s320/IMG_20121118_184251.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;h3&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;Cleaning&lt;/span&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;Cleaning should not be a problem except that this is an electrical component and contains rubber seals and diaphragms that can not be directly seen or accessed.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;I decided that I&#39;d limit cleaning fluids to WD40 (or similar), Isopropyl alcohol, and compressed air.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;Cleaning the parts that can be seen is straight forward: spray with WD40, scrub components gently with a small brush, blow out excess. Later you can rinse and with Isopropyl alcohol.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;At one end you will see a spring over a tube that guides a valve shaft. This tube is fixed in place by a cast socket that has a small 3 mm diameter hole. This hole allows vacuum to pass through a shaft and into a space between solenoid and diaphragm. This space is also vented by brass fitting that is usually covered by a black filter.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;Pull off this filter. At first this will be hard to do. Be gentle and work on it slowly to remove it undamaged.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;I sprayed in WD40 through this vent and also through that hole mentioned above.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;I then ran my air compressor up to about 10 PSI and connected it to that vent as shown below.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: inherit;&quot;&gt;&lt;span style=&quot;background-color: white; color: #323d4f; line-height: 18.200000762939453px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt1O5TgfBjM8gz32Zm_f0cKP1MASoSQObC7V2BDmIPkW0F_fUpkuURhtyWCoUdaHtAKJXGrsLD6DbzHN5qm6PdbaIuDi8SNuQgdLgli3fAPEHzLsiMMgyHMNsNCah8M_ED_eO4sa6Gv2-P/s1600/IMG_20121118_181612.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;480&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjt1O5TgfBjM8gz32Zm_f0cKP1MASoSQObC7V2BDmIPkW0F_fUpkuURhtyWCoUdaHtAKJXGrsLD6DbzHN5qm6PdbaIuDi8SNuQgdLgli3fAPEHzLsiMMgyHMNsNCah8M_ED_eO4sa6Gv2-P/s640/IMG_20121118_181612.jpg&quot; width=&quot;640&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
I cut a piece of plastic tube to force close my ISC&#39;s valve.&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: left;&quot;&gt;
(My old ISC has a LPG modification that I have sealed with a blocked pipe. I also snapped off a flange by using an incorrect gasket.)&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV0kmoSED6pXNNC0A8wVSRwyVkDHtjCZySr6M3j8vFblxkhcDXDKRdedyWuedI9vV9MnnH7MGaVuI2v02VQguc5bef5ysPIzkZ3qC5b9C3SvQKL-be7McRrOLK7GGRNeL9f0Q9R_twtyCp/s1600/IMG_20121118_181815.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhV0kmoSED6pXNNC0A8wVSRwyVkDHtjCZySr6M3j8vFblxkhcDXDKRdedyWuedI9vV9MnnH7MGaVuI2v02VQguc5bef5ysPIzkZ3qC5b9C3SvQKL-be7McRrOLK7GGRNeL9f0Q9R_twtyCp/s400/IMG_20121118_181815.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlYnP2s-lBBu-lGQw-FqKEyK0uAz6BO7UnfwlpIkVVSYQh_4zG1uO5UIsJxdvtKIwmfIAgk5pHAT1pe74QWY4MENRAAp6klc9Ondh4mqzY94FHGNqsmyOBDjg1tdkYOdST1mJxF9iCwzRF/s1600/IMG_20121118_181736.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;300&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhlYnP2s-lBBu-lGQw-FqKEyK0uAz6BO7UnfwlpIkVVSYQh_4zG1uO5UIsJxdvtKIwmfIAgk5pHAT1pe74QWY4MENRAAp6klc9Ondh4mqzY94FHGNqsmyOBDjg1tdkYOdST1mJxF9iCwzRF/s400/IMG_20121118_181736.jpg&quot; width=&quot;400&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
With this tube in place, I can&amp;nbsp;pressurised&amp;nbsp;diaphragm space using vent fitting, and by covering a large vent hole with my thumb.&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh09Qk__L-G6C0WlJ7xYkbdrjEtQjORfJlxyi9X2fMqSYOOv2_hoG7ifVFP64yK5R5BOVk9i_vi__OpS3CGhq2jix2KMdtnnYMVN349gZgnKDoWk-j1UDTE9nCJZneVIyshRkF4geoCovgO/s1600/IMG_20121118_213858.jpg&quot; imageanchor=&quot;1&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img border=&quot;0&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh09Qk__L-G6C0WlJ7xYkbdrjEtQjORfJlxyi9X2fMqSYOOv2_hoG7ifVFP64yK5R5BOVk9i_vi__OpS3CGhq2jix2KMdtnnYMVN349gZgnKDoWk-j1UDTE9nCJZneVIyshRkF4geoCovgO/s320/IMG_20121118_213858.jpg&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
By gently forcing air and WD40 through my ISC I was able to flush and clean out shaft and vents.&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;</content><link rel='replies' type='application/atom+xml' href='http://philatwarrimoo.blogspot.com/feeds/396079161632373571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://philatwarrimoo.blogspot.com/2012/11/cleaning-and-idle-speed-control-valve.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/396079161632373571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4556963925910772884/posts/default/396079161632373571'/><link rel='alternate' type='text/html' href='http://philatwarrimoo.blogspot.com/2012/11/cleaning-and-idle-speed-control-valve.html' title='Cleaning and Idle Speed Control Valve'/><author><name>phil</name><uri>http://www.blogger.com/profile/08151110415999145024</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhGkapPwOrTii5sYW5BK9EhCM3BtWx4-D0o5_-xmxmp8FBBqe5vPYfM5cvXEBJegbm8B7-w7QRoZleUZQMb5zJm84AOKr-esq-DW9B0QuMyoWeGYcNMyovjGW1PYZJ6pXxfaWj78PW6VrIz/s72-c/IMG_20121118_184308.jpg" height="72" width="72"/><thr:total>0</thr:total></entry></feed>