tag:blogger.com,1999:blog-56535282024-03-15T21:10:01.741-04:00ODDREE.COMRay Dios Haque rambles about Wardriving discoveries, and life in general.Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.comBlogger301125tag:blogger.com,1999:blog-5653528.post-71546449486028145772012-10-29T16:55:00.000-04:002012-10-29T16:57:05.931-04:00Convert your TRS-80 Color Computer MC-10 into something slightly better - with a Raspberry PiA friend and former colleague of mine recently dropped off a shiny new Raspberry Pi off to my desk. He had bought one for himself as well. Neither one of us had any idea of what to do with the thing. But I have always wanted to gut a classic piece of computing and stuff a new PC into the shell. This was a good opportunity to make use of a Color Computer MC-10 that's been in my basement for the past 10+ years.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-hu8ZqWy73Tk/UI7aD7z9y_I/AAAAAAAAAlI/PxlAmedw6R8/s1600/IMG-20121011-00086.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-hu8ZqWy73Tk/UI7aD7z9y_I/AAAAAAAAAlI/PxlAmedw6R8/s320/IMG-20121011-00086.jpg" width="320" /></a></div>
<br />
The MC-10 was an attempt on the part of the Tandy Corporation (you know, the Radio Shack people) to compete with the success that was had by some other vendors who were cranking out cheaper and smaller computers like the (much more popular) Timex Sinclair.
It was truly a worthless piece of shit. It shipped with 4K of RAM (16K was available as an expensive add-on accessory). It lacked a cartridge slot. So never mind playing "Dungeons of Daggerath" or plugging in a modem pack ... or a disk drive ... you get the idea. But in the late 80's and early 90's I was a kid attending an otherwise completely adult "Color Computer Club" where you could pop in monthly and hang out with some of the nerdiest and most socially awkward people you have ever had the displeasure of knowing. One of them owned one of these, and I envied it greatly.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-P2SHue8qitc/UI7bmOVf8RI/AAAAAAAAAlU/uxFe5k-K3nA/s1600/IMG-20121014-00088.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-P2SHue8qitc/UI7bmOVf8RI/AAAAAAAAAlU/uxFe5k-K3nA/s320/IMG-20121014-00088.jpg" width="320" /></a></div>
<br />
When I found one in the box, with the power pack, booklet, and TV/Game switch, I had to buy it. And the price was right. Good Will charged me only $5.99 for what had previously sold for $119.95. So I bought it. Threw it into a pile in my basement, and forgot about it. Until now!
I knew that once I got started, this poor thing would never be the same. Before I took a screwdriver to it, I hooked it up to a TV and showed my kids how a real man writes BASIC.<br />
<br />
10 PRINT "DAD IS AWESOME";<br />
20 GOTO 10<br />
RUN<br />
<br />
The kids were unimpressed. My son had the nerve to ask what else it could do. Kids these days.
At that point, I split the case (voiding the warranty, I know). And here is what I found.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-0VAR0zSeQgg/UI7cZbBqh9I/AAAAAAAAAlg/2y0duVR_Iy4/s1600/IMG-20121014-00087.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-0VAR0zSeQgg/UI7cZbBqh9I/AAAAAAAAAlg/2y0duVR_Iy4/s320/IMG-20121014-00087.jpg" width="320" /></a></div>
<br />
This thing was incredibly roomy inside. Or at least it would be with the circuit board removed. I laid my Raspberry Pi on the table to size things up. Looked possible.
Next, I took a long look at the keyboard. Yeah, that's right, I wanted the keyboard to ACTUALLY WORK with my Pi.<br />
<br />
I knew that this would be the toughest part of the job since I would be trying to recreate the functionality of a keyboard controller using GPIO pins on the Pi ... or something. I was hoping that the keyboard would be nothing more than a matrix keypad (regular old buttons in a columns and rows layout). The backing to the keyboard was a thick cardboard padding that could be removed with a couple of screws. I pulled it apart to expose the circuit traces.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://2.bp.blogspot.com/-BqpA7-PCYpo/UI7df8PegzI/AAAAAAAAAls/vTonLyV-GpI/s1600/IMG-20121014-00089.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://2.bp.blogspot.com/-BqpA7-PCYpo/UI7df8PegzI/AAAAAAAAAls/vTonLyV-GpI/s320/IMG-20121014-00089.jpg" width="320" /></a></div>
<br />
Looked like a damned mess! I did some Googling and found that <a href="http://www.seanet.com/~karllunt/RasPiM100.html">someone else had done a TRS-80 Model 100 Raspberry Pi conversion not too long ago</a>. He had used a <a href="http://www.pjrc.com/teensy/">Teensy USB</a> development board to turn a Matrix keypad into a USB keyboard. And it didn't look all that difficult. So I ordered a Teensy 2.0 (not the ++ model, just the regular $19 version).<br />
<br />
While waiting for that to arrive, I pressed on.
I had couple obstacles to tackle if I wanted this thing to actually be a USEFUL device. Namely, I needed to power this device - while providing additional USB ports. Oddly enough it looked like I could get away with powering the Pi from a USB hub ... while at the same time linking the Pi to the hub to provide additional ports. Here is what that scene looked like on my desk.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-SvI3rU3gw8I/UI7e4ASrwMI/AAAAAAAAAl4/fDpX-xsb9e8/s1600/IMG-20121016-00092.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-SvI3rU3gw8I/UI7e4ASrwMI/AAAAAAAAAl4/fDpX-xsb9e8/s320/IMG-20121016-00092.jpg" width="320" /></a></div>
<br />
You will also see from that above picture that I was experimenting with how I would "map my ports" from the Pi to the MC-10 case. I have no intention of soldering to or otherwise bringing harm to my Pi. So any modifications would have to be done to my franken-MC-10. I started with extending the network by making a very short male to female cable and then glued the female end into the case. To give it some 'stature' I glued a small wooden block underneath of it. That also raised it to the correct height.<br />
<br />
Once I knew that would work I got right to work at stripping away the plastic from the USB hub and giving it a home in the MC-10. It fit surprisingly well! Naturally there was nowhere for the ports to poke out of the back of the MC-10 so there was some Dremel work that had to be done. I suck at using rotary tools, so please excuse the crude cut-around work in these pictures. Also, the fun was cut short when my boss came back to my desk and said "what are you doing?? stop it!! that's loud ... and annoying!!".<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-_R5rSZoIg-o/UI7gM3kZQoI/AAAAAAAAAmE/XShoIJbWuZw/s1600/IMG-20121017-00097.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-_R5rSZoIg-o/UI7gM3kZQoI/AAAAAAAAAmE/XShoIJbWuZw/s320/IMG-20121017-00097.jpg" width="320" /></a></div>
<br />
I didn't want a bunch of cables running inside and outside of the case, which meant that I would have to make some modifications to the USB hub itself. Not a big deal really. I cut up an old USB A/B cable, and a micro-USB cable. I removed one of the USB ports from the hub with a desoldering wick and then hard-wired a micro-USB stump into it's place. This would power my Pi. I also soldered down a standard USB connector to make the bridge between the "B" port of the hub to the Pi. This actually makes the hub light up and become an additional three ports (originally four, but you know, one of those was pulled).<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-sO4gxvds63A/UI7hR4ikF7I/AAAAAAAAAmc/9KhNJrZG4qU/s1600/IMG-20121017-00093.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-sO4gxvds63A/UI7hR4ikF7I/AAAAAAAAAmc/9KhNJrZG4qU/s320/IMG-20121017-00093.jpg" width="320" /></a></div>
<br />
Being the master hardware modifier that I am (not) you can see that I used stacks of double-sided foam tape to lift the USB hub to the right height and to hold it down into my case.
Here it is nicely mounted and connected into the case. Note that I later came along with hot glue and glued down some spots around the sides of the hub where you would be applying pressure when inserting a jump drive or something.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-6_y79_0gQ3A/UI7hC7NlMLI/AAAAAAAAAmQ/tgoOuuBsduM/s1600/IMG-20121017-00095.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-6_y79_0gQ3A/UI7hC7NlMLI/AAAAAAAAAmQ/tgoOuuBsduM/s320/IMG-20121017-00095.jpg" width="320" /></a></div>
<br />
Another nice feature of using the USB hub is that it had a "self / bus" switch. This means you can use it like a powered hub with a power cable, or a non-powered without the cable. For my purposes it works like an on/off switch for my Pi! Neat! I could extend that switch to the side of the case? Nah.<br />
<br />
A few days layer my Teensy USB arrived in the mail. The shipping was fast! I went right to work trying to get the keyboard working. And then spent the next couple of ... days ... figuring out what the hell I was doing.
Step #1 was to connect the Teensy to a breadboard. The thick clear ribbon cable could then be aligned to pins really easily by just pushing them into the breadboard.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-Af_3yQazTZU/UI7iizbJgQI/AAAAAAAAAmo/QkB_WByLyBY/s1600/IMG-20121018-00098.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-Af_3yQazTZU/UI7iizbJgQI/AAAAAAAAAmo/QkB_WByLyBY/s320/IMG-20121018-00098.jpg" width="320" /></a></div>
<br />
And then using the sample <a href="http://www.pjrc.com/teensy/td_libs_Keypad.html">"Keypad.h" code that is readily available</a>, I was able to start making keys do something!!
But what was a column - and what was a row? I took a guess. Got it wrong. No problem, just reverse the pins I was using for each. But not all pins seemed to actually work. And after hours of non-progress I started researching.<br />
<br />
Unfortunately the MC-10 was never liked enough to be repaired. I imagine if it ever 'went bad' you simply threw it away instead of sending it off for an overpriced repair. Hell, I sent off a Color Computer 3 once for repair. It took two weeks and $80 to make it run again. At a cost of $119.95 for a new one ... well you get the idea. Being that there was no repair manual, I didn't have any technical reference guides to refer to.<br />
<br />
I couldn't imagine that the keyboard for the MC-10 would be mapped like a standard Color Computer 2 or 3. This was a completely different sized keyboard, with LESS keys on it. But ... perhaps it would give me a start? So I tracked down a <a href="http://archive.org/details/Trs-80ColorComputerTechnicalReferenceManual">TRS-80 Technical Reference Manual on archive.org</a> and drilled down to the keyboard schematic.<br />
<br />
Would you believe that the key layout is nearly identical?<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-zLfsPyTf7XU/UI7j9eiX8FI/AAAAAAAAAm0/Dcr1tlIQEfk/s1600/colorcomputerkeyboard.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="227" src="http://1.bp.blogspot.com/-zLfsPyTf7XU/UI7j9eiX8FI/AAAAAAAAAm0/Dcr1tlIQEfk/s320/colorcomputerkeyboard.png" width="320" /></a></div>
<br />
Over the next few days I used the Arduino development software - paired with the Teensy loader to write out a USB Keyboard routine using the above schematic as a rough reference for what letters and numbers fell into which columns and rows. The amazing thing about the layout is that it would have been FAR easier to create a schematic where "QWERTY" started off the first row, instead of "ABCDE". In other words, it's an alphabetical matrix ... with a wild run of paths around a printed circuit board to make it all work. Pretty neat.<br />
<br />
I am sharing my code via PasteBin: <a href="http://pastebin.com/79gSmXy0">http://pastebin.com/79gSmXy0</a><br />
<br />
And for fun, here is a crappy screenshot from when I was demonstrating an early version of my code.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="http://1.bp.blogspot.com/-e1XwokoKnmM/UI7pWYGMykI/AAAAAAAAAnE/HS2ffJ4yUZY/s1600/IMG-20121018-00099.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://1.bp.blogspot.com/-e1XwokoKnmM/UI7pWYGMykI/AAAAAAAAAnE/HS2ffJ4yUZY/s320/IMG-20121018-00099.jpg" width="320" /></a></div>
<br />
This is by no means a USEFUL keyboard. Still, I was impressed at how well it functions. I had a hard time getting multiple key presses to work (lot's of forum posts on this topic) ... and defining modifier keys was awkward. I have found some other efforts out on the web which handled this far more gracefully than I did.<br />
<br />
Example: To make a capital letter, you would press the shift key once, and then press the letter. It works like a toggle key of sorts. But you also probably want a tab key. And a backspace key. And you know ... normal stuff like that. So hey, the keyboard is a work in progress. If I were to sit down and use this damned thing for more than 10 minutes ... I would probably plug in a REAL keyboard.<br />
<br />
To finish things up ...<br />
<br />
I removed the breadboard and did a hack soldering job to make the Teensy rig a little more permanent. Although I did use a IC socket to solder to so that I could have my Teensy back for another project if I ever wanted to yank it out.<br />
<br />
I remapped the composite video port to the lid of the case (the MC-10 had defined it as 'TO TV' and this still holds true). And hey - I don't need that pesky TV/Game switch any more!<br />
<br />
I installed a small internal speaker with an old audio cable, and what had been some cute little collectable character from Radio Shack that doubled as an external speaker. He was on clearance for around four bucks. I gave him a quick and painless death.<br />
<br />
Some hot glue. A couple strips of Velcro. Oh, and an Airlink 101 ($11 from Amazon). Boom! It's complete!<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="http://4.bp.blogspot.com/-D6BkEWq7NUU/UI7rCpQTKyI/AAAAAAAAAnM/sv0ZiWl35oM/s1600/IMG-20121023-00114.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="240" src="http://4.bp.blogspot.com/-D6BkEWq7NUU/UI7rCpQTKyI/AAAAAAAAAnM/sv0ZiWl35oM/s320/IMG-20121023-00114.jpg" width="320" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div style="margin-left: 1em; margin-right: 1em;">
</div>
<br />
Let me tell you, it's a tight squeeze, but this all fits back together very neatly, and without any of my parts rubbing together to cause me any trouble.<br />
<br />
Now that I had my dream MC-10 ... what would I do with it?<br />
<br />
I tried using the standard Debian Wheezy build from the Raspberry Pi site but I had some <a href="http://www.raspberrypi.org/phpBB3/viewtopic.php?f=28&t=20942">serious problems getting my Teensy keyboard</a> to work correctly. And yet when running any other distribution ... I didn't have any problems. So I resorted to running the Arch distro for the Pi.<br />
<br />
Once the OS was installed ... I added dosbox, and .... Kings Quest Part I. Ah, here is something that my MC-10 could never do! Run games for the Color Computer 3 with a 512k upgrade installed! And yes, these games are the reason that I remapped the awkwardly placed arrow keys on my MC-10 keyboard.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://lh6.googleusercontent.com/KyphY9nLi7_POM4MR_DkjCTtOZlbeb_KK5W5xyQb1H2qvxj9BV8orXXIHYeygILTysJHmSH1xA=s640-h400-e365" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="200" id="il_fi" src="https://lh6.googleusercontent.com/KyphY9nLi7_POM4MR_DkjCTtOZlbeb_KK5W5xyQb1H2qvxj9BV8orXXIHYeygILTysJHmSH1xA=s640-h400-e365" style="padding-bottom: 8px; padding-right: 8px; padding-top: 8px;" width="320" /></a></div>
<br />
Now I just need my mom to come stand behind me and ask "is your homework all done?" and it will be just like the good old days.Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com6tag:blogger.com,1999:blog-5653528.post-43315163597006075452011-12-29T15:07:00.003-05:002011-12-29T15:16:07.346-05:00I STILL BLOG.It's been ages, and I mean ages since I have blogged anything. Mostly because I have nothing to share that anyone would want to read. I have somehow managed to fill my days and nights cooking, cleaning, doing home improvement projects, and sleeping. As for spare time at work - I don't have any. I am too busy working. But as I am wrapping up work orders that I have had for months and my phone is not ringing, I am feeling a slight sigh of relief.<br /><br />I suppose I could work on my Android projects, but they aren't really making me much money any more, and I have for the most part abandoned them. I had high hopes that PVault would do better in the MiKandi market. But after a few attempts to revitalize and update the app, I am not really seeing any reward from it. Some of the worst apps I have ever made still bring me the most money. And for the record, we are talking about a few cents a day. ;-)<br /><br />I have been looking into streaming media players to replace my Wii as my primary Netflix device and it looks like I will probably be buying a Roku sometime soon. Yesterday I noticed that they have a development kit and it got me excited about the possibilities for building my own "channels" for streaming content. But I'm not sure I have the desire to run out and learn an entirely new language so that I can pay someone to stream my content to the masses - and then wonder if advertisers are ever going to pay me.<br /><br />So hey, Ray is still alive and well. And he may (or may not) be thinking of new things to do with this site to justify the hosting fees.Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com0tag:blogger.com,1999:blog-5653528.post-10609436421926669692010-11-24T17:59:00.004-05:002010-12-08T16:56:17.051-05:00Google Market Account Banned (Happy Thanksgiving)Well, congratulations to all of you assholes who went through the trouble of downloading my applications only to flag them, and/or leave retarded comments such as "Flagged". I'm not sure why people feel the need to play policemen (or policewomen, or in the case of Cashelle, police-transexual), but consider yourselves a special breed of asshole and take this day to congratulate yourself between your bible readings, hating of gays, and watching recorded episodes of Fox and Friends on your DVR. THIS ... is YOUR day.<br /><br />By the way ... you are aware that for $25, I can be right back at this? And I can easily make $40 a day in advertising revenue, per application. But hey, enjoy this moment. Because I am going to take some time off to enjoy the holiday and work on some all new and ultra-offensive applications - just to piss you off.<br /><br />In the new year I will be working on getting some new applications on the MiKandi market (which allows mature content) and I will be restoring all of my old apps there to bring them back to life. Be sure to check out <a href="http://mikandi.com/search.php?query=oddree">my stuff</a> there.<br /><br />In related news ... Google now has content ratings to ensure that you are targeting your applications to the right audience. The categories are "All", "Pre-teen", "Teen", and "Mature". That would indicate that you can create applications with mature content, right? Wrong! All the same guidelines apply that applied before. So if your application contains something to do with gambling, it should be rated mature. But only play-gambling. Not real gambling. And if your application deals with adult-ish content, it should be rated mature. Just make sure it has nothing to do with pornography, nudity, or ... anything sexual. Yeah. I don't get it either!<br /><br />Look for an update here soon folks, and HAPPY THANKSGIVING TO ALL YOU TURKEYS!Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com0tag:blogger.com,1999:blog-5653528.post-1325429547860477602010-08-22T10:54:00.003-04:002010-08-22T11:38:02.983-04:00Dr. Zoidberg Soundboard<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_1Hk90wt7JEw/THFEVd71yOI/AAAAAAAAAkY/LOxFqQByYOU/s1600/zoidberbarcode.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 180px; height: 180px;" src="http://2.bp.blogspot.com/_1Hk90wt7JEw/THFEVd71yOI/AAAAAAAAAkY/LOxFqQByYOU/s400/zoidberbarcode.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5508258954854385890" /></a><br />After creating my Professor soundboard and updating it several times I decided it was time to branch off and attempt to create a new soundboard using my existing design. With that, I created the long awaited Dr. Zoidberg soundboard for Droid phones.<br /><br />If you are a Zoidberg fan (or even a Futurama fan) you need this on your phone.<br /><br />Coming soon - Zapp Brannigan!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XvyJdNQD_5w/THFD0FFUXhI/AAAAAAAABgQ/SlrnMagugqw/s1600/zoidss1.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="http://4.bp.blogspot.com/_XvyJdNQD_5w/THFD0FFUXhI/AAAAAAAABgQ/SlrnMagugqw/s400/zoidss1.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5508258381247569426" /></a>Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com0tag:blogger.com,1999:blog-5653528.post-28092991923524812752010-08-07T21:37:00.007-04:002010-08-22T11:40:33.427-04:00Good News Everyone!<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_1Hk90wt7JEw/THFEjdL_TzI/AAAAAAAAAkg/76tj2bTxafg/s1600/profbarcode.png"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 180px; height: 180px;" src="http://4.bp.blogspot.com/_1Hk90wt7JEw/THFEjdL_TzI/AAAAAAAAAkg/76tj2bTxafg/s400/profbarcode.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5508259195171852082" /></a><br />I have posted my first application to the Android Marketplace. The "Ultimate Professor Farnsworth Soundboard". I have spent countless hours pouring through Futurama episodes these past two days and then had to figure out how to package them up. You actually have to pay to publish apps to the Google Market and so I am asking for a very nominal fee of $.99 for it to recoup my 'investment'.<br /><br />I actually still have a lot of episodes to go through so I plan on updating this one as well as putting out a few others (Bender, Zapp, and Zoidberg). In the meantime ... if you have a Droid phone ... get on over to the market and buy my app!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_1Hk90wt7JEw/THFEpwcYSmI/AAAAAAAAAko/qJPOMDUcMQs/s1600/profss1.jpg"><img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 267px; height: 400px;" src="http://3.bp.blogspot.com/_1Hk90wt7JEw/THFEpwcYSmI/AAAAAAAAAko/qJPOMDUcMQs/s400/profss1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5508259303420086882" /></a>Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com1tag:blogger.com,1999:blog-5653528.post-38747945791559726452010-07-18T11:49:00.005-04:002010-07-18T12:05:23.089-04:00Cracking the "DROID CODE"Recently, the folks at Verizon/Droid started airing a new <a href="http://www.youtube.com/watch?v=tiaRAcpIJmw">Droid X commercial</a> featuring a couple of astronaut types exploring some sort of moon-like base. It's pretty creepy and cryptic - and it ends with an obvious clue around frame 0:59. <a href="http://3.bp.blogspot.com/_1Hk90wt7JEw/TEMjLOc1eFI/AAAAAAAAAkI/JzGf0fwLBjM/s1600/droidcommercial.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 249px;" src="http://3.bp.blogspot.com/_1Hk90wt7JEw/TEMjLOc1eFI/AAAAAAAAAkI/JzGf0fwLBjM/s400/droidcommercial.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5495274646086711378" /></a><br />The code is "JXYDAQWQYD". Some clever folks over at <a href="http://www.droid-life.com/2010/07/16/secret-droid-does-droid-x-page-here-is-the-code/#disqus_thread">Droid Life </a>figured out that there is a place to put these codes on the droiddoes.com website. When you enter this code into the box, you get the "transmission log" from the astonauts. Pretty neat.<br /><br />Is there more to the code itself? It seems like a really easy crypt of some sort so I got out some scrap paper and tried to reverse it. The code actually says "THINK AGAIN". And with that - I made a simple letter chart. What you will find is that the words that they chose to reveal the code actually leave letter gaps and made it VERY easy to crack. Here is a letter chart which you can use to perhaps crack "future codes".<br /><br /><a href="http://1.bp.blogspot.com/_1Hk90wt7JEw/TEMkyBMvZwI/AAAAAAAAAkQ/BSlkY3AH1Nc/s1600/droidkey.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 273px;" src="http://1.bp.blogspot.com/_1Hk90wt7JEw/TEMkyBMvZwI/AAAAAAAAAkQ/BSlkY3AH1Nc/s400/droidkey.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5495276412056069890" /></a><br /><br />I have to assume that there is more to the "secret page" so I started looking for additional clues. The page iteself drops some interesting word clues such as "Shaefer" (who must be the unfortunate astronaut whose cracked and damaged helmet they pass). And also some numbers in the form of an energy blast that passes the new crew (+240, +46, +0). It seems like GPS coordinates so I tried my luck at that and didn't get very far.<br /><br />Google maps took me to a <a href="http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&q=239,46,0&sll=51.671537,-0.398968&sspn=0.000495,0.001415&ie=UTF8&hq=239,46,0&hnear=&ll=51.671804,-0.398968&spn=0,0.001415&t=h&z=20&iwloc=A&layer=c&cbll=51.671427,-0.399018&panoid=lvh7p-MoOhIOyqpbrzeCsA&cbp=12,34.93,,0,17.57">place in in the UK called "MotorSolve". </a>I didn't think it was at all related. But the address of the place is 64 Cecil St. One of the astronauts in the commercial is wearing a helmet with his ID of "C-64" stamped on the side. This could be a far stretch. Perhaps I am conspiring too much. ;-) Also, I have been at this all morning and I need to shower now.<br /><br />If anyone can find other codes that work - share your findings with me!Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com3tag:blogger.com,1999:blog-5653528.post-11426423393406800852010-06-29T22:27:00.004-04:002010-07-01T19:39:32.114-04:00USB Serial Adapter Drivers for ChromiumA few weeks ago I downloaded Chromium OS Flow and tried it out on my netbook using a jump drive. I really liked it a lot, although the USB device was slow and had a tendency to stall out. So I pulled out an 8GB SDHC SD card that I had been hoarding and installed Chromium Flow to that. And all I can say is *WOW*. This OS is awesome. It boots (and shuts down) on a dime. The interface is quite slick. And it has a full screen terminal with apt-get and a lot of installable software.<br /><br />But then I ran into a problem. Lately I have been resetting a lot of router passwords using a console cable (don't ask). To perform this technique, you need a serial port. No laptop or netbook made in the past ten years has a serial port on it so I usually get by with a USB to serial adapter (aka "a serial dongle"). We happen to have one at work, which was lucky. Except it didn't work at all in Chromium.<br /><br />Long story short ...<br />1) I had to use gparted on a jump drive to resize some partitions. Chromium Flow is a 2GB "image". So I needed to move some boundaries to take advantage of all that empty space on my SD card.<br />2) I had to relocate /var/cache/apt. The tiny slice that the directory sits on didn't leave much room for installing software. I moved the directory to /, and then created a symbolic link to it.<br />3) I installed the build-essential and kernel source (2.6.31) packages.<br />4) I unzipped the kernel source, turned on all of the USB serial drivers as modules, and then built a kernel.<br />5) Now I have a little stack of kernel modules for a slew of USB to serial adapters.<br /><br />I can load it with insmod ./pl2303.ko. If I do a dmesg | tail I can see that it loaded properly. Now when I plug in my dongle, it gets a serial device assignment whereas before all I got was a notice telling me that it was plugged in.<br /><br />If you are in need of a USB serial adapter driver for Chromium flow, just use mine. This should save you a couple of hours. ;-) You can download the bundle of kernel modules here: <a href="http://www.oddree.com/rayhaque/usbserial.tgz">http://www.oddree.com/rayhaque/usbserial.tgz</a><br /><br />Tomorrow I can fire up minicom and start rocking out Cisco console ports with my little netbook and not have to drag around a 25 pound P.O.S. with Windows XP and Hyperterminal! Hooray!<br /><br />** EDIT ***<br />I guess I should tell anyone who might download this how you should use it.<br />1) Get the file downloaded. From terminal ...<br /><CODE>wget http://www.oddree.com/rayhaque/usbserial.tgz</code><br />2) Untar/zgip it...<br /><CODE>tar -xzvf usbserial.tgz</CODE><br />3) Move the directory into the right place alongside your other kernel modules ...<br /><CODE>mv usbserial /lib/modules/2.6.31-4-intel-menlow/kernel/drivers/usb</CODE><br />4) Change to that directory and optionally rename it to what it would normally be...<br /><CODE>cd /lib/modules/2.6.31-4-intel-menlow/kernel/drivers/usb/usbserial && move usbserial serial</CODE><br />5) Make the kernel aware that there are new modules out there ...<br /><CODE>depmod -a</CODE><br />6) Now, load your module. If you were using the same one as me ...<br /><CODE>modprobe pl2303</CODE><br />7) Check the dmesg output for clues as to whether or not the driver is working ...<br /><CODE>dmesg</CODE><br /><br />ENJOY! :-)Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com0tag:blogger.com,1999:blog-5653528.post-38311705506666939732010-03-31T19:52:00.003-04:002010-03-31T20:00:32.018-04:00"Too long WEP key" Problem Resolved?I know many of you using IZ2S have had trouble with getting your Zipit to accept a 128-bit WEP key in hexadecimal format (26 characters).<br /><br />I may have traced the problem to the use of double quotation marks in the configuration file. It seems that wpa_supplicant assumes that if you are wrapping your key in quotation marks, then it must be ASCII.<br /><br />I have made some changes to the wifi script which will now ask the user if they are inputting a Hexadecimal or ASCII key. Ideally it would be nice to have the Zipit figure this out on it's own and not even have to ask the user. But I am providing a quick fix for those of you have been struggling with this.<br /><br />First, you will want to get the latest version of IZ2S which at present is the BETA. If you are all ready running the BETA, don't re-download it. It's unchanged.<br /><br /><a href="http://www.oddree.com/zipit/Z2S-v205-BETA.zip">http://www.oddree.com/zipit/Z2S-v205-BETA.zip</a><br /><br />Then, you will want to grab this new script ...<br /><br /><a href="http://www.oddree.com/zipit/setup-wifi.sh">http://www.oddree.com/zipit/setup-wifi.sh</a><br /><br />Put it in /mnt/sd0/bin or the "bin folder" of your SD card. You can replace or overwrite the current file. Then, reboot and choose yes when asked if you want to change your wireless settings. You should get a new question after choosing WEP. If you have a long 26 character key, you should choose "H)exadecimal".<br /><br />Please post your success and failures to me in the comments area. I can't do much testing here without reconfiguring my own access point (and my wife wouldn't appreciate that too much because she is using it).<br /><br />Also - sorry for the absence lately. I hope to be back to developing soon!Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com5tag:blogger.com,1999:blog-5653528.post-32702674084021148122010-02-26T10:06:00.004-05:002010-02-27T08:41:38.417-05:00All New Zipit Z2 Development Kit ReleasedA while back I had released a virtual machine that included tools that would help folks build software for the Zipit Z2. It was thrown together rather hastily and it became frustrating to anyone who downloaded and tried to use it. Releasing a new version with some fixes include - was long overdue.<br /><br />You can get the new image here: <a href="http://oddree.com/zipit/Zipit%20Z2%20Development%20V2.torrent">Zipit Z2 Development V2.torrent</a><br />Or here: <a href="http://thepiratebay.org/torrent/5392949/Zipit_Z2_Development_V2">http://thepiratebay.org/torrent/5392949/Zipit_Z2_Development_V2</a><br /><br /><span style="font-weight:bold;">NOTE: The seeding is not going as well as I had hoped on this torrent. If you are able, you should forward a port on your firewall/router for your bit-torrent client to use. That will allow you to download from a connection I have set up which is seeding at 300k. Also - if any of you would rather just get a copy of this development kit by mail, I am going to offer that service to you. I will send a disc to anyone in the US for a flat fee of $10. That should cover materials, postage, etc. Just PayPal $10 to donations AT oddree.com. If you would like a copy and you are outside of the US, please email me (ray AT oddree.com) and we can try and work something out. I see there are some Swede's in my seeds. :-)</span> <br /><br />The release notes are below, but here is a quick rundown ... This was built for VirtualBox and the guest edition tools are all ready installed. Instead of trying to share raw files again (sorry about that) this is being shared as an "exported appliance". Which means you could also use this with VMWare if you wanted to. Also, because buildroot has proven useful in a few areas involving kernel modules, I have included that too.<br /><br />It's been suggested that I include a few pre-built packages. But not knowing what people will really use this for, I didn't want to "muddy the waters" of an otherwise clean build environment. Rather, I will build some packages of my choosing and then perhaps find a way to share those in a way that you can drop them into your VirtualBox (if anyone is interested?).<br /><br />If you are having trouble using this, or if you have questions etc. drop me a comment to this post. You can email me too at ray AT oddree.com, but leaving comments is preferable if it's something others might benefit from reading.<br /><br /><span style="font-weight:bold;">RELEASE NOTES:</span><br /><blockquote>ABOUT<br />This is version 2 of the Zipit Z2 Development kit. You can use this kit to compile your own software for use on the Zipit Z2 from Zipit Wireless.<br /><br />Included is a virtual appliance exported out of VirtualBox v3.1.4. This image should also work with VMWare. However, if you are using VMWare you will need to install the guest tools and possibly remove the included guest tools for VirtualBox.<br /><br />The image includes a configured and ready-to-use Scratchbox environment and also a buildroot environment that includes a patched Z2 kernel and ALSA (thanks again, GPSFan).<br /><br />INSTALLATION<br />Download and install VirtualBox from http://www.virtualbox.org. Click File > Import Appliance and then point to this torrent. Adjust your memory as you see fit (256MB is about as low as you should go - 1GB+ is probably overkill).<br /><br />After booting up for the first time, you should be auto-logged on as "zipit". This users password is "password" (without the quotes). Note that the root password is also "password" and so you should change those if you are going to attach this device to a network!<br /><br />MORE INFO<br />For more information - see the README.txt file on the Desktop of the virtual appliance, and the README.txt in the root of the Scratchbox home directory.<br /><br />Check out www.oddree.com for more details and post-release notes and linux.zipitwireless.com for more on the Z2 device.<br /><br />Hack on!<br />-Ray Dios Haque<br />February 2010 </blockquote>Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com15tag:blogger.com,1999:blog-5653528.post-48499062194269447092010-02-04T19:15:00.003-05:002010-02-04T19:33:44.272-05:00Version 2.04 IZ2S ReleaseYou can download IZ2S v2.04 here: <a href="http://www.oddree.com/zipit/Z2S-v204.zip">http://www.oddree.com/zipit/Z2S-v204.zip</a><br /><br />I had originally called this version the "Christmas release". But somehow it ended up being February and I still hadn't done anything new with it. Thanks to the hard work of some other folks, there are some grand changes with this release. In fact, I had little to do with these improvements.<br /><br />Wicknix has given us the long awaited bash shell. He also gave us a configuration file for links which turns it into a much more usable browser. With the font and pictures scaled down, it's about like surfing the net with a cell phone.<br /><br />rkdavis has provided an all new busybox binary which includes all the stuff that was left out in the original Zipit Wireless shell. If you are curious and do some digging around you will see that we have a strange way of handling that with the logon script. Basically there is a symbolic link for nearly every command which busybox offers.<br /><br />Most of the stuff I added to this release will go unnoticed. I rebuilt a few packages, consolidated some things, etc. Some other nice additions include: A new build of centerim which supports ALL IM protocols, the nano editor, the midnight commander file manager, curl, and even a "mostly functional" release of tcpdump!<br /><br />I plan on the next release being very different. I'm going to take everything I have learned and apply it to a clean installation. That is, I am going to take the original stock shell and begin building the additional packages all over again. This will give me an opportunity to use shared libraries for everything, and loose some of the "bulk" of IZ2S. I'm not sure when that will get released. It may not be for a while. Work is hell right now, and I have a car parked outside begging for my attention.<br /><br />Also rkdavis seems to be very close to having backlight and keyboard backlight controls working. Hopefully he has that working in time for "IZ2S v3.0". ;-)<br /><br />Here are the release notes for IZ2S v2.04 ...<br /><br /><blockquote>IZS - The "Improved Z2 Shell" (aka Shell with Benefits) v2.04<br /><br />ABOUT<br />This collection was built by Ray Dios Haque <ray@oddree.com> out of sheer necessity. I wanted something that I could play with that would not effect the stock software that comes on the Z2. The easiest way to do that was to take the Z2 Shell that was built by rossimo from Zipit Wireless and expand upon it. I take no credit for the work of the Zipit community. If I don't claim to have built it - it's because I didn't. Thanks to all of you for your contributions over the years. I hope you enjoy my additions!<br /><br />INSTALL (borrowed from the original README)<br />Format your SD card as a FAT or a FAT16 file system. Copy everything from this zip file onto the root of the card (preserving all paths/directories). Insert your SD card into the Zipit and boot it up. Note that you can only boot this image if you are running the Stock OS that came with your Zipit. If you have installed OpenEmbedded or Debian, then you have probably replaced the stock operating system which included a routine to look for the z2script.sh script. For legal purposes, I cannot provide you this stock operating system. Some of the smarter people in the Zipit community might be able to help you restore this OS (see CHAT below).<br /><br />CHAT<br />Come chat with us! There is a thriving (?) community of the worlds best Zipit hackers who hang out in #zipit on irc.freenode.net. You can fire up 'irc' from this very image and come hang out.<br /><br />CHANGES/ADDITIONS<br />RELEASE 2.04 (ALL NEW!) - Christmas 2009<br />bash (by wicknix, then rebuilt by ray), ~/.bashrc (provides defaults to bash), ~/.links/html.cfg (by wicknix, makes graphical links fit the screen better), centerim-4.22.9 (supports ALL protocols), tcpdump, nano, mc (midnight commander), zip, NEW busybox v1.15.3 (built by rkdavis), curl.<br /><br />RELEASE 2.03 - Early December 2009<br />We have sound!! Thanks GPSFan! (alsaconf, alsamixer, alsactl, amidi, aplay, gawk, getopt, iecset), SHARED Library support (ldd, ldconfig, readelf), cmus (a wicked MP3 Player), matrix (ncmatrix), mpg123, mplayer-10rc2, ntpdate, gzip (gzip, gunzip, gzexe, zcat, zcmp, zdiff, zegrep, zforce, zless, zmore, znew), zz (script to run after ssh'ing in - use . zz (dot space zz))<br /><br />RELEASE 2.02 - November 2009<br />cls (clear screen), centerim (ncurses instant messenger with AIM, Yahoo, ICQ support), irssi (ncurses irc client), links (ncurses), links2 (graphical browser!), sed (for scripting), tar, bzip2 (bzip2, bz2recover), coreutils (10MB's of binaries)<br /><br />RELEASE 2.01 - Initial Release<br />wget, ircii-20090520 (irc), wireless-tools (ifrename, iwconfig, iwevent, iwgetid, iwlist, iwpriv, iwspy), ftp (ftp, /etc/services), unzip (unzipsfx, unzip, funzip), nmap (nmap, *new* ncat), wpa_passphrase, less (lessecho, lesskey), grep<br /><br />LIBS CHANGES<br />Removed the worthless ncurses static libs to make way for all of the *shared* libs. Not listing all of them here. Just look for yourself.<br /><br />STARTUP SCRIPT MODIFICATION(S)<br />REV 2.04<br />- Removed the "motd" from this script, since .bashrc displays it now.<br />- Removed coreutils, as the new busybox does almost all the same things with less space.<br />- Added a symbolic link script to support all of the additional commands that busybox provides.<br />- We now use your actual MAC address if available from /mnt/ffs/properties.txt (thanks rkdavis).<br />REV 2.03<br />- Stopped audio_pxa from loading, and then run /mnt/sd0/modules/alsa/loadsound.sh for ALSA sound modules.<br />- Added ntp protocol to /etc/services file.<br />- Added a line which will fix the time and date if there is a network connection available, and then display that time/date to you.<br />- From here on out, all libs will go into /mnt/sd0/lib which will be linked to both /lib and /usr/lib/.<br />- Hid all the gory details of wpa_supplicant, while adding some other stuff for verbosity.<br />REV 2.02<br />- Modified the PATH statement so that coreutils and /mnt/sd0/bin binaries will override the busybox stuff.<br />- Created a home directory for the root user which exists on the SD card. It holds your stuff.<br />- Added a routine that change your MAC address to something random the first time you boot up. This should prevent duplicate MAC problems if you own multiple Z2 devices.<br />- Added a /var directory that exists on your SD card. Some things (like dropbear) expect to find it. Had to fix a script error in the BETA (thanks rkdavis).<br />- Added an /etc/issue file which is displayed at logon time and to ssh connections.<br />REV 2.01<br />- Added a routine asking if you would like to configure your wireless card. This was not possible before as there was no scanning routine and the image lacked the wpa_passphrase utility. You can now scan for and configure your wireless settings entirely from the zipit (wording updated in 2.02).<br />- Added "cp /mnt/sd0/etc/services /etc/services" which gives the ftp command the port numbers it needs to function.<br />- Added "cp -R /mnt/sd0/etc/terminfo /etc", "export TERM=vt102", "export TERMINFO=/etc/terminfo" to help irc understand the screen layout.<br />- Added "ln -s /mnt/sd0/lib/* /lib" to make ncurses libraries usable, and any future libraries that you or I might add.<br />- Added "ln -s /mnt/sd0/share /share" for nmap and anything else that might require a "share" directory to be present to function.<br /><br />OTHER MODIFICATION(S)<br />- Replaced the stock keyboard driver in /modules with one that was created by GPSFan (Ken) from the Zipit Yahoo Group. This removed all of the problems with keys not working, or repeating while typing. The original drivers remain, but have been renamed to *.orig.<br /><br />COMING SOON?<br />- An *easier to use* mp3 player alternative to cmus (most require network socket support, which the Z2 kernel does not support).<br />- A script to download and install "packages" (zip files) using wget, unzip, and a "binary repository" on www.oddree.com. A similar system could provide updates when I provide them. I have not worked on this at all. Sorry about that.<br /><br />IFAQ (InFrequently Asked Questions)<br />Q. Why are you wasting your time on this? The Z2 Shell is dead!<br />A. It may be 10x more work to get simple things built for it - the Z2 is very lean, and still very useful.<br /><br />Q. How can I add my own binary/package?<br />A. There are several ways to go about this. The method I have used to compile everything is "scratchbox". Scratchbox is a program which let's you cross-compile applications. That means that you can build stuff for an ARM platform, even though you have a regular x86 machine. It can be tricky and complicated. Try reading up on what I have posted at http://www.oddree.com.<br /><br />Q. Why did you *insert snarky comment here*?<br />A. If you find that I did something stupid and inefficient, do let me know. I don't claim to have any expertise in the area of building software. If you have some suggestions on how to improve things or would like to help with the next release of this improved Z2 Shell, email me at ray@oddree.com. I would love to collaborate with some folks who might be more talented than myself.<br /><br />Q. Will you build *insert package name here* for me?<br />A. Probably. Unless you are asking me to build something that has an endless list of dependencies. In which case I will probably tell you to install OpenEmbedded or full fledged Debian. They all ready have all of these packages. I am only expanding upon the old Z2 Shell because I find it lean and useful.<br /><br /></blockquote>Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com7tag:blogger.com,1999:blog-5653528.post-69360182559284736902010-01-24T11:00:00.002-05:002010-01-24T11:11:40.958-05:00Still Alive!I just wanted to drop a few lines and assure everyone that I am still very well alive. A couple weeks ago now I was putting the finishing touches on the next release of IZ2S when all hell broke loose just about everywhere. It's been a very, very, busy past couple of weeks at work. I have been battling new projects, old projects, phones ringing off the hook, upgrades gone sour, lost support, you get the idea.<br /><br />Meanwhile, my car has been acting up. I have had some trouble getting the old VW started lately so I replaced the battery. That seemed to work for a day or two, and then I was right back to same issue. And so last weekend I replaced the starter. Let me tell you, this was NOT an easy task. In the process of working on the starter it appeared that I was leaking something. Oil? Gas? Of course I was laying in the wet street and I had some dirty old compacted snow stuck to my underbody. Once everything had dried out, it looked like I was in good shape.<br /><br />A day or two later I was barreling down the road when my green dash light came on. Suspecting *another* electrical problem I got out the old multimeter and began testing my voltages. It appeared that my generator was putting out enough juice, and my battery was getting charged. Perhaps my voltage regulator was allowing too much juice through? I was getting about 17v to the battery, and that didn't seem right. Then as I was leaving work on Thursday my engine just stopped. And I mean, it stopped HARD.<br /><br />That's when I realized that the green light on my dash wasn't an electrical problem at all. It was the "low oil" light. I did have a leak! I have seized my engine. Could this week get any better?<br /><br />I tried a few quick fixes to try and get the car home, but I ended up having to pull out my AAA card and get it towed to my house. And now, I just wish it would stop raining long enough that I can pull my engine and get it into my basement. Of course, I will be doing all this while laying in the gutter on a busy public street because I don't even have a driveway for my house (let alone a cozy garage to work in).<br /><br />So anyway, I am alive. And I miss developing for my Zipit. I hope to be able to get back to it soon.Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com1tag:blogger.com,1999:blog-5653528.post-34080719041749444082009-12-16T10:46:00.002-05:002009-12-16T11:04:24.317-05:00Restoring your Zipit Z2 to DefaultsA while back I bought my daughter a Z2 for Christmas. We got it off of eBay and my wife asked that I test it to make sure it works. About ten minutes later I realized that I had registered the device with Zipit Wireless using a nickname of my choosing. In effect, I just made this Zipit my own. But what if I wanted to "gift" this Zipit or sell it?<br /><br />Quite simply, all you need to do to make a Zipit Z2 new again is to remove a few configuration files. You can do this using either my <a href="http://rayhaque.blogspot.com/search/label/IZ2S">IZ2S</a>, or even the vanilla <a href="http://linux.zipitwireless.com/wiki/Z2Shell">Z2 Shell</a>.<br /><br />Boot up with your shell, and then do a "cd /mnt/ffs" and an "ls" to list the files there. You will see something like this ...<br /><br /><blockquote>-rwxr-xr-x 1 root root 657 Dec 16 01:58 411.xml<br />-rwxr-xr-x 1 root root 112342 Dec 16 01:58 NeonGlow.jpg<br />-rwxr-xr-x 1 root root 1519952 Dec 16 01:58 Resources.arl<br />-rwxr-xr-x 1 root root 3578680 Dec 16 01:58 Zipit2<br />-rwxr-xr-x 1 root root 1921 Dec 16 01:58 properties.txt<br />-rwxr-xr-x 1 root root 4644 Dec 16 01:58 serversettings.xml<br />-rwxr-xr-x 1 root root 4644 Dec 16 01:58 serverstationz.xml<br />-rwxr-xr-x 1 root root 510 Dec 16 01:58 start.sh<br />drwxr-xr-x 2 root root 4096 Dec 16 01:58 wpa_supplicant</blockquote><br /><br />Only a few of these files are really required, and the rest are files that get downloaded from Zipit Wireless when your Z2 connects up to their servers through the wireless network.<br /><br /><span style="font-weight:bold;">You can safely remove these files:</span><br />NeonGlow.jpg - This is my chosen background wallpaper. Whatever you picked will have a .jpg extension. You can delete any .jpg file here.<br />properties.txt - This file contains your device ID (serial number), your username, and some other important settings. Deleting this file removes your Zipit Wireless account association.<br />serversettings.xml - This file contains a record of your messaging limit(s), your chosen wallpaper, and some radio station data.<br />serverstationz.xml - This file seems to contain the same data as "serversettings.xml". Both files can be deleted and would be recreated when you connect with your Zipit Wireless account.<br /><br /><span style="font-weight:bold;">DO NOT REMOVE (or alter) THESE FILES!</span><br />Resources.arl - This is some sort of archive which likely contains data for your theme. Although it's compressed, and I don't know how. Leave it alone.<br />Zipit2 - This is the core application for the Z2. Do not alter this file, or your Z2 will no longer be any fun.<br />start.sh - This short and simple script is what allows for you to run a shell, as it looks for an OS on your SD card at boot time. It also runs the Zipit2 application. Leave this alone!<br />wpa_supplicant - This directory contains an executable of the same name. This is what connects the Z2 to your wireless network. Leave this alone too!<br /><br /><span style="font-weight:bold;">Just to recap ...</span><br />If you want to make your Zipit "new again", you should delete your <span style="font-style:italic;">settings files</span> so that your /mnt/ffs directory looks something like this ...<br /><br /><blockquote>-rwxr-xr-x 1 root root 1519952 Jan 1 1970 Resources.arl<br />-rwxr-xr-x 1 root root 3578680 Jan 1 1970 Zipit2<br />-rwxr-xr-x 1 root root 510 Sep 17 2007 start.sh<br />drwxrwxr-x 2 root root 0 Sep 17 2007 wpa_supplicant</blockquote><br /><br />The next time you boot your Z2 (without the SD card inserted) you will get the "first time wizard". By the way, in case you forgot - one of your options in this wizard is to enter the credentials for your existing account.Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com1tag:blogger.com,1999:blog-5653528.post-70839990162232510672009-12-15T11:28:00.002-05:002009-12-15T11:31:44.743-05:00Links2 (Graphical Web Browser) for the Zipit Z2This is links2 compiled along with directfb to provide a graphical web browser to the Zipit Z2 Shell.<br /><br />You can download it here: <a href="http://oddree.com/zipit/links2-zipitz2.zip">http://oddree.com/zipit/links2-zipitz2.zip</a><br /><br /><span style="font-weight:bold;">Note that if you get the latest IZ2S image from this site - you will not need this program because it is all ready included by default. This is just provided for folks who want to experiment with the Z2 Shell in it's unadulterated, and naked form.<br /></span><br /><br />Here is the included README ...<br /><blockquote>** Links2 built with graphical directfb support **<br />** for the Zipit Z2 Wireless device **<br />** by Ray Dios Haque <ray@oddree.com> **<br /><br />ABOUT<br />This is links2 built with graphical support for<br />all of the popular image types (png, jpeg, gif).<br />It utilizes directfb as a graphical driver, and so<br />there is no need for X11! This tooks weeks to get<br />running correctly. So I hope you enjoy it. :-)<br /><br />Remember - this is a very basic web browser. While<br />you can do fun things like read blogs and check your<br />email, watching videos and running Flash is just out<br />of the question!<br /><br />INSTALL<br />Copy everything in the bin folder, to the bin folder<br />on your SD card. That's it. Keep in mind that this<br />package is now part of the "Improved Z2 Shell" which<br />is available from www.oddree.com.<br /><br />USING LINKS2<br />To start links2 in graphical mode, just run 'links2'<br />inside of terminal. This will actually run a script<br />which launches links2 along with some special and<br />required parameters (such as the screen rotator).<br /><br />To visit a web page, press the letter "g" and then<br />enter a URL. To move around on the page, you can<br />hold down ALT and SHIFT (white up arrow next to ALT)<br />and then use your arrow/navigational keys to move<br />around the page. When running links, you are using<br />a special keymap that aliosa27 created. When you<br />exit links, your original keymap is reloaded.<br /><br />NOTE: You can still run links in text mode, simply<br />by running 'links' (without the 2).</blockquote>Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com0tag:blogger.com,1999:blog-5653528.post-348400117483294942009-12-15T10:22:00.003-05:002009-12-15T10:36:48.512-05:00ALSA driver and utilities for the Zipit Z2A little more than a year ago, our friend GPSFan was able to get ALSA sound and it's utilities running on the Zipit Z2. This was quite an accomplishment, as it meant that you could now use all sorts of other programs that rely on ALSA sound. However, the tools could not run on the stock Z2 Shell because they were not built "statically". And so - I made it my personal mission to rebuild these tools in a static form and give the Z2 Shell the sound it deserved.<br /><br />It took many late nights (and some serious help from GPSFan) but I was eventually able to recreate the environment that GPSFan used to create his modules, and then change it slightly to get things compiled in a static form. Then it was just a matter of getting the tools to cooperate with the Z2. There are quite a few tricks involved in loading things properly, and so I wrote an included script which does everything.<br /><br />You can download it here: http://www.oddree.com/zipit/alsa-zipitz2.zip<br /><br /><span style="font-weight:bold;">Note that if you get the latest IZ2S image from this site - you will not need these drivers because they are all ready included and loaded by default. This is just provided for folks who want to experiment with the Z2 Shell in it's unadulterated, and naked form.</span><br /><br />Here is the included README notes:<br /><blockquote>ABOUT<br />alsa-lib/utils-20091113 (snapshot) built for the<br />Zipit Z2 Shell by Ray Dios Haque on 11/24/2009.<br /><br />These tools should allow you to use GPSFan's <br />Z2_Rec modules (playback/recording) on the Z2<br />Shell, or Rays's Improved Z2 Shell (IZ2S).<br /><br />More information available on: oddree.com.<br /><br />For information on how the modules were built,<br />please see ./orig-notes/readme.<br /><br />INSTALL<br />There is a lot going on with this script, and I<br />wanted to keep it really simple for the purpose<br />of testing or simply screwing around with your<br />Zipit. Note that if you are running this every<br />time you boot your zipit, this is probably a <br />pretty bad practice and you should consider <br />giving all of these items a permanent home on<br />your Z2. Or - just get the latest version of <br />Ray's Improved Z2 Shell from oddree.com which <br />will include all of this stuff.<br /><br />That said, simply run ./loadsound.sh from this<br />directory to install and activate sound.<br /><br />The script will remove the native sound driver,<br />create a few new directories for configuration<br />files, copy over the needed configuration files,<br />insert modules into your running system, and<br />finally will run a command to load up the sound<br />state from a successful instance of ALSA.<br /><br />You will need to copy everything in the bin <br />directory to the bin folder on your SD card.<br /><br />Now you can play your MP3's. In fact, I have<br />included a build of mpg123 in the bin directory.<br /><br />Adjust volume and other things with alsamixer.<br /><br />THANKS<br />Many, many, thanks to my friends GPSFan and <br />rkdavis from #zipit on irc.freenode.net. We put<br />in a few late nights to get this going.</blockquote>Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com0tag:blogger.com,1999:blog-5653528.post-27958661772780111592009-12-05T20:51:00.003-05:002009-12-05T21:01:48.713-05:00Version 2.03 IZ2S Release - SOUND and SHARED LIBRARIES!I am probably more excited about this release than any other, because it has opened up the possibilities for some things that just weren't possible before. We now have the ability to run applications using shared libraries. And the first application I decided to port over was <a href="http://cmus.sourceforge.net/">"cmus".</a> Cmus is a "small and fast text mode music player" which runs in a console. It's been built to support wav's, mp3's, and even vorbis ogg files. And best of all, it can play streams (that means streaming radio!).<br /><br />This represents a lot of work on the part of myself, and my friends from #zipit on irc.freenode.net. GPSFan was nice enough to share some of his dark secrets with me pertaining to buildroot and ALSA. From there I was able to get the ALSA-utils built, and then rebuilt statically. <br /><br />You can download version v2.03 here: <a href="http://www.oddree.com/zipit/Z2S-v203.zip">http://www.oddree.com/zipit/Z2S-v203.zip</a><br /><br /><span style="font-weight:bold;">Here is a quick video demonstration of the new feature(s):</span><br /><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="437" height="370" id="viddler"><param name="movie" value="http://www.viddler.com/player/3a1c40d9/" /><param name="allowScriptAccess" value="always" /><param name="allowFullScreen" value="true" /><param name="flashvars" value="fake=1"/><embed src="http://www.viddler.com/player/3a1c40d9/" width="437" height="370" type="application/x-shockwave-flash" allowScriptAccess="always" allowFullScreen="true" flashvars="fake=1" name="viddler" ></embed></object><br /><br />As always - here is the README file which is also included in the Zip file.<br /><br /><blockquote>IZS - The "Improved Z2 Shell" (aka Shell with Benefits) v2.03<br /><br />ABOUT<br />This collection was built by Ray Dios Haque <ray@oddree.com> out of sheer necessity. I wanted something that I could play with that would not effect the stock software that comes on the Z2. The easiest way to do that was to take the Z2 Shell that was built by rossimo from Zipit Wireless and expand upon it. I take no credit for the work of the Zipit community. If I don't claim to have built it - it's because I didn't. Thanks to all of you for your contributions over the years. I hope you enjoy my additions!<br /><br />INSTALL (borrowed from the original README)<br />Format your SD card as a FAT or a FAT16 file system. Copy everything from this zip file onto the root of the card (preserving all paths/directories). Insert your SD card into the Zipit and boot it up. Note that you can only boot this image if you are running the Stock OS that came with your Zipit. If you have installed OpenEmbedded or Debian, then you have probably replaced the stock operating system which included a routine to look for the z2script.sh script. For legal purposes, I cannot provide you this stock operating system. Some of the smarter people in the Zipit community might be able to help you restore this OS (see CHAT below).<br /><br />CHAT<br />Come chat with us! There is a thriving (?) community of the worlds best Zipit hackers who hang out in #zipit on irc.freenode.net. You can fire up 'irc' from this very image and come hang out.<br /><br />CHANGES/ADDITIONS<br />RELEASE 2.03 (ALL NEW!) - December 2009<br />We have sound!! Thanks GPSFan! (alsaconf, alsamixer, alsactl, amidi, aplay, gawk, getopt, iecset), SHARED Library support (ldd, ldconfig, readelf), cmus (a wicked MP3 Player), matrix (ncmatrix), mpg123, mplayer-10rc2, ntpdate, gzip (gzip, gunzip, gzexe, zcat, zcmp, zdiff, zegrep, zforce, zless, zmore, znew), zz (script to run after ssh'ing in - use . zz (dot space zz))<br /><br />RELEASE 2.02 - November 2009<br />cls (clear screen), centerim (ncurses instant messenger with AIM, Yahoo, ICQ support), irssi (ncurses irc client), links (ncurses), links2 (graphical browser!), sed (for scripting), tar, bzip2 (bzip2, bz2recover), coreutils (10MB's of binaries)<br /><br />RELEASE 2.01 - Initial Release<br />wget, ircii-20090520 (irc), wireless-tools (ifrename, iwconfig, iwevent, iwgetid, iwlist, iwpriv, iwspy), ftp (ftp, /etc/services), unzip (unzipsfx, unzip, funzip), nmap (nmap, *new* ncat), wpa_passphrase, less (lessecho, lesskey), grep<br /><br />LIBS CHANGES<br />Removed the worthless ncurses static libs to make way for all of the *shared* libs. Not listing all of them here. Just look for yourself.<br /><br />STARTUP SCRIPT MODIFICATION(S)<br />REV 2.03<br />- Stopped audio_pxa from loading, and then run /mnt/sd0/modules/alsa/loadsound.sh for ALSA sound modules.<br />- Added ntp protocol to /etc/services file.<br />- Added a line which will fix the time and date if there is a network connection available, and then display that time/date to you.<br />- From here on out, all libs will go into /mnt/sd0/lib which will be linked to both /lib and /usr/lib/.<br />- Hid all the gory details of wpa_supplicant, while adding some other stuff for verbosity.<br />REV 2.02<br />- Modified the PATH statement so that coreutils and /mnt/sd0/bin binaries will override the busybox stuff.<br />- Created a home directory for the root user which exists on the SD card. It holds your stuff.<br />- Added a routine that change your MAC address to something random the first time you boot up. This should prevent duplicate MAC problems if you own multiple Z2 devices.<br />- Added a /var directory that exists on your SD card. Some things (like dropbear) expect to find it. Had to fix a script error in the BETA (thanks rkdavis).<br />- Added an /etc/issue file which is displayed at logon time and to ssh connections.<br />REV 2.01<br />- Added a routine asking if you would like to configure your wireless card. This was not possible before as there was no scanning routine and the image lacked the wpa_passphrase utility. You can now scan for and configure your wireless settings entirely from the zipit (wording updated in 2.02).<br />- Added "cp /mnt/sd0/etc/services /etc/services" which gives the ftp command the port numbers it needs to function.<br />- Added "cp -R /mnt/sd0/etc/terminfo /etc", "export TERM=vt102", "export TERMINFO=/etc/terminfo" to help irc understand the screen layout.<br />- Added "ln -s /mnt/sd0/lib/* /lib" to make ncurses libraries usable, and any future libraries that you or I might add.<br />- Added "ln -s /mnt/sd0/share /share" for nmap and anything else that might require a "share" directory to be present to function.<br /><br />OTHER MODIFICATION(S)<br />- Replaced the stock keyboard driver in /modules with one that was created by GPSFan (Ken) from the Zipit Yahoo Group. This removed all of the problems with keys not working, or repeating while typing. The original drivers remain, but have been renamed to *.orig.<br /><br />COMING SOON?<br />- A better mp3player or a front-end for mpg123.<br />- A script to download and install "packages" (zip files) using wget, unzip, and a "binary repository" on www.oddree.com. A similar system could provide updates when I provide them.<br />- I still want to get an image viewer working. DFBSee 'almost' works.<br /><br />IFAQ (InFrequently Asked Questions)<br />Q. Why are you wasting your time on this? The Z2 Shell is dead!<br />A. It may be 10x more work to get simple things built for it - the Z2 is very lean, and still very useful.<br /><br />Q. Why does nmap (or some other binary) run so slow?<br />A. Because everything has to be built "static" to run on the Z2. That means that where you might normally have hundreds of shared libraries on a linux machine, the Z2 Shell must embed the libraries into each running binary. It makes for some bloated inefficient stuff. But, it works. If you want a better system - start writing it! Otherwise, try to limit the actions of what you are doing. For instance, use an address range or port range with nmap. Don't start long running scans on entire networks. This is a Z2 we're talking about. The resources are pretty lean.<br /><br />Q. How can I add my own binary/package?<br />A. There are several ways to go about this. The method I have used to compile everything is "scratchbox". Scratchbox is a program which let's you cross-compile applications. That means that you can build stuff for an ARM platform, even though you have a regular x86 machine. It can be tricky and complicated. Try reading up on what I have posted at http://www.oddree.com.<br /><br />Q. Why did you *insert snarky comment here*?<br />A. If you find that I did something stupid and inefficient, do let me know. I don't claim to have any expertise in the area of building software. If you have some suggestions on how to improve things or would like to help with the next release of this improved Z2 Shell, email me at ray@oddree.com. I would love to collaborate with some folks who might be more talented than myself.<br /><br />Q. Will you build *insert package name here* for me?<br />A. Probably. Unless you are asking me to build something that has an endless list of dependencies. In which case I will probably tell you to install OpenEmbedded or full fledged Debian. They all ready have all of these packages. I am only expanding upon the old Z2 Shell because I find it lean and useful.<br /></blockquote><br /><br />Happy hacking! Next release ... keyboard backlight support? It's hard to chat in the dark. :-( I am seeking help from the Z2-Zen master, aliosa27 for that project.Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com6tag:blogger.com,1999:blog-5653528.post-5822823177765465942009-12-05T15:42:00.004-05:002009-12-05T16:43:03.565-05:00About The "Improved Z2 Shell?" (IZ2S)<span style="font-weight:bold;">QUICK ABOUT</span><br />The Improved Z2 Shell (IZ2S) is an expansion upon the Z2 Shell that Zipit Wireless released for general experimentation.<br /><br /><span style="font-weight:bold;">WHY USE IZ2S?</span><br />I built IZ2S out of necessity because the hardware was perfect for what I needed, and the stock OS had some limitations. I started by building add-ons, but some of them were a bit complicated and so it turned into full standing releases. There are lots of reasons to use the IZ2S, but here are a few highlights ...<br /><UL><br /><LI>IZ2S loads from an SD card just by having it inserted, as this is how the folks at Zipit Wireless intended you to use their shell. You do *NOT* need to flash anything, hook up and special hardware, or perform any activities that might otherwise :brick: your Z2. You can return to the stock OS at any time simply by ejecting the SD card and rebooting.<br /><LI>IZ2S contains most of the features that you find in the stock OS, but improves upon them (such as a much better keyboard driver and the ability to pick your own radio stations).<br /><LI>IZ2S is very <span style="font-style:italic;">lean</span>. It boots in 4 seconds and running multiple applications at once is perfectly fine. You can effectively chat on IRC in one window, instant message your buddies in another, and be listening to your favorite streaming radio station in a third window (thanks to the magic of 'screen').<br /><LI>IZ2S offers applications that are not available for the stock OS, such as a graphical web browser (links2).<br /><LI>Ray is building and releasing new applications all the time, and installing them can be done on the device itself - or by copying files onto your SD card from within MS Windows.<br /></UL><br /><br /><span style="font-weight:bold;">LIMITATIONS</span><br /><UL><LI>IZ2S is "text based" meaning that everything happens from a terminal console. If that is not your cup of tea, you might consider installing Debian or OpenEmbedded. Keep in mind though - that those installations have their own kernels which will require that you remove the stock OS.<br /><LI>IZ2S has an instant messenger, but it will not offer you cellular texting. For that, you need to return to the stock OS so that you can be connected to your paid Zipit Wireless account.<br /><LI>IZ2S does not yet have any controls over the display brightness/contrast, or the keyboard lights. We are hoping to have these features included soon thanks to the work of the Z2 community.<br /><LI>IZ2S has an "idle screen sleeper" that looks like a bricked device. This seems to be the result of the kernel trying to put a display to sleep, and the display driver doesn't respond correctly. It's a problem that we inherited from the Z2 Shell from Zipit Wireless, and we haven't been able to fix it yet.<br /></UL><br /><br /><span style="font-weight:bold;">WHERE CAN I GET IT?</span><br />You can download the Improved Z2 Shell by following links from this very site. This site is actually a great big Blog, and I always tag IZ2S releases with the tag "IZ2S". Therefore, you can always find the latest release with this link: <a href="http://rayhaque.blogspot.com/search/label/IZ2S">http://rayhaque.blogspot.com/search/label/IZ2S</a>. The newest/latest release should always be the first thing that shows up.Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com8tag:blogger.com,1999:blog-5653528.post-29385672600313569362009-12-04T21:04:00.003-05:002009-12-04T21:24:09.763-05:00New IZ2S Shell - Coming SoonI am probably days away from releasing another version of my Improved Z2 Shell. Since getting the ALSA sound package working, I have been working on getting a good MP3 player to use. I found that there are quite a few console (ncurses based) MP3 players to chose from - but they all shared a common problem ... *SHARED* libraries and plugins.<br /><br />I have never really challenged the restriction that comes with the Z2 Shell which is "your binaries must be static". I assumed that this had something to do with the way that the kernel was built - and I was partially right. Since working with GPSFan on getting ALSA going, I have been getting familiar with "buildroot" which makes building the Z2 kernel really easy. Not that I am interested in replacing the kernel (because I don't want to harm my stock OS) but I *am interested* in re-creating the kernel. In that process that builds the kernel, you are given a chance to turn enable options, add modules, and then build software against the final product. I found that uClibc had some issues with "pre-loading shared libraries". This pre-loading process typically also contains a cache which is created at boot time, or on demand (such as after building and adding new libraries). So caching and pre-loading are broken. But ... the ldconfig, and ldd tool could still be built. That means that shared libraries can still be used provided that "ldconfig" has been run before the application that needs the libraries. <br /><br />With that, I went to work on building cmus for the Z2. I had spent the previous couple of days trying to work the plugin files into "static binaries" which was quite a contradiction being that they were created in the form of .so files. Now, I could drop all that nonsense and build the application as the developers intended. With the binaries built, I began the process of getting libraries copied over and putting the shared libraries where they belonged. To my absolute delight - it worked!<br /><br />And so, in the coming days I will be releasing the latest and greatest Z2 Shell which includes the highly anticipated ALSA sound modules, and a new line of applications that previously were not possible.<br /><br />I am also trying to figure out how we can get the keyboard backlight working, but I will definitely need some help with that. Your friend and mine, aliosa27 has offered his assistance and so I am much more confident that we can come up with something now. You may have heard that sweetlilmre' has been successful in getting this working with the latest kernel source, but it will be tricky trying to apply his same tactics to an older kernel version. Additionally, we will have to do the whole process with modules and daemons (without touching the core kernel). <br /><br />So check back soon folks. In the mean time, I will be BETA testing all this stuff I have thrown together latetly. If you aren't all ready doing so - get into #zipit on irc.freenode.net and join the discussion.Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com0tag:blogger.com,1999:blog-5653528.post-88001798253570932132009-11-23T20:56:00.011-05:002009-12-05T16:13:07.072-05:00Version 2.02 IZ2S Release (aka Shell with benefits)I am pleased to present you with my very latest Improved Z2 Shell version 2.02. This release is a grand improvement over the last, and provides you with a new *color* irc client (irssi), a multi-protocol instant messenger (center-im 4.22.8) and a graphical web browser (links2 with DirectFB). And thanks to the wonders of "screen" you can run all three of these new programs and more in the comforts of your Z2 Shell.<br /><br />Here is the download link: <a href="http://www.oddree.com/zipit/Z2S-v202.zip">http://www.oddree.com/zipit/Z2S-v202.zip</a><br /><br /><span style="font-weight:bold;">VIDEO</span><br />I have created a video to demonstrate some of these neat new tools and features.<br /><br /><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7786839&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7786839&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><p><a href="http://vimeo.com/7786839">Improved Zipit Z2 Shell v2.02 - Now with graphical web browser!</a> from <a href="http://vimeo.com/user2568401">Ray Haque</a> on <a href="http://vimeo.com">Vimeo</a>.</p><br /><br /><span style="font-weight:bold;">ABOUT</span><br />This release represents several weeks of maddening code hacking. After getting Center-IM working I went straight to my goal of creating a graphical web browser for the shell. Initially I went after trying to get something going with "MiniGui". This was used to create a graphical web browser for the original Zipit device. However, the folks in #zipit on irc.freenode.net turned my onto the DirectFB project. It took about two weeks of off and on hacking and poking, but I was eventually able to wrangle all of the dependencies into submission and slap all the parts together into a single static binary. The biggest challenge there was to make the screen display correctly. As you may know, the Z2 uses a screen size of 240x320, which is turned sideways. This meant that DirectFB had to be rotated. But when rotated, it no longer fit the screen! In the end, a kind fellow in the UK (from the DirectFB mailing list) suggested that I alter the application (in this case, links2). From there it wasn't that difficult to alter. I just had to tell links to ignore whatever size DirectFB reported to it, and set it to 320x240. Another challenge was to get the keyboard to be usable in links2. Links2 wants to use the ALT key to control menus. But on the Z2, the ALT key is used for every single non-alpha key! I was exploring some complicated solutions when rkdavis (from #zipit) found that simply using a different keymap, this whole problem was avoidable.<br /><br />Here are the release notes:<br /><blockquote>IZS - The "Improved Z2 Shell" (aka Shell with Benefits) v2.02<br /><br />ABOUT<br />This collection was built by Ray Dios Haque <ray@oddree.com> out of sheer necessity. I wanted something that I could play with that would not effect the stock software that comes on the Z2. The easiest way to do that was to take the Z2 Shell that was built by rossimo from Zipit Wireless and expand upon it. I take no credit for the work of the Zipit community. If I don't claim to have built it - it's because I didn't. Thanks to all of you for your contributions over the years. I hope you enjoy my additions!<br /><br />INSTALL (borrowed from the original README)<br />Format your SD card as a FAT or a FAT16 file system. Copy everything from this zip file onto the root of the card (preserving all paths/directories). Insert your SD card into the Zipit and boot it up. Note that you can only boot this image if you are running the Stock OS that came with your Zipit. If you have installed OpenEmbedded or Debian, then you have probably replaced the stock operating system which included a routine to look for the z2script.sh script. For legal purposes, I cannot provide you this stock operating system. Some of the smarter people in the Zipit community might be able to help you restore this OS (see CHAT below).<br /><br />CHAT<br />Come chat with us! There is a thriving (?) community of the worlds best Zipit hackers who hang out in #zipit on irc.freenode.net. You can fire up 'irc' from this very image and come hang out.<br /><br />CHANGES/ADDITIONS<br />RELEASE 2.02 (ALL NEW!) - November 2009<br />cls (clear screen), centerim (ncurses instant messenger with AIM, Yahoo, ICQ support), irssi (ncurses irc client), links (ncurses), links2 (graphical browser!), sed (for scripting), tar, bzip2 (bzip2, bz2recover), coreutils (10MB's of binaries)<br /><br />RELEASE 2.01 - Initial Release<br />wget, ircii-20090520 (irc), wireless-tools (ifrename, iwconfig, iwevent, iwgetid, iwlist, iwpriv, iwspy), ftp (ftp, /etc/services), unzip (unzipsfx, unzip, funzip), nmap (nmap, *new* ncat), wpa_passphrase, less (lessecho, lesskey), grep<br /><br />NEW LIBS<br />ncurses (libform.a, libform_g.a, libmenu.a, libmenu_g.a, libncurses++.a, libncurses.a libncurses_g.a, libpanel.a, libpanel_g.a)<br /><br />SCRIPT MODIFICATION(S)<br />REV 2.02<br />- Modified the PATH statement so that coreutils and /mnt/sd0/bin binaries will override the busybox stuff.<br />- Created a home directory for the root user which exists on the SD card. It holds your stuff.<br />- Added a routine that change your MAC address to something random the first time you boot up. This should prevent duplicate MAC problems if you own multiple Z2 devices.<br />- Added a /var directory that exists on your SD card. Some things (like dropbear) expect to find it. Had to fix a script error in the BETA (thanks rkdavis).<br />- Added an /etc/issue file which is displayed at logon time and to ssh connections.<br />REV 2.01<br />- Added a routine asking if you would like to configure your wireless card. This was not possible before as there was no scanning routine and the image lacked the wpa_passphrase utility. You can now scan for and configure your wireless settings entirely from the zipit (wording updated in 2.02).<br />- Added "cp /mnt/sd0/etc/services /etc/services" which gives the ftp command the port numbers it needs to function.<br />- Added "cp -R /mnt/sd0/etc/terminfo /etc", "export TERM=vt102", "export TERMINFO=/etc/terminfo" to help irc understand the screen layout.<br />- Added "ln -s /mnt/sd0/lib/* /lib" to make ncurses libraries usable, and any future libraries that you or I might add.<br />- Added "ln -s /mnt/sd0/share /share" for nmap and anything else that might require a "share" directory to be present to function.<br /><br />OTHER MODIFICATION(S)<br />- Replaced the stock keyboard driver in /modules with one that was created by GPSFan (Ken) from the Zipit Yahoo Group. This removed all of the problems with keys not working, or repeating while typing. The original drivers remain, but have been renamed to *.orig.<br /><br />*STILL* COMING SOON?<br />- A script to download and install "packages" (zip files) using wget, unzip, and a "binary repository" on www.oddree.com. A similar system could provide updates when I provide them.<br />- I have been working on getting GPSFan's sound modules working on the Z2 Shell. The modules load, but the alsa tools do not build properly with a static flag. I am hoping to get this resolved soon. GPSFan has been very helpful in troubleshooting this.<br />- I still want to get an image viewer working. DFBSee 'almost' works.<br /><br />IFAQ (InFrequently Asked Questions)<br />Q. Why are you wasting your time on this? The Z2 Shell is dead!<br />A. It may be 10x more work to get simple things built for it - the Z2 is very lean, and still very useful.<br /><br />Q. Why does nmap (or some other binary) run so slow?<br />A. Because everything has to be built "static" to run on the Z2. That means that where you might normally have hundreds of shared libraries on a linux machine, the Z2 Shell must embed the libraries into each running binary. It makes for some bloated inefficient stuff. But, it works. If you want a better system - start writing it! Otherwise, try to limit the actions of what you are doing. For instance, use an address range or port range with nmap. Don't start long running scans on entire networks. This is a Z2 we're talking about. The resources are pretty lean.<br /><br />Q. How can I add my own binary/package?<br />A. There are several ways to go about this. The method I have used to compile everything is "scratchbox". Scratchbox is a program which let's you cross-compile applications. That means that you can build stuff for an ARM platform, even though you have a regular x86 machine. It can be tricky and complicated. Try reading up on what I have posted at http://www.oddree.com.<br /><br />Q. Why did you *insert snarky comment here*?<br />A. If you find that I did something stupid and inefficient, do let me know. I don't claim to have any expertise in the area of building software. If you have some suggestions on how to improve things or would like to help with the next release of this improved Z2 Shell, email me at ray@oddree.com. I would love to collaborate with some folks who might be more talented than myself.<br /><br />Q. Will you build *insert package name here* for me?<br />A. Probably. Unless you are asking me to build something that has an endless list of dependencies. In which case I will probably tell you to install OpenEmbedded or full fledged Debian. They all ready have all of these packages. I am only expanding upon the old Z2 Shell because I find it lean and useful.<br /></blockquote><br /><br /><span style="font-weight:bold;">WHAT'S NEXT?</span><br />Right now, I am focusing on getting the sound modules working correctly on the Z2 Shell. Long ago, GPSFan developed some kernel modules and utilities for the Z2. He did so for the replacement shell(s) which are able to load dynamic libraries. I have been working to get those same tools to load in a static environment but I have run into some obstacles. Thanks to GPSFan, we determined that the broken alsa-utils I kept creating were actually due to bugs with the alsa-libs and alsa-utils packages themselves. Meanwhile, I have been successful in compiling an older audio tools called "aumix". While it can recognize devices and change sound settings ... I still have no sound! It's a work in progress! If any of you talented Z2 developers are lingering and lurking out there - get your asses in to #zipit and help me. :-)Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com1tag:blogger.com,1999:blog-5653528.post-15575346928914364032009-11-11T13:48:00.004-05:002009-11-11T14:16:34.873-05:00centerim for the Zipit Z2!One of the first things I noticed about the Z2 was that the keyboard driver for the stock application was downright broken. On the top of my list of "things to compile for the shell" was a multi-protocol instant messenger. But that ended up being quite a task.<br /><br />Most people probably would have given up and just installed a new kernel or a new OS to the device such as Debian or OpenEmbedded. But I actually like the stock operating system, and I don't want to break it (despite the lousy keyboard driver). And so ... I have been enslaved to Scratchbox for the past two weeks trying to build this application for the Z2 Shell. There were some pretty deep pitfalls. Namely that MSN and Jabber require a few encryption pieces which didn't like being built into a static binary. But before I get carried away with the details ...<br /><br />Here is the binary if you would like to try it: <a href="http://oddree.com/zipit/centerim-zipitz2.zip">http://oddree.com/zipit/centerim-zipitz2.zip</a><br /><br />Here are the release notes:<br /><pre><span style="font-weight:bold;">** centerim-4.22.8 for the Zipit Z2 by Ray Dios Haque **<br />** <ray@oddree.com> http://www.oddree.com **<br /><br />IM ME! AIM: rayhaque - Yahoo!: ray_haque - ICQ: 12003044 <br /><br />ABOUT<br />This is the centerim instant messenger from http://www.centerim.org<br />compiled for use on the Z2 Shell image for the Zipit Z2. It was a<br />nightmare to build this due to the long running list of dependency<br />libraries and applications. Note that the enourmous file size is<br />the result of building in all of these static libraries. This binary<br />was built with AIM, Yahoo, and ICQ protocols. I removed everything<br />else to keep the size low and my sanity in check. Also note that <br />MSN and Jabber were removed due to their dependency on GPGME which I<br />could not successfully build in a 'static' manner. If you want these<br />protocols added back in, please build it yourself and then tell me<br />how you pulled it off. :-)<br /><br />INSTALL<br />Extract the contents of bin to the bin folder on your SD card. These <br />files will be located in /mnt/sd0/bin after you have booted. You will <br />not need a path to run them as your PATH variable should include this <br />directory. Just run "centerim" to get started (it takes a few seconds<br />to load up).<br /><br />Extract .centerim to the root of your SD card. It will be mapped as<br />/mnt/sd0/.centerim. This folder will house all of your contacts, <br />logs, settings, and perhaps your account passwords if you elect to <br />save them (default).<br /><br />USAGE (to get you started)<br />centerim - starts the messenger.<br />g - will bring up a menu which you can navigate with the circular <br />arrow keys on the zipit. You can set up your accounts here.<br />ESC (smiley key) twice - exits whatever menu you are in.<br />*Read the official documentation at http://www.centerim.org for more*<br /><br />MODIFICATION<br />I noticed that the "servers" being used for the AOL and Yahoo plugins<br />were very old, and didn't answer requests any more. I have changed <br />them to reflect what is used when I run Pidgin. If you can't get AIM<br />or Yahoo to connect or log on, it could be that these servers have <br />been changed again. It could also be that the protocols have been <br />intentionally broken by the vendors to prevent people from running<br />applications like this one. Check www.centerim.org for details.<br /><br />I also set the margins to what I think is an appropriate height and <br />width. If you don't like them, you can change them in the main menu<br />(accessed by pressing 'g'). Any changes you make will be saved to the<br />config file which resides in /mnt/sd0/.centerim.</span></pre><br /><br />Earlier in the week I wrote up a blog post about compiling gettext to give you all some indication of why I have pulled out all my hair. In that post, I pasted my "dependency tree" which I created so that I could keep track of where I was in trying to build a library - which needs a library - which needs ... you get the idea.<br /><br />When I was done, this is what that dependency tree looked like, complete with notes. I am sharing this partly so that you can see what all was involved here - but also in case I am every crazy enough to try and build this again (which could happen if AOL or Yahoo! decide to re-write something with their protocols or logon processes).<br /><br />I am pasting a picture, because the HTML here keeps slaughtering all of my tabs and white-space. If you actually want to get to the text - <a href="http://oddree.com/zipit/centerim-dependencies.txt">I have put it here</a>.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_1Hk90wt7JEw/SvsM5eHj9TI/AAAAAAAAAkA/pxqiuLPomOU/s1600-h/Screenshot-centerim-dependencies+(~-Desktop)+-+gedit.png"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 392px;" src="http://2.bp.blogspot.com/_1Hk90wt7JEw/SvsM5eHj9TI/AAAAAAAAAkA/pxqiuLPomOU/s400/Screenshot-centerim-dependencies+(~-Desktop)+-+gedit.png" border="0" alt=""id="BLOGGER_PHOTO_ID_5402926359437899058" /></a><br /><br />So there you have it - an application that took two weeks of my life away and will probably only be used by me. This will also make it's way into my next "IZ2S" Shell image which should drop in a week or so depending on what else I might build in the near future.<br /><br />HACK ON!Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com1tag:blogger.com,1999:blog-5653528.post-69274074740090943042009-11-11T08:55:00.007-05:002009-11-11T09:42:50.823-05:00Magnify Your Zipit!Mcavity from #zipit on irc.freenode.net has finally found the cure for strained eyes when you are running a terminal console on your Zipit. You just need to magnify it. After doing some shopping around, he found <a href="http://www.geeks.com/details.asp?invtid=60016&cpc=SCH">a site that sells</a> a Gameboy screen magnifier for $0.69.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_1Hk90wt7JEw/SvrDZ14ZqGI/AAAAAAAAAjI/JOWdCsw_0_Q/s1600-h/zipitmagnify-package.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 300px;" src="http://1.bp.blogspot.com/_1Hk90wt7JEw/SvrDZ14ZqGI/AAAAAAAAAjI/JOWdCsw_0_Q/s400/zipitmagnify-package.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5402845551712118882" /></a><br /><br />The magnifier is a flip up - flip down model that you can put up and out of the way when you are not using it. This morning he shared some pictures of the attachment in action.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_1Hk90wt7JEw/SvrDsmjM2lI/AAAAAAAAAjQ/kp8WuBSAclU/s1600-h/zipitmagnify1.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://3.bp.blogspot.com/_1Hk90wt7JEw/SvrDsmjM2lI/AAAAAAAAAjQ/kp8WuBSAclU/s400/zipitmagnify1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5402845874014181970" /></a><br /><br />And here it is in "flipped up mode".<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_1Hk90wt7JEw/SvrDz_lhCfI/AAAAAAAAAjY/US5xDCBmZMk/s1600-h/zipitmagnify2.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://1.bp.blogspot.com/_1Hk90wt7JEw/SvrDz_lhCfI/AAAAAAAAAjY/US5xDCBmZMk/s400/zipitmagnify2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5402846000993864178" /></a><br /><br />Now, with magnified eyes!<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_1Hk90wt7JEw/SvrD79qIWlI/AAAAAAAAAjg/rAvlZWTVaX0/s1600-h/zipitmagnify3.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 300px; height: 400px;" src="http://4.bp.blogspot.com/_1Hk90wt7JEw/SvrD79qIWlI/AAAAAAAAAjg/rAvlZWTVaX0/s400/zipitmagnify3.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5402846137915300434" /></a><br /><br />Another before and after ...<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_1Hk90wt7JEw/SvrNRu-gsWI/AAAAAAAAAjw/IcQQN2v0Hpk/s1600-h/zipitmagnify4.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://3.bp.blogspot.com/_1Hk90wt7JEw/SvrNRu-gsWI/AAAAAAAAAjw/IcQQN2v0Hpk/s400/zipitmagnify4.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5402856407536021858" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_1Hk90wt7JEw/SvrNR7eKAjI/AAAAAAAAAj4/wku_S7vs10Q/s1600-h/zipitmagnify5.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_1Hk90wt7JEw/SvrNR7eKAjI/AAAAAAAAAj4/wku_S7vs10Q/s400/zipitmagnify5.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5402856410889978418" /></a><br /><br />Mcavity says that this works pretty well, especially for having spent less than a buck on the idea. I don't know that he was thinking large enough though. When he shared his ideas about getting one of these, I kind of had a scene from the movie Brazil in my head.<br /><br /><span style="font-weight:bold;">"Has anyone seen Sam Lowry?"</span><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_1Hk90wt7JEw/SvrEopsO5dI/AAAAAAAAAjo/t9jm6Hd_vN0/s1600-h/zipitmagnifybrazil.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 215px;" src="http://1.bp.blogspot.com/_1Hk90wt7JEw/SvrEopsO5dI/AAAAAAAAAjo/t9jm6Hd_vN0/s400/zipitmagnifybrazil.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5402846905649522130" /></a>Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com0tag:blogger.com,1999:blog-5653528.post-25131306222436502062009-11-09T15:36:00.004-05:002009-11-09T16:07:34.527-05:00Fun with the Debian ARM collection + Building with Scratchbox Part IThere have been a few packages that I simply cannot configure for the ARM platform. These past few weeks I have attempted to build some rather hefty applications that have dozens of dependencies. The way things go, I usually get about three or four dependencies deep when I hit one that just won't 'make' without a pile of errors. Being the non-programmer that I am, I do what anyone else would do. And that is to run the error message through Google and then read through whatever mailing list or forum that I come across. At the end of the day, I usually end up with a pile of compiled and installed libraries - which don't do me any good.<br /><br />That is, until I found the <a href="http://packages.debian.org/etch-backports/arm/">Debian ARM ports collection</a>. This collection of software includes packages, source code, and patches. Naturally, just taking a compiled binary and dropping it onto the Z2 is not going to work. It's not that easy! And I don't mind building things from source code ... when the source code builds correctly. That's were the source code and patches come into play.<br /><br />Take for example: gettext. This old GNU utility builds pretty easily on most platforms. But the ARM branch of Debian (and the Zipit Z2 Shell) were built with ulibc. ulibc is a work-alike clone to GNU libc (aka glibc). But there are those little nuances that get under your skin. I found myself beating my head against the wall Saturday afternoon because ulibc doesn't support some sort of program error checking routine. The result is that you cannot build gettext without modifying some code which is well beyond my capabilities. The ulibc folks could probably fix this. But they throw the blame at the glibc folks for supporting a routine which really serves no purpose. While they are busy fighting like a bunch of children (this argument is a couple years old) I still don't have a working gettext!! Surely there are people out there who are smarter than me and who can fix this broken code. There are. And *maybe* they have fixed it. Here is where I go next ...<br /><br />First, I browsed out to Debians Etch package page for the ARM platform. You can find it here: <a href="http://packages.debian.org/etch/arm/">http://packages.debian.org/etch/arm/</a>.<br /><br />After some browsing around (DANGER: the search at the top of the page leads you away from the ARM platform stuff!!) you might find that gettext is available from the "Development" category. Here is the page where the source code was located: <a href="http://packages.debian.org/etch/arm/devel/gettext">http://packages.debian.org/etch/arm/devel/gettext</a>. Take a look at it now. On this page I can see that gettext has some dependencies which are displayed with a red bullet. While it may be lousy that I have another couple dependencies to install - at least I know I can build them without errors! Time, I have. Development skill - not so much. Assume that we have satisfied all of it's needs (ignoring the libc needs, since Scratchbox provides ulibc for us).<br /><br />On the right side of the page there are several links for downloading the chunks of code. There is the package itself (some pre-compiled binaries that "might" work, but probably won't). There is the original source code (the tar-ball has the word "orig" in it's title). Most importantly, there is the "patch file" which will always end with "diff.gz". The patch file is what will correct the source code for us so that we can build it properly for our Z2 ARM platform.<br /><br />If you haven't figured this out yet - it helps to be connected to your Scratchbox development PC in a terminal window, with a browser opened on your regular PC. Then you can copy and paste links directly into scratchbox without weighing it down with whatever else you are running (like the web browser).<br /><br />So, we would start up Scratchbox and fetch the files we need:<br /><code><br />wget http://ftp.de.debian.org/debian/pool/main/g/gettext/gettext_0.16.1.orig.tar.gz<br />tar -xzf gettext_0.16.1.orig.tar.gz<br />cd gettext-0.16.1<br /></code><br />Now before we start building anything, we need to patch the source code for the Debian ARM platform:<br /><code><br />wget http://ftp.de.debian.org/debian/pool/main/g/gettext/gettext_0.16.1-1.diff.gz<br />gzip -d gettext_0.16.1-1.diff.gz<br />patch -p1 < gettext_0.16.1-1.diff<br /></code><br />At this point we would run './configure', and then when it was complete we would run 'make' or 'make install'.<br /><code><br />./configure<br />make<br /></code><br /><br />But it's not that easy. Gettext *STILL* won't install. Even with the patches. Why is that? Well, because the Debian folks didn't use ulibc. They used the full fledged GNU libc, or glibc. You are still going to get those damned error messages. Grrr! But hey, someone else had to have gotten these errors before. And if you start Googling around you will find what fixes it, which are these two pages:<br /><br /><a href="http://osdir.com/ml/linux.lfs.hardened/2007-07/msg00041.html">http://osdir.com/ml/linux.lfs.hardened/2007-07/msg00041.html</a><br /><a hreh="http://www.linuxfromscratch.org/patches/hlfs/svn/gettext-0.17-uClibc-1.patch">http://www.linuxfromscratch.org/patches/hlfs/svn/gettext-0.17-uClibc-1.patch</a><br /><br />Here are what the patches entail. Note that these patches were created for version 0.16.1, which was the version I was attempting to build. If I was using the latest and greatest gettext from the folks at GNU, I might have to do some further digging or investigating. As it was, I was able to read the patch snippets and make sense of them. Here are those snippets.<br /><br /><code><br />--- gettext-0.16.1/gettext-tools/src/msgfmt.c 2006-11-27 17:02:08.000000000<br />+0000<br />+++ gettext-0.16.1/gettext-tools/src/msgfmt.c 2007-07-18 20:12:58.000000000<br />+0000<br />@@ -194,6 +194,7 @@<br />static void read_catalog_file_msgfmt (char *filename,<br />catalog_input_format_ty input_syntax);<br /><br />+void (*error_print_progname) (void) = NULL;<br /><br />int<br />main (int argc, char *argv[])<br /></code><br /><br />And ...<br /><code><br />--- gettext-0.16.1.orig/gettext-tools/gnulib-lib/error.h 2006-11-27 18:14:50.000000000 +0100<br />+++ gettext-0.16.1/gettext-tools/gnulib-lib/error.h 2007-06-20 13:29:32.000000000 +0200<br />@@ -50,7 +50,10 @@ extern void error_at_line (int __status,<br /> /* If NULL, error will flush stdout, then print on stderr the program<br /> name, a colon and a space. Otherwise, error will call this<br /> function without parameters instead. */<br />-extern DLL_VARIABLE void (*error_print_progname) (void);<br />+#ifndef __UCLIBC__<br />+extern DLL_VARIABLE<br />+#endif<br />+void (*error_print_progname) (void);<br /> <br /> /* This variable is incremented each time `error' is called. */<br /> extern DLL_VARIABLE unsigned int error_message_count;<br /></code><br /><br />To apply the snippets you can:<br />1) Create two files, with these snippets and save the files as somefilename.diff. Then run 'patch -p1 < somefilename.diff'.<br />2) <br /><br />Now, since I had all ready started building my application and bombed in the middle somewhere, I should clean everything up and start over.<br /><code><br />make clean<br />make<br /></code><br /><br />Ten minutes or so later, you should be done. And if you didn't get any errors. You can now "make install".<br /><br />That's it! You are one step closer to compiling some giant peice of software. Now, where was I in the list of dependencies when I got stuck trying to solve this? If you get lost or sidetracked, you might never make your way back to where you were when the problems started. For that reason, I often create a running list for myself. If I try to install one program that requires three more, I document them and use simple tab indentation to indicate what is a dependency. Your end result will be a big messy tree that gives you some indication of how many frustrating hours it will take to get this all done. It's also good to document what you have had to do that is "special" to get something to build. If you have to start over later, it might be good to have those notes.<br /><br />Here is the "tree" as it looked when I was building gettext. An "X" indicated that I completed it. Question marks mean that I think something might be required, even though the Debian pages didn't mention it as a requirement. In other words, there were massive build failures and I had to take a guess at what I was missing. Your notes and abbreviations may vary.<br /><br /><PRE><br />centerim (4.22.5-1~bpo40+1) - http://packages.debian.org/etch-backports/arm/centerim<br /> libcurl3-gnutls (>= 7.15.5-1) <br /> libgnutls13 (>= 1.4.0-0) <br /> X zlib1g (>= 1:1.2.1) <br /> libcomerr2 (>= 1.33-3) <br /> libidn11 (>= 0.5.18) <br /> libldap2 - (configured with: CPPFLAGS="-I/usr/local/BerkeleyDB.4.2/include"<br /> LDFLAGS="-L/usr/local/BerkeleyDB.4.2/lib" ./configure,, make depend,, make<br /> install)<br /> X ?? (undocumented requirement) gettext (0.16.1-1) http://osdir.com<br /> /ml/linux.lfs.hardened/2007-07/msg00041.html<br /> ?? (undocumented requirement) intltool - installaed intltool-0.40.6<br /> X XML::Parser<br /> X ?? expat - installed expat-2.0.1<br /> ?? (undocumented requirement) iconv - installed libiconv-1.9.2<br /> X libgnutls13 (>= 1.4.0-0) <br /> X libgpg-error0 (>= 1.4) <br /> X libgcrypt11 (1.2.3-2)<br /> X libgpg-error0 (>= 1.2) <br /> X liblzo1<br /> X libopencdk8 (>= 0.5.8) <br /> X libgcrypt11 (>= 1.2.2) <br /> X libgpg-error0 (>= 1.4) <br /> X zlib1g (>= 1:1.2.1) <br /> X libtasn1-3 (>= 0.3.4) <br /> X zlib1g (>= 1:1.2.1) <br /> X libsasl2-2 (2.1.22.dfsg1-8+etch1) - installed to /usr/local/lib/sasl2<br /> X libdb4.2 (4.2.52+dfsg-2)<br /> X (undocumented requirement) libssl0.9.8 (0.9.8c-4etch9)<br /></PRE>Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com1tag:blogger.com,1999:blog-5653528.post-23422104895758809462009-11-02T12:23:00.005-05:002009-11-02T12:35:45.502-05:00Stupid Zipit Trick - Changing the wallpaper in the Stock OS.I found it odd that with the stock operating system on the Zipit Z2 there is no method of uploading your own wallpaper image. The current method of theming or customizing the Zipit's appearance is to visit the web site and use their online tool. From there you can pick your wallpaper and a theme which will be "delivered" to your device. But why can't I upload my own wallpaper?<br /><br />In a conversation with some folks in #zipit I became aware that you can get your hands into the partition that hosts the stock operating system by booting up in the Z2 Shell and exploring the /mnt/ffs directory. It was there that I found my wallpaper image. It was right in the root, and it was named Neon_glow.jpg.<br /><br />So here is how you can change the wallpaper in the stock OS.<br /><br />1) Boot up your Z2 Shell.<br />2) 'cd /mnt/ffs'<br />3) 'cp yourwallpaper.jpg /mnt/sd0'<br />4) Remove your SD card and insert it into your PC.<br />5) Copy your wallpaper over to your PC and open it with an image editor such as Gimp.<br />6) Open the image of your choosing and resize it to roughly 320x208. Copy this image, and paste it over top of your wallpaper image in your editor. This will ensure that you retain the correct size, color bit depth, etc.<br />7) Save the image to your SD card under the same name as your present wallpaper.<br />8) Boot back to the Z2 Shell.<br />9) 'cp /mnt/sd0/yourwallpaper.jpg /mnt/ffs/'<br />10) 'poweroff', remove your SD card, and boot up the stock OS.<br /><br />Fun right?<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_1Hk90wt7JEw/Su8Xt-H1FzI/AAAAAAAAAjA/IzwI_Q5qhqw/s1600-h/zipitbg2.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://2.bp.blogspot.com/_1Hk90wt7JEw/Su8Xt-H1FzI/AAAAAAAAAjA/IzwI_Q5qhqw/s400/zipitbg2.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5399560556777903922" /></a><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_1Hk90wt7JEw/Su8Xqto9WrI/AAAAAAAAAi4/wlMJaikFB9w/s1600-h/zipitbg1.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 300px;" src="http://1.bp.blogspot.com/_1Hk90wt7JEw/Su8Xqto9WrI/AAAAAAAAAi4/wlMJaikFB9w/s400/zipitbg1.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5399560500813847218" /></a><br /><br />There is no telling how long this wallpaper will "stay put". I would think that eventually the zipit will re-grab the correct wallpaper from their website. But perhaps it will hang around until you replace it by selecting a new one using the web site? Who knows. My current wallpaper has survived several hours and several reboots.<br /><br />Hack on!Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com0tag:blogger.com,1999:blog-5653528.post-33515731583216650822009-11-01T12:55:00.006-05:002009-12-05T16:13:24.154-05:00Introducing the Improved Z2 Shell (aka Shell with benefits)I have been cranking away on my Zipit doing all sorts of neat things with it. I want to first thank all of the folks in #zipit on irc.freenode.net and of course the fine people at Zipit Wireless (namely rossimo). They have all been a tremendous help in putting this new image together! Also - big shouts to <a href="http://hunterdavis.com/">Hunter Davis</a> (the Zipit hacking pioneer).<br /><br />Today I am releasing the first of what will probably be several versions of the Zipit Shell with some added binaries. The Z2 Shell is <a href="http://linux.zipitwireless.com/wiki/Z2Shell">freely available for download</a> from the Zipit Wireless <a href="http://linux.zipitwireless.com">"linux hacking"</a> site. I have taken this shell and added all sorts of interesting new compiled binaries (irc, nmap, etc). I have been amassing a growing collections of add-ons to the generic Shell image and some of them required slight modification to the z2startup.sh script. This script is rather touchy, and screwing is up will render your Shell image useless. Rather than make people download and assemble all of these little code snippets, I decided to create my own "Shell with benefits".<br /><br /><span style="font-weight:bold;">You can download it here: <a href="http://www.oddree.com/zipit/Z2S-v201.zip">http://www.oddree.com/zipit/Z2S-v201.zip</a></span><br /><br />Here is a "demonstration" video which was poorly shot and narrated by myself.<br /><br /><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7379280&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=7379280&server=vimeo.com&show_title=1&show_byline=1&show_portrait=0&color=&fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object><p><a href="http://vimeo.com/7379280">IZ2S - The "Improved" Z2 Shell v2.01 - (aka Shell with benefits)</a> from <a href="http://vimeo.com/user2568401">Ray Haque</a> on <a href="http://vimeo.com">Vimeo</a>.</p><br /><br />Here are the release notes from the included README file ...<br /><blockquote>IZS - The "Improved Z2 Shell" (aka Shell with Benefits) v2.01<br /><br />ABOUT<br />This collection was built by Ray Dios Haque <ray@oddree.com> out of sheer necessity. I wanted something that I could play with that would not effect the stock software that comes on the Z2. The easiest way to do that was to take the Z2 Shell that was built by rossimo from Zipit Wireless and expand upon it. I take no credit for his work. Be it known that if I don't mention adding it, it was something that Ross built for us. By the way, thank you Ross. This image has been a lot of fun for me and I hope that by releasing this image of my own I can give something back to the Zipit community.<br /><br />INSTALL<br />Format your SD card as a FAT or a FAT16 file system. Copy everything from this zip file onto the root of the card (preserving all paths/directories). Insert your SD card into the Zipit and boot it up. Note that you can only boot this image if you are running the Stock OS that came with your Zipit. If you have installed OpenEmbedded or Debian, then you have probably replaced the stock operating system which included a routine to look for the z2script.sh script. For legal purposes, I cannot provide you this stock operating system. Some of the smarter people in the Zipit community might be able to help you restore this OS (see CHAT below).<br /><br />CHAT<br />Come chat with us! There is a thriving (?) community of the worlds best Zipit hackers who hang out in #zipit on irc.freenode.net. You can fire up 'irc' from this very image and come hang out.<br /><br />NEW BINARIES<br />wget, ircii-20090520 (irc), wireless-tools (ifrename, iwconfig, iwevent, iwgetid, iwlist, iwpriv, iwspy), ftp (ftp, /etc/services), unzip (unzipsfx, unzip, funzip), nmap (nmap, *new* ncat), wpa_passphrase, less (lessecho, lesskey), grep<br /><br />NEW LIBS<br />ncurses (libform.a, libform_g.a, libmenu.a, libmenu_g.a, libncurses++.a, libncurses.a libncurses_g.a, libpanel.a, libpanel_g.a)<br /><br />SCRIPT MODIFICATION(S)<br />- Added a routine asking if you would like to configure your wireless card. This was not possible before as there was no scanning routine and the image lacked the wpa_passphrase utility. You can now scan for and configure your wireless settings entirely from the zipit.<br />- Added "cp /mnt/sd0/etc/services /etc/services" which gives the ftp command the port numbers it needs to function.<br />- Added "cp -R /mnt/sd0/etc/terminfo /etc", "export TERM=vt102", "export TERMINFO=/etc/terminfo" to help irc understand the screen layout.<br />- Added "ln -s /mnt/sd0/lib/* /lib" to make ncurses libraries usable, and any future libraries that you or I might add.<br />- Added "ln -s /mnt/sd0/share /share" for nmap and anything else that might require a "share" directory to be present to function.<br /><br />OTHER MODIFICATION(S)<br />- Replaced the stock keyboard driver in /modules with one that was created by Kenyon <cynfab> from the Zipit Yahoo Group. This removed all of the problems with keys not working, or repeating while typing. The original drivers remain, but have been renamed to *.orig.<br /><br />COMING SOON?<br />- A script to download and install "packages" (zip files) using wget, unzip, and a "binary repository" on www.oddree.com. A similar system could provide updates when I provide them.<br />- rkdavis from #zipit would like me to add sound to this. I will as soon as I add something to this collection that needs it!<br />- A terminal based image viewer. I have been messing with a couple, but much of what I have experimented with requires X11 libs. Without X11 on this image that results in some very large and slow moving kludgey code.<br /><br />IFAQ (InFrequently Asked Questions)<br />Q. Why does nmap (or some other binary) run so slow?<br />A. Because everything has to be built "static" to run on the Z2. That means that where you might normally have hundreds of shared libraries on a linux machine, the Z2 Shell must embed the libraries into each running binary. It makes for some bloated inefficient stuff. But, it works. If you want a better system - start writing it! Otherwise, try to limit the actions of what you are doing. For instance, use an address range or port range with nmap. Don't start long running scans on entire networks. This is a Z2 we're talking about. The resources are pretty lean.<br /><br />Q. How can I add my own binary/package?<br />A. There are several ways to go about this. The method I have used to compile everything is "scratchbox". Scratchbox is a program which let's you cross-compile applications. That means that you can build stuff for an ARM platform, even though you have a regular x86 machine. It can be tricky and complicated. Try reading up on what I have posted at http://www.oddree.com.<br /><br />Q. Why did you *insert snarky comment here*?<br />A. If you find that I did something stupid and inefficient, do let me know. I don't claim to have any expertise in the area of building software. If you have some suggestions on how to improve things or would like to help with the next release of this improved Z2 Shell, email me at ray@oddree.com. I would love to collaborate with some folks who might be more talented than myself.<br /><br />Q. Will you build *insert package name here* for me?<br />A. Probably. Unless you are asking me to build something that has an endless list of dependencies. In which case I will probably tell you to install OpenEmbedded or full fledged Debian. They all ready have all of these packages. I am only expanding upon the old Z2 Shell because I find it lean and useful.</blockquote>Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com4tag:blogger.com,1999:blog-5653528.post-26814958143999347212009-10-31T08:40:00.007-04:002009-11-01T14:40:42.171-05:00Review: The Asus 1005HA eee PC (I hate Windows 7 Starter Edition)My wife has never had a new computer. Ever. Two years ago I refurbished a junker from the basement by loading it up with a new motherboard, CPU, etc. Two months later it died. She was so jaded and angry with the whole thing that she didn't want a new one. She just accepted a cash refund for the parts and spent it on other stuff. Since then, she has been through a few more hand-me-downs and at the end of the day she usually sits in bed with a hand-me-down laptop that sounds like <a href="http://en.wikipedia.org/wiki/Chernobyl_disaster">Chernobyl melting down.</a><br /><br />This year I decided to get her a new PC. I wanted it to be something that she could take up to bed with her and keep away from the kids. So I took the logical route and got her a netbook. The guys at the office questioned my choice and reminded me that for another $100-$200 I could get her a full fledged laptop. But my wife has very limited needs when it comes to computing. She really just wants a working browser, and a Word processor to use every now and then. I have had an Asus eee PC for a couple years now and I have really enjoyed it. It was a logical choice to get her the latest in Asus technology.<br /><br />I went with the <a href="http://www.newegg.com/Product/Product.aspx?Item=N82E16834220649">Asus 1005HA</a>. This was a pretty good fit for what she needed. It had a lot of storage for a netbook (250GB), a decent amount of RAM (1GB), and ... a processor. The CPU is nothing to write home about, but let's face it - she won't ever put this to it's full potential. Also - it came in colors. And I was able to get her a pink laptop. <br /><br />There was some risk involved in buying this for her as I bought it on the release date. Nobody had really seen this thing yet other than some douchebag bloggers who were paid or gifted things. And you can't really trust those guys (you know who you are). So I took the plunge and ordered it. I figured that in the worst case scenario that it completely sucked balls - I could return it to NewEgg and trust that I would get my money back. There were other perks buying it from NewEgg. There was a free shipping deal (slow, but free) and also a free gift! The gift is an Asus USB transfer cable which tethers two PC's together. It looks handy. I haven't used it.<br /><br />About a week later, the netbook showed up on my doorstep. I decided I wanted to let my wife be the one to open it rather than try to set everything up before hand. That might have been a bad idea.<br /><br />After unpacking the laptop and admiring it's overall look, we were both pretty impressed. My eee PC is rather boxy and old fashioned looking. My wifes was very sleek, with smoothed out edges and a beveled lower half. The bottom vents are angled in a way that you can sit this thing on your lap without choking it out. The keys are BIG! While I have little "chicklet" keys on mine, this model has a very REAL keyboard. The only thing I would have liked to see changed there is the arrow keys. The up and down arrows share a single key-space. Why?<br /><br />The touchpad uses that new "multi-touch" technology which is pretty neat for scrolling, zooming in and out, etc. It's also flush with the wrist rest. In other words, there is no telling where the touchpad begins and ends because it all runs together in the design. The continous mouse button bar of course tells you where you should begin your multi-touching. Design-wise I was very, very, impressed.<br /><br /><b>Then we booted it.</b><br /><br />Please wait a moment while I climb aboard this soapbox and speak directly to the fucking idiots at Microsoft for a moment. This is for you, <a href="http://en.wikipedia.org/wiki/Steve_Ballmer">Ballmer</a>.<br /><br /><blockquote>WHAT THE FUCK WERE YOU THINKING WITH WINDOWS 7 STARTER EDITION?!?!?! I mean, are you SERIOUS with this SHIT?</blockquote><br /><br />My wife sat down, and booted her laptop for the first time ever. Her first challenge was finding the language we speak. English, was at the bottom of the list. It's frustrating when you are trying to figure out a new mousepad and use the oddly placed arrow keys. It's equally frustrating to watch someone else do it (knowing that if they accidentally pick French, it's going to be a rough night of re installation). After going through the usual series of prompts asking for things like "your name" and timezone, it told us that it was "Initializing". At this point there was no indication of progress. Just a hard drive that buzzed along and looked like it was doing something.<br /><br />40 minutes later. <b>I REPEAT - FORTY FULL MINUTES LATER</b> ... Windows 7 began to boot up for the first time. My wife wasn't there to celebrate this majestic beginning with me because she had other shit to do and had left the room after the first 30 minutes of waiting. What the hell was all that waiting about? It was installing updates. I know now, because the first thing it did (after finishing a very, very, VERY slow boot process) was tell me that Windows had "recently installed updates". It would have been nice to know that instead of just seeing "Initializing" for all that time. But, I digress. I watched patiently while my wife explored things.<br /><br />Despite my best efforts to get my wife to use something other than Internet Explorer, she always goes back to it. It's not so much a problem any more as Internet Explorer 8 has improved quite a bit when it comes to security. She launched Internet Explorer. And waited. Before her eyes, it was as if a team of "paid by the hour" painters showed up and began to paint the display for her. They may have stopped for lunch sometime after the Favorites bar was up.<br /><br />This was not a good sign.<br /><br />She clicked the Start Menu. And waited.<br /><br />She loaded a web page. And waited.<br /><br />Waiting seemed to be what Windows 7 was good at. And every time she clicked on anything (menu bars included) there was a delay while Windows appeared to go out to lunch. At this point I thought something might be horribly wrong. She handed me the reigns.<br /><br />I poked and prodded a few settings. I tried to see if there was Antivirus agent slowing us down (but it was a trial from Trend which hadn't been activated). I thought maybe some add-on software was running amuck in the background. It wasn't. Things were relatively normal. But SLOW. Then I decided to go into the PC Properties and see how Microsoft rated this machines performance on the "5 point scale". There was not yet a rating established, so I clicked the link to run the wizard. But there would be no rating today. I was told "Windows 7 cannot rate this model". Why is that? Afraid of the embarrassing score you are going to get on brand new hardware?<br /><br />Also - there were more updates. My wife always shuts her laptop down. She doesn't need to. But she has that nagging feeling in her mind that if you aren't using it, you should close it down and put it away. I get that. But every time she has shut this laptop down there have been updates. EVERY TIME. This netbook has averaged between 2 and 8 updates every time it's shut off. Microsoft ... WHAT THE FUCK ARE YOU DOING?<br /><br />Then came the final insult.<br /><br />She wanted to change her wallpaper. That seems simple enough. She went out to NFL.com and pulled up one of her favorite players. She right clicked the image and chose "Set as Desktop Background". But then it wasn't there. She did it again. Still no wallpaper. No matter what she chose, she was stuck with an ugly blue Windows logo for her desktop wallpaper. At this point I started search. Lo and behold - YOU CANNOT CHANGE YOUR DESKTOP WALLPAPER IN WINDOWS 7 STARTER EDITION!<br /><br />I thought the whole idea of Windows 7 Starter Edition was that it was crafted for netbooks, right? WRONG. The concept of Windows 7 is that Microsoft gives it to you for a "reduced price" (resulting in a cheaper laptop) but then removes key features that you would want to use. Starting with ... no desktop wallpaper. <br /><br />Remember Windows 95? You could set desktop wallpaper on that. Remember that horrible Windows Me OS? That had desktop wallpaper. Of all the fucking things to TAKE AWAY from a user .... you take away the ability for them to personalize their desktop? FUCK YOU MICROSOFT! Here is a new ad campaign I came up with to replace the terrible commercials that you come up with. It's based on the film Goodfellas and it goes something like "Fuck you, pay me". Want to change your wallpaper? Fuck you, pay us!<br /><br />At this point, I told my wife - "if you want me to reload this with something else, I will gladly do it". We decided to let her go on a few days with what was loaded on it because perhaps we were not giving Windows 7 a chance. After all, I had run a Beta of Windows 7 on my desktop PC and I rather liked it! It actually ran faster than XP had and the features were downright fun.<br /><br />Here I am almost a week later, installing Windows XP.<br /><br />This is where Asus gets a saving grade for selling this netbook. While other manufacturers might not give you the option or the drivers to "downgrade" a brand new netbook like this one - Asus does. A quick visit to their website allowed me to download EVERY required driver that I needed. For that matter, I can even download all the additional software that came preloaded (some of which is very useful, like the "hyperdrive" application for speed/battery usage adjustment).<br /><br />Asus, I love you.<br /><br />While it may not be easy installing XP to a netbook with no CD/DVD ROM drive, or floppy drive, I do have the external drives from the office to help me out in that department. I just happened to loan them out over the weekend in anticipation of what was probably going to be quite the job.<br /><br />It took a couple of hours but I was able to get all of the drivers from the Asus site and merge them with a Windows XP disc I have using the freely available nlite utility. With that disc and an external DVD drive, installing XP was a cinch. Although none of the utilities I downloaded would install. Most of them looked like they were damaged zip files as nothing had an icon associated to it. Perhaps someone uploaded them as "ASCII" files. Who knows. The only utility that I absolutely HAD to have was the Super Hybrid Engine (which turns up the speed for your CPU when you are plugged in, and dumbs it down when unplugged). I found that I could use the utility from an older generation Asus netbook and it worked just fine.<br /><br />Being that things turned out the way they did, it's hard for me to give this netbook a raw score. The hardware is really spectacular. But the operating system that shipped on it is absolute dog shit. People are going to be getting these things for Christmas and I really feel sorry for them. <br /><br />Sometimes I wonder if Microsoft has unknowingly hired moles from Apple who write really bad code, and make really stupid marketing decisions. If so, congratulations Apple. It's working!Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com6tag:blogger.com,1999:blog-5653528.post-5261015460064197882009-10-25T08:08:00.004-04:002009-10-25T08:33:26.522-04:00My Zipit Z2 + IRC on the ZipitMy wife and I bought a Zipit Z2 for my daughter for Christmas. I was tasked with making sure that the device works since we bought it off of eBay. It works! The problem is that in testing it, I attached my profile to the device and activated the free year of text messaging. Woops! I guess it's mine now. Oh well. They are only $50 which is a pretty good deal for how sweet this thing is. So I bought another one. I will leave that new on in the package.<br /><br />Anyway - I was impressed with the software that comes on the Z2. It's more or less for messaging your friends, and maybe listening to some music. Or - both. The screen is exceptionally nice (which is weird because it was built for texting). The built in speaker isn't bad either considering what a tiny little device this thing is. I went onto the Zipit Wireless web site and proceeded to theme my device. It seems backwards. But the idea is that you sit down to a PC with Internet access and log into your account. Then from there, you pick your wallpaper and your favorite streaming radio stations (the list is pretty long, but some of the stations are broken). You can also pick an overall "theme" which consists of different colored borders and transparent backgrounds for your pop-up windows. Niiiiiiice. After picking your theme and such, your device is sent the "go get it" message and downloads and installs everything. Easy! And pretty damned cool.<br /><br />I loved the installed software so much, I really don't want to change it. At least not yet. While I could put the OpenEmbedded OS on it, I would rather keep the stuff that the engineers intended for it to run. At the same time I would like to add the one thing that the Z2 is missing - an IRC client! <br /><br />The problem with the native OS that comes on the device is that the source code for it is not available (and probably never will be). The Zipit Wireless folks are fine with you hacking their device, and they even seem to give you some guidance on how to do it - but their OS is off limits. Most likely because it was developed contractually. So I would like to add some functionality, but not scrap the fun little OS. And it can be done! The Zipit folks have given you the ability to boot directly from the SD card slot on the front of the device. And they have created a few downloadable chunks of executable code to try it out.<br /><br />By using scratchbox from the <a href="http://thepiratebay.org/torrent/5103140/ZipIt_Z2_Development_VirtualBox_(Debian_5___tools)">development VirtualBox</a> that I made I was able to compile the ncurses library, and ircii for the Zipit's ARM processor. When I built them, I added the --prefix=/home/zipitdev/opt to the end of ./configure. That way when it was all done I could merge the built stuff with the <a href="http://linux.zipitwireless.com/wiki/Z2Shell">Zipit Shell</a> image which is freely available. In the end, I merged my stuff with the bootable image stuff. And now all I need to do is to copy it onto a Mini SD card and fire it up.<br /><br />Here's the problem. I have a 2GB Mini SD card, but the SD adapter that it fits into was broken up by the intern at work. No problem, I thought. I will just buy another Mini SD card or a new adapter. But people are running out of stock on these cards and not ordering more. The price has gone up on them. What should be old and obsolete is "rare" and "valued". Geesh. Maybe I will venture out today and see if I can find a card, or a USB adapter from one of the dime stores up the street.<br /><br />In the mean time, if anyone wants to try out my "Z2 shell with links and irc" image you <a href="http://www.oddree.com/zipit/ircii-zipitz2.zip">can download it here</a>. Until I say otherwise, this is untested. So don't be mad at me if it doesn't work.<br /><br />Also ... late into the night I started reading old IRC logs for the #zipit channel on freenode and I could see that there is all ready an ircii client compiled for the Z2 under the Debian image (also widely available). Ooops. :-)Ray_Haquehttp://www.blogger.com/profile/03242556207340780397noreply@blogger.com0