128 lines · 5.5 KB · Text
RawDownload
==Youtube video== A short video demonstrating a bit of what can be done with the Hellaphone: [[http://www.youtube.com/watch?v=dF_-jQc53jw|Youtube]] ==Announcement== We would like to announce the availability of Inferno for Androidphones. Because our slogan is "If it ain't broke, break it", wedecided to replace the Java stack on Android phones withInferno. We've dubbed it the Hellaphone--it was originally Hellphone,to keep with the Inferno theme, but then we realized we're in NorthernCalifornia and the change was obvious. The Hellaphone runs Inferno directly on top of the basic Linux layerprovided by Android. We do not even allow the Java system tostart. Instead, emu draws directly to the Linux framebuffer (thanks,Andrey, for the initial code!) and treats the touchscreen like aone-button mouse. Because the Java environment doesn't start, it onlytakes about 10 seconds to go from power off to a fully-booted Infernoenvironment. As of today, we have Inferno running on the Nexus S and the NookColor. It should also run on the Android emulator, but we haven'ttested that in a long time. The cell radio is supported, at least onthe Nexus S (the only actual phone we've had), so you can make phonecalls, send texts, and use the data network. The Inferno window manager has been re-worked with cell phone use inmind. Windows are automatically sized to fill the whole screen. Themenu has been moved to the top and the menu items have been madesignificantly larger. Physical buttons on the phone are now used to domany common tasks:    (these keys are for the Nexus S, different bindings are used forthe 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-toolspackage installed for the adb and fastboot utilities. We also stronglyrecommend installing CyanogenMod on your phone beforeproceeding--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 theSDK and try running "adb" to be sure. Download the tarball fromhttp://bitbucket.org/floren/inferno/downloads/hellaphone.tgz andunpack it in your root. You should end up with a /data/infernodirectory (we put it there because of the Inferno buildprocess). Then, go to the /data/inferno/android directory and runthe Reflash-Nexus-S.sh script (assuming you have a Nexus S. RunReflash-Nook-Color.sh if you have a Nook). This willautomatically set up the phone to boot into either Inferno or theregular Java environment--during bootup, the screen will go solidwhite; if you touch the screen at this point, it will boot intothe regular Android environment, otherwise it will timeout and goto Inferno. However, at this point you're not yet ready to bootinto Inferno, so reboot the phone and touch the screen to go intothe regular Android UI. The final task is to run the command "cd/data/inferno; ./parallel-push.sh". Reboot, let it boot intoInferno, and you're ready to go. You can also clone the repository(http://bitbucket.org/floren/inferno/) and build it yourself, but thisis a significant effort. I do not recommend it if you wish to simplytry the system, but if you want to do development you should get therepository. Disclaimer: If you break your phone, it's not our fault. Don't emailus, don't come knocking on our door, and don't call us--oh wait, youwon't be able to do that anyway, your phone is broken! Credit where credit is due: Ron Minnich came up with the initialidea--we've been kicking the idea of a Plan 9/Inferno phone around foryears. Our summer interns, Joel Armstrong and Joshua Landgraf, did thelion's share of the work of making Inferno into a usable cell phoneOS--no small feat, considering that neither had any Limbo or Infernoexperience 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 generallyfigured out how to make Inferno and the Android kernel coexistpeacefully. Andy Jones, another intern, also did some very early workwith Android that helped us figure out the Android init process andhow to build for Android. I took care of getting Inferno running onthe phone in the first place and have been adding things occasionallysince then. We would also like to thank Andrey Mirtchovski forproviding the OLPC framebuffer code (which ported to the Androidphones relatively easily), and of course Charles Forsyth for keepingthe Inferno torch lit all these years (and helping me figure out somepuzzling problems throughout the summer)! ==More Info== [[CompilingInferno|Compiling Inferno]] [[HellaphoneManual|Hellaphone Manual]] ==Screenshots== Freshly-booted Inferno: {{screenshots/justbooted.png|Freshly booted Inferno}} The application selection menu: {{screenshots/menu.png|Menu}} The SMS application, displaying current conversations: {{screenshots/sms-convs.png|SMS conversations}} The SMS application, composing a message: {{screenshots/sms-compose.png|SMS conversations}} The dialer application: {{screenshots/dialer.png|Dialer}} The web browser, Charon: {{screenshots/charon.png|Charon}}