Chris Double | 22 May 2012 23:09
Picon
Gravatar

Inferno on Android

I'm trying to install the Android Inferno port on a Nexus S but I'm
having issues when the phone reboots. The 'picker' application doesn't
run - I just get stuck on the 'Google' logo screen.

If I 'adb shell' into the phone and then start the inferno service
manually it runs. I'm thinking there might be some incompatibility
with the init.rc script that the inferno install puts on the device vs
the one that's already on there. Is there a 'diff' of the changes that
init.rc script made against the original init.rc it was based on? The
one on my device is quite different.

I've tried installing over a stock 4.0.3 android ROM, CyanogenMod 7
and even Mozilla's B2G. For anyone who has it working, what version of
Android did you start with? Should I be using a Gingerbread based
Android?

When I start emu-g and wm/wm manually it runs, and a mouse cursor
moves around when I touch the screen. No button presses work and the
capacitive 'hardware' buttons on the bottom of the phone don't work.
Is this related to possibly running a different android version?

For building the Android port - I take it I need to have a build of
the actual Android source, not just the SDK/NDK? If so, what version
should I use?

--

-- 
http://www.bluishcoder.co.nz

John Floren | 22 May 2012 23:59
Favicon

Re: Inferno on Android

We built on top of Gingerbread, no idea how it works with ICS.
I wouldn't be surprised if button problems are related.

On May 22, 2012 3:29 PM, "Chris Double" <chris.double-AmvDL87l6zFo8maWJSynUg@public.gmane.orgz> wrote:
I'm trying to install the Android Inferno port on a Nexus S but I'm
having issues when the phone reboots. The 'picker' application doesn't
run - I just get stuck on the 'Google' logo screen.

If I 'adb shell' into the phone and then start the inferno service
manually it runs. I'm thinking there might be some incompatibility
with the init.rc script that the inferno install puts on the device vs
the one that's already on there. Is there a 'diff' of the changes that
init.rc script made against the original init.rc it was based on? The
one on my device is quite different.

I've tried installing over a stock 4.0.3 android ROM, CyanogenMod 7
and even Mozilla's B2G. For anyone who has it working, what version of
Android did you start with? Should I be using a Gingerbread based
Android?

When I start emu-g and wm/wm manually it runs, and a mouse cursor
moves around when I touch the screen. No button presses work and the
capacitive 'hardware' buttons on the bottom of the phone don't work.
Is this related to possibly running a different android version?

For building the Android port - I take it I need to have a build of
the actual Android source, not just the SDK/NDK? If so, what version
should I use?

--
http://www.bluishcoder.co.nz
Chris Double | 23 May 2012 00:56
Picon
Gravatar

Re: Inferno on Android

On Wed, May 23, 2012 at 9:59 AM, John Floren <john@...> wrote:
> We built on top of Gingerbread, no idea how it works with ICS.
> I wouldn't be surprised if button problems are related.

Ok thanks, I'll try with a Gingerbread ROM base.

--

-- 
http://www.bluishcoder.co.nz

Chris Double | 23 May 2012 02:48
Picon
Gravatar

Re: Inferno on Android

On Wed, May 23, 2012 at 10:56 AM, Chris Double
<chris.double@...> wrote:
>
> Ok thanks, I'll try with a Gingerbread ROM base.

I installed a Gingerbread ROM and was able to get Inferno installed
and running. The touch screen works and it's pretty snappy!

There's some issues, probably due to a mismatch between the ROM I'm
using and what the port was based on. The touchscreen is slightly out
and the capacative hardware buttons just act as touchscreen pushes at
the bottom of the screen. So I couldn't test using the keyboard in the
apps since I couldn't bring them up.

I also had to start the android 'media' service as there was a log
complaining about 'audioflinger' not running that blocked emu-g from
running. This was even though the inferno specific media server was
running.

 I'll keep tweaking though and see if I can see what's going on.

Chris.
--

-- 
http://www.bluishcoder.co.nz

Chris Double | 24 May 2012 12:31
Picon
Gravatar

Re: Inferno on Android

On Wed, May 23, 2012 at 12:48 PM, Chris Double
<chris.double@...> wrote:
> There's some issues, probably due to a mismatch between the ROM I'm
> using and what the port was based on. The touchscreen is slightly out
> and the capacative hardware buttons just act as touchscreen pushes at
> the bottom of the screen. So I couldn't test using the keyboard in the
> apps since I couldn't bring them up.

I made some more progress getting it running on my device. The
capacitive hardware keys not working issue is due to having to
manually handle 'virtual keys'. See [1] for a description of the
virtual key files and having to load and parse them. Then it looks
like it needs to detect touches in the range of this and translate to
the appropriate key code.

The problem of button presses not working when running under an ICS
based android install are due to step 14 at [2]:

----------8<-------
When a tool becomes inactive (finger goes "up"), it should stop
appearing in subsequent multi-touch sync reports. When all tools
become inactive (all fingers go "up"), the driver should send an empty
sync report packet, such as SYN_MT_REPORT followed by SYN_REPORT.

Previous versions of Android expected "up" events to be reported by
sending a pressure value of 0. The old behavior was incompatible with
the Linux input protocol specification and is no longer supported.
----------8<-------

The current inferno touchscreen code implements the "finger up"
detection that is no longer supported on ICS. Modifying 'touchscreens'
in 'emu/Android/screen.c' to set the variable 'b' to '0' in the EV_SYN
case and after the 'moustrack' call is a simple workaround that gets
it working on ICS.

[1] <http://source.android.com/tech/input/touch-devices.html#virtual-key-map-files>
[2] <http://source.android.com/tech/input/touch-devices.html>

Chris Double | 11 Jun 2012 02:37
Picon
Gravatar

Re: Inferno on Android

This post documents the steps I took to build the Android port of
Inferno from source to run on an ICS based Nexus S:

<http://www.bluishcoder.co.nz/2012/06/11/building-inferno-os-for-android-phones.html>

Chris.
--

-- 
http://www.bluishcoder.co.nz


Gmane