Running under XenServer

2,450 views
Skip to first unread message

Russell Purinton

unread,
Jun 22, 2016, 11:08:17 PM6/22/16
to Android-x86
Hi,

I just installed Android-x86 6.0 under Citrix XenServer.

It was a bit tricky to get installed.

First try, it just hung after the GRUB install question.

I booted with gparted Live CD and partitioned the drive first. It made it past the Grub question this time, however answering Yes to GRUB EFI caused it to fail to boot.

I re-installed, skipping GRUB EFI and it now boots.

First boot gives CLI only. I had to boot in debug mode, and edit the grub menu.lst to add video=-16 vga=788.

Now android will boot graphically. During the initial setup, it asks about Wi-Fi which I skip. It then tries to Check for Updates using Google Play Services, however I get an error that Google Play Services has stopped.

I had to shutdown, remove the virtual NIC, reboot, then finally it would allow me to complete the setup wizard.

I re-added the NIC and rebooted. I now have internet access!

items that are still plaguing me:
1) It seems to emulate a touch screen. To use the mouse, I have to click and drag the cursor around. This makes several tasks very difficult. Is there a way to get a mouse cursor working?

2) Google Play Services still immediately crashes. After searching this group a bit, It seems that Google Play requires a GPU? I do not have GPU passthru available on this system. Is there something I can do to disable GPU in the OS so that I can get Google Play Services to run?


I fear without these 2 things both resolved, then it will be fairly pointless to have this VM at all.

Thanks, and great work on the project!

Chih-Wei Huang

unread,
Jun 23, 2016, 12:20:33 AM6/23/16
to Android-x86
2016-06-23 9:44 GMT+08:00 Russell Purinton <russell....@gmail.com>:
> Hi,
>
> I just installed Android-x86 6.0 under Citrix XenServer.
>
> It was a bit tricky to get installed.
>
> First try, it just hung after the GRUB install question.
>
> I booted with gparted Live CD and partitioned the drive first. It made it past the Grub question this time, however answering Yes to GRUB EFI caused it to fail to boot.
>
> I re-installed, skipping GRUB EFI and it now boots.
>
> First boot gives CLI only. I had to boot in debug mode, and edit the grub menu.lst to add video=-16 vga=788.
>
> Now android will boot graphically. During the initial setup, it asks about Wi-Fi which I skip. It then tries to Check for Updates using Google Play Services, however I get an error that Google Play Services has stopped.
>
> I had to shutdown, remove the virtual NIC, reboot, then finally it would allow me to complete the setup wizard.
>
> I re-added the NIC and rebooted. I now have internet access!
>
> items that are still plaguing me:
> 1) It seems to emulate a touch screen. To use the mouse, I have to click and drag the cursor around. This makes several tasks very difficult. Is there a way to get a mouse cursor working?

Define the idc file for your input device
and set it to pointer.
Read https://source.android.com/devices/input/input-device-configuration-files.html

> 2) Google Play Services still immediately crashes. After searching this group a bit, It seems that Google Play requires a GPU? I do not have GPU passthru available on this system. Is there something I can do to disable GPU in the OS so that I can get Google Play Services to run?

This will be solved in -rc2.

--
Chih-Wei
Android-x86 project
http://www.android-x86.org

Ilian Iliev

unread,
Jun 26, 2016, 8:42:18 PM6/26/16
to Android-x86
Hello guys,

We are running Android-x86 in AWS (under their Xen and on local Xen as well). As soon as we get that thing on a stable ground I'll make a blog post and if you guys wish we could add technical documentation + source code fixes in order to run Android-x86 in AWS.
@Chih-Wei: Could you please share some knowledge with us regarding the Google Play services issue? I am really curious about this but it seems I don't have enough skills to find it out myself.

Chih-Wei Huang

unread,
Jun 26, 2016, 9:04:19 PM6/26/16
to Android-x86
Nice. Please submit the patches.
Thanks.

> @Chih-Wei: Could you please share some knowledge with us regarding the Google Play services issue? I am really curious about this but it seems I don't have enough skills to find it out myself.

The prebuilt webview crashed in GpuThread since
some required GLES extensions are missed.
Thanks to Pstglia / Mauro's efforts this has been fixed
the experimental mesa-12.0 branch in the SF repo.

Dong Geng

unread,
Jun 26, 2016, 10:03:10 PM6/26/16
to Android-x86
Hi,
   do you have the fix patch for system crash issue in the intel Xen server ? I found Android-x86 5.1-rc1 does not have such issue, only 6.0 has this issue.

Russell Purinton

unread,
Jun 28, 2016, 5:38:01 AM6/28/16
to Android-x86
thanks.  i'll wait for rc2 and try again

Russell Purinton

unread,
Jul 6, 2016, 8:04:32 AM7/6/16
to Android-x86
I've read thru that, but I'm still having trouble getting it working...

Here's my dumpsys input

INPUT MANAGER (dumpsys input)

Event Hub State:
  BuiltInKeyboardId: -2
  Devices:
    -1: Virtual
      Classes: 0x40000023
      Path: <virtual>
      Descriptor: a718a782d34bc767f4689c232d64d527998ea7fd
      Location:
      ControllerNumber: 0
      UniqueId: <virtual>
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Virtual.kcm
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false
    1: ImExPS/2 Generic Explorer Mouse
      Classes: 0x00000008
      Path: /dev/input/event6
      Descriptor: 6aa284bb39ab042267f19eb6334dcf88b2e54153
      Location: isa0060/serio1/input0
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0011, vendor=0x0002, product=0x0006, version=0x0000
      KeyLayoutFile:
      KeyCharacterMapFile:
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false
    2: Android Power Button
      Classes: 0x00000001
      Path: /dev/input/event5
      Descriptor: 121a35665e29ab67eb240e688adc943dd337ad5c
      Location:
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false
    3: Sleep Button
      Classes: 0x00000001
      Path: /dev/input/event1
      Descriptor: 954faadc99bb5a7c1d0537b923e0490c90b47e98
      Location: LNXSLPBN/button/input0
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0019, vendor=0x0000, product=0x0003, version=0x0000
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false
    5: AT Translated Set 2 keyboard
      Classes: 0x00000003
      Path: /dev/input/event4
      Descriptor: 485d69228e24f5e46da1598745890b214130dbc4
      Location: isa0060/serio0/input0
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0011, vendor=0x0001, product=0x0001, version=0xab41
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false
    6: QEMU 0.10.2 QEMU USB Tablet
      Classes: 0x80000004
      Path: /dev/input/event2
      Descriptor: 1a121864461dff60a332e399a9a594b35df6f221
      Location: usb-0000:00:01.2-2/input0
      ControllerNumber: 0
      UniqueId: 1
      Identifier: bus=0x0003, vendor=0x0627, product=0x0001, version=0x0001
      KeyLayoutFile:
      KeyCharacterMapFile:
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false

Input Reader State:
  Device -1: Virtual
    Generation: 2
    IsExternal: false
    Sources: 0x00000301
    KeyboardType: 2
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 2
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 1: ImExPS/2 Generic Explorer Mouse
    Generation: 15
    IsExternal: false
    Sources: 0x00002002
    KeyboardType: 0
    Motion Ranges:
      X: source=0x00002002, min=0.000, max=799.000, flat=0.000, fuzz=0.000, resolution=0.000
      Y: source=0x00002002, min=0.000, max=599.000, flat=0.000, fuzz=0.000, resolution=0.000
      PRESSURE: source=0x00002002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
      VSCROLL: source=0x00002002, min=-1.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
      HSCROLL: source=0x00002002, min=-1.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
    Cursor Input Mapper:
      Parameters:
        HasAssociatedDisplay: true
        Mode: pointer
        OrientationAware: false
      XScale: 1.000
      YScale: 1.000
      XPrecision: 1.000
      YPrecision: 1.000
      HaveVWheel: true
      HaveHWheel: true
      VWheelScale: 1.000
      HWheelScale: 1.000
      Orientation: 0
      ButtonState: 0x00000000
      Down: false
      DownTime: 0
  Device 2: Android Power Button
    Generation: 10
    IsExternal: false
    Sources: 0x00000101
    KeyboardType: 1
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 3: Sleep Button
    Generation: 8
    IsExternal: false
    Sources: 0x00000101
    KeyboardType: 1
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 1
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 0
  Device 5: AT Translated Set 2 keyboard
    Generation: 6
    IsExternal: false
    Sources: 0x00000101
    KeyboardType: 2
    Keyboard Input Mapper:
      Parameters:
        HasAssociatedDisplay: false
        OrientationAware: false
        HandlesKeyRepeat: false
      KeyboardType: 2
      Orientation: 0
      KeyDowns: 0 keys currently down
      MetaState: 0x0
      DownTime: 377096679000
  Device 6: QEMU 0.10.2 QEMU USB Tablet
    Generation: 16
    IsExternal: true
    Sources: 0x00002002
    KeyboardType: 0
    Motion Ranges:
      X: source=0x00002002, min=0.000, max=799.000, flat=0.000, fuzz=0.000, resolution=0.000
      Y: source=0x00002002, min=0.000, max=599.000, flat=0.000, fuzz=0.000, resolution=0.000
      PRESSURE: source=0x00002002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
      VSCROLL: source=0x00002002, min=-1.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
    Touch Input Mapper:
      Parameters:
        GestureMode: spots
        DeviceType: pointer
        AssociatedDisplay: hasAssociatedDisplay=true, isExternal=false
        OrientationAware: false
      Raw Touch Axes:
        X: min=0, max=32767, flat=0, fuzz=0, resolution=0
        Y: min=0, max=32767, flat=0, fuzz=0, resolution=0
        Pressure: unknown range
        TouchMajor: unknown range
        TouchMinor: unknown range
        ToolMajor: unknown range
        ToolMinor: unknown range
        Orientation: unknown range
        Distance: unknown range
        TiltX: unknown range
        TiltY: unknown range
        TrackingId: unknown range
        Slot: unknown range
      Calibration:
        touch.size.calibration: none
        touch.pressure.calibration: none
        touch.orientation.calibration: none
        touch.distance.calibration: none
        touch.coverage.calibration: none
      Affine Transformation:
        X scale: 1.000
        X ymix: 0.000
        X offset: 0.000
        Y xmix: 0.000
        Y scale: 1.000
        Y offset: 0.000
      Viewport: displayId=0, orientation=0, logicalFrame=[0, 0, 800, 600], physicalFrame=[0, 0, 800, 600], deviceSize=[800, 600]
      SurfaceWidth: 800px
      SurfaceHeight: 600px
      SurfaceLeft: 0
      SurfaceTop: 0
      SurfaceOrientation: 0
      Translation and Scaling Factors:
        XTranslate: 0.000
        YTranslate: 0.000
        XScale: 0.024
        YScale: 0.018
        XPrecision: 40.960
        YPrecision: 54.613
        GeometricScale: 0.021
        PressureScale: 0.000
        SizeScale: 0.000
        OrientationScale: 0.000
        DistanceScale: 0.000
        HaveTilt: false
        TiltXCenter: 0.000
        TiltXScale: 0.000
        TiltYCenter: 0.000
        TiltYScale: 0.000
      Last Button State: 0x00000000
      Last Raw Touch: pointerCount=0
      Last Cooked Touch: pointerCount=0
      Pointer Gesture Detector:
        XMovementScale: 0.017
        YMovementScale: 0.017
        XZoomScale: 0.006
        YZoomScale: 0.006
        MaxSwipeWidth: 11585.237305
  Configuration:
    ExcludedDeviceNames: [Power Button]
    VirtualKeyQuietTime: 0.0ms
    PointerVelocityControlParameters: scale=3.364, lowThreshold=500.000, highThreshold=3000.000, acceleration=3.000
    WheelVelocityControlParameters: scale=1.000, lowThreshold=15.000, highThreshold=50.000, acceleration=4.000
    PointerGesture:
      Enabled: true
      QuietInterval: 100.0ms
      DragMinSwitchSpeed: 50.0px/s
      TapInterval: 150.0ms
      TapDragInterval: 300.0ms
      TapSlop: 20.0px
      MultitouchSettleInterval: 100.0ms
      MultitouchMinDistance: 15.0px
      SwipeTransitionAngleCosine: 0.3
      SwipeMaxWidthRatio: 0.2
      MovementSpeedRatio: 0.8
      ZoomSpeedRatio: 0.3

Input Dispatcher State:
  DispatchEnabled: 1
  DispatchFrozen: 0
  FocusedApplication: name='AppWindowToken{23e7070a token=Token{1c4d9b75 ActivityRecord{25762ac u0 com.icecoldapps.serversultimate/.viewStart1 t23}}}', dispatchingTimeout=5000.000ms
  FocusedWindow: name='Window{67f9093 u0 com.android.launcher3/com.android.launcher3.Launcher}'
  TouchStatesByDisplay:
    0: down=false, split=false, deviceId=6, source=0x00002002
      Windows: <none>
  Windows:
    0: name='Window{1085a176 u0 SearchPanel}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01820100, type=0x000007e8, layer=211000, frame=[0,0][800,600], scale=1.000000, touchableRegion=[0,0][800,600], inputFeatures=0x00000000, ownerPid=1760, ownerUid=10018, dispatchingTimeout=5000.000ms
    1: name='Window{16784be4 u0 NavigationBar}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x01840048, type=0x000007e3, layer=201000, frame=[0,561][800,600], scale=1.000000, touchableRegion=[0,561][800,600], inputFeatures=0x00000000, ownerPid=1760, ownerUid=10018, dispatchingTimeout=5000.000ms
    2: name='Window{1c8f337c u0 Heads Up}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01820328, type=0x000007de, layer=161000, frame=[0,0][800,0], scale=1.000000, touchableRegion=<empty>, inputFeatures=0x00000000, ownerPid=1760, ownerUid=10018, dispatchingTimeout=5000.000ms
    3: name='Window{321ceb95 u0 StatusBar}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x81840048, type=0x000007d0, layer=151000, frame=[0,0][800,20], scale=1.000000, touchableRegion=[0,0][800,20], inputFeatures=0x00000000, ownerPid=1760, ownerUid=10018, dispatchingTimeout=5000.000ms
    4: name='Window{169cca23 u0 KeyguardScrim}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01110900, type=0x000007ed, layer=131000, frame=[0,0][800,561], scale=1.000000, touchableRegion=[0,0][800,561], inputFeatures=0x00000000, ownerPid=1666, ownerUid=1000, dispatchingTimeout=5000.000ms
    5: name='Window{67f9093 u0 com.android.launcher3/com.android.launcher3.Launcher}', displayId=0, paused=false, hasFocus=true, hasWallpaper=true, visible=true, canReceiveKeys=true, flags=0x81910120, type=0x00000001, layer=21015, frame=[0,0][800,600], scale=1.000000, touchableRegion=[0,0][800,600], inputFeatures=0x00000000, ownerPid=1868, ownerUid=10044, dispatchingTimeout=5000.000ms
    6: name='Window{2d0944a2 u0 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01820022, type=0x00000002, layer=21010, frame=[164,152][635,428], scale=1.000000, touchableRegion=[0,0][800,600], inputFeatures=0x00000000, ownerPid=3315, ownerUid=10062, dispatchingTimeout=5000.000ms
    7: name='Window{b75ec04 u0 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01810120, type=0x00000001, layer=21005, frame=[0,0][800,561], scale=1.000000, touchableRegion=[0,0][800,600], inputFeatures=0x00000000, ownerPid=3315, ownerUid=10062, dispatchingTimeout=5000.000ms
    8: name='Window{11bc8ebd u0 com.android.systemui.ImageWallpaper}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x00000318, type=0x000007dd, layer=21000, frame=[0,0][1920,1280], scale=1.000000, touchableRegion=[0,0][1920,1280], inputFeatures=0x00000000, ownerPid=1760, ownerUid=10018, dispatchingTimeout=5000.000ms
  MonitoringChannels:
    0: 'WindowManager (server)'
  RecentQueue: length=10
    MotionEvent(deviceId=6, source=0x00002002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000001, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (685.4, 264.1)]), policyFlags=0x62000000, age=31522.9ms
    MotionEvent(deviceId=6, source=0x00002002, action=1, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (685.4, 264.1)]), policyFlags=0x62000000, age=31247.2ms
    MotionEvent(deviceId=6, source=0x00002002, action=7, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (685.4, 264.1)]), policyFlags=0x62000000, age=31247.2ms
    MotionEvent(deviceId=6, source=0x00002002, action=0, flags=0x00000000, metaState=0x00000000, buttonState=0x00000001, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (685.4, 264.1)]), policyFlags=0x62000001, age=31129.2ms
    MotionEvent(deviceId=6, source=0x00002002, action=1, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (685.4, 264.1)]), policyFlags=0x62000000, age=31005.6ms
    MotionEvent(deviceId=6, source=0x00002002, action=7, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (685.4, 264.1)]), policyFlags=0x62000000, age=31005.6ms
    KeyEvent(deviceId=5, source=0x00000101, action=0, flags=0x00000008, keyCode=61, scanCode=15, metaState=0x00000000, repeatCount=0), policyFlags=0x62000000, age=21955.6ms
    KeyEvent(deviceId=5, source=0x00000101, action=1, flags=0x00000008, keyCode=61, scanCode=15, metaState=0x00000000, repeatCount=0), policyFlags=0x62000000, age=21837.5ms
    KeyEvent(deviceId=5, source=0x00000101, action=0, flags=0x00000008, keyCode=3, scanCode=125, metaState=0x00000000, repeatCount=0), policyFlags=0x62000000, age=18464.2ms
    KeyEvent(deviceId=5, source=0x00000101, action=1, flags=0x00000008, keyCode=3, scanCode=125, metaState=0x00000000, repeatCount=0), policyFlags=0x62000000, age=18464.1ms
  PendingEvent: <none>
  InboundQueue: <empty>
  ReplacedKeys: <empty>
  Connections:
    0: channelName='WindowManager (server)', windowName='monitor', status=NORMAL, monitor=true, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    1: channelName='169cca23 KeyguardScrim (server)', windowName='Window{169cca23 u0 KeyguardScrim}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    2: channelName='1c8f337c Heads Up (server)', windowName='Window{1c8f337c u0 Heads Up}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    3: channelName='321ceb95 StatusBar (server)', windowName='Window{321ceb95 u0 StatusBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    4: channelName='1085a176 SearchPanel (server)', windowName='Window{1085a176 u0 SearchPanel}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    5: channelName='16784be4 NavigationBar (server)', windowName='Window{16784be4 u0 NavigationBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    6: channelName='11bc8ebd com.android.systemui.ImageWallpaper (server)', windowName='Window{11bc8ebd u0 com.android.systemui.ImageWallpaper}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    7: channelName='2d0944a2 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1 (server)', windowName='Window{2d0944a2 u0 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    8: channelName='67f9093 com.android.launcher3/com.android.launcher3.Launcher (server)', windowName='Window{67f9093 u0 com.android.launcher3/com.android.launcher3.Launcher}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    9: channelName='b75ec04 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1 (server)', windowName='Window{b75ec04 u0 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
  AppSwitch: not pending
  Configuration:
    KeyRepeatDelay: 50.0ms
    KeyRepeatTimeout: 500.0ms


Here is the file I tried creating as /system/usr/idc/Vendor_0002_Product_0006.idc

# touch.deviceType = pointer | touchPad | pointer | default
touch.deviceType = pointer

# orientationAware
# touch.orientationAware = 0 or 1
touch.orientationAware = 0

#  gestureMode
# Definition: touch.gestureMode = pointer | spots | default
touch.gestureMode = pointer

# Definition: device.internal = 0 | 1
device.internal = 1


It still gives me the "draggable circle touch thingy" and not a standard cursor like before.    PS: this is from 5.1

On Thursday, June 23, 2016 at 12:20:33 AM UTC-4, Chih-Wei Huang wrote:

Define the idc file for your input device
and set it to pointer.
Read https://source.android.com/devices/input/input-device-configuration-files.html

Chih-Wei Huang

unread,
Jul 6, 2016, 8:08:27 AM7/6/16
to Android-x86
2016-07-05 13:39 GMT+08:00 Russell Purinton <russell....@gmail.com>:
> I've read thru that, but I'm still having trouble getting it working...
>
> Here's my dumpsys input
>
> INPUT MANAGER (dumpsys input)
[deleted]
>
> Here is the file I tried creating as
> /system/usr/idc/Vendor_0002_Product_0006.idc
>
> # touch.deviceType = pointer | touchPad | pointer | default
> touch.deviceType = pointer
>
> # orientationAware
> # touch.orientationAware = 0 or 1
> touch.orientationAware = 0
>
> # gestureMode
> # Definition: touch.gestureMode = pointer | spots | default
> touch.gestureMode = pointer
>
> # Definition: device.internal = 0 | 1
> device.internal = 1
>
>
> It still gives me the "draggable circle touch thingy" and not a standard
> cursor like before. PS: this is from 5.1

Because it's not used.
If it's used, you should see it listed
in the ConfigurationFile:

> 1: ImExPS/2 Generic Explorer Mouse
> Classes: 0x00000008
> Path: /dev/input/event6
> Descriptor: 6aa284bb39ab042267f19eb6334dcf88b2e54153
> Location: isa0060/serio1/input0
> ControllerNumber: 0
> UniqueId:
> Identifier: bus=0x0011, vendor=0x0002, product=0x0006, version=0x0000
> KeyLayoutFile:
> KeyCharacterMapFile:
> ConfigurationFile:
> HaveKeyboardLayoutOverlay: false

Check if you have some typos,
permission issues, etc...
Message has been deleted

Russell Purinton

unread,
Jul 8, 2016, 9:26:34 AM7/8/16
to Android-x86

Because it's not used.
If it's used, you should see it listed
in the ConfigurationFile:

Check if you have some typos,
permission issues, etc...



--
Chih-Wei
Android-x86 project
http://www.android-x86.org

So yes, it appears permissions the cause of it not loading the configuration.   other files were chmod 644, but mine was 600.  I changed it to 644, and rebooted, now it shows up
 2: ImExPS/2 Generic Explorer Mouse
      Classes: 0x00000008
      Path: /dev/input/event5
      Descriptor: 6aa284bb39ab042267f19eb6334dcf88b2e54153
      Location: isa0060/serio1/input0
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0011, vendor=0x0002, product=0x0006, version=0x0000
      KeyLayoutFile:
      KeyCharacterMapFile:
      ConfigurationFile: /system/usr/idc/Vendor_0002_Product_0006.idc
      HaveKeyboardLayoutOverlay: false


However I still get the draggable circle, not a mouse pointer...

again heres the contents of the file

Chih-Wei Huang

unread,
Jul 8, 2016, 10:38:46 AM7/8/16
to Android-x86
2016-07-08 11:15 GMT+08:00 Russell Purinton <russell....@gmail.com>:
>
> So yes, it appears permissions the cause of it not loading the
> configuration. other files were chmod 644, but mine was 600. I changed it
> to 644, and rebooted, now it shows up
> 2: ImExPS/2 Generic Explorer Mouse
> Classes: 0x00000008
> Path: /dev/input/event5
> Descriptor: 6aa284bb39ab042267f19eb6334dcf88b2e54153
> Location: isa0060/serio1/input0
> ControllerNumber: 0
> UniqueId:
> Identifier: bus=0x0011, vendor=0x0002, product=0x0006, version=0x0000
> KeyLayoutFile:
> KeyCharacterMapFile:
> ConfigurationFile: /system/usr/idc/Vendor_0002_Product_0006.idc
> HaveKeyboardLayoutOverlay: false
>
>
> However I still get the draggable circle, not a mouse pointer...

Then use getevent -l to see which input queue
the events come.
I suspect they come from another one:

6: QEMU 0.10.2 QEMU USB Tablet
Classes: 0x80000004
Path: /dev/input/event2


Russell Purinton

unread,
Jul 10, 2016, 10:56:20 PM7/10/16
to Android-x86
It appears you were correct!   getevent -l showed the events coming on device 6 (QEMU USB Tablet) this makes sense since QEMU is the emulator in XenServer!

So I updated the configuration file, set permissions, verified that the configuration file is used and everything.  Now when the system boots, I do in-fact get a pointer!  But it does not function any better than before. 

My expectation is that when I move the mouse around that the pointer will follow, however it does not.  I have to click and hold and drag to get the pointer to move.  This of course makes the system think that I'm dragging the screen, and leads to all the same usage problems that I had before.

How would I get the the pointer to move without having to click and hold?

Here's a gif example of what I'm experiencing.



Here is my device config

touch.deviceType = pointer
touch.gestureMode = pointer
device.internal = 1


Here is the current dumpsys input
login as:
SSH server: Password authentication
Using keyboard-interactive authentication.
Password:
u0_a63@x86:/ $ su
root@x86:/ # dumpsys input
INPUT MANAGER (dumpsys input)

Event Hub State:
  BuiltInKeyboardId: -2
  Devices:
    -1: Virtual
      Classes: 0x40000023
      Path: <virtual>
      Descriptor: a718a782d34bc767f4689c232d64d527998ea7fd
      Location:
      ControllerNumber: 0
      UniqueId: <virtual>
      Identifier: bus=0x0000, vendor=0x0000, product=0x0000, version=0x0000
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Virtual.kcm
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false
    1: ImExPS/2 Generic Explorer Mouse
      Classes: 0x00000008
      Path: /dev/input/event6
      Descriptor: 6aa284bb39ab042267f19eb6334dcf88b2e54153
      Location: isa0060/serio1/input0
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0011, vendor=0x0002, product=0x0006, version=0x0000
      KeyLayoutFile:
      KeyCharacterMapFile:
      ConfigurationFile: /system/usr/idc/Vendor_0002_Product_0006.idc
      HaveKeyboardLayoutOverlay: false
      ControllerNumber: 0
      UniqueId:
      Identifier: bus=0x0011, vendor=0x0001, product=0x0001, version=0xab41
      KeyLayoutFile: /system/usr/keylayout/Generic.kl
      KeyCharacterMapFile: /system/usr/keychars/Generic.kcm
      ConfigurationFile:
      HaveKeyboardLayoutOverlay: false
    6: QEMU 0.10.2 QEMU USB Tablet
      Classes: 0x00000004
      Path: /dev/input/event2
      Descriptor: 1a121864461dff60a332e399a9a594b35df6f221
      Location: usb-0000:00:01.2-2/input0
      ControllerNumber: 0
      UniqueId: 1
      Identifier: bus=0x0003, vendor=0x0627, product=0x0001, version=0x0001
      KeyLayoutFile:
      KeyCharacterMapFile:
      ConfigurationFile: /system/usr/idc/Vendor_0627_Product_0001.idc
      DownTime: 0
  Device 6: QEMU 0.10.2 QEMU USB Tablet
    Generation: 16
    IsExternal: false
    Sources: 0x00002002
    KeyboardType: 0
    Motion Ranges:
      X: source=0x00002002, min=0.000, max=799.000, flat=0.000, fuzz=0.000, resolution=0.000
      Y: source=0x00002002, min=0.000, max=599.000, flat=0.000, fuzz=0.000, resolution=0.000
      PRESSURE: source=0x00002002, min=0.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
      VSCROLL: source=0x00002002, min=-1.000, max=1.000, flat=0.000, fuzz=0.000, resolution=0.000
    Touch Input Mapper:
      Parameters:
        GestureMode: pointer
  FocusedApplication: name='AppWindowToken{33f38ca2 token=Token{ab8d86d ActivityRecord{22d61884 u0 com.icecoldapps.serversultimate/.viewStart1 t35}}}', dispatchingTimeout=5000.000ms
  FocusedWindow: name='Window{4acdf88 u0 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1}'
  TouchStatesByDisplay:
    0: down=false, split=false, deviceId=6, source=0x00002002
      Windows: <none>
  Windows:
    0: name='Window{1cf389df u0 SearchPanel}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01820100, type=0x000007e8, layer=211000, frame=[0,0][800,600], scale=1.000000, touchableRegion=[0,0][800,600], inputFeatures=0x00000000, ownerPid=1757, ownerUid=10018, dispatchingTimeout=5000.000ms
    1: name='Window{31cdc8f5 u0 NavigationBar}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x01840068, type=0x000007e3, layer=201000, frame=[0,561][800,600], scale=1.000000, touchableRegion=[0,561][800,600], inputFeatures=0x00000000, ownerPid=1757, ownerUid=10018, dispatchingTimeout=5000.000ms
    2: name='Window{e5f0330 u0 Heads Up}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01820328, type=0x000007de, layer=161000, frame=[0,0][800,0], scale=1.000000, touchableRegion=<empty>, inputFeatures=0x00000000, ownerPid=1757, ownerUid=10018, dispatchingTimeout=5000.000ms
    3: name='Window{1e92a332 u0 StatusBar}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x81840048, type=0x000007d0, layer=151000, frame=[0,0][800,20], scale=1.000000, touchableRegion=[0,0][800,20], inputFeatures=0x00000000, ownerPid=1757, ownerUid=10018, dispatchingTimeout=5000.000ms
    4: name='Window{3e206601 u0 KeyguardScrim}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x01110900, type=0x000007ed, layer=131000, frame=[0,0][800,561], scale=1.000000, touchableRegion=[0,0][800,561], inputFeatures=0x00000000, ownerPid=1666, ownerUid=1000, dispatchingTimeout=5000.000ms
    5: name='Window{4acdf88 u0 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1}', displayId=0, paused=false, hasFocus=true, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x01820022, type=0x00000002, layer=21015, frame=[164,152][635,428], scale=1.000000, touchableRegion=[0,0][800,600], inputFeatures=0x00000000, ownerPid=2763, ownerUid=10062, dispatchingTimeout=5000.000ms
    6: name='Window{66e55b0 u0 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=true, flags=0x01810120, type=0x00000001, layer=21010, frame=[0,0][800,561], scale=1.000000, touchableRegion=[0,0][800,600], inputFeatures=0x00000000, ownerPid=2763, ownerUid=10062, dispatchingTimeout=5000.000ms
    7: name='Window{13ad94e3 u0 com.android.launcher3/com.android.launcher3.Launcher}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=false, canReceiveKeys=false, flags=0x81910120, type=0x00000001, layer=21005, frame=[0,0][800,600], scale=1.000000, touchableRegion=[0,0][800,600], inputFeatures=0x00000000, ownerPid=1957, ownerUid=10044, dispatchingTimeout=5000.000ms
    8: name='Window{283da6e1 u0 com.android.systemui.ImageWallpaper}', displayId=0, paused=false, hasFocus=false, hasWallpaper=false, visible=true, canReceiveKeys=false, flags=0x00000318, type=0x000007dd, layer=21000, frame=[0,0][1920,1280], scale=1.000000, touchableRegion=[0,0][1920,1280], inputFeatures=0x00000000, ownerPid=1757, ownerUid=10018, dispatchingTimeout=5000.000ms
  MonitoringChannels:
    0: 'WindowManager (server)'
  RecentQueue: length=10
    MotionEvent(deviceId=6, source=0x00002002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000001, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (317.3, 238.0)]), policyFlags=0x62000000, age=29432.3ms
    MotionEvent(deviceId=6, source=0x00002002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000001, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (317.3, 234.8)]), policyFlags=0x62000000, age=29329.2ms
    MotionEvent(deviceId=6, source=0x00002002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000001, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (317.3, 231.7)]), policyFlags=0x62000000, age=28888.4ms
    MotionEvent(deviceId=6, source=0x00002002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000001, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (317.3, 228.5)]), policyFlags=0x62000000, age=28870.0ms
    MotionEvent(deviceId=6, source=0x00002002, action=2, flags=0x00000000, metaState=0x00000000, buttonState=0x00000001, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (317.3, 225.3)]), policyFlags=0x62000000, age=28792.2ms
    MotionEvent(deviceId=6, source=0x00002002, action=1, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (317.3, 225.3)]), policyFlags=0x62000000, age=28424.5ms
    MotionEvent(deviceId=6, source=0x00002002, action=7, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (317.3, 225.3)]), policyFlags=0x62000000, age=28424.5ms
    MotionEvent(deviceId=6, source=0x00002002, action=0, flags=0x00000000, metaState=0x00000000, buttonState=0x00000001, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (317.3, 225.3)]), policyFlags=0x62000000, age=28283.7ms
    MotionEvent(deviceId=6, source=0x00002002, action=1, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (317.3, 225.3)]), policyFlags=0x62000000, age=28192.9ms
    MotionEvent(deviceId=6, source=0x00002002, action=7, flags=0x00000000, metaState=0x00000000, buttonState=0x00000000, edgeFlags=0x00000000, xPrecision=0.0, yPrecision=0.0, displayId=0, pointers=[0: (317.3, 225.3)]), policyFlags=0x62000000, age=28192.9ms
  PendingEvent: <none>
  InboundQueue: <empty>
  ReplacedKeys: <empty>
  Connections:
    0: channelName='WindowManager (server)', windowName='monitor', status=NORMAL, monitor=true, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    1: channelName='3e206601 KeyguardScrim (server)', windowName='Window{3e206601 u0 KeyguardScrim}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    2: channelName='e5f0330 Heads Up (server)', windowName='Window{e5f0330 u0 Heads Up}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    3: channelName='1e92a332 StatusBar (server)', windowName='Window{1e92a332 u0 StatusBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    4: channelName='1cf389df SearchPanel (server)', windowName='Window{1cf389df u0 SearchPanel}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    5: channelName='31cdc8f5 NavigationBar (server)', windowName='Window{31cdc8f5 u0 NavigationBar}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    6: channelName='283da6e1 com.android.systemui.ImageWallpaper (server)', windowName='Window{283da6e1 u0 com.android.systemui.ImageWallpaper}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    7: channelName='4acdf88 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1 (server)', windowName='Window{4acdf88 u0 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    8: channelName='66e55b0 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1 (server)', windowName='Window{66e55b0 u0 com.icecoldapps.serversultimate/com.icecoldapps.serversultimate.viewStart1}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
    9: channelName='13ad94e3 com.android.launcher3/com.android.launcher3.Launcher (server)', windowName='Window{13ad94e3 u0 com.android.launcher3/com.android.launcher3.Launcher}', status=NORMAL, monitor=false, inputPublisherBlocked=false
      OutboundQueue: <empty>
      WaitQueue: <empty>
  AppSwitch: not pending
  Configuration:
    KeyRepeatDelay: 50.0ms
    KeyRepeatTimeout: 500.0ms


root@x86:/ #

Varun Chitre

unread,
Jul 10, 2016, 10:56:35 PM7/10/16
to Android-x86
Hi Ilian,

Which framebuffer did you use when you got Android x86 running on AWS?

Chih-Wei Huang

unread,
Jul 10, 2016, 11:34:32 PM7/10/16
to Android-x86
2016-07-09 23:13 GMT+08:00 Russell Purinton <russell....@gmail.com>:
> It appears you were correct! getevent -l showed the events coming on
> device 6 (QEMU USB Tablet) this makes sense since QEMU is the emulator in
> XenServer!
>
> So I updated the configuration file, set permissions, verified that the
> configuration file is used and everything. Now when the system boots, I do
> in-fact get a pointer! But it does not function any better than before.
>
> My expectation is that when I move the mouse around that the pointer will
> follow, however it does not. I have to click and hold and drag to get the
> pointer to move. This of course makes the system think that I'm dragging
> the screen, and leads to all the same usage problems that I had before.
>
> How would I get the the pointer to move without having to click and hold?

I saw the problem is your "mouse" is detected
as a touchscreen or a touchpad

6: QEMU 0.10.2 QEMU USB Tablet
Classes: 0x00000004 <=== INPUT_DEVICE_CLASS_TOUCH
Path: /dev/input/event2

(read EventHub.h to understand the input classes)

I don't know why. I know nothing about XenServer.
You have to figure out it yourself.
I can just my QEMU has no such a problem.
My mouse events come from

2: ImExPS/2 Generic Explorer Mouse
Classes: 0x00000008 <=== INPUT_DEVICE_CLASS_CURSOR
Path: /dev/input/event3

which works fine. This is my qemu script:

qemu-kvm -vga std -sdl -soundhw ac97 \
-net nic,model=e1000 -net user \
-m 4096 -smp 4 -cpu host \
-hda $HOME/qemu/android.img \
-boot menu=on \
-serial mon:stdio \
-cdrom android_x86.iso

Russell Purinton

unread,
Jul 11, 2016, 5:20:16 AM7/11/16
to Android-x86
I'm wondering if the answer lies somewhere in android or in xen...

Thing is that I just installed 4.4_r5, and right away the mouse works exactly as desired...


Mário Almeida

unread,
Jul 27, 2016, 11:55:01 PM7/27/16
to Android-x86
I get a similar behavior regarding the mouse and Qemu 2.6 / Android 6.0.

Qemu "-usbdevice tablet" used to work fine in 4.4 and its "broken" (maybe a feature) since 5.1. Might have something to do with qemu version as well? (now using 2.6)

I created Vendor_0627_Product_0001.idc with the contents of the GenericTouch.idc but with GestureMode and DeviceType set as pointer, but not much success.

As @Chih-Wei Huang mentioned, the device class is still INPUT_DEVICE_CLASS_TOUCH.

Any news on how to solve this problem? Any direction of where to look would do as well. I will start by looking for theINPUT_DEVICE_CLASS_TOUCH definition.

My idc file:

# Basic Parameters

touch.deviceType = pointer
touch.gestureMode = pointer
#touch.orientationAware = 1

# Touch Size
touch.touchSize.calibration = default

# Tool Size
touch.toolSize.calibration = default

# Pressure
touch.pressure.calibration = default

# Size
touch.size.calibration = default

# Orientation
touch.orientation.calibration = none

device.internal = 1


My dumpsys after changes:

    5: QEMU QEMU USB Tablet
      Classes: 0x00000004
      Path: /dev/input/event1
      Descriptor: 8716377846bfd2d30e6381a35ac4ac10b285924b
      Location: usb-0000:00:01.2-1/input0
      ControllerNumber: 0
      UniqueId: 42

      Identifier: bus=0x0003, vendor=0x0627, product=0x0001, version=0x0001
      KeyLayoutFile:
      KeyCharacterMapFile:
      ConfigurationFile: /system/usr/idc/Vendor_0627_Product_0001.idc
      HaveKeyboardLayoutOverlay: false

  Device 5: QEMU QEMU USB Tablet
    Generation: 14
    IsExternal: false
    HasMic:     false

    Sources: 0x00002002
    KeyboardType: 0
    Motion Ranges:
      X: source=0x00002002, min=0.000, max=1023.000, flat=0.000, fuzz=0.000, resolution=0.000
      Y: source=0x00002002, min=0.000, max=767.000, flat=0.000, fuzz=0.000, resolution=0.000
      Viewport: displayId=0, orientation=0, logicalFrame=[0, 0, 1024, 768], physicalFrame=[0, 0, 1024, 768], deviceSize=[1024, 768]
      SurfaceWidth: 1024px
      SurfaceHeight: 768px

      SurfaceLeft: 0
      SurfaceTop: 0
      SurfaceOrientation: 0
      Translation and Scaling Factors:
        XTranslate: 0.000
        YTranslate: 0.000
        XScale: 0.031
        YScale: 0.023
        XPrecision: 32.000
        YPrecision: 42.667
        GeometricScale: 0.027

        PressureScale: 0.000
        SizeScale: 0.000
        OrientationScale: 0.000
        DistanceScale: 0.000
        HaveTilt: false
        TiltXCenter: 0.000
        TiltXScale: 0.000
        TiltYCenter: 0.000
        TiltYScale: 0.000
      Last Raw Button State: 0x00000000
      Last Raw Touch: pointerCount=0
      Last Cooked Button State: 0x00000000
      Last Cooked Touch: pointerCount=0
      Stylus Fusion:
        ExternalStylusConnected: false
        External Stylus ID: -1
        External Stylus Data Timeout: 9223372036854775807
      External Stylus State:
        When: 9223372036854775807
        Pressure: 0.000000
        Button State: 0x00000000
        Tool Type: 0
      Pointer Gesture Detector:
        XMovementScale: 0.022
        YMovementScale: 0.022
        XZoomScale: 0.008
        YZoomScale: 0.008

        MaxSwipeWidth: 11585.237305
  Configuration:
    ExcludedDeviceNames: [Power Button]
    VirtualKeyQuietTime: 0.0ms
    PointerVelocityControlParameters: scale=1.000, lowThreshold=500.000, highThreshold=3000.000, acceleration=3.000

Chih-Wei Huang

unread,
Jul 28, 2016, 12:41:10 AM7/28/16
to Android-x86
2016-07-28 1:54 GMT+08:00 Mário Almeida <4kn...@gmail.com>:
> I get a similar behavior regarding the mouse and Qemu 2.6 / Android 6.0.
>
> Qemu "-usbdevice tablet" used to work fine in 4.4 and its "broken" (maybe a
> feature) since 5.1. Might have something to do with qemu version as well?
> (now using 2.6)

Why do you use "-usbdevice tablet"?
It simulates a touchscreen. See man qemu:

-usbdevice devname
Add the USB device devname.
...
tablet
Pointer device that uses absolute coordinates (like a
touchscreen).
This means QEMU is able to report the mouse position
without having to grab the
mouse. Also overrides the PS/2 mouse emulation when activated.

My Qemu 2.6 works well with mouse.
See my qemu script in the previous post.

Russell Purinton

unread,
Jul 28, 2016, 12:44:15 AM7/28/16
to andro...@googlegroups.com
This isn’t a setting exposed in XenServer, at least anywhere that I can find. XenServer really hides all the QEMU settings well. And they don’t give any way to change it from what I can see. I’ll post over on the XenServer forums again though and see if anyone knows if this is configurable.

Basically if you build a VM in XenServer, it uses this setting by default, and they don’t give an obvious way to change it.
> --
> You received this message because you are subscribed to a topic in the Google Groups "Android-x86" group.
> To unsubscribe from this topic, visit https://groups.google.com/d/topic/android-x86/iFoKcvK2xNE/unsubscribe.
> To unsubscribe from this group and all its topics, send an email to android-x86...@googlegroups.com.
> To post to this group, send email to andro...@googlegroups.com.
> Visit this group at https://groups.google.com/group/android-x86.
> For more options, visit https://groups.google.com/d/optout.

Mário Almeida

unread,
Jul 28, 2016, 11:25:35 PM7/28/16
to Android-x86
Android x86 mouse works fine in all qemu versions I tried. 

Problem is similar to Russel I guess (except that I inflict it upon myself :) ), since I am streaming the Android VM, I need to disable mouse capture.

And to the best of my knowledge, this is accomplished through the tablet mode (avoids having to press ctrl+alt all the time) in Qemu. 

Interestingly this "QEMU QEMU USB Tablet" only appears for latest Android versions (> 4.4), 4.4 (wrongly perhaps?) used to identify it as a pointer.

I would welcome any dirty fix to bypass this, so if you guys have any suggestions please drop them.

Thanks!

Mário Almeida

unread,
Jul 28, 2016, 11:26:27 PM7/28/16
to Android-x86
"To prevent the mouse from being grabbed when clicking on the guest operating system's window, add the option -usbdevice tablet. This means QEMU is able to report the mouse position without having to grab the mouse. This also overrides PS/2 mouse emulation when activated." - https://wiki.archlinux.org/index.php/QEMU
- once set it produces the behavior observed by Russel.

Mouse can be passed through a vdagent (agent-mouse option, check http://wiki.qemu.org/download/qemu-doc.html), which might be triggering the same behavior, haven't tested it myself.

Cheers


On Thursday, June 23, 2016 at 5:08:17 AM UTC+2, Russell Purinton wrote:

Russell Purinton

unread,
Jul 28, 2016, 11:28:02 PM7/28/16
to andro...@googlegroups.com
I concur… the same QEMU Tablet device works perfectly as a mouse in 4.4.  But not in 5.1 or 6.0

I’ve abandoned all efforts to though.  I guess the main problem is that the VM does not have GPU and it seems almost every app these days requires some GPU, so basically everything crashes on me.


Chih-Wei Huang

unread,
Jul 29, 2016, 12:47:02 AM7/29/16
to Android-x86
2016-07-28 15:56 GMT+08:00 Mário Almeida <4kn...@gmail.com>:
> Android x86 mouse works fine in all qemu versions I tried.
>
> Problem is similar to Russel I guess (except that I inflict it upon myself
> :) ), since I am streaming the Android VM, I need to disable mouse capture.

I don't understand what streaming VM means.
If you remove "-usbdevice tablet", what happens?

> And to the best of my knowledge, this is accomplished through the tablet
> mode (avoids having to press ctrl+alt all the time) in Qemu.
>
> Interestingly this "QEMU QEMU USB Tablet" only appears for latest Android
> versions (> 4.4), 4.4 (wrongly perhaps?) used to identify it as a pointer.

I don't think it relates to the android version
but the kernel (and configs).
You may try to revert to the kernel version
that works for you before.

Mário Almeida

unread,
Jul 30, 2016, 6:05:06 AM7/30/16
to Android-x86
@Russel, I have conducted a test with the 30 most popular apps in the Google Play (Spain), if you enable app compatibility in the menu, it should support 58% of these apps.

It is still much better than the Android emulator which does not support arm binaries afaik and seems to consume more resources.

Further I have been able to run OpenGL apps in Androidx86 with Qemu 2.6, refer to : https://github.com/openthos/openthos/wiki/virtio-gpu
. You might have to revert some of the repos to 1/2 weeks past as last time i tried to build some APIs had changed.

@Huang: I am using spice for remote controlling the Android VM. Without "-usbdevice tablet" the mouse works... but it grabs the mouse (ctrl + alt behavior).

This behavior is not compatible with many remote control clients / use cases and it might be one of the reasons projects such as SVMP (https://svmp.github.io/index.html) got stuck at 4.4.

I see a great potential for large Android deployments with your project so continue with your excellent work! :)

@llian lliev: any news?


On Thursday, June 23, 2016 at 5:08:17 AM UTC+2, Russell Purinton wrote:

magixx

unread,
Aug 8, 2016, 10:42:42 PM8/8/16
to Android-x86
Have you had a chance to write this guide?
I'm currently trying to get android-x86-4.4rc5 working in XenServer 7.0 without any luck. The best I've gotten it is to install (GPT w/ GRUB2 EFI only) but that won't boot afterwards (GRUB2 is not seen, stuck on XenServer boot screen). I don't really care about android version too much but I though 4.4rc5 would be the most stable.

Mário Almeida

unread,
Aug 9, 2016, 2:23:05 PM8/9/16
to Android-x86
No Xen here but for me it only boots with no gpt, grub 0.97, ext3.

magixx

unread,
Aug 14, 2016, 9:25:18 PM8/14/16
to Android-x86
Thanks, finally got it working. For anyone else who is interested I've uploaded the xva at https://www.androidfilehost.com/?fid=24651430732235940

Chih-Wei Huang

unread,
Aug 14, 2016, 9:26:27 PM8/14/16
to Android-x86
2016-08-15 1:16 GMT+08:00 magixx <magix...@gmail.com>:
> Thanks, finally got it working. For anyone else who is interested I've
> uploaded the xva at https://www.androidfilehost.com/?fid=24651430732235940

So what did you fix?
Could you provide a patch?
Message has been deleted

SangWon Kim

unread,
Apr 27, 2017, 11:53:39 PM4/27/17
to Android-x86

This is a way to change usbdevice from tablet to mouse on xenserver.

i use xenserver 7.1 and android-x86_64-6.0-r3.iso.

1) log in to xernserver console. the host.

2) open this file to edit.
- xs v7.x: /usr/libexec/xenopsd/qemu-dm-wrapper
- xs v6.x: /opt/xensource/libexec/qemu-dm-wrapper

3) add 4 lines
--------------------------------------------
...
qemu_args = ['qemu-dm-%d'%domid] + argv[2:]
# add 4 lines on the right position. line number 73 on XS 7.1
qemu_args.remove('-usbdevice')
qemu_args.remove('tablet')
qemu_args.append('-usbdevice')
qemu_args.append('mouse')

4) reboot the android.
Reply all
Reply to author
Forward
0 new messages