1

I'm running Kubuntu 20.04LTS on a 1st-gen Optimus-enabled ThinkPad T410s (dual graphics, Intel + NVIDIA).

Whenever I run Android Studio device emulator (installed with dependencies according to official instructions here) using the nouveau driver, the virtual device opens but crashes after the first click on the UI.

When running it under the i915 / intel driver (Intel HD graphics, i5-i540M processor), it runs OK.

When booting under the i915 / intel driver but running the emulator with env DRI_PRIME=1 to have it using NVIDIA graphics via nouveau, it runs but crashes on the first interaction with a mouse click.

My reasons for not using the proprietary NVIDIA driver (340.108 for my machine) are:

  • It sort of breaks RANDR behaviour
  • Can't and won't ever handle DRI_PRIME

This is why I've preferred sticking to nouveau, which runs at decent speeds on the on-board NVS3100M chip on this T410s ThinkPad when invoked with env DRI_PRIME=1.

When running the emulator via command line with env DRI_PRIME=1 ~/Android/Sdk/tools/emulator -avd Galaxy_Note_3_API_25 &, what I see is:

handleCpuAcceleration: feature check for hvf
emulator: INFO: QtLogger.cpp:68: Warning: QXcbIntegration: Cannot create platform OpenGL context, neither GLX nor EGL are enabled ((null):0, (null))


emulator: INFO: QtLogger.cpp:68: Warning: QMetaObject::connectSlotsByName: No matching signal for on_new_posture_requested(int) ((null):0, (null))


emulator: INFO: QtLogger.cpp:68: Warning: QMetaObject::connectSlotsByName: No matching signal for on_dismiss_posture_selection_dialog() ((null):0, (null))


emulator: Warning: skin file button uses unknown key name 'menu'
emulator: Warning: skin file button uses unknown key name 'dpad-select'
emulator: Warning: skin file button uses unknown key name 'T'
emulator: Warning: skin file button uses unknown key name 'NEXT'
cannot add library /home/dmayr/Android/Sdk/emulator/qemu/linux-x86_64/lib64/vulkan/libvulkan.so: failed
added library /home/dmayr/Android/Sdk/emulator/lib64/vulkan/libvulkan.so
emulator: INFO: GrpcServices.cpp:315: Started GRPC server at 127.0.0.1:8554, security: Local
emulator: INFO: EmulatorAdvertisement.cpp:93: Advertising in: /run/user/1000/avd/running/pid_229634.ini
emulator: ERROR: AdbHostServer.cpp:102: Unable to connect to adb daemon on port: 5037

# Upon clicking the UI
[1]  + 229634 segmentation fault (core dumped)  env DRI_PRIME=1 ~/Android/Sdk/tools/emulator -avd Galaxy_Note_3_API_25

I wanted to launch the Android Studio emulator taking advantage to the video acceleration provided by the NVIDIA chip, but so far it has been impossible.

Has this happened to any of you?

Have you found a way around it, or have you stuck to running the emulator on the integrated Intel video (my current situation)?

1 Answer 1

1

I have found a similar problem while testing nouveau driver with Ubuntu 22.04; tried a few suggestions from this possibly related SO question without success as the emulator either crash or freezes my entire system.

Disabling the option "Enable keyboard input" in the AVD configuration seems help to prevent my system from freezing but in the end I had to go back to use NVIDIA's proprietary driver

System details:

Ubuntu 22.04 LTS
NVIDIA GeForce GTX 1070
xserver-xorg-video-nouveau/jammy 1:1.0.17-2build1 amd64
Android emulator version 31.3.9.0 (build_id 8700579) (CL:N/A)

This is the output of running the android emulator: emulator @myapp

INFO    | Android emulator version 31.3.9.0 (build_id 8700579) (CL:N/A)
emulator: INFO: Found systemPath ~/android-sdk/system-images/android-29/google_apis_playstore/x86/
emulator: INFO: Found systemPath ~/android-sdk/system-images/android-29/google_apis_playstore/x86/
INFO    | Duplicate loglines will be removed, if you wish to see each indiviudal line launch with the -log-nofilter flag.
INFO    | configAndStartRenderer: setting vsync to 60 hz
WARNING | cannot add library ~/android-sdk/emulator/qemu/linux-x86_64/lib64/vulkan/libvulkan.so: failed
INFO    | added library ~/android-sdk/emulator/lib64/vulkan/libvulkan.so
WARNING | *** No gRPC protection active, consider launching with the -grpc-use-jwt flag.***
INFO    | Started GRPC server at 127.0.0.1:8554, security: Local, auth: none
INFO    | Advertising in: /run/user/1000/avd/running/pid_7443.ini
INFO    | setDisplayConfigs w 1080 h 2280 dpiX 440 dpiY 440
nouveau: kernel rejected pushbuf: No such device
nouveau: ch2: krec 0 pushes 1 bufs 3 relocs 0
nouveau: ch2: buf 00000000 00000003 00000004 00000004 00000000 0x7f7b1227f000 0xb0000 0x80000
nouveau: ch2: buf 00000001 00000006 00000004 00000000 00000004 0x7f7ba785e000 0x14000 0x1000
nouveau: ch2: buf 00000002 0000008e 00000002 00000000 00000002 (nil) 0x99c000 0x1000
nouveau: ch2: psh 00000000 000002bd08 000002bd54
nouveau:        0x20024062
nouveau:        0x00000000
nouveau:        0x0099c200
nouveau:        0x20024060
nouveau:        0x00000018
nouveau:        0x00000001
nouveau:        0xa007406c
nouveau:        0x00001001
nouveau:        0xbf800000
nouveau:        0xbf800000
nouveau:        0x40400000
nouveau:        0xbf800000
nouveau:        0xbf800000
nouveau:        0x40400000
nouveau:        0x200406c0
nouveau:        0x00000000
nouveau:        0x00014000
nouveau:        0x000002e9
nouveau:        0x1000f010
qemu-system-x86_64: ../nouveau/pushbuf.c:730: nouveau_pushbuf_data: Assertion `kref' failed.
[1]    7443 IOT instruction (core dumped)  emulator @myapp

1
  • I see; I'll try disabling keyboard input to check if it mitigates the problem. Anything Vulkan-related does not apply to this machine, as the NVS3100M controlled by the 340.108 driver won't ever support it. Thanks for the advice!
    – dennismayr
    Jun 21, 2022 at 16:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.