From mboxrd@z Thu Jan 1 00:00:00 1970 References: In-Reply-To: Mime-Version: 1.0 (iPhone Mail 8L1) Content-Type: text/plain; charset=us-ascii Message-Id: <6F4E20D7-A4AA-44CE-BA77-B3D926A1818D@gmail.com> Content-Transfer-Encoding: 7bit From: Nemo Date: Sat, 17 Sep 2011 00:30:57 +0200 To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Subject: Re: [9fans] Announcing Inferno for Android phones Topicbox-Message-UUID: 248afd28-ead7-11e9-9d60-3106f5b1d025 impressive :) On Sep 17, 2011, at 12:23 AM, John Floren wrote: > We would like to announce the availability of Inferno for Android > phones. Because our slogan is "If it ain't broke, break it", we > decided to replace the Java stack on Android phones with > Inferno. We've dubbed it the Hellaphone--it was originally Hellphone, > to keep with the Inferno theme, but then we realized we're in Northern > California and the change was obvious. > > The Hellaphone runs Inferno directly on top of the basic Linux layer > provided by Android. We do not even allow the Java system to > start. Instead, emu draws directly to the Linux framebuffer (thanks, > Andrey, for the initial code!) and treats the touchscreen like a > one-button mouse. Because the Java environment doesn't start, it only > takes about 10 seconds to go from power off to a fully-booted Inferno > environment. > > As of today, we have Inferno running on the Nexus S and the Nook > Color. It should also run on the Android emulator, but we haven't > tested that in a long time. The cell radio is supported, at least on > the Nexus S (the only actual phone we've had), so you can make phone > calls, send texts, and use the data network. > > The Inferno window manager has been re-worked with cell phone use in > mind. Windows are automatically sized to fill the whole screen. The > menu has been moved to the top and the menu items have been made > significantly larger. Physical buttons on the phone are now used to do > many common tasks: > > (these keys are for the Nexus S, different bindings are used for > the Nook, which has different keys available) > * Back: Close the current window > * Menu: Toggle the onscreen keyboard > * Home: Minimize the current window > * Power: Turn off the screen > * Power+Volume Up: Open the screen brightness widget > * Power+Volume Down: Turn off the phone > * Power+Home: Restart Inferno > > Installation is reasonably simple. You'll need the Android SDK > (http://developer.android.com/sdk/index.html), with the platform-tools > package installed for the adb and fastboot utilities. We also strongly > recommend installing CyanogenMod on your phone before > proceeding--that's what we use to test. > > First, make absolutely sure you have the "adb" and "fastboot" > commands in your path--see the previous paragraph regarding the > SDK and try running "adb" to be sure. Download the tarball from > http://bitbucket.org/floren/inferno/downloads/hellaphone.tgz and > unpack it in your root. You should end up with a /data/inferno > directory (we put it there because of the Inferno build > process). Then, go to the /data/inferno/android directory and run > the Reflash-Nexus-S.sh script (assuming you have a Nexus S. Run > Reflash-Nook-Color.sh if you have a Nook). This will > automatically set up the phone to boot into either Inferno or the > regular Java environment--during bootup, the screen will go solid > white; if you touch the screen at this point, it will boot into > the regular Android environment, otherwise it will timeout and go > to Inferno. However, at this point you're not yet ready to boot > into Inferno, so reboot the phone and touch the screen to go into > the regular Android UI. The final task is to run the command "cd > /data/inferno; ./parallel-push.sh". Reboot, let it boot into > Inferno, and you're ready to go. > > You can also clone the repository > (http://bitbucket.org/floren/inferno/) and build it yourself, but this > is a significant effort. I do not recommend it if you wish to simply > try the system, but if you want to do development you should get the > repository. > > Disclaimer: If you break your phone, it's not our fault. Don't email > us, don't come knocking on our door, and don't call us--oh wait, you > won't be able to do that anyway, your phone is broken! > > Credit where credit is due: Ron Minnich came up with the initial > idea--we've been kicking the idea of a Plan 9/Inferno phone around for > years. Our summer interns, Joel Armstrong and Joshua Landgraf, did the > lion's share of the work of making Inferno into a usable cell phone > OS--no small feat, considering that neither had any Limbo or Inferno > experience before the start of the summer! They re-wrote the UI, > puzzled out the undocumented cell radio interface, figured out audio, > worked to make Inferno more portable across phones, and generally > figured out how to make Inferno and the Android kernel coexist > peacefully. Andy Jones, another intern, also did some very early work > with Android that helped us figure out the Android init process and > how to build for Android. I took care of getting Inferno running on > the phone in the first place and have been adding things occasionally > since then. We would also like to thank Andrey Mirtchovski for > providing the OLPC framebuffer code (which ported to the Android > phones relatively easily), and of course Charles Forsyth for keeping > the Inferno torch lit all these years (and helping me figure out some > puzzling problems throughout the summer)! >