<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>Sébastien Wains</title>
	
	<link>http://www.wains.be</link>
	<description>Linux, Open Source, VoIP and other stuff</description>
	<lastBuildDate>Fri, 03 Sep 2010 21:31:34 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/wains" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="wains" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Setting up Synergy between Mac OS and Linux</title>
		<link>http://www.wains.be/index.php/2010/09/02/setting-up-synergy-between-mac-os-and-linux/</link>
		<comments>http://www.wains.be/index.php/2010/09/02/setting-up-synergy-between-mac-os-and-linux/#comments</comments>
		<pubDate>Thu, 02 Sep 2010 20:38:53 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Apple/Mac OS]]></category>
		<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=1059</guid>
		<description><![CDATA[This post should be OK for any kind of client/server combination. That&#8217;s just that I only had a MacBook and a Linux netbook under my hands at the moment of writing this. Quoting their homepage : &#8220;Synergy lets you easily share a single mouse and keyboard between multiple computers with different operating systems, without special [...]]]></description>
			<content:encoded><![CDATA[<p><em>This post should be OK for any kind of client/server combination. That&#8217;s just that I only had a MacBook and a Linux netbook under my hands at the moment of writing this.</em></p>
<p>Quoting their homepage : &#8220;Synergy lets you easily share a single mouse and keyboard between multiple computers with different operating systems, without special hardware. All you need is a LAN connection. It&#8217;s intended for users with multiple computers, where each system uses its own display.&#8221;</p>
<p>They forget to mention clipboard along with mouse and keyboard sharing. But it&#8217;s not completely working for me. See below.</p>
<p>For the setup, either see here : <a href="http://synergy-foss.org/pm/projects/synergy/wiki/Setup">http://synergy-foss.org/pm/projects/synergy/wiki/Setup</a></p>
<p>Or for the quick way :</p>
<p><strong>On the Mac (Synergy server, right screen) :</strong></p>
<p>Edit synergy.conf somewhere on the filesystem :</p>
<pre><code>section: screens
   mac.intranet.example.com:
   linux.intranet.example.com:
end
section: links
   mac.intranet.example.com:
       left = linux.intranet.example.com
   linux.intranet.example.com:
       right = mac.intranet.example.com
end</code></pre>
<p>Start the server :<br />
<code>synergys  -f --config synergy.conf</code></p>
<p><strong>Under Linux (Synergy client, left screen) :</strong></p>
<p><code>synergyc -f mac.intranet.example.com</code></p>
<p>Done !</p>
<p>As said earlier, I was able to capture the clipboard, but only from Linux to Mac. Indeed, for some reason it didn&#8217;t work the other way around.</p>
<p>Don&#8217;t forget : if you want to get rid of any keyboard or mouse on the client computer, make sure synergy starts at boot <img src='http://www.wains.be/wp-content/plugins/tango/face-wink.png' alt=';-)' class='wp-smiley' /> </p>
<p><strong>And finally a word of caution from Synergy FAQ, as Synergy is potentially sensitive to MITM attacks and eavesdropping :</strong></p>
<p><em>What security/encryption does synergy provide?<br />
Synergy provides no built-in encryption or authentication. Given that, synergy should not be used on or over any untrusted network, especially the Internet. It&#8217;s generally fine for home networks. Future versions may provide built-in encryption and authentication.</p>
<p>Strong encryption and authentication is available through SSH (secure shell). Run the SSH daemon (i.e. server) on the same computer that you run the synergy server. It requires no special configuration to support synergy. On each synergy client system, run SSH with port forwarding:</p>
<p>        ssh -f -N -L 24800:server-hostname:24800 server-hostname<br />
where server-hostname is the name of the SSH/synergy server. Once ssh authenticates itself, start the synergy client normally except use localhost or 127.0.0.1 as the server&#8217;s address. SSH will then encrypt all communication on behalf of synergy. Authentication is handled by the SSH authentication.</em></p>
<img src="http://feeds.feedburner.com/~r/wains/~4/CjAMql6Ds88" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2010/09/02/setting-up-synergy-between-mac-os-and-linux/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Force SSH password authentication</title>
		<link>http://www.wains.be/index.php/2010/08/31/force-ssh-password-authentication/</link>
		<comments>http://www.wains.be/index.php/2010/08/31/force-ssh-password-authentication/#comments</comments>
		<pubDate>Tue, 31 Aug 2010 20:25:43 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=1052</guid>
		<description><![CDATA[If for some reason you want to disable public key authentication temporarily when SSH&#8217;ing into a machine, type : ssh -o PubkeyAuthentication=no user@machine You should get the prompt for the password. This goes without saying, but ChallengeResponseAuthentication (at least on Debian) must be set to yes on the server side for this to work. Thanks [...]]]></description>
			<content:encoded><![CDATA[<p>If for some reason you want to disable public key authentication temporarily when SSH&#8217;ing into a machine, type :</p>
<p><code>ssh -o PubkeyAuthentication=no user@machine</code></p>
<p>You should get the prompt for the password.</p>
<p>This goes without saying, but ChallengeResponseAuthentication (at least on Debian) must be set to yes on the server side for this to work.</p>
<p>Thanks to Philip for proof-reading this post <img src='http://www.wains.be/wp-content/plugins/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/wains/~4/wv81bgmXcZc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2010/08/31/force-ssh-password-authentication/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Red Hat Cluster Suite monitoring with SNMP</title>
		<link>http://www.wains.be/index.php/2010/08/26/red-hat-cluster-suite-monitoring-with-snmp/</link>
		<comments>http://www.wains.be/index.php/2010/08/26/red-hat-cluster-suite-monitoring-with-snmp/#comments</comments>
		<pubDate>Thu, 26 Aug 2010 18:04:43 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[High-Availability]]></category>
		<category><![CDATA[Red Hat/CentOS]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=1047</guid>
		<description><![CDATA[I&#8217;ll consider your cluster is already up and running. Install cluster-snmp (available in Red Hat Cluster repository) : yum install cluster-snmp Let&#8217;s see what we have in there : # rpm -ql cluster-snmp /usr/lib/cluster-snmp /usr/lib/cluster-snmp/libClusterMonitorSnmp.so /usr/share/doc/cluster-snmp-0.12.1 /usr/share/doc/cluster-snmp-0.12.1/COPYING /usr/share/doc/cluster-snmp-0.12.1/README /usr/share/doc/cluster-snmp-0.12.1/README.snmpd /usr/share/doc/cluster-snmp-0.12.1/REDHAT-CLUSTER-MIB /usr/share/doc/cluster-snmp-0.12.1/REDHAT-MIB /usr/share/snmp/mibs/REDHAT-CLUSTER-MIB /usr/share/snmp/mibs/REDHAT-MIB Now on every node of the cluster, edit /etc/snmp/snmpd.conf and add this [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ll consider your cluster is already up and running.</p>
<p>Install cluster-snmp (available in Red Hat Cluster repository) :</p>
<p><code>yum install cluster-snmp</code></p>
<p>Let&#8217;s see what we have in there :</p>
<p><code># rpm -ql cluster-snmp<br />
/usr/lib/cluster-snmp<br />
/usr/lib/cluster-snmp/libClusterMonitorSnmp.so<br />
/usr/share/doc/cluster-snmp-0.12.1<br />
/usr/share/doc/cluster-snmp-0.12.1/COPYING<br />
/usr/share/doc/cluster-snmp-0.12.1/README<br />
/usr/share/doc/cluster-snmp-0.12.1/README.snmpd<br />
/usr/share/doc/cluster-snmp-0.12.1/REDHAT-CLUSTER-MIB<br />
/usr/share/doc/cluster-snmp-0.12.1/REDHAT-MIB<br />
/usr/share/snmp/mibs/REDHAT-CLUSTER-MIB<br />
/usr/share/snmp/mibs/REDHAT-MIB</code></p>
<p>Now on every node of the cluster, edit /etc/snmp/snmpd.conf and add this :</p>
<p>At the very beginning of the file :<br />
<code>dlmod RedHatCluster    /usr/lib/cluster-snmp/libClusterMonitorSnmp.so</code></p>
<p>If you run a 64 bits node :<br />
<code>dlmod RedHatCluster    /usr/lib64/cluster-snmp/libClusterMonitorSnmp.so</code></p>
<p>After other view items :<br />
<code>view    systemview    included    REDHAT-CLUSTER-MIB:RedHatCluster</code></p>
<p>Now reload SNMP and restart modclusterd :<br />
<code>service snmpd reload<br />
service modclusterd restart</code></p>
<p>You should now be able to query your nodes with any LDAP client.</p>
<p>On a Linux client, copy the MIB&#8217;s from the RPM under ~/.snmp/mibs and then run :</p>
<p><code>$ snmpwalk -v 2c -c public node1.example.com REDHAT-CLUSTER-MIB::RedHatCluster<br />
REDHAT-CLUSTER-MIB::rhcMIBVersion.0 = INTEGER: 1<br />
REDHAT-CLUSTER-MIB::rhcClusterName.0 = STRING: "MailServerExample"<br />
REDHAT-CLUSTER-MIB::rhcClusterStatusCode.0 = INTEGER: 1<br />
REDHAT-CLUSTER-MIB::rhcClusterStatusDesc.0 = STRING: "All services and nodes functional"<br />
REDHAT-CLUSTER-MIB::rhcClusterVotesNeededForQuorum.0 = INTEGER: 1<br />
REDHAT-CLUSTER-MIB::rhcClusterVotes.0 = INTEGER: 2<br />
REDHAT-CLUSTER-MIB::rhcClusterQuorate.0 = INTEGER: 1<br />
REDHAT-CLUSTER-MIB::rhcClusterNodesNum.0 = INTEGER: 2<br />
REDHAT-CLUSTER-MIB::rhcClusterNodesNames.0 = STRING: "node1.example.com, node2.example.com"<br />
REDHAT-CLUSTER-MIB::rhcClusterAvailNodesNum.0 = INTEGER: 2<br />
REDHAT-CLUSTER-MIB::rhcClusterAvailNodesNames.0 = STRING: "node1.example.com, node2.example.com"<br />
REDHAT-CLUSTER-MIB::rhcClusterUnavailNodesNum.0 = INTEGER: 0<br />
REDHAT-CLUSTER-MIB::rhcClusterUnavailNodesNames.0 = ""<br />
REDHAT-CLUSTER-MIB::rhcClusterServicesNum.0 = INTEGER: 1<br />
REDHAT-CLUSTER-MIB::rhcClusterServicesNames.0 = STRING: "MailServer"<br />
REDHAT-CLUSTER-MIB::rhcClusterRunningServicesNum.0 = INTEGER: 1<br />
REDHAT-CLUSTER-MIB::rhcClusterRunningServicesNames.0 = STRING: "MailServer"<br />
REDHAT-CLUSTER-MIB::rhcClusterStoppedServicesNum.0 = INTEGER: 0<br />
REDHAT-CLUSTER-MIB::rhcClusterStoppedServicesNames.0 = ""<br />
REDHAT-CLUSTER-MIB::rhcClusterFailedServicesNum.0 = INTEGER: 0<br />
REDHAT-CLUSTER-MIB::rhcClusterFailedServicesNames.0 = ""<br />
REDHAT-CLUSTER-MIB::rhcNodeName."node1.example.com" = STRING: "node1.example.com"<br />
REDHAT-CLUSTER-MIB::rhcNodeName."node2.example.com" = STRING: "node2.example.com"<br />
REDHAT-CLUSTER-MIB::rhcNodeStatusCode."node1.example.com" = INTEGER: 0<br />
REDHAT-CLUSTER-MIB::rhcNodeStatusCode."node2.example.com" = INTEGER: 0<br />
REDHAT-CLUSTER-MIB::rhcNodeStatusDesc."node1.example.com" = STRING: "Participating in cluster"<br />
REDHAT-CLUSTER-MIB::rhcNodeStatusDesc."node2.example.com" = STRING: "Participating in cluster"<br />
REDHAT-CLUSTER-MIB::rhcNodeRunningServicesNum."node1.example.com" = INTEGER: 1<br />
REDHAT-CLUSTER-MIB::rhcNodeRunningServicesNum."node2.example.com" = INTEGER: 0<br />
REDHAT-CLUSTER-MIB::rhcNodeRunningServicesNames."node1.example.com" = STRING: "MailServer"<br />
REDHAT-CLUSTER-MIB::rhcNodeRunningServicesNames."node2.example.com" = ""<br />
REDHAT-CLUSTER-MIB::rhcServiceName."MailServer" = STRING: "MailServer"<br />
REDHAT-CLUSTER-MIB::rhcServiceStatusCode."MailServer" = INTEGER: 0<br />
REDHAT-CLUSTER-MIB::rhcServiceStatusDesc."MailServer" = STRING: "running"<br />
REDHAT-CLUSTER-MIB::rhcServiceStartMode."MailServer" = STRING: "automatic"<br />
REDHAT-CLUSTER-MIB::rhcServiceRunningOnNode."MailServer" = STRING: "node1.example.com"</code></p>
<p>You are now provided with very interesting information, like :<br />
<code>REDHAT-CLUSTER-MIB::rhcClusterStatusDesc<br />
REDHAT-CLUSTER-MIB::rhcServiceRunningOnNode</code></p>
<img src="http://feeds.feedburner.com/~r/wains/~4/WxtFtg4BBg0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2010/08/26/red-hat-cluster-suite-monitoring-with-snmp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debugging Multicast</title>
		<link>http://www.wains.be/index.php/2010/08/16/debugging-multicast/</link>
		<comments>http://www.wains.be/index.php/2010/08/16/debugging-multicast/#comments</comments>
		<pubDate>Mon, 16 Aug 2010 19:27:46 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=1044</guid>
		<description><![CDATA[On the &#8220;client&#8221; side : iperf -u -c 239.192.95.98 -p 10000 -b 1 -i 5 -T 10 -t 120 -u : use UDP -c : run in client mode -p : port -b : bandwidth in bits/sec -i : interval in second -T : TTL -t : time to transmit in seconds On the &#8220;server&#8221; [...]]]></description>
			<content:encoded><![CDATA[<p>On the &#8220;client&#8221; side :<br />
<code>iperf -u -c 239.192.95.98 -p 10000 -b 1 -i 5 -T 10 -t 120</code></p>
<p>-u : use UDP<br />
-c : run in client mode<br />
-p : port<br />
-b : bandwidth in bits/sec<br />
-i : interval in second<br />
-T : TTL<br />
-t : time to transmit in seconds</p>
<p>On the &#8220;server&#8221; side :<br />
<code>iperf -s -i 1 -u -B 239.192.95.98 -p 10000</code></p>
<p>-s : run in server mode<br />
-B : bind to multicast address</p>
<img src="http://feeds.feedburner.com/~r/wains/~4/ruuJFvns9LU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2010/08/16/debugging-multicast/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Debian : purge packages marked with rc status</title>
		<link>http://www.wains.be/index.php/2010/08/04/debian-purge-packages-marked-with-rc-status/</link>
		<comments>http://www.wains.be/index.php/2010/08/04/debian-purge-packages-marked-with-rc-status/#comments</comments>
		<pubDate>Wed, 04 Aug 2010 21:48:25 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Debian/Ubuntu]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=1041</guid>
		<description><![CDATA[Packages with rc status are not completely removed from the system, configuration files are still present. If you have a bunch of rc packages you need to purge, as root, type : dpkg --list &#124;grep "^rc" &#124; cut -d " " -f 3 &#124; xargs sudo dpkg --purge Source : http://joysofprogramming.com/remove-packages-marked-rc/]]></description>
			<content:encoded><![CDATA[<p>Packages with rc status are not completely removed from the system, configuration files are still present.</p>
<p>If you have a bunch of rc packages you need to purge, as root, type :</p>
<p><code>dpkg --list |grep "^rc" | cut -d " " -f 3 | xargs sudo dpkg --purge</code></p>
<p>Source : <a href="http://joysofprogramming.com/remove-packages-marked-rc/">http://joysofprogramming.com/remove-packages-marked-rc/</a></p>
<img src="http://feeds.feedburner.com/~r/wains/~4/TAeqTk-dikE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2010/08/04/debian-purge-packages-marked-with-rc-status/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Simple HTTP server from the command line</title>
		<link>http://www.wains.be/index.php/2010/07/27/simple-http-server-from-the-command-line/</link>
		<comments>http://www.wains.be/index.php/2010/07/27/simple-http-server-from-the-command-line/#comments</comments>
		<pubDate>Tue, 27 Jul 2010 21:34:09 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Tools]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=1039</guid>
		<description><![CDATA[Tested under Debian Lenny and Mac OS 10.6.3 I&#8217;ve been using this one for a year or so but failed to share it until now.. python -m SimpleHTTPServer 8000 This will start a simple HTTP server listening on port 8000. Python needed, of course. Run that command from the folder you want to share. By [...]]]></description>
			<content:encoded><![CDATA[<p>Tested under Debian Lenny and Mac OS 10.6.3</p>
<p>I&#8217;ve been using this one for a year or so but failed to share it until now..</p>
<p><code>python -m SimpleHTTPServer 8000</code></p>
<p>This will start a simple HTTP server listening on port 8000.<br />
Python needed, of course.</p>
<p>Run that command from the folder you want to share.</p>
<p>By the way if William from Paris is reading this, thanks for the book <img src='http://www.wains.be/wp-content/plugins/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/wains/~4/dQHBNxwUUXM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2010/07/27/simple-http-server-from-the-command-line/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>HTC Hero under Android 2.1 + root + tethering + OpenVPN</title>
		<link>http://www.wains.be/index.php/2010/07/08/htc-hero-under-android-2-1-root-tethering-openvpn/</link>
		<comments>http://www.wains.be/index.php/2010/07/08/htc-hero-under-android-2-1-root-tethering-openvpn/#comments</comments>
		<pubDate>Thu, 08 Jul 2010 20:49:46 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Android]]></category>
		<category><![CDATA[VPN]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=1025</guid>
		<description><![CDATA[So I finally jumped into the wonderful world of custom ROM, with my HTC Hero (unbranded German unit). This phone was very slow and frustrating with the stock 1.5 ROM. I was planning on getting the Nexus One while being in the US in late June, but finally preferred giving the custom ROM option a [...]]]></description>
			<content:encoded><![CDATA[<p>So I finally jumped into the wonderful world of custom ROM, with my HTC Hero (unbranded German unit).</p>
<p>This phone was very slow and frustrating with the stock 1.5 ROM. I was planning on getting the Nexus One while being in the US in late June, but finally preferred giving the custom ROM option a try. I think I was right, this saved me a couple hundred dollars, and the phone is amazingly fast now.</p>
<p><strong>ALRIGHT : I&#8217;M NOT RESPONSIBLE FOR ANY BRICKED PHONE. OK ? GOOD.</strong></p>
<p>I followed this first guide : <a href="http://sites.google.com/site/roothtchero/">http://sites.google.com/site/roothtchero/</a></p>
<p>It may seem complicated and confusing but really, it&#8217;s not.<br />
Basically you flash the recovery image with flashrec, something you should only do once. Actually this is the sensitive operation of the whole process. If you mess up there (like pulling the battery while flashing, if you really want to give it a try be quick it takes like 2 seconds for the flash to be complete), the phone officially becomes a paperweight.<br />
You&#8217;ll be able to access the recovery mode by pressing the HOME KEY + HANG UP KEY when turning the phone on.<br />
From there, you can do a lot of operations on your phone.<br />
Nandroid backup will backup the phone as is, including the OS, radio firmware, apps and settings. Everything will be stored on the SD card. My first backup (Android 1.5) weighs around 200 MB.<br />
It is highly recommended to backup your phone anytime you want to try a new ROM.</p>
<p>You can also mount the SD card on your computer while in the recovery mode (with the USB-MS option).</p>
<p>You load a custom ROM onto the root of the SD card, you select the &#8220;flash/restore&#8221; menu, pick up the ROM you want and hit confirm. Actually, I recommend wiping the phone before loading a ROM.</p>
<p>After a few minutes it should say the install is done. You can reboot and enjoy your new ROM.</p>
<p>The process took less than 15 minutes for me.</p>
<p>Talking about the ROM, I went with <a href="http://www.villainrom.co.uk">VillainROM 12.0 ROM</a> (after testing a few others). It is an Android 2.1 custom ROM with Sense. I&#8217;ve been using it for a couple of days, it&#8217;s very stable and fast. Hardware is working perfectly.<br />
This ROM comes pre-rooted. It already comes with OpenVPN binaries and tun.ko module and aNetShare for Wi-Fi tethering. Neat !</p>
<p>Actually, I only had to install &#8220;OpenVPN Settings&#8221; from the market to get me going.</p>
<p>You put all your config files, keys, etc. under a folder named &#8220;openvpn&#8221; on the SD card.<br />
Config files must end with *.ovpn !</p>
<p>In OpenVPN Settings, you&#8217;ll have to load the tun modules when OpenVPN starts.<br />
I had to use the insmod method.<br />
Specify the path to the module : /system/lib/modules/tun.ko</p>
<p>Next, you&#8217;ll have to grab the Android SDK on your computer.<br />
When it&#8217;s done, plug your phone into your computer with the USB cable, and type this as root (assuming your are under Linux or Mac) :<br />
<code>/home/user/android/adb shell</code><br />
You should have a prompt on your phone now.</p>
<p>Type :<br />
<code>su<br />
bash</code></p>
<p>You should have a bash prompt now <img src='http://www.wains.be/wp-content/plugins/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </p>
<p>Now type the following :</p>
<p><code>cd /system/xbin/bb<br />
mount -o remount,rw /dev/block/mtdblock3 /system<br />
ln -s ../ifconfig<br />
ln -s ../route<br />
mount -o remount,ro /dev/block/mtdblock3 /system</code></p>
<p>This is what I had to do because OpenVPN was complaining about ifconfig and route commands. Apparently OpenVPN looks for the binaries under /system/xbin/bb. Those are under /system/xbin/.</p>
<p>I got the explanation from this link : <a href="http://www.villainrom.co.uk/viewtopic.php?f=46&#038;t=1888">http://www.villainrom.co.uk/viewtopic.php?f=46&#038;t=1888</a></p>
<p>Exit the shell, unplug the phone from your computer.</p>
<p>If your OpenVPN config is correct you can start OpenVPN Settings.</p>
<p>The current version apparently has a bug.</p>
<p>You have to select &#8220;OpenVPN&#8221;, then select the OpenVPN configuration you want to load.<br />
You expect it to work but it won&#8217;t, you have to deselect OpenVPN and select again, from there it will load the configuration, eventually prompting your for your password or whatever, and finally connect you.</p>
<p>Last thing I&#8217;d like to mention : <strong>screenshots</strong> on Android <img src='http://www.wains.be/wp-content/plugins/tango/face-smile.png' alt=':-)' class='wp-smiley' /><br />
As root, you can take screenshots, look it up on the market, there are a dozen applications doing that. </p>
<p>If you have any questions, concerns or comments, feel free to drop a line in the comments <img src='http://www.wains.be/wp-content/plugins/tango/face-smile.png' alt=':-)' class='wp-smiley' /> </p>
<img src="http://feeds.feedburner.com/~r/wains/~4/ehuLdD2b63s" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2010/07/08/htc-hero-under-android-2-1-root-tethering-openvpn/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Several workspaces on Ubuntu Netbook Remix</title>
		<link>http://www.wains.be/index.php/2010/06/03/several-workspaces-on-ubuntu-netbook-remix/</link>
		<comments>http://www.wains.be/index.php/2010/06/03/several-workspaces-on-ubuntu-netbook-remix/#comments</comments>
		<pubDate>Thu, 03 Jun 2010 19:32:35 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Debian/Ubuntu]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=1023</guid>
		<description><![CDATA[Workspaces are &#8220;disabled&#8221; by default in Ubuntu Netbook Remix (actually set to one workspace) If you want 4 workspaces, in a terminal type : gconftool-2 -s /apps/metacity/general/num_workspaces 4 --type int You&#8217;ll navigate in the workspaces with the usual keyboard shortcuts : ctrl + alt + left/right arrow keys And : ctrl + alt + shift [...]]]></description>
			<content:encoded><![CDATA[<p>Workspaces are &#8220;disabled&#8221; by default in Ubuntu Netbook Remix (actually set to one workspace)</p>
<p>If you want 4 workspaces, in a terminal type :<br />
<code>gconftool-2 -s /apps/metacity/general/num_workspaces 4 --type int</code></p>
<p>You&#8217;ll navigate in the workspaces with the usual keyboard shortcuts : ctrl + alt + left/right arrow keys<br />
And : ctrl + alt + shift + left/right to move windows from one space to another.</p>
<img src="http://feeds.feedburner.com/~r/wains/~4/ugZuMbE0hOs" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2010/06/03/several-workspaces-on-ubuntu-netbook-remix/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>SSH : add port forwardings on a live connection with EscapeChar</title>
		<link>http://www.wains.be/index.php/2010/04/29/ssh-add-port-forwardings-on-a-live-connection-with-escapechar/</link>
		<comments>http://www.wains.be/index.php/2010/04/29/ssh-add-port-forwardings-on-a-live-connection-with-escapechar/#comments</comments>
		<pubDate>Thu, 29 Apr 2010 21:22:50 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[SSH]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=1009</guid>
		<description><![CDATA[Excerpt from the man page : The interesting part is in bold. When a pseudo-terminal has been requested, ssh supports a number of functions through the use of an escape character. A single tilde character can be sent as ~~ or by following the tilde by a character other than those described below. The escape [...]]]></description>
			<content:encoded><![CDATA[<p>Excerpt from the man page :</p>
<p>The interesting part is in bold.</p>
<pre><code>When a pseudo-terminal has been requested, ssh supports a number of functions through
the use of an escape character.

A single tilde character can be sent as ~~ or by following the tilde by a character
other than those described below.  The escape character must always follow a newline
to be interpreted as special.  The escape character can be changed in configuration
files using the EscapeChar configuration directive or on the command line by the -e
option.

The supported escapes (assuming the default ‘~’) are:

~.      Disconnect.

~^Z     Background ssh.

~#      List forwarded connections.

~&amp;      Background ssh at logout when waiting for forwarded connection / X11 sessions
        to terminate.

~?      Display a list of escape characters.

~B      Send a BREAK to the remote system (only useful for SSH protocol version 2 and
        if the peer supports it).

<strong>~C      Open command line.  Currently this allows the addition of port forwardings
        using the -L and -R options (see above).  It also allows the cancellation of
        existing remote port-forwardings using -KR[bind_address:]port.  !command
        allows the user to execute a local command if the PermitLocalCommand option is
        enabled in ssh_config(5).  Basic help is available, using the -h option.</strong>

~R      Request rekeying of the connection (only useful for SSH protocol version 2 and
        if the peer supports it).</code></pre>
<p>EscapeChar also allows disconnection of an SSH session, for example when it is hanging and is not giving you the prompt back (~.).</p>
<img src="http://feeds.feedburner.com/~r/wains/~4/FTV-47R1vLM" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2010/04/29/ssh-add-port-forwardings-on-a-live-connection-with-escapechar/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Force IP renewal on Cisco 837</title>
		<link>http://www.wains.be/index.php/2010/04/28/force-ip-renewal-on-cisco-837/</link>
		<comments>http://www.wains.be/index.php/2010/04/28/force-ip-renewal-on-cisco-837/#comments</comments>
		<pubDate>Wed, 28 Apr 2010 21:27:34 +0000</pubDate>
		<dc:creator>Sébastien Wains</dc:creator>
				<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://www.wains.be/?p=1004</guid>
		<description><![CDATA[Belgacom ISP force IP renewal for their residential ADSL customers every 36 hours for whatever stupid purpose (annoy us, sell their fixed IP option, etc.). Here&#8217;s how I force my Cisco 837 router to renew its WAN IP every night at 01:00am : kron occurrence RENEW_IP at 1:00 recurring policy-list RENEW_IP kron policy-list RENEW_IP cli [...]]]></description>
			<content:encoded><![CDATA[<p>Belgacom ISP force IP renewal for their residential ADSL customers every 36 hours for whatever stupid purpose (annoy us, sell their fixed IP option, etc.).</p>
<p>Here&#8217;s how I force my Cisco 837 router to renew its WAN IP every night at 01:00am :</p>
<pre><code>kron occurrence RENEW_IP at 1:00 recurring
 policy-list RENEW_IP

kron policy-list RENEW_IP
 cli clear interface Dialer 1</code></pre>
<p>I&#8217;m less likely to lose my SSH/VPN connections now..</p>
<img src="http://feeds.feedburner.com/~r/wains/~4/pDRyKUw9DnI" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://www.wains.be/index.php/2010/04/28/force-ip-renewal-on-cisco-837/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
