Linux: android studio AVD emulator启动不了 | openGL | glx
来源:互联网 发布:波士顿矩阵图的优缺点 编辑:程序博客网 时间:2024/06/05 14:24
前置条件
目前我台式机电脑的情况是:
OS:Slackware Linux 14.1
显卡:
1)NVidia 独立显卡,用于 GPU计算
2)Intel i3 集成显卡,用于连接 43寸液晶显示器
===================================================
今天安装当前最新版本的 android studio 2.3.2 ,但安装后,AVD模拟器打不开
1) question 1
Xlib: extension "GLX" missing
原来是安装 NVidia 的驱动时,Nvidia的驱动程序把 原来的 libglx.so 替换了,如下图 NVidia 的驱动版本正是 340.65
查了一下系统的安装包日志,发现 原始的 libglx.so 是在 xorg-server-1.14.3-x86_64-2
于是重新安装 xorg-server-1.14.3-x86_64-2
重启系统后,glxgears 就可以运行起来了(注意:这依然埋藏着一个坑,看question 2)
(出乎我意外的是glxgears竟然能调起libGL.so进行一些openGL的基本计算)
2) question 2
我不知道你们用的linux系统上 GL/glxproto.h 头文件定义长什么样(不同系统上的定义值可能是不同的哦),反正在我的系统上是找不到 168 这个 opcode的定义
glxinfo 依然看到有 NVdia 的东西,看到 OpenGL extensions: 上有 GL_NV_ 这种 NVidia 的实现
什么回事?我已经设置X使用的driver是intel的了,
为什么还会见到nvidia driver相关的的东西
看到 nvidia-application-profiles-340.65-rc,再想到上面的 GL_NV_ ,我就明白了,emulator 调用的依然是 NVidia 的 openGL 库
查看了 libGL.so ,果然发现仍然是 NVidia 驱动安装程序把 libGL.so 替换了NVidia 的实现了。
查了一下系统的安装包日志,发现 原始的 libGL.so 是在 mesa-9.1.7-x86_64-1
于是重新安装 mesa-9.1.7-x86_64-1
安装后,就看到 libGL.so 指向就正确了,用的是 mesa的实现
^_^ 好了,这样 emulator 就开起来了
============== 总结 ================
Q: 为什么 X miss "GLX" extention ?
A: 其实没有 miss "GLX" extention,只是加载的是 NVidia 提供的 GLX,你说 intel 的驱动能兼容么(前置条件说了,我的intel 集显是连接显示器)
Q: 为什么会 invalid request code or no such operation 168
A: intel 驱动把它自己定义的 168 操作码 发给了 NVidia 的 libGL 的 openGL 实现,就相当于 把 intel CPU 的操作码 发给 NVdia GPU 执行,你说能期待正确的运算结果么
=============== 补充 ================
重启系统后,发现 libGL.so.1 又被 NVidia 重新指向了NVidia的实现
考虑到我只使用 NVidia做GPU计算,我就把 NVidia 的 libGL.so.340.65 删除了,再重新安装了 mesa-9.1.7-x86_64-1,emulator又开起来了
==================== 2017-05-18 补充 =======================
今天在用arm的emulator时,又遇到了新的问题,这次是qt库的总量,android的emulator用的是google修改过的qemu,这个qemu用到了qt,这个qt的库路径就在emulator目录下,但程序启动时却加载了/usr/lib64/目录下的qt库,因为我系统上也安装了qt,但和emulator下的qt5版本号不一致
==================== 2017-05-22 补充 =======================
emulator64-arm
启动不了,是因为昨天因为virtualbox和kvm不能同时启动,我就把kvm重新编译为内核模块了,但忘记 depmod 重新生成 modules.dep,导致modprobe kvm-intel不成功,depmod 一下就好了
x86中运行arm 的emulator就首次运行镜像时要优化镜像内的67个app才慢了一点,其他时间的运行速度都还可以了,足够调试arm的普通类app
- Linux: android studio AVD emulator启动不了 | openGL | glx
- android avd 启动不了
- Android studio 无法启动安卓模拟器Cannot launch AVD in emulator. Output: emulator: WARNING: Increasing RAM siz
- 手动启动avd emulator
- android emulator找不到avd
- android emulator找不到avd
- Android Studio 启动不了
- Android Studio cannot launch avd in emulator解决方案
- Android Studio cannot launch avd in emulator解决方案
- Android Studio cannot launch avd in emulator问题解决
- Android studio之启动AVD模拟器异常
- android emulator创建avd命令
- android emulator创建avd命令
- Android Studio 2.3+Emulator启动黑屏解决方法
- android studio 模拟器启动不了
- Andriod studio 中启动模拟器出现Cannot launch AVD in emulator
- Linux下Android Studio中的AVD模拟器启动无反应解决方法
- 启动Android Virtual Device(android虚拟机)的时发生canot launch AVD in emulator错误
- Java多线程并发器之AbstractQueuedSynchronizer分析
- 爱测未来开发-Zabbix的使用 API的调用
- FlashFXP5.4 注册码
- linux下建站软件安装
- [IO系统]17 IO调度器-DEADLINE
- Linux: android studio AVD emulator启动不了 | openGL | glx
- android textView设置粗体
- Visual Studio调试报错不自动断点,显示程序已结束运行
- 【数据结构作业】实现任意三种静态或动态查找
- 【数据结构作业】实现任意三种静态或动态查找
- rabbit安装步骤
- 【OpenCV图像处理】二十一、形态学滤波角点的提取
- POJ
- 转换字母的大小写