I was working with this problem sometimes before Christmas and it
never happened on my computer (I only have dual core and we have seen
it on quad core Compaq Z400). Since we don't use 1.0 or 1.1 images we
just simply removed the support.

Anyway I have saved a log from the emulator with "./emulator -debug
all" that I was able to capture from a colleagues computer when this
happened. The interesting part in the log can be found below. If you
want I can send you the full log on e-mail.

In the log you can see that the data sent by android/hw-qemud.c/
qemud_serial_send_legacy_probe() is echoed back again. This causes the
communication channel to become out of sync for a while. This in turn
will cause (in this case) the "boot-properties" and the "gsm"
communication channels to fail. This explains the wrong DPI and the
"No network" problems.

My theory is that the echoing happens when the data send by
qemud_serial_send_legacy_probe() reaches the serial driver before the
qemud has turned off echo in emulator/qemud/qemud.c/multiplexer_init()
(and maybe after the open() call). I don't know any details about the
driver used here or enough about Linux low level stuff to know exactly
where the echoing happens, but I think my guess is pretty close :)

If I am right this problem might be hard to fix without altering the
goldfish Linux kernel used in the emulator.

I hope you will find this information useful!

Extraction of the log:
emulator: android_hw_sensors_init: sensors qemud service initialized
emulator: goldfish_audio_read: AUDIO_READ_SUPPORTED returns 1
emulator: goldfish_audio_write: AUDIO_SET_READ_BUFFER 0x5918000
emulator: android_hw_control_init: hw-control qemud handler
initialized
emulator: qemud_serial_read: normal qemud detected.
emulator: qemud_serial_read: channel= 0 len=256
'X000b00connect:gsm000b00connect:gps000f00connect:control00c2...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^...@^@^@'
emulator: qemud_serial_send: channel= 0 len= 18 'ko:unknown command'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@^@^@'
emulator: qemud_serial_read: bad header: '^...@0000'
emulator: qemud_serial_read: bad header: '12ko:u'
emulator: qemud_serial_read: bad header: 'nknown'
emulator: qemud_serial_read: bad header: ' comma'
emulator: qemud_serial_read: bad header: 'nd0000'
emulator: qemud_serial_read: bad header: '1aconn'
emulator: qemud_serial_read: bad header: 'ect:bo'
emulator: qemud_serial_read: bad header: 'ot-pro'
emulator: qemud_serial_read: bad header: 'pertie'
emulator: qemud_serial_read: bad header: 's:0100'
emulator: qemud_serial_read: bad header: '000eco'
emulator: qemud_serial_read: bad header: 'nnect:'
emulator: qemud_serial_read: bad header: 'gsm:02'
emulator: goldfish_audio_write: AUDIO_INT_ENABLE 7
control_global_accept: just in (fd=0x11)
control_global_accept: creating new client
control_global_accept: new client 0xa22ca10
in control_client read: received avd name


emulator: qemud_serial_read: channel= 0 len= 21 'connect:hw-control:
03'
emulator: qemud_multiplexer_connect: registered client channel 3 for
'hw-control' service
emulator: qemud_serial_send: channel= 0 len= 13 'ok:connect:03'
emulator: qemud_serial_read: channel= 3 len= 14 '000avibrator:0'
emulator: qemud_serial_read: channel= 3 len= 27
'0017power:screen_state:wake'
emulator: qemud_serial_read: channel= 0 len= 18 'connect:sensors:04'
emulator: qemud_multiplexer_connect: registered client channel 4 for
'sensors' service
emulator: qemud_serial_send: channel= 0 len= 13 'ok:connect:04'
emulator: qemud_serial_read: channel= 4 len=  4 '000c'
emulator: qemud_serial_read: channel= 4 len= 12 'list-sensors'
emulator: _hwSensorClient_receive: 'list-sensors'

Regards
/Johannes

The postings on this site are my own and don’t necessarily represent
Sony Ericsson’s positions, strategies or opinion

On Jan 28, 7:21 pm, David Turner <di...@android.com> wrote:
> Thanks for sharing this. SUPPORT_LEGACY_QEMUD is needed to be able to run
> 1.0 and 1.1 system images
> in the emulator correctly, so I would prefer to fix the original problem
> itself.
>
> I'm interested in any way to reproduce the problem. If you have a machine
> where this happens, can you send
> me the output of -debug-qemud dumped during the emulator's boot sequence.
>
> Thanks
>
> On Thu, Jan 28, 2010 at 12:07 AM, Johannes Carlsson <
>
> johannes.carlsso...@sonyericsson.com> wrote:
> > Hi
> > We have had problem with the emulator not working correctly with the
> > GSM network. The emulator just says "No network". There were also
> > other thing that didnt work correctly (e.g. screen DPI).
>
> > This problem only occured sometimes on some machines (in our case it
> > seems to be faster ones with quad core CPUs).
>
> > After some digging and by turning on some extra logs it seems like the
> > problem is that the legacy support in the emulator is causing this
> > problem. The easy fix is simple to turn this off by changing the
> > "#define  SUPPORT_LEGACY_QEMUD  1" in android/hw-qemud.c to 0 and then
> > recompile the emulator.
>
> > I though I share this information if there are anyone else struggling
> > with this problem.
>
> > Regards
> > /Johannes
> > ---
> > The postings on this site are my own and don’t necessarily represent
> > Sony Ericsson’s positions, strategies or opinions
>
> > --
> > You received this message because you are subscribed to the Google
> > Groups "Android Developers" group.
> > To post to this group, send email to android-developers@googlegroups.com
> > To unsubscribe from this group, send email to
> > android-developers+unsubscr...@googlegroups.com<android-developers%2bunsubscr...@googlegroups.com>
> > For more options, visit this group at
> >http://groups.google.com/group/android-developers?hl=en
>
>

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to