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

<channel>
	<title>Eyes Open Labs</title>
	<atom:link href="http://eyesopen.org/feed" rel="self" type="application/rss+xml" />
	<link>http://eyesopen.org</link>
	<description></description>
	<lastBuildDate>Tue, 26 Jul 2011 18:07:15 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Nikon D80 Infrared Conversion</title>
		<link>http://eyesopen.org/2010/nikon-d80-infrared-conversion</link>
		<comments>http://eyesopen.org/2010/nikon-d80-infrared-conversion#comments</comments>
		<pubDate>Wed, 08 Sep 2010 01:25:18 +0000</pubDate>
		<dc:creator>marina</dc:creator>
				<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://eyesopen.org/?p=157</guid>
		<description><![CDATA[My infrared D60 served me well, but a recent accident involving a kayak and the beautiful waters of Georgian Bay left it inoperable. My primary colour camera is a D80, so it seemed natural to get the same one to convert to IR. It turned out to be a lot easier to deal with than [...]]]></description>
			<content:encoded><![CDATA[<p>My infrared D60 served me well, but a recent accident involving a kayak and the beautiful waters of Georgian Bay left it inoperable. My primary colour camera is a D80, so it seemed natural to get the same one to convert to IR. It turned out to be a lot easier to deal with than the D60. There are no wires to desolder, and fewer screws and ribbons to undo. As long as you have the IR filter cut to the proper size and ready, you can be in and out within 10 minutes.</p>
<p>First, lets start with the necessary tools and equipment:</p>
<ul>
<li>the D80 (naturally)</li>
<li>the IR filter, no larger in size than the original filter (which is 30x32mm). Mind that sensor size is 28x20mm and the filter overlaps it</li>
<li>#00 Philips screwdriver (even better if you have a special screwdriver for Japanese electronics; it&#8217;s very similar to a Philips, but slips off the screw less easily and provides a better grip on those tiny screws)</li>
<li>a lint free cloth</li>
</ul>
<p><img src="/wp-content/uploads/2010/09/01.jpg" alt="" /></p>
<p>On the outside case, there are only four screws to undo. Two on the left side near the cable inputs:</p>
<p><img src="/wp-content/uploads/2010/09/02.jpg" alt="" /></p>
<p>Another two on the right, near the SD card slot:<br />
<img src="/wp-content/uploads/2010/09/03.jpg" alt="" /></p>
<p>Once these are out, you can lift off the back cover with the LCD. Be very gentle with it, there are a few places where it would need to snap off as you pry it open. Don&#8217;t pull too quickly, as theLCD is still attached to the main body by a ribbon cable, which may get ripped if pulled too far.</p>
<p>Once the LCD back is off, you&#8217;ll see a protective metal plate that covers the main board. Take out the six screws holding it and take it off.<br />
<img src="/wp-content/uploads/2010/09/04.jpg" alt="" /></p>
<p>Next, you need to take out one more screw and three ribbon cables attached to the main board. Taking out the LCD ribbon cable is not necessary, but it&#8217;s very easy to do and will reduce the chance that it will get pulled and damaged.</p>
<p><img src="/wp-content/uploads/2010/09/05.jpg" alt="" /></p>
<p>Now you need to lift the main board and place it vertically like in the photo below. I used some tape on it to prevent it from bending back down. Be careful as you handle it to avoid damaging the wires soldered next to the large ribbon cable at the bottom. It&#8217;s not fun soldering them back on it they break.</p>
<p><img src="/wp-content/uploads/2010/09/05-1.jpg" alt="" /></p>
<p>With the main board up like that, you can now see the CCD chip&#8217;s board. Take out the three screws that connect it to the body.</p>
<p><img src="/wp-content/uploads/2010/09/06.jpg" alt="" /></p>
<p>You can now lift off the CCD board in the same manner as you did with the main board &#8211; very gently! Place them both horizontally with the CCD facing up so that you can work on it. What you are really seeing here is not the CCD itself, but the IR blocking filter over the CCD. Touching it (getting it dirty) at this point will not affect your IR photos as you will remove it anyway.</p>
<p><img src="/wp-content/uploads/2010/09/07.jpg" alt="" /></p>
<p>There are now another four screws that you need to undo (the last ones, I promise).<br />
<img src="/wp-content/uploads/2010/09/08.jpg" alt="" /></p>
<p>Take off the metal frames that are used to secure the filter  over the CCD. There are two, one over another:</p>
<p><img src="/wp-content/uploads/2010/09/09.jpg" alt="" /><br />
<img src="/wp-content/uploads/2010/09/10.jpg" alt="" /></p>
<p>Now you can finally take out the IR blocking filter and place your own, R72 (or whichever you picked) filter instead. Be sure to wipe your filter clean with a lint free cloth before putting it on.<br />
<img src="/wp-content/uploads/2010/09/11.jpg" alt="" /></p>
<p>Put the frames back on and repeat all the disassembly instructions in reverse to put your camera back together.<br />
<img src="/wp-content/uploads/2010/09/12.jpg" alt="" /></p>
<p>Make a few test shots, set the custom white balance and go shoot some great IR photos!</p>
<p><img src="/wp-content/uploads/2010/09/00.jpg" alt="" /></p>
<h2>Tips</h2>
<ul>
<li>If your IR filter is a little too big, you can use 80-100 grit sand paper to sand the edges down to appropriate size. Be careful not to sand near a disassembled camera or food items, as the fine particles of glass will get everywhere. Also, be gentle with the filter surface because these same fine glass particles can create permanent scratches on the filter that will be visible on your high f-number photos. You can wipe the dust with a lint free cloth, but you cannot easily get rid of scratches.</li>
<li>To set a custom white balance easily: attach your longest lens to the camera, then with the camera in shooting mode with no image on the main LCD, hold the WB button near the main LCD and turn the wheel under your thumb until &#8220;PRE&#8221; is displayed in the white balance section of the secondary LCD. Keep holding the button until &#8220;PRE&#8221; is flashing. Point the camera at any plant or vegetable you have. Get close to it, as if taking a closeup, but focus manually at infinity. Press the shutter button and make sure the secondary LCD has a message &#8220;Good&#8221; flashing. Take some regular shots to confirm that it really is good.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://eyesopen.org/2010/nikon-d80-infrared-conversion/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>SSH / SCP Dropbox</title>
		<link>http://eyesopen.org/2010/ssh-dropbox</link>
		<comments>http://eyesopen.org/2010/ssh-dropbox#comments</comments>
		<pubDate>Sat, 04 Sep 2010 01:30:33 +0000</pubDate>
		<dc:creator>marina</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://eyesopen.org/?p=123</guid>
		<description><![CDATA[SSH is a powerful tool. What I like most about it, is that it can also remain very simple to use, without sacrificing the security and stability it is renowned for. What I wanted to do was setup a secure drop box. Users can upload whatever files they want, but other than that have as [...]]]></description>
			<content:encoded><![CDATA[<p>SSH is a powerful tool. What I like most about it, is that it can also remain very simple to use, without sacrificing the security and stability it is renowned for.</p>
<p>What I wanted to do was setup a secure drop box. Users can upload whatever files they want, but other than that have as little access to the system as possible. Early ideas included setting up a chroot jail and/or dropping them in a custom shell. The final solution was quite a bit more simple and very graceful.</p>
<p>There are two magic parts to this.</p>
<p>Part one: forced commands through authorized_keys file. This file resides in ~/.ssh directory and contains a list of public keys that are allowed to access the system over SSH without entering a password. The connecting client would create a public/private key pair on a remote machine, then paste the public key into authorized_keys file on the machine that he or she will be accessing. A line in authorized_keys file usually looks like this:</p>
<pre>ssh-rsa LongRandomKeyString user@remotehost</pre>
<p>As it turns out, you can put some extra options in front of that line, and those options will affect the connections that use this key. There are quite of few of them, but the option of interest to us is <em>command</em>. When you change your line to read:</p>
<pre>command="/usr/local/script" ssh-rsa LongRandomKeyString user@host</pre>
<p>It will execute /usr/local/script when the user connects with that key. When the command returns, the connection will be automatically closed. Which brings us to&#8230;</p>
<p>Part two: covert scp command. Here it is:</p>
<pre>scp -t -r /destination/path</pre>
<p>Put this as your command into authorized_keys file, and it will put incoming transfers into /destination/path. Remove <em>-r</em> if you want people to only send you regular files but not directories. Option <em>-t</em> is what tells it to accept incoming files. If you try transferring a file over scp, this is exactly what <em>ps aux</em> would show: a command &#8220;scp -t filename&#8221; being executed.</p>
<p>A few notes about the setup.</p>
<ul>
<li>The accepting server will ignore all options that were given to the originating scp command. If you want to add an option to your command, it must be in the authorized_keys file.</li>
<li>The accepting server will ignore the destination path given to the originating scp command. It will place files into whatever path you specify in the authorized_keys file and nowhere else.</li>
<li>You <strong>must</strong> disable password logins in order for this to work. If a user does not use the keys to login, the forced command will not be executed. Simply add a line to <em>sshd_config</em> that reads:<br />
<code>PasswordAuthentication no</code><br />
And restart ssh.</li>
<li>Attempts to use ssh to login to the server directly will hang at first, then close as soon as any input is detected.</li>
<li>Attempts to use scp to download a file will hang until the originating command is manually killed.</li>
</ul>
<p>So there it is, a secure write-only drop box. It&#8217;s a bit of a hassle to have the users provide their public key in advance to gain access, but when using this setup to automatically upload the files through a script, chances are you are already using passwordless logins with public keys.</p>
]]></content:encoded>
			<wfw:commentRss>http://eyesopen.org/2010/ssh-dropbox/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>ListMania &#8211; the awesome lists manager for iPhone and iPad</title>
		<link>http://eyesopen.org/2010/listmania-the-awesome-lists-manager-for-iphone-and-ipad</link>
		<comments>http://eyesopen.org/2010/listmania-the-awesome-lists-manager-for-iphone-and-ipad#comments</comments>
		<pubDate>Tue, 10 Aug 2010 18:30:14 +0000</pubDate>
		<dc:creator>marina</dc:creator>
				<category><![CDATA[Apps]]></category>

		<guid isPermaLink="false">http://eyesopen.org/wp/?p=5</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><img class="aligncenter size-full wp-image-28 noframe" title="ListMania" src="/wp-content/uploads/2010/08/mzi.mbdpiqdc.170x170-75.png" alt="" width="170" height="170"  style="float:left; margin-right: 10px;"/><Remember the first time you tried creating your groceries list in Apple's Notes on your iPhone or iPod Touch? Beats using paper, but still rather clunky. Perhaps you wanted to make a quick to do list of things you wanted to accomplish during the day, or write down the names of new artists to check out that your friend recommended. When you need something elaborate, yet don't want to deal with confusing settings, options and controls - ListMania fits right in!</p>
<p>ListMania allows you to manage all sorts of lists: from grocery shopping, to movies you'd like to watch, to gift ideas for your loved ones, to everyday to do items. With a simple and intuitive interface, ListMania gets out of your way and lets you get the job done quickly and effortlessly.</p>
<p>It gets even better. ListMania lets you delegate! Once you've compiled the list of things you need to get on the weekly grocery trip or for an upcoming party, simply share your list wirelessly with another ListMania user, and let them do the leg work. And if your helper does not have a compatible device, you can always email it to them using built in Mail app with just a few taps.</p>
<p>Get it from the App Store! Choose the paid version with no ads - <a href="itms://itunes.apple.com/us/app/listmania/id381900031?mt=8">ListMania+</a>, or a free version &#8211; <a href="http://itunes.apple.com/ca/app/listmania/id382151325?mt=8">ListMania</a> &#8211; with unobtrusive advertisements to support continued improvements.</p>
<p>See <a href="/listmania">features</a>, <a href="/listmania/screenshots">screenshots</a> and <a href="/listmania/faq">FAQ</a> for ListMania.</p>
]]></content:encoded>
			<wfw:commentRss>http://eyesopen.org/2010/listmania-the-awesome-lists-manager-for-iphone-and-ipad/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Converting Nikon D60 to Infrared</title>
		<link>http://eyesopen.org/2009/converting-nikon-d60-to-infrared</link>
		<comments>http://eyesopen.org/2009/converting-nikon-d60-to-infrared#comments</comments>
		<pubDate>Tue, 03 Mar 2009 18:51:19 +0000</pubDate>
		<dc:creator>marina</dc:creator>
				<category><![CDATA[Photography]]></category>

		<guid isPermaLink="false">http://eyesopen.org/wp/?p=23</guid>
		<description><![CDATA[Around Christmas time my favourite camera shop was having some really nice promotions on new DSLRs. Buying a new D60 from them was cheaper than buying a used D40 or even a D50. The problem was, I was buying the camera with the sole purpose of getting it converted to infrared, but there were no [...]]]></description>
			<content:encoded><![CDATA[<p>Around Christmas time my favourite camera shop was having some really nice promotions on new DSLRs. Buying a new D60 from them was cheaper than buying a used D40 or even a D50. The problem was, I was buying the camera with the sole purpose of getting it converted to infrared, but there were no D60 specific manuals for doing it! Using conversion manuals for other cameras, Nikon D60 repair manual with schematics as well as some trial and error techniques, I now have a fully converted D60, with adjusted focus and white balance. Hopefully, it can be useful for more people.</p>
<p>I will cover all the steps needed for conversion, from getting a custom IR filter to fixing up focus on a reassembled camera. I suggest reading through the entire manual first, especially the last section about common mistakes before proceeding. If you would like to also see the Nikon D60 repair manual with schematics, email me and I can send you the PDF.</p>
<ul>
<li><a href="#tools">Tools and supplies</a></li>
<li><a href="#filter">Getting a custom cut IR filter</a></li>
<li><a href="#openup">Disassembling the D60 and installing the filter</a></li>
<li><a href="#putback">Reassembly</a></li>
<li><a href="#focus">Focus adjustments</a></li>
<li><a href="#watchout">Common mistakes and things to watch out for</a></li>
</ul>
<h2><a name="tools"></a>Tools and supplies</h2>
<ul>
<li>IR filter cut to size of about 30.5&#215;29.5mm</li>
<li>Soldering iron and possibly a little bit of lead-free solder</li>
<li>Philips #00 screwdriver</li>
<li>2mm L-shaped hexagonal key</li>
<li>Optional: small flat screwdriver and tweezers to help handling small parts, ribbons and wires inside.</li>
</ul>
<p>As to the IR filter, you can either buy a precut piece from one of the online conversion shops, or cut it yourself. Last time I checked, lifepixel was selling them for ~$200 so even if you need to buy a glass cutter and several round filters (in case you cut the first one incorrectly), you will still come out ahead. If you do go the full DIY way and cut your own filter, you will need:</p>
<ul>
<li>Regular IR filter of at least 52mm in diameter. I used Hoya R72, as it is the most easily accessible, but many others will work just as well. They may be hard to find locally but ordering it online should be easy and relatively cheap.</li>
<li>Glass cutter. I used a model with a carbide wheel, but a diamond tipped cutter should work as well.</li>
<li>Marker</li>
<li>80 or 100 grade sand paper</li>
<li>Some scrap glass for practice. Make sure it’s thin and not tamperproof. Regular thick glass from a broken window is a poor approximation of the IR filter.</li>
</ul>
<h2><a name="filter"></a>Getting a custom cut IR filter</h2>
<p>You can skip this step if you got your filter already cut to size.</p>
<p>Otherwise, familiarize yourself with your glass cutter by first cutting straight pieces of glass, then turning them into small squares, and finally cutting the corners off to end up with rounded pieces of glass that are about the same size as your filter.</p>
<p>If you never cut glass before (which was the case with me), the best way to get a feel of how to do it is by asking the associate in your hardware store when you buy the cutter. Unless they are particularly unfriendly, they will show you how to use one of their cutters and maybe even give you some scrap glass to practice at home. Otherwise, check out the how-tos online.</p>
<p>To cut a round piece into the final shape, first mark the four corners of a 29.5&#215;30.5mm rectangle with a marker in the middle of the circle. Try to make it as centred as possible, as it may be difficult to properly break the glass that is cut too close to the edge. Cut across the imaginary lines connecting the four dots, going not just from dot to dot, but from one edge of the glass to the other. Again, practice on scrap glass before cutting your filter.</p>
<p>It is better to cut a slightly bigger rectangle, than a smaller one. Once you have your filter cut, sand off the sharp edges with sand paper. At this stage you can also sand off any excess glass if you made it too big. You can sand off about 2mm within a reasonable time.</p>
<h2><a name="openup"></a>Disassembling the D60 and installing the filter</h2>
<p>Remove the battery, SD card, and the lens.</p>
<p>The main thing that needs to be taken off is the back cover. The screws you need to take out are:</p>
<ul>
<li>2 screws on the side near the USB and video out ports</li>
<li>2 screws on either side of the viewfinder</li>
<li>2 screws on the side near the SD card slot</li>
<li>2 screws inside the SD card compartment</li>
</ul>
<p>You can also remove the 3 screws on the bottom cover that are closest to the back. You do not need to take the whole bottom cover off, but you will need to push it out a little to get to some of the screws inside the camera, so it is best to get it a little more loose.</p>
<p>Gently take the back cover off. Do not pull too fast, as there is a ribbon cable connecting the main board to the LCD. Be sure to disconnect it properly, and follow by disconnecting all other ribbon cables, marked on the photo in pink.</p>
<p><img src="/img/d60-open.jpg" alt="" /></p>
<p>You will then need to remove 5 screws marked in green, and desolder the pink wire marked in blue. Be careful not to damage the wires marked in red. This picture was made after reassembling the main board and unknown to me at the time, one of the wires is actually damaged: top right blob in the rightmost red circle is missing a blue wire, which broke off during the disassembly process. You’d have to solder them back if any of them break off.</p>
<p>Next, take off the main board. Do it slowly and gently, as the wires marked in red above are connected to components underneath. You will now see the CCD board (not the CCD itself). Sorry, I have no photo of that, but it should not be hard to identify. There are 3 screws connecting this small board to the camera body. Remove them. The photo below shows the CCD already removed from the body. The holes for the 3 screws are marked in pink.</p>
<p><img src="/img/d60-chip.jpg" alt="" /></p>
<p>Remove the four screws marked in blue above. Remove the black frame holding the filter that is installed, and quickly replace it with your prepared IR filter.</p>
<p>D60 has sensor cleaning mechanism which may need to be sacrificed in the process of conversion. Sensor cleaning is done by passing current over the two strips connected to the original filter, visible in the photo above. If you manage to take those strips off without damaging them, you may try to attach them back to your newly installed IR filter. If you cannot do it, just get rid of the strips and cover any loose wires with electrical tape.</p>
<p>And here is the censor board with the IR filter installed:</p>
<p><img src="/img/d60-inst.jpg" alt="" /></p>
<h2><a name="putback"></a>Reassembly</h2>
<p>Follow the steps for disassembly in reverse order. One thing to note is the connector between the camera body and the main board that needs to clip in fully, see the photo below.</p>
<p><img src="/img/d60-conn.jpg" alt="" /></p>
<p>Be sure to keep all the wires away from that connector or they may get inside and prevent proper contact. If this happens, the camera will not turn on and you will have to open it up again to fix it.</p>
<p>Once everything is in place, get the battery, SD card and lens back and try it out. If all is well, you should see some pink photos. If not, you are going to have to retrace your steps and figure out what went wrong.</p>
<h2><a name="focus"></a>Focus adjustments</h2>
<p>Since different wavelength of light focus at different points, and the camera is optimized for green wavelength, your photos will be out of focus after this conversion. This is easy to fix though with a help of a simple 2mm hex key.</p>
<p>Turn on the camera and enable Mirror Lock-up. It’s in the SETUP menu. Remove the lens, and you will notice two small holes on the side of the camera. The bottom one is for autofocus, while the top one is for manual focus. Insert the hex key into one of the holes and rotate it as shown. Be careful not to drop the key and scratch your IR filter.</p>
<p><img src="/img/d60-focus.jpg" alt="" /></p>
<p>You will need quite a few rotations of the key, especially for the autofocus hole, since its position only allows for a very narrow turn at a time. Do this for both holes.</p>
<p>After several twists (~5-7), turn the camera off to drop down the mirror and replace the lens. Turn the camera on and make a few shots to check focus. It is best to do this with a macro lens or any large aperture lens. If the focus on your shots is further away from the intended point, repeat the rotating of the key in the same direction as before. If the focus is closer than your intended point, rotate in the opposite direction.</p>
<p>Make sure to try both automatic and manual focus during your trials.</p>
<p>After this, just set your white balance. You can use green foliage for this, but you don’t have to. White walls, as well as many fabrics also look white in IR and you can use them to set WB. Try several things and see what looks best. For example, I often use a plain blue shirt to set white balance.</p>
<h2><a name="watchout"></a>Common mistakes and things to watch out for</h2>
<ul>
<li>You should be able to take out all the screws using a #00 Philips screwdriver. However, you may find that some screws are harder to take out than others. They are also easy to damage if you force it when it’s stuck. There are specialty screwdrivers for Japanese electronics that may work better. I actually had a couple of screws stuck so badly, I had to take the camera to a Nikon service centre and ask them to take them out. Once they were out though, I could use a Philips #00 screwdriver to replace them. Go figure.</li>
<li>The small wires that I marked in red in the first photo are very prone to breaking if you are not careful. If they do, you will have to strip them a bit and solder them back. I suggest doing the re-soldering as the last step, so that you do not end up breaking and soldering them several times. Make sure to memorize their positions though and proceed with extreme caution so that you do not damage them any further. For example, the blue wire (that is missing from that photo) is actually connected to the backup battery. This is the battery that keeps time while your main battery is out. After reassembling the camera, date and time on my D60 kept getting reset every time I took the battery for a recharge. Also, whenever I tried using preset white balance, my photos were tremendously underexposed (just looked black). Photos done with one of the pre-programmed WB settings were properly exposed, but obviously red. I had to open the camera and figure out the missing wire, after which both problems were fixed. Remember, there should be no loose wires or ribbons! They all have a purpose. The only acceptable loss are the strips that were attached to the original filter.</li>
<li>During reassembly, once you put the back cover on the camera body and just before you click it in, take a look at the condition of the USB and video ports. Most likely, they will have some soft padding sticking out. Take a small flat screwdriver and gently stick it back in.</li>
<li>Remember the positions of all the screws you take out. For example, the screws inside the SD card compartment are short. If you put long screws in, they will seem to fit, but you’ll have major trouble putting the battery in and out.</li>
<li>Do I have to mention that you must keep your working area absolutely clean and dust free? If you have a pet that likes to participate in your activities, ask it to step aside. Use a dust blower and lint free cloth to clean the IR filter.</li>
<li>If you cut your own IR filter, be careful not to get it scratched. Small pieces of glass left over from all the practice cutting will get it scratched in a way that may show up on your photos, depending on aperture size and subject of the photo.</li>
<li>While practicing glass cutting, try to get thin glass, so that it simulates actual IR filter as closely as possible. Also make sure it&#8217;s not tamper proof, or you will spend a long time trying to figure out why you cannot break it.</li>
</ul>
<p>It sounds complicated, and you can damage your camera beyond repair (though it’s not that easy). But if you come this far, you’ll have your own converted D60. Good luck!</p>
]]></content:encoded>
			<wfw:commentRss>http://eyesopen.org/2009/converting-nikon-d60-to-infrared/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Useful Java Applications for MIDP2.0 Compatible Phones</title>
		<link>http://eyesopen.org/2007/useful-java-applications-for-midp2-0-compatible-phones</link>
		<comments>http://eyesopen.org/2007/useful-java-applications-for-midp2-0-compatible-phones#comments</comments>
		<pubDate>Mon, 20 Aug 2007 21:15:12 +0000</pubDate>
		<dc:creator>marina</dc:creator>
				<category><![CDATA[Cellphones]]></category>

		<guid isPermaLink="false">http://eyesopen.org/wp/?p=85</guid>
		<description><![CDATA[MailMan 2.0.4 — POP3/SMTP mail client with support for attachments on JSR75 filesystems. Supports SSL, so works perfectly with GMail. Website:http://mmj2.pp.ru. MidpSSH 1.6 — an SSH client. Supports saving sessions. Save frequently used commands as &#8220;macros&#8221;. Website: http://www.xk72.com/midpssh. MobyExplorer 2.1 — a local filesystem and FTP explorer. Supports compressing files with GZip and encryption, as well [...]]]></description>
			<content:encoded><![CDATA[<ul>
<li><a href="http://eyesopen.org/apps/MailMan-2.0.4.jar">MailMan 2.0.4</a> — POP3/SMTP mail client with support for attachments on JSR75 filesystems. Supports SSL, so works perfectly with GMail. Website:<a href="http://mmj2.pp.ru/java/indexEng.shtml">http://mmj2.pp.ru</a>.</li>
<li><a href="http://eyesopen.org/apps/midpssh-full-1.6.jar">MidpSSH 1.6</a> — an SSH client. Supports saving sessions. Save frequently used commands as &#8220;macros&#8221;. Website: <a href="http://www.xk72.com/midpssh/">http://www.xk72.com/midpssh</a>.</li>
<li><a href="http://forum.siemens-club.org/attachs.php?action=getfile&amp;attachID=10524">MobyExplorer 2.1</a> — a local filesystem and FTP explorer. Supports compressing files with GZip and encryption, as well as basic text editing.</li>
<li><a href="http://eyesopen.org/apps/XCalc-1.4.jar">XCalc 1.4</a> — ultimate mobile calculator. Supports graphing 2D and 3D plots.</li>
<li><a href="http://eyesopen.org/apps/opera-mini-3.1.8295-advanced-us.jar">OperaMini</a> — the best mobile browser so far.</li>
<li><a href="http://eyesopen.org/apps/OperaMini-mod-download-enabled-1.2.0.jar">OperaMini mod download enabled 1.2.0</a> — the best mobile browser enhanced with file download capabilities, web-page storage for offline viewing, picture viewing and basic file managing.</li>
</ul>
<h2>Disclaimer</h2>
<p>Please see the information sections inside the programs for the authors&#8217; names and websites. Visit those websites for updates and support regarding the operation of the applications. All of the programs work great on Samsung A920 on Bell Mobility network in Canada. Operation on other models and networks may not be as good. In this case visit the authors&#8217; websites to download other possible configurations that might work better.</p>
]]></content:encoded>
			<wfw:commentRss>http://eyesopen.org/2007/useful-java-applications-for-midp2-0-compatible-phones/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux Debian with Enlightenment 17 on Sony VAIO VGN-S660/B</title>
		<link>http://eyesopen.org/2007/linux-debian-with-enlightenment-17-on-sony-vaio-vgn-s660b</link>
		<comments>http://eyesopen.org/2007/linux-debian-with-enlightenment-17-on-sony-vaio-vgn-s660b#comments</comments>
		<pubDate>Fri, 20 Jul 2007 21:11:15 +0000</pubDate>
		<dc:creator>marina</dc:creator>
				<category><![CDATA[Linux]]></category>

		<guid isPermaLink="false">http://eyesopen.org/wp/?p=77</guid>
		<description><![CDATA[Overview I picked this notebook because it was the only one that I was familiar with at that time that fit my minimum expectations. It&#8217;s 4.3 pounds, which makes it pretty portable by my standards. It has a bright and sharp 13.3&#8243; wide screen that&#8217;s not too big, and gives me lots of room for [...]]]></description>
			<content:encoded><![CDATA[<h2>Overview</h2>
<p>I picked this notebook because it was the only one that I was familiar with at that time that fit my minimum expectations. It&#8217;s 4.3 pounds, which makes it pretty portable by my standards. It has a bright and sharp 13.3&#8243; wide screen that&#8217;s not too big, and gives me lots of room for all my windows. The NVIDIA video card is well supported by Linux and carries 64 Mb of its own dedicated ram as well as borrows 64 Mb (shared) from my 1 Gb of ram. This video cards, although not the best, definitely has the advantage of showing me more detail, colour, texture and can keep up with most effects that I desire.</p>
<p>The Pentium M 1.8 GHz processor is more than I need. Unlike my previous laptops, this one came with a hardware wireless turn on/off button. That makes my life easier when I want to just cut the wireless access for both security and power conservative reasons. The speakers are decent and so is the sound card. The wireless card IPW2200bg is the most supported wireless card I know. Both Intel and the community are working together on the drivers. Currently the drivers for this card support every mode I know (Master, Ad-Hoc, Managed, Monitor, Promiscuous). The battery went a bit more than 3 hours under normal use (VMware, music, and some web browsing). With the extended battery it should go up to 8 hours. It also has a DVD burner (dual layer capable), the speeds are not the highest but they are fine for my needs. The hard disk is 100 Gb SATA and works great. What worries me are the hinges that attach the LCD, they look to me as if they are pretty thin. Over all it doesn&#8217;t have too many flashy and unnecessary things. I found its interface to be quite simple yet stylish.</p>
<h2>Output of <em>lspci</em></h2>
<pre>0000:00:00.0 Host bridge: Intel Corporation Mobile 915GM/PM/GMS/910GML Express Processor to DRAM Controller (rev 03)
0000:00:01.0 PCI bridge: Intel Corporation Mobile 915GM/PM Express PCI Express Root Port (rev 03)
0000:00:1b.0 0403: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) High Definition Audio Controller (rev 03)
0000:00:1d.0 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #1 (rev 03)
0000:00:1d.1 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #2 (rev 03)
0000:00:1d.2 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #3 (rev 03)
0000:00:1d.3 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB UHCI #4 (rev 03)
0000:00:1d.7 USB Controller: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) USB2 EHCI Controller (rev 03)
0000:00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev d3)
0000:00:1f.0 ISA bridge: Intel Corporation 82801FBM (ICH6M) LPC Interface Bridge (rev 03)
0000:00:1f.1 IDE interface: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) IDE Controller (rev 03)
0000:00:1f.2 IDE interface: Intel Corporation 82801FBM (ICH6M) SATA Controller (rev 03)
0000:00:1f.3 SMBus: Intel Corporation 82801FB/FBM/FR/FW/FRW (ICH6 Family) SMBus Controller (rev 03)
0000:01:00.0 VGA compatible controller: nVidia Corporation: Unknown device 0168 (rev a1)
0000:06:05.0 CardBus bridge: Texas Instruments PCI7420 CardBus Controller
0000:06:05.2 FireWire (IEEE 1394): Texas Instruments PCI7x20 1394a-2000 OHCI Two-Port PHY/Link-Layer Controller
0000:06:05.3 Mass storage controller: Texas Instruments PCI7420/PCI7620 Dual Socket CardBus and Smart Card Cont. w/ 1394a-2000 OHCI Two-Port PHY/Link-Layer Cont. an
0000:06:08.0 Ethernet controller: Intel Corporation 82562ET/EZ/GT/GZ - PRO/100 VE (LOM) Ethernet Controller Mobile (rev 03)
0000:06:0b.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)</pre>
<h2>Device Drivers</h2>
<p>Download kernel <a href="http://eyesopen.org/data/config-2.6.14">config</a>.</p>
<p>Working devices:</p>
<ul>
<li>Network Card — Intel PRO/100 — drivers: (e100, eepro100)</li>
<li>USB — Standard kernel drivers</li>
<li>Video Card — NVIDIA GeForce Go 6400 drivers: (nvidia) download from nvidia website</li>
<li>Firewire — Texas Instruments — standard kernel drivers</li>
<li>Wireless — IPW2200BG — drivers (ipw2200 ieee80211 ieee80211_crypt ieee80211_crypt_ccmp ieee80211_crypt_tkip ieee80211_crypt_wep)</li>
<li>Hard Disk — 100 Gb SATA — drivers (scsi_mod ata_piix)</li>
<li>Optical Drive — CD/DVD recorder — standard SCSI drivers in kernel</li>
<li>Sound Card — Intel &#8220;High Definition Audio&#8221; &#8211; drivers (snd-hda-intel snd_pcm)</li>
<li>Function keys (screen brightness, monitor/lcd switch, volume keys)</li>
<li>PCMCIA slot — standard Yenta drivers</li>
<li>Touchpad — drivers (synaptics drivers for X server)</li>
</ul>
<p>Devices not yet fully functional or tested:</p>
<ul>
<li>Memory stick slot</li>
<li>Winmodem</li>
</ul>
<h2>Installation</h2>
<p>I used elive 0.4.2 CD from <a href="http://elivecd.org/gb/Download/Stable/">http://elivecd.org/gb/Download/Stable/</a>, though installation of other distributions should be similar. First time I tried it out, it seemed to pick up almost everything for me. This version of elive did not recognize the SATA hard disk automatically, so you have to load the <em>ata_piix</em> module before installing to hard disk. Open a terminal (leftmost button on the bottom pannel):</p>
<pre>su
modprobe ata_piix</pre>
<p>Next you can check if it found it by typing <em>dmesg</em>. You should see it displaying you that it found a SCSI drive e.g.: sda. Familiarize yourself with this distro before installing. Then proceed and install it by clicking the most right icon at the bottom panel. This should start the installation process.</p>
<p>If you have installed Linux before then the installation process should be easy. Make sure you load the <em>ata_piix</em> module!</p>
<p>A prompt will come up asking you if you have a sata disk. You should agree. Your disk name should be sda. Partition and install the system.</p>
<p><strong>Warning!</strong> I did not want to keep any copies of Windows XP Home on the hard disk, I simply wiped the recovery partition created by Sony, if you are unsure about installing Linux on your laptop or want to dual boot Windows, be carefull not to remove that partition.</p>
<p>Once you boot into elive it will ask you for your language and timezone settings. Then it will throw you into shell. Login.</p>
<h2>Kernel Compilation</h2>
<p>You will need to download a kernel and set it up so that you can compile specific modules for it. We are currently interested in <em>ipw2200</em> and <em>nvidia</em> modules. You can use your distribution&#8217;s binaries, if they exist, <em>ipw2200</em> is also available as a built-in kernel module, but I prefer to use the one compiled from source, as it is more recent and has more features (for example, the newest versions of the driver have the ability to create a virtual promiscuous interface at the same time as the card is associated to a network in managed mode).</p>
<p>Set up your network interface so that you can get Internet access.After getting your networking set up you will need to install several packages to be able to compile. Then you will need to get and compile the kernel. The commands below will compile your kernel using my config file. Note that this is not minimalistic kernel, it also has support for bluetooth (via a USB adapter), all possible encryption algorithms (for use with WPA, for example) and some other thing which may be useful.</p>
<pre>apt-get update
apt-get install make gcc libncurses5-dev
cd /usr/src/
wget kernel.org/pub/linux/kernel/v2.6/linux-2.6.14.tar.gz
tar -zxf linux-2.6.14.tar.gz
cd linux-2.6.14
wget www.eyesopen.org/data/config-2.6.14
cp config-2.6.14 .config
make modules &amp;&amp; make modules_install &amp;&amp; make &amp;&amp; make install</pre>
<p>Edit your bootloader and specify to boot your newly compiled Linux kernel. Elive uses GRUB by default, so edit<em>/boot/grub/menu.lst</em> in your favourite text editor.</p>
<p>At the bottom there will be a few lines to change. This is how it should look:</p>
<pre>title MyVaio kernel 2.6.14
root (hd0,0)
kernel /boot/vmlinuz-2.6.14 root=/dev/sda1 vga=0x317</pre>
<p>Then you will need to set the default value or you can select MyVaio each time you boot. Reboot your laptop into this kernel to continue installing drivers for it.</p>
<p>Check that you are running your new kernel:</p>
<pre>uname -r</pre>
<p>It should give you <em>2.6.14</em> as an answer. If not, check that you completed previous steps correctly and reboot again.</p>
<h2>NVIDIA Graphics Driver</h2>
<p>You will need to do this in a tty terminal (press Ctrl+Alt+F1). Make sure your network connection is up. Kill X, and download and install <em>nvidia</em> drivers:</p>
<pre>killall -9 X
rm /tmp/.X0-lock
wget download.nvidia.com/XFree86/Linux-x86/1.0-7676/NVIDIA-Linux-x86-1.0-7676-pkg1.run
sh NVIDIA-Linux-x86-1.0-7676-pkg1.run
echo nvidia &gt;&gt; /etc/modules</pre>
<p>You will need to change the screen resolution for Xorg to 1280&#215;800 manually with this distribution. Download my <a href="http://eyesopen.org/data/xorg.conf">xorg.conf</a>with these corrections applied.</p>
<p>Start X again.</p>
<h2>Wireless Drivers</h2>
<p>Go to the project website and download latest <a href="http://ipw2200.sourceforge.net/downloads.php">drivers</a> and <a href="http://ipw2200.sourceforge.net/firmware.php">firmware</a>. You also need the <a href="http://ieee80211.sourceforge.net/downloads.php"><em>ieee80211</em> stack</a>.</p>
<p>Unarchive all three packages. Compile <em>ieee80211</em> stack first, then <em>ipw2200</em>, then put all firmware files (including the license) into <em>/lib/firmware/</em>. Run <em>load</em> script located in the <em>ipw2200</em> directory.</p>
<p>Run <em>iwconfig</em> to make sure you have your interface recongnized. Configure it using <em>iwconfig</em> and <em>ifconfig</em>. Consult their manual pages for specific options.</p>
<h2>Sony Vaio Fn-keys</h2>
<p>I found this section on the web and it seems to work very well. Basically what we will do is setup an event router. So a program that we will install will listen for any event we ask it to listen to, and if that event occurs it will run our command.</p>
<p>Download and install <a href="http://www.bedroomlan.org/~alexios/files/SOFTWARE/evrouter/">evrouter</a>, nvclock and <a href="http://www.pe.kernel.org/ubuntu/pool/main/s/smartdimmer/">smartdimmer</a>; nvclock is available from standard Debian repositories via apt-get.</p>
<p>To know which event device is associated with your keys we will use evrouter to probe it. <em>evrouter -d /dev/input/event* | grep Keys | cut -f 2 -d &#8220;:&#8221;</em></p>
<p>Now whenever you press the Fn+ (F1-F12) it would give you a different key. This will tell you what is the number of the key to which you would want to assign something.</p>
<p>We will now create a file for each user that will match the keys to commands or scripts that you will want to execute when that key is pressed. This file will be located inside each user&#8217;s directory and it will be called .evrouterrc. You should also create this file for root in <em>/root</em>. The file should have read permissions.</p>
<p><strong>Here is an example content of such file:</strong></p>
<pre>Window ""

"Sony Vaio Keys" "/dev/input/event1" none key/477 "Shell/hibernate -f"

"Sony Vaio Keys" "/dev/input/event1" none key/148 "Shell/suspend.sh"
"Sony Vaio Keys" "/dev/input/event1" none key/470 "Shell/smartdimmer -d"
"Sony Vaio Keys" "/dev/input/event1" none key/471 "Shell/smartdimmer -i"
"Sony Vaio Keys" "/dev/input/event1" none key/472 "Shell/smartdimmer -s1"
"Sony Vaio Keys" "/dev/input/event1" none key/468 "Shell/vol_decrease"
"Sony Vaio Keys" "/dev/input/event1" none key/469 "Shell/vol_increase"
"Sony Vaio Keys" "/dev/input/event1" none key/467 "Shell/mute"
"Sony Vaio Keys" "/dev/input/event1" none key/476 "Shell/xscreensaver&amp;xscreensaver-command -lock"</pre>
<p><strong>Explanation for above file:</strong></p>
<p>I will explain here what each line after the <em>Window &#8220;&#8221;</em> does.</p>
<ol>
<li>Assigns the Fn + F12 key to run the hibernate -f command. This puts your laptop into hibernate mode.</li>
<li>Assigns the S1 and S2 keys (evrouter detects them as the same key) to run the suspend.sh script which puts the laptop into suspend. <em>See Sleep and Hibernate section below.</em></li>
<li>Assigns the Fn + F5 key to run smartdimmer command with -d (dim) parameter: everytime you press this key your screen should become dimmer and dimmer.</li>
<li>Assigns the Fn + F6 key to run smartdimmer command with -i parameter: everytime you press this key your screen shuld become brighter and brighter.</li>
<li>Assigns the Fn + F7 key to run smartdimmer command with -s1 parameter: everytime this key is pressed it sets brightness to 1 (turns off backlight).</li>
<li>Assigns the Fn + F3 key to run vol_decrease script. It uses aumix to lower the sound by a score of 5 out of 100.
<pre>cat &gt; /usr/local/bin/vol_decrease
aumix -S -v-5 -w-5 -p-5 -W-5</pre>
</li>
<li>Assigns the Fn + F4 key to run vol_increase script. It uses aumix to make the sound level louder by a score of 5 out of 100.
<pre>cat &gt; /usr/local/bin/vol_decrease aumix -S -v+5 -w+5 -p+5 -W+5</pre>
</li>
<li>Assigns the Fn + F3 key to run the mute script. Which uses aumix to mute and unmute the sound.
<pre>cat &gt; /usr/local/bin/mute
volumes=$(aumix -vq -wq -pq -Wq |awk '{print $3}')
for i in `echo $volumes`
do
if [ $i -ne 0 ]; then
echo $volumes &gt; ~/.aumixr
aumix -S -v 0 -w 0 -p 0 -W 0
exit 0
else
vol1=$(cat ~/.aumixr |awk ' {print $1} ')
vol2=$(cat ~/.aumixr |awk ' {print $2} ')
vol3=$(cat ~/.aumixr |awk ' {print $3} ')
vol4=$(cat ~/.aumixr |awk ' {print $4} ')

aumix -S -v $vol1 -w $vol2 -p $vol3 -W $vol4
fi
done</pre>
</li>
<li>Assigns the Fn + F11 key to run xscreensaver daemon and lock the screen. This is usefull if you want to quickly leave your laptop, so you just press this key and it locks the laptop in screensaver mode. Note: For the lock to be effective you need to logout of other terminals that you access through alt + F(1-8).</li>
</ol>
<p><em>For all of the above commands to work you need to get all the scripts and put them in the appropriate directories with appropriate (executable) permissions. You also need to have these packages installed: xscreensaver, aumix, hibernate.</em></p>
<p>The following commands need to be executed (preferably on startup) for the Fn keys to work.</p>
<pre>echo "Changing Permissions on Sound Utilization..."
chmod 777 /dev/dsp
chmod 777 /dev/mixer
echo "Turning on Event Router..."
chmod 755 /dev/input/event1
rm /tmp/.evrouter*&amp;
killall evrouter
evrouter /dev/input/event* |grep Keys |cut -f 2 -d ":" &amp;</pre>
<p>The above commands would allow a normal user to change sound volume. They would also allow the user to read events and after making sure that another evrouter script is not running, it will turn on evrouter. This script should be in a file that starts on boot.</p>
<h2>Sleep and Hibernate</h2>
<p>To hibernate (suspend to disk), which means that your computer will store everything to disk and then completely shutdown, you need to download and install the hibernate program (available from standard Debian repositories). Issuing <em>hibernate -f </em>put my laptop to hibernate, then by pressing the power key I turn it back on and after booting for a bit it returns me to the gui I was in.</p>
<p>To sleep (suspend to memory), which means that your computer will store everything to memory and continue powering it, you need to download the <em>suspend.sh </em>script and place it into <em>/usr/local/sbin</em> with executable permissions. Suspending to memory is much faster and waking up is also much faster.</p>
<p>Here is what the suspend.sh script looks like:</p>
<pre>#!/bin/sh

# discover video card's ID
ID=`lspci | grep VGA | awk '{ print $1 }' | sed -e 's@0000:@@' -e 's@:@/@'`

# securely create a temporary file
TMP_FILE=`mktemp /var/tmp/video_state.XXXXXX`
trap 'rm -f $TMP_FILE' 0 1 15
# switch to virtual terminal 1 to avoid graphics
# corruption in X
chvt 1
# write all unwritten data (just in case)
sync
# dump current data from the video card to the
# temporary file
cat /proc/bus/pci/$ID &gt; $TMP_FILE
# suspend
echo -n mem &gt; /sys/power/state
# restore video card data from the temporary file
# on resume
cat $TMP_FILE &gt; /proc/bus/pci/$ID
/etc/init.d/networking restart
# switch back to virtual terminal 7 (running X)
chvt 9
sleep 4
# remove temporary file
rm -f $TMP_FILE</pre>
<p>Hibernate also has an option to lock after you wakeup using the vlock package. You can also run scripts and commands before you hibernate and after you wakeup. Same with sleep.</p>
]]></content:encoded>
			<wfw:commentRss>http://eyesopen.org/2007/linux-debian-with-enlightenment-17-on-sony-vaio-vgn-s660b/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Accessing Cell Phone Filesystem</title>
		<link>http://eyesopen.org/2006/accessing-cell-phone-filesystem</link>
		<comments>http://eyesopen.org/2006/accessing-cell-phone-filesystem#comments</comments>
		<pubDate>Wed, 25 Oct 2006 21:14:03 +0000</pubDate>
		<dc:creator>marina</dc:creator>
				<category><![CDATA[Cellphones]]></category>

		<guid isPermaLink="false">http://eyesopen.org/wp/?p=81</guid>
		<description><![CDATA[This has been tested with plain CDMA phones only. It may or may not work with GSM phones. The drivers For the best results we will use a program called QPST, it is used for programming phones and can do virtually anything, but that means you need to be extra cautious when using it, as [...]]]></description>
			<content:encoded><![CDATA[<p><em>This has been tested with plain CDMA phones only. It may or may not work with GSM phones.</em></p>
<h2>The drivers</h2>
<p>For the best results we will use a program called QPST, it is used for programming phones and can do virtually anything, but that means you need to be extra cautious when using it, as it is very easy to damage the phone if you do not know what you&#8217;re doing. You need to have the drivers for your phone first.</p>
<p>In this example we will use <em>Sprint Connection Manager</em> to get drivers. You can get it off the Sprint website. This program (and drivers) are Windows only, but all works perfectly on Windows loaded in VMware on a Linux host. When it installs, make sure to select your drivers:</p>
<p><img src="http://eyesopen.org/img/drivers.png" alt="" /></p>
<p>For other phones, check the manufacturer&#8217;s website for driver download.</p>
<p>Reboot your computer and connect the phone via a USB cable. You may need to buy it separately, but some models, for example, the Samsung SPH-A920, came with one. It may be said that the cable is only to be used for phone-as-a-modem function, but it happens to be false. Make sure the phone is recognized as a USB device and correct drivers get associated with it.</p>
<h2>QPST</h2>
<p>Now you can launch QPST. What? You didn&#8217;t install it yet? Not to worry, you can download it off our resourse page. You will see a number of applications are installed in the QPST folder. Start the one called <em>QPST Configuration</em>. Click on <em>Add New Port&#8230;</em>, enter <em>COM3</em> in the window that appears and wait to see if it recognizes your phone there. If not, try <em>COM4</em>, <em>COM5</em>, <em>COM6</em>, and if it&#8217;s still not there, try reinstalling the drivers, QPST, rebooting and all other usual Windows troubleshooting techniques in various sequences.</p>
<p><em>Please, do not write us about help on getting your phone recognized. Thank God, our phones worked from the first try on COM3, we have no idea how to help you beyond what we already wrote.</em></p>
<p>Now select the application called <em>EFS Explorer</em>. You will need your phone&#8217;s service code (known as <em>MSL</em> or <em>SPC</em>) to continue. What? You don&#8217;t know what that is? Well, most likely you can get it by simply calling your cell phone provider&#8217;s customer service and asking for it. If they refuse to give it to you, hang up and call again, maybe you just got wrong CSR on the line. If they still don&#8217;t give it to you, make up a believeable story about your phone asking for that number and not letting you use it. It should be 6 digits. They are usually unique for each phone.</p>
<p>Once you got it, you can finally open the explorer and here you are, your phone&#8217;s filesystem, plain and simple. They will differ depending on the phone, but essentially you can transfer your pictures, pingtones, mp3 files, applications, games and what not to and from the phone, even if you previously thought it was impossible without paying for some extra apps or mobile browser connectivity. For some phones it may not be very easy, for example, in our A920, to upload a game/app, screensaver, or ringer to the phone requires naming the files as numbers, and placing them into a directory that&#8217;s not really named very helpfully. But getting the pictures off the phone&#8217;s main memory is very easy. Your experince may vary.</p>
<p>We do not encorage you to change any of the files on the phone. If your phone ends up inoperable as a result of using this program, EyesOpen.org and any of its associates cannot be held responsible.</p>
<h2>Bitpim</h2>
<p><a href="http://bitpim.org/">Bitpim</a> is a more user friendly application that can be used to acces certain types of data on your CDMA phone. Not all phones are supported (particularly, not our lovely A920), but you may find it useful if yours is. Linux and Mac versions are available. Try it our before going for QPST, if possible.</p>
]]></content:encoded>
			<wfw:commentRss>http://eyesopen.org/2006/accessing-cell-phone-filesystem/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux connection sharing over bluetooth</title>
		<link>http://eyesopen.org/2006/linux-connection-sharing-over-bluetooth</link>
		<comments>http://eyesopen.org/2006/linux-connection-sharing-over-bluetooth#comments</comments>
		<pubDate>Fri, 07 Jul 2006 20:57:59 +0000</pubDate>
		<dc:creator>marina</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://eyesopen.org/wp/?p=74</guid>
		<description><![CDATA[Sharing connection between two computers via bluetooth is a very simple task that consists mostly of establishing a Personal Area Network — ethernet over bluetooth. For this you need to have a kernel module bnep enabled (and loaded). The rest is just an application of routing techniques, so make sure your kernel supports that. Iptables modules: [...]]]></description>
			<content:encoded><![CDATA[<p>Sharing connection between two computers via bluetooth is a very simple task that consists mostly of establishing a Personal Area Network — ethernet over bluetooth. For this you need to have a kernel module <em>bnep</em> enabled (and loaded). The rest is just an application of routing techniques, so make sure your kernel supports that.</p>
<p>Iptables modules:</p>
<pre>NETFILTER
IP_NF_CONNTRACK
IP_NF_IPTABLES
IP_NF_NAT
IP_NF_TARGET_MASQUERADE
NETFILTER_XT_MATCH_STATE</pre>
<p>On the safe side you should enable everything in <em>Network packet filtering</em> section of your kernel, except for perhaps debugging, won&#8217;t hurt but will widen the routing possibilities.</p>
<p>In short, we need to pair the computers, initiate the PAN server, set up routing, and finally connect the client with proper interface configurations.</p>
<p>On the server — the device that is going to provide network access — execute the following:</p>
<pre>echo 123456 &gt; /etc/bluetooth/pin
/etc/init.d/bluetooth restart
pand --listen --role NAP
ifconfig bnep0 up
ifconfig bnep0 192.168.1.1
# Done with bluetooth configuration. Next is the routing part:
iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
iptables -A INPUT -s 192.168.1.0/24 -i bnep0 -j ACCEPT
iptables -A FORWARD -s 192.168.1.0/24 -i bnep0 -o eth0 -j ACCEPT
iptables -A FORWARD -d 192.168.1.0/24 -i eth0 -o bnep0 -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT
echo 1 &gt; /proc/sys/net/ipv4/ip_forward
echo 1 &gt; /proc/sys/net/ipv4/tcp_syncookies</pre>
<p>Change <em>eth0</em> to the name of the interface to which you want to forward traffic, change the addresses to those that do not conflict with any other addresses you are using.</p>
<p>On the client side, you will need to know the server&#8217;s bluetooth MAC address. Execute:</p>
<pre>hcitool scan</pre>
<p>This will show your server&#8217;s name and MAC address (in the form <em>11:22:33:44:55:66</em>), along with any other bluetooth devices in vicinity. Then execute:</p>
<pre>hcitool auth <em>baddr</em>
pand --connect <em>baddr</em>
ifconfig bnep0 up
ifconfig bnep0 192.168.1.2
route add default gw 192.168.1.1</pre>
<p>Insert your server&#8217;s MAC address instead of <em>baddr</em>. When a prompt appears, enter the pin you set for the server before. If you are going to access the Internet over this connection, make sure to have a valid DNS server in <em>/etc/resolv.conf</em>. In any case, at this point you should be done. If there are any errors, check system logs to see what might be causing them.</p>
<p>You will not need to pair the same devices again if you want to use this repeatedly.</p>
<h2>Improved Basic Routing Script — with Bluetooth Support</h2>
<pre>if [ "$2" != "" ]; then

IN="$1"
OUT="$2"

if [ "$3" != "" ]; then
ADDR=$3
IP=`echo $3 | cut -f 1,2,3 -d .`
else
ADDR=192.168.1.1
IP=192.168.1
fi

if [ "$1" = "bnep0" ]; then
/etc/init.d/bluetooth restart
pand --listen --role NAP
fi

iptables -F
ifconfig $IN up
ifconfig $OUT up

ifconfig $IN $ADDR
echo "$IN IP: $ADDR"

iptables -t nat -A POSTROUTING -o $OUT -j MASQUERADE
iptables -A INPUT -s $IP.0/24 -i $IN -j ACCEPT
iptables -A FORWARD -s $IP.0/24 -i $IN -o $OUT -j ACCEPT
iptables -A FORWARD -d $IP.0/24 -i $OUT -o $IN -j ACCEPT
iptables -A FORWARD -m state --state ESTABLISHED,RELATED -j ACCEPT

echo 1 &gt; /proc/sys/net/ipv4/ip_forward
echo 1 &gt; /proc/sys/net/ipv4/tcp_syncookies

else

echo "Usage: router in_iface out_iface [local_ip]"

fi</pre>
]]></content:encoded>
			<wfw:commentRss>http://eyesopen.org/2006/linux-connection-sharing-over-bluetooth/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Extra WiFi channels</title>
		<link>http://eyesopen.org/2006/extra-wifi-channels</link>
		<comments>http://eyesopen.org/2006/extra-wifi-channels#comments</comments>
		<pubDate>Fri, 07 Jul 2006 20:54:09 +0000</pubDate>
		<dc:creator>marina</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://eyesopen.org/wp/?p=68</guid>
		<description><![CDATA[If you have a wireless card with an open sourced driver (for example, Intel Wireless Pro series, found in many laptops manufactured during the past 3 years, and in many more laptops to come), you can take advantage of extra channels that are allowed to be used in countries other than the US and Canada. [...]]]></description>
			<content:encoded><![CDATA[<p>If you have a wireless card with an open sourced driver (for example, Intel Wireless Pro series, found in many laptops manufactured during the past 3 years, and in many more laptops to come), you can take advantage of extra channels that are allowed to be used in countries other than the US and Canada.</p>
<p>The key is that if you go from North America to Europe, for example, you will notice that there people can use 13 instead of 11 channels for B and G wireless communications. In Japan you can use 14. But your driver will not be aware of your physical location, even though the ability to work with those channels is there.</p>
<p>So you would need to manually edit the driver to include those extra frequencies into your &#8220;Geography&#8221;. Look for what they might call &#8220;Custom Geography&#8221;, to keep the actuall regional frequency tables intact. Knowledge of the programming language used to write the driver will be helpful, but in the absense of that, common sense should be enough. Look for keywords like <em>geo</em>,<em>channels</em>. The frequencies will be listed in tables with entries like: <em>{2412, 1}, {2417, 2}, {2422, 3}</em> — this is just the first 3 channels of BG range. Similar things exist for A range. Recompile the driver and load it. You should see something similar to the message below in <em>dmesg</em> output:</p>
<pre>Detected geography ZZM (14 802.11bg channels)</pre>
<h2><span style="color: #ff0000;">Warning!</span></h2>
<p>The use of any wireless channels is subject to regulations of the local governments, do not use these extra ones in North America! EyesOpen.org cannot be held responsible for any illegal use of this article in countries where this is not permitted.</p>
]]></content:encoded>
			<wfw:commentRss>http://eyesopen.org/2006/extra-wifi-channels/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Linux connection sharing</title>
		<link>http://eyesopen.org/2006/linux-connection-sharing</link>
		<comments>http://eyesopen.org/2006/linux-connection-sharing#comments</comments>
		<pubDate>Wed, 28 Jun 2006 20:55:59 +0000</pubDate>
		<dc:creator>marina</dc:creator>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Networking]]></category>

		<guid isPermaLink="false">http://eyesopen.org/wp/?p=70</guid>
		<description><![CDATA[Ever been stuck with a friend (or a few of them) with only one of you being able to connect to the Internet and both needing the connection? And at least one of you has more then one network interface? Problem solved. All you need is iptables, appropriate kernel modules and in case you want to [...]]]></description>
			<content:encoded><![CDATA[<p>Ever been stuck with a friend (or a few of them) with only one of you being able to connect to the Internet and both needing the connection? And at least one of you has more then one network interface? Problem solved.</p>
<p>All you need is <em>iptables</em>, appropriate kernel modules and in case you want to share your wired connection over the wireless one, support for Master mode for your wireless adapter. Intel Wireless Pro 2200BG, a rather popular adapter, has this support on a basic, but developing level. And of course, nobody prevents you from doing the same thing on an Ad-Hoc network, a mode that is supported on a much wider range of hardware.</p>
<p>This assumes your outputting interface is set up and your inputting interface will have an IP address <em>192.168.5.1</em> unless other is specified as a third argument. You can save the script below as <em>/usr/local/sbin/router</em>, make it executable, and you will be able to invoke it as just <em>router in_iface out_iface</em>.</p>
<pre>if [ "$2" != "" ]; then

IN="$1"
OUT="$2"

if [ "$3" != "" ]; then
ADDR=$3
IP=`echo $3 | cut -f 1,2,3 -d .`
else
ADDR=192.168.5.1
IP=192.168.5
fi

iptables -F
ifconfig $IN up
ifconfig $OUT up

ifconfig $IN $ADDR
echo "$IN IP: $ADDR"

iptables -t nat -A POSTROUTING -o $OUT -j MASQUERADE
iptables -A INPUT -s $IP.0/24 -i $IN -j ACCEPT
iptables -A FORWARD -s $IP.0/24 -i $IN -o $OUT -j ACCEPT
iptables -A FORWARD -d $IP.0/24 -i $OUT -o $IN -j ACCEPT

echo 1 &gt; /proc/sys/net/ipv4/ip_forward
echo 1 &gt; /proc/sys/net/ipv4/tcp_syncookies

else

echo "Usage: router in_iface out_iface [local_ip]"

fi</pre>
<p>So an example command would be:</p>
<pre>router eth0 eth1</pre>
<p>This way I route all the traffic coming to eth0 onto the network that I connected using eth1.</p>
]]></content:encoded>
			<wfw:commentRss>http://eyesopen.org/2006/linux-connection-sharing/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

