我在第一代上运行 Kubuntu 20.04LTSOptimus 启用ThinkPad T410s(双显卡,英特尔+英伟达)。
每当我运行 Android Studio 设备模拟器(根据官方说明安装依赖项)这里) 使用nouveau
驱动程序时,虚拟设备打开了,但在第一次单击 UI 后崩溃。
i915
在/intel
驱动程序(Intel HD 显卡,i5-i540M 处理器)下运行它时,它运行正常。
i915
在/驱动程序下启动但使用以下intel
命令运行模拟器时env DRI_PRIME=1
英伟达图形通过nouveau
,它可以运行,但在第一次单击鼠标时崩溃。
我不使用专有的原因英伟达驱动程序(我的机器为 340.108)是:
- 它在某种程度上破坏了 RANDR 行为
- 无法且永远不会处理 DRI_PRIME
这就是为什么我选择坚持使用,当使用 调用时,nouveau
它可以在这款 T410s ThinkPad 的板载芯片上以不错的速度运行。NVS3100M
env DRI_PRIME=1
当通过命令行运行模拟器时env DRI_PRIME=1 ~/Android/Sdk/tools/emulator -avd Galaxy_Note_3_API_25 &
,我看到的是:
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
我想启动 Android Studio 模拟器,利用英伟达芯片,但迄今为止这还是不可能的。
你们中有人遇到过这种情况吗?
您是否找到了解决方法,或者您是否坚持在集成英特尔视频上运行模拟器(我目前的情况)?
答案1
我在 Ubuntu 22.04 上测试 nouveau 驱动程序时发现了类似的问题;尝试了一些可能相关的建议那么问题来了没有成功,因为模拟器要么崩溃,要么冻结我的整个系统。
在 AVD 配置中禁用“启用键盘输入”选项似乎有助于防止我的系统冻结,但最终我不得不回去使用 NVIDIA 的专有驱动程序
系统详细信息:
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)
这是运行android模拟器的输出: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