Posted by planetbeing on under raw hardware, e care, bad blocks, locati, ftl, data structures, slew, gadget, amount of time, algorithms, kernel, sectors, ace, yaffs, proposal, benefit, linux |

We've made some progress on the USB gadget driver for Linux, and we're now running a generic serial gadget for communication. This implementation is important because USB is now a lot less laggy and things like ethernet over USB, etc., can eventually be supported, easing access.
We've also got pretty far with porting the NAND driver to Linux. Most of the read support is now there, and we've isolated the routines in the iPhone kernel where the raw hardware write occurs. CPICH and c1de0x are working on reversing it. Hopefully, it will be analogous enough to reads that it won't take a huge amount of time to work out.
This is different from reversing their FTL, however, which is a complicated slew of data structures, merge buffers and other exotic algorithms that take care of evenly distributing writes throughout the device and also making writes take less time.
I think reversing all of that would take too much time and effort. Instead, my proposal is to just reverse the hardware NAND writes. Instead of using a partition, we would have a loop-mounted root filesystem (similar to how Wubi is setup), with the root filesystem being a file on the Media partition. Since there's a non-empty file at that location, the FTL system, whatever it is, must create a one-to-one mapping from logical sectors to physical NAND pages. We can already read the mapping it creates (we have already reversed the read-side FTL code), and so all we have to do to alter the data is to write to the same pages we would've read from. Of course, this means that wear-leveling and bad block handling is not performed. However, if we use a filesystem that's aware of bad blocks and can wear-level (YAFFS or JFFS2), then it amounts to the same thing. The wear-leveling would then take place over the particular physical pages belonging to the rootfs image, rather than the entirety of the NAND. This would make the physical pages belonging to the rootfs image wear out a little faster than the rest of the NAND, but the actual effect of this should be inconsequential.
The additional benefit of this setup is that there's no repartitioning required, so setup is cinch. See
this wiki document for specific proposed implementation details.
Tagi: raw hardware, e care, bad blocks, locati, ftl, data structures, slew, gadget, amount of time, algorithms, kernel, sectors, ace, yaffs, proposal, benefit, linux
Posted by planetbeing on under iphe, th project, technical posts, openmoko, o reilly, vitriol, device drivers, ftl, food for thought, waxing, amount of time, team members, sens, operating system, radar, fellow, developers, linux, blog |
This is a post I wrote a long time ago, when this blog was first conceived. I decided to hold off on posting it, because I thought it'd be better to do some technical posts before waxing philosophically. I think it is still appropriate, so as we work on reverse engineering the NAND FTL, here's some food for thought.Porting Linux to the iPhone is an arduous project. We will be trying to develop an entire suite of device drivers for undocumented hardware and then attempt to run a full-fledged operating system on it.
This thread speculates "10 days" or "3 hours" as the amount of time it'd take to get Linux up and running on the iPhone. Perhaps this figure would be accurate on a x86 platform, or other platforms with hardware for which device drivers are already written or for which at least documentation is available, but we have no such luck on the iPhone.
This comment on a
O'Reilly Radar article about NerveGas's
iPhone Open Application Development book says, with perhaps a little too much vitriol for my taste, that developers should not waste time on the iPhone, a closed platform, and spend time more productively on OpenMoko or Android: truly open platforms. Apple should thus be punished for not making the iPhone open. His point is well-taken though. Reverse engineering Apple's code is inefficient and ought to be unnecessary. Why do I bother when I can just develop on an open platform instead with no such wasted effort?
Finally, I have faced skepticism even from my fellow Dev Team members when I first talked about this project. The iPhone already has a perfectly serviceable operating system that we can develop on. Why does it need another one? Sure, Linux might be cool, but what practical use would it have? How does it justify the tremendous amount of effort that would need to be put in?
So. Why do I bother? Why should we bother?
Part of the answer is that I don't choose which platform I hack on based on how hackable it is. I choose it based on how much I like it. I don't own an OpenMoko device; it simply doesn't look as polished as the iPhone, and support is lacking for it. It wouldn't make sense to buy it to use it, only to buy it to hack on it. While this may work for other people, it's simply not the way a (relatively) starving college student does things. As for the Android, I'm not too convinced about how amazing it will be from the videos I've seen and besides: It doesn't even exist yet! In general, the more people use a device, the more hackers use it, and thus the more it is hacked on. Usability frankly trumps hackability.
The other part of the answer is that iPhone Linux will actually be of tremendous value. There will be no more need to port applications over: The applications already run on the iPhone! Also, with a familiar kernel, we can do all kinds of things I've wanted to do: doing security related work with the wi-fi for example. Plus, knowledge that we are gaining/will have gained about the iPhone hardware will be of incredible practical value to the homebrew iPhone community. We've always wanted to be able to plug in the iPhone as a simple USB mass storage device. With USB and NAND FTL drivers, we can actually implement this ourselves.
Perhaps my most important point is how iPhone Linux will affect the various open platforms in development. The iPhone has revolutionized the way the market thinks about mobile computing and now several mobile platforms are in development: OpenMoko, Google's Android, and Mobile Ubuntu (thought the last is not targeted for phones). All of these projects are based on Linux, and "based on Linux" means that, by definition, they "use the Linux kernel" and the Linux kernel is exactly what we're porting. As long as the kernel works, the rest of the operating system will barely need to be touched at all! (fine print: provided that the working configuration of the kernel can support all the features the userland requires).
Imagine OpenMoko on the iPhone. Android on the iPhone. Ubuntu Mobile on the iPhone. Consumers will have choice, and not some Linux-hippie idealistic choice-for-the-sake-of-choice choice: All of these platforms have major momentum behind them and it is very possible they will end up being better than the iPhone's platform (have better UI, more application support, etc.). Also, imagine what it will mean for the developers of these platforms: A ready userbase of millions of users. If many people can already install and try out one of these platforms, it'll be far easier to attract users to buy the hardware, and developers to develop for the platform. Thus, I do not believe we are harming the open platforms by developing on the iPhone. In fact, if all goes well, we will be allowing them to conquer the Apple iPhone.
Of course, I know the reply to all of this. "That sounds good, now show me the code." It's important not to overpromise and underdeliver, so I will be very cautious. What I have just said is the
hope, the best possible outcome. But just having that as a possibility is tantalizing enough to justify working on this project. However, to be honest, my original justification (as stated to the dev team) for working on iPhone Linux was "for Skillz.app", our facetious term for working on something merely to hone one's skill or to satisfy one's curiosity. But honestly, what did you expect from a "hacker"? :)
We have already made more progress with openiboot than many people have anticipated would ever happen. Reverse engineering drivers is a laborious process, but one that doesn't require the luck of finding a security vulnerability: It just happens slowly and steadily, rather than unpredictably. Presumably after the drivers are in place, the Linux kernel will "just work" without too many other changes, since it is designed to be relatively portable, so we ought not to have many problems. After the kernel works, I hope enough developers will become interested and a nice userland can be developed without too much trouble. The userland work is much less risky from a time-investment point of view.
Tagi: iphe, th project, technical posts, openmoko, o reilly, vitriol, device drivers, ftl, food for thought, waxing, amount of time, team members, sens, operating system, radar, fellow, developers, linux, blog
Posted by on under iphe, amount of time, gadgets |

If you've spent any amount of time trying to watch video on a portable device like the iPhone, you know holding it in your hands gets old fast. That's where the GoGoStand comes in. Rather than...
Tagi: iphe, amount of time, gadgets
Posted by on under youtube videos, video booth, bob villa, almost famous, sears, media sources, vegas hotel, feb 2, chr, craftsman, woodworking, amount of time, hotel room, ibs, few days, amp, nbsp, marshall, las vegas, wood worker |


The days of waiting any amount of time to see what is new and hot from a trade show appear to be over. Today is the last day of the 2010 IBS show and already there are plenty of YouTube videos, twitter feeds (#ibs2010) and blog posts from the show. Of course there will be plenty more to come but this is a good start. We were going to attend but had to choose between this show and World of Concrete Feb. 2-5, which we will be attending in 12 days, stay tuned.
Wood Worker’s Journal (YouTube) – One of our favorite woodworking personalities Chris Marshall, is currently on hand at the 2010 show and already has a dozen plus videos up on YouTube. Get more info and read recent blog posts from Chris Marshall.
Bob Villa, On The Level (Blog) – I’m sure Mr. Villa himself is held up in a Las Vegas hotel room tweeting and trying to knock these blog posts out each night after the show before making his way onto the strip for a little R&R… Ok maybe not but “On The Level” still offers a nice look at some of the new innovative consumer products from the show.
IBS2010 Video Booth (YouTube) – On the IBS2010 home page they have a link to YouTube (bottom of every page), apparently at the show they set up an almost live Video Booth where you can go in and talk about the show and be almost famous.
Sears Blue Crew (YouTube) – If you are interested in some of the new craftsman products these guys have several videos up already from the “Garage of Innovations” set up just outside the convention center.
These are just a few of the different online media sources for info from the 2010 International Builders Show and many more will be popping up over the next few days.
Tagi: youtube videos, video booth, bob villa, almost famous, sears, media sources, vegas hotel, feb 2, chr, craftsman, woodworking, amount of time, hotel room, ibs, few days, amp, nbsp, marshall, las vegas, wood worker
Posted by on under paper shredder, cooking up a storm, concept kitchen, steel ball, compactor, earthworm, compacts, home cooking, leftovers, waste water, mantra, solid waste, ants, bricks, vicinity, amount of time, nbsp, trash |

If, like us, you've spent a fair amount of time in a
kitchen cooking up a storm, then you're probably aware of one of the major drawbacks of major home-cooking... it generates a ton of waste. That's right -- up to 85 or 90 percent of a family's trash can be generated within the vicinity of the kitchen. Faltazi's concept kitchen should be interesting for just that reason -- Ekokook is designed to generate essentially zero waste. The solid waste -- things like glass -- are ground down using a hand-activated steel ball, and there's also a manual paper shredder which compacts the leftovers into small bricks. Water is stored, filtered, and reused, with waste water being used to water plants. Oh, and there's also an
eco-friendly earthworm compactor in a drawer! Does it get any better? Well, there's a video after the break to check out.
Continue reading Ekokook concept kitchen's mantra: waste not, want not
Ekokook concept kitchen's mantra: waste not, want not originally appeared on Engadget on Tue, 02 Feb 2010 18:14:00 EST. Please see our terms for use of feeds.
Permalink |
Yanko Design |
Email this |
Comments



Tagi: paper shredder, cooking up a storm, concept kitchen, steel ball, compactor, earthworm, compacts, home cooking, leftovers, waste water, mantra, solid waste, ants, bricks, vicinity, amount of time, nbsp, trash