From mboxrd@z Thu Jan 1 00:00:00 1970 MIME-Version: 1.0 In-Reply-To: References: <4e7404bb.270b650a.3d87.ffffc50c@mx.google.com> Date: Sat, 17 Sep 2011 12:48:47 +1000 Message-ID: From: Bruce Ellis To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: Re: [9fans] Announcing Inferno for Android phones Topicbox-Message-UUID: 253c76f2-ead7-11e9-9d60-3106f5b1d025 did you stick with tk (seems so). a sad relic. brucee On 17 September 2011 12:46, John Floren wrote: > By the way, it's pretty easy to try things out while the phone is > running. Just push over /data/inferno, then you should be able to do > something like this: > > % stop zygote # this kills off the java UI > % /data/inferno/Android/arm/bin/emu-g > ; wm/wm > > The README.android file should tell you all you need to know about > managing the radio. Oh, and if you use the network, it's a good idea > to do a "setprop net.dns1 8.8.8.8" =C2=A0(at the Android prompt, not in > Inferno) first, otherwise DNS doesn't seem to work right. When you're > sick of testing inferno, just Ctrl-C the process and run "start > zygote". > > I've found a few things that need to be fixed and will be working on > them Monday. However, if you just want to get it running on your own > phone, you should be able to do it. You'll need to have the full > Android build environment set up, not just the SDK, and you'll need to > have adb in your path. You may also need to put "agcc" (provided in > the repo) into your path in order to actually build Inferno. I believe > README.android has a summary of how to build Inferno yourself down at > the bottom. > > > John > > On Fri, Sep 16, 2011 at 7:40 PM, John Floren wrote: >> We've only had one device with an actual radio in it, so we haven't >> been able to test on anything but the Nexus S, but there's probably a >> total of 100 lines of device-specific code. Mostly, you have to figure >> out: >> >> 1. The screen dimensions and the color depth >> 2. Which devices are for the touchscreen, which are for the buttons >> >> emu/port/main.c and emu/Android/screen.c contain all the >> device-specific code, I think. If there is any justice, the radio >> interface will be the same--we talk to "rild", the radio daemon, >> rather than directly with the hardware. >> >> John >> >> On Fri, Sep 16, 2011 at 7:35 PM, Devon H. O'Dell = wrote: >>> How difficult is it to get specs and port this to other android devices= ? I'd >>> love to run this on my motorola droid if I could get all the radios wor= king. >>> >>> --dho (via said droid) >>> >>> On Sep 16, 2011 10:25 PM, "paul.a.lalonde@gmail.com" >>> wrote: >>>> For all these plan9ish things on OSX I run a case-sensitive file-syste= m in >>>> a file; just use the Disk Utility to make one and then mount it. I lin= k mine >>>> into my home directory and use it for all case-sensitive apps. >>>> Paul >>>> >>>> Sent from my HTC Inspire=E2=84=A2 4G on AT&T >>>> >>>> ----- Reply message ----- >>>> From: "John Floren" >>>> To: "Fans of the OS Plan 9 from Bell Labs" <9fans@9fans.net>, >>>> >>>> Subject: [9fans] Announcing Inferno for Android phones >>>> Date: Fri, Sep 16, 2011 7:01 pm >>>> >>>> >>>> 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 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 Norther= n >>>>> 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 d= o >>>>> many common tasks: >>>>> >>>>> =C2=A0 =C2=A0(these keys are for the Nexus S, different bindings are = used for >>>>> the Nook, which has different keys available) >>>>> =C2=A0 =C2=A0* Back: Close the current window >>>>> =C2=A0 =C2=A0* Menu: Toggle the onscreen keyboard >>>>> =C2=A0 =C2=A0* Home: Minimize the current window >>>>> =C2=A0 =C2=A0* Power: Turn off the screen >>>>> =C2=A0 =C2=A0* Power+Volume Up: Open the screen brightness widget >>>>> =C2=A0 =C2=A0* Power+Volume Down: Turn off the phone >>>>> =C2=A0 =C2=A0* Power+Home: Restart Inferno >>>>> >>>>> Installation is reasonably simple. You'll need the Android SDK >>>>> (http://developer.android.com/sdk/index.html), with the platform-tool= s >>>>> package installed for the adb and fastboot utilities. We also strongl= y >>>>> 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 thi= s >>>>> 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 fo= r >>>>> years. Our summer interns, Joel Armstrong and Joshua Landgraf, did th= e >>>>> 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)! >>>>> >>>> >>> >> > > --=20 Don't meddle in the mouth -- MVS (0416935147, +1-513-3BRUCEE)