From: John Floren <john@jfloren.net>
To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net>,
inferno-list@vitanuova.com
Subject: Re: [9fans] Announcing Inferno for Android phones
Date: Fri, 16 Sep 2011 19:01:22 -0700 [thread overview]
Message-ID: <CAL4LZyiE9aLLm=pEejCTZQhaEuMOVaD5G24yOneBAhBH_U5uEA@mail.gmail.com> (raw)
In-Reply-To: <CAL4LZyjygEb+_f0_mGp7Xttutfbu=JRB44RUG-6_-m_mcbuctw@mail.gmail.com>
One caveat that I just came across: If you're trying to set up your
phone from Mac OS X, it's quite possible that the case-insensitive
filesystem will bite you. We have two directories at the same level,
named "android" and "Android". If you do an adb push from OS X,
they'll both end up in a directory called "android". Here's how you
can fix it:
(run adb shell)
# mkdir /data/inferno/Android
# mv /data/inferno/android/arm /data/inferno/Android/
There may be other problems lurking, but I'm pretty sure all of the
stuff Inferno needs is all lowercase.
John
On Fri, Sep 16, 2011 at 3:23 PM, John Floren <john@jfloren.net> 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)!
>
next prev parent reply other threads:[~2011-09-17 2:01 UTC|newest]
Thread overview: 80+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-09-16 22:23 John Floren
2011-09-16 22:30 ` Nemo
2011-09-16 22:32 ` andrey mirtchovski
2011-09-16 22:39 ` Mathieu Lonjaret
2011-09-16 22:43 ` John Floren
2011-09-17 10:58 ` Richard Miller
2011-09-17 12:24 ` Mathieu Lonjaret
2011-09-16 22:41 ` Paul Lalonde
2011-09-16 22:46 ` andrey mirtchovski
2011-09-16 22:49 ` Nemo
2011-09-16 22:49 ` John Floren
2011-09-17 18:02 ` John Floren
2011-09-17 18:26 ` Joel Armstrong
2011-09-21 22:06 ` Ethan Grammatikidis
2011-09-21 22:11 ` ron minnich
2011-09-21 22:14 ` John Floren
2011-09-22 7:38 ` Bruce Ellis
2011-09-22 9:59 ` Ethan Grammatikidis
2011-09-16 23:34 ` Bruce Ellis
2011-09-16 23:38 ` ron minnich
2011-09-16 23:59 ` Joseph Stewart
2011-09-17 2:01 ` John Floren [this message]
2011-09-17 4:24 ` ron minnich
2011-09-17 4:35 ` John Floren
2011-09-17 4:43 ` Skip Tavakkolian
2011-09-17 5:48 ` ron minnich
2011-09-17 15:36 ` Ethan Grammatikidis
2011-09-17 16:29 ` ron minnich
2011-09-17 17:46 ` Wes Kussmaul
2011-09-17 18:01 ` John Floren
2011-09-17 18:23 ` Joel Armstrong
2011-09-17 20:26 ` ron minnich
2011-09-17 21:14 ` Joel Armstrong
2011-09-17 21:15 ` Joel Armstrong
2011-09-17 21:25 ` ron minnich
2011-09-17 21:53 ` ron minnich
2011-09-17 22:05 ` ron minnich
2011-09-17 22:56 ` andrey mirtchovski
2011-09-19 17:25 ` John Floren
2011-09-19 17:29 ` ron minnich
2011-09-19 17:29 ` ron minnich
2011-09-19 21:49 ` Bruce Ellis
2011-09-19 22:09 ` Steve Simon
2011-09-19 22:13 ` Joseph Stewart
2011-09-19 22:19 ` hiro
2011-09-19 22:48 ` John Floren
2011-09-22 10:11 ` Ethan Grammatikidis
2011-09-22 12:30 ` Bruce Ellis
2011-09-23 13:30 ` Ethan Grammatikidis
2011-09-23 13:40 ` Richard Miller
2011-09-23 13:48 ` erik quanstrom
2011-09-23 13:51 ` Mathieu Lonjaret
2011-09-23 23:14 ` Bruce Ellis
2011-09-26 7:26 ` Tharaneedharan Vilwanathan
2011-09-26 10:02 ` Ethan Grammatikidis
2011-09-26 14:52 ` John Floren
2011-09-23 13:55 ` Brian L. Stuart
2011-09-23 14:05 ` Gorka Guardiola
2011-09-23 14:54 ` Jeff Sickel
2011-09-27 23:05 ` John Floren
2011-11-04 21:45 ` Lyndon Nerenberg (VE6BBM/VE7TFX)
2011-11-04 21:55 ` John Floren
2011-11-04 22:43 ` Masen Marshall
2011-09-17 2:24 paul.a.lalonde
2011-09-17 2:35 ` Devon H. O'Dell
2011-09-17 2:40 ` John Floren
2011-09-17 2:46 ` John Floren
2011-09-17 2:48 ` Bruce Ellis
2011-09-17 3:37 ` ron minnich
2011-09-17 3:40 ` ron minnich
2011-09-17 3:55 ` Bruce Ellis
2011-09-17 2:46 ` Bruce Ellis
2011-09-28 14:43 252608386
2011-09-28 14:56 ` ron minnich
2011-09-28 15:11 ` John Floren
2011-09-28 15:31 ` JS enter
2011-09-28 19:53 ` John Floren
2011-09-28 19:57 ` John Floren
2011-09-29 23:02 ` Bruce Ellis
2011-09-30 0:15 ` Ethan Grammatikidis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAL4LZyiE9aLLm=pEejCTZQhaEuMOVaD5G24yOneBAhBH_U5uEA@mail.gmail.com' \
--to=john@jfloren.net \
--cc=9fans@9fans.net \
--cc=inferno-list@vitanuova.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).